aplicatii la tema 2-1 si 2-2

12
CURSUL 6 Aplicatii la tema 2 Problema comisvoiajorulu i 1. Agentia de turism HAI SA HAIDEM, in colaborare cu Primaria intentioneaza sa organizeze pentru turistii straini sositi in Capitala un tur al orasului cu vizitarea a sase obiective de interes turistic: muzee, cladiri istorice, biserici. Autocarul va pleca din fata Primariei si se va intoarce tot acolo.Pozitiile relative ale Primariei    locatia 0    si ale celor sase obiective    locatiile 1,…,6   sunt date in figura 1. In tabelul 1 sunt date distantele dintre locatiile 0,1,…,6 masurate in linie dreapta in hectometri ( 1hm = 100m) Latura patratului caroiajului masoara 10hm = 1km iar distantele reale nu difera semnificativ de cele indicate. Din motive evidente (timp,cost) se doreste ca lungimea totala a traseului sa fie cat mai mica. i) Cate trasee distincte sunt posibile? ii) Aplicati riguros euristica mergi la cel mai apropiat vecin  pentru determinarea unui traseu complet cu punctul de plecare in 0; iii) Daca este cazul, aplicati riguros euristica ajustare locala selectand inteligent  perechile de arce care vor fi inlocuite. Se cer minimum doua ameliorari ale lungimii traseului initial; iv) Reluati euristica mergi la cel mai apropiat vecin plecand de asta  data din nodul 3. Atentie: nu uitati sa calculati lungimile traseelor generate ! Figura 1 1 2 3 6 4 5 0 1 2 3 4 5 6 0 14 30 42 45 60 58 1  22 28 32 51 45 2  30 41 67 36 3  14 42 20 4  28 32 5  58 Tabelul 1

Upload: ladymarga

Post on 06-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 1/12

CURSUL 6

Aplicatii la tema 2

Problema comisvoiajorului

1.  Agentia de turism HAI SA HAIDEM, in colaborare cu Primaria intentioneaza sa

organizeze pentru turistii straini sositi in Capitala un tur al orasului cu vizitarea a sase

obiective de interes turistic: muzee, cladiri istorice, biserici. Autocarul va pleca din fataPrimariei si se va intoarce tot acolo.Pozitiile relative ale Primariei  –   locatia 0  –  si ale

celor sase obiective  –   locatiile 1,…,6 –   sunt date in figura 1. In tabelul 1 sunt datedistantele dintre locatiile 0,1,…,6 masurate in linie dreapta in hectometri ( 1hm = 100m)

Latura patratului caroiajului masoara 10hm = 1km iar distantele reale nu difera

semnificativ de cele indicate. Din motive evidente (timp,cost) se doreste ca lungimea

totala a traseului sa fie cat mai mica.

i) Cate trasee distincte sunt posibile?ii) Aplicati riguros euristica mergi la cel mai apropiat vecin pentru determinarea unui

traseu complet cu punctul de plecare in 0;iii) Daca este cazul, aplicati riguros  euristica ajustare locala  selectand inteligent

 perechile de arce care vor fi inlocuite. Se cer minimum doua ameliorari ale lungimiitraseului initial;

iv) Reluati euristica mergi la cel mai apropiat vecin plecand de asta data din nodul 3.Atentie: nu uitati sa calculati lungimile traseelor generate!

Figura 1

1

2 3

6

4

50

1 2 3 4 5 6

0 14 30 42 45 60 58

1 •  22 28 32 51 45

2 •  30 41 67 36

3 •  14 42 20

4 •  28 325 •  58

Tabelul 1

Page 2: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 2/12

 Rezolvare

i) Exista 320!62

1  trasee diferite.

ii) Traseul dat de euristica mergi la cel mai apropiat vecin

iii) Aplicam ajustarea locala ape arcele (1,2) si (6,0)

A rezultat traseul: 0 → 2 → 3 → 4 → 5 → 6 → 1 → 0  cu lungimea:

