Az LP, MILP, MINLP, kényszerprogramozás, modellezési nyelvek rendszereinek rövid leírása (OSS és kereskedelmi), amelyeket az ulabserve-re telepítettünk, és amelyekhez az osztály minden tagja hozzáférhet, még az FRI hallgatói és doktoranduszai is. Ha valami nem világos vagy hibásan működik, lépjen kapcsolatba velem. Linkeket is adok a dokumentációhoz. Ha valami szépet tanul, és meg akarja osztani tudását, akár honlapunkon, akár a KMM szemináriumon (kapcsolat: Peško doktor).
Önálló megoldók és könyvtárak, OSS:
glpk
Webhely: http://www.gnu.org/software/glpk/
dokumentáció (terjesztéstől): megoldó és könyvtár, GMPL nyelv
jellemzők: LP, MILP, könyvtár (C, Python), külön glpsol megoldó, GMPL modellezési nyelv
jelenlegi verzió: 4.47, szeptember 9 2011., 4.45. Ulabserve
lp_solve
Webhely: http: //lpsolve.sourceforge.net/5.5 (letöltési linkek, dokumentációval együtt)
jellemzők: LP, MILP, könyvtár (C, Python, MATLAB, oktáv, Excel, Scilab, Php, Java, Delphi.), önálló megoldó lp_solve, betölthet GMPL, AMPL, Cplex LP fájlokat, IDE for Windows
jelenlegi verzió: 5.5.2.0, augusztus 12 2010., 5.5.5.13. Ulabserve
scip (soplex, clp és gurobi megoldók támogatásával)
weboldal: http://scip.zib.de/ (soplex, ZIMPL, gcg. is)
jellemzők: LP, MILP, MINLP, kényszerprogramozás (C/C ++), külön megoldók, az ulabserve-n van scip, scip-gurobi, scip-clp, gcg gcg-gurobi (a gcg egy ágvágás és ár megoldó, ahol a szabályokat a felhasználó meghatározhatja)
Az ulabserve jelenlegi verziói vannak (2013. január 13-tól)
Megjegyzés: A programoldalról összekapcsoljuk az OSS és a kereskedelmi megoldók összehasonlítását a MIPLIB tesztproblémákkal kapcsolatban
Nincs szükség kommentárra.
Ez az oldal sok projektet tartalmaz, a következő külön megoldásokat telepítettük:
clp - LP, szimplex megoldó
cbc - Ág és vágás, MILP
ipopt - Interior-Point megoldó általános nemlineáris problémákra (nem egész problémákra)
szimfónia - MILP megoldó és könyvtár párhuzamos számításokhoz használható (ha érdekel, lefordítom)
OSSolverService - nem nevezzük közvetlenül, de megengedjük, hogy más programok (pl. scip.) érméket vagy megoldókat használhassanak
Kereskedelmi, korlátlan gurobi rendszer, tudományos engedély
Ez határozottan a rendelkezésünkre álló legerősebb eszköz - csak nézze meg a fenti képet. Tanulmányi célokra ingyenes, bárki, aki szeretné használni, egyszerűen kérhet licencet a http://www.gurobi.com weboldalon, jelenleg van engedélyünk - nekem, Štefannak és Roman Hajtmaneknek. A fenti weboldalon dokumentáció is található.
Rendszer jellemzői: LP, MILP, QP (hiányzik az Xpress), interfész a C, C ++, C #, Java®, Microsoft® .NET, Python, MATLAB és R. számára. Az interaktív gurobi.sh környezet felbecsülhetetlen (valójában ez IPython modulokkal a gurobi számára). Mondhatom, hogy egy modell és megoldás létrehozása a Pythonban kényelmes, de az alábbi modellezési eszközökkel kombinálva még egyszerűbb. Csak el kell kezdened. megmutathatjuk a KMM szemináriumán.
A Gurobi vezetője Robert Bixby, a par excellence optimalizáló. Csak nézd meg a honlapját. A közvetlen megoldó neve gurobi_cl, de valószínűleg nem lesz rá szükség.
Modellezési nyelvek és eszközök:
CMPL (Coin Mathematical Programming Language) és IDE Coliop
weboldal: http://projects.coin-or.org/Cmpl (ez az egyik a COIN vagy projektek közül)
jellemzők: a matematikai programozás nyelve, valamint az LP és MILP optimalizálására szolgáló rendszer
Megjegyzés a modellezési nyelvekről. Az első az AMPL volt - egy kereskedelmi eszköz, és szerinte sok rendszer létrehozta saját nyelvét, amely részben kompatibilis volt az AMPL-kel (fentebb említettük a GMPL-t a glpk, a ZIMPL-et a scip-hez). Azonban egyiket sem terjesztették ki a kereskedelmi rendszerek általi elfogadásra - saját modellező eszközökkel rendelkeznek, vagy a GAMS-et, az AIMSS-t használják. A CMPL rendelkezik ilyen lehetőségekkel, a glpk, a scip, a COIN vagy a megoldók, különösen a Cplex és a gurobi már közvetlenül támogatottak (közvetetten mások is, bemeneti fájlformátumok MPS, Free-MPS vagy OSiL használatával). Az én véleményem az ilyen modellező nyelvekről az, hogy hátrányuk a nyelv alacsony kifejező képessége, és ezáltal kénytelen zavart programozni.
Pyomo, egy másik érme vagy projekt
Ez része a COOPR projektnek (COmmon Optimization Python Repository), amelyet az ulabserve-re telepítettünk. Ez is benne van PySP (Python-alapú sztochasztikus programozás) és Pyomo címet a Pyomo - Optimization Modeling in Python című könyv jelentette meg, amelyet a Springer adott ki. Jelenleg használhat CBB, glpk és gurobi megoldókat Pyomo-val az ulabserve-n. Ezt a munkamódszert nagyon ígéretesnek tartom, mert a háttérben egy teljes értékű programozási nyelv áll rendelkezésére, amely nem rendelkezik a fenti nyelvek korlátaival.
Numberjack egy egyszerű és egyértelmű modellező nyelv, amely Python-on alapul. Kombinálja az LP, a MILP és a kényszerprogramozást. Megvan a Mistral, MiniSat, WalkSat, SCIP megoldókkal. ).
Kényszerprogramozás (CP):
minizinc különböző megoldókkal (mzn-gecode, mzn-g12fd, mzn-g12mip, mzn-g12cpx, mzn-g12lazy, mzn-g12sat)
eclipse és a grafikus IDE tkeclipse
Google or-tools tartalmaznak CP megoldókat, LP és MILP megoldókat, valamint speciális megoldókat az "útválasztási problémákhoz" és néhány grafikon algoritmust (például az áramlásokhoz).