GAMS

Sæt

Sættene er de grundlæggende byggesten i en GAMS-model og svarer nøjagtigt til indeksene i de algebraiske repræsentationer af modeller. Ovenstående transporteksempel indeholder kun én sæt-angivelse:

  Sets i canning plants / Seattle, San-Diego / j markets / New-York, Chicago, Topeka / ; 

Virkningen af denne angivelse er sandsynligvis selvindlysende. Vi erklærede to sæt og gav dem navnene $i$ og $j$. Vi tildelte også medlemmer til sættene på følgende måde:

$i =$ {Seattle, San Diego}

$j =$ {New York, Chicago, Topeka}.

Bemærk brugen af bindestreger til nummerering af medlemmerne af et sæt. I matematisk notation og andre programmeringssprog ville dette ofte blive gjort med parenteser i stedet.

Parametre

Parametre er en måde at indtaste data på i GAMS. I dette tilfælde er parametrene $a$ og $b$ defineret over mængderne $i$ og $j$.

  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 / ; 

GAMS giver dig mulighed for at placere forklarende tekst (vist med små bogstaver) i hele din model, efterhånden som du udvikler den. Dine kommentarer indarbejdes automatisk i uddatarapporten på de relevante steder.

Tabel

Data kan også indtastes i praktisk tabelform. GAMS lader dig indtaste data i deres grundform – transformationer angives algebraisk.

  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

Konstanter kan simpelthen deklareres som scalarer:

  Scalar f freight in dollars per case per thousand miles /90/ ; 

Data Manipulation

Når dataværdier skal beregnes, skal du først deklarere parameteren (dvs. give den et symbol og eventuelt indeksere den) og derefter angive dens algebraiske formulering. GAMS foretager automatisk beregningerne.

  Parameter c(i,j) transport cost in thousands of dollars per case ;c(i,j) = f * d(i,j) / 1000 ; 

Variabler

Beslutningsvariabler udtrykkes algebraisk, idet deres indeks angives. Ud fra denne generelle form genererer GAMS hver forekomst af variablen i domænet.Variabler er specificeret med hensyn til type: Variabler angives som FREE, POSITIV, NEGATIV, BINÆR eller INTEGER. Standardværdien er FREE.Den objektive variabel (z, her) er blot deklareret uden indeks.

  Variables x(i,j) shipment quantities in cases z total transportation costs in thousands of dollars ;Positive variables x ; 

Geligninger

Objektivfunktion og begrænsningsligninger deklareres først ved at give dem navne. Derefter beskrives deres generelle algebraiske formler. GAMS har nu nok oplysninger (fra de ovenfor indtastede data og fra de algebraiske relationer, der er angivet i ligningerne) til automatisk at generere hver enkelt begrænsningsangivelse – som det fremgår af outputrapporten nedenfor. Et omfattende sæt værktøjer gør det muligt at modellere ethvert udtryk, der kan angives algebraisk: aritmetik, indeksering, funktioner og logbog til håndtering af undtagelser (f.eks. hvis-det-selv- og sådan-det-konstruktioner).

=E= angiver ‘lig med’
=L= angiver ‘mindre end eller lig med’
=G= angiver ‘større end eller lig med’

  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) ; 

Modelangivelse

Modellen får et entydigt navn (her TRANSPORT), og modelløren angiver, hvilke ligninger der skal indgå i denne særlige formulering. I dette tilfælde har vi angivet ALL, hvilket angiver, at alle ligninger er en del af modellen. Dette ville svare til MODEL TRANSPORT /COST, SUPPLY, DEMAND/ . Dette ligningsvalg gør det muligt at formulere forskellige modeller inden for en enkelt GAMS-inputfil, baseret på de samme eller forskellige givne data.

  Model transport /all/ ; 

Solve-erklæring

Solve-erklæringen (1) fortæller GAMS, hvilken model der skal løses, (2) vælger den solver, der skal anvendes (i dette tilfælde en LP-solver), (3) angiver retningen for optimeringen, enten MINIMIZING eller MAXIMIZING , og (4) angiver målvariablen.

  Solve transport using LP minimizing z ; 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.