Choice of the most optimal routing options

139 views
Skip to first unread message

paraCRM

unread,
Nov 28, 2017, 6:06:01 AM11/28/17
to or-tools-discuss
Hello!

Can you help me, pls, to choose the most optimal routing options for my model (on Python)
I have 1 depot and 3000+ customers.
Each customer has his own time windows.
We haven't got customer demands constraint (vehicle need to process 1 unit per each customer).
We haven't got vehicle capacity constraint, so, in ideal world, i'll accept the solution, where 1 vehicle could process all of 3000+ customers on 1 route.
On each customer we have fix service time, which sets by demands matrix.
At last we have max route duration per each vehicle constraint = 12h = 43200sec

So i have:
1. CreateDistanceCallback - by haversine formula
2. CreateServiceTimeCallback - from demands matrix
3. CreateTravelTimeCallback - from CreateDistanceCallback and fix speed
4. CreateTotalTimeCallback - from CreateServiceTimeCallback and CreateTravelTimeCallback, like in standart example
5. routing = pywrapcp.RoutingModel(num_locations, num_vehicles, depot - all vehicles start and end their routes in depot
6. routing.AddDimension(total_time_callback, null_capacity_slack_time, vehicle_capacity_time, fix_start_cumul_to_zero_time, name_time) - for close time of depot and fix_start_cumul_to_zero_time = False, so vehicles can start later then open time (0) of depot

7. time_dimension = routing.GetMutableDimension("Time")

for locations in xrange(1, num_locations):
start = start_times[locations]
end = end_times[locations]
time_dimension.CumulVar(locations).SetRange(start, end)

for vehicle_limit in xrange(num_vehicles):
time_dimension.SetSpanUpperBoundForVehicle(43200, vehicle_limit)

This is for customers time windows constraint and max route duration per each vehicle constraint

8. assignment = routing.SolveWithParameters(search_parameters)

9. And 4 initial data matrix - locations, demands (equal service times per each customer), start and end times time windows per each customer

So the model is almost the same of the standart example, except max route duration per each vehicle constraint.

My target function is to minimize vehicle count. Max - 80 vehicles, ideal - 50 vehicles.

This is a really hardware and time hard model, so i have 2 questions:

1. Which first_solution_strategy and local_search_metaheuristic will be the best for my task? Maybe it is nessesary to customize additional parameters from this Search limits, Search control, First solution heuristics, Local search options or Propagation control?
2. Is it correct to use routing.SetArcCostEvaluatorOfAllVehicles(dist_callback) (same as standart example) in my situation where my target function is to minimize vehicle count?

I would be very grateful for any help. I hope, that anyone have experience in solving such big models, task and problems.

Thanks.

paraCRM

unread,
Nov 30, 2017, 9:13:39 AM11/30/17
to or-tools-discuss
Count of nodes decreased to 2300. But i think this doesn't matter.
But my question is still open.

вторник, 28 ноября 2017 г., 14:06:01 UTC+3 пользователь paraCRM написал:
Reply all
Reply to author
Forward
0 new messages