Решение целочисленных программ на Python с PuLP

Я работаю над пакетом Python для вычисления нескольких инвариантов графа NP-Hard. Текущая версия пакета использует грубую силу почти для всех алгоритмов, но я очень заинтересован в использовании целочисленного программирования, чтобы помочь ускорить вычисления для больших графов.

Например, простая целочисленная программа для решения числа независимости графа n-вершин должна максимизировать формула учитывая ограничения формула, где формула,

Как мне решить эту проблему с помощью PuLP? Является ли PuLP моим лучшим вариантом, или было бы полезно использовать решатели на другом языке, например, Юлия, и интерфейс может дополнять их?

1 ответ

Я не предлагаю писать вашу полную реализацию для вас, но для решения последнего вопроса о PuLP по сравнению с другими языками.

PuLP предоставляет оболочку Python для целого ряда существующих LP Solvers.

После того, как вы определили свою проблему с синтаксисом Python, он конвертирует его на другой язык для внутреннего использования (например, вы можете сохранить .lp файлы и проверяет их) и передает их любому из множества сторонних решателей, которые обычно не написаны на Python.

Таким образом, нет необходимости изучать другой язык, чтобы получить лучший решатель.

Другие вопросы по тегам