[rules-users] How to implement immovable planning entities for vehicle routing problem?

Hagai hagai.shatz at gmail.com
Wed May 7 12:22:33 EDT 2014


I am implementing a vehiclerouting like solution with OptaPlanner
6.0.1.Final.
According to the documentation for continuous planning, the way to 'lock'
parts of the solution is by declaring a movableEntitySelectionFilter on the
planning entity: Section 14.3.1. Immovable planning entities.
However, this does not work well with chained entities where parts of the
solution is calculated, like in the vehiclerouting example.

For example, let's assume the following chains, where [Customer A] and
[Customer C] are immovable:
[Vehicle 1] <- *[Customer A]* <- [Customer B]
[Vehicle 2] <- *[Customer C]* <- [Customer D]

Even if we filter immovable entities, a move to set the variable [Vehicle 2]
as previous standstill to [Customer B] can be selected with the following
result that changes the immovable entity [Customer C]:
[Vehicle 1] <- *[Customer A]* 
[Vehicle 2] <- [Customer B] <- *[Customer C]* <- [Customer D]

A workaround is to filter moves with immovable entities as well as moves
with immovable variables (variables are also entities). However, this can
only work when immovable entities are placed at the beginning of chines
before any movable entities. 

Is there a better way to implement immovable planning entities for vehicle
routing problem?



--
View this message in context: http://drools.46999.n3.nabble.com/How-to-implement-immovable-planning-entities-for-vehicle-routing-problem-tp4029467.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list