Class SGMPCSearch

java.lang.Object
org.jacop.search.sgmpcs.SGMPCSearch

public class SGMPCSearch extends Object
SGMPCSearch - implements Solution-Guided Multi-Point Constructive Search. This search starts with several elite solutions and tries to impove (minimizing cost variable) them by doing either search assuming an elite solution or staring with an empty solution.

This implementation is based on paper "Solution-guided Multi-point Constructive Search for Job Shop Scheduling" by J. Christopher Beck, Journal of Artificial Intelligence Research 29 (2007) 49–77.

Version:
4.10
  • Field Details

    • store

      public Store store
    • trace

      boolean trace
    • printInfo

      boolean printInfo
    • searchStartTime

      long searchStartTime
    • vars

      public IntVar[] vars
      Variables for search.
    • cost

      public IntVar cost
      Cost variable.
    • searchCost

      int searchCost
    • p

      double p
      Parameters.
    • e

      public int e
    • eInit

      public int eInit
    • l

      int l
    • luby

      public static final int luby
      See Also:
    • poly

      public static final int poly
      See Also:
    • strategy

      int strategy
    • precision

      static final double precision
      See Also:
    • elite

      public int[][] elite
    • numberConsecutiveFails

      int numberConsecutiveFails
    • lubyIndex

      int lubyIndex
    • solution

      int[] solution
    • timeOut

      long timeOut
    • costPosition

      public int costPosition
    • solutionComparator

      Function<Integer,Comparator<int[]>> solutionComparator
  • Constructor Details

  • Method Details

    • search

      public boolean search()
    • findEliteSolutions

      public void findEliteSolutions()
    • improveSolution

      boolean improveSolution()
    • terminationCriteria

      boolean terminationCriteria()
    • setTimeOut

      public void setTimeOut(long t)
    • updateFailLimit

      void updateFailLimit(boolean fail)
    • getLuby

      public int getLuby(int i)
    • bestCostSolution

      int bestCostSolution()
    • worstCostSolution

      int worstCostSolution()
    • setEliteSolutions

      public void setEliteSolutions(int[][] solutions)
    • replaceEliteSolution

      void replaceEliteSolution(int n, int[] solution, int searchCost)
    • setProbability

      public void setProbability(double p)
    • setEliteSize

      public void setEliteSize(int e)
    • setInitialSolutionsSize

      public void setInitialSolutionsSize(int eInit)
    • setFailStrategy

      public void setFailStrategy(int strategy)
    • setPrintInfo

      public void setPrintInfo(boolean print)
    • printSolution

      public void printSolution(int[] solution)
    • lastSolution

      public int[] lastSolution()
    • lastCost

      public int lastCost()