This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
SetBreakDistanceDurationOfVehicle
leads to failed construction-heuristics (examples/cpp/cvrptw.cc
)
#3941
Labels
Help Needed
Modeling/Usage problem
Solver: Routing
Uses the Routing library and the original CP solver
Milestone
I'm trying to make
SetBreakDistanceDurationOfVehicle
work.See also: #3898
It seems that there are either some implementation issues or some hidden assumption / limitations i'm not seeing as this functionality always leads to issues.
Let's focus on one of the official examples and enrich it with this feature. We will see, that the solver won't find any solution anymore.
In my opinion, the solver should be able to find a solution (having some assumptions about it's functionality; maybe i'm wrong and there is some simple issue like greedy/backtracking-free construction-heur which might run into trouble as we might need to backtrack one level (to add a slack before we have reached our limit) if we don't check consistency in advance?):
transits > break-duration
(can only break / add to slack once per transit)Reproducible Code
Run
bazel run -c opt //examples/cpp:cvrptw -- --v 1 --stderrthreshold 0
Run + relax vehicle-capacity + relax time-windows
bazel run -c opt //examples/cpp:cvrptw -- --v 1 --stderrthreshold 0 --RELAX_CAPACITIES --RELAX_TWS
Run + relax
SetBreakDistanceDurationOfVehicle
bazel run -c opt //examples/cpp:cvrptw -- --v 1 --stderrthreshold 0 --RELAX_BREAK_DISTANCE
Remarks
It's really hard to make sense out of it.
profile_propagation
crashes (on official example) #3912With
FLAGS_v=3
, one sees a huge amount of:I1009 17:15:31.252066 196860 constraint_solver.cc:103] Fail
but without instrumentalization of or-tools itself it's hard to find the origin of those: Callers of Solver::Fail()
The text was updated successfully, but these errors were encountered: