Overview | Group | Tree | Graph | Index | Concepts |
This function creates a concatenated neighborhood. The
neighborhood formed is the concatenation of all the neighborhoods in
nhoods
. The optional argument name
, if provided,
becomes the name of the newly created neighborhood.
In a concatenated neighborhood, the indices of the newly created neighborhood map directly to indices in the sub-neighborhoods, according to the order in which the sub-neighborhoods are specified. For example, suppose we concatenate neighborhoods n1, n2, and n3, with sizes s1, s2, and s3 respectively. The newly created neighborhood n will have size s1+s2+s3, with indices 0 to s1-1 corresponding to neighborhood n1, s1 to s1+s2-1 corresponding to neighborhood n2, and the remainder of the indices corresponding to neighborhood n3.
In such a neighborhood, the member function
IloNHood::define
calls
define
on the
appropriate sub-neighborhood with the index properly adjusted as described
above; the function IloNHood::notify
performs notification to the appropriate sub-neighborhood with
the index likewise adjusted; the function
IloNHood::start
calls
start
for each sub-neighborhood; and the function
IloNHood::getSize
adds
together all sizes returned by the sub-neighborhoods.
In concatenated neighborhoods, only the basic neighborhood that defined
the delta for the move to be taken can have
IloNHood::notify
called. For all other basic
neighborhoods, IloNHood#notifyOther
is called with
the delta for the move to be taken.
See Also:
IloCompose, IloNHood, operator+