My problem is a modification of the Capacitated Vehicle Routing Problem (CVRP) that will eventually include time windows as well.
Since time windows are already built into the examples, it shouldn't be too hard for me to figure them out. However, I need to change one of the core constraints of the CVRP examples, and I'm a bit lost on how to do it.
My Model
In the system I'm trying to model, a Vehicle
can leave its Depot
, go to several different Customers
, and load up on material. However, where my model differs from the examples is that the Vehicle
can visit any Depot
mid-chain to deposit its current load.
Issues
I've been going over the documentation trying to figure out how to do this, and my basic understanding so far is that I'd have to change the definition of Depot
(maybe by implementing Standstill
) to be able to be part of the chain of places the vehicle visits, and/or maybe just integrate Depot
into Customer
with some kind of special rule that a visit to a Depot
empties the vehicle instead of increasing the demand.
I've also been looking at shadow variables and variable listeners, but I don't know if that's the right way to go. It's all a little confusing.
Can anyone offer some tips or advice, or point me in the right direction as to where to start before I dig myself too far into a hole?