Download - 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
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
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
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
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
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
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
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
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 .
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
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!
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.