cercetari operationale, probabilitati, criptologie. aplicatii
Post on 30-Oct-2015
213 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
1/322
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
2/322
Emil Simion Mircea AndraiuDavid Naccache Gheorghe Simion
CERCETRI OPERAIONALE,PROBABILITI I CRIPTOLOGIE
APLICAII
EDITURA ACADEMIEI TEHNICE MILITARE
Bucureti, 2011
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
3/322
Refereni tiinifici:
Prof. univ. dr. Octavian STNILProf. univ. dr. Victor-Valeriu PATRICIU
Conf. univ. dr. OvidiuANDRU
Descrierea CIP a Bibliotecii Naionale a RomnieiCercetri operaionale, probabiliti i criptologie: aplicaii / Emil Simion,
Mircea Andraiu, David Naccache, Gheorghe Simion. - Bucureti : Editura
Academiei Tehnice Militare, 2011
Bibliogr.
ISBN 978-973-640-208-1
I. Simion, Emil
II. Andraiu, Mircea
III. Naccache, David
IV. Simion, Gheorghe
004.056.55
621.928
Editat: Academia Tehnic Militar
Redactor-ef:lt. col. ing.Stelian SPNU
Corectur:Mihaela ZAHARIOIUOperaiuni tipografice:plt. adj.Petru ANTOCHI,Silvia STROE, Viorica TOMA,Adrian STNIC
Bun de tipar: 08.08.2011
Hrtie ofset: 70 100 Format: 32 / 70 100Coli tipar: 18,4 Coli editur: 9,2
Tiparul:Academia Tehnic MilitarLucrarea conine 292 pagini
0208 C. C-8
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
4/322
i
Cuvant nainteCercetarea Operationala a aparut ca disciplina prin formularea, n perioda celei de a
doua conflagratii mondiale, a problemei de transport cand s-a pus problema alocarii eficientea resurselor catre unitatile combatante. Ulterior, aceste probleme si-au gasit utilitatea si nactivitatea de management a unitatilor economice. Un rol important n dezvoltarea acesteiteorii l-a avut George Dantzig (1953).
Teoria grafurilor si analiza fluxului maxim sunt modele pentru o serie de probleme detransport sau de optimizare a traficului ntre procesoare (n cadrul aplicatiilor de multi-processing n care avem si un cost de comunicare). Problemele concrete de optimizare acosturilor de aprovizionare, transport si stocare se pot rezolva cu ajutorul acestor modelematematice. Optimizarea acestor costuri poate duce la economii substantiale n cadrul uneifirme care are ca obiect de activitate astfel de probleme.
Gestiunea optima a stocurilor este o componenta esentiala n planificarea si realizarea
unui plan de marketing si este o componenta de nenlocuit a conducerii economice modernen cadrul unei economii de piata. Aceasta teorie si-a gasit mai nou aplicatii n domeniulproiectarii circuitelor electronice, stocul fiind reprezentat n acest caz de capacitatea dememorie disponibila.
Totodata, lucrarea de fata contine aplicatii practice abordate de autori n cadrul semi-nariilor ce se desfasoara la disciplina Criptografie si Securitate, la Facultatea de MatematicaInformatica din cadrul Universitatii din Bucuresti, la masterul de Securitatea Tehnolo-giei Informatiei, organizat de Academia Tehnica Militara, precum si la masterul de Teo-ria Codarii si Stocarii Informatiei, organizat de Facultatea de Stiinte Aplicate din cadrulUniversitatii Politehnica Bucuresti.
Aceasta culegere de probleme continua dezvoltarea colaborarii dintre scoala romaneascade criptologie si scoala franceza reprezentata n cazul de fata de David Naccache, profe-sor la universitatea Pantheon-Assas Paris II. Din acest motiv se regasesc, n culegerea defata, capitolele dedicate principiilor criptologice si atacurilor n mediul de implementare, ceacopera un gol din curricula sistemului de nvatamant din Romania, capitole elaborate ncolaborare cu profesorul David Naccache.
Dr. mat. Emil SimionDr. mat. Mircea Andrasiu
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
5/322
ii
Prefata
Intrand progresiv n era informatiei, societatile industrializate se gasesc n fata unui para-dox: pe de o parte, puterea si influenta Europei si a Americii de Nord au crescut semnificativ,n principal datorita maiestriei modalitatilor prin care se controleaza fluxurile de informatii,precum si valorii crescute a datelor procesate. Pe de alta parte, dupa cum au demonstrat-odeja criza Wikileaks sau viermele Stuxnet, apar noi amenintari si vulnerabilitati care fac cadependenta noastra de sistemele informationale sa fie cruciala.
De aceea, dezvoltarea atacurilor cibernetice, precum si disponibilitatea online a instru-mentelor utilizate n activitatea de piraterie conduce la obiective strategice importante sicultiva necesitatea de a pregati experti pentru acest domeniu.
Criptografia este peste tot n jurul tau. In timp ce tu citesti aceste randuri, n vecinatateata se transmit informatii cifrate prin telefoane mobile, relee de pay-TV, precum si routerewireless. Mediul n care traim se schimba ntr-un ritm alert. Aceasta evolutie este rezultatulprogresului n domeniul tehnologiilor hardware si al matematicii.
Criptografia aplicata s-a dezvoltat considerabil n ultimii ani, pentru a putea satisfacecerintele crescute de securitate ale diverselor domenii legate de tehnologia informat iei, cumar fi telecomunicatiile, retelistica, bazele de date, precum si aplicatiile de telefonie mobila.Sistemele criptografice sunt din ce n ce mai complexe si mai tehnice si necesita din ce n cemai multa putere de calcul (de exemplu schema de cifrare perfect homomorfa a lui Gentry).In plus, algoritmii criptografici trebuie utilizati mpreuna cu protocoale adecvate, a carorproiectare si ntelegere necesita o analiza delicata.
Aceasta carte va ofera instrumentele necesare pentru a ncepe sa va dezvoltati aptitudinilen domeniul criptografiei. In timp ce cititi aceste randuri n limba romana, strainul care suntva ndeamna sa realizati ca unele dintre cele mai luminate mint i care au adus contributiiacestui domeniu si aveau originile n spatiul lingvistic si cultural romanesc. De exemplu, cel
care a spart masina de cifrat Purple a japonezilor, fapta care a dus la divulgarea secretelordiplomatice japoneze nainte de intrarea Americii n cel de-al doilea razboi mondial, proveneadin orasul Chisinau, Republica Moldova, oras n care familia lui se mutase dupa plecarea dinBucuresti la sfarsitul anilor 1890. Stiinta secretelor are o lunga traditie n Romania, taracare a fost nevoita constant sa se bazeze pe propriile talente pentru a-si pastra independenta.Expertii au prezis ca urmatoarele razboaie vor ncepe n spat iul cibernetic. Autorii acesteicarti, care sunt pedagogi si cercetatori, au importanta datorie morala de a lasa mostenireRomaniei astfel de talente vitale.
In trecut, am avut onoarea de a cunoaste sau a fi mentorul unor cercetatori si studentiromani foarte talentati. Intotdeauna am fost uimit de creativitatea acestora, de dorintalor de a-si atinge scopurile, precum si de daruirea pentru munca. Sper ca aceasta carte vacontribui la dezvoltarea continua de asemenea talente, astfel ncat domeniul stiintific caruia
i-am dedicat o buna parte a vietii mele sa beneficieze de acest formidabil rezervor de talente.Daca sunteti un student talentat si interesat de studii doctorale n domeniu, nu ezitatisa ma contactati pentru sfaturi.
Prof. David NaccacheUniversite Paris II, Pantheon-Assas, PRES Sorbonne UniversitesMembru al laboratorului informatic al Ecole normale superieure. Paris, Franta.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
6/322
Cuprins
I CERCETARI OPERATIONALE 1
1 PROGRAMARE LINIARA 31.1. Folosirea eficienta a resurselor limitate . . . . . . . . . . . . . . . . . 3
1.2. Forme ale problemelor de programare liniara . . . . . . . . . . . . . 5
1.3. Algoritmul simplex (Dantzig) . . . . . . . . . . . . . . . . . . . . . . 7
1.4. Duala unei probleme de programare liniara . . . . . . . . . . . . . . 9
1.5. Problema de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 PROGRAMARE DINAMICA 17
2.1. Forma unei probleme de optimizare secventiala . . . . . . . . . . . . 17
2.2. Teorema de optim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Programare dinamica regresiva . . . . . . . . . . . . . . . . . . . . . 202.3.1. Ecuatiile programarii dinamice regresive . . . . . . . . . . . . 20
2.3.2. Rezolvarea problemelor de programare regresiva . . . . . . . 21
2.3.3. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Programare dinamica progresiva . . . . . . . . . . . . . . . . . . . . 27
2.4.1. Ecuatiile programarii dinamice progresive . . . . . . . . . . . 27
2.4.2. Rezolvarea problemelor de programare progresiva . . . . . . 28
2.4.3. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 TEORIA JOCURILOR 33
3.1. Notiuni introductive . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2. Principiul minimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3. Strategii mixte si valoarea jocului . . . . . . . . . . . . . . . . . . . . 35
3.4. Teorema fundamentala a teoriei jocurilor . . . . . . . . . . . . . . . 36
3.5. Rezolvarea jocurilor matriceale . . . . . . . . . . . . . . . . . . . . . 37
3.5.1. Formularea problemei de optimizare . . . . . . . . . . . . . . 37
3.5.2. Reducerea la probleme de programare liniara . . . . . . . . . 38
iii
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
7/322
iv CUPRINS
3.6. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 TEORIA DECIZIILOR STATISTICE 45
4.1. Prezentarea problemelor . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2. Strategii Bayes si strategii minimax . . . . . . . . . . . . . . . . . . . 46
4.3. Cazul efectuarii unor experiente unice . . . . . . . . . . . . . . . . . 47
4.4. Decizii optime n caz de incertitudine . . . . . . . . . . . . . . . . . . 49
4.4.1. Criteriul lui Hurwicz . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.2. Criteriul lui Savage . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.3. Criteriul Bayes-Laplace . . . . . . . . . . . . . . . . . . . . . 50
4.4.4. Criteriul lui Wald . . . . . . . . . . . . . . . . . . . . . . . . 50
4.5. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 TEORIA GRAFURILOR 55
5.1. Grafuri orientate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2. Algoritmul lui Kaufmann . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3. Algoritmul lui Chen . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4. Algoritmul lui Ford . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5. Algoritmul Bellman-Kalaba . . . . . . . . . . . . . . . . . . . . . . . 59
5.6. Algoritmul lui Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.7. Arbori minimali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.7.1. Algoritmul lui Kruskal . . . . . . . . . . . . . . . . . . . . . . 62
5.8. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6 PROBLEME DE TRANSPORT 75
6.1. Problema clasica de transport . . . . . . . . . . . . . . . . . . . . . . 75
6.1.1. Formularea problemei . . . . . . . . . . . . . . . . . . . . . . 75
6.1.2. Algoritmul de transport (adaptarea algoritmului simplex) . . 76
6.1.3. Determinarea unui program de baza initial . . . . . . . . . . 77
6.1.4. Degenerare si ciclare . . . . . . . . . . . . . . . . . . . . . . . 78
6.1.5. Variante ale problemei de transport . . . . . . . . . . . . . . 79
6.1.6. Algoritmul simplex modificat . . . . . . . . . . . . . . . . . . 80
6.1.7. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.2. Flux maxim intr-o retea de transport . . . . . . . . . . . . . . . . . . 89
6.2.1. Retele de transport . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.2. Algoritmul Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . 90
6.2.3. Problema de transport ca problema de flux maxim . . . . . . 92
6.2.4. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
8/322
CUPRINS v
7 TEORIA STOCURILOR 103
7.1. Formularea modelului matematic . . . . . . . . . . . . . . . . . . . . 1037.2. Modele deterministe . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7.2.1. Model de stocare a unui produs cu cerere constanta, perioadaconstanta de reaprovizionare si fara lipsa de stoc . . . . . . . 104
7.2.2. Model de stocare a unui produs cu cerere constanta, perioadaconstanta de reaprovizionare si cu posibilitatea lipsei de stoc 105
7.2.3. Model de stocare a unui produs cu cerere constanta, perioadaconstanta de reaprovizionare si fara lipsa de stoc, luand nconsiderare si costul de achizitie . . . . . . . . . . . . . . . . 108
7.2.4. Model de stocare a mai multor produse . . . . . . . . . . . . 1097.3. Modele probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.3.1. Model de stocare a unui produs cu cerere aleatoare, cu pierderen cazul surplusului de stoc, cu cheltuieli suplimentare n cazullipsei de stoc si cu cost de stocare neglijabil . . . . . . . . . . 110
7.3.2. Model de stocare a unui produs cu cerere aleatoare, cu costde stocare si cost de penalizare pentru lipsa de stoc . . . . . 114
7.4. Aplicatii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8 PROBABILITATI 1238.1. Probabiliatea unui eveniment . . . . . . . . . . . . . . . . . . . . . . 123
8.1.1. Cazul finit dimensional si al evenimetelor elementare echiprob-abile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.1.2. Probabitati geometrice . . . . . . . . . . . . . . . . . . . . . . 1248.1.3. Frecventa absoluta. Frecventa relativa . . . . . . . . . . . . . 124
8.1.4. Definitia statistica a probabilitatii . . . . . . . . . . . . . . . 1258.2. Variabile aleatoare normal distribuite . . . . . . . . . . . . . . . . . . 126
8.2.1. Densitatea de probabilitate normala . . . . . . . . . . . . . . 1268.2.2. Functia Laplace-Gauss . . . . . . . . . . . . . . . . . . . . . . 1268.2.3. O formula analitica pentru calculul probabilitatii . . . . . . . 1278.2.4. Inegalitatea lui Cebasev (1821-1894) . . . . . . . . . . . . . . 127
8.2.5. Teorema celor 3 . . . . . . . . . . . . . . . . . . . . . . . . . 1278.3. Legea numerelor mari . . . . . . . . . . . . . . . . . . . . . . . . . . 1278.4. Teorema limita centrala . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.4.1. Forma Leapunov (1857-1918) a Teoremei Limita Centrala . . 1288.4.2. Forma Moivre (1667-1754)-Laplace a Teoremei Limita Centrala129
8.5. Teste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.5.1. Testul 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298.5.2. Testul 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308.5.3. Testul 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
9/322
vi CUPRINS
8.5.4. Testul 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.5.5. Testul 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1328.5.6. Testul 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.6. Cateva distributii importante . . . . . . . . . . . . . . . . . . . . . . 134
8.6.1. Repartitii continue . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6.2. Distributii discrete . . . . . . . . . . . . . . . . . . . . . . . . 139
8.6.3. Calculul numeric al cuantilelor . . . . . . . . . . . . . . . . . 140
II CRIPTOLOGIE 143
9 SISTEMUL DE CIFRARE CEZAR 145
9.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
10 METODA SUBSTITUTIEI 149
10.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
10.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
10.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
11 SISTEMUL DE CIFRARE PLAYFAIR 155
11.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
11.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15611.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
12 SISTEMUL DE CIFRARE HILL 161
12.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
12.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
12.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
13 SISTEME DE CIFRARE POLIALFABETICE 167
13.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
13.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
13.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
14 METODA TRANSPOZITIEI 173
14.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
14.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
14.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
10/322
CUPRINS vii
15 SISTEME MIXTE 177
15.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17715.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
15.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
16 GENERATOARE PSEUDOALEATOARE 183
16.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
16.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
16.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
17 CALCULE IN CORPURI GALOIS 189
17.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
17.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
18 ALGORITMUL RIJNDAEL - STANDARDUL AES 193
18.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
18.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
18.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
19 CRIPTANALIZA CIFRURILOR BLOC 203
19.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
19.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20319.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
20 LEMA CHINEZEASCA A RESTURILOR 207
20.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
20.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
20.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
21 SISTEMUL DE CIFRARE MERKLE-HELLMAN 213
21.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
21.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
21.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
22 SISTEMUL DE CIFRARE RSA 217
22.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
22.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
22.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
11/322
viii CUPRINS
23 SISTEMUL DE CIFRARE ELGAMAL 223
23.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22323.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
23.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
24 ARITMETICA PE CURBE ELIPTICE 225
24.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
24.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
24.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
25 SISTEMUL DE CIFRARE ELGAMAL PE CURBE ELIPTICE 229
25.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22925.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
25.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
26 SISTEMUL DE CIFRARE MENEZES-VANSTONE 233
26.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
26.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
26.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
27 FUNCTII DE DISPERSIE 237
27.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
27.2. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
28 SEMNATURA ELGAMAL 241
28.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
28.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
28.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
29 SEMNATURA DSA/ECDSA 245
29.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
29.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
29.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
30 PROTOCOLUL DIFFIE-HELLMAN 249
30.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
30.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
30.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
12/322
CUPRINS ix
31 PROTOCOLUL BLOM 253
31.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25331.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25431.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
32 PROTOCOLUL SHAMIR DE PARTAJARE A SECRETELOR 25732.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25732.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25832.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
33 SCHEME DE PARTAJARE A SECRETELOR BAZATE PE CRT26133.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
33.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
34 CANALE SUBLIMINALE 26334.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26334.2. Exercitii rezolvate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26334.3. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
35 PRINCIPII CRIPTOGRAFICE 267
36 ATACURI IN MEDIUL DE IMPLEMENTARE 27136.1. Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27136.2. Exercitii propuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
37 RESURSE SOFTWARE 27337.1. CrypTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27337.2. OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27537.3. MAPLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
38 APLICATII PRACTICE 283
39 PROBLEME DE SINTEZA 29139.1. Enunturi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29139.2. Raspunsuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
BIBLIOGRAFIE 305
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
13/322
x CUPRINS
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
14/322
Partea I
CERCETARIOPERATIONALE
1
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
15/322
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
16/322
Capitolul 1
PROGRAMARE LINIARA
1.1. Folosirea eficienta a resurselor limitate
O problema practica ce apare frecvent n activitatea de conducere economicaeste urmatoarea: sunt disponibile mai multe resurse (materii prime, forta de munca,resurse financiare) n cantitati limitate. Cu ajutorul acestor resurse se pot desfasuramai multe activitati economice. Problema consta n determinarea nivelurilor ac-tivitatilor luate n considerare care sa se ncadreze n limitarile precizate ale resur-selor si sa asigure satisfacerea optima a unui anumit criteriu.
Sa notam cui, 1
i m,tipul resursei si cu
bicantitatea de resursa de tipul
i care este disponibila. Vom nota prin j, 1 j n, tipul activitatii (procesuluide subproductie) si prin xj nivelul (necunoscut) la care urmeaza sa se desfasoareaceasta activitate. In sfarsit, vom nota prin aij cantitatea de resursa de tipul i,1 i m, necesara pentru producerea unei unitati din produsul realizat n procesulde productie de tipul j, 1 j n, (n general, activitatea de tipul j). Presupunemaici ca aij depinde numai de tipul resursei si de tipul procesului de productie si nude nivelul la care urmeaza sa se desfasoare aceasta activitate.
Cu notatiile introduse, rezulta ca putem exprima cantitatea totala de resursa detipul i care va fi efectiv utilizata n procesele de productie:
ai1x1 + ai2x2 + . . . + ainxn.
Cum nu putem consuma resursa de tipul i mai mult decat cantitatea disponibilabi, rezulta ca trebuie satisfacute conditiile:
nj=1
aijxj bi, 1 i m. (1.1)
3
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
17/322
4 PROGRAMARE LINIAR A
Deoarece xj reprezinta nivelul la care se desfasoara activitatea de tipul j, rezulta
ca trebuie sa fie de asemenea satisfacute conditiile:
xj 0, 1 j n. (1.2)Inegalitatile 1.1 sunt numite restrictiile problemei, iar 1.2 sunt numite conditiile
de nenegativitateale problemei. Sistemul de inegalitati liniare poate avea o infinitatede solutii, o solutie unica sau nici o solutie (sistem incompatibil). Cazul cel maifrecvent pentru problemele practice corect puse este cazul n care sistemul 1.1, 1.2 areo infinitate de solutii. Prin urmare este posibil sa organizam procesele de productiepentru fabricarea sortimentelor de tipul j, 1 j n, ntr-o infinitate de moduri,respectand conditiile 1.1 de folosire a resurselor limitate.
Adoptarea unei variante de plan se face pe baza unor criterii economice, cum ar
fi: venitul realizat, beneficiul realizat, cheltuielile de productie, productia fizica, con-sumurile de materii prime si materiale, consumurile de energie etc. Vom presupunen cele ce urmeaza ca putem formula un singur criteriu pe baza caruia adoptamdecizia. Mai mult, vom presupune ca acest criteriu este reprezentat din punct devedere matematic de o functie liniara. Un exemplu de astfel de criteriu se obtine nmodul urmator. Daca notam prin cj beneficiul unitar adus de activitatea de tipul
j, 1 j n, atunci este clar ca beneficiul total este:n
j=1
cjxj. (1.3)
Problema care se pune este de a afla solutiile sistemului de inegalitati liniare1.1, 1.2 care asigura obtinerea valorii maxime pentru beneficiul total 1.3. Cu altecuvinte, din punct de vedere matematic se cere rezolvarea problemei:
sup
nj=1
cjxj
nj=1
aijxj bi, 1 i m,xj 0, 1 j n,
care este numita problema de programare liniara sau program liniar. Functia liniarace se doreste maximizata se numeste functie obiectiv sau functia criteriu sau, nca,
functia de eficient a a problemei.Problema mentionata poate fi rezolvata cu ajutorul algoritmului simplex sau
simplex dual. Acesta este prezentat pe larg n literatura de specialitate (Zidaroiu). Oserie de produse soft ca MATLAB sau MAPLE au rutine specializate de rezolvarea problemelor de optimizare cu a jutorul acestor metode. Din acest motiv, omitemprezentarea rezolvarii complete a problemelor prin aceste metode.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
18/322
FORME ALE PROBLEMELOR DE PROGRAMARE LINIAR A 5
1.2. Forme ale problemelor de programare liniara
Forma standard a unei probleme de programare liniara este:
min(max)cxAx = bx 0
Remarcam ca o problema de maxim se poate transforma ntr-o problema de minimprin folosirea formulei max(f) = min(f).
Forma canonica a unei probleme de programare liniara este:
min cxAx
b
x 0sau
max cxAx bx 0
Sintaxa MAPLE de scriere a formei canonice pentru problema de maxim este:
> standardize(multime de restrictii);
sau> convert(multime de restrictii, stdle);
O restrictie a unei probleme de programare liniara este numita concordanta dacaeste o inegalitate de tipul pentru problema de minim si o inegalitate de tipul pentru problema de maxim.
Forma mixtaa unei probleme de programare liniara contine restrictii si sub formade ecuatii.
Deoarece prin operatii matematice orice problema de programare liniara se poateaduce n forma canonica a problemei, pentru cazul de minim vom lucra numai cuastfel de probleme, adica cu probleme n forma canonica.
Definitia 1.2.1. Fie problema de programare liniara n forma standard atuncimultimea programelor este definita ca:
P = {x Rn|Ax = b, x 0}.Un punct de minim global al functiei obiectiv z = c
x pe multimea programelorP este numit solutie optima, iar multimea programelor optime ale problemei va finotata cu:
P = {x P| minxP
c
x = c
x}.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
19/322
6 PROGRAMARE LINIAR A
Definim solutia de baza a sistemului Ax = b ca o solutie x
Rn careia compo-
nentelor sale nenule i corespund coloane liniar independente. Daca B este o bazaformata cu coloanele aj1, . . . , ajm ale matricei A atunci sistemul de ecuatii Ax = bse poate scrie n forma explicita:
xB = B1b B1RxR
n care R este matricea obtinuta din A prin eliminarea coloanelor j1, . . . , jm. Notand:
B1b =xB, B1aj = yBj , 1 j n,rezulta ca:
xB =xB
jRyBj xj
sauxBi =x
Bi
jR
yBij xj, i B
unde B = {j1, . . . , jm} si R = {1, . . . , n} B. Solutia de baza corespunzatoare bazeiB este xB =x
Bsi xR = 0. Este clar ca aceasta solutie de baza este un program daca
este ndeplinita conditia:B1b 0.
O baza B care verifica inegalitatea de mai sus se numeste baza primal admisibila.In problemele practice o astfel de baza se determina prin metoda bazei artificiale.De foarte multe ori nsa, aceasta este disponibila direct, baza primal admisibila fiind
matricea unitate.Avem urmatoarea teorema numita teorema fundamentala a programarii liniare.
Teorema 1.2.1. i) Daca problema de programare liniara:
min(max)cxAx = bx 0
are un program optim, atunci ea are un program de baza.ii) Daca problema de mai sus are un program optim, atunci ea are un program
optim de baza.
Algoritmul fundamental pentru rezolvarea problemelor de programare liniaramentionate se numeste algoritmul simplex primalsi a fost elaborat de George Dantzign anul 1951. Algoritmul este descris n orice carte fundamentala de programareliniara si este implementat n majoritatea softurilor matematice de prelucrare dedate.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
20/322
ALGORITMUL SIMPLEX (DANTZIG) 7
1.3. Algoritmul simplex (Dantzig)
Pentru rezolvarea problemelor de programare liniara s-a impus algoritmul simplexdatorat lui G.B. Dantzig (1951). Aceasta metoda ne permite sa exploram n modsistematic multimea programelor de baza a unei probleme de programare liniaran forma standard prin trecerea de la un program de baza la un program de bazavecin, care este cel put in la fel de bun ca cel precedent. Metoda furnizeaza, deasemenea, criterii pentru punerea n evidenta a situatiei cand problema are optiminfinit precum si a cazului n care multimea programelor este vida.
PASUL 0. Se pune problema de optimizat n forma standard:
infcTx
Ax = b,x 0.
(Daca problema are restrictii de forma unor inegalitati, atunci se transforma maintai toate inegalitatile n inegalitati de tipul ; scazandu-se variabilele artificiale y,problema de maxim se va transforma n problema de minim etc.). A este o matricecu m linii si n coloane pentru care avem rang(A) = m < n. Vom nota cu z functiaobiectiv adica z = cTx.
PASUL 1. Se determina o baza B primal admisibila (fie este disponibila di-rect fie se determina cu ajutorul bazei artificiale prin metoda celor doua faze) si secalculeaza:
xB= B1b,zB= cTB x
B,
yBj = B1aj, 1 j n,
zBj cj , 1 j n.
Aceste valori se trec n tabelul simplex (tabelul 1.1) dupa care trecem la pasulurmator.
Vom nota cu B multimea indicilor j care determina matricea B si prin R ={1, . . . , n} B. Tabelul simplex initial are forma:
TABELUL 1.1
c1 . . . cj . . . cnV.B. V.V.B. x1 . . . xj . . . xn
cB xB xB
yB1 . . . yBj . . . y
Bn
z zB zB1 c1 . . . zBj cj . . . zBn cn
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
21/322
8 PROGRAMARE LINIAR A
PASUL 2. Daca zBj
cj
0
j
R, ne oprim (STOP): x
Beste program optim.
In caz contrar se determina multimea (nevida):
R+ = {j R|zBj cj > 0}
si se trece la pasul urmator.
PASUL 3. Daca exista j R+ pentru care yBj 0 ne oprim (STOP): problemaare optim infinit. In caz contrar, determinam k R+ cu criteriul de intrare n baza:
maxj
(zBj cj) = zBk ck
si r
B+ =
{i
B|yBik > 0
}cu criteriul de iesire din baza:
miniB+
(xBiyBik
) =xBryBrk
Elementul yBrk se numeste pivot. Se trece la pasul urmator.
PASUL 4. Se considera bazaB obtinuta din B prin nlocuirea coloanei ar cu
coloana ak, si se calculeaza valorile (prin formula de schimbare a bazei adica regula de
transformare a tabelului simplex) x
B, z
B, y
Bj , z
Bj cj si se trece la Pasul 2 nlocuind
peste tot baza B cu bazaB .
Calculele pot fi simplificate prin folosirea regulilor de transformare a tabelului
simplex:i) elementele situate pe linia pivotului se mpart la pivot;ii) elementele situate pe coloana pivotului devin zero, cu except ia pivotului care
devine 1;iii) celelalte elemente se transforma dupa regula dreptunghiului: daca ne ima-
ginam dreptunghiul a carui diagonala este determinata de elementul yBij care trebuie
transformat si pivotul yBrk , atunci noua valoareyB
ij se obtine mpartind la pivot
diferenta dintre produsul elementelor yBij yBrk situate pe diagonala considerata mai
sus si produsul yBrjyBik situat pe cealalta diagonala a dreptunghiului.
Observatii. i) Daca la sfarsitul algoritmului zBj
cj < 0
j
Ratunci solutia
problemei este unica.ii) Este posibil ca n cadrul algoritmului simplex sa apara fenomenul de ciclare
(prin trecerea de la o baza la alta sa ajung ntr-o baza deja procesata). Exista maimulte tehnici de evitare a acestui fenomen asupra carora nu ne vom opri nsa.
iii) Se poate da si o interpretare geometrica a solut iilor unei probleme de progra-mare liniara n cazul bidimensional. Domeniul de admisibilitate poate fi:
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
22/322
DUALA UNEI PROBLEME DE PROGRAMARE LINIAR A 9
-un poligon convex, iar cel putin unul dintre varfurile sale este solutiea problemei
de optimizare. Se poate ntampla ca solutia sa fie o latura a poligonului convex cedetermina domeniul de definitie, n acest caz avem mai multe solutii;
-un domeniu nemarginit, caz n care problema are optim infinit;
-multimea vida, caz n care problema de optimizare nu are solutie.
1.4. Duala unei probleme de programare liniara
Avand o problema de programare liniara, problema construita dupa urmatoarelereguli se numeste problema duala:
a) termenii liberi din problema primala devin coeficienti ai functiei obiectiv n
problema duala;b) coeficientii functiei obiectiv din problema primala devin termeni liberi n prob-lema duala;
c) o problema de maximizare (minimizare) devine o problema de minimizare(maximizare);
d) matricea coeficientilor sistemului de restrictii din problema duala este trans-pusa matricei coeficientilor sistemului de restrictii primale;
e) variabile duale (primale) asociate unor restrictii primale (duale) concordantesunt supuse conditiilor de nenegativitate;
f) variabile primale (duale) asociate unor restrictii duale (primale) care suntrestrictii neconcordante sunt supuse conditiei de nepozitivitate;
g) variabile duale (primale) asociate unor restrictii primale (duale) care suntecuatii nu sunt supuse nici unei conditii privind semnul.
Remarcam ca duala unei probleme n forma canonica este tot n forma canonica.
Enuntam n continuare teorema fundamentala a dualitatii:
Teorema 1.4.1. Fiind dat cuplul de probleme duale:
min cxAx bx 0
si
max byAy cy 0
una si numai una din afirmatiile urmatoare este adevarat a:
a) ambele probleme au programe. In acest caz, ambele probleme au programeoptime si valorile optime ale functiilor obiectiv coincid;
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
23/322
10 PROGRAMARE LINIAR A
b) una din probleme are programe, iar cealalta nu are. In acest caz, problema
care nu are programe are optim infinit;c) nici una din probleme nu are programe.Exista un algoritm numit algoritmul simplex dualcare rezolva problema primala
prin intermediul problemei duale. Acelasi lucru putem sa-l afirmam si despre algo-ritmul simplex primal care rezolva problema primala, dupa care pune n evidentasolutia problemei duale. Programul MAPLE are o procedura de constructie a dualei.Sintaxa acesteia este:
> dual(functia liniara, multime de restrictii, nume variabila duala);
1.5. Problema de transport
Sa presupunem ca exista m centre de aprovizionare (depozite) si n centre deconsum (beneficiari). Un produs omogen este depozitat n cantitatile ai, 1 i m,n centrele de aprovizionare si este cerut n cantitatile bj, 1 j n, la beneficiari.Vom presupune ca sunt ndeplinite conditiile:
ai 0, 1 i m, bj 0, 1 j n,a1 + . . . + am = b1 + . . . + bn.
(1.4)
Cu alte cuvinte, presupunem ca disponibilitatile si cererile sunt nenegative, iardisponibilitatea egaleaza cererea totala. O astfel de problema de transport se numes-te problema de transport echilibrata.
Problema consta n organizarea transportului de la depozite la beneficiari astfelncat sa se obtina cheltuieli minime de transport.
Sa notam cu xij cantitatea (necunoscuta) care urmeaza sa fie transportata de ladepozitul i la beneficiarul j. Cantitatea ce se transporta de la depozitul i la totibeneficiarii trebuie sa egaleze disponibilitatea de la depozitul respectiv, adica:
nj=1
xij = ai, 1 i m. (1.5)
Analog, cererea totala la beneficiarul j trebuie sa fie egala cu cantitatea care setransporta de la toate depozitele la acest beneficiar, adica:
mi=1
xij = bj, 1 j n. (1.6)
Evident, cantitatile transportate sunt nenegative, adica:
xij 0, 1 i m, 1 j n. (1.7)
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
24/322
APLICATII 11
Sistemul de inegalitati liniare 1.5-1.7 are n conditiile 1.4 o infinitate de solutii.
Ca si n cazul precedent, pentru adoptarea unui plan de transport vom introduceun nou criteriu economic. Sa notam pentru aceasta prin cij costul transportuluiunei unitati din produsul considerat de la depozitul i la beneficiarul j; evident, si nacest caz presupunem ca acest cost unitar de transport nu depinde de cantitatea ceurmeaza sa fie transportata din i n j. Este clar ca cheltuielile de transport sunt:
mi=1
nj=1
cijxij.
Problema consta n determinarea solutiilor sistemului de ecuatii si inegalitati1.5-1.7 pentru care costul total de transport este minim, adica:
infm
i=1
nj=1
cijxij,
nj=1
xij = ai, 1 i m,m
i=1xij = bj, 1 j n,
xij 0, 1 i m, 1 j n.
1.6. Aplicatii
Exercitiul 1.6.1. Sa se scrie duala problemei de programare liniara:
min(2x1 + 3x2 + x3),x1 + x2 + 3x4 3,2x2 + 5x3 + 4x4 = 5,x1 + x3 2,x1, x2 0, x3 arbitrar, x4 0.
Gasiti solutia optima a problemei primale.
Raspuns: Respectand regulile de formare a problemei duale obtinem:
max(3u1 + 5u2 2u3),u1 + u3 2,u1 + 2u2 3,5u2 + u3 = 1,3u1 + 4u2 0,u1 0, u2 arbitrar, u3 0.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
25/322
12 PROGRAMARE LINIAR A
Solutia problemei primale se poate gasi cu metoda simplex primal sau dual. Sin-
taxa MAPLE pentru rezolvarea acestei probleme este:> with(simplex) :> obiectiv := 2 x1 + 3 x2 + x3;> restrictii := {x1 + x2 + 3 x4 >= 3, 2 x2 + 5x3 + 4 x4 = 5, x1 + x3 minimize(obiectiv, restrictii union {x1 >= 0, x2 >= 0, x4
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
26/322
APLICATII 13
Exercitiul 1.6.5. Sa se minimizeze expresia 2x1 + 3x2 cu sistemul de restrictii:
x1 x2 + x3 = 1,x1 + x2 x4 = 1,x1 2x2 + x5 = 1,2x1 + x3 x4 = 2,xi 0, i = 1, . . . , 5.
Raspuns. In urma aplicarii algoritmului simplex primal obtinem solutia x1 =1, x2 = 0, x
3 = 0, x
4 = 0, x
5 = 0, iar valoarea minima a functiei obiectiv z
= 2.
Exercitiul 1.6.6. Rezolvati problema urmatoare:
min(x1 + 6x2),2x1 + x2 3,x1 + 3x2 4,x1, x2 0.
Raspuns. Vom rezolva problema grafic. Se va reprezenta ntr-un sistem de axede coordonate domeniul de admisibilitate. Pe acelasi grafic reprezentam si ecuatiax1 + 6x2 = 0. Obtinem figura 1.1.
Figura 1.1: Domeniul de admisibilitate si functia obiectiv.
Vom duce drepte paralele cu x2 = 16
x1 pana se intersecteaza cu domeniul
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
27/322
14 PROGRAMARE LINIAR A
de admisibilitate. Prima dreapta care realizeaza aceasta intersectie ne furnizeaza
minimul functiei obiectiv zmin = 4.Solutia optima este x1 = 4, x
2 = 0.
Exercitiul 1.6.7. Gasiti minimul functiei 2x1 + 3x2 + x3 cu restrictiile:
x1 + x2 + 3x4 3,2x2 + 5x3 + 4x4 = 5,x1 + x3 2,x1, x2, x3, x4 {0, 1}.
Exercitiul 1.6.8. Sa se rezolve problema de programare liniara n forma stan-dard:
min(2x1 + 3x2),x1 x2 + x3 = 1,x1 + x2 x4 = 1,x1 2x2 + x5 = 1,2x1 + x3 x4 = 2,xi 0, 1 i 5.
Raspuns. Pentru rezolvarea problemei prin metoda simplex primal vom rezolvamai ntai problema:
min(x6 + x7 + x8),
x1 x2 + x3 + x6 = 1,x1 + x2 x4 + x7 = 1,x1 2x2 + x5 = 1,2x1 + x3 x4 + x8 = 2,xi 0, 1 i 8.
(s-au introdus variabilele ecart x6, x7, x8 n restrictiile problemei initiale, cu exceptiacelei de a treia restrictie, unde variabia x5 este asociata unui vector unitar al ma-tricei coeficientilor). Baza primal admisibila este formata din coloanele matricei Acorespunzatoare variabilelor x6, x7, x5, x8. Tabelul simplex asociat 1.2 este:
TABELUL 1.2
V.B. V.V.B. x1 x2 x3 x4 x5 x6 x7 x8x6 1 1 1 1 0 0 1 0 0x7 1 1 1 0 1 0 0 1 0x5 1 1 2 0 0 1 0 0 0x8 2 2 0 1 1 0 0 0 1
4 4 0 2 2 0 0 0 0
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
28/322
APLICATII 15
Vectorul care intra n baza este evident a1 conform criteriului de intrare n
baza. Dupa cum ne indica criteriul de iesire din baza, oricare dintre variabilelede baza poate parasi baza: pentru a face o alegere, vom elimina din baza vectorulcoespunzator variabilei x6, adica a
6. Obtinem deci tabelul simplex 1.3:
TABELUL 1.3
V.B. V.V.B. x1 x2 x3 x4 x5 x6 x7 x8x1 1 1 1 1 0 0 1 0 0x7 0 0 2 1 1 0 1 1 0x5 0 0 1 1 0 1 1 0 0x8 0 0 2 1 1 0 2 0 1
0 0 4
2
2 0
4 0 0
Se observa ca tabelul simplex 1.3 obtinut ne arata ca valoarea functiei obiectiveste nula. Toate variabilele artificiale sunt nule, dar x7 si x8 sunt nca variabile debaza. Se vede usor ca variabila x7 poate fi eliminata din baza si nlocuita cu x2,deoarece pivotul yB72 = 2 este nenul. Dupa calcule se obtine tabelul simplex 1.4:
TABELUL 1.4
V.B. V.V.B. x1 x2 x3 x4 x5 x6 x7 x8x1 1 1 0 1/2 1/2 0 1/2 1/2 0x2 0 0 1 1/2 1/2 0 1/2 1/2 0x5 0 0 0 3/2 1/2 1 1/2 1/2 0x8 0 0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1 0
Variabila artificiala x8 nu mai poate fi eliminata dintre variabilele de baza, deoa-rece toti coeficientii y8j, 1 j 5, sunt egali cu zero. Acest fapt ne arata caecuatia a patra din problema initiala este o consecinta a celorlalte patru ecuatii(ecuatia a patra este suma primelor doua ecuatii, situatie ce putea fi observata dela nceput). In acest caz, ecuatia a patra poate fi neglijata si deci linia a patraa tabelului simplex poate fi eliminata; partea ramasa a tabelului simplex nu maicontine variabile artificiale de baza si, ca urmare, prima faza este terminata.
Vom trece acum la faza a doua a metodei, adic a la rezolvarea problemei initiale,
folosind drept baza initiala ultima baza obtinuta din tabelul 1.4, dupa eliminareaultimei linii.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
29/322
16 PROGRAMARE LINIAR A
Tabelul simplex corespunzator este tabelul 1.5:
TABELUL 1.5
V.B. V.V.B. x1 x2 x3 x4 x5x1 1 1 0 1/2 1/2 0x2 0 0 1 1/2 1/2 0x5 0 0 0 3/2 1/2 1z 2 0 0 1/2 5/2 0
Deoarece zj cj 0 pentru toti j, 1 j 5, rezulta ca am obtinut programuloptim de baza (degenerat): x1 = 1, x
2 = 0, x
3 = 0, x
4 = 0, x
5 = 0, iar valoarea
optima a functiei obiectiv este z = 2.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
30/322
Capitolul 2
PROGRAMARE DINAMICA
2.1. Forma unei probleme de optimizare secventiala
Programarea dinamica este o metoda de rezolvare a unei clase de probleme,al caror model matematic prezinta caracteristicile unui sistem secvential. Intr-oastfel de problema, la fiecare faza t T, cu T R, se alege o solutie (decizie,strategie, politica) xt dintr-o multime de solutii admisibile Xt, Xt Mnt , undeM R, iar nt N, putandu-se de fiecare data masura eficienta (sau utilitatea)ut a solutiei alese. Problema de optimizare consta n determinarea solutiei globalex = (xt)tT care optimizeaza o functie de eficient a globala f care este definita cuajutorul functiilor de eficient a partiala ut, t
T. Evolutia sistemului este descrisa
si de familia parametrilor de stare (st)tT a caror lege de variatie este cunoscutasi dependenta de deciziile alese (daca legea este determinista avem o problema deprogramare dinamica determinista, iar daca legea este probabilista avem o problemade programare stochastica). Sa notam cu St multimea starilor la momentul t.
Definitia 2.1.1. (Caracteristicile unui sistem secvential.) O functie s : T Stcu s(t) = st t T, st St se numeste traiectoria, corespunzatoare deciziei globalex = (xt)tT, a sistemului secvential. Aceasta descrie starea sistemului de-a lungulntregii perioade de timp T, n conditiile alegerii deciziei x.
Avem n general:
xt = xt(st)uti : Sti1 Xti R, uti = uti(sti , xti)ti : Sti1 Xti Sti , ti = ti(sti1, xti).
Traiectoria s depinde de starea initiala st0 = s0 St0, t0 fiind momentul initial.
17
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
31/322
18 PROGRAMARE DINAMIC A
Definitia 2.1.2. Se numeste traiectorie optima traiectoria s corespunzatoare
unei decizii optime x care optimizeaza functia obiectiv.
Tehnica programarii dinamice consta n determinarea solutiilor optime globale sia valorii optime a functiei obiectiv, prin rezolvarea secventiala a unor probleme deoptimizare asociate problemei initiale, dar mult mai simple decat aceasta deoareceoptimul se calculeaza dupa o singura variabila. Bellman a formulat n 1957 prin-cipiul optimalitatii: o conditie necesara ca o traiectorie s sa fie optima este cat1, t2 T, t1 < t2, s |[t1,t2] sa fie traiectorie optima a sistemului restrictionatla intervalul [t1, t2], cand st1 = s
(t1) adica orice substrategie a unei strategii optimeeste ea ns asi optim a.
Pentru a fixa ideile, n cele ce urmeaza, vom presupune ca avem de-a face cu o
problema de minimizare, toate consideratiile fiind valabile fara nici un fel de restrictiisi pentru problema de maxim. Forma generala a unei probleme de optimizare (mini-mizare) ce urmeaza a fi rezolvata prin aceasta tehnica este urmatoarea:
min{f(u1(s0, x1), . . . , un(sn1, xn))|x1 X1(s0), . . . , xn Xn(sn1)}si = i(si1, xi), i = 1, nsi Si, i = 1, n.
Problema de optimizare astfel definita se numeste efectiv decompozabila, adicavectorul de stare si, la iesirea din faza i, nu depinde decat de vectorul de stare si1si de decizia xi, luata n faza i. Functiile ui sunt functiile de eficient a la faza i cand
se ia decizia xi stiind ca vectorul de stare este si.Toate elementele descriptive ale unei probleme de optimizare sunt determinatede o decizie aleasa si de starea initiala s0 :
s1 = 1(s0, x1) =1 (s0, x1), u1(s0, x1) =
u1 (s0, x1), x1 X1(s0) =
X1 (s0)
s2 = 2(1(s0, x1), x2) =2 (s0, x1, x2), u2(s1, x2),
u2(1(s0, x1), x2) =u2 (s0, x1, x2), x2 X2(1(s0, x1)) =
X2 (s0, x1)
...........................................
si = i(i1(s0, x1, x2, . . . , xi1), xi) =i (s0, x1, x2, . . . , xi),
ui(si1, xi) = ui(i1 (s0, x1, x2, . . . , u xi1), xi) =
ui (s0, x1, . . . , xi),
xi Xi(i1 (s0, x1, x2, . . . , xi1))=
Xi (s0, x1, . . . , xi1) pentru i = 2, n.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
32/322
TEOREMA DE OPTIM 19
Functia obiectiv se scrie:
f(u1 (s0, x1),
u2 (s0, x1, x2), . . . ,
un (s0, x1, . . . , xn)) =
f (s0, x1, . . . , xn).
Definitia 2.1.3. O solutie (decizie) x(s0) = (x1(s0), . . . , xn(s0)) admisibila se
spune ca este optima relativ la starea initiala s0 pentru o problema de optimizaresub forma secventiala, daca:
f (s0, x
1(s0), . . . , x
n(s0)) = min{
f (s0, x
1, . . . , x
n)|x1
X1 (s0), . . . ,
. . . , xi Xi (s0, x1, . . . , xi1), i = 1, n}.
Rezolvarea unei probleme de optimizare pusa n forma secventiala consta ngasirea unei solutii x(s0) = (x1(s0), . . . , x
n(s0)), n functie de starea initiala s0,
astfel ncat functia de eficienta globala f sa fie optima.
2.2. Teorema de optim
Pentru a formula teorema de optim trebuie sa definim mai ntai notiunea defunctie decompozabila. In esenta, acest lucru nseamna ca problema se poate de-scompune ntr-un numar de faze.
Definitia 2.2.1. O functie f : D = S X Y R, unde X, Y si S suntmultimi nevide se numeste decompozabila daca exista functiile u, v : D R, u fiindconstanta n raport cu variabila y Y(exista u : SX R astfel ncat u (s,x,y) =u(s, x), (s,x,y) D) si o functie F :u (D)v(D) R, F(, .) monoton crescatoarepentru fiecare u (D), astfel ncat f(s,x,y) = F(u(s, x), v(s,x,y)) (s,x,y) D.
Teorema 2.2.1. ( Teorema de optim). DacaF este decompozabila si dac a existapentru orice s S :
minx,y f(s,x,y); minx F(u(s, x), miny v(s,x,y));minx miny f(s,x,y),
atunci pentru orice s S avem:
minx,y
f(s,x,y) = minx
F(u(s, x), miny
v(s,x,y)).
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
33/322
20 PROGRAMARE DINAMIC A
2.3. Programare dinamica regresiva
2.3.1. Ecuatiile programarii dinamice regresive
Pentru a pune sub forma unui algoritm problema secventiala trebuie sa existe oanume legatura de tip recursiv ntre functiile de eficienta trunchiate ale procesuluila fazele i:
fni+1(ui(si1, xi), . . . , un(sn1, xn)) == Fni+1(ui(si1, xi), fni(ui+1(si, xi+1), . . . , un(sn1, xn)),
unde prin fni+1 s-a notat functia de eficient a asociata procesului de decizie trun-chiat la fazele i, i + 1, . . . , n pentru i = 1, 2, . . . , n 1, cu f1(un) = un si fn = f.Aceasta proprietate se numeste proprietatea de decompozabilitatea functiei obiectiv.Ecuatia se rescrie:
fni+1 (si1, xi, . . . , xn) = Fni+1(ui(si1, xi),
fni (i(si1, xi),
xi+1, . . . , xn)),
i = 1, n 1, si1 Si1, xi Xi(si1), xn Xn(sn1),
cuf1= un si
fn=
f= f.
Aplicam teorema de optim functiilorfn
i+1 pentru i = 1, 2, . . . , n
1 :
min{fni+1 (si1, xi, . . . , xn)|xi, . . . , xn} =
= minxi
Fni+1(ui(si1, xi), min{fni (i(si1, xi), xi+1, . . .
. . . , xn)|xi+1, . . . , xn}).
Notam cu gni+1(si1) = min{fni+1 (si1, xi, . . . , xn)|xi, . . . , xn}, valoarea opti-
mului procesului de decizie trunchiat la fazele i, i + 1, . . . , n . Avem:
gni(si1) = gni(i(si1, xi))
si obtinem:
gni+1(si1) = minxi
Fni+1(ui(si1, xi), gni(i(si1, xi)), i = 1, n 1cu
g1(sn1) = minxi
un(sn1, xn).
Aceste ecuatii se numesc ecuatiile programarii dinamice regresive.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
34/322
PROGRAMARE DINAMIC A REGRESIV A 21
2.3.2. Rezolvarea problemelor de programare regresiva
Elementele prezentate n paragrafele precedente ne permit sa elaboram urmatorulalgoritm de rezolvare a problemelor de optimizare dinamice regresive.
PASUL 0. Problema matematica se codifica sub forma unei probleme de pro-gramare liniara, punandu-se n evidenta functia obiectiv si sistemul de restrictiicorespunzator.
PASUL 1. Se pune problema sub forma unui proces secvential de decizie urma-rindu-se urmatoarele elemente:
i) forma functionala a functiilor de transfer i : Si1 Xi Si:si = i(si1, xi), i = 1, n.
ii) spatiul starilor posibile: S0, S1, . . . , S n;iii) spatiul deciziilor: Xi(si1);iv) functiile partiale de eficienta ui(si1, xi), i = 1, 2, . . . , n;
v) functiile obiectiv ale proceselor trunchiate la fazele i, i+1, . . . , n :fi (xi, . . . , xn)
pentru i = 1, 2, . . . , n.PASUL 2. Se rezolva problema din faza n, adica se calculeaza:
min{f1 (sn1, xn)|xn Xn(sn1)} = min{un(sn1, xn)|xn Xn(sn1)} = g1(sn1),
unde sn1 este parametru.
Deci pentru sn1 Sn1 se determina xn1(sn1) Xn(sn1), astfel ncat:g1(sn1) = un(sn1, xn1(sn1)).
Se atribuie contorului i valoarea n 1. Acest contor are semnificatia fazei i aprocesului secvential.
PASUL 3. Se rezolva problema din faza i a carei necunoscuta este xi, iar si1este parametru. Deci pentru si1 Si1, se determina valorile xi (si1) Xi(si1)pentru care:
gni+1(si1) = Fni+1(ui(si1, xi (si1)), gni(i(si1, xi (si1))))
= min{fn
i+1 (si
1, xi, . . . , xn)
|xi
Xi(si
1)
}.
actualizeaza i := i + 1.PASUL 4. Daca i > 1 goto PASUL 3.Se determina, pentru s0 S0, valoarea x1(s0) pentru care avem:f (s0, x
1(s0), . . . , x
n(s0)) = min{
fn (s0, x1, . . . , xn)|x1, . . . , xn} = gn(s0),
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
35/322
22 PROGRAMARE DINAMIC A
unde x2(s0) = x2(1(s0, x
1(s0)) etc.
PASUL 5. Se optimizeaza pe multimea vectorilor initiali pentru a afla s0:f (s0, x
1(s
0), . . . , x
n(s
0)) = min
s0S0gn(s0) = gn(s
0),
atins pentru starea initiala s0.PASUL 6. Se scrie solutia optima:
x = (x1, . . . , xn)
unde x1 = x1(s
0), x
2 = x
2(1(s0, x
1(s0)) etc.
2.3.3. Aplicatii
Exercitiul 2.3.1. O unitate comerciala trebuie sa raspunda unei cereri de 25unitati dintr-un anumit tip de produs, cerere esalonata pe o perioada de 4 luni. Lanceputul fiecarei luni, unitatea se poate aproviziona cu orice cantitate din produsulrespectiv, la un pret ce variaza de la luna la luna, conform datelor din tabelul 2.1:
TABELUL 2.1
luna i 1 2 3 4
cererea 5 7 5
pret 12 10 9 10
Sa se determine politica optima de reaprovizionare a unitatii cu produsul respec-tiv, astfel ncat toate cererile sa fie satisfacute, stiind ca n depozitul respectiv segasesc la nceputul primei luni 3 unitati de produs si ca nu pot fi pastrate n depozitmai mult de 9 unitati de produs, iar la sfarsitul ultimei luni toate produsele au fostvandute. Parametrul este un numar real strict pozitiv.
Raspuns.PASUL 0. Deoarece cererea trebuie sa fie de 25 unitati avem: 5 + 7 + + 5 =
= 25 deci = 8. Se codifica problema:Se noteaza cu xi numarul de unitati comandate la nceputul lunii i si cu si stocul
existent la sfarsitul lunii i. Functia de minimizat este:
12x1 + 10x2 + 9x3 + 10x4,
putem deci presupune ca = 1 avand grija ca la final sa nmultim valoarea optimaa functiei obiectiv cu .
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
36/322
PROGRAMARE DINAMIC A REGRESIV A 23
Avem: 3 + x1 + x2 + x3 + x4 = 25 sau x1 + x2 + x3 + x4 = 22.
3 + x1 9 si 3 + x1 5 0 deci x1 [2, 6],3 + x1 5 + x2 9 si 3 + x1 5 + x2 7 0 deci x1 + x2 [9, 11],3+x15+x27+x3 9 si 3+x15+x27+x38 0 deci x1+x2+x3 [17, 18]3 + x1 5 + x2 7 + x3 8 + x4 9 (echivalent cu 5 9 inegalitate care spune
ca dupa ce s-a efectuat comanda la nceputul lunii a 4-a mai este de satisfacut ocerere de 5 unitati de produs) si 3 + x1 5 + x2 7 + x3 8 + x4 5 = 0 (ecuatiece constituie o verificare partiala).
Problema de minimizat devine:
min(12x1 + 10x2 + 9x3 + 10x4)2 x1 6
9 x1 + x2 114 x4 5x1 + x2 + x3 + x4 = 22.
PASUL 1. Se determina spatiul starilor Si, i = 0, 4:s0 = 3 S0 = {3},s1 = s0 + x1 5 = x1 2 S1 = [0, 4],s2 = s1 + x2 7 = x1 + x2 9 S2 = [0, 2],s3 = s2 + x3 8 = x1 + x2 + x3 17 S3 = [0, 1],s4 = s3 + x4 5 = x1 + x2 + x3 + x4 17 5 = 0 S4 = {0}.Se determina spatiul deciziilor Xi(si1), i = 1, n :x1
X1(s0) = [5
s0, 9
s0] = [2, 6],
x2 X2(s1) = [7 s1, 9 s1],x3 X3(s2) = [8 s2, 9 s2],x4 X4(s3) = {5 s3}.Functiile de transfer: i(si1, xi), i = 1, n :1(s0, x1) = s0 + x1 5,2(s1, x2) = s1 + x2 7,3(s2, x3) = s2 + x3 8,4(s3, x4) = s3 + x4 5 = 0.Functiile partiale de eficienta sunt:u1(s0, x1) = 12x1,u2
(s1
, x2
) = 10x2
,u3(s2, x3) = 9x3,u4(s3, x4) = 10x4, si functiile de eficienta ale proceselor de decizie trunchiate la
fazele {i , . . . , 4} (pentru i = 1, . . . , 4) sunt:f4= 12x1 + 10x2 + 9x3 + 10x4,f3= 10x2 + 9x3 + 10x4,
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
37/322
24 PROGRAMARE DINAMIC A
f2= 9x3 + 10x4,f1= 10x4.PASUL 2. Se rezolva problema:
min{f1 (sn1, xn)|xn Xn(sn1)} = min{u4(s3, x4)|x4 X4(s3)} =
= min{10x4|x4 {5 s3}} = 10(5 s3) = 50 10s3,minim atins pentru x4(s3) = 5 s3.PASUL 3/4. Se rezolva problema:
min{f3 |x3 X3(s2)} = min{9x3 + 50 10s3|x3 [8 s2, 9 s2]} =
= min{9x3 + 50 10(s2 + x3 8)|x3 [8 s2, 9 s2]} == min{x3 10s2 + 130|x3 [8 s2, 9 s2]} = (9 s2) 10s2 + 130 == 121 9s2,minim atins pentru x3(s2) = 9 s2.Se rezolva problema:
min{f2 |x2 X2(s1)} = min{10x2 + 121 9s2|x2 [7 s1, 9 s1]} =
= min{10x2 + 121 9(s1 + x2 7)|x2 [7 s1, 9 s1]} == min{x2 9s1 + 184|x2 [7 s1, 9 s1]} = 7 s1 9s1 + 184 = 10s1 + 191,
minim atins pentru x2(s1) = 7 s1.Se rezolva problema:
min{f1 |x1 X1(s0)} = min{12x1 + 191 10s1|x1 [2, 6]} =
= min{12x1 + 191 10(s0 + x1 5)|x1 [2, 6]} == min{2x1 10s0 + 241|x1 [2, 6]} = 243 10s0,
minim atins pentru x1(s0) = 2, s
0 = 3.
PASUL 5. Avem:s1 = s
0 + x
1 5 = 0 deci x2(s1) = 7,
s2 = s1 + x
2 7 = 0 deci x3(s2) = 9,
s3 = s2 + x
3
8 = 1 deci x4(s3) = 4.
PASUL 6. Solutia optima x = (2, 7, 9, 4) iar traiectoria optima este s =(0, 0, 1, 0).
Exercitiul 2.3.2. Un depozit trebuie sa raspunda unei cereri de marfa totale de unitati de produs de la m beneficiari (cererea fiecarui beneficiar este de i unitatide produs). Daca costul de aprovizionare si transport al unei unitati de produs la
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
38/322
PROGRAMARE DINAMIC A REGRESIV A 25
beneficiarul i este i, iar depozitul dispune initial de unitati de produs si daca
acesta nu poate detine n stoc mai mult de unitati de produs sa se determinepolitica optima de reaprovizionare cu produsul respectiv astfel ncat toate cererilesa fie satisfacute. La final mai exista n stoc unitati de produs.
Indicatie. Se noteaza cu xi numarul de unitati de produs comandate la nceputullivrarii i si cu si stocul existent dupa livrarea i. Problema de programare ce trebuierezolvata este:
minm
i=1ixi
m
i=1 xi = + ,ji=1
i j
i=1xi
j1i=1
i + j = 1, m,xi 0 i = 1, m.
unde =m
i=1i. Se vor pune n evidenta functiile reciproce de transfer, functiile
partiale de eficienta, functiile de eficienta ale proceselor trunchiate, spatiul starilorsi spat iile de decizie.
Problema se va rezolva prin metoda programarii regresive n n faze.
Exercitiul 2.3.3. Sa se gaseasca o planificare optima unei investitii de 5 mili-
oane dolari pentru construirea a trei obiective cunoscand randamentele investitiilorpe obiective, asa cum sunt prezentate n tabelul 2.2.
TABELUL 2.2
Investitii Obiectiv 1 Obiectiv 2 Obiectiv 3
0 0 0 0
1 0, 20 0, 23 0, 19
2 0, 35 0, 34 0, 37
3 0, 51 0, 50 0, 49
4 0, 68 0, 63 0, 65
5 0, 75 0, 79 0, 80
Raspuns. Modelul matematic al problemei este:
max(r1(x1) + r2(x2) + r3(x3))x1 + x2 + x3 = 5,xi {0, 1, 2, 3, 4, 5}, i = 1, 2, 3, 4, 5.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
39/322
26 PROGRAMARE DINAMIC A
In vederea rezolvarii problemei cu ajutorul programarii dinamice, se pune mai
ntai problema sub forma unui proces secvential de decizie. Pentru realizarea acestuiscop, se noteaza cu si, i = 1, 2, 3, suma investita n primul obiectiv, n primul si aldoilea, si respectiv suma investita n cele trei obiective. Avem: s0 = 0, s1 = s0 + x1,s2 = s1 + x2, s3 = s2 + x3.
Folosind aceste egalitati, obtinem cu ajutorul sistemului de restrictii, S0 = {0},S1 = S2 = {0, 1, 2, 3, 4, 5}, S3 = {5}.
X1(s0) = {0, 1, 2, 3, 4, 5}, X2(s1) = {0, . . . , 5 s1}, X3(s2) = {5 s2}.Remarcam ca avem urmatoarele functii de transfer:1(s0, x1) = s0 + x1, 2(s1, x2) = s1 + x2, 3(s2, x3) = s2 + x3.Functiile partiale de eficienta, precum si functiile de decizie ale proceselor de
decizie trunchiate la fazele
{i , . . . , 3
}(pentru i = 1, . . . , 3) sunt urmatoarele:
u1(s0, x1) = r1(x1), u2(s1, x2) = r2(x2), u3(s2, x3) = r3(x3),f3= r1(x1) + r2(x2) + r3(x3),
f2= r2(x2) + r3(x3),
f1= r3(x3).
Se constata ca problema este decompozabila regresiv cu Fi(, ) = + , undei = 2, 3. Se trece acum la rezolvarea problemelor de optim corespunzatoare fiecareifaze, folosind ecuatiile programarii regresive si obtinem:
Faza 3. Avem:
g1(s2) = max{r3(x3)|x3 X3(s2)} = r3(5 s2),obtinut pentru x3(s2) = 5 s2.
Faza 2. Avem:
g2(s1) = max{r2(x2) + g1(s1 + x2)|x2 X2(s1)}= max{r2(x2) + r3(5 s1 x2)|x2 X2(s1)}.
Succesiv obtinem:g2(0) = max{0, 80;0, 88;0, 83;0, 87;0, 82;0, 79} = 0, 88 pentru x2(0) = 1;g2(1) = max{0, 65;0, 72;0, 71;0, 69;0, 63} = 0, 72 pentru x2(1) = 1;g2(2) = max{0, 49;0, 60;0, 53;0, 50} = 0, 60 pentru x2(2) = 1;g2(3) = max{0, 37;0, 42;0, 34} = 0, 42 pentru x2(3) = 1;g2(4) = max{0, 19;0, 23} = 0, 23 pentru x2(4) = 1;g2(5) = max{0} = 0 pentru x2(5) = 1.Faza 1. Avem:
g3(s0) = max{r1(x1) + g2(s0 + x1)|x1 X1(s0)} == max{0, 88;0, 92;0, 95;0, 93;0, 91;0, 75} = 0, 95,
obtinut pentru x1(s0) = 2, unde s
0 = s0 = 0. Avem n continuare, s
1 = = s
0+x
1 = 2,
de unde x2(s1) = 1; s
2 = s
1+x
2 = 3, de unde x
3(s
2) = = 5s2 = 2; s3 = s2+s3 = 5.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
40/322
PROGRAMARE DINAMIC A PROGRESIV A 27
In concluzie, am obtinut: max(r1(x1) + r2(x2) + r3(x3)) = 0, 95, pentru solutia
optima unica x = (x1, x2, x3) = (2, 1, 2), iar traiectoria optima a procesului estes = (2, 3, 5).
2.4. Programare dinamica progresiva
2.4.1. Ecuatiile programarii dinamice progresive
Procedura iterativa descrisa n paragraful anterior este valabila fara nici o res-trictie asupra starii initiale sau finale. Aceste doua stari au n mod evident, roluriimportante, asa cum s-a vazut pentru starea s0. In timp ce s1, . . . , sn1 sunt staride intrare si iesire, s0 este numai stare de intrare pentru faza 1 a problemei, iar sn
numai stare de iesire pentru faza n a problemei.Din punct de vedere matematic singurul lucru care deosebeste s0 de sn este sensul
de parcurs adoptat pentru procedura de rezolvare, sens care a fost impus de ecuat iile:
si = i(si1, xi), i = 1, n,
ce conduc la o procedura de rezolvare de la ultima faza spre prima faza a problemei,altfel spus, am mers spre trecut. In anumite probleme se pot pune restrictii asuprastarilor s0 si/sau sn.
Daca s0 este impusa, optimizarea din ultima faza a problemei conduce la unsingur gn(s0) deoarece s0 nu mai este parametru, iar n faza 1 luam direct s0 = s
0.
Deci schema propusa este viabila.Daca sn este impusa, adica sn = s
n cu s
n dat, trebuie ca starea initiala s0 si
solutia optima x(s0) sa satisfaca relatia:
sn = n(n1(. . . 2(1(s0, x1(s0)), x
2(s0)), . . . , x
n(s0)).
Aceasta relatie nu poate fi verificata decat la sfarsitul procedurii, lucru care sporestetimpul de procesare. Metoda de reducere la cazul precedent este mult mai eficace,daca vom reusi sa schimbam sensul n care au fost facute calculele adica sa mergemspre viitor prin folosirea functiilor reciproce de transfer:
si1 =i (si, xi), i = 1, n.
Functiile elementare de eficienta ui, pentru i = 1, . . . , n , respectiv functia obiectivglobala f, devin ui(i (si, xi), xi) =ui (si, xi), pentru i = 1, . . . , n , respectiv:
f(u1(s0, x1), . . . , un(sn1, xn)) = f(u1 (s1, x1), . . . ,
un (sn, xn))
=f (sn, x1, . . . , xn),
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
41/322
28 PROGRAMARE DINAMIC A
unde de data aceasta, n mod similar cu ceea ce s-a aratat anterior, toate elementele
descriptive ale problemei pot fi exprimate ca functie de decizie aleasa si starea s0.Similar se defineste decompozabilitatea progresiva si se ajunge la ecuatiile pro-
gramarii dinamice progresive.
2.4.2. Rezolvarea problemelor de programare progresiva
Elementele prezentate n paragrafele precedente ne permit sa elaboram urmatorulalgoritm de rezolvare a problemelor de optimizare dinamice progresive.
PASUL 0. Problema matematica se codifica sub forma unei probleme de pro-gramare liniara, punandu-se n evidenta functia obiectiv si sistemul de restrictiicorespunzator.
PASUL 1. Se pune problema sub forma unui proces secvential de decizie avandu-se n vedere urmatoarele elemente:i) forma functionala a functiilor reciproce de transfer
i: Si Xi Si1:
si1 =i (si, xi), i = 1, n.
ii) spatiul starilor posibile: S0, S1, . . . , S n;
iii) spatiul deciziilor:Xi (si);
iv) functiile partiale de eficientaui (si, xi), i = 1, 2, . . . , n;
v) functiile obiectiv ale proceselor secventiale trunchiate la fazele 1, . . . , i :
fi
(x1, . . . , xi) pentru i = 1, 2, . . . , n.PASUL 2. Se rezolva problema din faza 1, adica se calculeaza:
min{f1 (s1, x1)|x1
X1 (s1)} = min{u1 (s1, x1)|x1
X1 (s1)} = g1(s1),
unde sn1 este parametru. Deci pentru s1 S1 se determina valoarea x1(sn) X1
(s1), astfel ncat:
g1(s1) =u1 (s1, x
1(s1)).
Se atribuie contorului i valoarea 2. Acest contor are semnificatia fazei i a procesuluisecvential.
PASUL 3. Se rezolva problema din faza i a carei necunoscuta este xi, iar si
este parametru. Deci pentru si Si, se determina xi (si) Xi (si) astfel ncat:
gi(si) =Fi (
ui (si, x
i (si)), gi1(
i (si, x
i (si)))).
actualizeaza i := i + 1;
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
42/322
PROGRAMARE DINAMIC A PROGRESIV A 29
PASUL 4. Daca i < n goto PASUL 3.
PASUL 5. Se determina xn(sn) Xn (sn) cu sn = sn si avem:f (sn, x
1(s
n), . . . , x
n(s
n)) = min{
fn (s
n, x1, . . . , xn)|x1, . . . , xn} =gn (sn),
unde xn1(sn1) = x
n1 = x
n1(n (s
n, x
n)) etc.
PASUL 6. Se scrie solutia optima:
x = (x1, . . . , xn)
unde xn = xn(sn), xn1 = xn1(n (s
n, x
n)) etc.
Observatii. i) Daca starile s0 sau sn sunt cunoscute, se merge de la starea ne-
cunoscuta spre starea cunoscuta.ii) Daca ambele stari sunt impuse si daca se pot defini functiile de transfer atat
ntr-un sens cat si n celalalt atunci se poate opta pentru oricare dintre cele dou ametode de rezolvare, adica progresiv sau regresiv.
2.4.3. Aplicatii
Exercitiul 2.4.1. Aplicatia similara celei de la paragraful de aplicatii core-spunzator programarii dinamice regresive.
Raspuns. Pasul 0 este identic cu cel de la rezolvarea aplicatiei de la capitolulprogramarii regresive.
PASUL 1. Se determina functiile reciproce de transfer:1 (s1, x1) = s1 x1 + 5,2 (s2, x2) = s2 x2 + 7,3 (s3, x3) = s3 x3 + 8,4 (s4, x4) = s4 x4 + 5.Functiile partiale de eficienta sunt:u1 (s1, x1) = 12x1,u2 (s2, x2) = 10x2,u3 (s3, x3) = 9x3,
u4 (s4, x4) = 10x4.Functiile de eficienta ale proceselor trunchiate la fazele 1, . . . , i (pentru i =
1, . . . , 4) sunt:f1= 12x1,f2= 12x1 + 10x2,
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
43/322
30 PROGRAMARE DINAMIC A
f3
= 12x1
+ 10x2
+ 9x3
,f4= 12x1 + 10x2 + 9x3 + 10x4.
Noile spatii de decizie se determina succesiv:
Din s0 = 3 rezulta s1 x1 + 5 = 3 sau x1 = s1 + 2 de unde x1 {s1 + 2},din s1 [0, 4] rezulta s2 x2 + 7 [0, 4] de unde x2 [s2 + 3, s2 + 7],din s2 [0, 2] rezulta s3 x3 + 8 [0, 2] de unde x3 [s3 + 6, s3 + 8],din s3 [0, 1] rezulta s4 x4 + 5 [0, 1] de unde x4 [s4 + 4, s3 + 5].PASUL 2. Se rezolva problema din faza 1 adica se calculeaza:
min{f1 |x1 X1 (s1)} = min{12x1|x1 {s1 + 2}} = 12s1 + 24,
minim atins pentru x1(s1) = s1 + 2.
PASUL 3/4. Se rezolva problema:
min{f2 |x2 X2 (s2)} = min{12x1 + 10x2|x2 [s2 + 3, s2 + 7]} =
= min{10x2 + 12s1 + 24)|x2 [s2 + 3, s2 + 7]} == min{10x2 + 12(s2 x2 + 7) + 24)|x2 [s2 + 3, s2 + 7]} == min{2x2 + 12s2 + 108|x2 [s2 + 3, s2 + 7]} == 2(s2 + 7) + 12s2 + 108 = 10s2 + 94,minim atins pentru x2(s2) = s2 + 7.Se rezolva problema:
min{f3 |x3 X3 (s3)} = min{12x1 + 10x2 + 9x3|x3 [s3 + 6, s3 + 8]} =
= min
{9x3 + 10s2 + 94
|x3
[s3 + 6, s3 + 8]
}=
= min{9x3 + 10(s3 x3 + 8) + 94|x3 [s3 + 6, s3 + 8]} == min{x3 + 10s3 + 174|x3 [s3 + 6, s3 + 8]} == s3 8 + 10s3 + 174 = 9s3 + 166,minim atins pentru x3(s3) = s3 + 8.Se rezolva problema:
min{f4 |x4 X4 (s4)} = min{12x1 + 10x2 + 9x3 + 10x4|x4 [s4 + 4, s3 + 5]} =
= min{10x4 + 9s3 + 166|x4 [s4 + 4, s3 + 5]} == min{10x4 + 9(s4 x4 + 5) + 166|x4 [s4 + 4, s3 + 5]} == min{x4 + 9s4 + 211|x4 [s4 + 4, s3 + 5]} == 10s4 + 215 = 215,
minim atins pentru x4(s4) = s4 + 4 = 4, unde s4 = 0.PASUL 5. Avem:
s3 = s4 x4 + 5 = 1 si x3 = s3 + 8 = 9,
s2 = s3 x3 + 8 = 0 si x2 = s2 + 7 = 7,
s1 = s2 x2 + 7 = 0 si x1 = s1 + 2 = 2.
PASUL 6. Solutia optima este:
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
44/322
PROGRAMARE DINAMIC A PROGRESIV A 31
x = (2, 7, 9, 4), iar traiectoria optima s = (0, 0, 1, 0), deci s-a obtinut aceeasi
solutie ca n rezolvarea problemei prin metoda regresiva.
Exercitiul 2.4.2. Un depozit trebuie sa raspunda unei cereri de marfa totale de unitati de produs de la m beneficiari (cererea fiecarui beneficiar este de i unitatide produs). Daca costurile de transport al unei unitati de produs la beneficiarul ieste i si daca depozitul dispune initial de unitati de produs, iar daca acesta nupoate detine n stoc mai mult de unitati de produs sa se determine politica optimade reaprovizionare cu produsul respectiv astfel ncat toate cererile sa fie satisfacute.In final depozitul nu mai are nici o cantitate n stoc.
Indicatie. Vom nota cu xi numarul de unitati de produs comandate la nceputul
livrarii i si cu si stocul existent dupa livrarea i. Problema de programare ce trebuierezolvata este:
minm
i=1ixi
mi=1
xi = ,j
i=1i
ji=1
xj j1i=1
i + j = 1, m,xi 0 i = 1, m.
unde =m
i=1i. Se vor pune n evidenta functiile reciproce de transfer, functiile
partiale de eficienta, functiile de eficienta ale proceselor trunchiate, spatiul starilorsi spat iile de decizie.
Problema se poate rezolva si prin programare dinamica progresiva n n faze sievident si prin metoda programarii dinamice regresive sau cu ajutorul algoritmilorsimplex primal ori simplex dual prin aducerea acesteia la forma standard.
Exercitiul 2.4.3. Rezolvati numeric prin programare dinamica regresiva si pro-gresiva problema anterioara pentru m = 3, = 25 (1 = 10, 2 = = 8, 3 = 7), 1 =3, 2 = 10, 3 = 4, = 3 si = 10. Aplicati pentru rezolvarea problemei algoritmul
simplex primal. Scrieti duala problemei de programare liniara asociata. Rezolvatiprogramul dual.
Indicatie. Aplicand exercitiul precedent restrictia a doua devine:
1 x1 ,
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
45/322
32 PROGRAMARE DINAMIC A
sau 10
3
x1
10
3 deci x1 = 7. Restrictia a treia devine:
1 + 2 x1 + x2 1 + ,
sau 10 + 8 3 3 + x2 10 + 10 3 deci 12 x2 20 etc.
Exercitiul 2.4.4. Generalizati problema de la exercitiul 2.4.2 la o problema cun depozite. Rezolvati aceasta problema prin metoda programarii dinamice si apoiprin metoda de rezolvare a problemelor clasice de transport.
Exercitiul 2.4.5. Un tren de marfa cu capacitatea maxima z trebuie sa trans-porte diferite cantitati de N marfuri diferite. Sa notam cu vi valoarea celui de al i-lea
tip de marfa si cu wi greutatea sa. Sa se determine ncarcatura de valoare maxima.Aplicatie numerica N = 3, z = 100 t, v1 = 10$, v2 = 30$, v3 = 5$, w1 = 150 t,w2 = 20 t, w3 = 30 t.
Indicatie. Daca notam cu xi numarul articolelor din marfa i care sunt ncarcate,atunci problema de programare liniara de rezolvat este:
maxN
i=1xivi,
N
i=1xiwi z,
xi 0, i = 1, N .Problema se poate rezolva prin metodele programarii dinamice sau cu algoritmul
simplex.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
46/322
Capitolul 3
TEORIA JOCURILOR
3.1. Notiuni introductive
De foarte multe ori suntem pusi n fata unor situatii conflictuale a caror evolutieulterioara depinde de decizia sau planul adoptat, numita si strategie. Prin termenulde evolutie se ntelege modificarea unei functii obiectiv numita n acest caz functiede pierdere sau castig, deci prin joc n cele ce urmeaza se ntelege acea situatiecare functioneaza dupa reguli bine definite, n care doua sau mai multe elemente de-cizionale, numite jucatori, aleg o decizie dintr-o multime de variante bine specificate.Deoarece jocurile de care ne vom ocupa au la baza aceste elemente decizionale, ele se
vor numi jocuri strategice. Spunem despre strategia unui joc ca este o strategie puradaca unul dintre adversari alege una din cele m variante dupa care jocul se opreste.Strategia mixta presupune continuarea partidei, iar alegerea variantei se face cu oanumita probabilitate. Fiecare din partile implicate n joc urmareste optimizareafunctiei obiectiv, iar strategia care realizeaza aceasta optimizare se numeste strategieoptima.
Din punct de vedere al castigului jocurile se clasifica n:
-jocuri cu suma nula: sunt acele jocuri n care suma pierderilor fiecarui jucatoreste egala cu suma castigurilor tuturor jucatorilor;
-jocuri fara suma nula: sunt acele jocuri n care o parte din pierderea si/sau
castigul unui jucator nu se regaseste la ceilalti jucatori.O alta clasificare este dupa cardinalul numarului de strategii: jocuri finite sau
infinite.
Fie X si Y strategiile pure a doi jucatorilor A respectiv B si a X si b Ystrategile pure alese de catre acestia. Vom nota cu LA(a, b) si LB(a, b) pierderilecorespunzatoare fiecarui jucator, castigul fiind considerat o pierdere negativa. Suma
33
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
47/322
34 TEORIA JOCURILOR
pierderilor celor doi jucatori este:
LA(a, b) + LB(a, b).
Daca jocul este cu suma nula atunci LA(a, b) + LB(a, b) = 0. Deci, LB(a, b) =LA(a, b) = L(a, b), unde L(a, b) este castigul jucatorului A daca acesta joaca strate-gia a iar raspunsul lui B fiind prin strategia b.
Jocurile de tip poker sunt jocuri cu suma nula, iar jocurile de tip Casino suntfara suma nula (se platesc impozite catre stat sau se platesc taxe catre proprietarul
jocului). Formalizand cele definite avem:
Definitia 3.1.1. Se numeste joctripletul J = (X , Y , L) unde X = {a1, . . . , am}si Y =
{b1
,...,bn}
sunt multimile de strategii pure ale celor doi jucatori, iar L :X Y R este functia de castig care se poate exprima sub forma matriceala:
Q =
q11 ... q 1n... ... ...
qm1 ... q mn
n care qij = L(ai, bj), i = 1, m , j = 1, n. Forma matriceala a unui joc se numesteforma normala. Matricea jocului este alcatuita n raport cu jucatorul A numit
jucator maximizant. Jucatorul B se va numi jucator minimizant, iar matricea sa vaavea elementele qij.
Exemplul 3.1.1. Jocul consta n aruncarea monedei n care fiecare jucatorpoate alege, independent de celalalt stema S sau banul B. Daca alegerile coin-cid, atunci jucatorul 2 primeste de la jucatorul 1 suma x. In caz contrar jucatorul 1primeste de la jucatorul 2 suma x. Matricea jocului este:
Q =
x xx x
.
3.2. Principiul minimax
Teoria jocurilor are ca rol elaborarea unor planuri rat ionale de actiune pentru
cazurile conflictuale. Astfel, principiul adoptat este principul minimizarii pierderiimaxime numit si principiul minimax. Jucatorul A actioneaza astfel ncat sa maxi-mizeze cel mai mic castig pe care-l poate obtine de la jucatorul B, iar jucatorul Bactioneaza astfel ncat sa minimizeze pierderea sa maxima.
Valoarea: = max
iminj
qij
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
48/322
STRATEGII MIXTE SI VALOAREA JOCULUI 35
se numeste valoarea inferioara a jocului si reprezinta cel mai mic castig pe care A l
poate avea de la B, iar valoarea:
= minj
maxi
qij
se numeste valoarea superioara a jocului si reprezinta cea mai mare pierdere pe careB o poate avea.
Jocurile pentru care = se numesc jocuri cu punct sa, iar valoarea comuna aacestor doua valori se numeste valoarea jocului. Elementul care realizeaza aceastaegalitate se numeste punct sa.
O strategie ai a jucatorului A se numeste dominanta pentru strategia aj dacaqik qjk pentru orice k = 1, n. Strategiile dominate vor fi eliminate din joc de c atreA (acesta doreste sa castige cat mai mult) strategiile dominante ale lui B vor fieliminate din politica sa pentru ca duc la pierderi mai mari.
3.3. Strategii mixte si valoarea jocului
Jocurile cu punct sa reprezinta o clasa particulara de jocuri si se pune n modnatural ntrebarea daca, n ipoteza repetarii partidelor, nu se poate gasi o strategieprin care jucatorul A sa obtina un castig mai mare decat cel asigurat prin criteriulminimax. Vom numi strategie mixta o combinatie probabilista de strategii pure.Strategiile mixte au dublu rol:
1. de a mpiedica adversarul sa cunoasca strategia aleasa;
2. de a mari castigul garantat de valoarea inferioara a jocului.Fie X = (x1,...,xm)
vectorul probabilitatilor cu care jucatorul A alege strategiilepure {a1,...,am} si Y = (y1,...,yn) vectorul probabilitatilor cu care jucatorul Balege strategiile pure {b1,...,bn}. Avem:
xi 0, i = 1, mm
i=1xi = 1,
si
yj 0, j = 1, nn
j=1 yj = 1.
Castigul mediu realizat de catre A cand el foloseste strategia mixta X, iar Bstrategia bj va fi:
M(X, j) =m
i=1
qijxi.
-
7/16/2019 Cercetari Operationale, Probabilitati, Criptologie. Aplicatii
49/322
36 TEORIA JOCURILOR
Similar, castigul mediu realizat de A cand el foloseste strategia ai, iar B foloseste
strategia mixta Y va fi:
M(i, Y) =n
j=1
qijyj.
Valoarea medie a jocului va fi:
M(X, Y) =n
j=1
mi=1
qijxiyj =m
i=1
nj=1
qijxiyj ,
sau matriceal:
M(X, Y) = X
QY.
3.4. Teorema fundamentala a teoriei jocurilor
Teorema 3.4.1. (Valoarea inferioara si valoarea superioara a jocului). FieX,Y submultimi ale lui R si fie L : X Y R. Daca exista marimile:
maxxX
[minyY
L(x, y)],
minyY
[maxxX
L(x, y)],
atunci:maxxX
[minyY
L(x, y)] minyY
[maxxX
L(x, y)].
Definitia 3.4.1. (Punct sa). Punctul (x0, y0) este punct sa al functiei L daca:
L(x, y0) L(x0, y0) L(x0, y).
Teorema 3.4.2. (Conditii necesare si suficiente pentru existenta punctelor sa).Fie X, Y submultimi ale lui R si fie L : X Y R. Daca exista marimile:
maxxX
[minyY
L(x, y)],
minyY
[maxxX
L(x, y)],
atunci conditia necesara si suficienta ca L sa aib a pun
top related