Что происходит, когда я изменил RHS ограничения (GLPK)? - PullRequest
0 голосов
/ 13 июня 2018

Я увеличиваю RHS ограничения меньше или равного для проблемы MIP с GLPK.Тем не менее, иногда, после повторной оптимизации, GLPK не может найти какое-либо возможное решение в течение срока.Таким образом, я предполагаю, что это не проверяет, было ли предыдущее решение осуществимым.У кого-нибудь есть опыт с этим?Или можете указать мне на документ, который не является самим исходным кодом?

Кроме того, я хотел бы знать, каков рабочий процесс после добавления ограничения для любого другого решателя (например, Gurobi, Cplex, SCIP, CBC) поэтому любая информация полезна.

Ура!

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

После изменения чего-либо в модели вся информация для решения, как правило, отбрасывается, и проблема решается с нуля.Даже если вы ослабили проблему, это не обязательно означает, что ее легче решить для MIP-решателя, в частности, она всегда может привести к разным решениям LP, которые вызывают разветвление, первичный эвристический запуск с другой начальной точки ине повезло в конце.Так что, в конце концов, вам может быть не повезло, что решатель теперь занимает больше времени.

Выполнить «теплый старт» в MIP-решателе довольно сложно.SCIP предоставляет такую ​​функциональность, см. http://scip.zib.de/doc-5.0.1/html/REOPT.php,, но это работает только в том случае, если вы изменили объективные коэффициенты или ужесточили ограничения (это основано на предположении, что все, что раньше было невозможным, все еще невозможно, поэтому вам нужно искать только вдопустимая часть дерева).

В вашем конкретном случае, однако, простое хранение выполнимых решений и пробование их в следующем запуске уже помогло бы.Это то, что SCIP делает по умолчанию.Кроме того, SCIP (как и все упомянутые вами альтернативы) должен быть намного более стабильным и производительным, чем GLPK.См. http://plato.asu.edu/ftp/milpc.html для эталона решателей MIP на MIPLIB 2010, стандартного набора эталонных тестов MIP: GLPK может решить 2 из 87 экземпляров за 2 часа, в то время как CBC решает 53, SCIP решает 76,CPLEX и Gurobi решают все 87 случаев.Также Xpress и SAS очень хорошо работают на наборе тестов.

0 голосов
/ 13 июня 2018

Очевидно, что если вы ослабите формулировку, проблема не может стать неосуществимой (если это было возможно ранее).Так что либо вы что-то неверно интерпретируете, либо в коде есть ошибка.

Я так понимаю, вы еще не пробовали другой решатель.Вы должны определенно сделать это.В целом, все те, что вы упомянули в своем вопросе, считаются более надежными / стабильными, чем GLPK.

...