Java Reference
Java Reference
Detailed Description
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. T2 must be on the vehicle when a1 is visited: ... –> a2 –> ... –> a1 –> ... –> r2 –> ... - If T3 is required when removing T1, T3 needs to be on the vehicle when r1 is visited: ... –> A –> ... –> r1 –> ... OR ... –> r1 –> ... –> UV –> ...
Definition at line 14 of file TypeRegulationsConstraint.java.
Public Member Functions | |
| synchronized void | delete () |
| TypeRegulationsConstraint (RoutingModel model) | |
| void | post () |
| This method is called when the constraint is processed by the solver. More... | |
| void | initialPropagate () |
| This method performs the initial propagation of the constraint. More... | |
| String | toString () |
| void | postAndPropagate () |
| Calls Post and then Propagate to initialize the constraints. More... | |
| void | accept (ModelVisitor visitor) |
| Accepts the given visitor. More... | |
| boolean | isCastConstraint () |
| Is the constraint created by a cast from expression to integer variable? More... | |
| IntVar | var () |
| Creates a Boolean variable representing the status of the constraint (false = constraint is violated, true = constraint is satisfied). More... | |
| Solver | solver () |
| void | freezeQueue () |
| This method freezes the propagation queue. More... | |
| void | unfreezeQueue () |
| This method unfreezes the propagation queue. More... | |
| void | enqueueDelayedDemon (Demon d) |
| This method pushes the demon onto the propagation queue. More... | |
| void | enqueueVar (Demon d) |
| void | reset_action_on_fail () |
| This method clears the failure callback. More... | |
| void | set_variable_to_clean_on_fail (IntVar v) |
| Shortcut for variable cleaner. More... | |
| String | name () |
| Object naming. More... | |
| void | setName (String name) |
| boolean | hasName () |
| Returns whether the object has been named or not. More... | |
| String | baseName () |
| Returns a base name for automatic naming. More... | |
Protected Member Functions | |
| TypeRegulationsConstraint (long cPtr, boolean cMemoryOwn) | |
Constructor & Destructor Documentation
◆ TypeRegulationsConstraint() [1/2]
|
inlineprotected |
Definition at line 17 of file TypeRegulationsConstraint.java.
◆ TypeRegulationsConstraint() [2/2]
|
inline |
Definition at line 42 of file TypeRegulationsConstraint.java.
Member Function Documentation
◆ accept()
|
inlineinherited |
Accepts the given visitor.
Reimplemented in Pack.
Definition at line 70 of file gen/java/com/google/ortools/constraintsolver/Constraint.java.
◆ baseName()
|
inlineinherited |
Returns a base name for automatic naming.
Reimplemented in BooleanVar.
Definition at line 115 of file PropagationBaseObject.java.
◆ delete()
|
inline |
Reimplemented from Constraint.
Definition at line 31 of file TypeRegulationsConstraint.java.
◆ enqueueDelayedDemon()
|
inlineinherited |
This method pushes the demon onto the propagation queue.
It will be processed directly if the queue is empty. It will be enqueued according to its priority otherwise.
Definition at line 72 of file PropagationBaseObject.java.
◆ enqueueVar()
|
inlineinherited |
Definition at line 76 of file PropagationBaseObject.java.
◆ freezeQueue()
|
inlineinherited |
This method freezes the propagation queue.
It is useful when you need to apply multiple modifications at once.
Definition at line 58 of file PropagationBaseObject.java.
◆ hasName()
|
inlineinherited |
Returns whether the object has been named or not.
Definition at line 108 of file PropagationBaseObject.java.
◆ initialPropagate()
|
inline |
This method performs the initial propagation of the constraint.
It is called just after the post.
Reimplemented from Constraint.
Definition at line 50 of file TypeRegulationsConstraint.java.
◆ isCastConstraint()
|
inlineinherited |
Is the constraint created by a cast from expression to integer variable?
Definition at line 77 of file gen/java/com/google/ortools/constraintsolver/Constraint.java.
◆ name()
|
inlineinherited |
Object naming.
Definition at line 97 of file PropagationBaseObject.java.
◆ post()
|
inline |
This method is called when the constraint is processed by the solver.
Its main usage is to attach demons to variables.
Reimplemented from Constraint.
Definition at line 46 of file TypeRegulationsConstraint.java.
◆ postAndPropagate()
|
inlineinherited |
Calls Post and then Propagate to initialize the constraints.
This is usually done in the root node.
Definition at line 63 of file gen/java/com/google/ortools/constraintsolver/Constraint.java.
◆ reset_action_on_fail()
|
inlineinherited |
This method clears the failure callback.
Definition at line 83 of file PropagationBaseObject.java.
◆ set_variable_to_clean_on_fail()
|
inlineinherited |
Shortcut for variable cleaner.
Definition at line 90 of file PropagationBaseObject.java.
◆ setName()
|
inlineinherited |
Definition at line 101 of file PropagationBaseObject.java.
◆ solver()
|
inlineinherited |
Definition at line 50 of file PropagationBaseObject.java.
◆ toString()
|
inlineinherited |
Reimplemented from PropagationBaseObject.
Reimplemented in Pack, and GlobalVehicleBreaksConstraint.
Definition at line 56 of file gen/java/com/google/ortools/constraintsolver/Constraint.java.
◆ unfreezeQueue()
|
inlineinherited |
This method unfreezes the propagation queue.
All modifications that happened when the queue was frozen will be processed.
Definition at line 65 of file PropagationBaseObject.java.
◆ var()
|
inlineinherited |
Creates a Boolean variable representing the status of the constraint (false = constraint is violated, true = constraint is satisfied).
It returns nullptr if the constraint does not support this API.
Definition at line 84 of file gen/java/com/google/ortools/constraintsolver/Constraint.java.
The documentation for this class was generated from the following file: