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

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

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

Type
   library(gfd)

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
