edu.columbia.cs.coms4701.search
Interface SearchStrategy<K extends AgentAction,S extends AgentState>

All Known Subinterfaces:
AStarSearchStrategy<K,S>, BestFirstSearchStrategy<K,S>, BreadthFirstSearchStrategy<K,S>, DepthFirstSearchStrategy<K,S>, GreedyBestFirstSearchStrategy<K,S>, UniformCostSearchStrategy<K,S>

public interface SearchStrategy<K extends AgentAction,S extends AgentState>

An strategy for maintaining a search fringe.

A search strategy can be defined by the type of fringe it maintains.

A fringe can be considered a simple data structure such as a queue; it must simply support #insert, #empty, and #removeFirst actions.

Popular fringe data structures, and the search strategies they implement, include:

Version:
0.1

User: aaron Date: Sep 11, 2006 Time: 6:13:35 PM

Author:
aaron@cs

Method Summary
 void insert(SearchNode<K,S> newNode)
          Inserts a new node into the fringe.
 boolean isEmpty()
          Indicates whether the fringe is currently empty.
 SearchNode<K,S> removeFirst()
          Returns the next node to be expanded from the fringe.
 

Method Detail

insert

void insert(SearchNode<K,S> newNode)
Inserts a new node into the fringe.

Parameters:
newNode -

isEmpty

boolean isEmpty()
Indicates whether the fringe is currently empty.

Returns:
true if the fringe is empty

removeFirst

SearchNode<K,S> removeFirst()
Returns the next node to be expanded from the fringe.

Obviously, the interesting differences between fringe implementations rely on this method's behavior.

Returns:
the search node to expand next