Scurtă descriere a sistemelor (OSS și comerciale) pentru LP, MILP, MINLP, programare de constrângere, limbaje de modelare, pe care le-am instalat pe ulabserve și la care are acces fiecare membru al departamentului, chiar și studenți și doctoranzi ai FRI. Dacă ceva este neclar sau nu funcționează corect, contactați-mă. De asemenea, ofer link-uri către documentație. Dacă studiați ceva frumos și doriți să vă împărtășiți cunoștințele, fie sub forma unui articol de pe site-ul nostru web, fie la seminarul KMM (contact: doc. Peško).
Solutori și biblioteci independente, OSS:
glpk
Website: http://www.gnu.org/software/glpk/
documentație (din distribuție): rezolvator și bibliotecă, limbaj GMPL
caracteristici: LP, MILP, bibliotecă (C, Python), rezolvator de glpsol separat, limbaj de modelare GMPL
versiune actuală: 4.47, 9 sept 2011, la ulabserve 4.45
lp_solve
Site web: http: //lpsolve.sourceforge.net/5.5 (linkuri de descărcare, inclusiv documentație)
caracteristici: LP, MILP, bibliotecă (C, Python, MATLAB, octave, Excel, Scilab, Php, Java, Delphi.), soluție autonomă lp_solve, poate încărca fișiere GMPL, AMPL, Cplex LP, are IDE pentru Windows
versiune actuală: 5.5.2.0, 12 aug 2010, la ulabserve 5.5.0.13
scip (cu suport pentru rezolvatorii soplex, clp și gurobi)
site-ul web: http://scip.zib.de/ (de asemenea, soplex, ZIMPL, gcg.)
caracteristici: LP, MILP, MINLP, programare de constrângeri (C/C ++), rezolvatori separați, pe ulabserve există scip, scip-gurobi, scip-clp, gcg gcg-gurobi (gcg este o ramură și preț solverul poate fi determinat de utilizator)
ulabserve are versiunile actuale (începând cu 13 ianuarie 2013)
Notă: din pagina programului conectăm o comparație între OSS și rezolvători comerciali pe probleme de testare MIPLIB
Nu este necesar niciun comentariu.

Acest site conține multe proiecte, am instalat următoarele soluții separate:
clp - LP, rezolvator simplex
cbc - Ramură și tăietură, MILP
ipopt - Rezolvator de punct interior pentru probleme generale neliniare mari (nu probleme întregi)
simfonie - Rezolvatorul și biblioteca MILP, pot fi pentru calcule paralele (dacă sunteți interesat, voi compila)
OSSolverService - nu îl numim direct, ci permitem altor programe (de ex. scip.) să folosească monede sau rezolvători
Sistem gurobi comercial, nelimitat, licență academică
Acesta este cu siguranță cel mai puternic instrument pe care îl avem disponibil - uitați-vă doar la imaginea de mai sus. Este gratuit în scopuri academice, oricine dorește să-l folosească poate solicita pur și simplu o licență pe site-ul http://www.gurobi.com, în prezent avem o licență - eu, Štefan și Roman Hajtmanek. Există, de asemenea, documentație pe site-ul de mai sus.
Caracteristicile sistemului: LP, MILP, QP (ceea ce lipsește Xpress), o interfață pentru C, C ++, C #, Java®, Microsoft® .NET, Python, MATLAB și R. Mediul interactiv gurobi.sh este de neprețuit (este de fapt IPython cu module pentru gurobi). Pot spune că crearea unui model și a unei soluții în Python este convenabilă, dar în combinație cu instrumentele de modelare de mai jos, este chiar mai ușor. Trebuie doar să începi. îl putem arăta la seminarul KMM.
Șeful Gurobi este Robert Bixby, un optimizator prin excelență. Uită-te la pagina sa de pornire. Solverul direct se numește gurobi_cl, dar probabil că nu veți avea nevoie de el des.
Limbaje și instrumente de modelare:
CMPL (Coin Mathematical Programming Language) și IDE Coliop
site-ul web: http://projects.coin-or.org/Cmpl (acesta este unul dintre proiectele sau monedele)
caracteristici: limbaj pentru programare matematică și sistem pentru optimizarea LP și MILP
Notă privind limbile de modelare. Primul a fost AMPL - un instrument comercial și, potrivit lui, multe sisteme și-au creat propriile limbi, parțial compatibile cu AMPL (mai sus am menționat GMPL pentru glpk, ZIMPL pentru scip). Cu toate acestea, niciunul nu a fost extins pentru a fi acceptat de sistemele comerciale - au propriile instrumente de modelare sau folosesc GAMS, AIMSS. CMPL are astfel de posibilități, glpk, scip, COIN-sau solvers și mai ales Cplex și gurobi sunt deja direct suportate (indirect și altele, folosind formate de fișiere de intrare MPS, Free-MPS sau OSiL). Părerea mea cu privire la astfel de limbaje de modelare este că dezavantajul lor este capacitatea expresivă scăzută a limbajului și, astfel, o programare confuză forțată.
Pyomo, un alt proiect COIN-sau
Face parte din proiectul COOPR (COmmon Optimization Python Repository) pe care l-am instalat pe ulabserve. Este și în ea PySP (Python-based Stochastic Programming) și Pyomo au fost publicate în Pyomo - Optimization Modeling in Python de Springer. În prezent, puteți utiliza soluții cbc, glpk și gurobi cu Pyomo pe ulabserve. Consider că acest mod de lucru este foarte promițător, deoarece în fundal aveți un limbaj de programare complet, care nu are limitările limbajelor de mai sus.
Numberjack este un limbaj de modelare simplu și clar bazat pe Python. Combină programarea LP, MILP și constrângeri. Îl avem cu soluțiile Mistral, MiniSat, WalkSat, SCIP. ).
Programare constrângere (CP):
minizinc cu diferite soluții (mzn-gecode, mzn-g12fd, mzn-g12mip, mzn-g12cpx, mzn-g12lazy, mzn-g12sat)
eclipsă și tkeclipsa grafică IDE
Google or-tools conțin rezolvători CP, rezolvatori LP și MILP, precum și rezolutori speciali pentru „probleme de rutare” și, de asemenea, niște algoritmi grafici (pentru fluxuri, de exemplu).