Általános algebrai modellező rendszer - General Algebraic Modeling System
| Fejlesztő (k) | GAMS Development Corporation |
|---|---|
| Stabil kiadás | 36.2.0 / 2021. szeptember 3.
|
| Felület | Többplatformos |
| típus | Algebrai modellezési nyelv (AML) |
| Engedély | Szabadalmazott |
| Weboldal | www |
Az általános algebrai modellező rendszer ( GAMS ) egy magas szintű modellező rendszer a matematikai optimalizáláshoz . A GAMS lineáris , nemlineáris és vegyes egész számú optimalizálási problémák modellezésére és megoldására készült . A rendszert bonyolult, nagyszabású modellezési alkalmazásokra szabták, és lehetővé teszi a felhasználó számára, hogy nagy karbantartható modelleket készítsen, amelyek új helyzetekhez igazíthatók. A rendszer különböző számítógépes platformokon használható. A modellek hordozhatók egyik platformról a másikra.
A GAMS volt az első algebrai modellező nyelv (AML), és formailag hasonlít az általánosan használt negyedik generációs programozási nyelvekhez . A GAMS integrált fejlesztői környezetet (IDE) tartalmaz, és harmadik féltől származó optimalizálási megoldók csoportjához kapcsolódik . Ezen megoldók közé tartozik a BARON, a COIN-OR , a CONOPT, a CPLEX , a DICOPT , a Gurobi , a MOSEK , a SNOPT, a SULUM és az XPRESS .
A GAMS lehetővé teszi a felhasználók számára, hogy egyfajta hibrid algoritmust valósítsanak meg, amely egyesíti a különböző megoldókat. A modelleket tömör, ember által olvasható algebrai kijelentések írják le. A GAMS a NEOS Server legnépszerűbb beviteli formátumai közé tartozik . Bár kezdetben a közgazdaságtanhoz és a menedzsmenttudományhoz kapcsolódó alkalmazásokhoz tervezték , a közösség a különböző mérnöki és tudományi háttérrel rendelkező felhasználókból áll .
Idővonal
- 1976 A GAMS ötletét a Nemzetközi Matematikai Programozási Szimpóziumon (ISMP) mutatják be Budapesten
- 1978 I. fázis: A GAMS támogatja a lineáris programozást . Támogatott platformok: Mainframes és Unix Workstations
- 1979 II. Fázis: A GAMS támogatja a nemlineáris programozást .
- 1987 A GAMS kereskedelmi termékké válik
- 1988 Első PC -rendszer (16 bites)
- 1988 Alex Meeraus, a kezdeményezője és alapítója GAMS GAMS Development Corporation , az oda tájékoztatja Computing Society díját
- 1990 32 bites Dos Extender
- 1990 A GAMS Georgetownba, Washingtonba költözik
- 1991-es vegyes egész nemlineáris programok képessége (DICOPT)
- 1994 A GAMS támogatja a vegyes komplementaritási problémákat
- 1995 MPSGE nyelvet adunk hozzá a CGE modellezéshez
- 1996 Európai fióktelep nyit Németországban
- 1998 32 bites natív Windows
- 1998 Sztochasztikus programozási képesség (OSL/SE, DECIS)
- 1999 A GAMS integrált fejlesztői környezet (IDE) bevezetése
- 2000 A DOS & Win támogatásának vége 3.11
- Elindult a 2000 GAMS World kezdeményezés
- 2001 A GAMS Data Exchange (GDX) bevezetése
- A 2002 -es GAMS szerepel az OR/MS 50. évforduló mérföldköveinek listáján
- 2003 Conic programozási adunk
- 2003 Globális optimalizálás a GAMS -ban
- 2004 -ben elindul a minőségbiztosítási kezdeményezés
- 2004 A másodfokú korlátozott programok támogatása
- 2005 támogatás 64 bites PC operációs rendszerekhez (Mac PowerPC / Linux / Win)
- A 2006 -os GAMS támogatja a párhuzamos rácsos számítást
- A 2007 GAMS támogatja a COIN-OR nyílt forráskódú megoldásait
- 2007 A Solaris támogatása a Sparc64 rendszeren
- 2008 32 és 64 bites Mac OS X támogatás
- 2009 -es GAMS elérhető az Amazon Elastic Compute Cloud -on
- A 2009 -es GAMS támogatja a kiterjesztett matematikai programokat ( EMP )
- 2010 GAMS elnyerte a cég odaítélése a Német Társaság Operations Research (GOR)
- 2010 GDXMRW interfész a GAMS és a Matlab között
- 2010 A Mac PowerPC / Dec Alpha / SGI IRIX / HP-9000 / HP-UX támogatásának vége
- 2011 Extrinsic Function Libraries támogatása
- 2011 A Win95 / 98 / ME és a Win2000 támogatásának megszűnése
- 2012 A 2012 -es INFORMS Impact Prize díjazottjai között volt Alexander Meeraus. A díjat az öt legfontosabb algebrai modellező nyelv ötletgazdái kapták [1] .
- 2012 Objektum -orientált API bemutatása .NET, Java és Python számára
- A 2012 -es Coin OR Cup kupa győztesei között volt Michael Bussieck, Steven Dirkse és Stefan Vigerske a GAMSlinks számára
- 2012 A 32 bites támogatás befejezése Mac OS X rendszeren
- 2013 Támogatott elosztott MIP (Cplex/Gurobi)
- 2013 A GAMS EMP sztochasztikus programozási kiterjesztése
- 2013 GDXRRW interfész a GAMS és az R között
- 2014 Helyi keresési megoldó A LocalSolver hozzáadva a megoldók portfóliójához
- 2014 A 32 bites Linux és a 32 bites Solaris támogatásának vége
- 2015 -ös LaTeX dokumentáció GAMS forrásból ( Model2TeX )
- 2015 A Win XP támogatásának vége
- 2016 Új menedzsment csapat
- 2017 EmbeddedCode Facility
- 2017 C ++ API
- 2017 A "Core" és a "Peripheral" platformok bevezetése
- 2018 GAMS Studio (béta)
- 2018 az x86-64 Solaris támogatásának vége
- 2019 GAMS MIRO - Modell interfész gyors hangszereléssel (béta)
- 2019 -ben véget ért a Win7 támogatása, a 32 bites Windows -ot perifériás platformokra helyezték át
- 2019 Módosítási séma XX.YZ -re
- 2020 Demo és közösségi licencrendszer bevezetése
- 2020 A GAMS MIRO (Model Interface with Rapid Orchestration) hivatalos kiadása a GAMS modellek interaktív alkalmazásként történő telepítéséhez
- 2021 A GAMS Engine hivatalos kiadása, az új megoldás a GAMS -feladatok felhőkörnyezetben történő futtatásához
Háttér
A GAMS fejlesztésének mozgatórugója a matematikai programozás felhasználói voltak, akik hittek az optimalizációban, mint erőteljes és elegáns keretben a tudomány és a mérnöki élet valós problémáinak megoldásában. Ugyanakkor ezeket a felhasználókat elkeserítették a magas költségek, a készségigény és az optimalizáló eszközök alkalmazásának összességében alacsony megbízhatósága. A rendszer legtöbb kezdeményezése és az új fejlesztések támogatása a közgazdaságtan , a pénzügy és a vegyipar területén felmerülő problémákra adott választ , mivel ezek a tudományágak matematikai programként tekintik és értik a világot.
A GAMS fejlesztési lendülete a Világbank nagy gazdasági modellező csoportjának elkeserítő tapasztalataiból fakadt . Utólag történelmi balesetnek nevezhetjük, hogy az 1970 -es években matematikai közgazdászokat és statisztikusokat gyűjtöttek össze a fejlődés problémáinak kezelésére. Az akkor rendelkezésre álló legjobb technikákat használták a több ágazatra kiterjedő, gazdaságra kiterjedő modellek, valamint nagy szimulációs és optimalizálási modellek megoldására a mezőgazdaságban, az acél-, a műtrágya-, az energia-, a vízfelhasználás és más ágazatokban. Bár a csoport lenyűgöző kutatásokat végzett, a kezdeti sikereket nehéz volt reprodukálni jól működő kutatási környezetükön kívül. Az ilyen modellek megalkotására, manipulálására és megoldására szolgáló meglévő technikák több manuális, időigényes és hibára hajlamos fordítást igényeltek, minden egyes megoldási módszer által megkövetelt különböző, problémára jellemző ábrázolásokká. A szeminárium -előadások során a modellezőknek idő és pénz megfontolásai miatt meg kellett védeniük modelljeik meglévő verzióit, néha meglehetősen irracionálisan . Modelljeiket egyszerűen nem lehetett más környezetbe helyezni, mert speciális programozási ismeretekre volt szükség, valamint az adatformátumok és a megoldási módszerek nem hordozhatók.
A nagyméretű matematikai modellek ábrázolására, manipulálására és megoldására szolgáló algebrai megközelítés ötlete a régi és az új paradigmákat konzisztens és számítástechnikailag kezelhető rendszerbe olvasztotta . A generátor mátrixok használata lineáris programokhoz feltárta a sorok és oszlopok következetes elnevezésének fontosságát. Nyilvánvalóvá vált a kapcsolat a kialakuló relációs adatmodellel. A hagyományos programozási nyelvek használatának tapasztalata a névterek kezelésében természetesen arra készteti az embert, hogy halmazokban és sorokban gondolkodjon , és ez vezetett a relációs adatmodellhez.
A többdimenziós algebrai jelölés és a relációs adatmodell kombinálása volt a nyilvánvaló válasz. A fordító írási technikák mára elterjedtek voltak, és a GAMS -hoz hasonló nyelvek viszonylag gyorsan megvalósíthatók. Ennek a szigorú matematikai ábrázolásnak az algoritmusspecifikus formátumba való lefordítása azonban nagyon nagy rendszereken részleges deriváltak kiszámítását igényelte . Az 1970-es években a TRW kifejlesztett egy PROSE elnevezésű rendszert, amely a vegyészmérnökök ötleteit felhasználva kiszámította az adott ponton pontos származtatott pontszármazékokat , és beágyazta őket egy következetes, Fortran-stílusú számítási modellező nyelvbe . A kapott rendszer lehetővé tette a felhasználó számára, hogy automatikusan generált pontos első és másodrendű származékokat használjon. Ez úttörő rendszer volt és egy fontos koncepció bemutatása. A PROSE- nak azonban számos hiányossága volt: nem tudta kezelni a nagy rendszereket, a problémaábrázolás tömb típusú adatstruktúrához volt kötve, amely címszámításokat igényelt, és a rendszer nem biztosított hozzáférést a legkorszerűbb megoldási módszerekhez. A lineáris programozásból a GAMS megtanulta, hogy a ritkaság kiaknázása kulcsfontosságú a nagy problémák megoldásában. Így a rejtvény utolsó darabja a ritka adatstruktúrák használata volt.
Az első *oszlopban egy betűvel kezdődő sorokat megjegyzésként kell kezelni.
Minta modell
George Dantzig szállítási problémája szolgál a GAMS minta bemutatására. Ez a modell része a modellkönyvtárnak, amely sokkal több teljes GAMS modellt tartalmaz. Ez a probléma a legolcsóbb szállítási ütemtervet találja, amely megfelel a piacok és a gyárak kellékeinek.
Dantzig , GB, 3.3. In Lineáris programozás és bővítmények. Princeton University Press, Princeton, New Jersey, 1963.
Sets
i canning plants / seattle, san-diego /
j markets / new-york, Chicago, topeka / ;
Parameters
a(i) capacity of plant i in cases
/ seattle 350
san-diego 600 /
b(j) demand at market j in cases
/ new-york 325
Chicago 300
topeka 275 / ;
Table d(i,j) distance in thousands of miles
new-york Chicago topeka
seattle 2.5 1.7 1.8
san-diego 2.5 1.8 1.4 ;
Scalar f freight in dollars per case per thousand miles /90/ ;
Parameter c(i,j) transport cost in thousands of dollars per case ;
c(i,j) = f * d(i,j) / 1000 ;
Variables
x(i,j) shipment quantities in cases
z total transportation costs in thousands of dollars ;
Positive Variable x ;
Equations
cost define objective function
supply(i) observe supply limit at plant i
demand(j) satisfy demand at market j ;
cost .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
supply(i) .. sum(j, x(i,j)) =l= a(i) ;
demand(j) .. sum(i, x(i,j)) =g= b(j) ;
Model transport /all/ ;
Solve transport using lp minimizing z ;
Display x.l, x.m ;
Alrendszerek
A Mathematical Programming System for General Equilibrium Analysis (MPSGE) egy olyan nyelv, amelyet Arrow – Debreu gazdasági egyensúlyi modellek megfogalmazására és megoldására használnak, és a GAMS alrendszereként létezik.
Lásd még
- Extended Mathematical Programming (EMP) - kiterjesztés a GAMS -ben elérhető matematikai programozási nyelvekre
- GNU MathProg- nyílt forráskódú matematikai programozási nyelv, amely AMPL-en alapul