
<ConsistencyModule:> ham_path_offset(?Start,?End,+Succ,+Offset)

   Constrains elements (offset by Offset) in Succ to form a Hamiltonian path from Start to End.

Arguments
   Start               An integer or (domain) variable (array notation accepted)
   End                 An integer or (domain) variable (array notation accepted)
   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 i'th element of Succ represents the successor to node i. The constraint
  enforces (Succ -Offset) to form a Hamiltonian path, a path through
  every node in the graph, visiting each node once, with Start giving
  the first node of the path, and End giving the last node of the path.
  Note that the Succ of the last node will be N+1, i.e. a dummy node
  not in the graph. 

  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 ham_path_offset_g/4.

  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 path() constraint, with
  an actual offset of 1 + Offset.



See Also
   ham_path_offset_g / 4
