All Classes

Class Description
AbstractSolution
Wrapper for the heuristic homework solution.
AStarFrontierSearcher<State,​Node extends SearchTreeNode<Node,​State> & KnowsOwnCost,​Frontier extends Frontiers.PriorityQueue<Node>>
Extension of PriorityQueueSearcher with A*'s prioritization formula f(n) = g(n)+h(n), still leaving the exact structure of the frontier as a configurable option.
AStarFrontierSearcher.PathNodes<State,​Frontier extends Frontiers.PriorityQueue<Nodes.SimpleTreePathCostNode<State>>>
A specialization of AStarFrontierSearcher to use a minimal implementation of hierarchical search tree nodes (with a state, accumulated cost, and pointer to a parent tree node), with the frontier implementation still exposed as a type parameter.
AStarFrontierSearcher.SimpleNodes<State,​Frontier extends Frontiers.PriorityQueue<Nodes.SimpleTreeCostNode<State>>>
A specialization of AStarFrontierSearcher to use a minimal implementation of unrelated search tree nodes (with a state and accumulated cost only), with the frontier implementation still exposed as a type parameter.
AStarSearcher<State,​Node extends SearchTreeNode<Node,​State> & KnowsOwnCost>
Extension of AStarFrontierSearcher to fix the frontier structure with a minimal priority queue implementation.
AStarSearcher.PathNodes<State>
A specialization of AStarSearcher to use a minimal implementation of hierarchical search tree nodes (with a state, accumulated cost, and pointer to a parent tree node), with the frontier implementation still exposed as a type parameter.
AStarSearcher.SimpleNodes<State>
A specialization of AStarSearcher to use a minimal implementation of unrelated search tree nodes (with a state and accumulated cost only), with the frontier implementation still exposed as a type parameter.
BoardNode
Search tree node for building RushHour solution move sequences.
Boards
Sample Rushhour boards.
BoardState
Model of one state of the Rushhour board.
BoardStateBuilder  
BreadthFirstFinder
Model solution finder for RushHour boards using breadth-first search.
BreadthFirstSearcher<State,​Node extends SearchTreeNode<Node,​State>>
Specialization of the generic GraphSearcher to use a queue for its frontier, and thus erform breadth-first search.
ExploredSet<Node>
Methods required to track the nodes which we have already either added to the frontier, or removed from the frontier for exploration.
ExploredSets
Three sample implementations of ways to track nodes which we have already either added to the frontier, or removed from the frontier for exploration.
FrontierCheckingStructure<Node>
Subclass of frontier representations which support checking membership of a node in the frontier.
FrontierEmptyException
Thrown when a frontier structure is empty.
Frontiers
Standard implementations of structures representing a frontier.
Frontiers.DebuggablePriorityQueue<S,​N extends SearchTreeNode<N,​S>>  
Frontiers.DebuggingFrontier<Node>
Abstract class adding debugging hooks to the basic frontier.
Frontiers.PriorityQueue<Node>
A frontier as a priority queue, for e.g.
Frontiers.Queue<Node>
A queue as a priority queue, for e.g.
Frontiers.StateKeyedPriorityQueue<S,​N extends SearchTreeNode<N,​S>>  
FrontierStructure<Node>
Methods required of a representation of a search tree frontier.
GameException  
GoalChecker<Node>
Methods required of objects which check that a tree node corresponds to a search goal.
GoalCheckers
Sample implementations of checkers that a tree node corresponds to a search goal.
GraphSearcher<State,​Node extends SearchTreeNode<Node,​State>,​Frontier extends FrontierStructure<Node>>
Topmost class encapsulating graph search.
IllegalMoveException  
KnowsOwnCost
Additional interface implemented by search tree nodes which are aware of their own cost.
Move  
Move.Direction  
MoveCollisionException  
MoveException  
MovesFinder
Superclass for the various A* approaches to be tested in this homework.
Nodes
Sample implementations of search tree nodes.
Nodes.CostAndStep<S>
Helper class for search tree node expansion bundling a node and its associated cost.
Nodes.SimpleTreeCostNode<S>
Implementation of search tree nodes with a notion of cost.
Nodes.SimpleTreeNode<S>
Simple implementation of search tree nodes, expecting that the Exp type argument of the Nodes.SimpleCoreTreeNode will be just the search state type.
Nodes.SimpleTreePathCostNode<S>
Implementation of search tree nodes which have a notion of cost, and which contain links to their parent node.
Nodes.SimpleTreePathNode<S>
Implementation of search tree nodes which retain a link to their parent.
PlacedCar  
PlacementCollisionException  
PriorityQueueSearcher<State,​Node extends SearchTreeNode<Node,​State>,​Frontier extends Frontiers.PriorityQueue<Node>>
Specialization of the generic GraphSearcher to use a priority queue structure for its frontier.
Runners
Provides methods for running sample boards to classes implementing Rushhour solution search via the standard graph search hierarchy.
SearchFailureException
Thrown from search algorithms when they find no solution.
SearchTreeNode<Self extends SearchTreeNode<Self,​State>,​State>
Methods required of a search tree node.
SearchTreePathNode<This extends SearchTreePathNode<This,​S>,​S>
Type of search tree nodes which form a path of nodes, each expanded from its parent which is next in the path.