java.lang.Object
org.maxicp.search.FDSModeling
Failure-Directed Search (FDS) for scheduling problems with modeling-layer interval variables.
This is the modeling-layer adaptation of FDS, working with IntervalVar
and ModelProxy instead of CPIntervalVar and CPSolver.
This search algorithm is designed for a broad class of scheduling problems. Instead of guiding the search towards possible solutions, FDS drives the search into conflicts in order to prove that the current branch is infeasible. Choices that fail the most are preferred (first-fail principle applied also to branch ordering).
The algorithm works with binary choices:
- Presence choice: whether an optional interval variable is present or absent.
- Start time choice: whether startOf(v) ≤ t or startOf(v) > t (domain splitting).
- Length choice: whether length(v) ≤ l or length(v) > l (domain splitting).
Reference: VilĂm, P., Laborie, P., Shaw, P. (2015). Failure-directed Search for Constraint-based Scheduling. CPAIOR 2015.
- Author:
- pschaus
-
Constructor Summary
ConstructorsConstructorDescriptionFDSModeling(double alpha, IntervalVar... intervals) Creates a Failure-Directed Search for the given interval variables.FDSModeling(IntervalVar... intervals) Creates a Failure-Directed Search for the given interval variables. -
Method Summary
-
Constructor Details
-
FDSModeling
Creates a Failure-Directed Search for the given interval variables.- Parameters:
intervals- the interval variables to decide
-
FDSModeling
Creates a Failure-Directed Search for the given interval variables.- Parameters:
alpha- decay factor for rating updates (typical: 0.9 to 0.99)intervals- the interval variables to decide
-
-
Method Details
-
get
The FDS branching strategy, implementing theSupplier<Runnable[]>interface.This method implements the core FDS algorithm from Algorithm 1 in the paper. At each branching point:
- Select the applicable choice with the best (lowest) rating.
- Skip waiting and resolved choices.
- Return two branches: the better-rated branch first (heading into conflict).
-