Написание ограничений в PuLP - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь написать следующие ограничения в PuLP.

  1. Выберите между A и B; Я могу выбрать максимум один и не могу выбрать оба.
  2. Всего имеется 10 переменных A-J. Из A-F я должен выбрать по крайней мере 3 в моем решении.

Не могли бы вы посоветовать, как написать эти ограничения?

1 Ответ

0 голосов
/ 05 июля 2018

Простая формулировка для 10 бинарных переменных будет выглядеть следующим образом (соответствует A-J)

x1=LpVariable("x1",0,1,LpInteger)
x2=LpVariable("x2",0,1,LpInteger)
...
x10=LpVariable("x10",0,1,LpInteger)
# add an appropriate objective
...
# A or B or none but not both
prob += x1 + x2 <= 1
# At least 3 out of 10
prob += x1 + x2 + ... + x10 >= 3
...