224-(22 + 58) + (30 + 45) = 219hm = 21,9km

Aplicam ajustarea locala pe arcele (2,3) si (6,1)

Figura 2

1

2 3

6

4

50

Euristica produce solutia unica:

0 → 1 → 2 → 3 → 4 → 5 → 6 → 0 

Lungimea traseului:

14 + 22 + 30 + 14 + 28 + 58 + 58 = 224hm

= 22,4km

Figura 3a)

1

2 3

6

4

50

Figura 3b)

1

2 3

6

4

50

Page 3: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 3/12

 

A rezultat traseul: 0 → 1 → 3 → 4 → 5 → 6 → 2 → 0  cu lungimea:

219 - (30 + 45) + (28 + 36) = 208hm = 20,8km

iv) Plecand din nodul 3 cu euristica mergi la cel mai apropiat vecin se obtine traseul din

figura 5 cu lungimea de 193hm = 19,3km care pare a fi cel mai scurt.

Figura 4a)

1

2 3

6

4

50

Figura 4b)

1

2 3

6

4

50

Figura 5

1

2 3

6

4

50

Page 4: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 4/12

 

Problema postasului chinez 

1. i) Pentru graful din figura 6 calculati gradele nodurilor si treceti-le in tabelul de mai

 jos.

 Nod a b c d e f g h

Grad

ii) Este posibilă traversarea tuturor muchiilor grafului, fiecare o singură dată? Cum? 

Rezolvare i)

 Nod a b c d e f g h

Grad 2 4 4 4 4 2 6 2

ii) Da, exista posibilitatea traversarii tuturor muchiilor o singura data cu plecarea si

intoarcerea in acelasi nod, deoarece toate nodurile au gradul par (teorema 1 a lui Euler,cursul 5). Altfel spus, graful din figura 6 este eulerian.Pentru a gasi o asemenea

traversare, descompunem graful in cicluri elementare disjuncte (lucru posibil in bazateoremei 2 a lui Veblen,cursul 5) pe care apoi le concatenam intr-un ciclu eulerian.

Atentie: in general, descompunerea nu este unica si ca urmare pot exista o sumedenie decicluri euleriene ≡ solutii de traversare a tuturor muchiilor o singura data! O rezolvare

este data in figura 7, cu plecarea si intoarcerea in nodul a.

Figura 6

ca  b

f

d e

g h

Page 5: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 5/12

 

2. Pentru graful din figura 8 determinati un traseu postal de valoare minima cu plecarea

si intoarcerea in nodul A.

Rezolvare 

Graful nu este eulerian deoarece nodurile A si E au gradul impar 3.

Existand doar doua noduri de grad impar cuplajul de valoare minima coincide

cu lantul de cuplare dintre A  si E cu cea mai mica valoare! Prin simpla inspectie se

gaseste lantul A —  B —  E cu valoarea 9.

A B

C

D E

5

6 4

4

5103

6

7

Figura 8

a b

e

gf

d

b c

hg

c

g

de

Ciclul C1 Ciclul C2 Ciclul C3

concatenare 

a b c d g c e h g b e g f d a

Figura 7 

Page 6: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 6/12

  Din graful dat derivam un nou graf G* dubland muchiile lantului A —  B —  E.

Prin constructie, noul graf este eulerian  si ca urmare exista posibilitatea traversarii

muchiilor sale o singura data cu plecarea si intoarcerea in nodul A. Procedand ca inexercitiul precedent se determina un ciclu eulerian in G* (exista o groaza de solutii…) In

raport cu graful original, orice ciclu eulerian din G* este un traseu postal de valoare

minima! O solutie este data in figura 9 ; muchiile traversate de doua ori au fostingrosate!

Valoarea traseului postal optim = suma valorilor tuturor muchiilor grafului dat + sumavalorilor muchiilor traversate de doua ori = 50 + 9 = 59

