Interfaces that define the functions used to compute costs, expand nodes, etc.


ActionFunction<A, S> Interface that defines an action function that computes applicable actions for a given state. 
ActionStateTransitionFunction<A, S> Interface to define a transition function that takes an action and a concrete state and returns the new state. 
BinaryFunction<T> A binary operation takes two elements of the same type and combines them returning an element of the same type. 
CostFunction<A, S, C extends Comparable<C>> The cost function evaluates a transition between states. 
HeuristicFunction<S, C> Defines a function that takes a state and estimates the distance to the goal of the problem. 
NodeExpander<A, S, N extends Node<A, S, N>> Defines a function that takes a Node and expands it in order to generate all the possible successors. 
NodeFactory<A, S, N> Generator of nodes. 
ScalarFunction<T> A scalar function takes an object and modifies its magnitude by a numeric factor without changing its type. 
TransitionFunction<A, S> Defines a function that returns the possible transitions from a given state.