Uses of Class
com.google.ortools.constraintsolver.PropagationBaseObject
Packages that use PropagationBaseObject
-
Uses of PropagationBaseObject in com.google.ortools.constraintsolver
Subclasses of PropagationBaseObject in com.google.ortools.constraintsolverModifier and TypeClassDescriptionclass
An Assignment is a variable -> domains mapping, used
to report solutions to the user.class
class
class
Cast constraints are special channeling constraints designed
to keep a variable in sync with an expression.class
A constraint is the main modeling object.class
class
GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on
all vehicles in the dimension passed to its constructor.
It is intended to be used for dimensions representing time.
A break constraint ensures break intervals fit on the route of a vehicle.
For a given vehicle, it forces break intervals to be disjoint from visit
intervals, where visit intervals start at CumulVar(node) and last for
node_visit_transit[node].class
Interval variables are often used in scheduling.class
The class IntExpr is the base of all integer expressions in
constraint programming.
It contains the basic protocol for an expression:
- setting and modifying its bound
- querying if it is bound
- listening to events modifying its bounds
- casting it into a variable (instance of IntVar)class
The class IntVar is a subset of IntExpr.class
class
A sequence variable is a variable whose domain is a set of possible
orderings of the interval variables.class
The following constraint ensures that incompatibilities and requirements
between types are respected.
It verifies both "hard" and "temporal" incompatibilities.
Two nodes with hard incompatible types cannot be served by the same vehicle
at all, while with a temporal incompatibility they can't be on the same
route at the same time.
The VisitTypePolicy of a node determines how visiting it impacts the type
count on the route.
For example, for
- three temporally incompatible types T1 T2 and T3
- 2 pairs of nodes a1/r1 and a2/r2 of type T1 and T2 respectively, with
- a1 and a2 of VisitTypePolicy TYPE_ADDED_TO_VEHICLE
- r1 and r2 of policy ADDED_TYPE_REMOVED_FROM_VEHICLE
- 3 nodes A, UV and AR of type T3, respectively with type policies
TYPE_ADDED_TO_VEHICLE, TYPE_ON_VEHICLE_UP_TO_VISIT and
TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED
the configurations
UV --> a1 --> r1 --> a2 --> r2, a1 --> r1 --> a2 --> r2 --> A and
a1 --> r1 --> AR --> a2 --> r2 are acceptable, whereas the configurations
a1 --> a2 --> r1 --> ..., or A --> a1 --> r1 --> ..., or
a1 --> r1 --> UV --> ... are not feasible.
It also verifies same-vehicle and temporal type requirements.
A node of type T_d with a same-vehicle requirement for type T_r needs to be
served by the same vehicle as a node of type T_r.
Temporal requirements, on the other hand, can take effect either when the
dependent type is being added to the route or when it's removed from it,
which is determined by the dependent node's VisitTypePolicy.
In the above example:
- If T3 is required on the same vehicle as T1, A, AR or UV must be on the
same vehicle as a1.
- If T2 is required when adding T1, a2 must be visited *before* a1, and if
r2 is also visited on the route, it must be *after* a1, i.e.Methods in com.google.ortools.constraintsolver with parameters of type PropagationBaseObjectModifier and TypeMethodDescriptionstatic long
PropagationBaseObject.getCPtr
(PropagationBaseObject obj) boolean
Solver.hasName
(PropagationBaseObject object) Returns whether the object has been named or not.static final String
mainJNI.PropagationBaseObject_baseName
(long jarg1, PropagationBaseObject jarg1_) static final void
mainJNI.PropagationBaseObject_enqueueDelayedDemon
(long jarg1, PropagationBaseObject jarg1_, long jarg2, Demon jarg2_) static final void
mainJNI.PropagationBaseObject_enqueueVar
(long jarg1, PropagationBaseObject jarg1_, long jarg2, Demon jarg2_) static final void
mainJNI.PropagationBaseObject_freezeQueue
(long jarg1, PropagationBaseObject jarg1_) static final boolean
mainJNI.PropagationBaseObject_hasName
(long jarg1, PropagationBaseObject jarg1_) static final String
mainJNI.PropagationBaseObject_name
(long jarg1, PropagationBaseObject jarg1_) static final void
mainJNI.PropagationBaseObject_reset_action_on_fail
(long jarg1, PropagationBaseObject jarg1_) static final void
mainJNI.PropagationBaseObject_set_variable_to_clean_on_fail
(long jarg1, PropagationBaseObject jarg1_, long jarg2, IntVar jarg2_) static final void
mainJNI.PropagationBaseObject_setName
(long jarg1, PropagationBaseObject jarg1_, String jarg2) static final long
mainJNI.PropagationBaseObject_solver
(long jarg1, PropagationBaseObject jarg1_) static final String
mainJNI.PropagationBaseObject_toString
(long jarg1, PropagationBaseObject jarg1_) static final void
mainJNI.PropagationBaseObject_unfreezeQueue
(long jarg1, PropagationBaseObject jarg1_) static final boolean
mainJNI.Solver_hasName
(long jarg1, Solver jarg1_, long jarg2, PropagationBaseObject jarg2_) static long
PropagationBaseObject.swigRelease
(PropagationBaseObject obj)