Archives
Romanian Journal of Information Technology and Automatic Control / Vol. 8, No. 3, 1998
ALLO – An Algebraic Language for Linear Optimization
Neculai ANDREI, Gheorghe BORCAN
Lucrarea prezintă limbajul de modelare matematică ALLO, proiectat și implementat de către Institutul de Cercetări în Informatică, Bucureşti, România, în cadrul Laboratorului de Modelare Matematică şi Optimizare. Limbajul ALLO este o componentă de baza a Sistemului Avansat de Modelare şi Optimizare – SA MO funcţional pe sistemele WINDOWS, în câteva centre puternice din lume au fost implementate limbaje de modelare recunoscute: AIMMS, AMPL, GAMS, LINDO, LPFORM, LPL, LPMODEL, MODLER, MPL, PLAM. Unele dintre acestea au fost integrate în sisteme de modelare şi optimizare care sunt funcționale pe diverse computere sau platforme de calcul.
Limbajul ALLO este dedicat modelării matematice lineare şi este un limbaj apropiat de limbajul ştiinţific preponderent algebric ceea ce îl face uşor de asimilat. Acesta permite definirea de variabile auxiliare (tip: întreg, real, domeniu, fişier), variabile ale modelului, variabile funcţii obiectiv sau restricţii. De asemenea, orice variabilă (excepție cele tip domeniu sau fişier) poate fi chiar de forma masiv de variabile simple. Variabilele auxiliare pot avea condiţii de validare şi pot să fie iniţializate cu valori ce se regăsesc în fişiere secundare de date.
Limbajul care dispune de blocurile repetitive FOR și SUM permite concentrarea definițiilor alcătuite din expresii numerice sau simbolice.
Limbajul permite definirea unor domenii dinamice, care sunt calculate în momentul evaluării instrucţiunii din care fac parte lucru deosebit de util. În limbajul ALLO, se pot scrie prototipuri complexe, care, prin personalizare (realizată prin schimbarea datelor din unele fișiere secundare care nu afectează fişierul principal prototip) conduc la modele concrete rezolvate cu un anumit solver. Translatorul ALLO generează un model în forma numită Standard MPS, ce este acceptat ca intrare de către solverele recunoscute în domeniul optimizării liniare.
Keywords:
modelare matematică, mode] linear, programare lineară, optimizare, standard MPS, gramatică formală, gramatica LL(1), limbaj asociat unei gramatici formale, limbaj specializat pe problemă, analiză lexicală, analisintactică, analiză semantică, scaner, parser, generator de cod, compilator, translator, interpretor.
CITE THIS PAPER AS:
Neculai ANDREI,
Gheorghe BORCAN,
"ALLO – An Algebraic Language for Linear Optimization",
Romanian Journal of Information Technology and Automatic Control,
ISSN 1220-1758,
vol. 8(3),
pp. 54-67,
1998.