Általános algebrai modellező rendszer - General Algebraic Modeling System

GAMS
Fejlesztő (k) GAMS Development Corporation
Stabil kiadás
36.2.0 / 2021. szeptember 3. (3 napja) ( 2021-09-03 )
Felület Többplatformos
típus Algebrai modellezési nyelv (AML)
Engedély Szabadalmazott
Weboldal www .gams .com

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

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

Hivatkozások

Külső linkek