FRAMES NO FRAMES

IloConcatenate

public IloNHood IloConcatenate(IloEnv env, IloNHoodArray nhoods, const char * name=0)
Definition file: ilsolver/iimnhood.h
Include file: <ilsolver/iimls.h>

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: