Ограничение переменной Microsoft Solver Foundation

Привет, я использую Microsoft Solver Foundation для решения проблемы линейного программирования, но значение переменной превысило 1000, и появляется следующая ошибка: {"Превышен предел размера модели для этой версии продукта. Пожалуйста, свяжитесь с Microsoft Corporation для получения информации о вариантах лицензирования. \ r \ nLimits: NonzeroLimit = 100000, MipVariableLimit = 2000, MipRowLimit = 2000, MipNonzeroLimit = 10000, CspTermLimit = 25000, Expiration = none. "}

Есть ли более эффективный решатель, который может принимать более 1000 переменных, которые могли бы работать в Visual Studio IDE? Спасибо.


person william007    schedule 18.09.2012    source источник
comment
корпоративная версия не ограничена и является доступны от Gurobi (хотя вам может потребоваться позвонить им, чтобы узнать расценки на этот конкретный продукт) или предложить коммерческий продукт их собственной торговой марки.   -  person Marc Gravell    schedule 18.09.2012


Ответы (4)


Не уверен, что именно вы имеете в виду под: решатель "может работать в Visual Studio IDE?"

Однако, если вам нужен крупномасштабный решатель LP (с открытым исходным кодом) с функциональным интерфейсом C #, я бы порекомендовал lp_solve, загрузки находятся здесь. Решатель написан на C / C ++, но существует комплексная и простая в использовании оболочка C #, которая использует P / Invoke для вызова различных методов lpsolve.

person Anders Gustafsson    schedule 18.09.2012

тесты производительности Ханса Миттельманна предоставляют сравнение нескольких решателей LP. Если вам нужны высокопроизводительные бесплатные решатели, я рекомендую CLP или IPOPT. У них обоих интерфейсы на C ++, поэтому проблем с их использованием из Visual C ++ возникнуть не должно. Хорошими коммерческими решателями являются CPLEX и Гуроби.

Как упомянул Марк Гравелл, вы можете купить корпоративную версию Microsoft Solver Foundation, которая не ограничена, но обратите внимание, что она больше не выпускается .

person vitaut    schedule 18.09.2012
comment
Хорошие моменты. Обратите внимание, однако, что IPOPT является решателем не линейного программирования, и не существует (насколько мне известно) оболочки C # (который был языком с тегами) для CLP. - person Anders Gustafsson; 18.09.2012

Похоже, что Solver Foundation заброшен - я сомневаюсь, что мы увидим какие-либо новые его версии. Предел переменной слишком мал для многих задач. Я нашел полезными инструменты Google OR Tools - они поместили .NET-оболочки вокруг решателей GLPK и CBC (среди прочих) и выпустили их как исходный код. Найдите "Google OR Tools". Эти решатели не так быстры, как коммерческие решатели (см. Тесты, указанные в сообщении vitaut выше), но коммерческие решатели обычно оцениваются в диапазоне цен от 6 до 12 тысяч фунтов стерлингов.

person Graham Laight    schedule 07.02.2013

Я не знаю, сколько ограничений у вас в настоящее время, но (если у вас меньше 1000 ограничений) вы можете взять двойное и иметь 1000 ограничений вместо переменных, а затем по-прежнему использовать текущую версию Microsoft Solver Foundation. Взять дуал не должно быть слишком сложно автоматизировать.

person C.B.    schedule 07.10.2012