14
 1 Pachetul Software ptr optimizare AIMMS : Aplicatii

Referat AIMMS

Embed Size (px)

Citation preview

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 1/14

 

1

Pachetul Software ptr

optimizare AIMMS :

Aplicatii

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 2/14

 

2

Table of Contents1.Problema de transport ............................................................................................................................... 3

2.Problema de dieta ...................................................................................................................................... 7

2.1 Descrierea datelor ............................................................................................................................... 7

2.2 Descrierea modelului .......................................................................................................................... 8

2.3. Cantitati si unitati de masura ............................................................................................................. 8

2.4. Variabile,Parametrii,Model .............................................................................................................. 10

2.5. Vizualizare Rezultat .......................................................................................................................... 13

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 3/14

 

3

AIMMS ("Advanced Interactive Multidimensional Modeling System") este un sistem

software proiectat pentru modelarea şi rezolvarea  pe scară largă a problemelor de optimizare şi 

planificare .Este utilizat într-o gamă largă de industrii, inclusiv de petrol şi produse chimice,

 producţia de oţel şi cea agricola. 

1.Problema de transport 

Camioane care transporta vinuri,vor aproviziona 5 clienti/5 magazine,aflate in urmatoarele

orase: Pitesti,Bucuresti,Constanta, Calarasi,Alexandria.Aceste camioane pleaca din 2 podgorii

diferite,apartinand aceluiasi proprietar.In urmatorul tabel putem vedea cerea pentru fiecarui magazin,disponibilul de vin din fiecare

podgorie,precum si costul asociat transportului unui singur camion de la fiecare podgorie la

clienti.Obiectivul este acela de a gasi o modalitate prin care transportul sa se efectueze cu un cost

minim si cererea sa fie acoperita.

Podgorii Cost transport pe unitate

Disponibil

Bucuresti Pitesti Constanta Calarasi Alexandria

Podgoria 1 131 405 188 396 485 47

Podgoria 2 554 351 479 366 155 63

Cerere 28 16 22 31 12

Modelul matematic: (min) T = Σ Upc*Xpc 

p,c

Σ Xpc ≤ Dp , ∀ pp

Σ Xpc ≤ Cc, ∀ c

c

Xpc ≥ 0 , ∀ p,c

Indici: p = podgorii

c = client

Parametrii: Dp = disponibilul din podgorie

Cc = cererea clientului

Upc = costul pe unitatea de transport de la podgorie la magazin

Variabile: T = costul total al transportului 

Xpc = transportul de la podgorie la magazine

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 4/14

 

4

 Rezolvare folosind AIMMS:

In programul AIMMS,deschidem un nou proiect pe

care-l numim “Problema de transport”. 

In continuare,cream cele 2 seturi de identificatori:

Podgorii(cu paramentrul p) si Clienti (cu parametrul c).

Definim apoi parametrii: Oferta(f), Cerere(c) precum şiCostTransport(f,c) si variabila Transport(p,c).

Construim variabila CostTotalTransport având la definiţie

următoare formulă:sum[(f,c),CostTransport(f,c)*Transport(f,c)]

Adăugăm cele două restricţii ale modelului :  RestrictieOferta(f) cu definiţia: sum[c,Transport(f,c)]<=Oferta(f)

 RestricţieCerere(c) cu definiţia: sum[f,Transport(f,c)]>=Cerere(c)

Construim programul MinCostTransport,cu CostTotalTransport la Objective.

Urmatorul pas este sa introducem datele.Intai adaugam clientii si podgoriile:

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 5/14

 

5

Apoi adaugam datele corespunzatoare in Oferta(p) ci Cerere(c):

Introducem datele despre CostTransport :

Pentru a rezolva modelul intram in MainExecution şi completăm corpul procedurii:

Dupa rularea programului,vizualizam rezultatele:

Constatam,deci,ca cea mai eficienta modalitate de a satisface cererea cu un cost minim este

urmatoarea:

-  Podgoria1 aprovizioneaza magazinul din Bucuresti integral,cu 28 de camioane si

magazinul din Constanta cu 19 camioane(restul de 3 vor fi asigurate de Pdgoria 2)-  Podgoria2 aprovizioneaza integral magazinele din Pitesti(cu 16 camioane), Calarasi (cu 31

de camioane) si Alexandria(cu 12 camioane),nu aprovizioneaza deloc magazinul din

Bucuresti si trimite doar 3 camioane magazinului din Constanta.

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 6/14

 

6

In continuare vom construi o pagină pentru prezentarea datelor de intrare şi a

rezultatelor.Denumim pagina Date.Pe aceasta pagina,afisam tabelul de date,la care atasamgrafice de tip bar ptr cerere si oferta,un table composite ptr variabila transport cu graficul

