notebooks: sync

This commit is contained in:
Corentin Le Molgat
2022-11-25 10:17:29 +01:00
parent 88645c398f
commit 611626522e
6 changed files with 26 additions and 22 deletions

View File

@@ -83,6 +83,7 @@
"metadata": {},
"outputs": [],
"source": [
"from ortools.constraint_solver import routing_enums_pb2\n",
"from ortools.constraint_solver import pywrapcp\n",
"\n",
"\n",
@@ -229,14 +230,23 @@
" distance_dimension = routing.GetDimensionOrDie(dimension_name)\n",
" distance_dimension.SetGlobalSpanCostCoefficient(100)\n",
"\n",
" # Close model with the custom search parameters.\n",
" search_parameters = pywrapcp.DefaultRoutingSearchParameters()\n",
" search_parameters.first_solution_strategy = (\n",
" routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC)\n",
" search_parameters.local_search_metaheuristic = (\n",
" routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH)\n",
" search_parameters.time_limit.FromSeconds(5)\n",
" # When an initial solution is given for search, the model will be closed with the default\n",
" # search parameters unless it is explicitly closed with the custom search parameters.\n",
" routing.CloseModelWithParameters(search_parameters)\n",
"\n",
" # Get initial solution from routes after closing the model.\n",
" initial_solution = routing.ReadAssignmentFromRoutes(data['initial_routes'],\n",
" True)\n",
" print('Initial solution:')\n",
" print_solution(data, manager, routing, initial_solution)\n",
"\n",
" # Set default search parameters.\n",
" search_parameters = pywrapcp.DefaultRoutingSearchParameters()\n",
"\n",
" # Solve the problem.\n",
" solution = routing.SolveFromAssignmentWithParameters(\n",
" initial_solution, search_parameters)\n",

View File

@@ -94,10 +94,10 @@
"from ortools.linear_solver import pywraplp\n",
"\n",
"\n",
"def main(sol='CBC'):\n",
"def main():\n",
"\n",
" # Create the solver.\n",
" solver = pywraplp.Solver.CreateSolver(sol)\n",
" solver = pywraplp.Solver.CreateSolver('glop')\n",
" if not solver:\n",
" return\n",
"\n",
@@ -169,15 +169,7 @@
" print()\n",
"\n",
"\n",
"\n",
"sol = 'CBC'\n",
"if len(sys.argv) > 1:\n",
" sol = sys.argv[1]\n",
" if sol != 'GLPK' and sol != 'CBC':\n",
" print('Solver must be either GLPK or CBC')\n",
" sys.exit(1)\n",
"\n",
"main(sol)\n",
"main()\n",
"\n"
]
}

View File

@@ -273,8 +273,9 @@
" item_coeffs = collections.defaultdict(list)\n",
"\n",
" start_time = time.time()\n",
" solver = pywraplp.Solver('Steel',\n",
" pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING)\n",
" solver = pywraplp.Solver.CreateSolver('cbc')\n",
" if not solver:\n",
" return\n",
"\n",
" objective_vars = []\n",
" objective_coeffs = []\n",

View File

@@ -97,9 +97,10 @@
"\n",
"_OUTPUT_PROTO = flags.DEFINE_string(\n",
" 'output_proto', '', 'Output file to write the cp_model proto to.')\n",
"_PARAMS = flags.DEFINE_string('params',\n",
" 'num_search_workers:16,log_search_progress:true',\n",
" 'Sat solver parameters.')\n",
"_PARAMS = flags.DEFINE_string(\n",
" 'params',\n",
" 'num_search_workers:16,log_search_progress:true,max_time_in_seconds:10.0',\n",
" 'Sat solver parameters.')\n",
"_MODEL = flags.DEFINE_string('model', 'rotation',\n",
" '\\'duplicate\\' or \\'rotation\\' or \\'optional\\'')\n",
"\n",

View File

@@ -220,9 +220,9 @@
" # Solve and print out the solution.\n",
" solver = cp_model.CpSolver()\n",
" # To benefit from the linearization of the circuit constraint.\n",
" solver.parameters.linearization_level = 2\n",
" solver.parameters.max_time_in_seconds = 15.0\n",
" #solver.parameters.log_search_progress = True\n",
" solver.parameters.num_search_workers = 8\n",
" # solver.parameters.log_search_progress = True\n",
"\n",
" solver.Solve(model)\n",
" #print(solver.ResponseStats())\n",

View File

@@ -236,7 +236,7 @@
" solver = cp_model.CpSolver()\n",
" solver.parameters.num_search_workers = 8\n",
" solver.parameters.max_time_in_seconds = 15.0\n",
" #solver.parameters.log_search_progress = True\n",
" # solver.parameters.log_search_progress = True\n",
"\n",
" status = solver.Solve(model)\n",
" if status == cp_model.FEASIBLE or status == cp_model.OPTIMAL:\n",