[ library(gfd) | Reference Manual | Alphabetic Index ]

# <ConsistencyModule:> circuit_offset(+Succ,+Offset)

Constrains elements (offset by Offset) in Succ to form a Hamiltonian circuit.

Succ
  A collection of different (domain) variables or integers
Offset
  Offset for Succ (An integer)

## Description

Succ is a collection of N elements presenting a digraph of N nodes, where the value of the i'th element of Succ - Offset represents the successor to node i. The constraint enforces Succ to form a Hamiltonian circuit, a path through every node in the graph, visiting each node once and forming a circuit.

Note that the Gecode implementation of this constraint has index (node id) starting from 0, rather than 1. The value of Offset is incremented by 1 when the constraint is posted to Gecode. A version of this constraint with native Gecode indexing, i.e. without adjusting Offset, is available as circuit_offset_g/2.

ConsistencyModule is the optional module specification to give the consistency level for the propagation for this constraint: gfd_gac for generalised arc consistency (domain consistency), and gfd_vc for value consistency.

This constraint is implemented by Gecode's circuit() constraint, using an offset of Offset + 1.

## See Also

circuit_offset_g / 2