0
votes

I have to solve a vehicle routing problem for production level application .

Problem Statement :-

Vehicle has :-

  • Type
  • Capacity
  • Fleet Time
  • cost = fixed cost + variable cost
  • Variable cost is added if we are using vehicle after Fleet Time.

Pickup Point :-

  • Load to be picked . We have to pick all the load
  • Time Slot in which we can pickup.
  • Time Spent to pick the load.

Destination Point :-

  • Vehicle must reach in that Time Slot only .
  • Time Spent to unload.

Vehicle can come back to starting point again or go to destination point directly .

Destination Point will be at distance from Pickup points . So multiple small Vehicles can meet at single point(Can be starting point or We will define define the point always) and then feed its shipments to Larger vehicle .

Larger vehicle can directly go to destination point .

We can also run Larger vehicle in first place only . It will pickup the load from all the points . Then go to destination point .

It would be good if i am getting the no. of vehicles also as part of routing output .

I am new to this area . Can jsprit or optaplanner provide solution for this ?

1
It's a typical case for OptaPlanner too. See this video on VRPTW. Can you mix pickups and dropoffs? For example, taxi's or ambulances can't pickup 2 separate passengers, but DHL or Fedex can pickup at multiple locations before doing a dropoff. That impacts the domain model. - Geoffrey De Smet
Yes , we can mix pickups and dropoffs . It is similar to DHL or Fedex . - T.J.
Can pickups be delivered directly (without going back to the depot)? - Geoffrey De Smet
Can we handle situation like this :- Multiple small Vehicles can meet at single point(Can be starting point or We will define define the point always) and then feed its shipments to Larger vehicle . Larger vehicle can directly go to destination point . How to model that point ? - T.J.
Yes pickups can be delivered directly without going to deport . We have a very large truck . Small vans can come to that truck and truck can go to destination . No need to go to depot . Truck location will be defined by us . - T.J.

1 Answers

1
votes

I can say both jsprit and optaplanner can solve this. I am more familiar with jsprit. There are lots of example given in jsprit you can try that also. You can start with a simple example: https://github.com/graphhopper/jsprit/blob/master/jsprit-examples/src/main/java/com/graphhopper/jsprit/examples/SimpleExample.java

Then there is example for pick up and delivery problem having time window. https://github.com/graphhopper/jsprit/blob/master/jsprit-examples/src/main/java/com/graphhopper/jsprit/examples/PickupAndDeliveryExample.java