[ Reference Manual | Alphabetic Index ]library(ldsb)
Lightweight dynamic symmetry breaking for finite domains.
[more]
Predicates
- ldsb_indomain(?X)
- Instantiates an LDSB integer variable to an
element of its domain.
- ldsb_indomain_set(?X)
- Instantiates an LDSB set variable to an element
of its domain.
- ldsb_initialise(+Xs, +Syms)
- Initialise LDSB search variables.
- ldsb_try(+X, ++Value, ?Success)
- Try assigning a value to an LDSB variable.
- ldsb_try_set(+X, ++Value, ?Success)
- Try including a value in an LDSB set variable.
Description
The LDSB (lightweight dynamic symmetry breaking) library adds
symmetry breaking to search. Its aim is to provide easy-to-use
symmetry breaking to their finite domain constraint models. The
method is described in "Lightweight Dynamic Symmetry
Breaking. C. Mears, M. Garcia de la Banda, B. Demoen,
M. Wallace. SymCon'08".
To use LDSB, first call ldsb_initialise/2 with the search variables
for which you want to use symmetry breaking and a specification of
the symmetries. LDSB supports binary search branching of the form
Var = Val and Var /= Val, or Val in Var
and Val notin Var for sets. Use ldsb_indomain/1 and
ldsb_indomain_set/1 to instantiate variables during search, or
ldsb_try/3 and ldsb_try_set/3 for a custom branching.
About
- Status: evolving
- Author: Chris Mears
Generated from ldsb.eci on 2022-09-03 14:26