Interface Search<T extends Var>

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

    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:
    4.7
    • 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

        Var getCostVariable()
        It returns the cost variable.
        Returns:
        cost variable.
      • getCostValue

        int getCostValue()
        It returns the value of the cost int variable for the best solution.
        Returns:
        the cost value.
      • getCostValueFloat

        double getCostValueFloat()
        It returns the value of the cost float 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,
                         Var 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.
      • setTimeOutMilliseconds

        void setTimeOutMilliseconds​(long out)
        It turns on the timeout.
        Parameters:
        out - defines how many miliseconds 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​(Var 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.