Prefatã
Maturitatea unei discipline se dovedeºte prin gradul de formalizare,
adica prin aparatul matematic cu care opereaza, precum si capacitatea de
a rezolva problemele care au generat-o. Cu cat conceptele si aparatul matematic
utilizat sunt mai evoluate cu atat rezultatele sunt mai profunde.
Programarea matematica,
ca o disciplina bine conturata in cadrul stiintelor computationale, utilizeaza
concepte si instrumente matematice foarte avansate, care pe langa faptul
ca permite elaborarea de algoritmi pentru rezolvarea problemelor de optimizare,
in acelasi timp asigura proprietãtile de convergenta si de complexitate
computationala ale acestora. Dar, aceasta disciplina nu este numai un simplu
exercitiu intelectual in sensul stabilirii unor algoritmi si a proprietatilor
lor, ci prin instrumentele informatice utilizate, precum si cele generate
si impuse in comunitatea prelucrarii superioare a informatiilor, constituie
o adevãratã forta de productie cu puternice implicatii economico-sociale.
In programarea matematicã se
disting douã directii de evolutie. Aparent acestea sunt oarecum
independente, dar la o analiza profunda ele se completeaza reciproc si
in acelasi timp prin problematica tratata si rezultatele obtinute dau substanþa
domeniului. Prima directie de actiune consta in
modelarea matematica
pentru optimizare. Aici problematica consta in definirea si constructia
unor instrumente matematico-informatice, care sa permita conceptualizarea,
elaborarea, generarea si întretinerea unui model de programare matematica.
O analiza atenta a acestei problematici ne aratã ca aceasta la rândul
ei consta din doua subprobleme. Prima este aceea de a reprezenta matematic
o portiune a creatiei sub forma unei probleme de minimizare a unui criteriu,
în raport cu care analizãm comportarea acelei portiuni de
univers, in virtutea unor restrictii, care definesc matematic functionarea
realitatii in care suntem interesati. Aceasta este subproblema modelarii
propriu-zise. A doua subproblema consta in constructia acelor instrumente
informatice de care vorbeam pentru transmiterea modelului matematic optimizatoarelor.
Aceasta este subproblema generãrii modelului. A doua directie de
actiune in programarea matematica consta in
elaborarea de algoritmi
pentru rezolvarea problemelor de optimizare. Aici activitatea se structureaza
in aceea de constructie a algoritmilor de optimizare, precum si in studiul
lor privind convergenta si complexitatea. Remarcam faptul ca atat modelarea
matematica pentru optimizare cat si rezolvarea problemelor de optimizare
au atins un nivel de dezvoltare care demonstreaza maturitatea domeniului.
Scopul monografiei. In scrierea acestei monografii intentia a fost de a prezenta la un nivel informativ destul de detaliat starea actualã a software-ului de optimizare, care implementeaza algoritmii de optimizare pentru diferite clase de probleme de programare matematica. In acelasi timp intentia a fost de a furniza cercetatorului si practitionistului interesat o baterie de prototipuri de modele de programare liniara care se intalnesc in mod curent in activitatile tehnico-economice, precum si o lista de probleme de programare matematica si aplicatii care sa constituie exemple de test pentru pachetele de programare matematica.
Structura monografiei. Monografia consta din cinci capitole si patru anexe. Primul capitol are un caracter introductiv. Aici cititorul este introdus foarte sumar in problematica programarii matematice prin precizarea tipurilor de probleme de optimizare, optimizare si calcul de inalta performanta, precum si cateva aspecte de baza ale modelelor de optimizare. Capitolul doi este dedicat prezentarii conditiilor de optimalitate pentru cateva clase de probleme de programare matematica. Capitolul trei se concentreaza asupra metodelor de optimizare. Capitolul patru constituie o introducere in software-ul de optimizare, in sensul prezentãrii unei liste a celor mai importante programe si pachete de programe de programare matematica cunoscute in comunitatea stiintifica a momentului. Software-ul de optimizare este organizat în 18 clase de pachete de programe in care sunt descrise 195 de programe de calcul. Fiecare pachet este prezentat prin numele sau, autor, pagina de web unde se gãsesc informatii despre el, algoritmul care sta la baza lui, o scurta caracterizare care-l individualizeaza in clasa respectiva si referintele inportante asociate. Ultimul capitol este dedicat prezentarii unei baterii de modele de programare liniara si probleme de test pentru optimizare. Astfel, se discuta 13 clase de modele de programare liniara a caror prototip se prezinta in limbajul ALLO, 87 de probleme de test de optimizare fara restrictii, 100 de probleme de test de optimizare cu restrictii, si 33 de aplicatii ale programarii matematice. In anexa A1 se descrie limbajul ALLO pentru programarea liniara, anexa A2 contine lista pachetelor de programe de optimizare considerate in lucrare, anexa A3 prezinta lista aplicatiilor de programare matematica, iar anexa A4 ilustreaza o galerie de matrice ale unor probleme de programare liniara.
Adresabilitate. Monografia se adreseazã la douã clase de utilizatori. Prima consta in specialisti in domeniul programãrii matematice interesati pe de-o parte de posibilitatile de rezolvare a problemelor de programare matematica, sau pe de alta parte interesati de a testa propriile implementari ale algoritmilor de optimizare pe probleme de test pentru care se cunoaste cel puþin o solutie locala. A doua clasa consta in cei interesati in modelarea matematica pentru optimizare, si care inteleg utilizarea modelelor de optimizare in domeniul lor de activitate. Parcurgerea acestei lucrari este foarte simpla. Specialistul in programare matematica va gasi o serie de informatii utile asupra software-ului actual de optimizare si ceea ce este foarte important adresa de web a acestui software. Analistii din domeniul cercetarilor operationale si al stiintei managementului, planificatori, programatori, ingineri, doctoranzi, etc vor gãsi informatii foarte utile asupra capabilitatilor tehnicilor de optimizare, precum si prototipuri de modele de programare liniara si modele de optimizare neliniara din diverse domenii de activitate: mecanic, chimic, electric, etc.
Multumiri. Mai intai multumirile noastre se indreaptã cãtre Fundatia “Alexander-von-Humboldt”, care cu o deosebitã generozitate si solicitudine a stiut sã ne sprijine moral si material de-a lungul celor peste doi ani petrecuti in cateva universitati din Germania, precum si pentru ajutorul acordat de-a lungul timpului dupã efectuarea bursei. Ni s-a pãrut natural ca prin aceasta dedicatie sa recompensam, macar in parte, nobletea acestei institutii a cãrei generozitate, in fond, nici nu poate fi recompensata. In al doi-lea rand datorez multumiri celor cativa colegi si prieteni care au stiut sã ma sprijine si sa ma incurajeze cu solicitudine si umor de-a lungul elaborarii acestei monografii. In final doresc sã multumesc sotiei mele si copiilor mei care in tot acest rastimp ne-au fost alaturi cu dragoste si intelegere.
Bucuresti,
Septembrie 23,
2001
Neculai Andrei