Есть ли хорошие инструменты для решения целочисленных программ в Linux?[закрыто]
-
11-12-2019 - |
Вопрос
Есть ли хорошие инструменты для решения целочисленных программ в Linux?
У меня есть небольшая задача, которую я хочу решить, чтобы сэкономить время :D.Это своего рода проблема суммы подмножества.У меня есть список примерно из 20 целочисленных значений, и я хочу вычислить подмножество с наименьшей суммой, удовлетворяющей определенному минимуму.Вы можете сформулировать это с помощью целочисленной программы...что-то вроде
\sum_{i=1}^{n} w*x -> min
с
\sum_{i=1}^{n} w*x >= c with x \in \{0,1\}
Или есть другой хороший способ сделать это?
Решение
Я бы попробовал либо ГЛПК или SCIP.
У них есть собственный язык моделирования: у GLPK есть GNU MathProg, а у SCIP — ZIMPL, так что вы можете легко запрограммировать свою задачу LP.
Преимущество GNU MathProg заключается в совместимости с AMPL.Таким образом, вы можете попробовать студенческую версию AMPL с CPLEX или Gurobi с вашей моделью GNU MathProg.Имейте в виду, что AMPL, CPLEX и Gurobi являются коммерческим программным обеспечением.
Другие советы
Вы пытались сделать это с LibreOffice Calc Решатель?
Фонд Microsoft Solver on Mono Framework также может помочь вам, если вы знаете C#.
Пытаться Линдо/Линго.Они не бесплатны, но вы можете их попробовать.
Они позволяют вам сформулировать вашу проблему очень аккуратным математическим способом.
Вы можете попробовать GNU Octave - это подмножество Matlab.
Я хотел добавить еще один вариант к предложениям GLPK, которые сделал @Ali.Я предлагаю всем, кто интересуется решением LP/IP, также изучить пакеты оптимизации, предлагаемые языком R.
Если вы уже знаете и используете R, вам достаточно загрузить правильный пакет.И даже если вы этого не сделаете, это хороший способ познакомиться с R, который действительно набирает популярность в сфере аналитики.
Этот виньетка это очень хороший способ узнать, какие пакеты R актуальны.Для тебя, RSymphony или Рглпк возможно, с них стоит начать.