package

es.usc.citius.hipster.model.problem

Util classes to create a new search problem. Use ProblemBuilder to define a search problem required to instantiate a new algorithm with Hipster class. Example:

     Hipster.SearchProblem p =
          ProblemBuilder.create()
              .initialState(initialState)
              .defineProblemWithExplicitActions()
                  .useActionFunction(af)
                  .useTransitionFunction(atf)
                  .useCostFunction(cf)
                  .useHeuristicFunction(hf)
                  .build();

     Hipster.createAStar(p).search(goalState);
     
 

Classes

ProblemBuilder Problem builder that is used to guide the user through the creation of a SearchProblem with the main components required to instantiate an algorithm. 
ProblemBuilder.Wizard Internal wizard assistant class. 
ProblemBuilder.Wizard.ActionState<S> Step to define the initial state of the problem. 
ProblemBuilder.Wizard.ActionState.Uninformed<A> Creates a uninformed problem (a problem without a cost/heuristic evaluator) to be used with uninformed algorithms like DFS, BFS. 
ProblemBuilder.Wizard.ActionState.Uninformed.Informed<C extends Comparable<C>> An informed search problem builder generates informed search problems with a generic cost  
ProblemBuilder.Wizard.ActionState.Uninformed.Informed.Heuristic Defines the heuristic function to be used. 
ProblemBuilder.Wizard.ActionState.WithAction Builder step to define a search problem with actions. 
ProblemBuilder.Wizard.ActionState.WithAction.Action<A> Builder step to select the transition function of a action-explicit search problem. 
ProblemBuilder.Wizard.ActionState.WithoutAction Builder step to define a search problem without actions. 
SearchComponents<A, S, C extends Comparable<C>> This class should be used to instantiate an ADStar algorithm through the Hipster.createADStar method. 
SearchProblem<A, S, N extends Node<A, S, N>> Defines a search problems in terms of a initial node to start with and the node expander function that generates new successor nodes.