[ 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


Generated from ldsb.eci on 2022-09-03 14:26