From 663286390555c85c307d5cd23ef1596f6f97b142 Mon Sep 17 00:00:00 2001 From: watchdogs132 Date: Thu, 10 Nov 2022 21:03:28 +0530 Subject: [PATCH] closed model in vrp_initial_routes --- .../samples/vrp_initial_routes.cc | 18 +++++++++++------ .../samples/vrp_initial_routes.py | 20 ++++++++++++++----- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/ortools/constraint_solver/samples/vrp_initial_routes.cc b/ortools/constraint_solver/samples/vrp_initial_routes.cc index 4b823145e8..93bf850fdc 100644 --- a/ortools/constraint_solver/samples/vrp_initial_routes.cc +++ b/ortools/constraint_solver/samples/vrp_initial_routes.cc @@ -147,7 +147,17 @@ void VrpInitialRoutes() { routing.GetMutableDimension("Distance")->SetGlobalSpanCostCoefficient(100); // [END distance_constraint] - // Get initial solution from routes. + // [START parameters] + RoutingSearchParameters searchParameters = DefaultRoutingSearchParameters(); + searchParameters.set_first_solution_strategy(FirstSolutionStrategy_Value_PATH_CHEAPEST_ARC); + searchParameters.set_local_search_metaheuristic(LocalSearchMetaheuristic::GUIDED_LOCAL_SEARCH); + searchParameters.mutable_time_limit()->set_seconds(5); + // When an initial solution is given for search, the model should be closed, + // otherwise the solver will ignore the search parameters. + routing.CloseModelWithParameters(searchParameters); + // [END parameters] + + // Get initial solution from routes after closing the model. // [START print_initial_solution] const Assignment* initial_solution = routing.ReadAssignmentFromRoutes(data.initial_routes, true); @@ -155,16 +165,12 @@ void VrpInitialRoutes() { LOG(INFO) << "Initial solution: "; PrintSolution(data, manager, routing, *initial_solution); // [END print_initial_solution] - // Setting first solution heuristic. - // [START parameters] - RoutingSearchParameters searchParameters = DefaultRoutingSearchParameters(); - // [END parameters] // Solve from initial solution. // [START solve] const Assignment* solution = routing.SolveFromAssignmentWithParameters( initial_solution, searchParameters); - // [START solve] + // [END solve] // Print solution on console. // [START print_solution] diff --git a/ortools/constraint_solver/samples/vrp_initial_routes.py b/ortools/constraint_solver/samples/vrp_initial_routes.py index 35d811615d..673ecb8508 100755 --- a/ortools/constraint_solver/samples/vrp_initial_routes.py +++ b/ortools/constraint_solver/samples/vrp_initial_routes.py @@ -16,6 +16,7 @@ """Vehicles Routing Problem (VRP).""" # [START import] +from ortools.constraint_solver import routing_enums_pb2 from ortools.constraint_solver import pywrapcp # [END import] @@ -181,6 +182,20 @@ def main(): distance_dimension.SetGlobalSpanCostCoefficient(100) # [END distance_constraint] + # Set default search parameters. + # [START parameters] + search_parameters = pywrapcp.DefaultRoutingSearchParameters() + search_parameters.first_solution_strategy = ( + routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC) + search_parameters.local_search_metaheuristic = ( + routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH) + search_parameters.time_limit.FromSeconds(5) + # When an initial solution is given for search, the model should be closed, + # otherwise the solver will ignore the search parameters. + routing.CloseModelWithParameters(search_parameters) + # [END parameters] + + # Get initial solution from routes after closing the model. # [START print_initial_solution] initial_solution = routing.ReadAssignmentFromRoutes(data['initial_routes'], True) @@ -188,11 +203,6 @@ def main(): print_solution(data, manager, routing, initial_solution) # [END print_initial_solution] - # Set default search parameters. - # [START parameters] - search_parameters = pywrapcp.DefaultRoutingSearchParameters() - # [END parameters] - # Solve the problem. # [START solve] solution = routing.SolveFromAssignmentWithParameters(