Mam skrypt Python, w którym muszę rozwiązać problem programowania liniowego. Połów jest taki, że rozwiązanie musi być binarne. Innymi słowy, potrzebuję odpowiednika funkcji MATLABa bintprog. NumPy i SciPy nie wydają się mieć takiej procedury. Czy ktoś ma sugestie, w jaki sposób można wykonać jedną z tych trzech rzeczy:binarne programowanie liniowe w Pythonie
Znajdź bibliotekę Python, która zawiera taką funkcję.
Ogranicz problem tak, aby można go było rozwiązać za pomocą bardziej ogólnego programu do programowania liniowego.
Interfejs Python z MATLAB do bezpośredniego użycia z bintprog.
dodając ograniczenie '0 <= x <= 1 'nie robi program binarny. jest jedynie rozluźnieniem LP programu binarnego i może być wykorzystany jako część metody rozwiązania programu binarnego. – Peter
Mówię, że dodać ograniczenie 0 <= x <= 1 do programu Integer (które można rozwiązać za pomocą CVXOPT jak wskazano powyżej), aby przekształcić Integer Program w program binarny. – Alejandro
No .... tak i nie. Program liniowy ze zmiennymi binarnymi/całkowitymi nazywany jest tylko ILP (całkowity program liniowy). Program liniowy zawierający zarówno zmienne binarne/całkowite ORAZ zmienne ciągłe jest nazywany MILP (program liniowy o mieszanej liczbie całkowitej). Terminy "całkowity" i "binarny" są używane zamiennie w tym kontekście, ponieważ każda zmienna całkowita może być reprezentowana przy użyciu wielu zmiennych binarnych (to jest SOS typu 1). Ale masz rację mówiąc, że należy nałożyć 0 <= x <= 1, jeśli x jest zadeklarowane jako ogólna zmienna całkowita. Jednak w większości przypadków x może być bezpośrednio zadeklarowane jako zmienna binarna. – Gilead