3. Pentru graful din figura 10 determinati un traseu postal de valoare minima cu plecarea

si intoarcerea in nodul A.

Rezolvare 

Ca si in exercitiul precedent, existenta nodurilor de grad impar face ca in traseul postal

optim unele muchii sa fie traversate de doua ori! De aceasta data avem 4 noduri

B,C,F,G  toate cu gradul impar 3. In tabelul 2 sunt afisate lanturile de cuplare dintre

cele 4 noduri si valorile acestora 

Figura 9

A B

C

D E

Graful eulerian G*

Un ciclu eulerian in G* ≡ un traseu postal de valoare minima in graful original: 

A B E C B D C A B E D A

Page 7: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 7/12

 

Lanturile de

cuplare

si valorile lor:

C F G

B

3

B —  D —  E  —  C

3

B —  D —  F

4

B —  D —  G

C *

4

C —  E —  D —  F

5

C —  E —  D —  G

F *

3

F —  K —  G

Tabelul 2

 Nodurile B,C,F,G se pot cupla, doua cate doua, in trei moduri:

B cu C si F cu G ; B cu F si C cu G ; B cu G si C cu F ;

Cautam cuplajul de valoare minima, vezi tabelul 3.

K

A

B C

D E

F

G H

8 2

1 1

1

2 45 3

4

1

3

2 9

c)

Figura 10

Page 8: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 8/12

 

Posibilitati de cuplare Valoarea cuplajului

← cuplajul de valoare minima B cu C si F cu G 3 + 3 = 6

B cu F si C cu G 3 + 5 = 8

B cu G si C cu F 4 + 4 = 8

Tabelul 3

In graful dat, dublam muchiile lanturilor de cuplare:

B —  D —  E —  C si F —  K —  G

din cuplajul de valoare minima identificat mai sus. Obtinem un graf eulerian vizualizatin figura 11

A

B C

D E

F

G H

Figura 11

K

Page 9: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 9/12

Lasam in grija cititorului sarcina determinarii  –   algoritmice!  –  a unui ciclu eulerian  in

graful extins. In raport cu graful original, acest ciclu va fi un traseu postal de valoare

minima. Indiferent de solutia de traversare ( sunt foarte multe!) valoarea sa este egalacu:

suma valorilor muchiilor grafului original + suma valorilor muchiilor din cuplajul

minimal (muchii traversate de doua ori!) = 46 + 6 = 52

Tema 3. Programarea matematica  –   instrument alternativ de modelare a

proceselor decizionale din economie

3.1 Modelarea prin programare matematica. Chestiuni generale

A Ce este o problema de programare matematica

Problemele practice studiate in cadrul temelor 1 si 2 au avut o trasatura comuna: toate aufost modelate cu ajutorul aceluiasi instrument  –   un graf , adica un desen compus din puncte si linii care unesc unele dintre aceste puncte.

Tema 3 introduce o modalitate alternativa de modelare a proceselor decizionale dineconomie si anume programarea matematica.

In esenta, o problema de programare matematica  sau simplu,program matematic 

consta in

- maximizarea sau, dupa caz, minimizarea unei functii f(x) = f(x1,x2,…,xn  ) demai multe variabile x1,x2,…,xn  (1)

ale caror valori trebuie sa satisfaca:- un ansamblu de relatii matematice –  ecuatii si/sau inecuatii; (2)

- unele conditii explicite cum ar fi: sa ia numai valori nenegative (≥0) sau sa ianumai valori intregi,etc. (3) 

De obicei, un program matematic va fi notat cu sigla (P). Functia de optimizat

f(x1,x2,…,xn) din (1), de multe ori notata simplu cu f, se numeste functia obiectiv  a

 problemei (P) iar relatiile implicite din (2) se numesc restrictii. Pentru variabilele