corespunzator si un camp in care afisam rezultatul,denumit CostTotalTransport .Ptr ca lucrul sa

fie mai usor,am adaugat un buton cu titlul Rezolva Problema.

Trecerea paginii in modul User,ne permite sa efectuam modificari ale datelor si sa vizualizam

noul rezultat.Spre exemplu,dupa modificarea costului de transport intre Podgoria1 si Bucuresti(de la 131 la 500),obtinem:

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 7/14

 

7

Observam o modificare clara in graficul de transport si in costul total al transportului,care devine

37.120,fata de 27.499 initial.

2.Problema de dieta

2.1 Descrierea datelor

Exemplul de mai jos este bazat pe produsele KFC si ia in considerare un set de date care

include 11 feluri de mancare representative pentru meniurile KFC si 4 nutrienti:calorii,proteine,grasimi si carbohidrati.Scopul este este acela de a determina meniul potrivit,care

sa acopere cele 2 mese importante ale zilei (pranz si seara),respectand in acelasi timp restrictiile

unei diete sanatoase, dar si un buget minim.

Calories(cal)

protein(g) fat(g)

Carbohydrat

e(g)

maxservings

Spicy Crispy- Whole Wing 170 11 12 6 2

Crispy Strips (3 390 32 21 17 2

Crispy Twister® 610 28 33 52 2

Caesar Side Salad without Dressing

& Croutons 40 3 18 2 2

Pepsi®* 230 0 0 63 2

Milk 2% 170 12 6 17 2

Hot Wings® Value Box 490 15 27 45 2

Chicken Pot Pie 790 29 45 66 2Potato Wedges 290 4 15 35 2

Chocolate Chip Cake 300 4 15 39 2

minimum 1200 45 100 2

maximum 70

Preturile si cantitatile ptr fiecare produs in parte sunt urmatoarele:

Pret(lei)

Cantitate

(g)

Spicy Crispy- Whole Wing 3 51

Crispy Strips (3 9 165

Crispy Twister® 12 247Caesar Side Salad without Dressing &

Croutons 15 91

Pepsi®* 5 20 oz

Milk 2% 4 10 oz

Hot Wings® Value Box 16 173

Chicken Pot Pie 10 400

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 8/14

 

8

Potato Wedges 6,5 108

Chocolate Chip Cake 6 76/bucata

Datele folosite sunt reale,preluate din brosura cu informatii nutritionale de la KFC.

2.2 Descrierea modelului

Modelul trebuie sa respecte urmatoarele conditii:

- minimizarea costului total al meniului

- restrictii - ptr nutrienti: cantitatea de nutrient din meniu trebuie sa satisfaca conditiile

de minim si de maxim cerute

- ptr toate felurile de mancare : fiecare fel de mancare poate fi servit de

maxim 2 ori

Indici: f = feluri de mancare

n = nutrient

Parametrii: Vfn = valoarea nutrientului n care se regaseste intr-o unitate de mancare f 

Nf = nr maxim de serviri pentru o unitate de mancare f 

Mn = cantitatea maxima permisa din nutrientul n in meniu

mn = cantitatea minima necesara din nutrientul n in meniu

Pf   = pretul unei unitati de mancare f 

Variabile: xf  = nr de unitati servite in meniu din felul de mancare f 

Modelul matematic : 

() ∑  

∑ ∀

 

* + ∀ 

2.3. Cantitati si unitati de masura

In cadrul acestui exemplu,o importanta deosebita o au unitatile de masura,care ofera consistenta

diferitelor valori pe care le pot lua nutrientii.

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 9/14

 

9

Asadar,in acest model,am folosit:

Marimi Aplicativitatea in problema de dieta

masa Ptr masura cantitatea de proteine,grasimi si

carbohidrati,dar si pentru a vedea cum seportioneaza felul de mancare

Energie Ptr masurarea caloriilor

moneda Ptr cost

In ceea ce priveste unitatatile de masura,au fost folosite cele conform Sistemului Interntional(SI):

Marimi Unitatea de baza Unitati derivate

Masa kg g,oz

Energie J cal,Kcal

Moneda leu euro

In vederea introducerii acestor date in AIMMS,am creat o noua serctiune,numita “Cantitati siunitati de masura” :

Identificatorul folosit pentru masa,energie si moneda este “quatity”:

In ceea ce priveste sintaxa pentru

conversie,interpretarea ei este urmatoarea:O unitate de masura(ex gram) este se va

converti intr-o alta unitate de masura(kg) ,

considerand orice numar # masurat ingrame si impartindul pe acesta la 1000.

Tot in aceasta sectiune,am creat 2 tipuri de parametrii:”unit parameter”,in

care am trecut unitatile curente de masura folosite,si “string parameter” cu

unitatile de masura in SI.

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 10/14

 

10

Ptr ca,la final,utilizatorul sa poata modifica unitatile de masura si sa i se afiseze automat noile

valori,am creat inca o sectiune ,numita “Unitati” ,in care am notat toate unitatile de masura,dar si unitatile de masura posibile per

nutrient:

“VerificareUnitatiDeMasura” este de tip

“assertions”,care are ca definitie: 

StringToElement (UnitatiDeMasuraPosibile,SI_Nutrienti(n),0) in UnitatiDeMasuraPosPerNutrient(n)OR 

not SI_Nutrienti(n)

Iar ca actiune:

 DialogMessage(FormatString("This unit is not allowed for this value (%e)" , n),"Warning");

empty SI_Nutrienti(n)

si permite efectiv modificarea unitatilor de masura,atunci cand solicita o schimbare,prin

transferul unitatii de masura dorite din “UnitatiDeMasuraPosibile” in

“UnitatiDeMasuraPerNutrient”,sau atentioneaza in cazul in care nu exista in date acea unitate de

masura ptr marimea respectiva.

2.4. Variabile,Parametrii,Model

Cream seturile de date “FeluriDeMancare” de parametru f si “Nutrienti” de parametru n ,cu

datele corespunzatoare.Notam constrangerile de maxim si de minim specificate in problema:

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 11/14

 

11

Variabilele sunt urmatoarele : “CostTotal” , “NrUnitatiInMeniu” ,

“ValoareTotalaNutrientiDietaOptima”,”CantitateaTotalaPtrDietaOptima”.

Variabila “CostTotal” are ca unitate de masura leul,iar ca definitie:Sum[ f, PretUnitate(f) * NrUnitatiInMeniu(f)];

Variabila “ NrUnitatiInMeniu” este construita in felul urmator: 

“ValoareTotalaNutrientiDietaOptima” are indexul n si ca definitie:Sum[ f, ValoareNutrientPeUnitConsumata(f,n) * NrUnitatiInMeniu(f)]

Ultima variabila, “CantitateaTotatalaPtrDietaOptima” are unitatea de masura gramul,cudefinitia:Sum[ f, GreutateaFeluluiDeMancare(f) * NrUnitatiInMeniu(f)]

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 12/14

 

12

In continuare am definit parametrii:

-  “GreutateaFeluluiDeMancare”,de index f siunde am introdus datele corespunzatoare ptr

fiecare fel de mancare;

“PretUnitate” ,de index f si ca unitate de masuraleul;

-  “CantitateaMinimaNecesaraNutrient ” si

“CantitateaMaximaPermisaDeNutrient ”, undeam trecut restrictiile corespunzatore;

-  “ValoareNutrientPeUnitConsumata” , de index

(f,n) si care preia datele in ceea ce priveste unitatea de masura din parametrul

unitate“UnitateMasuraNutrienti”; 

-  “ NrMaximServiri” de parametru f;dupa cum am specificat mai jos,fiecare fel de mancare

poate fi servit de maxim 2 ori.

Urmatorul pas este definit de constrangeri:

-  “ConstrangereDeMinim”,cu definitiaSum[ f,

ValoareNutrientPeUnitConsumata(f,n)

* NrUnitatiInMeniu(f)] >=

CantitMinimaNecesaraNutrient(n); -  “ConstrangereDeMaxim”,cu definitia

Sum[ f, ValoareNutrientPeUnitConsumata(f,n) *

NrUnitatiInMeniu(f)] <= CantitMaximaPermisaDeNutrient(n); 

Programul matematic este urmatorul :

Procedura “ Main Execusion” a fost completata cuurmatorul corp:

if not IsRunningAsViewer then 

Solve ProblemaDeDieta;

else 

DialogMessage("In the AIMMS Viewer, the SOLVE statement is disabled. Therefore the

solution is read from a case");

CaseFind("Solution",ACase);

CaseLoadCurrent(ACase,0);

endif; 

Greutatea felului de mancare

Valoarea nutrientului pentru fiecare produs

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 13/14

 

13

2.5. Vizualizare Rezultat 

Pentru o vizualizare mai buna a datelor de intrare si a celor de iesire/rezultatelor,in Page

Manager am creat pagina “date” ,careia unde am adaugat si un buton care sa permita rezolvareasi de unde se pot efectua si diferite modificari ale datelor:

In concluzie,daca alegem sa mancam de la KFC,ptr o dieta echilibrata cea mai buna alegere este

un meniu ce cantareste 726g si costa 20 lei.Felurile de mancare care,combinate,intrunesc aceste

conditii,sunt urmatoarele: “Milk 2%”,”Chicken Pot Pie” si “Chocolate Chip Cake”. 

8/2/2019 Referat AIMMS

http://slidepdf.com/reader/full/referat-aimms 14/14

 

14