JaCoP.search
Interface Search<T extends Var>

Type Parameters:
T - type of variables used in this search.
All Known Implementing Classes:
DepthFirstSearch

public interface Search<T extends Var>

All searches needs to implement this interface in order to be manipulable by a large variety of search listeners. Of course, the search which implements this interface will need to call appropriate functions of attached listeners in the right place and act accordingly to the output of listeners.

Version:
3.1
Author:
Radoslaw Szymanek and Krzysztof Kuchcinski

Method Summary
 void addChildSearch(Search<? extends Var> child)
          It adds another child search to this one.
 boolean assignSolution()
          It assigns the last solution.
 boolean assignSolution(int no)
          The first solution has index 0.
 int getBacktracks()
          It returns number of backtracks performed by the search.
 ConsistencyListener getConsistencyListener()
          It returns the root of the Consistency Listener.
 int getCostValue()
          It returns the value of the cost variable for the best solution.
 IntVar getCostVariable()
          It returns the cost variable.
 int getDecisions()
          It returns number of decisions performed by the search.
 ExitChildListener<T> getExitChildListener()
          It returns the root of the ExitChildListener.
 ExitListener getExitListener()
          It returns the root of the ExitListener.
 InitializeListener getInitializeListener()
          It returns the root of the InitializationListener.
 int getMaximumDepth()
          It returns the maximum depth reached by a search.
 int getNodes()
          It returns number of search nodes explored by the search.
 Domain[] getSolution()
          It returns the solution (an assignment of values to variables).
 Domain[] getSolution(int no)
          It returns the solution specified by the search.
 SolutionListener<T> getSolutionListener()
          It returns the root Solution Listener.
 TimeOutListener getTimeOutListener()
          It returns the root of the TimeOutListener.
 T[] getVariables()
          It returns the order of variables used by functions returning a solution in terms of the values.
 int getWrongDecisions()
          It returns number of wrong decisions performed by the search.
 java.lang.String id()
          It returns the string id of the search.
 boolean label(int firstVariable)
          This function is called recursively to assign variables one by one.
 boolean labeling()
          It performs search, first by setting up the internal items/attributes of search, followed later by a call to labeling function with argument specifying the index of the first not grounded variable.
 boolean labeling(Store store, SelectChoicePoint<T> select)
          It performs search using supplied choice point selection heuristic.
 boolean labeling(Store store, SelectChoicePoint<T> select, IntVar costVar)
          It performs search using supplied choice point selection heuristic, as well as costVariable as aim at finding an optimal solution.
 void printAllSolutions()
          It prints all solutions.
 void setAssignSolution(boolean value)
          It decides if a solution is assigned to store after search exits.
 void setBacktracksOut(long out)
          It turns on the backtrack out.
 void setChildSearch(Search<? extends Var>[] child)
          It specifies the sub-searches for the current search.
 void setConsistencyListener(ConsistencyListener listener)
          It sets the root of the Consistency Listener.
 void setCostVar(IntVar cost)
          It sets the reference to the cost variable.
 void setDecisionsOut(long out)
          It turns on the decisions out.
 void setExitChildListener(ExitChildListener<T> listener)
          It sets the root of the ExitChild listener.
 void setExitListener(ExitListener listener)
          It sets the root of the Exit Listener.
 void setInitializeListener(InitializeListener listener)
          It sets the root of the InitializeListener.
 void setMasterSearch(Search<? extends Var> master)
          If the search is called by a master search then the search may need to obtain some information about the master search.
 void setNodesOut(long out)
          It turns on the nodes out.
 void setOptimize(boolean value)
          It sets the optimization flag.
 void setPrintInfo(boolean value)
          It decides if information about search is printed.
 void setSelectChoicePoint(SelectChoicePoint<T> select)
          It sets the select choice point object.
 void setSolutionListener(SolutionListener<T> listener)
          It returns the root of the SolutionListener.
 void setStore(Store store)
          It sets the reference to the store in the context of which the search operates.
 void setTimeOut(long out)
          It turns on the timeout.
 void setTimeOutListener(TimeOutListener listener)
          It sets the root of the TimeOutListener.
 void setWrongDecisionsOut(long out)
          It turns on the wrong decisions out.
 java.lang.String toString()
           
 

Method Detail

setChildSearch

void setChildSearch(Search<? extends Var>[] child)
It specifies the sub-searches for the current search. In order for the current search to succeed at least one of those must succeed. If there are no sub-searches then the current search succeeds if all variables within select choice point object are assigned and all constraints attached to those variables are satisfied.

Parameters:
child - the array containing all children searches.

addChildSearch

void addChildSearch(Search<? extends Var> child)
It adds another child search to this one.

Parameters:
child - the search which is being added as child search.

getBacktracks

int getBacktracks()
It returns number of backtracks performed by the search.

Returns:
the number of backtracks.

getCostVariable

IntVar getCostVariable()
It returns the cost variable.

Returns:
cost variable.

getCostValue

int getCostValue()
It returns the value of the cost variable for the best solution.

Returns:
the cost value.

setOptimize

void setOptimize(boolean value)
It sets the optimization flag.

Parameters:
value - true if the search should optimize, false otherwise.

getDecisions

int getDecisions()
It returns number of decisions performed by the search.

Returns:
the number of decisions.

getMaximumDepth

int getMaximumDepth()
It returns the maximum depth reached by a search.

Returns:
the maximum depth.

getNodes

int getNodes()
It returns number of search nodes explored by the search.

Returns:
number of search nodes.

getWrongDecisions

