Короткий опис систем (OSS та комерційних) для LP, MILP, MINLP, програмування обмежень, мов моделювання, які ми встановили на ulabserve і до яких має доступ кожен член кафедри, навіть студенти та докторанти ФРІ. Якщо щось незрозуміле або не працює, зв’яжіться зі мною. Я також надаю посилання на документацію. Якщо ви вивчаєте щось приємне і хочете поділитися своїми знаннями, або у формі статті на нашому веб-сайті, або на семінарі KMM (контакт: доктор Пешко).
Автономні вирішувачі та бібліотеки, OSS:
glpk
Веб-сайт: http://www.gnu.org/software/glpk/
документація (з розповсюдження): вирішувач та бібліотека, мова GMPL
характеристики: LP, MILP, бібліотека (C, Python), окремий вирішувач glpsol, мова моделювання GMPL
Поточна версія: 4.47, 9 вересня 2011 р., Улабсерв 4.45
lp_solve
Веб-сайт: http: //lpsolve.sourceforge.net/5.5 (посилання для завантаження, включаючи документацію)
характеристики: LP, MILP, бібліотека (C, Python, MATLAB, октава, Excel, Scilab, Php, Java, Delphi.), автономний вирішувач lp_solve, може завантажувати файли GMPL, AMPL, Cplex LP, має IDE для Windows
Поточна версія: 5.5.2.0, 12 серпня 2010 р., У Ulabserve 5.5.0.13
scip (з підтримкою вирішувачів soplex, clp та gurobi)
веб-сайт: http://scip.zib.de/ (також соплекс, ZIMPL, gcg.)
характеристики: LP, MILP, MINLP, програмування обмежень (C/C ++), окремі розв'язувачі, на ulabserve є scip, scip-gurobi, scip-clp, gcg gcg-gurobi (gcg - галузь, вирізана і ціна вирішувач, де правила може визначати користувач)
ulabserve має поточні версії (станом на 13 січня 2013 р.)
Примітка: зі сторінки програми ми підключаємо порівняння OSS та комерційних вирішувачів проблем тесту MIPLIB
Коментар не потрібен.
Цей сайт містить багато проектів, ми встановили наступні окремі рішення:
clp - LP, симплексний вирішувач
cbc - Гілка та виріз, MILP
ipopt - Інтер'єр-точковий вирішувач загальних великих нелінійних задач (не цілочисельних задач)
симфонія - Вирішувач MILP та бібліотека, можуть бути для паралельних обчислень (якщо зацікавлю, я скомпілюю)
OSSolverService - ми не називаємо це безпосередньо, але дозволяємо іншим програмам (наприклад, науково-дослідним) використовувати монети або вирішувачі
Комерційна, необмежена система гуробі, академічна ліцензія
Це, безумовно, найпотужніший у нас інструмент - просто подивіться на зображення вище. Він безкоштовний для академічних цілей, кожен, хто хотів би ним скористатися, може просто подати заявку на отримання ліцензії на веб-сайті http://www.gurobi.com, наразі ми маємо ліцензію - я, Штефан та Роман Хайтманек. Також на вказаному веб-сайті є документація.
Характеристики системи: LP, MILP, QP (чого не має Xpress), інтерфейс для C, C ++, C #, Java®, Microsoft® .NET, Python, MATLAB та R. Інтерактивне середовище gurobi.sh є безцінним (це насправді IPython з модулями для гуробі). Я можу сказати, що створювати модель та рішення в Python зручно, але в поєднанні з наведеними нижче інструментами моделювання це навіть простіше. Потрібно лише розпочати. ми можемо це показати на семінарі KMM.
Головою Гуробі є Роберт Біксбі, оптимізатор par excellence. Просто подивіться на його домашню сторінку. Прямий вирішувач називається gurobi_cl, але він вам, мабуть, не знадобиться часто.
Моделювання мов та інструментів:
CMPL (мова математичного програмування монет) та IDE Coliop
веб-сайт: http://projects.coin-or.org/Cmpl (це один із проектів COIN-або)
характеристики: мова для математичного програмування та система оптимізації LP та MILP
Примітка щодо мод моделювання. Першим був AMPL - комерційний інструмент, і за його словами, багато систем створили свої власні мови, частково сумісні з AMPL (вище ми згадали GMPL для glpk, ZIMPL для scip). Однак жодна з них не була розширена для прийняття комерційними системами - вони мають власні засоби моделювання або використовують GAMS, AIMSS. CMPL має такі можливості, glpk, scip, COIN-або вирішувачі, і особливо Cplex і gurobi вже безпосередньо підтримуються (побічно також інші, використовуючи формати вхідних файлів MPS, Free-MPS або OSiL). Моя думка щодо таких моделюючих мов полягає в тому, що їх недоліком є низька виразність мови та, отже, вимушене заплутане програмування.
Пьомо, інший проект МОНЕТИ
Це частина проекту COOPR (COmmon Optimization Python Repository), який ми встановили на ulabserve. Це в ньому теж PySP (Стохастичне програмування на основі Python) та Pyomo була опублікована книгою Pyomo - Оптимізаційне моделювання на Python, виданою Springer. В даний час ви можете використовувати cbc, glpk та gurobi вирішувачі з Pyomo на ulabserve. Я вважаю такий спосіб роботи дуже перспективним, оскільки на задньому плані у вас є повноцінна мова програмування, яка не має обмежень, наведених вище.
Numberjack це проста і зрозуміла мова моделювання, заснована на Python. Він поєднує програмування LP, MILP та обмеження. У нас це з вирішувачами Mistral, MiniSat, WalkSat, SCIP. ).
Програмування обмежень (CP):
мініцинк з різними вирішувачами (mzn-gecode, mzn-g12fd, mzn-g12mip, mzn-g12cpx, mzn-g12lazy, mzn-g12sat)
eclipse та графічна IDE tkeclipse
Google або-інструменти містять вирішувачі CP, LP та MILP, а також спеціальні вирішувачі для "проблем маршрутизації", а також деякі алгоритми графіків (наприклад, для потоків).