Overview | Group | Tree | Graph | Index | Concepts |
This function creates a composed neighborhood. The neighborhood
formed is the product of nhood1
and nhood2
.
Specifically, each neighbor specified by nhood1
is composed
with each neighbor specified by nhood2
. The size of the
resulting neighborhood is the product of the sizes of
nhood1
and nhood2
. Each call to
define
creates a composed delta which is
a union of the deltas of the corresponding neighbors
of the composed neighborhoods. This union operates by placing
in the composed delta all variables mentioned in either of two
deltas from nhood1
and nhood2
.
If the delta from nhood1
and that from nhood2
set different values for the same variable, the value in the delta
from nhood2
is used in the composed delta.
The optional argument name
, if provided, becomes
the name of the newly created neighborhood.
nhood1
followed by a move
from nhood2
). It provides simultaneous
moves from nhood1
and nhood2
. In
that sense, only moves from nhood1
and
nhood2
that mention different parts of the
solution will result in a sensible move; others which mention
the same part of the solution will most likely create unwanted
interactions and will typically be illegal.
In such a composed neighborhood, the member function
IloNHood::define
calls
IloNHood::define
on both nhood1
and nhood2
,
returning the composed solution delta; the function
IloNHood::notify
notifies both nhood1
and nhood2
;
the function IloNHood::start
calls
IloNHood::start
for both nhood1
and nhood2
;and the function
IloNHood::getSize
returns the
product of the sizes of nhood1
and nhood2
.
See Also:
IloConcatenate, IloNHood, operator*