Стратегии поиска для OR-инструментов MIP solver в Python - PullRequest
1 голос
/ 07 марта 2019

В настоящее время я решаю проблему назначения смены в OR-инструментах в Python, используя решатель MIP, по одному сотруднику за раз.На каждую отдельную проблему приходится один сотрудник и около 100 смен.Есть много переменных и ограничений (несколько тысяч на сотрудника).Я уже подробно рассмотрел, как улучшить каждое ограничение, но не повезло.Поскольку производительность действительно важна, я хотел дополнительно изучить возможности настройки поисковых стратегий, но тоже не повезло.Кажется, что документация скудная.

Может кто-нибудь помочь мне, дав мне несколько вариантов для изучения?

Я использую решатель:

pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING

Заранее благодарю.Дайте мне знать, если есть какая-либо информация, которую я должен добавить здесь.

1 Ответ

1 голос
/ 07 марта 2019

Вам не повезло. Там нет настройки для поиска через оболочку линейного решателя.

Я бы предложил использовать для этого CP-SAT. Вы можете взглянуть на:

https://github.com/google/or-tools/blob/master/examples/python/shift_scheduling_sat.py

...