PYOMO: Как создать расслабление в ограничениях?(Переписать ограничение из CPLEX в Pyomo) - PullRequest
3 голосов
/ 05 апреля 2019

Я пытаюсь перенести модель, написанную на GAMS, с помощью решателя CPLEX в Pyomo.В CPLEX есть функция, позволяющая разработчикам моделей ослаблять ограничения и переменные решения, если модель неосуществима - FeasOpt (для Feasible Optimization).У меня возникают проблемы при воссоздании этой автоматической функции релаксации неосуществимости в Pyomo без необходимости использовать слабые переменные.

Ниже приведен фрагмент моего кода GAMS / CPLEX:

Ограничение на расслабление, которое стоитневыполнимость:

RotationOnce1(R)$(sum(W$B1(W), VAC(R,W))<4 or sum(W$B1(W), AIRP(R,W))<4).. | sum(Rot$Act(Rot), y1(R,Rot))=e=1;

Назначение предпочтения релаксации:

*$ontext
$onecho > cplex.opt
feasopt 1
feasoptmode 1

x.feaspref 0
RotationOnce1.feaspref 1

Как я могу воссоздать релаксацию ограничения (без переменных Slack) в pyomo?Переписывание фрагмента CPLEX выше в Pyomo было бы полезно

1 Ответ

1 голос
/ 08 апреля 2019

Кажется, что Pyomo не реализует функцию FeasOpt: https://github.com/Pyomo/pyomo/search?q=feasopt&unscoped_q=feasopt

...