Modifier and Type | Method and Description |
---|---|
default void |
setDDS(int discrepancy)
Depth-bounded Discrepancy Search[1] algorithms with binary decisions
|
default void |
setDFS()
Depth-First Search algorithm with binary decisions
|
default void |
setGeometricalRestart(long base,
double geometricalFactor,
ICounter restartStrategyLimit,
int restartLimit)
Build a geometrical restart strategy.
|
default void |
setHBFS(double a,
double b,
long N)
Creates a move object based on:
Hybrid Best-First Search[1] algorithms with binary decisions.
|
default void |
setLDS(int discrepancy)
Limited Discrepancy Search[1] algorithms with binary decisions
|
default void |
setLNS(Neighbor neighbor)
Creates a Move object based on Large Neighborhood Search.
|
default void |
setLNS(Neighbor neighbor,
ICounter restartCounter)
Creates a Move object based on Large Neighborhood Search.
|
default void |
setLubyRestart(long scaleFactor,
ICounter restartStrategyLimit,
int restartLimit)
Branch a luby restart strategy to the model
|
default void |
setRestartOnSolutions()
Creates a Move object that encapsulates the current move within a restart move.
|
default void |
setRestarts(LongCriterion restartCriterion,
org.chocosolver.cutoffseq.ICutoffStrategy restartStrategy,
int restartsLimit)
Creates a Move object that encapsulates the current move within a restart move.
|
default void setDFS()
default void setLDS(int discrepancy)
[1]:W.D. Harvey and M.L.Ginsberg, Limited Discrepancy Search, IJCAI-95.
discrepancy
- the maximum discrepancydefault void setDDS(int discrepancy)
[1]:T. Walsh, Depth-bounded Discrepancy Search, IJCAI-97.
discrepancy
- the maximum discrepancydefault void setHBFS(double a, double b, long N)
[1]:D. Allouche, S. de Givry, G. Katsirelos, T. Schiex, M. Zytnicki, Anytime Hybrid Best-First Search with Tree Decomposition for Weighted CSP, CP-2015.
a
- lower bound to limit the rate of redundantly propagated decisionsb
- upper bound to limit the rate of redundantly propagated decisions.N
- backtrack limit for each DFS try, should be large enough to limit redundancydefault void setRestarts(LongCriterion restartCriterion, org.chocosolver.cutoffseq.ICutoffStrategy restartStrategy, int restartsLimit)
restartCriterion
is met, a restart is done, the new restart limit is updated
thanks to restartStrategy
.
There will be at most restartsLimit
restarts.restartCriterion
- the restart criterion, that is, the condition which triggers a restartrestartStrategy
- the way restart limit (evaluated in restartCriterion
) is updated, that is, computes the next limitrestartsLimit
- number of allowed restartsdefault void setLubyRestart(long scaleFactor, ICounter restartStrategyLimit, int restartLimit)
scaleFactor
- scale factorrestartStrategyLimit
- restart triggerrestartLimit
- restart limits (limit of number of restarts)default void setGeometricalRestart(long base, double geometricalFactor, ICounter restartStrategyLimit, int restartLimit)
ICounter
to observe.
Once this counter reaches a limit, restart occurs and the next cutoff is computed.
At step n, the next cutoff is computed with the following function : b*g^n.base
- the initial limitgeometricalFactor
- geometrical factorrestartStrategyLimit
- restart triggerrestartLimit
- restart limits (limit of number of restarts)default void setRestartOnSolutions()
default void setLNS(Neighbor neighbor, ICounter restartCounter)
neighbor
.
The neighbor
creates a fragment: selects variables to freeze/unfreeze wrt the last solution found.
If a fragment cannot be extended to a solution, a new one is selected by restarting the search.
If a fragment induces a search space which a too big to be entirely evaluated, restarting the search can be forced
using the restartCriterion
. A fast restart strategy is often a good choice.neighbor
- the neighbor for the LNSrestartCounter
- the (fast) restart counter. Initial limit gives the frequency.default void setLNS(Neighbor neighbor)
neighbor
.
The neighbor
creates a fragment: selects variables to freeze/unfreeze wrt the last solution found.
If a fragment cannot be extended to a solution, a new one is selected by restarting the search.neighbor
- the neighbor for the LNSsetLNS(Neighbor, ICounter)
Copyright © 2018. All rights reserved.