The problem I'm facing is:
pickups goods from many places, not from depots.
there is no main/depot place. All drivers may start driving wherever they want.
dynamically adding goods locations and their destinations (while drivers are on the road).
There could be only one driver to reduce the complexity of the problem.
Do you know any implementations to solve that problem?
Here's an implementation with OptaPlanner.
Related
I am new to OptPlanner but I have a reasonable understanding of constraint solving alebit somewhat dated.
I have a problem I want to model. On the one hand the National Grid have requirements to save electricity between defined time slots on specific days in specific locations (post codes). On the other individuals with static or mobile batteries charge their batteries at some point during a 24 hour cycle and have a need to get a specific amount of charge into those batteries. I need to model a set of constraints at the top (the grid) and the constraints at the bottom (the individuals) to ensure the individuals get what they need and the grid saves what it requires.
What model should I pick and why?
I am just starting this so I have not tried anything yet. I would prefer a Java/SpringBoot solution.
Many thanks for any help.
Steve T
First read the domain modeling guide in the docs to understand my answer below.
https://www.optaplanner.org/docs/optaplanner/latest/design-patterns/design-patterns.html#domainModelingGuide
I think the maintenance scheduling quickstart might be a good start. Code is here:
https://github.com/kiegroup/optaplanner-quickstarts/tree/stable/use-cases/maintenance-scheduling
Motivation: it sounds like there could be gaps between charging at the charging stations, so a chained through time model does not fit. You're not solving a VRP anyway. So I suspect a timegrain model it is, which is what the maintenance scheduling quickstart actually uses.
Trying to model vehicles' emissions, I used the HBEFA model. There is an issue when the vehicles stop( the first two seconds in my scenario) or decelerate so that no emissions data are recorded during these situations. While I replaced my emission models with PHEMlight, I noticed that getting the license from TU Graz is a must for modeling the buses' emissions which is not possible for me at the moment. Do you have any idea to solve this issue?
regards,
Ali
Essentially this is an open bug in SUMO see https://github.com/eclipse/sumo/issues/2110 and the references therein. There is currently no good workaround except for manually adapting the emission values after the run for those vehicles by using the emissions for a slow moving bus. I will try to resolve this for the next release though
I have been assigned a project related to VRP in which I have a fleet of trucks scattered in different locations that need to pick up and deliver goods from and to different locations.
Google's OR tools works on using depot for optimization, but in my case there is no starting or ending depot and I need to create a planner that can find the optimised routes for all the vehicles with different constraints.
Im struggling to find a solution for such problem, please help for the same.
Can Optaplanner be used to solve the waste collection problem? The waste collection trucks will need to go to the dump site when full and then return to collect from the remaining locations.
Certainly. Check the vehicle routing examples provided with Optaplanner. Waste collection is a very similar problem. You want to maximize the collected waste while minimizing transportation cost (distance driven, number of vehicles used...).
In contrast to the VRP here you do not deliver goods starting from the depot fully loaded - instead, the vehicles depart empty from the depot and then pickup waste until their capacity limit is reached and then return to the depot/dump site.
I'm using Optaplanner VRP tool to solve some VRP instances. Is there a way to view the number of vehicles being used in real-time? Also, what algorithm does Optaplanner employ for solving VRP?
Thanks,
Mayank
When you're listening to new best solution events in real time (Solver.addSolverListener), it's straightforward to determine the number of vehicles used, by iterating all Vehicle instances and checking if nextVisit isn't null.
Note that if you want to minimize the number of vehicle used, you'll need to add a hard or softt constraint for that, which is simple: when Vehicle(nextVisit != null) then addHard(-1); end
As for the algorithm used to solve VRP: check the solver config XML. We support many algo's, in the vrp benchmark config XML we let them battle against each other to determine the best algo for production.