/**
What a problem is.
*/
import java.util.Set;
public interface
Problem
/**
A problem-instance state.
*/
abstract class State { }
/**
Determine a problem's initial states.
@reutrn The set of initial states.
*/
public Set<State> initialStates()
/**
Determine if a state is a goal state.
@param s The state of interest.
@return true iff <code>s</code> is a goal state.
*/
public Boolean isGoalState(State s)
/**
Determine the set of possible next states from a given state.
@param s The state of interest.
@return The set of possible next state from <code>s</code>.
*/
public Set<State> moveResults(State s)
/**
Determine a transition's cost.
@param from The transition's start state.
@param to The transition's end state.
@return The transition cost between <code>from</code> and <code>to</code>.
*/
public double transitionCost(State from, State to)
// $Log: Problem.java,v $
// Revision 1.1 2011/09/17 17:58:15 rclayton
// Initial revision
//
syntax highlighted by Code2HTML, v. 0.9.1