/*
 * @(#)Solver.java
 */
package ereinion.search;

/**
 * Interfaccia per la definizione di un Solving Agent.
 *
 * @author  Ereinion
 * @version 1.0, 7/10/2002
 * @since EPR 1.0
 * @see ereinion.search.SearchNode
 */
public interface Solver
{

	/*
	 * Metodo che esegue la ricerca e restituisce la soluzione in forma di SearchNode.
	 *
	 * @param problem il problema di cui cercare la soluzione.
	 * @param stats wrapper class per funzioni di carattere statistico sulla ricerca.
	 * @return la soluzione del problma in forma di SearchNode
	 */
	public SearchNode search(SearchProblem problem, SearchStats stats) throws SearchExceptionFail;

}