[ The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]

# library(ic_gap_sbdd)

GAP-based Symmetry Breaking via Dominance Detection (SBDD)

## Predicates

> all_solutions(+Goal)
>   Find all solutions to the given goal
> all_solutions(+Goal, ?NSols)
>   Find all solutions to the given goal
> first_solution(+Goal)
>   Find the first solution to the given goal
> is_sbdd_var(?Var)
>   Checks whether a variable is an SBDD variable
> print_sbdd(?, ?)
>   No description available
> sbdd_indomain(?Var)
>   Instantiate an integer SBDD variable to an element of its domain
> sbdd_initialise(+Array, ++VarDimNames, ++ValueDimSpec, +SymSpecs, +Options)
>   Initialises the data structures required by the SBDD algorithm
> sbdd_initialise_set(+Array, ++VarDimNames, ++ValueDimSpec, +SymSpecs, +Options)
>   Initialises the data structures required by the SBDD algorithm (set version)
> sbdd_labeling(?List)
>   Instantiate all integer SBDD variables in a list to elements of their domains
> sbdd_record(?, ?, ?)
>   No description available
> sbdd_recorded_indomain(?, ?, ?)
>   No description available
> sbdd_try(+Var, ++Value)
>   Try assigning a value to an SBDD search variable
> sbdd_try(+Var, ++Value, ?Success)
>   Try assigning a value to an SBDD search variable
> sbdd_try_set(+Var, ++Value, ++Bool)
>   Try adding/excluding a value to/from an SBDD set search variable
> sbdd_try_set(+Var, ++Value, ++Bool, ?Success)
>   Try adding/excluding a value to/from an SBDD set search variable
> throttle_default(+SBDDInfo)
>   Default throttling predicate
> throttle_depth_mod_non_unique(++DepthModulus, +SBDDInfo)
>   Example throttling predicate
> throttle_depth_mod_unique(++DepthModulus, +SBDDInfo)
>   Example throttling predicate
> throttle_depth_non_unique(++MaxDepth, +SBDDInfo)
>   Example throttling predicate
> throttle_depth_unique(++MaxDepth, +SBDDInfo)
>   Example throttling predicate
> unify_sbdd(?, ?)
>   No description available

## Structures

> struct sbdd_shared(array, depth, dec_info_list, dim_factors, val_offset, ground_points, throttle_pred, module)
>   Structure containing information for GAP-SBDD search

## Description

This library provides a GAP-based Symmetry Breaking via Dominance Detection (SBDD) library, as described in:

Ian P. Gent, Warwick Harvey, Tom Kelsey and Steve Linton. "Generic SBDD using Computational Group Theory". In Francesca Rossi, editor, Proceedings of the Ninth International Conference on Principles and Practice of Constraint Programming - CP 2003, LNCS 2833, pages 333-347. Springer-Verlag, 2003.

It has been enhanced by (amongst other things) being integrated with the symmetry expression library described in:

Warwick Harvey, Tom Kelsey and Karen Petrie. "Symmetry Group Expression for CSPs." In Barbara Smith et al., editors, Proceedings of SymCon'03: Third International Workshop on Symmetry in Constraint Satisfaction Problems, a workshop of CP 2003, pages 86-96. September, 2003.

This library is still being developed and is expected to evolve. Feedback, suggestions, problem reports, etc. welcome.

Please note that this library currently does not work on Windows machines due to its dependence on the GAP interface library.

## About

- Status: evolving
- Author: Warwick Harvey, Steve Linton, Tom Kelsey, Ian Gent (and probably others...)

## See Also

library(sym_expr), library(gap)

Generated from ic_gap_sbdd.eci on Sat Nov 8 06:58:13 2008