Как я могу получить журнал прогресса в Google ИЛИ-Tools?

#python #or-tools

#python #или-tools

Вопрос:

Я использую Google OR-Tools для решения проблемы VRPtw и пытаюсь думать о журнале.
Я предоставляю определенное количество точек посещения и транспортных средств решателю. И я понятия не имею, сколько это занимает времени, что означает даже масштаб времени.
Есть ли у нас какой-либо способ получить информацию о ходе выполнения?
Я знаю, что есть класс SearchLog( https://developers.google.com/optimization/reference/constraint_solver/constraint_solveri/SearchLog). Но я не понимаю, что это может дать мне нужную информацию.

Комментарии:

1. пожалуйста, укажите, на каком языке вы используете или-tools…

2. Спасибо за ответ. Я использую Python.

Ответ №1:

Во-первых, вы должны понять работу решателя в два этапа: сначала он попытается найти первое решение, затем он попытается улучшить его с помощью локального поиска, если включен.

Чтобы получать журнал каждый раз, когда найдено решение, вы можете использовать параметр поиска proto.

 search_parameters.local_search_metaheuristic = (
   routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH)
search_parameters.log_search = True
solution = routing.SolveWithParameters(search_parameters)
  

ссылка: https://github.com/google/or-tools/blob/a0a56698ba8fd07b7f84aee4fc45d891a8cd9828/ortools/constraint_solver/routing_parameters.proto#L414-L423

Затем, если вам нужна очень мелкозернистая трассировка, вы можете включить журнал трассировки, используя параметр маршрутизации proto

 routing_parameters = pywrapcp.DefaultRoutingModelParameters()
routing_parameters.solver_parameters.trace_propagation = True
routing_parameters.solver_parameters.trace_search = True
routing = pywrapcp.RoutingModel(manager, routing_parameters)
  

ссылка: https://github.com/google/or-tools/blob/a0a56698ba8fd07b7f84aee4fc45d891a8cd9828/ortools/constraint_solver/routing_parameters.proto#L431-L433 и
https://github.com/google/or-tools/blob/a0a56698ba8fd07b7f84aee4fc45d891a8cd9828/ortools/constraint_solver/solver_parameters.proto#L77-L81

Также не забывайте, что VRP является NP-жестким….

Комментарии:

1. Спасибо Mizux. Теперь я вижу журнал перехода!