Есть ли хорошие инструменты для решения целочисленных программ в Linux?[закрыто]

StackOverflow https://stackoverflow.com//questions/10667330

Вопрос

Есть ли хорошие инструменты для решения целочисленных программ в 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 или Рглпк возможно, с них стоит начать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top