You are on page 1of 17

GAMS

Megteremti a kommunikáció lehetőségét


az ember és a számítógép között.

mesterséges nyelv +
a használatát támogató
számítógépes környezet
A GAMS nyelv
• Magas szintű
• Leíró nyelv
– nem kell előírni az algoritmust,
– csak le kell írni a problémát,
– mármint egy matematikai programozási
problémát,
– ami nem feltétlenül lineáris, és akár egész
értékű is lehet.
• Nem interaktív: a futó programmal nem
lehet kommunikálni.
Problémamegoldás GAMS-ben
1. Probléma megfogalmazása GAMS
nyelven.
2. Ezt a számítógép megpróbálja a saját
„nyelvére” lefordítani.
3. Ha nem sikerül, hibalistát ad.
4. Ha sikerül, fordítási listát ad, majd az
eredmények mellé számos, azok
értelmezéséhez szükséges információt.
A programot a számítógépnek el
kell olvasnia és meg kell értenie
text editor használata: szöveget hoz létre
A szöveg stringekből álló véges sorozat.
Megengedett az üres sor, és tetszőlegesen
sok szóköz a sorok között.
Egy „parancs” több sorba is írható, ez olykor
elkerülhetetlen.
Egy sorba több „parancs” is írható, de
többnyire nem érdemes.
A GAMS nem tesz különbséget a kis- és
nagybetűk között.
Öndokumentáló program
• Cél: jól követhető programok írása
• Megkönnyíti a későbbi felhasználást,
módosítást.
• Ehhez kommentárokat kell beszúrni.
• Ezeket a fordító figyelmen kívül hagyja.
– Minden „*”-gal kezdődő sor kommentár,
– De a parancsokat tartalmazó sorokba is lehet
kommentárt írni.
GAMS terminológia
• többváltozós problémák
indexek használata
Ezek véges halmazok: Sets
• exogén változók: Parameters
• endogén/döntési változók: Variables
• feltételek: Equations
Egyenlőtlenség is lehet!
Ezeket az objektumokat deklarálni kell és
definiálni.
• Deklaráció Pl:
Pl: Milofan egy macska.
– itt hozzuk létre,
– és itt adunk neki nevet, avagy azonosítót.
– Később ezzel az azonosítóval fogunk rá
hivatkozni.
– Az azonosító betűvel kezdődik, betűkből és
számjegyekből áll, szóközt nem tartalmazhat.
• Definíció Pl:
Pl: Milofan a szomszé
szomszéd Zsuzsi
szobacicá
szobacicája.
– itt adunk neki tartalmat/értéket
• Az egyenletek (Equations) kivételével általában
lehetőség van egy objektum egy paranccsal történő
deklarálására és definiálására.
paraméterek változók
• skalárok • skalárok
solver
• vektorok • vektorok
• mátrixok • mátrixok

feltételek
(egyenletek)

halmazok
Ezeket csak
Ezeket kell deklarálni is és definiálni is.
deklarálni kell.
paraméterek változók
• skalárok • skalárok
solver
• vektorok • vektorok
• mátrixok • mátrixok

feltételek
(egyenletek)

Mivel sem vektorokat,


sem pedig mátrixokat
halmazok
nem fogunk használni.
Ezeket csak
Ezeket kell deklarálni is és definiálni is.
deklarálni kell.
GAMS változók
• Legyen x változó, ekkor x = R4
• a vektor egyes elemei az alábbiak:
x.lo alsó korlát
x.up felső korlát
Ezeket a felhasználó állíthatja be.
NLP esetén nagyon hasznosak.
x.l szint, vagy primál érték
x.m marginális, vagy duál érték (slack)
Lehet őket inicializálni, de a solver ad nekik értéket.
Mindez nem érvényes a paraméterekre. Nem is lehet.
forrásprogram

fordítási és
futási lista

Futtatás: F9
Szintaktikai hibás program
Érdemes csak az első hibát kijavítani.
Ha nincs szintaktikai hiba

Itt lesz a display utasítás hatása


Ha ráklikkel:

Ugyanazt az eredményt kaptuk,


mint zsebszámológéppel (:

You might also like