0

У меня есть математическая модель, линейное программирование, с огромным количеством переменных решения (> 500K - 1M). Какое программное обеспечение/библиотека с открытым исходным кодом (java) можно использовать для моего требования?Какой алгоритм оптимизации оптимизации Optimized/Mixed Integer используется?

Сложность проблемы довольно проста, с пятью ограничениями и функцией минимизации затрат, но размер огромен.

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

ответ

0

COIN CLP, вероятно, является одним из наиболее быстрых решений с открытым исходным кодом. На коммерческой арене наиболее часто используемыми высокопроизводительными решателями LP являются Cplex и Gurobi. (Коммерческие предложения в основном бесплатны для ученых, но дороги в противном случае). Эти пакеты имеют как симплексные (первичные, так и двойные) и внутренние точечные алгоритмы. Mosek также стоит упомянуть (по некоторым из моих проблем это очень быстро: он имеет очень хороший решатель точки втулки). Структура модели может принести пользу (первому) симплексному методу, но на практике вы должны это проверить. Все эти пакеты имеют привязки Java.

1 миллион переменных и 5 ограничений не должны быть слишком сложными для этих решателей (число ненулевых элементов равно < 6e6, не так уж плохо).

+0

Спасибо. И еще одно уточнение, какое время COIN CLP будет использовать для решения переменных 1M? Так как, я слышал, что LP_Solver принимает около 1Hr для 200 переменных. –

+0

Даже LpSolve должен решить LP с 200 переменными и 5 уравнениями намного быстрее. Таким образом, это может быть не LP, а MIP. Я говорил о LP. Для MIP все ставки отключены. CLP не может решить MIP. Существует COIN CBC, который может решать MIP. Cplex и Gurobi могут, но нет никакого хорошего способа предсказать, могут ли они даже решить такую ​​модель. Единственное, что можно сделать - это попробовать. Опять же, LP очень отличается от MIP. –

+0

Хорошо, теперь я понял всю картину, да, по сути, я хочу решить двоичную целочисленную проблему (1M решения переменных). Который, если я не ошибаюсь, делает проблему оптимизации невыпущенной и экспоненциально увеличивает время и потребляемую память. Спасибо за информацию, очень полезно. –

 Смежные вопросы

  • Нет связанных вопросов^_^