closed model in vrp_initial_routes

This commit is contained in:
watchdogs132
2022-11-10 21:03:28 +05:30
committed by Mizux
parent 4b32efed6e
commit 6632863905
2 changed files with 27 additions and 11 deletions

View File

@@ -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]

View File

@@ -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(