x1,x2,…,xn  vom folosi denumirea uzuala de variabile de decizie. Un set de valorinumerice ),...,,( 21   n x x x x  asignate variabilelor de decizie, care satisfac restrictiile (2),

se va numi solutie  a programului (P); daca componentele n x x x   ,...,, 21   satisfac si

conditiile explicite (3) vom spune ca  x   este o solutie admisibila. Multimea solutiilor

admisibile se va nota de regula cu .

Page 10: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 10/12

Rezolvarea  problemei (P) adica maximizarea (sau minimizarea) functiei f inseamna

determinarea efectiva a acelei solutii admisibile   ),...,,( 21   n x x x x cu proprietatea

ca ofera functiei f cea mai mare (sau cea mai mica) valoare posibila. Solutia admisibila

 x  se va numi solutia optima a problemei de programare (P).

Daca functia obiectiv (1) si restrictiile (2) sunt liniare  in variabilele x1,x2,…,xn  vomspune ca (P) este o problema de programare liniara sau simplu un program liniar.

 Neliniaritatea fie a functiei obiectiv fie a unora dintre restrictii plaseaza (P) in clasa problemelor de programare neliniara.

Iata doua “mici” probleme de programare matematica: 

)3(0,0

)2(

363

4532

9035

)1(1210(max)

)(

21

21

21

21

21

1

 x x

 x x

 x x

 x x

 x x  f  

 P   

)3(0,0

)2(100

)1((max)

)(

21

21

21

2

 x x

 x x

 x x  f  

 P   

Ambele “se citesc” la fel: 

Sa se determine ansamblul (aici, perechea) de valori numerice ),( 21   x x x care

satisfac sistemul de restrictii (2), conditiile de nenegativitate (3) si care ofera

functiei obiectiv (1) cea mai mare valoare posibila.

Programul (P1) este un program liniar deoarece atat functia obiectiv cat si cele treirestrictii sunt liniare in variabilele x1, x2. In programul (P2) restrictia este liniara in x1, x2 

dar functia obiectiv nu este, astfel ca (P2) este un program neliniar.

Sa privim mai aproape programul liniar (P1).Sunt firesti intrebarile:

Cate solutii admisibile are problema si cum “arata” multimea lor ?

Care este solutia optima si cum se gaseste ea?

De exemplu, x = (0,0) –  adica x1 = 0,x2 = 0 –  este o solutie admisibila deoarece satisface banal  restriciile (2) si conditiile de nenegativitate (3). Valoarea functiei obiectiv in x

este 0. O solutie admisibila “mai buna” este )9,9( x - adica x1 = 9,x2 = 9  –  pentru ca

satisface restrictiile (2) –  pe prima cu inegalitate stricta si cu egalitate pe celelalte doua –  si ofera functiei (1) valoarea 99. Ce mai buna solutie, adica solutia optima, se dovedeste

a fi 5,15)5,15( 21      x x x (vom vedea de ce!).Ea satisface cu egalitate primele

Page 11: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 11/12

doua restrictii si cu inegalitate stricta pe ultima, oferind functiei obiectiv (1) valoarea

maxima 210.

B. Schema generala de elaborare a unui model de programare matematica

O mare varietate de probleme de decizie economica au ca model o problema de programare matematica, adesea liniara.Sa luam ca exemplu problema planificarii

 productiei unei unitati economice pe o perioada viitoare.In problema sunt implicate doua

categorii de marimi:

- marimi constante, cunoscute cum sunt cantitatile de resurse (capacitati de productie, materii prime, forta de munca, bani) disponibile pentru viitoarea perioada de

 planificare, consumurile normate de resurse pentru fabricarea produselor finite, preturile

la care vor fi vandute produsele fabricate sau profiturile rezultate din vanzarea acestora,

tinte prestabilite la unii indicatori economici etc.

- marimile variabile, necunoscute, sunt in acest caz cantitatile de produse finite ceurmeaza a fi realizate in urmatoarea perioada. Ansamblul lor constituie esentaprogramului de activitate (planului) pentru perioada viitoare analizata. Fireste, existanenumarate combinatii in care pot fi fabricate produsele finite; importante sunt cele

admisibile, adica cele care pot fi efectiv realizate din resursele disponibile existente.Programele admisibile de activitate pot fi comparate intre ele pe baza unui criteriu de

apreciere (denumit si criteriu de performanta) cum ar fi venitul sau profitul total rezultatdin vanzarea productiei obtinute.In principiu, planificatorii sunt interesati in

determinarea “celui mai performant” program potential de activitate. 

Situatia descrisa poate fi modelata cu ajutorul unei probleme de programare matematicain care:

- variabilele de decizie corespund marimilor variabile;- functia obiectiv traduce in limbaj matematic criteriul de apreciere considerat;

- restrictiile formalizeaza conditiile limitative existente ca de exemplu incadrareaconsumului de resurse in disponibile, realizarea indicatorilor economici propusi etc;

- de regula, conditia explicita uzuala, impusa variabilelor de decizie, este conditia

de a lua numai valori nenegative (≥), derivata nemijlocit din semnificatia economica a

acestor variabile.

Daca functia obiectiv si restrictiile sunt liniare in variabilele de decizie modelul

rezultat este o problema de programare liniara.

Celelalte sectiuni ale temai vor avea in vedere, in exclusivitate, numai modele de

programare liniara!

Page 12: Aplicatii La Tema 2-1 Si 2-2

8/18/2019 Aplicatii La Tema 2-1 Si 2-2

http://slidepdf.com/reader/full/aplicatii-la-tema-2-1-si-2-2 12/12

  C. Despre rezolvarea problemelor de programare liniara

Pentru programele liniare exista un procedeu iterativ de rezolvare: este vorba dealgoritmul simplex, elaborat in 1947 de catre matematicianul american George B.

Dantzig.

Uriasa experienta numerica acumulata pana in prezent a pus in evidenta eficacitatea sirobustetea procedeului in fata oricarei aplicatii practice si, din acest motiv, algoritmul

simplex a fost clasat in topul primilor 10 algoritmi ai secolului XX.

Primul program liniar cu adevarat mare, rezolvat cu acest algoritm, a fost o problema a

dietei cu 77 tipuri de alimente existente pe piata americana a anilor ’40, precum laptele

 praf, varza, fasolea, spanacul sau ficatul de vita si cu cerinte specifice pentru 9 principiinutritive cum ar fi calorii, proteine, calciu, fier, vitaminele A si C s. a. Problema fusese

studiata inca din 1943 de catre George Stiegler (laureat al premiului Nobel in 1982) si de

ea era interesata si conducerea militara a SUA care dorea sa stie cam care ar fi efortul

financiar pentru hrana soldatilor de pe diversele fronturi de lupta. Rezolvarea s-a facut

chiar in 1947 de catre o echipa de 9 “baieti buni la socoteli” dotati cu calculatoaremecanice de birou. (in vremea aceea nu existau computere…) Efortul de calcul a fostevaluat la aproximativ 120 om –  zile!

In timp, cercetarea teoretica si practica asupra algoritmului simplex (perfectionare,extindere, variante) s-a desfasurat in ritm sustinut fiind impulsionata si motivand la

randul sau aparitia, dezvoltarea si perfectionarea mijloacelor automate de calcul. Astazi,rezolvarea unui program liniar cu (zeci de) mii de variabile si/sau restrictii este un fapt

obisnuit.

Obiectivele si spatiul alocat acestui curs nu permit descrierea algoritmului simplex, alcarui fundament matematic este destul de consistent.Pentru mai buna intelegere a

 programarii liniare am inclus o sectiune in care este descrisa metoda grafica de rezolvarea problemelor cu doua variabile. Pentru problemele mai mari se va folosi utilitarul QM

al carui mod de lucru va fi descris in partea finala a cursului.