FTL example: find next orders for vehicles

This forum deals with any kind of trip optimization whether it is automatic planning or manual dispatching, refering to transport orders or service planning.
Post Reply
User avatar
Bernd Welter
Site Admin
Posts: 2574
Joined: Mon Apr 14, 2014 10:28 am
Contact:

FTL example: find next orders for vehicles

Post by Bernd Welter »

Hi there,

this week I was playing with a specific challenge provided by my polish colleague Tomasz. Maybe a good story to share with you: here is the given input data:
The last positions of a bunch of available FTL vehicles. I also know the country where they remain.
The last positions of a bunch of available FTL vehicles. I also know the country where they remain.
On the other hand we have a set of long distance FTL orders from Western to Eastern Europe.
On the other hand we have a set of long distance FTL orders from Western to Eastern Europe.
Now the target is this
  • Assign not more than 1 order to each vehicle to create a three stop tour:
    • vehicle position
    • order pickup
    • order delivery
  • Minimize the sum of each vehicles distances
Now here's a first output:
On the left we see the gantt which shows the driving times being split into "vehicle position to pickup" and "pickup to delivery"
On the left we see the gantt which shows the driving times being split into "vehicle position to pickup" and "pickup to delivery"
But of course we can add more potential parameters:
Now I also enabled break and rest rules (MultiDays) so we can regognize the interruption of the work because of the grey shift breaks. Important: as the expected tours are long distance tours I is important to allow this: dailyRestPositions = RestPositions.ANYWHERE. If not set the drivers shoudl take their breaks at Depots or at logical position between trips. As each Tour in this case is a single trip this won't work as long as you don't use ANYWHERE.
Now I also enabled break and rest rules (MultiDays) so we can regognize the interruption of the work because of the grey shift breaks. Important: as the expected tours are long distance tours I is important to allow this: dailyRestPositions = RestPositions.ANYWHERE. If not set the drivers shoudl take their breaks at Depots or at logical position between trips. As each Tour in this case is a single trip this won't work as long as you don't use ANYWHERE.
And now we can see that by enforcing the "vehicle position country" has to be equal to "pickup country". This causes some more unscheduled orders. The motivation behind this setting is Cabotage. Though we do not consider cabotage via API it is possible to define a matching between vehicles and orders on a generic level. You can always use the equipment feature for that if you can provide the matching restrictions from outside.
And now we can see that by enforcing the "vehicle position country" has to be equal to "pickup country". This causes some more unscheduled orders. The motivation behind this setting is Cabotage. Though we do not consider cabotage via API it is possible to define a matching between vehicles and orders on a generic level. You can always use the equipment feature for that if you can provide the matching restrictions from outside.
What we could also add to this:
  • Distances and traveltimes are based on distance matrices. I used one matrix to rule them all. Of course the matrix could also be computed for each vehicle.
  • Vehicles real quantities and orders occupied quantities haven't been considered. Possible.
  • Most drivers might need a break earlier to what is applied here: we could also add a drivers work logbook, his history. Just wasn't given here ;-)
  • For each order's locations we could imagine to add time constraints such as earliest pickup, latest delivery, ...
Want to add further constraints? Ask me!

PS:
Bernd Welter
Technical Partner Manager Developer Components
PTV Logistics - Germany

Bernd at... The Forum,LinkedIn, Youtube, StackOverflow
I like the smell of PTV Developer in the morning... :twisted:
Tomasz Lotocki
Posts: 4
Joined: Tue Mar 09, 2021 7:41 am

Re: FTL example: find next orders for vehicles

Post by Tomasz Lotocki »

Thx Bernd, cool sample :idea:
Tomasz Lotocki
Account Executive
PTV Logistics - Poland
User avatar
Bernd Welter
Site Admin
Posts: 2574
Joined: Mon Apr 14, 2014 10:28 am
Contact:

Re: FTL example: find next orders for vehicles

Post by Bernd Welter »

If you liked this article don't forget to check this one about Backhaul calculation / Freight exchange !
Bernd Welter
Technical Partner Manager Developer Components
PTV Logistics - Germany

Bernd at... The Forum,LinkedIn, Youtube, StackOverflow
I like the smell of PTV Developer in the morning... :twisted:
Post Reply