Как настроить PuLP для вызова решателя GLPK - PullRequest
1 голос
/ 26 марта 2019

Я использую библиотеку PuLP в Python для решения проблемы MILP.Я успешно выполнил свою задачу с помощью решателя по умолчанию (CBC).Теперь я хотел бы использовать PuLP с другим решателем (GLPK). Как настроить PuLP с GLPK?

Я провел онлайн-исследование и нашел информацию о том, как использовать GLPK (например, с lp_prob.solve(pulp.GLPK_CMD())), но не нашел информации о том, какфактически настроить PuLP с GLPK (или любым другим решателем в этом отношении), чтобы он нашел мою установку GLPK.Я уже установил GLPK отдельно (но я не добавил его в переменную среды PATH).

Я выполнил команду pulp.pulpTestAll()

и получил:

Solver <class 'pulp.solvers.GLPK_CMD'> unavailable

Я знаю, что я должен получить «пройденный», а не «недоступный», чтобы иметь возможность его использовать.

1 Ответ

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

Более подробно прочитав код и протестировав некоторые вещи, я наконец-то узнал, как использовать GLPK с PuLP, не меняя ничего в самом пакете PuLP.

Вам необходимо пройти путь какАргумент GLPK_CMD в решении следующим образом (замените свой glpsol путь):

lp_prob.solve(GLPK_CMD(path = 'C:\\Users\\username\\glpk-4.65\\w64\\glpsol.exe')

Вы также можете передавать параметры таким образом, например,

lp_prob.solve(GLPK_CMD(path = 'C:\\Users\\username\\glpk-4.65\\w64\\glpsol.exe', options = ["--mipgap", "0.01","--tmlim", "1000"])

...