int getWrongDecisions()
It returns number of wrong decisions performed by the search.

Returns:
number of wrong decisions.

getSolution

Domain[] getSolution()
It returns the solution (an assignment of values to variables).

Returns:
an array constituting the assignments.

getSolution

Domain[] getSolution(int no)
It returns the solution specified by the search. The first solution has an index 1.

Parameters:
no - the solution we are interested in.
Returns:
an array constituting the assignments.

getVariables

T[] getVariables()
It returns the order of variables used by functions returning a solution in terms of the values.

Returns:
an array of variables as used by functions getSolution.

label

boolean label(int firstVariable)
This function is called recursively to assign variables one by one.

Parameters:
firstVariable - the index to the first variable which has not been grounded yet.
Returns:
true if the solution was found.

labeling

boolean labeling()
It performs search, first by setting up the internal items/attributes of search, followed later by a call to labeling function with argument specifying the index of the first not grounded variable.

Returns:
true if the solution was found.

labeling

boolean labeling(Store store,
                 SelectChoicePoint<T> select)
It performs search using supplied choice point selection heuristic.

Parameters:
store - the store within which the search is conducted.
select - the selection choice point heuristic.
Returns:
true if the solution was found.

labeling

boolean labeling(Store store,
                 SelectChoicePoint<T> select,
                 IntVar costVar)
It performs search using supplied choice point selection heuristic, as well as costVariable as aim at finding an optimal solution.

Parameters:
store - constraint store which will be used by labeling.
select - the selection choice point heuristic.
costVar - variable to specify cost.
Returns:
true if the solution was found.

setAssignSolution

void setAssignSolution(boolean value)
It decides if a solution is assigned to store after search exits.

Parameters:
value - defines if solution is assigned.

setBacktracksOut

void setBacktracksOut(long out)
It turns on the backtrack out.

Parameters:
out - defines how many backtracks are performed before the search exits.

setDecisionsOut

void setDecisionsOut(long out)
It turns on the decisions out.

Parameters:
out - defines how many decisions are made before the search exits.

setNodesOut

void setNodesOut(long out)
It turns on the nodes out.

Parameters:
out - defines how many nodes are visited before the search exits.

setPrintInfo

void setPrintInfo(boolean value)
It decides if information about search is printed.

Parameters:
value - defines if info is printed to standard output.

setTimeOut

void setTimeOut(long out)
It turns on the timeout.

Parameters:
out - defines how many seconds before the search exits.

setWrongDecisionsOut

void setWrongDecisionsOut(long out)
It turns on the wrong decisions out.

Parameters:
out - defines how many wrong decisions are made before the search exits.

toString

java.lang.String toString()
Overrides:
toString in class java.lang.Object

getSolutionListener

SolutionListener<T> getSolutionListener()
It returns the root Solution Listener.

Returns:
the root Solution Listener.

getConsistencyListener

ConsistencyListener getConsistencyListener()
It returns the root of the Consistency Listener.

Returns:
the root Consistency Listener.

getExitChildListener

ExitChildListener<T> getExitChildListener()
It returns the root of the ExitChildListener.

Returns:
the root of ExitChildListener.

getExitListener

ExitListener getExitListener()
It returns the root of the ExitListener.

Returns:
the root of ExitListener.

getTimeOutListener

TimeOutListener getTimeOutListener()
It returns the root of the TimeOutListener.

Returns:
the root of the TimeOutListener.

getInitializeListener

InitializeListener getInitializeListener()
It returns the root of the InitializationListener.

Returns:
the root of the InitializeListener.

setSolutionListener

void setSolutionListener(SolutionListener<T> listener)
It returns the root of the SolutionListener.

Parameters:
listener - the root of the SolutionListener.

setConsistencyListener

void setConsistencyListener(ConsistencyListener listener)
It sets the root of the Consistency Listener.

Parameters:
listener - the new root.

setExitChildListener

void setExitChildListener(ExitChildListener<T> listener)
It sets the root of the ExitChild listener.

Parameters:
listener - the new root.

setExitListener

void setExitListener(ExitListener listener)
It sets the root of the Exit Listener.

Parameters:
listener - the new root.

setTimeOutListener

void setTimeOutListener(TimeOutListener listener)
It sets the root of the TimeOutListener.

Parameters:
listener - the new root.

setInitializeListener

void setInitializeListener(InitializeListener listener)
It sets the root of the InitializeListener.

Parameters:
listener - the new root.

setSelectChoicePoint

void setSelectChoicePoint(SelectChoicePoint<T> select)
It sets the select choice point object.

Parameters:
select - the choice point heuristic used by search.

setStore

void setStore(Store store)
It sets the reference to the store in the context of which the search operates.

Parameters:
store - the store in which context the search operates.

setCostVar

void setCostVar(IntVar cost)
It sets the reference to the cost variable. It does not automatically mean that the search optimizes.

Parameters:
cost - variable used as a cost metric.

setMasterSearch

void setMasterSearch(Search<? extends Var> master)
If the search is called by a master search then the search may need to obtain some information about the master search. For example, the textual description of the solution.

Parameters:
master - master search which will be/is calling that slave search.

id

java.lang.String id()
It returns the string id of the search.

Returns:
the string id of the search.

assignSolution

boolean assignSolution(int no)
The first solution has index 0.

Parameters:
no - the solution number which we want to enforce in the store.
Returns:
true if the store is consistent after imposing the solution.

assignSolution

boolean assignSolution()
It assigns the last solution.

Returns:
true if the store is consistent after imposing the last solution.

printAllSolutions

void printAllSolutions()
It prints all solutions.