2015-10-28 4 views
0

Использование IBM CPLEX, я изо всех сил, чтобы запустить файл MILP, от ограничений, я хотел бы добавить следующую строку:Как умножить переменные ограничений в файле IBM CPLEX MILP?

Subject to a_1 P_1 + 22.62 b_2 + a_2 P_2 + 24.87 b_2 - P_3 + A = 0

В этом случае CPLEX работает, но в некоторых случаях некоторые переменные «склеены» (усеченный), как это:

<variable name "a_1P_1" index="63" value"0" reducedCost="3.71741848184e-06"/>

Попытка решить эту проблему «застрявших переменных», я решил поставить звездочку (*) для обозначения умножения двух неизвестных переменных, например as:

Subject to a_1*P_1 + 22.62 b_2 + a_2*P_2 + 24.87 b_2 - P_3 + A = 0

Но в этом случае CPLEX возвращает ошибку:

CPLEX Error 1608: Line 7:Expected '+','-' or sense, found '*'.

Кто-нибудь есть идеи, как решить эту проблему?

ответ

0

Похоже, вы пытаетесь решить проблему MIQCP.

В документации LP file format: algebraic representation, мы имеем следующее:

Quadratic constraints are allowed in this section. Quadratic terms are specified inside square brackets [] ....

В разделе Квадратичных условий он говорит, что вы можете использовать звездочку (*) и вставки (^) внутри квадратных скобок.