Нелинейные ограничения Cplex - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь решить проблему квадратичного программирования с помощью API Cplex Python от IBM.Задача имеет нелинейные ограничения.Принимает ли Cplex нелинейное ограничение для квадратичного программирования?Более конкретно, учитывая неизвестные [x1, x2, x3, x4, x5], мне нужно ввести два ограничения

Ограничение A (x2 + x3) / (1-x1) = z1

Ограничение B (x4 + x5) / (1-x1) = z2

Где z1 и z2 - известные числа.

Cplex имеет инструкции о том, как вводить квадратичные ограничения, но я не могу найти ничего при вводе нелинейных ограничений в целом.

1 Ответ

0 голосов
/ 30 сентября 2018

может

from docplex.mp.model import Model


mdl = Model(name='example')

z1=2;
z2=3;


mdl.x1 = mdl.continuous_var(0,10,name='x1')
mdl.x2 = mdl.continuous_var(0,10,name='x2')
mdl.x3 = mdl.continuous_var(0,10,name='x3')
mdl.x4 = mdl.continuous_var(0,10,name='x4')
mdl.x5 = mdl.continuous_var(0,10,name='x5')


mdl.add_constraint(mdl.x2+mdl.x3==z1*(1-mdl.x1), 'A')
mdl.add_constraint(mdl.x4+mdl.x5==z2*(1-mdl.x1), 'B')

mdl.solve()

print(mdl.x1.solution_value);
print(mdl.x2.solution_value);
print(mdl.x3.solution_value);
print(mdl.x4.solution_value);
print(mdl.x5.solution_value);

помочь?

...