2017-02-17 5 views
0

У меня есть несколько ограничений, и они прямо связаны с linprog, но у меня есть два ограничения, в которых есть двоичный компонент. Ниже приводится один:Linprog Python - Реализация двоичных чисел

1 или 0 NABC

Mabc - 11 (1) = 0 < < - М111 - 11 (1) или Mabc - 11 (0) = 0 < < - - M111 - 11 (0)

а являются подстрочными

Как реализовать это в модуле linprog или, возможно, сделать это таким образом, что двоичный файл не требуется.

Вот один, что я могу реализовать в Python, потому что нет двоичного числа с ним связан:

Mabc < = 40

ответ

0

linprog SciPy только решает проблемы линейного программирования.

Ваша проблема не в LP, а в проблеме с смешанным целым (MIP) и, следовательно, не может быть решена (нет доступного там кода Branch-and-Bound или Branch-and-Cut).

Я не получаю ваш пример, но очень вероятно, что его невозможно решить без двоичных/целых переменных.

Вы можете попробовать pulp который был бы самый простой подход получить MIP готовый LIB, который поддерживает формулировку & решения задачи (например CBC и GLPK, CBC автоматически привязывается, по крайней мере, окна-установки).