Multiple routes, one vehicle(finite fleet size)

328 views
Skip to first unread message

Zufar Muhamadeev

unread,
Aug 16, 2015, 12:20:25 PM8/16/15
to jsprit-mailing-list
Hello,

Is it possible to make multiple routes with one vehicle? My services have time window. I have tried to use infinte fleet size with multiple vehicles, but i don`t know when should start each vehicle (vehicle2 should start when vehicle1 finished).

Thanks,
Zufar

in...@opendoorlogistics.com

unread,
Aug 16, 2015, 12:52:37 PM8/16/15
to jsprit-ma...@googlegroups.com, jsprit-ma...@googlegroups.com
Do you mean a problem where the same vehicle has to return to the depot several times during the day - either because its empty or needs to be emptied?

If so, have you tried modelling this as a pickup-delivery problem (in jsprit terminology, 'shipments') where one end is the depot?

Philip Welch
Open Door Logistics Limited
Specialists in open source solutions for transport logistics.

Skype: opendoorlogistics


---- On Sun, 16 Aug 2015 17:20:25 +0100 zuf...@gmail.com wrote ----
--
You received this message because you are subscribed to the Google Groups "jsprit-mailing-list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jsprit-mailing-...@googlegroups.com.
To post to this group, send email to jsprit-ma...@googlegroups.com.
Visit this group at http://groups.google.com/group/jsprit-mailing-list.
For more options, visit https://groups.google.com/d/optout.

Zufar Muhamadeev

unread,
Aug 16, 2015, 2:58:59 PM8/16/15
to jsprit-mailing-list, in...@opendoorlogistics.com
Do you mean a problem where the same vehicle has to return to the depot several times during the day - either because its empty or needs to be emptied?
Yes, it needs to emptied

If so, have you tried modelling this as a pickup-delivery problem (in jsprit terminology, 'shipments') where one end is the depot?

 Yes, i have tried. But there was some problems:
Not filled vehicle is going to depot. To fix this we have added HardActivityConstraint, to escape solutions where deliveries mixed with pickups.
Another problem - algorithm speed. As i understand this happens becouse we create to much jobs - for each pickup we create delivery. I belive with common services and one finish location jsprit would found solution faster.

Zufar Muhamadeev

unread,
Aug 21, 2015, 11:15:59 AM8/21/15
to jsprit-mailing-list, in...@opendoorlogistics.com
Another problem with shimpents approach - i can`t set fixed unload time at unload points.
Now i am using common pickups approach. If vehicle don`t satisfies time window i add penalty to coast in custom SolutionCostCalculator. It founds solution faster, and solution quality seems to be good.

Stefan Schroeder

unread,
Aug 24, 2015, 2:45:11 PM8/24/15
to jsprit-ma...@googlegroups.com
Hi,

You can fix "unload times" this way.

Best
Stefan

Am 21/08/15 um 17:15 schrieb Zufar Muhamadeev:
Another problem with shimpents approach - i can`t set fixed unload time at unload points.
Now i am using common pickups approach. If vehicle don`t satisfies time window i add penalty to coast in custom SolutionCostCalculator. It founds solution faster, and solution quality seems to be good.

Stefan Schroeder

unread,
Aug 24, 2015, 2:45:28 PM8/24/15
to jsprit-ma...@googlegroups.com
Hi,

You can fix "unload times" this way.

Best
Stefan

Am 21/08/15 um 17:15 schrieb Zufar Muhamadeev:
Another problem with shimpents approach - i can`t set fixed unload time at unload points.

Now i am using common pickups approach. If vehicle don`t satisfies time window i add penalty to coast in custom SolutionCostCalculator. It founds solution faster, and solution quality seems to be good.
Message has been deleted
Message has been deleted

Zufar Muhamadeev

unread,
Aug 27, 2015, 5:50:34 AM8/27/15
to jsprit-mailing-list
Hi Stefan!

Thanks, for your repply! I will describe my problem more detailed:
There is one vehicle with capacity. There are a lot of points to load cargo. Each point have capacity and time window. And there is one deliver point. Each unload operation last 20 minutes, no matter how much pickups vehicle have in tank.

Here is example:
Vehicle capacity: 50
Pickup 1(P1) - 30
Pickup 2(P2) - 20
Pickup 3(P3) - 25
Pickup 4(P4) - 40
Pickup 5(P5) - 15

With shipment approach possible solution would looks like P1P5D1D5 P4D4 P2P3D2D3. (D1-D5 is deliver points for each shipment.) So at vehicle problem creation step i should know each DeliveryServiceTime . Of couse i could suggest that vehicle will be fulled in each subroute(one run, vehicle load cargo and unload it), and calculate delivery service time depending on the pickup capacity. But any way it would be some time mistake, becouse vehicle seldom will be totally loaded.

Another problem with shipment approach is performance. If we have N points algothm creates N*2 Jobs(because for each pickup we create deliver) and it should select best job among big amount of jobs.
I belive that best decision of this kind of problem could be new approach when we create N pickups and M delivers. We can calculate delivers count depending on the total pickup capacity.

Thanks,
Zufar

Stefan Schröder

unread,
Sep 14, 2015, 2:39:45 AM9/14/15
to jsprit-mailing-list
Hello Zufar,

Interesting problem. However, your problem and your suggested approach requires jsprit to dynamically determine service times and loads (e.g. for delivery). I am pretty sure that you can somehow model it by writing your own states and contraints, and omitting the existing ones. But it wont be easy. I can only propose to have this in mind for jsprit's road map, i.e. that we make things much more configurable. At the same time, I want it as easy to use as possible. This seems to be a difficult task.

Best,
Stefan
Reply all
Reply to author
Forward
0 new messages