You are on page 1of 252

Romic TRANDAFIR

MODELE SI , ALGORITMI DE OPTIMIZARE

Matematica
Editura AGIR
(

Seria Matematic MODELE I ALGORITMI DE OPTIMIZARE

OPTIMIZATION MODELS AND ALGORITHMS This book presents a set of optimization methods, models and algorithms. After the Introduction, where the reader is familiarized with the object of optimization and some applications of it, the book includes Graphs in Optimization, Convex Programming, Linear Programming, the Transportation Problem, Quadratic Programming, Dynamic Programming, Basics of Queuing Theory, Basics of Inventory Theory, and an Appendix. These chapters provide a minimum of knowledge for practical activities in engineering and economics. Many of the results are being formally established, but some theorems are listed without a proof, while providing a reference where the proof can be found. The methods and corresponding algorithms are illustrated by examples. Also, the solutions obtained by using the following software are included: Management Scientist, Excel, and MathCAD. Almost all chapters end with suggested problems. This book is aimed at engineers, economists, mathematicians and students of technical and economic faculties, being a useful tool for solving practical problems.

MODLES ET ALGORITHMES DOPTIMISATION Cet ouvrage prsente un ensemble de modles, de mthodes et dalgorithmes doptimisation. Le premier chapitre, Introduction, o lobjet de loptimisation et les principaux domaines dapplication sont fournis, est suivi de Graphes en optimisation, Programmation convexe, Programmation linaire, le Problme de transport, Programmation dynamique, Programmation quadratique, lments de la thorie files dattente, lments de la thorie de stockes et une Annexe. Ces chapitres reprsentent un minimum de connaissances ncessaires dans les activits pratiques de management des ingnieurs et conomistes. La plupart des rsultats sont dmontrs, mais il y a des rsultats (thormes, propositions) qui sont accepts sans dmonstration, pour lesquelles on indique louvrage o ils sont dmontrs. Les mthodes et les algorithmes correspondants sont illustrs par exemples compltement rsolus. On a donn galement les solutions obtenues en utilisant les logiciels Management Scientist, Excel et MathCAD. Presque tous les chapitres finissent par des problmes proposs rsoudre. Louvrage sadresse aux ingnieurs, conomistes, mathmaticiens et tudiants des facults techniques et conomiques, tant un outil pour rsoudre les problmes pratiques.

Romic Trandafir

MODELE I ALGORITMI DE OPTIMIZARE


Seria Matematic

Editura AGIR Bucureti, 2004

ASOCIAIA GENERAL A INGINERILOR DIN ROMNIA


Copyright EDITURA AGIR, 2004 Editur acreditat de CNCSIS Toate drepturile pentru aceast ediie sunt rezervate. All rights reserved.

Adresa: Calea Victoriei nr. 118, sector 1, Bucureti, cod 010071; telefon: 40 21 212 81 04; 40 21 212 81 06 (redacie); 40 21 211 83 50 (difuzare); fax: 40 21 312 55 31; e-mail: editura@agir.ro; Internet: http://www.agir.ro

Refereni tiinifici: prof. univ. dr. Ion Vduva; prof. univ. dr. tefan Mititelu

Redactor: ing. Adina Negoi Coperta: Rzvan Drghici Bun de tipar: 25.08.2004; Coli de tipar: 15,5 ISBN 973-8466-76-8 Imprimat n Romnia

PREFA

Lucrarea de fa este o reuit sintez, care trateaz n mod concis, dar i riguros din punct de vedere matematic, problemele de optimizare. Dup o Introducere n care se formuleaz conceptele de baz ale construciei modelelor matematice i ale descrierii problemelor de optimizare, lucrarea trateaz sistematic o mare varietate de modele i algoritmi de optimizare, care intervin n rezolvarea diverselor tipuri de probleme ridicate de practica inginereasc, n particular n construcii. Astfel, un prim capitol este dedicat formulrii i tratrii unor modele i algoritmi de optimizare din teoria grafurilor, legate de determinarea drumurilor minime, a fluxurilor minime/maxime sau a arborilor de acoperire de cost minim. Apoi, n cinci capitole distincte, sunt tratate la nivel teoretic evoluat, diverse probleme de programare matematic, cum sunt: programarea convex programarea liniar, problema de transport, programarea ptratic i programarea dinamic. n aceste capitole se fac remarcate construcia i analiza aprofundat a numeroi algoritmi generali, dar i a unor particulariti ale acestora de un real interes practic. Un capitol special este dedicat analizei unor modele de teoria matematic a ateptrii, modele care au ca scop reglarea ateptrilor i fluxurilor n sistemele de servire n condiii de incertitudine. Sunt tratate modele de ateptare pentru sisteme cu o staie de servire, cu coada finit sau infinit, sau sisteme de ateptare cu mai multe staii paralele. n toate aceste modele se presupune c venirile i duratele serviciilor sunt aleatoare, de repartiii cunoscute. n sfrit, ultimul capitol al crii trateaz modelele reprezentative de teoria matematic a stocurilor. Sunt tratate modele clasice care determin politici de reaprovizionare optime pentru stocarea unuia sau mai multor produse, precum i unele modele aleatoare. Aproape toate metodele i algoritmii descrii sunt ilustrate prin exemple preluate cu precdere din practica activitilor de construcii, exemple ce sunt prelucrate cu ajutorul unor pachete de programe, fapt care mrete mult utilitatea i atractivitatea lucrrii. ntruct n tratarea unor modele intervin noiuni i metode ale teoriei probabilitilor i statisticii matematice, anexa crii prezint tocmai noiunile de baz necesare nelegerii acelor modele. n concluzie, avem de-a face cu o carte bine construit, interesant prin acurateea, claritatea i rigurozitatea problemelor tratate i care ofer posibiliti de aplicare la rezolvarea multor probleme practice, ea prezentnd deci un interes deosebit pentru o clas larg de cititori. Bucureti, 20 iulie 2004 Prof. univ. dr. Ion Vduva

Modele i algoritmi de optimizare

CUPRINS
1. Introducere .....................................................................................................................11 1.1. Obiectul optimizrii ..................................................................................................11 1.1.1. Construcia modelului.....................................................................................11 1.1.2. Concepte de baz n modelare ........................................................................12 1.2. Tipuri de probleme ...................................................................................................14 1.2.1. Dimensiunea problemelor...............................................................................16 1.2.2. Algoritmi iterativi i convergen ...................................................................16 2. Grafuri n optimizare.....................................................................................................17 2.1. Definiii i algoritmi..................................................................................................17 2.1.1. Grafuri orientate..............................................................................................17 2.1.2. Grafuri neorientate..........................................................................................19 2.2. Cutarea unui arbore de acoperire de lungime minim ............................................20 2.2.1. Algoritmul lui Kruskal....................................................................................21 2.2.2. Algoritmul lui Prim.........................................................................................22 2.3. Algoritmul lui Dijkstra .............................................................................................25 2.4. Metoda PERT ...........................................................................................................29 2.5. Probleme propuse .....................................................................................................35 3. Programare convex ......................................................................................................43 3.1. Mulimi i funcii convexe........................................................................................43 3.2. Extreme condiionate ................................................................................................45 3.2.1. Cazul restriciilor egaliti...............................................................................48 3.2.2. Cazul restriciilor inegaliti ...........................................................................49 4. Programare liniar ........................................................................................................51 4.1. Exemple de probleme de programare liniar ............................................................51 4.1.1. Utilizarea optim a resurselor .........................................................................51 4.1.2. Problema de transport .....................................................................................52 4.1.3. Alocarea optim a fondurilor financiare .........................................................54 4.1.4. Gestionarea optim a unui depozit..................................................................54 4.1.5. Problema dietei ...............................................................................................55 4.2. Diferite forme ale problemelor de programare liniar ..............................................56 4.3. Algoritmul simplex ...................................................................................................57 4.4. Fundamentele algoritmului simplex .........................................................................59 4.5. Enunul algoritmului simplex ...................................................................................62 4.6. Tabelul simplex i transformarea sa .........................................................................63 4.7. Exemplu....................................................................................................................65 4.8. Convergena algoritmului simplex. Degenerare i ciclare ........................................72 4.9. Interpretarea geometric a algoritmului simplex ......................................................74 4.10. Interpretarea economic a algoritmului simplex.....................................................76 4.11. Metoda celor dou faze...........................................................................................77 4.12. Dualitatea n programarea liniar............................................................................82 4.13. Teorema fundamental a dualitii..........................................................................84

Modele i algoritmi de optimizare 4.14. Algoritmul simplex dual .........................................................................................89 4.15. Interpretarea economic a algoritmului simplex dual.............................................92 4.16. Determinarea unei soluii dual admisibile ..............................................................94 4.17. Probleme propuse ...................................................................................................95

5. Problema de transport .................................................................................................102 5.1. Fundamentele algoritmului de transport .................................................................102 5.2. Enunul algoritmului de transport ...........................................................................107 5.3. Determinarea soluiei iniiale de baz .....................................................................108 5.4. Exemplu..................................................................................................................109 5.5. Problema atribuirii sarcinilor ..................................................................................119 5.6. Probleme propuse ...................................................................................................119 6. Programare ptratic ..................................................................................................122 6.1. Exemple de probleme care conduc la programare ptratic ......................................122 6.1.1. Utilizarea optim a resurselor .......................................................................122 6.1.2. Problema investiiei ......................................................................................123 6.1.3. Regresii liniare..............................................................................................123 6.2. Definiii. Proprieti................................................................................................124 6.3. Fundamentarea algoritmului lui Wolfe...................................................................127 6.4. Forma scurt a algoritmului lui Wolfe....................................................................132 6.5. Probleme propuse ...................................................................................................141 7. Programare dinamic ..................................................................................................143 7.1. Generaliti .............................................................................................................143 7.2. Analiza retrospectiv ..............................................................................................146 7.2.1. Rezolvarea n cazul aditiv.............................................................................147 7.2.2. Problema repartiiei investiiilor ...................................................................148 7.2.3. Problema gestiunii stocului...........................................................................152 7.2.4. Problema alocrii optime a resurselor...........................................................155 7.3. Probleme propuse ...................................................................................................157 8. Elemente de teoria ateptrii.......................................................................................161 8.1. Introducere n teoria ateptrii ................................................................................161 8.2. Caracterizarea procesului N(t) ca proces de natere i deces..................................162 8.3. Modelul Po()/Exp()/1:(,FIFO)........................................................................165 8.4. Modelul Po()/Exp()/1:(m, FIFO).......................................................................170 8.5. Modelul Po()/Exp()/c:(, FIFO) ........................................................................174 8.6. Modelul P0()/Exp()/c:(m,FIFO).........................................................................180 8.7. Simulare..................................................................................................................185 8.8. Probleme propuse ...................................................................................................188 9. Elemente de teoria stocurilor ......................................................................................194 9.1. Introducere n teoria stocurilor ...............................................................................194 9.1.1. Punerea problemei ........................................................................................194 9.1.2. Concepte utilizate n teoria stocurilor ...........................................................195 9.2. Modelul clasic al lotului economic .........................................................................199 9.3. Modelul clasic al lipsei de stoc ...............................................................................204

Cuprins

9.3.1. Modelul de stocare considernd influena preului de cumprare ................209 9.3.2. Modelul de stocare considernd influena costului de producie ..................209 9.4. Extensii ale modelului clasic al lotului economic...................................................210 9.5. Model pentru stocarea mai multor tipuri de produse ..............................................216 9.6. Modele stochastice de stocare.................................................................................216 9.6.1. Determinarea nivelului optim de reaprovizionare.........................................217 9.6.2. Modele de stocare pe o singur perioad cu cerere aleatoare .......................221 9.6.3. Modele stochastice de stocare bazate pe modele de ateptare ......................224 9.6.4. Modelul P0()/Exp()/1:(, FIFO)...............................................................224 9.6.5. Modelul cu mai multe staii paralele i cu timp de avans L aleatoriu ...........226 9.7. Probleme propuse ...................................................................................................230 Anex .................................................................................................................................233 A.1. Cmp de evenimente. Axioma lui Kolmogorov ....................................................233 A.1.1. Evenimente. Probabiliti.............................................................................233 A.1.2. Probabilitate .................................................................................................233 A.1.3. Cmp de probabilitate complet aditiv ..........................................................233 A.1.4. Probabilitate condiionat ............................................................................234 A.1.5. Evenimente independente ............................................................................234 A.2. Variabile aleatoare .................................................................................................234 A.2.1. Funcia de repartiie .....................................................................................235 A.2.2. Densitate de repartiie ..................................................................................236 A.2.3. Variabile aleatoare independente .................................................................236 n sensul SteinhausKa .........................................................................................236 A.2.4. Valoare medie. Dispersie. Momente............................................................236 A.3. Cteva repartiii clasice..........................................................................................237 A.3.1. Repartiia uniform ......................................................................................237 A.3.2. Repartiii Markov.........................................................................................237 A.3.3. Repartiia normal unidimensional a lui Gauss..........................................238 A.3.4. Repartiia Beta .............................................................................................239 A.4. Procese aleatoare....................................................................................................239 A.5. Teste de concordan .............................................................................................241 A.5.1. Etapele verificrii ipotezelor statistice .........................................................242 2 A.5.2. Testul de concordan ..........................................................................243 A.5.3. Testul Kolmogorov ......................................................................................243 Bibliografie .......................................................................................................................245 Index alfabetic ..................................................................................................................247

10

Modele i algoritmi de optimizare

1. INTRODUCERE

1.1. Obiectul optimizrii


Un manager vrea s aleag acel curs al activitii sale care va fi cel mai performant n atingerea scopului firmei sale. n judecarea eficienei diferitelor decizii posibile, trebuie s se foloseasc anumite criterii pentru msurarea performanei activitii n discuie. Este indicat s se urmreasc etapele (Bonini et al, 1997): 1. Stabilirea criteriului de eficien 2. Selectarea unei mulimi de alternative posibile 3. Determinarea unui model care s fie folosit i a valorilor parametrilor procesului 4. Determinarea alternativei care optimizeaz criteriul stabilit la etapa 1. Deoarece problemele lumii reale devin extrem de complicate este necesar s se fac o abstractizare i o simplificare a realitii ntr-un model. S considerm de exemplu problema construirii unei cldiri. Este necesar o durat ndelungat pentru culegerea de informaii privind locul unde se amplaseaz, caracteristicile fizice ale cldirii, studiul detaliat al condiiilor climatice i de sol, influena asupra costurilor, sursele de finanare i costurile. Decidentul poate hotr s considere n mod deosebit i n detaliu toate celelalte poteniale folosite n aceast perioad i n perioadele viitoare. Dac decidentul adopt strategia colectrii tuturor informaiilor nainte de a aciona, atunci nici o aciune nu va avea loc. Mintea uman nu poate considera toate aspectele empirice ale problemei. Anumite atribute ale problemei trebuie ignorate ca s se poat lua o decizie. Decidentul trebuie s identifice factorii cei mai relevani pentru problem. Abstracia i simplificarea sunt pai necesari n rezolvarea oricrei probleme umane.

1.1.1. Construcia modelului


Dup ce decidentul a identificat factorii critici ai problemei concrete pe care o are de rezolvat, acetia trebuie combinai n mod logic formnd astfel modelul. Un model este reprezentarea simplificat a problemei reale. Prin modelare, fenomenului natural complex i se reproduce comportarea esenial cu mai puine variabile i care sunt legate ntre ele mai simplu. Avantajele unui model simplu sunt: 1) economia de timp de concepere 2) poate fi neleas realitatea de ctre decident 3) dac este necesar, modelul poate fi modificat repede i eficient.

12

Modele i algoritmi de optimizare

Un model ct mai apropiat de realitate cere un timp excesiv n construcie. Decidentul dorete ca modelul simplificat s prezic rezultate rezonabile i s fie consistent cu aciunea efectiv. Dup ce modelul a fost construit se pot obine concluziile prin intermediul aciunilor logice. Decidentul i bazeaz aciunile sau deciziile pe aceste concluzii. Dac deducerea concluziilor din modelul abstract este corect i dac variabilele importante au fost abstractizate atunci soluia modelului ar servi ca o soluie efectiv pentru problema empiric. Exist dou surse de erori n folosirea modelului pentru factorul de decizie: 1) omiterea unor variabile importante din model 2) erori n definirea relaiilor dintre variabile. Tehnica abordat pentru descrierea i stabilirea legturilor variabilelor selectate depinde de natura variabilelor. Dac variabilele pot fi date n reprezentare cantitativ atunci modelele matematice sunt cele mai indicate. Matematica mpreun cu calculatoarele moderne fac posibil rezolvarea problemelor care cer modele de mare complexitate i atunci cnd analiza cantitativ se poate aplica ea faciliteaz procesul de luare a deciziilor. n luarea unei decizii, se stabilete criteriul de decizie, se selecteaz alternativele, se construiete un model, se evalueaz alternativele folosind modelul apoi se selecteaz cea mai bun alternativ. Un model este o abstracie i o simplificare a unei probleme reale, ncorpornd ideal elementele eseniale i relaiile din problema real. Rezolvarea unui model nseamn obinerea concluziilor logice care rezult, concluzii ce constituie un ghid efectiv n luarea deciziei dac modelul este proiectat i rezolvat corect. Luarea deciziei implic informaia cantitativ obinut din model cu judecarea intuitiv a factorilor calitativi.

1.1.2. Concepte de baz n modelare


Primul pas n construirea unui model este stabilirea factorilor i variabilelor pe care decidentul le consider importante. Acestea pot fi clasificate n cinci categorii: variabile de decizie, variabile exogene, restricii, msuri ale performanei i variabile intermediare. Variabilele de decizie sunt acele variabile pe care le controleaz decidentul, ele reprezentnd alegerile alternative pentru decident. De exemplu: trebuie s se introduc un nou produs n fabricaie. Decidentul poate alege: s se introduc sau nu, preul, culoarea, suma alocat reclamei etc. Variabilele exogene sau externe sunt acelea care sunt importante n problema de decizie, dar sunt controlate de factori externi sferei decidentului. De exemplu: preul materiilor prime pentru realizarea noului produs.

1.Introducere

13

Restriciile pot fi legate de capacitile de producie, resurse, limitri legislative, politica firmei etc. Msuri ale performanei. n luarea unei decizii decidentul are un scop, un obiectiv pe care ncearc s-l ating. Criteriile sau msurile performanei sunt expresii cantitative ale acestor obiective. Variabilele intermediare sunt necesare pentru includerea tuturor factorilor importani n problema de decizie. Adesea ele leag factorii de cost i de ctig. Se folosesc s lege variabilele de decizie i exogene de msurile de performan. * * * A face cel mai bine posibil este sensul oricrei atitudini naturale n viaa de zi cu zi. Dar aceasta nu are dect un sens relativ n raport cu nite restricii impuse din exterior sau acceptate de bunvoie (Cohen, 2000). Pentru un inginer a face cel mai bine posibil ar trebui s fie un obiectiv permanent atunci cnd are de conceput o cldire, de dimensionat o instalaie etc. Expresia este relativizat n funcie de buget, de securitate, sau altele, restricii al cror nivel a fcut la rndul su obiectul deciziilor prealabile i adesea exterioare. Cuvintele a optimiza, optimizare etc. sunt presupuse s reflecte aceast idee de cel mai bine posibil . n viaa curent alegerile posibile se limiteaz adesea la dou (atunci le numim alternative) sau cteva uniti, de tipul c algoritmul care ia decizia se reduce la a nfia, explicit sau nu, toate posibilitile, s considere i s evalueze consecinele lor probabile i s rein pe cea care pare cea mai bun (dar cea mai bun are sens doar n msura n care un criteriu de alegere a fost definit mai nainte). n problemele tehnice, alegerile posibile reprezint adesea un continuu (de exemplu: ce dimensiune s se dea unei grinzi ?) i o enumerare exhaustiv a posibilitilor este de neconceput. Atunci trebuie gsit un algoritm mai performant, adic o metod pentru a gsi drumul spre soluia cea mai bun dintre toate soluiile posibile. Optimizarea poate fi definit ca tiina determinrii celei mai bune soluii la anumite probleme definite matematic, care sunt adesea modele ale realitii fizice. Ea implic studiul criteriilor de optimalitate pentru probleme, determinarea soluiei cu metode algoritmice, studiul structurii acestor metode i experimentarea pe calculator a metodelor cu date experimentale i cu date reale. Metodele de optimizare au o larg aplicabilitate n aproape orice activitate n care sunt prelucrate informaiile numerice: tiin, inginerie, matematic, economie, comer etc. O selecie a domeniilor n care apar probleme de optimizare ar cuprinde: proiectarea reactoarelor chimice, a aparatelor aerospaiale, a cldirilor, a podurilor, n comer n probleme de alocarea resurselor, planificarea produciei, a stocurilor, n diferite ramuri ale analizei numerice, n ajustarea datelor, principii variaionale

14

Modele i algoritmi de optimizare

n sisteme de ecuaii difereniale i cu derivate pariale, funcii de penalitate etc. (Cohen, 1995). Se optimizeaz o funcie obiectiv care cuantific produsul unui proces economic sau profitul rezultat n urma aplicrii sistemului. Conceptul de optimizare este bine ncetenit ca principiul de baz n analiza problemelor complexe de decizie sau alocare. Folosirea optimizrii se bazeaz pe concentrarea ateniei asupra unui singur obiectiv conceput s cuantifice performana i calitatea deciziei ntr-o problem ce ar necesita determinarea valorilor unui numr mare de variabile interconectate. Acest obiectiv este maximizat sau minimizat supus unor restricii care s limiteze alegerea variabilelor de decizie. Dac un aspect al problemei poate fi identificat i caracterizat printr-un obiectiv (de exemplu: profitul ntr-o afacere) atunci optimizarea poate s ofere un cadru adecvat pentru o astfel de analiz. Optimizarea ar trebui privit ca un instrument de concepere i analiz, i nu ca un principiu care s duc la soluia corect din punct de vedere filozofic. Formularea problemei implic ntotdeauna gsirea unui echilibru ntre construirea unui model suficient de complex pentru a descrie ct mai bine problema i uurina de rezolvare a acestuia.

1.2. Tipuri de probleme


Termenul programare, n aceast lucrare va fi sinonim cu optimizare i i are originea n planificarea optimal. Cnd variabilele sunt supuse unor restricii (relaii) avem de-a face cu programare cu restricii, care face obiectul acestei lucrri. n lipsa restriciilor spunem c avem programare far restricii (Luenberger, 1989). Problemele fr restricii par lipsite de proprieti structurale astfel nct aplicabilitatea lor n probleme practice este redus. Problemele cu restricii permit modelarea fenomenelor complexe prin descompunerea n subprobleme i fiecare subproblem avnd mai multe restricii. Forma general a unei probleme de programare cu restricii este min f ( x ) x R n (1.1) g i ( x) = 0 i E g ( x) 0 i I i

unde: f este funcia obiectiv, gi sunt funciile care dau restriciile asupra variabilelor x1, x2, , xn, E este mulimea indicilor pentru restriciile cu egalitate, iar I este mulimea indicilor pentru restriciile cu inegalitate. Restriciile de forma g i ( x ) bi pot fi puse sub forma g i ( x ) bi 0 .

1.Introducere

15

Definiia 1.1. Un punct x R n care verific restriciile (1.1) se numete punct admisibil (realizabil) sau soluie admisibil i mulimea tuturor acestor puncte R, formeaz regiunea admisibil (realizabil). Definiia 1.2. O soluie admisibil x * R este o soluie optim pentru problema (1.1) dac f ( x * ) f ( x ) , ()x R .
max f ( x ) = min{ f ( x )} , problema de maximizare devine o problem de minimizare, aa c n continuare se vor considera numai probleme de minimizare.

Prin schimbarea

Dac toate funciile gi(x) care dau restriciile sunt liniare i funcia obiectiv este liniar, problema (1.1) se numeste problem de programare liniar, iar dac funcia obiectiv este ptratic atunci problema (1.1) se numete problem de programare ptratic. Programarea liniar permite rezolvarea unei game largi de probleme cu un efort redus. Popularitatea programrii liniare se datoreaz n principal etapei de formulare, i nu celei de rezolvare numeric, deoarece multe dintre restriciile i obiectivele care apar n practic sunt liniare prin definiie. Optimizarea sistemelor reale cu evoluie n etape constituie obiectul programrii dinamice, care are la baz pricipiul de optimalitate al lui Bellman (Kaufmann, II, 1967), care poate fi exprimat astfel: Orice politic optim nu poate fi alctuit dect din subpolitici optime. Fenomenele de ateptare se optimizeaz cu modele de ateptare care dau informaii asupra organizrii sistemului n vederea reducerii timpilor de ateptare n sistem, a reducerii cheltuielilor de funcionare a sistemului de ateptare etc. Asigurarea unui regim optim de funcionare a unui proces de producie sau aprovizionarea optim cu anume sortimente a cererilor pieei se realizeaz cu ajutorul modelelor de stocare. Ca o aplicaie practic a teoriei grafurilor este prezentat organizarea i planificarea proiectelor complexe i stabilirea duratei minime de realizare a acestora. Toate aceste modele fac obiectul acestei lucrri, fiind prezentate soluiile modelelor, exemple practice rezolvate fie manual, fie cu ajutorul Solver-ului din EXCEL, fie cu ajutorul pachetului de programe specializat n rezolvarea problemelor de optimizare, Management Scientist (MS), fie cu ajutorul pachetului de programe MathCAD.

16

Modele i algoritmi de optimizare

1.2.1. Dimensiunea problemelor


O msur a complexitii problemei de programare este dimensiunea acesteia exprimat prin numrul de necunoscute i de restricii (Luenberger, 1989). Dimensiunea problemelor care pot fi rezolvate a crescut o dat cu dezvoltarea teoriei i a tehnicilor de calcul. Se pot distinge acum trei categorii de probleme: de dimensiune redus (cu cel mult 5 variabile sau restricii), de dimensiune medie (ntre 5 i 100 de variabile sau restricii) i de dimensiuni mari (cu peste 100 de variabile i restricii). Aceast clasificare reflect nu numai diferene de dimensiuni, dar i de abordare. Astfel problemele de dimensiuni mici pot fi rezolvate de mn sau cu un calculator de buzunar. Problemele de dimensiuni medii pot fi rezolvate pe un calculator, folosind programe matematice generale. Problemele de dimensiuni mari necesit programe sofisticate care exploateaz caracteristicile particulare ale problemei i de obicei se ruleaz pe calculatoare de mare capacitate. Teoria iniial a optimizrii s-a concentrat asupra obinerii rezultatelor teoretice, ignornd aspectele de calcul ale metodelor propuse. Abordrile recente se axeaz pe exploatarea caracteristicilor calculatoarelor, obinnd soluia prin metode iterative.

1.2.2. Algoritmi iterativi i convergen


Cea mai important caracteristic a calculatoarelor este capacitatea lor de a efectua operaii repetitive ntr-un mod eficient i din aceast cauz majoritatea algoritmilor de rezolvare a problemelor de optimizare sunt iterativi (Luenberger, 1989). n cutarea unei soluii se alege un vector iniial x0 i algoritmul determin un vector x1 care conduce la o valoare mai bun a funciei obiectiv; procesul se repet obinndu-se un ir de vectori x0, x1, , xk, , fiecare mbuntind valoarea funciei obiectiv, fa de precedentul. Acest ir converge ctre x* , soluia problemei. n problemele de programare liniar soluia se obine dup un numr finit de pai. n probleme de programare neliniar irul nu atinge niciodat soluia, dar converge ctre ea. Practic, algoritmul se oprete cnd s-a obinut un punct suficient de aproape de soluie. Teoria algoritmilor iterativi poate fi mparit n trei pri. Prima parte se ocup cu crearea de algoritmi. A doua parte, numit i analiza convergenei globale, analizeaz convergena unui algoritm ctre soluia optim atunci cnd se iniializeaz cu un punct deprtat de soluia optim. Cea de-a treia component se numete analiza convergenei locale i studiaz rata de convergen a irului ctre soluia optim. Este esenial cnd se recomand un algoritm s se menioneze i o estimare a timpului necesar pentru obinerea soluiei. Lucrarea de fa argumenteaz convergena majoritii algoritmilor prezentai.

2. GRAFURI N OPTIMIZARE
2.1. Definiii i algoritmi

2.1.1. Grafuri orientate


Definiia 2.1. Se numete graf orientat o pereche de mulimi G=(X,U), unde: X este o mulime finit i nevid, ale crei elemente se numesc noduri (vrfuri) , iar U este o mulime format din perechi ordonate (x,y), x, y X , numit mulimea arcelor (muchii). Dac ( x, y ) U , x se numete extremitatea iniial (originea) a arcului, iar y, extremitatea final (extremitatea). Grafurile permit modelarea unui numr mare de situaii (Henry-Labordere, 1995). Exemple de grafuri: a) o reea rutier (cu drumuri avnd sens unic) vrfurile sunt interseciile, iar arcele sunt drumurile. b) ordinea lucrrilor ntr-un antier. 2 c) relaiile stabilite ntre indivizi (situaie ntlnit n psihologia de grup) 1 de exemplu: X={1, 2, 3, 4} , U={(1, 2), (3, 4) , 4 (4, 2), (4, 3)}. Grafic se poate reprezenta ca n Figura 2.1. Individul 1 l apreciaz pe individul 2, 3 individul 2 nu l apreciaz pe individul 1, individul 4 l apreciaz pe individul Figura 2.1 2, iar indivizii 3 i 4 se apreciaz reciproc. Definiia 2.2. Se numete drum ntr-un graf orientat un ir de arce D = u1 ,..., uk ui U , i = 1, k 1 cu proprietatea c extremitatea final a arcului ui

coincide cu extremitatea iniial a arcului ui+1 , i = 1, k 1 .

18

Modele i algoritmi de optimizare

Dac extremitatea final a arcului uk coincide cu extremitatea iniial a arcului u1 atunci drumul se numete circuit. Un circuit format dintr-un singur arc se numete bucl. Dac nodurile arcelor drumului sunt distincte dou cte dou, drumul se numete elementar. Exemplu. n Figura 2.1 (1, 2, 4, 3) este un drum, iar (1, 2, 3) nu este drum. Definiia 2.3. Un nod x dintr-un graf orientat G se numete precedentul altui nod y din G dac exist arcul (x, y ) U . Un nod y dintr-un graf orientat G se numete succesorul altui nod x din G dac exist arcul (x, y ) U . Un nod x dintr-un graf orientat G se numete ascendentul altui nod y din G dac exist un drum de origine x i extremitate y. Un nod y dintr-un graf orientat G se numete descendentul altui nod x din G dac exist un drum de origine x i extremitate y. Vrful y este adiacent vrfului x dac (x, y)U sau (y, x)U . Fie G=(X,U) un graf orientat i AX. Arcul u U este incident mulimii A spre exterior dac extremitatea sa final aparine lui A, iar extremitatea iniial nu aparine lui A. Arcul u U este incident mulimii A spre interior dac este incident spre exterior mulimii A = X A . Definiia 2.4. Se numete gradul exterior al lui x i se noteaz d +(x) numrul de noduri succesoare lui x. Se numete gradul interior al lui x i se noteaz d (x) numrul de noduri precedente lui x. Se numete gradul lui x i se noteaz cu d(x) numrul d +(x)+ d (x), (d(x)=d +(x)+ d (x)). Definiia 2.5. Fie G=(X,U) un graf orientat i fie U U , G = ( X , U ) se numete graf parial al lui G. Fie A X i UA={uU astfel nct cele dou extremiti ale lui u s fie n A} . GA =(A, UA) se numete subgraf al lui G. Definiia 2.6. Graful se numete tare conex dac pentru orice perechi de vrfuri x, y X exist un drum din x plecnd la y . Definiia 2.7. Se numete arborescen un graf tare conex i fr cicluri, orientat, a crui orientare este astfel nct fiecare vrf al su cu excepia unuia singur, numit rdcin, este extremitatea terminal a unui arc i numai unul.

2. Grafuri n optimizare

19

Definiia 2.8. Se numete graf ponderat sau valuat i se noteaz G=(X, U, l) un graf (X, U) cruia i se asociaz o funcie l : U R + numit ponderea arcelor. Exemple: a) l(x,y) = lungimea tronsonului de drum, (x,y) care unete localitile x i y; b) l(x,y) = capacitatea tronsonului de drum (x,y). Definiia 2.9. Se numete reea de transport un graf orientat, G=(X,U), fr bucle, cu proprietile urmtoare: exist un nod x0 unic, numit originea reelei, i care nu are ascendeni; exist un nod xf unic, numit destinaia reelei, i care nu are descendeni; fiecrui arc u U i este asociat un numr l (u ) 0 numit capacitatea arcului u .

2.1.2. Grafuri neorientate


Definiia 2.10. Se numete graf neorientat i se noteaz G=(X,U) o pereche de mulimi, unde: X este o mulime finit i nevid, iar U este o mulime de perechi neordonate (x, y) cu x, yX . Elementele lui X se numesc vrfurile (nodurile) grafului, iar elementele lui U se numesc muchiile (arcele) grafului. Dac u = (x, y ) U , x i y se numesc extremitile muchiei u. Definiia 2.11. Un graf G=(X, U), n care, dac numete graf simetric.

( x, y ) U

atrage

( y, x ) U ,

se

Definiia 2.12. Un graf neorientat, G=(X, U), se numete graf complet dac pentru ( )x, y X avem ( x, y ) U . Definiia 2.13. ntr-un graf neorientat, G=(X,U), se numete lan o mulime de vrfuri
L = x1 ,..., xk xi X , i = 1, k

cu proprietatea c oricare dou vrfuri

consecutive sunt adiacente, adic (xi , xi +1 )U , i = 1, k 1 . Vrfurile x1 , xk se numesc extremitile lanului, iar numrul de muchii care intr n componena sa se numete lungimea lanului. Dac x1,..., xk sunt distincte dou cte dou, lanul se numete elementar, altfel se numete neelementar.

20

Modele i algoritmi de optimizare

Definiia 2.14. Un graf G=(X,U) se numete simplu conex sau conex dac pentru orice pereche de vrfuri x, y X exist un lan de extremiti x i y . Definiia 2.15. Se numete ciclu ntr-un graf
L = x1 ,..., xk xi X , i = 1, k
1,

} cu proprietatea c x =x
1

G=(X,U),

un lan

i muchiile (x1, x2), ... , (xk-

xk) sunt distincte dou cte dou.

Definiia 2.16. Se numete ponderea unui lan, drum, ciclu sau circuit valoarea P=
( x , y )( x1 , x 2 ,..., x n )

l ( x, y ) .

De exemplu, n cadrul metodei PERT, ponderea unui drum este durata sa total. Definiia 2.17. Un lan, drum, ciclu sau circuit se numete hamiltonian dac el trece o dat i numai o dat prin toate vrfurile grafului. Un lan, drum, ciclu sau circuit se numete eulerian dac el trece o dat i numai o dat prin toate arcele grafului. Definiia 2.18. Un arbore este un graf conex i fr cicluri. Se disting la un arbore dou tipuri de vrfuri : vrfuri la care mai multe muchii sunt incidente i alte vrfuri la care o singur muchie este incident. Acestea din urm se numesc vrfuri pendante sau frunze.

2.2. Cutarea unui arbore de acoperire de lungime minim

Fie G=(X, U, l) un graf conex (ipotez necesar pentru a asigura existena cel n = X (numrul puin a unui arbore) ponderat neorientat. S notm cu elementelor lui X). Se pune problema gsirii arborelui de acoperire de lungime minim, adic, folosind arce ale grafului s se lege ntre ele toate nodurile astfel nct lungimea total a arcelor folosite (suma ponderilor) s fie minim. O astfel de problem apare n proiectarea reelelor de comunicaii, unde obiectivul este s se minimizeze lungimea cablului necesar conectrii tuturor nodurilor care trebuie s comunice ntre ele, n proiectarea reelelor de drumuri, benzi rulante, sisteme de canalizare etc. n continuare sunt prezentai doi algoritmi care rezolv aceast problem.

2. Grafuri n optimizare

21

2.2.1. Algoritmul lui Kruskal


Algoritmul lui Kruskal permite cutarea unui arbore de acoperire de lungime minim. Vom presupune c graful G are lungimile muchiilor diferite dou cte dou (dac uv , u, v muchii, atunci l(u)l(v) ).
Algoritmul Kruskal Pas 1. Se consider v1 muchia de lungime cea mai mic. Apoi v2 muchia de lungime cea mai mic dintre cele rmase i se noteaz V2={v1, v2} ; k :=2 ; Pas 2. Repet k :=k+1 ; vk muchia de lungime cea mai mic dintre cele rmase astfel nct Vk1 vk s nu formeze ciclu pn cnd k=n1 ; Pas 3. Stop. {Vn1 este un graf de n1 muchii i nu are cicluri}.

Demonstrm prin absurd c Vn1 este arborele minim cutat (HenryLabordere, 1995). Fie VVn1 arborele minim i s presupunem c are cele n1 muchii ordonate astfel nct lungimile lor sunt n ordine cresctoare la fel ca i cele ale lui Vn1 i c uk este prima muchie a lui V care nu este n Vn1 .
Vn1 Vn v1 v1 v2 v2 vk1 vk1 vk uk vk+1 uk+1 vp up vn un

l(v1)<l(v2)<< l(vk1) V vk conine un singur ciclu (graful este conex i dac se adaug o muchie el va conine un singur ciclu i numai unul). Acest ciclu conine cel puin o muchie up Vk1 . Din construcia lui Vk , vk nu creeaz un ciclu cu Vk1. Deoarece lista muchiilor lui V este ordonat cresctor dup lungimile muchiilor l(uk)l(up), avem de asemenea l(vk)<l(uk) deoarece vkuk, i atunci l(vk)<l(up). Graful Vvk up are n1 muchii i este fr cicluri deoarece suprimarea lui up nltur singurul ciclu al lui Vvk . Acesta este, aadar, un arbore i lungimea sa este inferioar aceleia a lui V , ceea ce contrazice faptul c VVn1 este arborele de lungime minim. Rezult astfel c Vn1 este arborele minim. Exemplu. Fie G=(X, U, l) un graf conex ponderat neorientat, ca n Figura 2.2, X = 5 i U = 7 . Pe arce sunt trecute ponderile. S se construiasc un arbore de acoperire de lungime (pondere) minim, folosind algoritmul lui Kruskal.

22

Modele i algoritmi de optimizare

16 15 2 17 3

1 16 14 19 18 4 5 14 5 2

1 15 3 10 4 Figura 2.3

10 Figura 2.2

Pas 1. Se consider V1={v1=[3,4]} deoarece l ([3,4]) = min{l (vi )} .


1 i 7

Pas 2. k=2. Se alege din U-V1, v2=[2,5], muchia cu cea mai mic pondere ( l[2,5] = min {l (v)} ) i care adugat la V1 s nu formeze cicluri. Se obine
vU V1

V2={[3,4]; [2,5]}. k=3. Se alege din U-V2, v3=[1,3], muchia cu cea mai mic pondere ( l[1,3] = min { l (v)} ) i care adugat la V2 s nu formeze cicluri. Se obine
vU V2

V3={[3,4]; [2,5]; [1,3]}. k=4. Dintre muchiile rmase cea care are pondere minim i care nu formeaz cicluri prin adugare la V3 este [1,2]. Se obine V4={[3,4]; [2,5]; [1,3]; [1,2]} arborele de lungime minim. Lungimea minim a grafului este Lmin=l([3,4])+ l([2,5])+ l([1,3])+ l([1,2])=10+14+15+16=55 . Algoritmul se ncheie furniznd arborele de acoperire de lungime minim V4 (Figura 2.3) i lungimea minim a arborelui gsit Lmin=55.

2.2.2. Algoritmul lui Prim


Algoritmul lui Prim determin arborele de acoperire de lungime minim ntr-un graf conex ponderat G=(X, U, l) i, spre deosebire de algoritmul lui Kruskal, nu cere ca ponderile a dou muchii diferite s fie diferite. Se noteaz nodurile lui G cu numere de la 1 la n . Sunt folosii trei vectori de dimensiune n astfel: = ( 1 , 2 ,..., n ) , cu componentele

2. Grafuri n optimizare

23

i =

1 dac nodul iniial i este n arbore 0 altfel ,

j dac muchia [i, j ] este n arbore p = ( p1 , p 2 ,..., p n ) , cu componentele pi = 0 pentru nodul iniial l ([i, pi ]) ponderea muchiei [i, pi ] , c = (c1 , c 2 ,..., c n ) , cu componentele ci = pentru nodul iniial 0

pentru i = 1, n .
Algoritmul Prim Pas 1. Se iniializeaz cu 0 cei trei vectori. Se d nodul de start s ( 1 s n ) i s = 1 ; A={ s } arborele parial. Pas 2. Repet Determin muchia [i,j], cu ponderea minim, care are o extremitate n arborele parial, i A i cealalt j X A . Atunci j = 1 , pj=i i

pn cnd i = 1 () i = 1, n . Pas 3. Arborele de acoperire de lungime minim este dat de muchiile [pi,i] , iar lungimea minim este Lmin = ci . Stop!
i =1 n

cj=l([i,j]) .

Algoritmul furnizeaz arborele de acoperire de lungime minim prin nlocuirea muchiilor unui arbore oarecare obinut cu vrfurile grafului G cu muchiile arborelui de lungime minim. Exemplu. S se aplice algoritmul lui Prim grafului din exemplul precedent. Pas 1. s=1; A={1}
nodul

1 1 0 0

2 0 0 0

3 0 0 0

4 0 0 0

5 0 0 0

p c

Pas 2. Iteraia I: min{l([1,2]), l([1,3]), l([1,4])}= l([1,3])=15


nodul

1 1 0 0

2 0 0 0

3 1 1 15

4 0 0 0

5 0 0 0

p c

24

Modele i algoritmi de optimizare

Iteraia a II-a: min{ l([1,2]), l([1,4]), l([3,2]), l([3,4]) , l([3,5]) }= l([3,4])=10


nodul

p c

1 1 0 0

2 0 0 0

3 1 1 15

4 1 3 10

5 0 0 0

Iteraia a III-a: min{ l([1,2]), l([3,2]), l([3,5])}= l([1,2])=16


nodul

p c

1 1 0 0

2 1 1 16

3 1 1 15

4 1 3 10

5 0 0 0

Iteraia a IV-a: min{ l([2,5]), l([3,5]) }= l([2,5])=14


nodul

p c

1 1 0 0

2 1 1 16

3 1 1 15

4 1 3 10

5 1 2 14

i = 1 , i = 1,4 i se trece la pasul urmtor.


Pas 3. Arborele de acoperire de lungime minim este {[1,2]; [2,5]; [1,3]; [3,4]} i are lungimea Lmin=55 . Problema gsirii arborelui de acoperire de lungime minim este rezolvat n Management Scientist de modulul Minimal Spanning Tree (arbore de acoperire de lungime minim). Pentru aplicarea acestui modul exemplului de mai sus se procedeaz astfel. Dup lansarea pachetului de programe se selecteaz modulul Minimal Spanning Tree ca n Figura 2.4.

Figura 2.4

2. Grafuri n optimizare

25

Dup apsarea butonului OK apare o fereastr din care se selecteaz File i, de aici, New. Apar succesiv ferestrele din Figura 2.5 n care se introduc numrul de noduri, numrul de muchii i apoi muchiile i ponderile lor.

Figura 2.5

Pentru rezolvare i afiarea rezultatului se selecteaz Solution i, de aici, Solve. Rezultatele sunt date de Figura 2.6 .

Figura 2.6

2.3. Algoritmul lui Dijkstra


Se pune adesea problema determinrii unui plan de transport printr-o reea rutier (de transport) astfel nct cheltuielile de transport sau duratele de transport s fie minime. Este necesar s se determine drumul cel mai scurt dintre dou noduri oarecare ale reelei rutiere. Acest tip de problem se mai ntlnete i n proiectarea reelelor de calculatoare, n stabilirea traseelor mijloacelor de transport n comun etc. (Henry-Labordere, 1995). Algoritmul lui Dijkstra permite calcularea lungimilor celor mai scurte drumuri de la un vrf s la toate vrfurile x ale unui graf conex G=(X,U,l), dac lungimile tuturor arcelor sunt nenegative.

26

Modele i algoritmi de optimizare

Fie (x) lungimea celui mai scurt drum de la s la x . Fie S mulimea vrfurilor pentru care se calculeaz . Atunci, (x) = {lungimea celui mai scurt drum de la s la x , care are toate vrfurile n S cu excepia lui x }. Se noteaz cu + ( x) = {mulimea arcelor care pornesc din nodul x}, iar cu ( x) = { mulimea arcelor care intr n nodul x}. Dac graful este neorientat + ( x) = ( x) = ( x) = mulimea arcelor incidente n nodul x.
Algoritmul Dijkstra Pas 1. {Iniializri} S :={s} ; s nodul de start, (s) :=0 ; Pentru orice x X S dac x ( s ) atunci (x) :=l(s,x) altfel (x) :=+ ; Pas 2. {Iteraia curent} Repet Determin y X S astfel nct (y) = min (z) ;
zS

def

Dac (y)< atunci S := S { y} ; Pentru z + ( y) (z) :=min {(z), (y)+l(z,y)} ; pn cnd S=X sau (y)=. Pas 3. Stop. Se observ c valorile (z) rmn nemodificate pentru z S , lucru ce poate fi exploatat n transpunerea pe calculator a algoritmului. Exemplu. n Figura 2.7 sunt date 7 localiti numerotate de la 1 la 7 i timpul (n ore) necesar parcurgerii distanei pe arterele care le leag. S se determine ruta pe care se realizeaz timpul minim ntre localitile 1 i 7.
Rezolvare. Se aplic algoritmul Dijkstra grafului reprezentat de Figura 2.7.

4 1 1 2 5 3 4 9

2 2 5 6 7 1 7

Figura

2. Grafuri n optimizare

27

Pas 1. s=1, S={1}, (1) = {2,4} ,


y (y) 1 0 2 1 3 4 4 5 6 7

Pas 2. Iteraia I . { ( y )} = min { ( z )} = min{(2), (3), (4), (5), (6), (7)} = (2) ,
z X S

y=2, S={1,2}, (2) = {1,3,4} . (2)=l([1,2])=1


(3)=min{(3), (2)+l([2,3])}=min{,1+4}=5 (4)=min{(4), (2)+l([2,4])}=min{4,1+2}=3
y (y) 1 0 2 1 3 5 4 3 5 6 7

Iteraia a II-a ( y ) = min { ( z )} = min{(3), (4), (5), (6), (7)} = (4) , y=4,
zX S

S={1,2,4},

(4) = {1,2,3,5,6} . (3)=min{(3), (4)+l([3,4])}=min{5,3+5}=5 (5)=min{(5), (4)+l([4,5])}=min{,3+2}=5 (6)=min{(6), (4)+l([4,6])}=min{,3+9}=12


y (y) 1 0 2 1 3 5 4 3 5 5 6 12 7

Iteraia a III-a {( y )} = min {( z )} = min{(3), (5), (6), (7)} = (3) , y=3, S={1,2,3,4},
zX S

(3) = {2,4,5,6} . (5)=min{(5), (3)+l([3,5])}=min{5,5+2}=5 (6)=min{(6), (3)+l([3,6])}=min{12,5+3}=8


y (y) 1 0 2 1 3 5 4 3 5 5 6 8 7

Iteraia a IV-a {( y)} = min {( z )} = min{(5), (6), (7)} = (5) , y=5, S={1,2,3,4,5},
z X S

(5) = {3,4,6,7} . (6)=min{(6), (5)+l([5,6])}=min{8,5+6}=8 (7)=min{(7), (5)+l([5,7])}=min{,5+7}=12


y (y) 1 0 2 1 3 5 4 3 5 5 6 8 7 12

28

Modele i algoritmi de optimizare

Iteraia a V-a

{( y)} = zmin {( z )} = min{(6), (7)} = (6) , y=6, X S


(6) = {3,4,5,7} . (7)=min{(7), (6)+l([6,7])}=min{12,8+1}=9
y (y) 1 0 2 1 3 5 4 3 5 5

S={1,2,3,4,5,6},

6 8

7 9

Iteraia a VI-a

{( y)} = zmin {( z )} = min{(7)} = (7) , y=7, X S

S={1,2,3,4,5,6,7},

Pentru nodurile din mulimea S ( y ) nu s-au mai evaluat (y). Algoritmul se oprete deoarece S=X. Vectorul (y) conine cele mai mici distane de la nodul 1 la celelalte noduri. Drumul cel mai scurt ntre nodurile 1 i 7 se obine din muchiile (marcate cu litere ngroate) D={[1,2], [2,3]; [3,6]; [6,7]} i este de 9 ore. n Management Scientist modulul Shortest Route determin cel mai scurt drum dintre dou noduri ale reelei i precizeaz muchiile care realizeaz acest drum. Pentru rezolvarea problemei din exemplul precedent cu Management Scientist, dup lansarea sistemului se selecteaz modulul Shortest Route (Figura 2.4) i se introduc datele n ferestrele prezentate n Figurile 2.8. i 2.9 .

Figura 2.8

2. Grafuri n optimizare

29

Figura 2.9

Rezultatele sunt afiate dup selectarea din meniul Solution a opiunii Solve (Figura 2.10).

Figura 2.10

2.4. Metoda PERT

Metoda PERT (Program Evaluation and Review Technique) sau CPM (Critical Path Method metoda drumului critic) este un instrument pentru gestionarea (planificarea i controlul) proiectelor mari cu multe activiti separate care necesit coordonare. n realizarea unui proiect unele activiti trebuie s aib o anume succesiune, altele se defoar n paralel. Tehnica PERT a fost conceput pentru a oferi factorului de decizie un ajutor n planificarea i controlul unui astfel de proiect. Ea permite stabilirea timpului necesar realizrii ntregului proiect, asigurnd controlul evoluiei procesului i atrage atenia asupra acelor ntrzieri n realizarea activitilor care ar determina o ntrziere n realizarea proiectului (Bonini et al, 1997).

30

Modele i algoritmi de optimizare

Sunt necesare dou tipuri de informaii pentru fiecare activitate din proiect: a) succesiunea activitilor care preced o activitate, b) timpul necesar realizrii activitii, care poate fi determinist sau aleatoriu. Diagrama activitilor este reprezentarea grafic a ntregului proiect (graf orientat valuat). Activitile sunt arcele, iar nodurile, momentele de nceput i sfrit ale activitilor. Drumul critic este o mulime de activiti din proiect care are cea mai mare durat de timp asociat. Pentru prezentarea metodei se va considera un exemplu simplu n care duratele activitilor sunt presupuse deterministe i cunoscute. Exemplu. n Tabelul 2.1 sunt trecute activitile unui proiect i duratele lor. Graful corespunztor este dat n Figura 2.11. n acest exemplu, pentru o nelegere mai uoar, se vor nota activitile i duratele lor n noduri, sgeile indicnd succesiunea activitilor.
Talelul 2.1 Activitate Timpul necesar precedent realizrii (n zile), ti Nici una 2 A 3 A 4 B, C 6 Nici una 2 E 8

Activitate A B C D E F

B3

A 2 START

D 6 C 4 STO P

E 2 Figura 2.11

F 8

2. Grafuri n optimizare

31

Sunt posibile doar trei drumuri: l (ABD)=11 zile , l (ACD)=12 zile, l (EF)=10 zile. Drumul critic este cel care are cea mai mare durat, i anume ACD. Lungimea drumului critic determin timpul minim n care proiectul poate fi terminat. Drumul critic este important pentru c arat c: timpul necesar pentru realizarea complet a proiectului nu poate fi redus sub valoarea dat de drumul critic, orice ntrziere n realizarea activitilor de pe drumul critic va produce ntrziere n realizarea proiectului. Pentru reducerea duratei totale a proiectului trebuie reduse duratele activitilor incluse n drumul critic. Aflarea drumului critic O cale de aflare a drumului critic este descris n continuare. Se noteaz cu: DSi momentul cel mai devreme de ncepere a activitii i, DFi momentul cel mai devreme de terminare a activitii i, TSi momentul cel mai trziu de ncepere a activitii i, TFi momentul cel mai trziu de terminare a activitii i. Momentul cel mai devreme de ncepere a unei activiti este cel mai devreme moment posibil la care acea activitate poate s nceap, presupunnd c toate activitile care o preced au nceput la cel mai devreme moment posibil. Momentul cel mai devreme de terminare a unei activiti este suma momentului de nceput cel mai devreme posibil cu timpul necesar realizrii activitii respective. Momentul cel mai trziu de terminare a unei activiti reprezint cel mai trziu moment posibil de terminare a activitii respective fr ntrzierea proiectului, presupunnd c toate activitile sunt desfurate conform planului iniial. Momentul cel mai trziu de ncepere a unei activiti este diferena dintre cel mai trziu moment posibil de terminare a activitii respective i timpul necesar realizrii acestei activiti. Procedeu pentru determinarea momentelor DS , DF , TS i TF 1. Pentru prima activitate se ia DS egal cu zero. Dac se adaug la DS timpul t necesar realizrii primei activiti se obine DF pentru prima activitate. 2. Pentru o activitate oarecare i, care pentru toate activitile care o preced imediat are determinate DS i DF , se ia DSi=max{DFk | activitatea k precede imediat activitatea i} i DFi=DSi+ti, deoarece activitatea i nu poate ncepe pn cnd toate activitile care o preced nu sau terminat. 3. Pentru ultima activitate se ia TF=DF al acestei activiti. Atunci TS=TFtn , tn fiind timpul necesar realizrii ultimei activiti. 4. Pentru o activitate oarecare i, avnd pentru activitile care o succed imediat determinate TS i TF , se ia TFi=min{TSk | activitatea k succede imediat activitatea i} i TSi=TFiti,.

32

Modele i algoritmi de optimizare

Marja, M, a unei activiti reprezint numrul de zile cu care o activitate poate ntrzia fr ca termenul de ncheiere al proiectului s fie afectat. Dup determinarea valorilor DS, DF, TS, TF pentru toate activitile, se pot calcula marjele ca fiind Mi= DSi TSi sau Mi= DFi TFi . Dac proiectul are termenul de finalizare egal cu lungimea drumului critic, atunci orice ntrziere n realizarea unei activiti incluse n drumul critic va cauza ntrziere n finalizarea proiectului. n schimb, activitile care au marja pozitiv pot fi decalate cu un numr de zile egal cu marja, fr ca termenul de finalizare a proiectului s se modifice. Pentru exemplul de mai sus se consider c proiectul dureaz 12 zile i s-a luat TF pentru activitatea D egal cu 12. n Tabelul 2.2 sunt trecute momentele DS, DF, TS, M i TF pentru acest exemplu obinute n urma aplicrii procedeului de mai sus.
Tabelul 2.2 Durata D DF S 2 0 2 3 2 5 4 2 6 6 6 12 2 0 2 8 2 10

Activitate A B C D E F

TS 0 3 2 6 2 4

TF 2 6 6 12 4 12

M 0 1 0 0 2 2

Exemplul de mai sus poate fi rezolvat i cu ajutorul pachetului de programe Management Scientist. Dup lansarea pachetului de programe se selecteaz modulul PERT/CPM (Figura 2.4). Din fereastra care apare se selecteaz File, apoi New i se precizeaz faptul c duratele activitilor sunt deterministe i numrul acestor activiti, ca n Figura 2.12.

Figura 2.12

Se afieaz o fereastr n care se introduc duratele activitilor i activitile care le preced imediat, ca n Figura 2.13. Activitile se codific folosind literele alfabetului n ordine cresctoare. O activitate care precede o alta trebuie s fie deja definit atunci cnd este definit ca preceden.

2. Grafuri n optimizare

33

Figura 2.13

Selectnd Solution, i de aici Solve, se obine soluia sub forma dat de Figura 2.14.

Figura 2.14

Sau obinut aceleai rezultate ca i prin aplicarea procedeului descris mai sus. Analiza numai sub aspectul duratei poate fi completat cu costuri asociate activitilor. De exemplu, durata unei activiti poate fi redus dac se aloc resurse suplimentare. Aceasta implic i costuri suplimentare. Se introduce astfel i o funcie de cost n luarea deciziei.

34

Modele i algoritmi de optimizare

n continuare se consider cazul, mai apropiat de realitate, cnd duratele activitilor sunt aleatoare. Atunci, trebuie s se cunoasc despre aceste variabile aleatoare care sunt densitile lor de probabilitate. n practic se cunosc anumite date despre duratele activitilor, cum ar fi: ai cea mai optimist durat pentru activitatea i, bi cea mai pesimist durat pentru activitatea i, mi cea mai probabil durat pentru activitatea i (modul repartiiei). Repartiia Beta(a,b) ar putea caracteriza aceste durate deoarece este o repartiie continu, unimodal i cu valori n intervalul (a,b). Un estimator pentru 1 valoarea medie a unei variabile aleatoare Beta(a,b) este t = (a + 4m + b ) i 6 1 pentru abaterea medie standard = (b a ) . 6 Pentru exemplul precedent, n Tabelul 2.3, sunt trecute duratele activitilor cele mai optimiste, cele mai pesimiste, cele mai probabile (ca rezultat al experienelor anterioare), estimrile duratelor medii, ale abaterilor medii ptratice i ale dispersiilor. Se caut drumul critic cu duratele activitilor ti i se obine acelai drum critic (duratele medii ti coincid cu duratele activitilor n cazul determinist).
Tabelul 2.3 bi mi ti 3 5 6 8 3 15 2 3 4 6 2 8 2 3 4 6 2 8

Activitate A B C D E F

ai 1 1 2 4 1 1

i
0.33 0.67 0.67 0.67 0.33 2.33

i2
0.11 0.45 0.45 0.45 0.11 5.43

Dac se presupune c duratele activitilor sunt variabile aleatoare independente, atunci dispersia drumului critic ACD este suma dispersiilor activitilor 2 = 0.11 + 0.45 + 0.45 = 1.01 , iar abaterea medie standard componente, adic ACD este ACD = 1.01 = 1.005 . Dac drumul critic conine multe activiti (peste 30) durata total poate fi considerat repartizat normal. Se va considera i n acest caz repartiia duratei drumului critic ca fiind N (12, 1.005) i atunci se poate s se determine probabilitatea ca durata drumului critic s fie mai mic dect o valoare (de exemplu, 14 zile), folosind tabela repartiiei normale standard, astfel: T 14 12 P(T < 14) = F = F = F (2) = 0.977 . 1.005

2. Grafuri n optimizare

35

2.5. Probleme propuse


1. O firm de construcii are antiere n 6 locuri diferite. Transportul zilnic de oameni, utilaje, materiale de la sediu la antiere i invers este destul de costisitor. Reeaua artat n Figura 2.15 prezint strzile i distana dintre antiere i sediul firmei. Nodurile reprezint antierele numerotate de la 1 la 6, iar muchiile, strzile. Numerele de pe muchii reprezint distana n kilometri. Dac se dorete minimizarea distanei dintre sediul firmei i antierul 6, care este drumul care trebuie parcurs i lungimea sa?
17 15 2 6 3 4 10 4 3 5 Figura 2.15 2 6 4 5 7

Sediul firmei (1)

R. Lmin=22 , obinut pe traseul D={[1,3], [3,5], [5,6], [6,7]} .


2. O firm de Internet Cafe trebuie s aib linii speciale pentru legarea calculatoarelor instalate la cele 5 centre ale sale n diferite locuri din ora la serverul central. Deoarece liniile sunt scumpe, proprietarul dorete ca lungimea total a cablurilor folosite s fie minim. n Figura 2.16 sunt prezentate cele 5 centre i serverul central (n noduri), iar muchiile reprezint traseele posibile i lungimile cablurilor ntre server i centrele firmei. S se stabileasc legturile care s conduc la cel mai mic cost (lungimea total a cablurilor s fie minim).
2 4 2 5 4 3 Serverul central (1) 4 2 6 Figura 2.16 4 4 3 3 3 5

R. Arborele

de acoperire

36

Modele i algoritmi de optimizare

de lungime minim este dat de muchiile {[1,2], [1,4], [4,6], [4,3], [4,5]} (Figura 2.17), iar lungimea minim a cablurilor este de Lmin=11.
3

1
3 1 4 2

6 2 2 Figura 2.17

3. Trebuie s se construiasc o autostrad care s treac prin apropierea localitilor notate n Figura 2.18 cu numere de la 1 la 14.
8

3 11 2 5 8 2 1 3 4 6 6 7 4 3 9 4 6 9 5 8 11

9 3

2 9

12 6 8 5 13

4 3 14

7 10

11 Figura 2.18

Costurile (lucrrilor propriu-zise, lucrrilor de art, de expropriere, sociale etc.) sunt trecute pe muchiile acestui graf. S se stabileasc traseul autostrzii care unete localitile 1 i 14 i care s implice costuri minime (Kaufmann, 1967). R. Traseul de cost minim care leag localitatea 1 de localitatea 14 trece prin localitile 1, 3, 5, 9, 12, 14 i cost 19 u. m (uniti monetare).
4. Fie un proiect ale crui date sunt trecute n Tabelul 2.4.
Tabelul 2.4

2. Grafuri n optimizare Activitate A B C D E F Activitate precedent Nici una A Nici una B, C B D, E Timpul necesar realizrii (n zile), ti 5 4 7 3 4 2

37

a) S se traseze diagrama grafului asociat proiectului. b) S se calculeze DS, DF, TS, TF pentru fiecare activitate, presupunnd c DF i TF pentru ultima activitate coincid. c) S se precizeze activitile incluse n drumul critic. R. a) Diagrama grafului asociat este dat n Figura 2.19.

B4 E4

D Figura 2.19

F2

b) n Tabelul 2.5 sunt trecute valorile corespunztoare. Durata proiectului este de 15 zile.
Tabelul 2.5 DS DF 0 5 5 9 0 7 9 12 9 13 13 15

Activitate A B C D E F

TS 0 5 3 10 9 13

TF 5 9 10 13 13 15

c) Drumul critic este format din activitile A, B, E, F.


5. n problema 4 se consider c timpul necesar realizrii activitii C este de 9 zile.

38

Modele i algoritmi de optimizare

a) S se precizeze dac se modific drumul critic n acest caz. b) Dar dac activitii C i sunt necesare 11 zile, se modific drumul critic? R. a) Nu, deoarece activitatea C are o marj de 3 zile, iar creterea duratei este doar de 2 zile. b) Da, i drumul critic este compus din activitile C, D, F i durata proiectului este de 16 zile.
6. Un depozit angro dorete s se modernizeze i s se extind. Activitile necesare sunt trecute n Tabelul 2.6 . S se stabileasc durata minim i care sunt activitile critice ale acestei iniiative.
Tabelul 2.6 Activitate Descriere activitate precedent Proiectul de arhitectur Nici una Identificarea chiriailor poteniali Nici una Dezvoltarea prospectului A Selectarea antreprenorului A Pregtirea autorizaiei de A construcie Obinerea autorizaiei de E construcie Construcia D,F Finalizarea contractelor cu B,C chiriaii Instalarea chiriailor G,H

Activitate A B C D E F G H I

Timpul necesar Realizrii (n sptmni), ti 5 6 4 3 1 4 14 12 2

R. Activitile critice sunt A, E, F, G, I, iar durata minima a iniiativei este de 26 sptmni.


7. Se consider un proiect avnd datele despre activiti trecute n Tabelul 2.7
Tabelul 2.7 Activiti precedent ai e 2 6 A 1 C 1 B 6

Activitate A B C D E

bi 6 10 15 9 10

mi 4 8 5 5 8

unde:
ai cea mai optimist durat pentru activitatea i, bi cea mai pesimist durat pentru activitatea i,

2. Grafuri n optimizare

39

mi cea mai probabil durat pentru activitatea i (modul repartiiei). a) S se calculeze timpul mediu ti i dispersia i2 pentru timpul necesar realizrii fiecrei activiti. b) S se traseze diagrama grafului asociat. Care este lungimea medie a drumului critic? c) Presupunnd c duratele activitilor drumului critic sunt independente i c durata drumului critic este repartizat normal, s se calculeze probabilitatea ca durata drumului ACD s fie mai mic dect 16 zile. d) Care este probabilitatea ca proiectul s se termine n mai puin de 16 zile ?

R. a) Media duratelor i dispersia sunt trecute n Tabelul 2.8.


Tabelul 2.8 Activitate ti i2 A B C D E 4 8 6 5 8 0.44 0.44 5.44 1.78 0.44

b) Diagrama asociat grafului este dat de Figura 2.20

A4

C6

D5

STAR

STO

B8 Figura 2.20

Lungimea drumului critic este 16 zile. c) Pentru drumul ACD lungimea medie este 15 zile, iar dispersia este 0.44+5.44+1.78=7.67 , iar abaterea medie ptratic este 2.77 . 16 15 P(TACD < 16) = F = 0.64 . 2 77 Pentru drumul BE dispersia este de 0.44+0.44=0.88 , iar abaterea medie ptratic este 0.94 .

40

Modele i algoritmi de optimizare

16 15 P (TBE < 16) = F = 0.50. 0,94

2. Grafuri n optimizare

41

d) Probabilitatea ca durata proiectului s fie mai mic de 16 zile este P (T proiect < 16 ) = 0.64 0.50 = 0.32 .
8. Exploatarea unei cariere implic urmtoarele aciuni: construirea drumurilor de acces (A) cumprarea i livrarea utilajelor de excavare pentru nlturarea zonei fertile (B) angajarea de personal: conductori de utilaje i mineri (C) adncirea excavaiei (D) pregtirea minerilor angajai n mineritul de suprafa (E). Restriciile impuse de ordinea aciunilor: excavarea nu poate ncepe dect dac: utilajele au fost livrate; conductorii de utilaje au fost angajai. n Tabelul 2.9 sunt date duratele i condiionrile aciunilor acestui proiect.
Tabelul 2.9 Activitate A B C D E Activitate precedent Nici una Nici una Nici una A, B, C C Timpul necesar realizrii (n luni), ti 10 4 8 5 6

a) S se traseze diagrama grafului asociat proiectului. b) S se calculeze DS, DF, TS, TF i marja pentru fiecare activitate, presupunnd c DF i TF pentru ultima activitate coincid. c) S se precizeze lungimea drumului critic i activitile incluse n drumul critic. R. a) Diagrama este dat de Figura 2.21.

B4

D5

STAR

A1

STO

C8 Figura 2.21

E6

42

Modele i algoritmi de optimizare

b) Valorile cerute sunt coninute n Tabelul 2.10.


Tabelul 2.10. DS DF 0 10 0 4 0 8 10 15 8 8

Activitate A B C D E

TS 0 6 2 10 15

TF 10 10 10 15 15

M 0 6 2 0 7

c) Drumul critic conine activitile A, D i are lungimea 15.


9. O firm productoare de aspiratoare i propune s introduc n fabricaie aspiratoare portabile. Pentru aceasta iniiaz un proiect ale crui activiti i durate sunt trecute n Tabelul 2.11 .
Tabelul 2.11 Activitate Descriere activitate Proiectarea produsului Cercetarea pieei de defacere Stabilirea procesului tehnologic Construirea prototipului Pregtirea brourii cu instruciuni de folosire Estimarea costurilor Testarea prototipului Inspectarea pieei Stabilirea preului i estimarea vnzrilor Raportul final Activitate precedent Nici una Nici una A A A C D B, E H F, G, I Durata realizrii (n sptmni) cea mai cea mai cea mai pesimist probabil optimist 4 1 2 3 2 1.5 1.5 2.5 1.5 1 5 1.5 3 4 3 2 3 3.5 2 2 12 5 4 11 4 2.5 4.5 7.5 2.5 3

A B C D E F G H I J

S se precizeze activitile critice, duratele: cea mai optimist, cea mai probabil i cea mai pesimist de realizare a acestui proiect. R. Activitile critice sunt A, E, H, I, J i duratele cea mai optimist 14.28 , cea mai probabil 17 i cea mai pesimist 19.72 .

3. PROGRAMARE CONVEX

3.1. Mulimi i funcii convexe


n acest capitol sunt prezentate cteva noiuni i rezultate (Fletcher, II, 1981) pe care se bazeaz metodele i algoritmii urmtoarelor trei capitole. Definiia 3.1. O mulime K R n se numete convex dac () [0, 1] , atunci x = (1 )x 0 + x1 K sau, n general: ( )x 0 , x1 ,..., x m K , atunci

( )x 0 , x1 K

(3.1)

x = i x i K ,
i =0

() i [0,1]

i =0

=1

(3.2)

Definiia 3.2. x din Definiia 3.1 se numete combinaia liniar a punctelor x0, x1 etc. Definiia 3.3. Fie x 0 , x1 , ..., x n K . Mulimea punctelor x date de (3.2) se numete nfurtoarea convex a mulimii {x 0 , x1 ,..., x n } . Exemple de mulimi convexe: mulimea format dintr-un singur punct, o dreapt, n un segment de dreapt, un hiperplan (adic x R n ai xi = b ), un semiplan i =1 n (adic x R n ai xi b ), o bil nchis de centru a i raz r, i =1 n 2 Br (a) = x R n x a 2 r = x R n (xi ai ) r , i =1

un con ( C = x R n A x x * 0 , A M m ,n (R ) , x* vrful conului) etc. Lema 3.1. Fie Ki , i=1,2,,m, m mulimi convexe. Atunci K = I K i este tot o
i =1 m

mulime convex.

44

Modele i algoritmi de optimizare

Demonstraie. Fie

Atunci x intersecia lor.

() i = 1, m .

( )x 0 , x1 K ,

atunci rezult c x 0 , x1 K i

pentru

dat de (3.2) este n fiecare mulime Ki , deci i n

Consecina 3.1. Mulimea punctelor admisibile ntr-o problem de programare (1.1) cu restricii liniare este o mulime convex. Definiia 3.4. Fie K R n , o mulime convex. x se numete punct de extrem pentru K dac, avnd x=(1 ) x0+ x1 , x 0 , x1 K i (0, 1) , atunci rezult c x=x0=x1, sau, altfel spus, x nu cade n interiorul nici unui segment din K. Exemple: vrfurile unui poligon regulat, punctele circumferiei unui cerc sunt puncte de extrem pentru poligon, respectiv disc. Definiia 3.5. Fie K R n , o mulime convex i f : K R o funcie continu. Funcia f se numete convex dac ( )x 0 , x1 K are loc relaia f ((1 ) x 0 + x1 ) (1 ) f ( x 0 ) + f ( x1 ) , ( ) [0, 1] . (3.3) Dac f este difereniabil pe K i K este deschis, atunci se poate da urmtoarea definiie a funciei convexe. Definiia 3.5. Funcia f este convex pe K dac ( )x 0 , x1 K are loc relaia f ( x1 ) f ( x 0 ) + ( x1 x 0 )' f ( x 0 ) (3.4) unde cu prim s-a notat transpunerea, iar f este gradientul lui f. Exerciiu. S se demonstreze echivalena Definiiilor 3.5 i 3.5. Corolar 3.1.

( x1 x 0 ) f ( x1 )

f ( x1 ) f ( x 0 ) ( x1 x 0 ) f ( x 0 )

(3.5)

Cu alte cuvinte, panta unei funcii convexe este nedescresctoare de-a lungul oricrei drepte. Definiia 3. 5 . Fie

f : K R , o funcie dublu difereniabil pe K, mulime

deschis i convex n R n. Funcia f este convex dac d 2 f ( x 0 ) este pozitiv semidefinit (Definiia 6.2) pentru ( )x 0 K . Definiia 3.6. Fie K R n , o mulime convex i f : K R o funcie continu. f se numete strict convex dac f ((1 ) x 0 + x1 ) < (1 ) f ( x 0 ) + f ( x1 ) , ( ) (0, 1) , x 0 x1 (3.4)

3. Programare convex

45

Definiia 3.7. Fie K R n , o mulime convex i f : K R o funcie continu. f se numete concav dac f este convex i f se numete strict concav dac f este strict convex. Exemple de funcii convexe: funciile liniare (sunt i concave), funciile ptratice 1 de forma f ( x ) = x ' Cx + c ' x + c 0 , unde C este o matrice pozitiv semidefinit 2 (xCx0 , ). Lema 3.2. Fie K Rn, o mulime convex i funciile convexe

f i : K R , i = 1, m . Dac i 0 , i = 1, m , atunci convex pe K.

f = i f i
i =1

este o funcie

3.2. Extreme condiionate

Problema minimizrii unei funcii convexe f pe o mulime convex K se numete problema de programare convex i se poate scrie sub forma min f ( x ) (3.6) x R = x R n g ( x ) 0 , i = 1, m i unde: f i gi sunt funcii convexe pe Rn .

Lema 3.3. Dac g = (g1 ,..., g n ) este convex pe R n , atunci

R (a) = { x R n g ( x ) a }

este convex. Demonstraie. Fie x1 , x 2 R (a ) i x = (1 ) x 0 + x1 , [0, 1] . convexitatea lui g avem g ( x ) (1 ) g ( x 0 ) + g ( x1 ) (1 ) a + a = a , adic g ( x ) R ( a ) .

Din

Vom nota R (0) = R . Mulimea R se mai numete i domeniul problemei de programare convex (3.6) sau mulimea soluiilor admisibile (regiunea realizabil) pentru problema de programare convex (3.6). Consecina 3.2. Regiunea realizabil R dat de (3.6) este o mulime convex. Definiia 3.8. Fie K R n , o mulime nevid i o funcie f : K R .

46

Modele i algoritmi de optimizare

Punctul x * K este un maxim (minim) global pentru f pe K dac pentru ()x K avem f ( x ) f( x * ) f ( x) f ( x * ) . Punctul x K este un maxim (minim) local sau relativ pentru f dac ()r > 0 astfel nct pentru
*

()x Br ( x* ) = {x R n

x - x* < r K

avem

f ( x ) f( x * ) f ( x ) f ( x * ) . Un minim global (local) pentru problema (3.6) se numete soluie global (local) pentru problema (3.6) .

Teorema 3.1. Orice soluie local x* a unei probleme de programare convex (3.6) este o soluie global i mulimea soluiilor globale, R, este convex. Demonstraie. Fie x* o soluie local pentru problema (3.6), dar nu global. Atunci ()x1 R astfel nct f ( x1 ) < f ( x * ) . Pentru [0, 1] se consider

x = (1 ) x * + x1 R (din convexitatea lui R ). Din convexitatea lui f rezult

f ( x ) (1 ) f ( x * ) + f ( x1 ) = f ( x * ) + f ( x1 ) f ( x * ) < f ( x * ) . Pentru suficient de mic, x se afl n vecintatea lui x i inegalitatea de mai sus contrazice proprietatea de optim local a lui x*. Astfel, soluia local este i global.
*

Pentru a arta c R este convex, se consider x 0 , x1 R i [0, 1] , x = (1 ) x 0 + x1 . Deoarece x0 , x1 sunt soluii globale, au loc relaiile f(x0)=f(x1) i f ( x ) (1 ) f ( x0 ) + f ( x1 ) = f ( x0 ) , adic f ( x ) = f ( x 0 ) i astfel x R , ceea ce arat c R este convex. Corolar 3.2. Dac f este strict convex pe R , atunci orice soluie global este unic. Demonstraie. Fie x 0 x1 R i (0,1) . Atunci
x R i f ( x ) f ( x 0 ) = f ( x1 ) ,

iar din convexitatea strict a lui f avem f ( x ) < (1 ) f ( x 0 ) + f ( x1 ) = f ( x 0 ) = f ( x1 ) i s-a obinut o contradicie. Aadar, nu pot exista dou soluii globale distincte n

R pentru problema (3.6).

3. Programare convex

47

Teorema 3.2. n problema (3.6) dac f i gi, i = 1, m sunt de clas C1(R ) i dac xL ( x * , * ) = 0 , gi ( x* ) = 0 , i E ; g j ( x* ) 0 , j I ; (3.7) j * 0, j I ; i * g i ( x * ) = 0 ; ()i E I unde : L ( x , ) = f ( x ) + i g i ( x ) este funcia lagrangian, E
i

este mulimea

indicilor restriciilor egaliti, I este mulimea indicilor restriciilor inegaliti din (3.7), atunci x* este o soluie global pentru problema (3.6). Demonstraie. Fie x R , x x * . Atunci, deoarece 0 i g ( x ) 0 , f i
* * * g sunt convexe, din ipotez avem c f ( x * ) + * i g i ( x ) = 0 , i g i ( x ) = 0
i =1 m

i, innd cont i de relaia (3.4), avem


* * * f ( x ) f ( x ) + * i g i ( x ) f ( x ) + ( x x ) f ( x ) +
i =1 m

* * + * g i ( x * ) = i gi ( x ) + x x i =1 m * * * * = f ( x * ) + ( x x * ) f ( x ) + i g i ( x ) = f ( x ) . i =1 * * Aadar, f ( x ) f ( x ) i astfel x este soluie global.


m

Definiia 3.9. O restricie inegalitate g i ( x ) 0 se numete activ ntr-un punct admisibil x* dac g i ( x * ) = 0 i inactiv dac g i ( x * ) < 0 . Urmtoarea teorem afirm c optimalitatea unei soluii a problemei de programare convex (3.6) nu se modific dac se nltur restriciile pe care soluia le transform n inegaliti stricte. Teorema 3.3. Dac x* este o soluie a problemei (3.6), atunci x* este i o soluie a problemei restrnse min f ( x ) (3.6) * gi ( x) 0 , i E , unde E * = i E I g i ( x * ) = 0 .
Demonstraie. Presupunem c x* nu este soluie a problemei (3.6), adic ()x R n , soluie a problemei (3.6), astfel nct

Fie x = x + (1 )x , 0 < < 1 . S artm c pentru suficient de mic x


*

g i ( x ) 0 , i E * i f x < f ( x ) , ()x R .

()

(3.8)

este o soluie pentru problema (3.6) mai bun dect x*, adic

f ( x ) < f ( x * ) .

48

Modele i algoritmi de optimizare

Mai nti s artm c x R , adic este un punct admisibil pentru problema (3.6). Din convexitatea funciilor g i , i = 1, m , pentru orice (0, 1) avem g i ( x ) g i x + (1 )g i x * 0 , ()i E * i
j

deoarece g j x 0 , g j x* < 0 , () j E * . Din convexitatea funciei f i din (3.8) rezult (3.9) f ( x ) f x + (1 ) f x * < f x * * Inegalitatea (3.9) este n contradicie cu proprietatea punctului x de a fi soluie optim pentru problema (3.6). Aadar, un astfel de punct x nu exist.

()

() ( ) g ( x ) g (x ) + (1 )g (x ) < 0 , () j E

( )

()

( ) ( )

Convenim ca orice restricie (3.6) cu egalitate, n punctele admisibile este o restricie activ. Restriciile active ntr-un punct admisibil x restrng domeniul de admisibilitate n vecintatea punctului x , n timp ce restriciile inactive nu au influen n vecintatea punctului x . Aadar, n studiul proprietilor unui extrem local atenia se poate concentra numai asupra restriciilor active. Dac s-ar cunoate care restricii sunt active pentru rezolvarea problemei (3.6), soluia ar fi un minim local al problemei obinute din (3.6) prin ignorarea restriciilor inactive i tratarea restriciilor active ca egaliti. Astfel, pentru soluii locale, problema (3.6) poate fi privit numai cu restricii egaliti. Definiia 3.10. Un punct x * K care satisface restriciile g i ( x ) = 0 , i E numete regulat dac vectorii g i ( x ) , i E sunt liniar independeni.
*

se

3.2.1. Cazul restriciilor egaliti


Acest caz reprezint bine cunoscuta problem a extremelor cu legturi (sau extreme condiionate). Teorema 3.4. n problema (3.6) considerm c gi(x)=0, i = 1, m i c f i gi sunt difereniabile, iar matricea jacobian g 1 ( x * ) g 1 ( x * ) L x n x1 J = O g ( x * ) * g m ( x ) m L x x n 1

3. Programare convex

49

are n x* rangul m , x* fiind un punct regulat care realizeaz un minim local. Atunci exist numerele

m R ,

asfel nct

* f ( x * ) + * i g i ( x ) = 0 .

i =1

Numerele 1 ,..., m se numesc multiplicatorii lui Lagrange.

3.2.2. Cazul restriciilor inegaliti


Un rol esenial n rezolvarea problemei (3.6) cu I l au condiiile KuhnTucker. Pentru demonstrarea condiiilor Kuhn-Tucker (cunoscute i sub denumirea de condiii optimale de ordinul I) avem nevoie de lema Farkas-Minkowski a crei demonstraie o omitem (Henry-Labordere, 1995). Lema 3.4. (Farkas-Minkowski) Fie A M m,n (R ) , rang ( A) = m i presupunem c ()x R m Ax 0 i c x 0 . Atunci exist multiplicatorii i 0 , i = 1, n forma c = A t , unde = (1 ,2 ,..., n ) . astfel nct vectorul c se scrie sub

Definiia 3.11. Fie un punct x * R de extrem local (global) pentru problema x , x ( k ) x = (k) s ( k ) , iar (3.6) i un ir x ( k ) k 1 R astfel nct x ( k ) k

( )

( )

s ( k ) = 1 , ( k ) > 0 . Vectorul (realizabil) n x * .

s = lim s ( k )
k

se numete direcie admisibil

Ca={sRn s este direcie admisibil n x*} conul direciilor admisibile n x * , i C t = s R n s g i ( x * ) 0 , i E *

Notm

conul tangent n x * la R. Ipoteza de calificare a restriciilor ntr-un punct de extrem este dat de relaia (3.10) Ca = Ct . Se poate demonstra urmtoarea propoziie (Fletcher, 1981). Propoziia 3.1. Ipoteza de calificare a restriciilor (3.10) are loc dac : i) restriciile cu indicele i E * sunt liniar independente, sau ii) vectorii g i ( x * ) , i E * sunt liniar independeni.

50

Modele i algoritmi de optimizare

Considerm c : E , I i E+I=mn , x* punct admisibil d un minim local, f, gi sunt difereniabile i vectorii g i ( x * ) , i E g j ( x * ) g j ( x * ) = b j , j I

} {

} sunt independeni.

Teorema 3.5. (Condiiile Kuhn-Tucker) n ipotezele de mai sus, condiia necesar i suficient pentru ca x* s fie o soluie a problemei (3.6) este s existe multiplicatorii i R + , i = 1, m , astfel nct (i) g ( x * ) g ( x * ) f ( x * ) + k k + k k = 0 , ()i = 1, n xi xi xi kE kI (ii) k g k ( x * ) bk = 0 , ()k I

Demonstraie. Condiiile Kuhn-Tucker sunt necesare. Din ipoteza de calificare a restriciilor n x* rezult c sg i ( x* ) 0 , i E i deoarece pentru ()s C a avem f ( x ( k ) ) = f ( x * ) + ( k ) s ( k ) f ( x * ) + O ( ( k ) ) , ()x ( k ) Br ( x * ) . Dar f ( x ( k ) ) f ( x * ) ( k ) s ( k ) f ( x * ) + O ( ( k ) ) 0 .

mprim relaia de mai sus la ( k ) > 0 i trecem la limit pentru k i obinem c sf ( x * ) 0 . n Lema Farkas-Minkowski, nlocuind x cu s i A cu gE ( x * ) , rezult c () E 0 , astfel nct

f ( x* ) = E gE ( x* ) , unde

gE ( x * ) este matricea care are ca linii g i ( x* ) , i E . Considerm vectorul = [E ,0 ] R n i f ( x* ) = g ( x* ) cu proprietatea c g ( x* ) = 0 , egalitate evident, deoarece g i ( x * ) = 0 , i E * , j = 0 , ( ) j I E * .
Condiiile Kuhn-Tucker sunt suficiente. n Teorema 3.2 se consider b=0 i rezult c x* este soluia problemei (3.6) . Se observ c pentru suficiena condiiilor Kuhn-Tucker nu mai este necesar ipoteza calificrii restriciilor. n capitolele 4, 5 i 6 funciile obiectiv sunt cazuri particulare de funcii convexe, iar restriciile sunt liniare, deci convexe. Algoritmii prezentai n aceste capitole se bazeaz pe particularitile fiecrui tip de problem.

4. PROGRAMARE LINIAR

4.1. Exemple de probleme de programare liniar 4.1.1. Utilizarea optim a resurselor


Un manager de agent economic trebuie s rezolve destul de des urmtoarea problem (Zidroiu, 1983): Resursele pe care le are la dispoziie (materie prim, for de munc, mainiunelte, resurse financiare etc.) sunt n cantiti limitate. Fie i numrul de ordine al resursei i fie bi cantitatea disponibil din resursa i. Cu ajutorul acestor resurse se pot desfura mai multe activiti (de exemplu: procese de producie). Fie j numrul de ordine al activitii desfurate i fie xj nivelul (necunoscut) la care trebuie s se desfoare aceast activitate. De exemplu, pentru procesul de producie j, care const n fabricarea unui anumit produs, se noteaz cu xj cantitatea ce va fi produs. Fie aij cantitatea din resursa i necesar producerii unei uniti din produsul j. Se presupune c ai j nu depinde dect de tipul resursei (i) i de tipul produsului realizat (j) i nu de cantitile produse, ceea ce constituie evident o simplificare a situaiei reale. Cu aceste notaii se pot determina mrimile urmtoare: cantitatea din resursa i folosit pentru producerea cantitii xj, care este aij xj; cantitatea total din resursa i folosit pentru producia total format din n produse: ai1 x1+ai2 x2+...+ain xn . Deoarece nu se poate consuma din resursa i mai mult dect cantitatea de care se dispune, trebuie s fie respectate condiiile: ai1 x1+ai2 x2+...+ain xn bi , () 1 i m, sau

a
j =1

ij

x j bi , i{1, 2,..., m}.

(4.1)

xj reprezentnd cantitatea ce trebuie produs din sortimentul j, ea nu poate fi un numr negativ: (4.2) xj 0, j{1, 2,..., m}. Inecuaiile (4.1) se numesc restriciile problemei, iar (4.2), condiiile de nenegativitate.

52

Modele i algoritmi de optimizare

Sistemul de inecuaii liniare (4.1) i (4.2) poate avea o infinitate de soluii, o soluie sau nici una. Pentru problemele corect puse, cel mai frecvent este cazul cu o infinitate de soluii. Adoptarea unei variante de plan (luarea unei decizii) se face pe baza unui criteriu economic, ca de exemplu venitul sau profitul s fie maxim. Dac se noteaz cu cj preul de vnzare al unei uniti din produsul j i cu dj costul unitar pentru acelai produs (se presupune, pentru simplificarea problemei, c att preul de vnzare ct i costul nu depind de cantitatea produs, ceea ce nu prea este n concordan cu realitatea), atunci venitul total va fi: cheltuielile de producie

c
j =1

x j , iar

d
j =1

j n

x j , i deci profitul obinut va fi:


n

c
j =1

j x j d j x j = (c j d j )x j j =1 j =1

(4.3)

Problema care se pune acum este de a determina acea variant de plan, adic acea soluie a sistemului de inegaliti (4.1), (4.2) care d pentru profitul (4.3) valoarea maxim. n acest moment, din acea problem economic s-a obinut urmtoarea problem matematic: n max (c j d j ) x j n j =1 (4.4) a ij x j bi j =1 x j 0 Aceasta este o problem de programare liniar, sau program liniar.

4.1.2. Problema de transport


Se consider c exist m centre de aprovizionare (depozite) i n centre de consum (puncte de lucru, uzine, magazine etc.). Se pune problema s se determine un plan de transport pentru un produs omogen care se afl n cantitatea ai la depozitul i (1 i m) i este cerut n cantitatea bj la centrul j (1 j n). Se noteaz cu xij cantitatea necunoscut ce va fi transportat de la depozitul i la centrul de consum j i cu cij costul transportului unei uniti din produsul considerat de la depozitul i la centrul j (pentru simplificare se presupune c acest cost unitar nu depinde de cantitatea transportat pe ruta respectiv). Se pot exprima atunci urmtoarele mrimi: cantitatea cerut de la depozitul i la toate cele n centre de consum (4.5) ai = xi1 + xi2 + ... + xin = cantitatea aflat la depozitul i, cantitatea transportat de la toate cele m depozite la centrul de consum j

4. Programare liniar

53

bj = x1j + x2j + ...+ xmj = necesarul la centrul de consum j, (4.6) costul transportului de la depozitul i la centrul de consum j este cijxij. O condiie evident este (4.7) xij 0, 1 i m, 1 j n . Costul total al transportului de la toate cele m depozite la toate cele n centre de consum este

c
i =1 j =1 m i

ij

xij .

Pentru a putea efectua transportul este necesar ca

a = b
i =1 j =1

egalitate numit i condiia de balansare sau de echilibru. Sistemul de ecuaii (4.5), (4.6) are o infinitate de soluii. Dintre acestea trebuie alese cele care dau costului total de transport valoarea minim. Se obine astfel un program liniar: min c ij x ij
i =1 j =1 m n

(4.8) (4.9) (4.10) (4.11)

x
j =1

ij

= ai , 1 i m

x
i =1

ij

= bj , 1 j n

xij 0, 1 i m, 1 j n, care se numete program de transport.

Programe liniare de acelai tip pot s apar i n urmtoarea situaie. Trebuie aprovizionat un grup de uzine dirijate de un centru comun, avnd la dispoziie m centre de aprovizionare, n puncte de consum i se cere determinarea unui plan de transport (xij), 1 i m, 1 j n, care s minimizeze cheltuielile totale de transport: min c ij x ij ,
i =1 j =1 m n

(4.12)

n condiiile

x
j =1

ij

ai , 1 i m

(4.13) (4.14) (4.15)

x
i =1

ij

bj , 1 j n
1 j n,

xij 0,

1im,

54

Modele i algoritmi de optimizare

unde ai , 1 i m, sunt capacitile centrelor de depozitare, bj , 1 j n, sunt cantitile necesare uzinelor, iar cij este costul unitar de transport de la depozitul i la uzina j. Pentru a avea soluii trebuie ca

a b
i =1 i j =1

Problema se poate pune i invers, considernd problema unui plan de transport de la mai multe uzine i la punctele de desfacere j. Dac ai , 1 i m, reprezint acum capacitile de producie ale uzinelor, bj , 1 j n, capacitile de depozitare ale punctelor de desfacere, se obine un model similar n care grupurile de inecuaii (4.13), (4.14) i schimb sensul.

4.1.3. Alocarea optim a fondurilor financiare


Avnd la dispoziie o sum total S care poate fi investit n diverse activiti j, 1 j n, fiecare producnd un anumit profit unitar aj , 1 j n, se pune problema determinrii sumei xj , 1 j n, investit pentru activitatea j, astfel nct s se obin un profit maxim, adic: max a j x j
j =1 n

(4.16)

n condiiile:

x
j =1

=S

(4.17) (4.18)

xj 0,

1jn.

Problema mai poate fi complicat dnd anumite reguli suplimentare n legtur cu posibilitatea de investiie, cu existena unui risc al investiiilor i neliniaritatea profitului total.

4.1.4. Gestionarea optim a unui depozit


S considerm problema funcionrii unui depozit care cumpr i vinde un anumit produs cu scopul maximizrii profitului pe o anumit durat de timp. Depozitul are o anumit capacitate fix S i un cost unitar de stocare h . Preul produsului fluctueaz de-a lungul perioadei de analiz, dar pe durata unei uniti de timp preul de achiziie i preul de vnzare sunt aceleai. Depozitul este iniial gol i trebuie s rmn gol la sfritul perioadei de analiz. Modelarea problemei. Fie

4. Programare liniar

55

xi di bi pi

stocul din depozit la nceputul perioadei i, cantitatea achiziionat n perioada i, cantitatea vndut n perioada i i preul pe perioada i. Dac sunt n intervale de timp avem:

max ( pi bi hxi )
i =1

xi +1 = xi + d i bi , i = 1, n 1 xn + d n bn = 0 xi + d i S x = 0 , x , d , b 0 i i i 1
Se obine astfel o problem de programare liniar.

(4.19)

4.1.5. Problema dietei


Se presupune c exist n alimente diferite, cu preul unitar ci pentru alimentul i, din care trebuie s se pregteac o diet. Dieta trebuie s conin zilnic m ingrediente nutritive i din fiecare ingredient j, minimum bj uniti. Se presupune c o unitate din alimentul i conine aji uniti din ingredientul j. S se determine cea mai economic diet care satisface minimul nutriional cerut. Modelarea problemei Se noteaz cu xi numrul de uniti din alimentul i coninut n diet. Trebuie minimizat costul total al dietei min {c1x1+ c2x2+...+ cnxn} supus la restriciile urmtoare date de coninutul n ingrediente nutriionale b1 a11 x1 + a12 x 2 + ... + a1n x n a x + a x + ... + a x b2 22 2 2n n 21 1 M M a x + a x + ... + a x b m2 2 mn n m m1 1 x i 0 , i = 1, n Problema care a rezultat este tot o problem de programare liniar. Acelai tip de problem poate aprea n realizarea amestecurilor de tip mortar, beton etc.

56

Modele i algoritmi de optimizare

4.2. Diferite forme ale problemelor de programare liniar


Scris matriceal, cea mai general problem de programare liniar are forma (Zidroiu, 1983) 2 x1 + c 3 min [ c1 2 x + c3 x ]
A11 x 1 + A12 x 2 + A13 x 3 b1 1 2 3 (4.20) A21 x + A22 x + A23 x = b2 1 2 3 A x + A x + A x b 32 33 3 31 1 2 3 x 0, x oarecare, x 0 unde x1 este vectorul variabilelor asupra crora se impun condiii de nenegativitate, x2 vectorul variabilelor asupra crora nu se impun condiii de semn, x3 vectorul variabilelor asupra crora se impun condiii de nepozitivitate, Aij submatrice a matricei A , ale crei elemente sunt coeficienii componentelor vectorului xj , iar bi sunt subvectori ai vectorului b (1 i, j 3) . Prin x 0 se va nelege c fiecare component a vectorului x este nenegativ. Se spune c o problem are forma standard dac toate restriciile sunt ecuaii i tuturor variabilelor li se impun condiii de nenegativitate min(max)c x Ax = b x 0 (4.21)

cx = ci xi
i =1

Se spune c o problem are forma canonic dac toate restriciile sunt inegaliti de acelai sens i tuturor variabilelor li se impun condiii de nenegativitate min c x (4.22) Ax b x 0 max c x Ax b x 0

(4.22)

Observaia 4.1. Orice problem de forma (4.20) poate fi adus la forma standard (4.21) sau forma canonic (4.22) folosind urmtoarele transformri: i) transformarea maximului n minim i invers se bazeaz pe urmtoarea egalitate: max f ( x ) = min{ f ( x )} ii) transformarea sensului unei inegaliti se realizeaz prin nmulirea cu 1
xX xX

4. Programare liniar

57

iii) o variabil x creia nu i se impun condiii de semn se nlocuiete cu diferena a dou variabile nenegative x = x1x2 , x1 0 , x2 0 iv) o variabil x 0 se nlocuiete cu o variabil nenegativ x v) transformarea ecuaiilor n inecuaii a x b a x = b a x b vi) transformarea inecuaiilor n ecuaii a'x b se poate scrie ca o ecuaie a'x+y=b, introducnd o variabil y 0 numit variabil ecart; a'x b se poate scrie ca o ecuaie a' x y=b, y 0. Variabilele ecart nu apar n funcia obiectiv (sau apar cu coeficieni nuli).

4.3. Algoritmul simplex


Acest algoritm (datorat lui G. B. Dantzig, 1951) se aplic problemelor de programare liniar sub forma standard. Sunt necesare cteva noiuni de baz pentru prezentarea algoritmului (Zidroiu, 1983). Fie sistemul de ecuaii Ax = b, AMm,n(R), rang A = m. Fie BMm,n(R) o matrice ptratic nesingular extras din A i notm xB vectorul variabilelor corespunztoare coloanelor lui B. Notm cu S partea din matricea A care mai rmne i cu xS variabilele corespunztoare. Sistemul Ax = b devine: B [BS ] x S = b sau BxB + SxS = b. (4.23) x Astfel, n (4.23) lum xB variabile principale i celelalte xS , variabile secundare i avem (4.24) xB = B1bB1S xS . Anulnd variabilele secundare avem (4.25) xB = B1b , xS=0. O astfel de soluie se numete soluie de baz (deoarece B fiind nesingular, coloanele sale constituie o baz n R m). Variabilele principale se numesc variabile de baz. Se numete soluie nedegenerat o soluie de baz care are exact m componente nenule. Se numete soluie degenerat o soluie de baz care are i componente nule. Se numete soluie admisibil sau program o soluie a sistemului de ecuaii i inecuaii (4.1) ce verific i condiia de nenegativitate (4.2). Notm R = {x R n x program}, z* = min{c'xx Rn } .

58

Modele i algoritmi de optimizare

Convenim s punem z* = + dac R = . Dac z* = , spunem c problema are optim infinit. Dac z* este finit, atunci x* R cu proprietatea c z* = c' x* se numete soluie optim sau program optim. Notm cu R * mulimea soluiilor optime. Soluia de baz a problemei de programare liniar sub forma standard se numete program de baz (x = 0 este program de baz dac x=0 este program). Teorema fundamental a programrii liniare st la baza algoritmului simplex (Luenberger, 1989). Teorema 4.1. (i) Dac problema de programare liniar sub forma standard (4.21) are un program, atunci are cel puin un program de baz. (ii) Dac problema de programare liniar sub forma standard (4.21) are un program optim, atunci are i un program de baz optim. Demonstraie. (i) Se noteaz coloanele matricei A cu a1, a2, , an i se presupune c x=(x1, x2, , xn) este o soluie admisibil i atunci are loc relaia x1a1+x2a2++xnan=b. Se presupune c exact p m dintre variabilele xi sunt diferite de zero i c acestea sunt chiar primele. Atunci (4.26) x1a1+x2a2++xpap=b. Coloanele a1, a2, , ap pot fi liniar independente sau liniar dependente. Cazul I. Presupunem c a1, a2, , ap sunt liniar independente. Dac p=m atunci soluia este de baz i demonstraia se ncheie. Dac p<m , atunci, deoarece A are rangul m, se pot gsi mp coloane din cele np rmase, astfel nct cele m coloane s fie liniar independente. Atribuim valoarea zero variabilelor corespunztoare celor mp componente i obinem o soluie de baz degenerat. Cazul II. Presupunem c a1, a2, , ap sunt liniar dependente. Atunci exist o combinaie liniar a acestor vectori egal cu zero (4.27) y1a1+y2a2++ypap=0 n care cel puin o constant yi este pozitiv. Scdem din relaia (4.26) relaia (4.27) nmulit cu i avem (4.28) (x1y1)a1+(x2y2)a2++(xpyp)ap=b Notnd cu y=(y1, y2,,yp, 0, 0,,0) observm c pentru orice (4.29) xy este o soluie a sistemului de ecuaii Ax=b. Pentru =0 aceasta se reduce la soluia iniial admisibil. Deoarece am presupus c mcar o component yi este pozitiv, atunci cel puin o component va deveni zero o dat cu creterea lui . Alegem x = min i y i > 0 . yi Pentru orice valoare soluia dat de (4.29) este admisibil i are cel mult p1 componente pozitive. Repetnd acest proces dac este necesar, putem elimina

4. Programare liniar

59

componentele pozitive pn cnd avem o soluie admisibil corespunztoare coloanelor care sunt liniar independente. Am ajuns n cazul I i se poate aplica acesta n continuare. (ii) Fie x=(x1, x2, , xn) o soluie admisibil optimal care are exact p componente pozitive x1, x2, , xp . Din nou pot fi dou cazuri: coloanele corespunztoare componentelor nenule pot fi liniar independente sau liniar dependente. Cazul I. Coloanele sunt liniar independente. Este exact ca i la (i). Cazul II. Coloanele sunt liniar dependente. Este ca i n cazul II de la (i) numai c trebuie s artm c pentru orice soluia dat de (4.29) este optimal. Pentru aceast soluie, valoarea funciei obiectiv este (4.30) cxcy Pentru suficient de mic, xy este o soluie admisibil pentru valori pozitive sau negative ale lui . Astfel putem concluziona c cy=0. Dac cy0 se poate determina un mic i semnul acestuia, astfel nct (4.30) s conduc la o valoare mai mic pentru funcia obiectiv. Contradicie cu faptul c x este soluie optimal i astfel trebuie s presupunem c cy=0. Avnd stabilit c noua soluie admisibil cu mai puine componente pozitive este optimal, restul demonstraiei este ca la (i).

4.4. Fundamentele algoritmului simplex


Din Teorema 4.1 rezult c putem determina soluia problemei de programare liniar sub forma standard astfel: pentru toate bazele B din matricea A (acestea sunt, evident, n numr finit), calculm soluia de baz corespunztoare B 1 b , reinem dintre acestea doar pe acelea care sunt programe de baz (B1b 0) i alegem pe aceea care d funciei obiectiv valoarea optim (cea mai mic sau cea mai mare). Dezavantajul ce apare const n volumul mare de calcule, chiar i atunci cnd problemele sunt de dimensiuni mici. Algoritmul simplex d o metod de explorare sistematic i economic a programelor de baz, mai precis de trecere de la un program de baz la altul care d funciei obiectiv o valoare mai mare sau mai mic, dup cum problema este de maximizare sau minimizare. De asemenea, algoritmul furnizeaz criterii pentru cazurile n care problema de programare liniar nu are programe sau are optim infinit. Astfel, dac B este o baz (s presupunem c B1b 0), sistemul Ax=b se poate scrie (Zidroiu, 1983) xB=B1bB1SxS sau

60

Modele i algoritmi de optimizare

xB = x yB j xj
B jS

(4.31)

sau pe componente
B xiB = xiB y ij x j , i B, jS

(4.31) (4.32) (4.33)

unde x B = B 1 b
1 yB j = B aj

iar: aj este coloana j a matricei A , S={indicii variabilelor secundare}, B={indicii variabilelor de baz}.
1 Observaie 4.2. Pentru j B, y B j = B a j = e j , ej fiind vectorul unitate.

Folosind (4.31), putem exprima funcia obiectiv cu ajutorul variabilelor secundare xS astfel
n B B B = ci xiB z = c j x j = c j x j + ci x y x c y c i ij j i ij j x j j =1 jS iB jS jS iB iB

sau z = z B zB j cj xj ,
jS

(4.34)

unde
B z B = ci xiB = c , B x iB

(4.35)

B zB j = c i y ij = c B y j , iB

(4.36)

j = ( z j c j )

sunt numii coeficieni de cost redus sau coeficieni de cost

relativ. Pentru simplificarea scrierii renunm la indicele superior B, nelegndu-se c este vorba de elementele corespunztoare bazei. La baza algoritmului simplex stau urmtoarele observaii ce rezult din teoremele prezentate n continuare (Zidroiu, 1983). Teorema 4.2. Dac zjcj 0, () j S, atunci programul de baz corespunztor bazei B, (xB=B1b, xS =0) este optim.

4. Programare liniar

61

Demonstraie. Pentru acest program valoarea funciei obiectiv este z B . Pentru orice alt program x , deoarece xj0 rezult c zB j ci x j 0

jS

i atunci z > z B .

Teorema 4.3. Dac ()k S cu zkck > 0, atunci programul asociat bazei B nu este optim (cu excepia cazului n care programul este degenerat) i poate fi mbuntit dac xk ia valori pozitive. Demonstraie. Dac exist k S cu proprietatea c zkck>0, atunci programul asociat bazei B nu este optim B zB j c i x j > 0 , iar z < z

jS

(cu excepia cazului n care programul este degenerat) i poate fi mbuntit dac xk>0. Teorema 4.4. Dac ()k S , cu zkck > 0, i dac yik 0, pentru () iB, atunci problema are optim infinit. Demonstraie. Dac yik 0 () iB atunci xiB = xiB y ik x k , ( xj=0 pentru jS {k}), iar creterea lui xk nu face negativ nici o component de baz. Atunci z = z B ( z k c k ) x k xk Teorema 4.5. Dac zkck > 0, dar () yik > 0, atunci xk poate crete pn la valoarea: x x min i = l , (4.37) i yik > 0 y y lk ik ~ pentru care se obine un nou program de baz, asociat bazei B , dedus din B prin nlocuirea coloanei al cu coloana ak. Demonstraie. Dac yik > 0 ()iB, atunci pentru a pstra xi 0 , tiind c x i = x i y ik x k 0 , x atunci x k i , ()i B cu proprietatea c yik > 0 . Atunci creterea maxim a y ik lui xk este dat de (4.37). Observaia 4.3. Dac exist mai muli indici k pentru care zkck > 0, ar fi preferabil s se aleag acela pentru care xl (z k c k ) y lk

62

Modele i algoritmi de optimizare

are cea mai mare valoare, ceea ce asigur, n general, o scdere mai rapid a funciei obiectiv i d un numr mai mic de iteraii (o iteraie reprezint o trecere de la un program de baz la altul). Practic, se ia drept criteriu de alegere a lui k , acel k pentru care zkck=maxim. Acest criteriu se mai numete i criteriu de intrare n baz. Criteriul dat de (4.37) reprezint criteriul de ieire din baz.

4.5. Enunul algoritmului simplex


Fie problema de programare liniar sub forma standard (4.21). Pentru aceast problem algoritmul simplex are urmtorul enun. Pas 0. Se determin o baz B n matricea A, se calculeaz x B = B 1 b , B B 1 B z B = c B x , y j = B a j (aj coloanele din A), z j cj, 1 j n. Pas 1. a) Criteriu de intrare n baz 1) dac toi z B j cj 0, jB, programul este optim. Stop. 2) dac () z B j cj > 0, se determin k astfel nct: zkck= max{zjcj}. b) Criteriu de ieire din baz 1) dac toi yik 0, problema are optim infinit. 2) dac () yik > 0, se determin l astfel nct: x xl = min i . i y > 0 ik y lk y ik Pas 2. Se nlocuiete n baza B vectorul al cu vectorul ak , obinndu-se baza ~ ~ ~ ~ ~ B , i se calculeaz x B , z B , y B 1 j n, z B 1 j n, j cj , j ,
conform cu (4.31), (4.34), (4.33) apoi se trece la pasul 1, nlocuind baza B ~ cu baza B . Observaia 4.4. Pentru o problem de maximizare: max c x Ax = b x 0 trebuie modificat criteriul de intrare n baz astfel: a'1) dac toi zjcj 0, programul este optim. a'2) dac ()j pentru care zjcj < 0, se determin k astfel nct zkck= min{zjcj}.

4. Programare liniar

63

4.6. Tabelul simplex i transformarea sa

Presupunem c pentru o baz B am calculat x i , z , zjcj, yij i le dispunem ntr-un tabel numit tabel simplex (Tabelul 4.1). Presupunem c baza B este format din primele m coloane ale matricei A. Prima coloan (CVB) conine coeficienii din funcia obiectiv ai variabilelor de baz. A doua coloan (VB) conine variabilele de baz. A treia coloan (VVB) conine valorile variabilelor de baz, ultima linie fiind valoarea funciei obiectiv pentru programul de baz corespunztor bazei B, adic zB. Coloanele urmtoare conin vectorii y B (avnd grij ca pentru variabilele de j
baz y B j =ej), iar ultima linie conine diferenele zjcj= c B yicj.

Observaia 4.5. Pentru variabilele de baz, zjcj= c B ejcj=cjcj=0. Pentru calculul elementelor
zB j cj i

zB

ale primului tablou este util s

trecem coeficienii cj din funcia obiectiv n partea de sus a coloanelor respective. S presupunem c ak trebuie s intre n baz n locul lui al. Elementul ylk se numete pivot i l evideniem ncercuindu-l. Pentru fiecare baz se alctuiete cte un tabel simplex (Tabelul 4.1). Cum se calculeaz elementele noului tablou corespunztor noii baze ? Elementele liniei k se mpart la pivot ~ ~ y lj x B x kB = l ; y kj = y lk y lk

(4.38)

Elementele celorlalte linii se calculeaz cu regula dreptunghiului cu diagonala principal cea a pivotului. ~ ~ y lj x B (i l ) x iB = x i y ik l (i l ) ; y ij = y ij y ik (4.39) y lk y lk Modificarea funciei obiectiv se face dup formulele de mai jos. ~ ~ y lj x z B = z B (z k c k ) l ; z B j c j = (z j c j ) ( z k c k ) y lk y lk

(4.40)

64 Tabelul 4.1

Modele i algoritmi de optimizare

Coeficienii funciei obiectiv c1 CVB VB VVB x1 cl xl cm xm cm+1 xm+1 ck xk cn xn alegem min xi y ik

Coeficienii variabilelor de baz n funcia obiectiv

c1

x1

x1

...

...

y1,m+1

... y1,k ...

y1,n

M
cl

M
xl

M
xl

M
0 ...

M
1 ...

M
0

M
yl,m+1

M
... yl,k ...

M
yl,n

M
cm

M
xm

M
xm

M
0 ...

M
0 ...

M
1

M
ym,m+1

M
... ym,k ...

M
ym,n alegem max

valoarea funciei obiectiv

0 zm+1cm+1

zjcj>0

n noul tabel n loc de xl este trecut xk n coloana VB. ~ ~ Deoarece xk este variabil de baz, y kB = e k , z kB c k = 0 , aa cum rezult i din (4.39) i (4.40). n problemele practice m, numrul liniilor matricei A, este mult mai mic dect n, numrul coloanelor, i atunci efortul de calcul trebuie redus la coloanele care sunt necesare n gsirea soluiei optime. n algoritmul simplex revizuit se fac calcule doar pentru elementele tabloului strict necesare. O variant a algoritmului simplex revizuit se bazeaz pe reprezentarea inversei matricei de baz B ca un produs de matrice elementare E (Luenberger, 1989), obinute din matricea unitate, care au elementele coloanei p date de relaiile: y 1 , vi = ik , i l i v l = yl k yl k yl k fiind pivotul. nmulirea lui E la dreapta cu orice coloan a tabelului simplex este echivalent cu aplicarea regulii dreptunghiului. Dac baza iniial n algoritmul simplex este cea canonic (B=In), atunci la iteraia a p-a, inversa matricei B este B 1 = E p E p 1 ...E 2 E1 , unde Ep este o matrice elementar de forma dat mai jos

4. Programare liniar

65

0 L 0 1 0 L 0 v1 0 L 0 0 1 L 0 v2 L L L L L L L L 0 0 L 1 v l 1 0 L L E = . 0 L 0 0 0 L 0 vl 0 0 L 0 v l +1 1 L 0 L L L L L 0 L 0 0 0 L L v 0 L 1 m ~ Astfel, yk coloana a k-a din noua baz B va fi calculat direct cu formula yk=(Ep.Ep-1E1ak) .

4.7. Exemplu
S-a observat c n fiecare lun, mainile M1, M2, M3 , ce lucreaz ntr-o secie a unei ntreprinderi, nu sunt folosite 8 ore, 24 de ore i respectiv 18 ore (Vduva et al, I, 1974). Se ia hotrrea s se foloseasc i acest timp, punndu-le s lucreze la fabricarea a 2 produse suplimentare, P1 i P2 , ca produse anexe ale seciei, care aduc un profit la unitatea de produs fabricat de 4 i respectiv 3 u. m. Timpul necesar de lucru la fiecare main este, pe fiecare produs, dat de Tabelul 4.2.
Tabelul 4.2 Maina P1 M1 2 M2 3 M3 1 P2 1 2 3

S se determine planul de producie al seciei pentru produsele P1 i P2 care s dea un profit maxim. Rezolvare a) Modelarea problemei. Fie x1, x2 cantitile din produsele P1 i P2 ce trebuie fabricate. Formularea matematic a problemei este max z = 4 x1 + 3 x 2 max z = max{4 x1 + 3x2 } 2 x + x + x = 8 3 x + 2 x 24 1 2 3 1 2 sau 3 2 x x x + + x x 3 18 + 1 1 2 4 = 24 2 x + 3 x + x = 18 x , x 0 2 5 1 1 2 xi 0, i 1,5 2 x1 + x2 8 dup adugarea variabilele de compensare

66

Modele i algoritmi de optimizare

b) Tabelul simplex i calculele aferente Calculele corespunztoare primei iteraii sunt pezentate n Tabelul 4.3.
4 CVB 0 VB x3 VVB 8 x1 2 Tabelul 4.3 3 0 x2 1 x3 1 0 x4 0 0 x5 0 alegem min xi y ik

8 =4 2

x4

24

24 3 18 1

=8

x5

18

= 18

valoarea funciei obiectiv z 4 x1

alegem min 0 4 3 0 0 0 zjcj<0 8

1 2 1 2 5 2

1 2 1 2
1 2

x4

12

24

x5

14

28 5
alegem min

valoarea funciei obiectiv z

16

zjcj<0

La prima iteraie a ieit din baz x3 i a intrat x1 , iar la iteraia a doua a ieit din baz x5 i a intrat x2 . Iteraia a doua este prezentat n Tabelul 4.4. c) Culegerea rezultatelor din tabelul simplex final Maximul funciei de optimizat este 21.6 i se obine pentru x1=1.2 ; x2=5.6 ; x3=0 . Soluia de baz este nedegenerat. Valorile variabilelor auxiliare x3=0 ; x4=9.2 ; x5=0 , arat c soluia optim face egaliti doar restriciile 1 i 3 , adic se folosete integral timpul la aceste maini, iar cea de-a doua inegalitate arat c prin aceast soluie nu se utilizeaz integral timpul celei de-a doua maini.

4. Programare liniar

67 Tabelul 4.4 4 3
x2

0
x3

0
x4

0
x5

alegem min
xi yik

CVB

VB

VVB

x1

x1

6 5

3 5 2 5 1 5

1 5 1 5

x4

46 5 28 5

24

x2

2 5 2 5

28 5
alegem min
zjcj < 0

valoarea funciei obiectiv z

21.6

9 5

Vom rezolva aceast problem utiliznd pachetul de programe Management Scientist. La lansarea programului se afieaz pe ecran fereastra de prezentare apoi dup apsarea butonului Continue apare fereastra care permite selectarea modulului pentru rezolvarea problemelor de programare liniar ca n Figura 2.4. Selectm acest modul i n fereastra care apare din submeniul File alegem New. n fereastra Problem Features precizm numrul de variabile, de restricii i tipul problemei, ca n Figura 4.1.

Figura 4.1

Dup apsarea butonului OK, apare fereastra n care se introduc coeficienii funciei obiectiv i restriciile problemei, ca n Figura 4.2.

68

Modele i algoritmi de optimizare

Figura 4.2

Dup ce sau introdus datele, pentru rezolvare se apas butonul Solve i apare fereastra cu rezultate ca n Tabelul 4.5.
Tabelul 4.5
Objective Function Value = Variable -------------X1 X2 Constraint -------------1 2 3 21.600 Reduced Costs -----------------0.000 0.000 Dual Prices -----------------1.800 0.000 0.400 Value --------------1.200 5.600 Slack/Surplus --------------0.000 9.200 0.000

OBJECTIVE COEFFICIENT RANGES Variable -----------X1 X2 Lower Limit --------------No Lower Limit No Lower Limit Current Value --------------4.000 3.000 Upper Limit --------------No Upper Limit No Upper Limit

RIGHT HAND SIDE RANGES Constraint -----------1 2 3 Lower Limit --------------No Lower Limit No Lower Limit No Lower Limit Current Value --------------8.000 24.000 18.000 Upper Limit --------------No Upper Limit No Upper Limit No Upper Limit

Rezultatele sunt cele obinute i n urma aplicrii algoritmului simplex. Informaia din coloana Reduced Costs arat cu ct ar trebui s se modifice coeficientul variabilei respective n funcia obiectiv pentru ca variabila s fie pozitiv n soluia optim (Anderson et al, 1998). Astfel, dac o variabil este deja pozitiv, atunci costul redus este zero.

4. Programare liniar

69

Informaiile despre restricii (Constraint) din Tabelul 4.5 se refer la: Slack/Surplus aceast coloan d valorile variabilelor auxiliare. Dac restriciile sunt verificate cu inegaliti stricte, atunci variabilele auxiliare sunt nenule, altfel vor fi nule. Dual prices conine informaii despre valorile marginale ale resurselor. n Management Scientist un pre dual nseamn mbuntirea valorii optime a funciei obiectiv corespunztoare creterii cu o unitate a termenului liber al restriciei . Pentru restriciile verificate cu egalitate aceste preuri vor fi nenule. Pentru restriciile cu inegaliti stricte aceste preuri sunt nule, din cauza nefolosirii integrale a resurselor disponibile. Seciunea Objective Coefficient Ranges (intervalele coeficienilor n funcia obiectiv) d intervalul n care pot varia coeficienii funciei obiectiv astfel nct soluia s rmn optim. Ultima seciune Right Hand Side Ranges (intervalele termenilor liberi) conine intervalele n care ar trebui s se menin termenii liberi pentru ca preul dual asociat restriciei s rmn nemodificat. Observaia 4.6. Analiza sensibilitii prezentat mai sus se bazeaz pe faptul c un singur termen liber variaz la un moment dat, ceilali rmnnd la valorile iniiale. Aceeai problem poate fi rezolvat i utiliznd Solver-ul din Excel. Mai nti se creeaz foaia electronic de calcul cu datele de intrare, ca n Figura 4.3. Celulele D13D14 sunt considerate necunoscutele x1 x2 , celulele H7H9 conin restriciile problemei H7= B7*D13+C7*D14, H8= B8*D13+C8*D14, H9= B9*D13+C9*D14, iar celula D3 = B10*D13+C10*D14, funcia de optimizat.

Figura 4.3

70

Modele i algoritmi de optimizare

Pentru rezolvarea acestei probleme folosind Solver-ul trebuie urmrii paii: 1. Se selecteaz celula coninnd formula cu funcia de optimizat (D3). 2. Se selecteaz din meniul bar principal Tools (Instrumente) i, de aici, Solver (Rezolvitor). Apare caseta de dialog Solver Parameters (Parametrii Rezolvitor), care are n caseta de text Set Target Cell (Setare Celul int) celula de optimizat (D3). Se selecteaz tipul de optim max sau min; pentru acest caz, max. 3. n caseta de text By Changing Cells (Prin modificarea celulelor) se selecteaz celulele care reprezint variabilele problemei (D13D14). 4. n caseta de text Subject to the constraints (Se supune restriciilor) se impune condiia de nenegativitate asupra variabilelor x1 x2 i celelate restricii ale modelului, astfel (Figura 4.4):

Figura 4.4

5.

Se aps butonul Add (Adugare) i apare caseta de dialog Add Constraint (Adugare restricie), Figura 4.5. Se selecteaz celule D13D14 n Cell Reference, apoi se alege simbolul , iar n caseta Constraint (Restricii) celulele F7F8. Se apas butonul OK.

Figura 4.5

6. Adugarea celorlalte restricii se face apsnd butonul Add, iar n caseta Add Constraint se trec celulele n care s-au nscris formulele cu restriciile (H7H9). Se alege semnul i se selecteaz n caseta Constraint celulele cu termenii liberi (D7D9). Cnd s-au introdus toate restriciile se selecteaz butonul OK. 7. Se apas butonul Solve (Rezolvare) i apare caseta de dialog Solver Results (Rezultate rezolvitor), iar n Reports (Rapoarte) se pot alege

4. Programare liniar

71

formele de prezentare a rezultatelor. Se apas butonul OK dup precizarea tipurilor de rapoarte. Se creeaz Answer Report (Raport rspuns), Sensitivity Report (Raport sensibilitate), Limits Report (Raport limite) ca n Tabelele 4.6, 4.7 i respectiv 4.8.
Tabelul 4.6 Microsoft Excel 10.0 Answer Report Worksheet: [Programare liniara.xls]Sheet1 Report Created: 7/23/2002 7:38:01 AM Target Cell (Max) Original Final Value Value 0 21.6

Cell $D$3

Name Functia de optimizat

Cell $B$13 $B$14 Cell $G$13 $G$14 $G$15 $B$13 $B$14

Name x1 Produsul P1 x2 Produsul P1 Name 2x1+x2<=8 3x1+2x2<=24 x1+3x2<=18 x1 Produsul P1 x2 Produsul P1

AdjusTable Cells Original Value Final Value 0 0 Constraints Cell Value 8 14.8 18 1.2 5.6 Formula $G$13<=$D$7 $G$14<=$D$8 $G$15<=$D$9 $B$13>=$E$13 $B$14>=$E$14 Status Binding Not Binding Binding Not Binding Not Binding Slack 0 9.2 0 1.2 5.6 1.2 5.6

Tabelul 4.7 Microsoft Excel 10.0 Sensitivity Report Worksheet: [Programare liniara.xls]Sheet1 Report Created: 7/23/2002 7:38:02 AM AdjusTable Cells Final Cell $B$13 $B$14 Name x1 Produsul P1 x2 Produsul P1 Value 1.2 5.6 Reduced Cost 0 0 Objective Coefficient 4 3 Allowable Increase 2 9 Allowable Decrease 3 1

72 Constraints Final Cell $G$13 $G$14 $G$15 Name 2x1+x2<=8 3x1+2x2<=24 x1+3x2<=18 Value 8 14.8 18 Shadow Price 1.8 0 0.4

Modele i algoritmi de optimizare

Constraint R.H. Side 8 24 18

Allowable Increase 6.57142857 1E+30 6

Allowable Decrease 2 9.2 14

Tabeleul 4.8 Microsoft Excel 10.0 Limits Report Worksheet: [Programare liniara.xls]Limits Report 1 Report Created: 7/23/2002 7:38:02 AM Target Cell $D$3 Cell $B$13 $B$14 Name Functia de optimizat AdjusTable Name x1 Produsul P1 x2 Produsul P1 Value 1.2 5.6 Value 21.6 Lower Limit 0 0 Target Result 16.8 4.8 Upper Limit 1.2 5.6 Target Result 21.6 21.6

Se obin aceleai rezultate pentru funcia obiectiv i pentru valorile necunoscutelor ca i cu Management Scientist.

4.8. Convergena algoritmului simplex. Degenerare i ciclare

Dac n cursul aplicrii algoritmului simplex valoarea funciei obiectiv scade la fiecare iteraie, atunci nici o baz nu se poate repeta (fiecrei baze i corespunde un program de baz, deci o valoare bine determinat a funciei obiectiv). Deoarece m numrul bazelor este finit (cel mult C n ), rezult (Zidroiu, 1983) c ntr-un numr finit de iteraii se ajunge la una din situaiile a.1) sau b.1) din enunul algoritmului simplex. Dac valoarea funciei obiectiv nu se modific n cursul ctorva iteraii succesive, este posibil s revenim la una din bazele prin care am trecut deja, i atunci procesul devine infinit fr a conduce la soluie. Aceast situaie se numete ciclare. xl (z k c k ) i aceast expresie Variaia funciei obiectiv la o iteraie este y lk este nul dac i numai dac x l =0, adic dac programul este degenerat.

4. Programare liniar

73

Pentru o problem nedegenerat, convergena algoritmului simplex, mai precis faptul c el conduce la o soluie ntr-un numr finit de iteraii, este asigurat. Pentru o problem degenerat, adic avnd cel puin un program degenerat, este posibil, n principiu, ciclarea. Observaia 4.7. Degenerarea nu implic n mod necesar ciclarea: cu toate c foarte multe probleme practice sunt degenerate, exemplele de ciclare se construiesc cu destul dificultate (exemplul dat de Beale n Hadley G. 1962 Linear Programming, AddisonWesley, Reading, Mass.). Degenerarea apare, n afara cazului n care vectorul b are componente nule, atunci cnd criteriul de ieire al algoritmului simplex, mai precis minimul (4.37), nu definete n mod unic variabila care iese din baz. Presupunem c acest minim se atinge pentru doi indici, l i h, adic xl x = h , y lk y hk i presupunem c alegem variabila xl s prseasc baza. Atunci ~ y B xh = x h xl hk = 0 , y lk i deci noul program de baz va fi degenerat. Dac programul iniial nu va fi degenerat, degenerarea poate aprea numai n acest caz. Pentru demonstrarea valabilitii generale a algoritmului simplex este totui necesar o regul care s fac posibil nlturarea ciclrii. Regula lui Bland de nlturare a ciclrii (Luenberger, 1989): a) se selecteaz coloana q = min q z q c q > 0 , adic, cel mai mic indice

de coloan favorabil pentru a intra n noua baz, b) pentru ieirea din baz se ia coloana candidat cu indicele cel mai mic. Vom demonstra prin reducere la absurd c regula lui Bland nltur ciclarea. Presupunem c, dei aplicm regula, apare ciclarea. n timpul ciclului un numr finit de coloane intr i ies din baz. Fiecare dintre aceste coloane intr la nivelul 0 i funcia obiectiv nu-i schimb valoarea. tergem coloanele i liniile care nu conin pivotul n timpul unui ciclu, obinnd o nou problem de programare liniar redus care, de asemenea cicleaz. Presupunem c aceast nou problem are m linii i n coloane i c suntem n situaia ca s nlocuim coloana n cu coloana p. Fr a restrnge generalitatea, presupunem c baza curent este situat pe ultimele m coloane. Putem considera problema de programare liniar redus ca avnd matricea coeficienilor restriciilor A , iar vectorul coeficienilor funciei obiectiv c. Notm pivotul cu amp >0. Din partea b) a regulii lui Bland, an poate prsi baza numai dac nu exist egalitatea n testul raportului din criteriul de ieire

74

Modele i algoritmi de optimizare

din baz i atunci b=0, deoarece toate coloanele sunt n ciclu, iar aip0 , ( )i n . S considerm cazul cnd an este n situaia de a intra n baz. Partea a) a regulii lui Bland ne asigur c rn = z n c n > 0 i ri = z i c i 0 pentru ( )i n . Aplicm formula B 1 ri = c B S ci i ultimelor m coloane ca s artm c fiecare component = (c B ) B 1 0 cu excepia lui m > 0 . Atunci r p = a p c p > c p > 0 .

( )

Contradicie cu faptul c r p 0 . ndeprtarea situaiei de ciclare se poate face i cu metoda perturbrii a lui A. Charnes, sau cu cea lexicografic a lui Dantzig i Wolfe . Observaia 4.8. O regul practic de evitare a ciclrii este urmtoarea: se divid liniile corespunztoare variabilelor nule din Tabelul simplex prin pivoii posibili, mergnd de la stnga spre dreapta; n momentul cnd unul dintre rapoarte este mai mic dect celelalte, precizm variabila care iese din baz ca fiind cea care corespunde raportului minim (Zidroiu, 1983).

4.9. Interpretarea geometric a algoritmului simplex


Rezolvarea problemelor simple de programare liniar (n=2 sau n=3) se poate face i geometric. Pentru exemplificare considerm urmtoarea problem (Mihil, Popescu, 1978). Realizarea a dou produse P1 i P2 se face folosind patru materii prime M1, M2, M3, M4 . Disponibilul de materii prime, consumul specific i profitul unitar pentru fiecare tip de produs sunt date de tabelul 4.9.
Tabelul 4.9 Produsul Materia prim M1 M2 M3 M4 Profit unitar Consum specific P1 2 1 4 0 2 P2 2 2 0 4 3 12 8 16 12 Disponibil

S se determine cantitile x i y care trebuie realizate din produsele P1 , respectiv, P2 , pentru ca profitul total s fie maxim.

4. Programare liniar

75

Rezolvare Funcia de optimizat (obiectiv) este f(x,y) = 2x + 3y . Restriciile problemei, aa cum rezult din Tabelul 4.8, sunt: 2 x + 2 y 12 x + 2y 8 4 x + 0 y 16 0 x + 4 y 12 x 0 , y 0 Se cere s se determine necunoscutele x0 , y0 , astfel nct s se verifice restriciile, iar f(x0 , y0) s ia valoarea maxim. Considerm restriciile cu egaliti i reprezentm grafic dreptele ale cror ecuaii rezult (Figura 4.6). x (d2) , 4x=16 x=4 (d3) , 4y=12 x+y=6 y=6x (d1) , x+2y=8 y=4 2 y=3 (d4) , x0 , y0 . Reprezentarea grafic a restriciilor conduce la poligonul OABCD, ale crui puncte constituie soluii ale fmax problemei de programare 4 R a liniar (mulimea punctelor admmisibil e). Din d4 acest motiv se numete D C poligonul soluiilor. Rezult g c realizarea practic a B 2 produciei celor dou produse din cele patru materii prime se poate face ntr-o infinitate d3 de moduri. S alegem dintre A aceste soluii pe cele care dau O 0 2 4 6 valoarea maxim pentru funcia obiectiv. Punem funcia Figura 4.6 obiectiv sub forma f 2 (d) y = x , 3 3 care reprezint un fascicul de drepte, considernd f ca parametru ( (g) o dreapt din fascicul). Funcia f va avea maximul o dat cu ordonata la origine a dreptei (d). Astfel, trebuie gsit acea dreapt din fasciculul (d) care are ordonata la origine cea mai mare i care trece printr-un punct din poligonul soluiilor. Se observ c acea dreapt trebuie s treac prin punctul B, un vrf al poligonului soluiilor.
d1

76

Modele i algoritmi de optimizare

x =6x x=4 , y=2 2 2 Valoarea funciei obiectiv este f(4, 2)=14 . n Tabelul 4.10 se prezint starea sistemului de restricii i gradul de utilizare a resurselor pentru soluia optim. 4
Materia prim M1 M2 M3 M4 Tabelul 4.10 Cantitatea folosit pentru Cantitatea programul optim disponibil 12 24+22=12 8 14+22=8 16 44+02=16 12 04+42=8 Gradul de folosin 100% 100% 100% 66.67%

x {B} = y = 4 I {y = 6 x}

Problema are soluie unic, deoarece dreapta (d) nu este paralel cu nici o latur a poligonului soluiilor. Dac, de exemplu, se modific profitul unitar pentru produsul P2 , devenind 4, atunci dreapta (d) devine f x (d) y = , 4 2 fiind paralel cu dreapta corespunztoare celei de-a doua restricii (latura BC a poligonului soluiilor). n acest caz, toate punctele segmentului BC sunt soluii optime ale problemei date. Avem de-a face cu o problem cu o infinitate de soluii optime. Se pot introduce alte criterii suplimentare pentru a putea selecta o soluie. Metoda geometric s-ar mai putea aplica i n cazul a trei necunoscute, n locul poligonului soluiilor obinndu-se poliedrul soluiilor. Pentru n > 3 nu mai pot fi reprezentate grafic hiperpoliedrele soluiilor i deci metoda devine impracticabil.

4.10. Interpretarea economic a algoritmului simplex

Revenim la problema "utilizarea optim a resurselor" i presupunem c restriciile sunt sub form de egaliti, Ax=b (Dragomirescu i Malia, 1968). Observm c cele n activiti de producie se asociaz cte m, n grupe de activiti de baz, corespunztoare programelor de baz. Deoarece programul optim este un program de baz, rezult concluzia interesant c ntr-o organizare optim a produciei nu se vor desfura toate cele n activiti posibile (deci, nu se vor produce toate cele n sortimente), ci cel mult m (cazul programului nedegenerat). Aceast concluzie este dedus din considerente pur matematice i n afara oricror considerente economice. Presupunem c activitatea k nu face parte din grupul activitilor de baz corespunztoare unei baze B (adic xk nu este variabil de baz, xk=0, adic n aceast variant sortimentul nu se produce). Dac dorim s mrim nivelul acestei

4. Programare liniar

77

activiti, adic s producem sortimentul k n cantitatea xk > 0, produciile celorlalte sortimente de baz se vor modifica n conformitate cu (4.39); unele vor trebui reduse i, cum nu pot fi reduse dect cel mult pn la 0, rezult c xk poate crete cel mult pn la valoarea dat de (4.37), pentru care activitatea de baz l atinge nivelul 0. Aceasta este interpretarea criteriului de ieire. Creterea lui xk cu o unitate implic variaii de yik ale celorlalte activiti i deci i o variaie a funciei obiectiv

z = c k + ci ( y ik ) = c k z k ,
iB

adic o cretere a lui xk cu o unitate aduce, n acelai timp, un profit suplimentar ckzk. Dac zkck < 0 (pentru problema de maximizare a beneficiilor), atunci z>0 i, deci, introducerea activitii k n baz, adic producerea sortimentului k, aduce o mbuntire a funciei obiectiv, ceea ce revine la o sporire a profitului total. Regsim astfel criteriul de intrare n baz al algoritmului simplex. Aplicarea algoritmului simplex const astfel ntr-o explorare sistematic a diverselor variante de m activiti de baz; la fiecare iteraie se nlocuiete o activitate l printr-o activitate k, obinndu-se o cretere a profitului total, pn cnd, pentru toate activitile care nu sunt n baz, avem zkck 0, i deci nici o cretere a profitului nu mai este posibil.

4.11. Metoda celor dou faze


Metoda celor dou faze permite obinerea unui program de baz de plecare n rezolvarea problemei de programare iniial sub forma standard, adic (Zidroiu, 1983) : min c x (4.41) Ax = b x 0 Se poate presupune c bi 0, 1 i m ; dac nu, se nmulete linia respectiv cu 1. Se adug la fiecare ecuaie cte o variabil artificial x ia i se obine: Ax + Ix a = b (4.42) x 0 x a 0 Problema (4.41) are programe dac (4.42) are programe (x, xa), cu xa = 0. Dac se obine un astfel de program de baz cu xa = 0, atunci x corespunztor este un program de baz pentru (4.41).

78

Modele i algoritmi de optimizare

n faza I pentru a obine un program de baz al sistemului (4.41) se rezolv problema de programare liniar
min x ia = W a Ax + Ix = b x i 0, 1 i n x a j 0, 1 j m

(4.43)

folosind algoritmul simplex obinuit. Se observ c pentru problema (4.43) dispunem de programul de baz iniial x=0, xa = b ( 0 ), corespunztor bazei I din matricea acestui sistem [A,I]. Deoarece x ia 0 x ia 0 , i deci min W 0. Sunt posibile 2 cazuri: (i) dac min W > 0, atunci problema (4.41) nu are program de baz (dac ar avea, atunci (4.43) ar avea programe cu xa = 0 i deci min W = 0) (ii) dac min W = 0, am obinut un program cu xia = 0, 1 i m, deci un program de baz al problemei (4.43), i se trece la faza a II-a pentru rezolvarea problemei (4.41) (dup eliminarea liniilor redundante). Matricea A este acum transformat aa cum a ieit din faza I. min c x Faza a IIa Ax = b . x 0 Observaia 4.9. Faza I const din eliminarea din baz a variabilelor artificiale x ia i nlocuirea lor cu variabilele xj. Cnd toate variabilele au fost eliminate din baz, adic la sfritul fazei I, coloanele acestora sunt terse din tabelul simplex i se ncepe faza a II-a, pornind de la acest tabel simplex, n care calculm doar elementele liniei zjcj corespunztoare funciei obiectiv din faza a IIa. n cele prezentate pn acum am presupus c rang A = m. Introducerea variabilelor artificiale face ca rangul matricei [A, I] s fie sigur m. Dac rang A < m sau dac problema este degenerat, atunci cnd se ajunge la min x ia = 0, este posibil s mai rmn n baz cteva variabile artificiale, desigur cu valoarea 0. Faza I se consider ncheiat atunci cnd toate variabilele x ia au fost eliminate, i anume: (i) dac rang A = m (dar problema este degenerat), variabilele x ia = 0 pot fi ntotdeauna nlocuite cu variabilele xj care intr n baz tot cu valoarea 0, fr s produc vreo modificare n funcia obiectiv. (ii) dac rangA < m, nu este posibil eliminarea tuturor variabilelor x ia (cteva rmn n baz cu valoarea 0). n acest caz, liniile corespunztoare ale matricei

4. Programare liniar

79

A sunt combinaii ale celorlalte, adic restriciile corespunztoare a'i x = bi sunt consecine ale celorlalte i se pot elimina. Aceast discuie arat c nu este necesar s se impun rang A = m. Dac n problema (4.42) cu b 0 exist xj care apare ntr-o singur ecuaie i cu coeficient pozitiv, adic matricea A conine un vector unitate, atunci n ecuaia respectiv nu este necesar introducerea unei variabile auxiliare, variabila xj putnd fi luat n baza iniial. Desigur c dac exist k astfel de variabile, vom introduce doar nk variabile artificiale, ceea ce scurteaz faza I. Uneori este necesar cunoaterea inversei bazei curente a problemei de programare. n acest caz, la sfritul fazei I nu mai nlturm din tabel coloanele corespunztoare variabilelor artificiale. n fiecare tabel al fazei a IIa, n aceste coloane se gsete matricea B1I = B1, adic inversa bazei curente B. Exemplu. O balastier are 3 linii de sortare S1, S2, S3, pentru 2 tipuri de agregate A1, A2 i trebuie s sorteze 300 tone din primul tip i 372 tone din al doilea tip. Profitul ncasat de pe urma sortrii materialelor difer de la o linie la alta precum difer i cantitile ce pot fi sortate conform cu Tabelul 4.11.
Tabelul 4.11 Agregat Linie de sortare S1 S2 S3 Cantitatea ce trebuie sortat A1 2 3 1 300 tone A2 1 2 2 372 tone Profit 5 u. m. 4 u. m. 6 u. m.

S se determine repartiia optim pe liniile de sortare a agregatului astfel nct profitul obinut s fie maxim. Rezolvare a) Modelarea problemei Fie x1, x2 , x3 cantitile sortate pe liniile S1 , S2 , S3 respectiv. Atunci funcia de optimizat este f = 5x1+4x2+6x3 .

80

Modele i algoritmi de optimizare

Trebuie determinat maximul acestei funcii cu restriciile 2 x1 + 3x 2 + x3 = 300 x1 + 2 x 2 + 2 x3 = 372 . x , x , x 0 1 2 3


2 3 1 Deoarece matricea A = 1 2 2 a restriciilor nu are o baz evideniat, se aplic metoda celor dou faze.

b) Metoda celor dou faze i) Faza I Se aplic algoritmul simplex problemei a min x1a + x 2

}
a 1 a 2

2 x1 + 3 x 2 + x3 + x = 300 x1 + 2 x 2 + 2 x3 + x = 372 x , x , x , xa , xa 0 2 1 2 3 1 Calculele fazei I sunt trecute n Tabelul 4.12 . La prima iteraie a ieit din baz x1a i a intrat x2 , iar la iteraia a doua a ieit
3 1 a din baz x 2 i a intrat x3. Baza obinut B = 2 2 are inversa n tabelul final 1 1 -1 4 . al fazei I sub variabilele artificiale, B = 2 3 1 2 4 ii) Faza a II-a Se aplic algoritmul simplex problemei max {5x1+4x2+6x3 } 3 4 x1 + x 2 = 57 1 x1 + x3 = 129 4 x1 , x 2 , x3 0 Calculele fazei a IIa sunt trecute n Tabelul 4.13.

c) Culegerea i interpretarea rezultatelor Algoritmul se oprete cu optim finit, anume, profitul maxim este 1268, obinut pentru x1=76 , x2=0 , x3=148 , care constituie o soluie de baz nedegenerat.

4. Programare liniar

81

Tabelul 4.12 0 0 0 1 1
a x2

alegem min

CVB

VB

VVB

x1

x2

x3

x1a

xi y
300 3

ik
= 100

x1a

300

a x2

372

372 = 186 2

valoarea funciei obiectiv z

alegem max 672 3 5 3 0 0

zjcj>0
100 = 300 1 3 172 = 129 4 3

x2

100

2 3

1 3

1 3

a x2

172

1 3

4 3

2 3

valoarea funciei obiectiv z

172

1 3

5 3

alegem max 0

zjcj>0
8

x2

57

3 4
1 4

1 2
1 2

1 4

x3

129

3 4

24

valoarea funciei obiectiv z

alegem max 0 0 0 0 1 1

zjcj>0

82

Modele i algoritmi de optimizare

Tabelul 4.13 5 4 CVB VB VVB

x1
3 4 1 4 7 2

x2

x3

alegem min xi
y ik

x2

57

228 = 76 3

x3

129

valoarea funciei obiectiv z

1002

alegem min 0 0

zjcj<0
4 3 1 3

x1

76

x3

148

Valoarea funciei obiectiv z

1268

14 3

alegem min 0

zjcj<0

4.12. Dualitatea n programarea liniar

Oricrei probleme de programare liniar (numit problem primal) i se asociaz o problem de programare liniar dual pornind de la aceleai costuri i coeficieni ai restriciilor, dar n timp ce o problem este de minim, cealalt este de maxim. Vom demonstra c dac valorile optime ale funciilor obiectiv sunt finite, atunci ele sunt egale.Variabilele problemei duale pot fi interpretate ca preuri asociate cu restriciile problemei primale i aceast asociere permite o interpretare economic a problemei duale. Fie problema de programare liniar sub forma general (4.20). Problema dual asociat problemei (4.20) este urmtoarea problem de programare liniar

4. Programare liniar

83

max b1 u1 + b2 u 2 + b3 u 3 t 1 2 3 t t A11 u + A21 u + A31 u c1 t 1 2 3 t t A12 u + A22 u + A32 u = c 2 A t u1 + A t u 2 + A t u 3 c 23 33 3 13 1 2 3 0 0 u , u arbitrar , u

(4.44)

Duala dualei este chiar problema iniial. De aceea, (4.20) i (4.44) formeaz un cuplu de probleme duale. Din examinarea cuplului de probleme duale rezult c una dintre probleme se obine n urmtorul mod: a) termenii liberi din problema primal devin coeficieni ai funciei obiectiv n problema dual, b) coeficienii funciei obiectiv din problema primal devin termeni liberi n problema dual, c) o problem de maximizare (minimizare) se transform ntr-o problem de minimizare (maximizare), d) matricea coeficienilor sistemului de restricii pentru problema dual este transpusa matricei coeficienilor sistemului de restricii ale problemei primale, e) variabilele duale (primale) asociate unor restricii primale (duale) concordante sunt supuse condiiei de nenegativitate, f) variabilele duale (primale) asociate unor restricii primale (duale), care sunt ecuaii, nu sunt supuse nici unei condiii privind semnul. Din definiia dat rezult c: duala unei probleme de programare sub forma standard min c x Ax = b x 0 este problema de programare liniar max bu t A u c u arbitrar duala unei probleme de programare sub forma canonic max c x Ax b x 0

(4.45)

(4.46)

(4.47)

84

Modele i algoritmi de optimizare

este urmtoarea problem de programare liniar, care are tot forma canonic: max b u t (4.48) A u c . u 0 Problemele (4.47) i (4.48) formeaz un cuplu de probleme duale simetrice, n timp ce problemele (4.45) i (4.46) formeaz un cuplu de probleme duale asimetrice. duala unei probleme mixte min c x A1 x b1 (4.49) A2 x = b2 x 0 este problema max(b1u1 + b2 u2 ) t 1 t 2 (4.50) A1 u + A2 u c u1 0 , u 2 arbitrar duala problemei de transport (4.8)-(4.11) este problema n m + a u bjv j max i i , j =1 i =1 1 i m ; 1 j n , u i + v j c ij , u , v oarecare . j i

(4.51)

n continuare sunt prezenate teoremele care stabilesc conexiunile fundamentale ntre cele dou probleme duale.

4.13. Teorema fundamental a dualitii

Fie problema primal sub forma standard (4.45) i duala sa (4.46). Definiia 4.1. O baz B din matricea A se numete primal admisibil pentru problema (4.45) dac verific relaia (4.52) B 1 b 0 O baz B din matricea A se numete dual admisibil pentru problema (4.45) dac verific relaia (4.53) c B 1 A c 0

4. Programare liniar

85

Nu vom presupune c A are rangul maxim. Lema urmtoare stabilete o relaie important ntre cele dou probleme. Lema slab a dualitii. Dac x i u sunt soluii admisibile pentru problemele (4.45) i respectiv (4.46), atunci xc bu (Luenberger, 1989). Demonstraie. Deoarece bu =(Ax)u =xAtu , dar Atu c i x0 , atunci rezult c bu xc. Aceast lem arat c o soluie admisibil a oricreia dintre cele dou probleme este o limit pentru valoarea funciei obiectiv a celeilalte probleme. Corolarul 4.1. Dac x0 i u0 sunt soluii admisibile pentru problemele (4.45) i respectiv (4.46) i dac cx0 = u0 b , atunci x0 i u0 sunt soluii optime pentru problemele respective. Corolarul 4.1 arat c dac poate fi gsit o pereche de soluii admisibile care s produc aceeai valoare pentru funciile obiectiv ale problemelor (4.45) i (4.46), atunci acestea sunt amndou optime. Vom enuna i demonstra Teorema fundamental a dualitii, care afirm c i reciproca Corolarului 4.1 este adevrat (Luenberger, 1989). Pentru aceasta avem nevoie de urmtorul rezultat (demonstrat n Fletcher, II, 1981). Lema de separare. Exist un hiperplan care separ un con convex nchis C de un vector nenul v C .

Teorema fundamental a dualitii. Dac una dintre problemele (4.45) sau (4.46) are o soluie optim finit, atunci i cealalt are soluie optim finit i valorile corespunztoare ale funciilor obiectiv sunt egale. Dac una dintre cele dou probleme are optim infinit, atunci cealalt problem nu are nici o soluie admisibil. Demonstraie. A doua afirmaie este o consecin a lemei slabe a dualitii. Dac problema primal are optim infinit i u este o soluie admisibil a problemei duale, atunci n mod necesar u b M pentru un M suficient de mare, ceea ce este imposibil. Observm c, dei cele dou probleme nu formeaz un cuplu de probleme duale simetrice, pentru a demonstra prima afirmaie este suficient s presupunem c problema primal are o soluie optim finit i apoi s artm c problema dual are o soluie cu aceeai valoare pentru funcia obiectiv. Acest lucru este posibil deoarece ambele probleme pot fi rescrise n form standard i rolurile celor dou probleme se pot inversa. S presupunem c problema (4.46) are o soluie optim z* finit. Considerm urmtoarea mulime convex n spaiul Rm+1 : C = (r , w ) r = tz * c' x , w = tb Ax , x 0, t 0 .

86

Modele i algoritmi de optimizare

Se poate arta c C este un con convex nchis. Vom arta c vectorul (1, 0, , 0) nu este n C. x Dac w= t0bAx0 = 0 , unde t0>0 i x0 0 , atunci x = 0 este o soluie t0 admisibil pentru problema (4.46) i deci r = z * c' x 0 , t0 ceea ce implic r0 (nu poate astfel s ia valoarea 1). Dac w= Ax0 = 0 (t=0), unde x0 0 i cx0 = 1 i dac x este o soluie admisibil oarecare a problemei (4.46), atunci x+ x0 este o soluie admisibil pentru problema (4.45) pentru orice 0 i d valori din ce n ce mai mici pentru funcia obiectiv, pe msur ce crete. Aceasta contrazice ipoteza existenei unui optim finit i rezult c un astfel de x0 nu exist. Deci (1, 0,, 0) nu aparine lui C. Cum C este o mulime convex nchis, exist un hiperplan care separ vectorul (1,0,,0) de C. Aadar, exist un vector nenul (s, u)Rm+1 i o constant c astfel nct : s < c = inf {sr + u' w (r , w ) C }.

C fiind con, rezult c c0. Altfel, dac ar exista (r,w)C astfel nct sr+uw<0, atunci (r,w) nu ar verifica inegalitatea hiperplanului pentru valori mari ale lui . Pe de alt parte, deoarece (0,0)C, trebuie ca s avem c0. Aadar, c=0. Prin urmare s<0 i putem presupune, fr a restrnge generalitatea, c s = 1. Astfel am demonstrat c exist uRm cu proprietatea r+uw 0 pentru orice (r,w)C. Din definiia lui C avem c (cuA)xtz*+tub 0 oricare ar fi x0 i t0. Alegnd t=0 rezult uAc, ceea ce nseamn c u este o soluie admisibil pentru problema dual. Punnd x=(0,0,,0) i t=1, obinem c ub z*. Din lema slab a dualitii i din corolarul su rezult c u este o soluie optim a problemei duale. Corolarul 4.2. Dac ntr-un cuplu de probleme duale, una dintre probleme are un program optim, atunci i cealalt problem are un program optim i valorile optime ale funciilor obiectiv sunt egale.
Fie problema de programare liniar sub forma standard (4.45) i duala sa (4.46) i x=(xB,0) o soluie optim de baz corespunztoare bazei B , iar xB=B1b i xS=0. Atunci vectorul costurilor relative 1 1 r = c B B S cS 0 cB B S cS .
1 Considerm u = c i artm c acest u este soluie a problemei duale: BB 1 c u A = [u B u S ] = c c B B B S [c B S ]= c u A c , adic uA este soluie admisibil pentru problema dual. Pe de alt parte

4. Programare liniar

87

1 u b = c B B b = cB x i astfel valoarea funciei obiectiv a problemei duale este pentru acest u egal cu valoarea funciei obiectiv a problemei primale. Atunci, din Corolarul 4.1 rezult c u este soluia optim a problemei duale. Am demonstrat urmtoarea teorem.

Teorema 4.6. Dac problema de programare standard are soluie de baz optim 1 corespunztoare bazei B, atunci u = c este soluie optim a problemei BB duale asociate. Valorile optime ale funciilor obiectiv corespunztoare celor dou probleme asociate sunt egale. Teorema ecarturilor complementare pentru cuplu de probleme duale asimetrice. O condiie necesar i suficient ca programele x* i u* s fie optime pentru problemele duale (4.45) i (4.46) este ca pentru orice i s avem: a) xi > 0 u a i = ci b) u a i < ci xi = 0 . Demonstraie. Dac au loc relaiile a) i b) atunci (uAc)x=0, adic ub=cx , i, din Corolarul 4.1, rezult c x i u sunt soluii optime pentru perechea de probleme (4.45) i (4.46). Invers, dac x i u sunt soluii optime pentru perechea de probleme (4.45) i (4.46), atunci din Teorema fundamental a dualitii rezult c ub= cx i astfel (uAc)x=0. Deoarece fiecare component a lui x este nenegativ i fiecare component a lui uAc este nepozitiv, rezult condiiile a) i b) din teorem.

Teorema ecarturilor complementare pentru cuplu de probleme duale simetrice. O condiie necesar i suficient ca programele x* i u* s fie optime pentru un cuplu de probleme duale simetrice este ca pentru orice i i j s avem: a) xi > 0 u a i = ci b) u a i < c i xi = 0 c) u j > 0 a j x = b j
d) a j x > b j u j = 0 , unde a j reprezint linia j din matricea A. Demonstraia este similar demonstraiei teoremei precedente. S notm cu B = i B x iB < 0 , B fiind o baz dual admisibil. Dac

B atunci baza B este i primal admisibil i x B = B 1 b este program optim al


problemei primale (Zidroiu, 1983). Teorema 4.7. Fie B o baz dual admisibil pentru problema (4.45) i B. Dac () i B astfel nct y ijB 0 , () j S atunci problema (4.45) nu are programe.

88

Modele i algoritmi de optimizare

1 programul dual asociat cu baza B , a i linia de Demonstraie. Fie u B = cB B rang i din matricea B1 i fie u( ) = u B i , unde 0 . Atunci
B B B u( ) a j = u B a j i a j = z j y ij z j c j

pentru

1 j n .

Aadar,

A t u c . ns

B u( ) b = u x iB i atunci B b i b = z

lim u( ) b = + ,

adic problema dual are optim infinit i din Teorema fundamental a dualitii, rezult c i problema primal are optim infinit. Lema substituiei. Fie A o matrice ptratic nesingular A M n (R ) i B o

matrice obinut din A prin nlocuirea coloanei ar cu vectorul nenul b R n i c = A 1 b . Atunci: a) condiia necesar i suficient ca s existe B-1 este ca c r 0 ; b) Dac c r 0 , atunci B 1 = E r ( ) A 1 , unde E r ( ) se obine din matricea unitate de ordinul n prin nlocuirea coloanei r cu vectorul = cr1 ( c1 ,...,cr 1 ,1,cr +1 ,...,cr ) . Demonstraie. Din forma lui c rezult c b = c1 a 1 + ... + c n a n . (4.54) a) Necesitatea condiiei. Dac cr=0 , atunci din definiia lui c rezult c vectorii a 1 ,..., a r 1 , b, a r +1 ,..., a n sunt liniar dependeni i B nu este inversabil. Suficiena condiiei. Presupunem c B nu este inversabil i atunci rangul ei este mai mic dect n, adic vectorii coloan ai matricei B sunt liniar dependeni. Fie i , i = 1, n , astfel nct

i =1

2 i

0 i

a
i =1 ir i

+ r b = 0 .

ns din (4.54) avem

(
n i =1 ir

+ ci r a i + r c r a r = 0 ,

ceea ce nseamn c A are coloanele liniar dependente i astfel nu este inversabil. Atunci, trebuie ca c r r = 0 . Sunt posibile dou cazuri. i) cr=0 i suntem n cazul a) al lemei, sau ii) r = 0 i atunci din (4.54) rezult c vectorii a1,, ar-1, ar+1,, an, sunt liniar dependeni , iar matricea A nu este inversabil. Contradicie! b) Din (4.54) avem a r = c r1 b c r1 ci a i , adic a r = B . Cum
i =1 ir n

a i = Be i , i = 1, n , i r , rezult c A = BE r ( ) , sau B 1 = E r ( ) E 1 .

4. Programare liniar

89

Teorema 4.8. Fie B o baz dual admisibil pentru problema primal (4.45) i B B. Dac pentru () i B , () j S astfel nct y ij < 0 i alegem lB

arbitrar, iar kS asfel nct s fie satisfcut condiia


B B z k ck zj cj min = B B B <0 j ylj y lk y lj

~ atunci matricea B obinut din matricea B prin nlocuirea coloanei al cu este cel coloana ak este o baz dual admisibil, iar programul dual asociat u B ~

puin la fel de bun ca uB,, adic u ~ b u Bb . B ~ B Demonstraie. B astfel obinut este o baz (deoarece y lk 0 i se verific ipotezele Lemei substituiei). Conform cu relaiile (4.40) avem B ~ y rj B B B z j c j = z j c j z k ck B , j S . y lk

) (

B fiind o baz dual admisibil, rezult c z B j c j 0 pentru care y 0 .


B lj

() j S

pentru

Din definiia lui kS


B lj

rezult c i z B j c j 0 pentru

() j S

pentru care

y < 0 . Pentru j=l avem


z lB c l = z kB c k
~

Aadar,

zB j cj 0

are loc pentru


~ B

<0. B y lk () j S~ , adic

)1

~ B

este o baz dual

admisibil. Din relaiile (4.40) rezult c


~

z = z z ck
B B k

xr . Dar B y lk

z B = u i Bb

~ b i atunci u ~ este cel puin la fel de bun ca i uB. z B = u B B

4.14. Algoritmul simplex dual

Prin aplicarea algoritmului simplex la problema dual se obine un nou algoritm pentru problema iniial, numit algoritmul simplex dual. Algoritmul simplex primal exploreaz bazele primal admisibile ale problemei (4.45) pn la obinerea unei baze primal admisibile care s fie i dual admisibil ( zB j c j 0 , 1 j n ), sau pn la punerea n eviden a faptului c problema primal are optim infinit.

90

Modele i algoritmi de optimizare

Algoritmul simplex dual exploreaz bazele dual admisibile ale problemei (4.46) pn la obinerea unei baze dual admisibile care s fie i primal admisibil ( B 1b 0 ), sau pn la punerea n eviden a faptului c problema dual nu are programe. n algoritmul simplex primal se obine o succesiune de programe de baz 1 ( B b 0 ), iar n algoritmul simplex dual se obine o succesiune de soluii de baz care nu sunt programe (B1b nu are toate componentele nenegative). Pentru o problem de minimizare n algoritmul simplex funcia obiectiv descrete spre minim, n timp ce n algoritmul simplex dual funcia obiectiv crete spre maxim. Adesea, pentru problema de programare liniar se cunoate o soluie de baz, dar care nu este i admisibil i pentru care multiplicatorii simplex sunt admisibili pentru problema dual asociat. n tabelul simplex aceast situaie corespunde strii n care ultima linie (zjcj) nu are elemente pozitive, dar soluia nu este admisibil. O astfel de situaie apare, de exemplu, atunci cnd o problem de programare liniar este rezolvat i din aceasta se construiete o problem nou prin schimbarea vectorului termenilor liberi b (postoptimizare sau reoptimizare). n aceast situaie, dispunnd de o soluie admisibil de baz pentru problema dual este de preferat s continum s rezolvm problema dual. Considerm problema de programare liniar sub forma standard i fie B o 1 baz cunoscut a acestei probleme, iar u = c este admisibil pentru BB problema dual. Dac xB=B1b0, aceast soluie este primal admisibil i atunci ea este optim. Vectorul u este admisibil pentru problema dual i atunci are loc inegalitatea uajcj pentru j = 1, n . Presupunnd c baza este format cu primele
m coloane ale lui A, atunci au loc egalitile uaj=cj , j = 1, m i, cu excepia

degenerrii, inegalitile uaj<cj , j = m + 1, n . ntr-o iteraie a metodei simplex duale vom gsi un nou vector u , astfel nct una din egalitile de mai sus devine inegalitate, iar una din inegaliti devine egalitate, n acelai timp valoarea funciei obiectiv pentru problema dual crete. Cele m egaliti n noua soluie determin o nou baz. Notm linia i a matricei B1 cu i . Atunci, pentru u = u i avem u a j = u a j i a j . Astfel, notnd zj=uaj i observnd c uaj=yij , (elementele (i, j) din tabelul simplex), avem: u a j = c j , j = 1, m , u a i = c i
u a j = z j y ij , j = m + 1, n , ji

ji

(4.55)

De asemenea, u b = ub xiB Pentru cuplul de probleme duale (4.56)

4. Programare liniar

91

min c x Ax = b x0

max bu t A uc u arbitrar

algoritmul simplex dual const din urmtorii pai.


Pas 0. Se determin o baz dual admisibil B , n matricea A , se calculeaz

x = B -1b , z = c B x

-1 , yB z j cj , 1 j n j = B aj ,

aj fiind coloane ale matricei A. Pas 1. a) Criteriu de ieire din baz 1) dac toi x i 0 , atunci programul este optim. Stop! 2) dac ()xi < 0 , atunci se determin l astfel nct
x l = min x i x i < 0

}.

b) Criteriu de intrare n baz 1) dac toi ylj 0 , atunci problema nu are programe. Stop! 2) dac () y lj < 0 , atunci se determin k astfel nct

0 =

zj cj z k ck = min j ylj < 0 y lk y lj

(4.57)

Pas 2. Se nlocuiete n baza B coloana l cu coloana k , obinndu-se noua baz ~ B . Se calculeaz ~ ~ ~ ~ y lj B x x x B B x l = l , y ij = , x iB = x i y ik i (i l ) , y ij = y ij y ik i (i l ) y lk y lk y lk y lk z = z B -( z k c k )


~ B

xl , y lk

1 i n , z j c j = z j c j (z k c k )

~ B

y lj y lk

1 j n ~ i se trece la pasul 1, nlocuind B cu B . n continuare sunt prezentate cteva observaii privind algoritmului de mai sus. a) alegerea lui k n relaia (4.57) ne permite s afirmm c noua soluie va fi din nou dual admisibil; b) din relaia (4.56) i din alegerea lui x l < 0 (conform cu a2 din algoritmul simplex dual) valoarea funciei obiectiv pentru problema dual va crete; c) algoritmul nu se termin dect cu soluia optim i valoarea corespunztoare pentru funcia obiectiv sau dac problema dual are valoarea nemrginit pentru funcia obiectiv; d) deoarece exist numai un numr finit de baze, optimul trebuie s fie obinut ntr-un numr finit de iteraii. Exemplu. S considerm problema dietei 4.1.5. particularizat astfel:

92

Modele i algoritmi de optimizare

min {3x1+4x2+5x3} x1 + 2 x 2 + 3x 3 5 2 x1 + 2 x 2 + x 3 6 x 0 i = 1,3 i forma standard

min {3x1+4x2+5x3} x1 + 2 x 2 + 3 x 3 x 4 = 5 2 x1 + 2 x 2 + x 3 x 5 = 6 x 0 i = 1,5 i duala corespunztoare

i aplicm algoritmul simplex dual problemei min {3x1+4x2+5x3} x1 2 x 2 3x 3 + x 4 = 5 2 x1 2 x 2 x 3 + x 5 = 6 x 0 i = 1,5 i obinut din precedenta prin nmulirea primelor dou restricii cu 1. Coloanele 4 i 5 din matricea coeficienilor restriciilor dau o baz dual admisibil, deoarece valorile pentru x4 i x5 sunt negative, iar zjcj sunt nepozitive. La prima iteraie iese din baz x5 i intr x1, iar la iteraia a doua iese din baz x4 i intr x2. Rezultatele sunt trecute n Tabelul 4.14. Valoarea funciei obiectiv este min f=10, obinut pentru x1=1 i x2=2 .

4.15. Interpretarea economic a algoritmului simplex dual


Pentru exemplificare ne vom referi la problema utilizrii eficiente a resurselor (Dragomirescu i Malia, 1968) max c x Ax b x 0 unde: xj este numrul de uniti din sortimentul j care trebuie produse i reprezint cantitatea din resursa i care se consum n procesul de producie. Problema dual asociat acesteia este min b u T A u c u 0 unde: ui este costul unitar intern (shadow price) al resursei i, iar

a
j =1

ij

xj

a
i =1

ij

u i reprezint

valoarea total a resurselor consumate pentru realizarea unei uniti din sortimentul j.
Tabelul 4.14

4. Programare liniar
3 4 5 0 0 alegem min
min
yij < 0

93

CVB

VB

VVB

x1
1 2

x2
2 2

x3
3 1

x4

x5

zj cj y ij

x4

5 6

0
3 4 5 , , 2 2 1

x5

valoarea funciei obiectiv z

x4

5 2

1 2 1 2
7 1 2, 2 5 1 2 2

x1

1 2

valoarea funciei obiectiv z

7 2

3 2

1 , 1

x2

5 2

1 2

x1

Valoarea funciei obiectiv z

11

Problema dual se poate enuna astfel: S se determine costurile interne unitare ale resurselor astfel nct profitul unitar al fiecrei resurse s nu depeasc valoarea resurselor consumate pentru realizarea lui, iar costul total al resurselor s fie minim. Inegalitatea dat de Lema slab a dualitii pentru acest cuplu de probleme duale ( c x b u ) are aici urmtoarea semnificaie: pentru nici un plan de

94

Modele i algoritmi de optimizare

producie x i nici un sistem de costuri interne u profitul total al ntreprinderii nu poate depi costul total al resurselor; egalitatea se realizeaz doar pentru programele optime de producie i pentru costuri interne optime. Relaiile Teoremei ecarturilor complementare scrise sub forma n m x ui b a x = , 1 i m i 0 j a ij u i c j = 0 , 1 j n i ij j j =1 i =1 n acest caz au urmtoarea interpretare: ntr-un plan de producie optim nu se pot produce sortimente pentru care consumurile de resurse calculate pe baza costurilor interne depesc profiturile. n plus, costurile interne nenule se atribuie numai resurselor folosite integral n cadrul acestui plan.

4.16. Determinarea unei soluii dual admisibile

Dac toi coeficienii funciei obiectiv sunt nenegativi, atunci variabilele ecart formeaz o soluie de baz dual admisibil, deoarece n acest caz zici= ci 0. Dac nu toi coeficienii funciei obiectiv sunt nenegativi, se introduce o restricie nou (Malia i Zidroiu, 1971) x n +1 + x 1 + x 2 + ... + x k = M , cu M suficient de mare, xn+1 o nou variabil, iar variabilele care corespund coeficienilor c r < 0 . Dac c f = max c j c j < 0 , se nlocuiete x f din restricia suplimentar n funcia obiectiv. Se obine o mulime de n variabile (xn+1 nlocuiete x f ) astfel nct toi coeficienii funciei obiectiv s fie nenegativi i numrul restriciilor a crescut cu o unitate.
Exemplu

x r , 1 r k , fiind

min( x 3 2 x 4 + x5 ) x + 3x + x x = 4 1 3 4 5 x 2 x3 4 x 4 + x5 = 1 xi 0 , 1 i 5 x1, x2 formeaz o baz care nu este primal admisibil pentru c x1= 4 . Pentru a face pozitivi toi coeficienii funciei obiectiv, introducem relaia suplimentar x 6 + x 3 + x 4 = M . Atunci c f = max c j = c 4 = 2 i x4=Mx3x6. Se obine o
j c j <0

nou problem care are toi coeficienii funciei obiectiv nenegativi:

4. Programare liniar

95

min(2 M + x 3 + x 5 + 2 x 6 ) x + 2 x x x = 4 M x1 + 3x3 + x5 + 46x = 1 + 4 M 3 5 6 2 x3 + x 4 + x 6 = M xi 0 , 1 i 6 unde M este suficient de mare astfel nct 4M < 0 . Se obine o soluie dual admisibi x1= 4M , x2 = 1+4M , x4 = M .

4.17. Probleme propuse

1. ntr-o staie de betoane se pot produce 3 tipuri de betoane (B150, B200, B300). Staia este organizat astfel nct fiecare betonier poate produce orice marc de betoane, capacitatea zilnic maxim a staiei este de 600 m3 . Betonul se transport cu ajutorul a 20 de autobetoniere de 5 m3 capacitate fiecare, duratele ciclurilor de transport pentru cele 3 mrci de betoane fiind de 0.1 ; 0.2 i 0.1 zile respectiv. Consumurile normate de ciment pe cele trei mrci de beton sunt respectiv 200, 300 i 400 kg/m3 . Staia este aprovizionat zilnic cu o cantitate de 180 tone de ciment . Ca urmare a organizrii staiei se obin urmtoarele economii pe mrci de beton: 1; 1.2 i 0.8 u.m. / m3 . Se cere gsirea soluiei care aduce maximum de profit staiei, tiind c se cere beton n cantiti mai mari dect posibilitile de preparare.
Rezolvare a) Modelarea problemei Notm cu x1 , x2 , x3 , cantitile de beton din fiecare marc ce se cer a fi determinate astfel nct funcia obiectiv z = f(x1 , x2 , x3 ) = 1x1 + 1.2x2 + 0.8x3 , s fie maxim sub restriciile x1 + x2 + x3 600 (nu se poate depi capacitatea de producie a staiei) 0.1x1 +0.2x2 +0.1x3 205 (nu se poate depi capacitatea zilnic de transport) 200x1 +300x2 + 400x3 600 (nu se poate depi cantitatea de ciment cu care este aprovizionat zilnic staia) S-a obinut urmtoarea problem de programare liniar:

Forma canonic

Forma standard

96

Modele i algoritmi de optimizare

max{x1 + 1.2 x 2 + 0.8 x 3 } x + x + x 600 1 2 3 2 x x x 3 1000 + + 1 2 2 x + 3x + 4 x 1800 2 3 1 x i 0 , i = 1, 2, 3

max{x1 + 1.2 x 2 + 0.8 x 3 } x + x + x + x = 600 1 2 3 4 2 x x x x 5 = 1000 + + + 1 2 3 2 x + 3x + 4 x + x = 1800 2 3 6 1 x i 0 , i = 1,6 dup introducerea variabilelor ecart

Se obin urmtoarele rezultate: max f=680 realizat pentru x1=200 , x2=400 , x3=0 . Variabilele auxiliare x4=0 , x5=0 , x6=200 , arat c primele dou restricii se verific pentru soluia de mai sus cu egaliti, iar cea de-a treia cu inegalitate. Profitul este maxim dac nu se produce beton de tipul B300.

2. ntr-o secie a unei ntreprinderi se produc trei tipuri de produse P1, P2 , P3 , folosind rezerve de for de munc (F) i resurse financiare (B) limitate conform Tabelul 4.15.
Tabelul 4.15 Tip produs P1 P2 Rezerve F B Profit 2 1 1.5 3 2 4 2 3 3 15 12

P3

Disponibil

care conine i consumurile din aceste rezerve la unitatea de produs pentru fiecare tip, precum i beneficiile aduse de o unitate de fiecare tip de produs. Datorit condiiilor impuse de stocare ntreaga producie nu trebuie s depeasc 8 uniti. S se determine planul optim de producie care n condiiile date s dea un profit total maxim pe secie.
R. n urma modelrii acestei probleme se obine urmtorul program liniar: max f = max{1.5x1+4x2+3x3} 2 x1 + 3x 2 + 2 x 3 15 x + 2 x + 3 x 12 1 2 3 . 8 + + x x x 2 3 1 x i 0 , i = 1,3 Se obine soluia max f=20.4 pentru x1 = 0 , x2 = 4.2 , x3 = 1.2 . 3. La o secie de producie a unei ntreprinderi de construcii, unde se lucreaz n flux continuu de band, sunt necesare pentru fabricarea de panouri pentru cofraje 4 tipuri de materii prime (panel (P), scndur de brad (SB), dulapi (D), cuie (C)) care

4. Programare liniar

97

sunt prelucrate la 3 standuri. Repartiia materiilor prime i a cheltuielilor de munc necesare prelucrrii pe cele 3 standuri este dat de Tabelul 4.16.
Tabelul 4.16 Materie prim Stand

P
1 1 0 6

SB
1 2 1 8

D
0 1 1 12

C
1 0 1 10

S1 S2 S3 Cheltuieli de munc

Nr. necesar de panouri 2 4 3

S se determine un plan de producie astfel nct cheltuielile s fie minime.


R. Modelnd problema se obine urmtorul program liniar: min f = min {6x1+8x2+12x3+10x4} x1 + x 2 + x 4 = 2 x + 2x + x = 4 1 2 4 . x 2 + x3 + x 4 = 3 x i 0 , i = 1,4 Se obine soluia min f = 29 , pentru nivelurile de consum de materiale x1=0 , x2=1.5 , x3=1 , x4=0.5 .

4. O secie a unei ntreprinderi are n fabricaie 7 tipuri de produse, P1P7 . Dou materii prime (M1 , M2 ) necesare realizrii acestor produse sunt n cantiti limitate, 200 i respectiv 300 uniti, celelalte fiind n cantiti suficiente oricrui plan de producie. Consumurile de materii prime M1 , M2 pe unitatea de produs pentru fiecare tip, precum i beneficiile nete aduse de producerea unei uniti din fiecare tip de produs sunt date n Tabelul 4.17.
Tabelul 4.17 Produs Materie

P1
3 5 6

P2
4 3 5

P3
2 1 2

P4
3 4 6

P5
5 2 6

P6
2 4 5

P7
3 3 6

M1 M2 Profit

Datorit unei cereri mari de produse P1 , P2 s-a propus ca mcar 25% din ntreaga producie a seciei s fie reprezentat de aceste produse. S se determine un plan de producie care s respecte condiiile impuse i care s aduc un profit total maxim n secia respectiv. R. Trebuie rezolvat urmtoarea problem de programare liniar: max f = max{6x1+5x2+2x3+6x4+6x5+5x6+6x7}

98

Modele i algoritmi de optimizare

3 x1 + 4 x 2 + 2 x 3 + 3x 4 + 5 x 5 + 2 x 6 + 3x 7 200 5 x + 3 x + x + 4 x + 2 x + 4 x + 3 x 300 1 2 3 4 5 6 7 3 3 0 + + + + + x x x x x x x 1 2 3 4 5 6 7 x i 0 , i = 1,7 Se obine max f =430.77 pentru x1=19.23 ; x2= x3= x4= x5=0 ; x2=30.77 ; x2=26.92 .

5. Problema dietei alimentare (problem de amestec) Un meniu trebuie s asigure necesarul n substanele S1 , S2 , S3 , cu ajutorul alimentelor A1 , A2 , A3 . Cantitile de substanele S1 , S2 , S3 , ce se gsesc ntr-o unitate de aliment de fiecare fel, cantitile minime necesare organismului n cele 3 substane, precum i preurile celor 3 alimente sunt trecute n Tabelul 4.18.
Tabelul 4.18 A1 A2 A3 4 5 1 8 3 7 5 7 2 2 4 5

Aliment Substan S1 S1 S1 Pre

Necesar 24 35 40

S se determine cantitile ce trebuie incluse n meniu din cele 3 alimente, astfel nct costul total al meniului s fie minim .
R. n urma modelrii se obine problema de programare liniar sub forma canonic min f = min{8x1+7x2+5x3} 4 x1 + 3 x 2 + 2 x 3 24 5 x + 7 x + 2 x 35 1 2 3 . x1 + 5 x 2 + 4 x 3 40 x i 0 , i = 1,3 Dup introducerea variabilelor de compensare se obine problema sub forma standard, dar nu are o baz canonic evideniat. De aceea se aplic metoda n dou faze. min f = min{8x1+7x2+5x3} 4 x1 + 3x 2 + 2 x 3 x 4 = 24 5 x + 7 x + 2 x x = 35 1 2 3 5 . x1 + 5 x 2 + 4 x 3 x 6 = 40 x i 0 , i = 1,6 Se obine min f = 56 , meniul const din 8 uniti din alimentul al doilea i coninutul n substana S2 depete minimul necesar cu 21 uniti, adic x1=0 , x2=8 , x3=0 , x4=0 , x5=21 , x6=0 .

4. Programare liniar

99

6. Substanele S1 , S2 , S3 , S4 conin n cantiti diferite elementele E1 , E2 , E3 , E4. Din cele 4 substane trebuie fcut un amestec care s conin cel puin 28, 30, 25 i respectiv 25 uniti din cele 4 elemente. Cte o unitate din fiecare tip de substan cost 6, 3, 4 i respectiv 5 u. m. Coninutul unei uniti din fiecare substan n cele 4 elemente este dat de Tabelul 4.19.
Tabelul 4.19 Substan S1 S2 Element E1 E2 E3 E4 3 4 0 5 2 0 3 0

S3
1 3 0 3

S4
3 1 4 1

Coninutul substanelor S1 , S2 n alte elemente ce aduc amestecului anumite proprieti speciale cer ca acest amestec s conin cel puin 3 uniti din S1 i cel puin 3 uniti din S2 . S se determine cantitile ce trebuie amestecate din cele 4 substane astfel nct s fie ndeplinite toate condiiile impuse, iar costul total al amestecului s fie minim.
R. Modelnd problema se obine min f = min {6x1+3x2+4x3+5x4} 3 x1 + 2 x 2 + x 3 + 3 x 4 28 4 x + 3x + x 30 3 4 1 3 x 2 + 4 x 4 25 5 x1 + 3x 3 + x 4 25 x 3 1 x2 2 x i 0 , i = 1,4 . Pentru a reduce numrul restriciilor problemei liniare obinute se poate face schimbarea de variabile y1 = x13 , y2 = x22 , y3 = x3 , y4 = x4 . Se obine problema min g =min {6y1+3y2+4y3+5y4+24} 3 y1 + 2 y 2 + y 3 + 3 y 4 15 4 y + 3 y + y 18 1 3 4 . 3 y 2 + 4 y 4 19 5 y + 3 y + y 10 3 4 1 0 , 1 ,4 y i = i Dup aducerea la forma standard, se aplic metoda n dou faze i, dup revenirea la variabilele xi , se obine soluia: min f =65.416 , pentru x1=3 , x2=2 , x3=4.416 , x4=4.75 .

100

Modele i algoritmi de optimizare

7. O ntreprindere dorete s produc un nou aliaj format din 30% metal A i 70% metal B. Pentru aceasta are la dispoziie alte 5 aliaje ale cror preuri i compoziii sunt date n Tabelul 4.20.
Tabelul 4.20 1 2 3 1 2 5 0 5 0 9 7 5 0 5 0 5 4 3

Aliaj %A %B Pre/kg

4 7 5 2 5 2

5 95 5 1.5

Aliajul dorit va fi produs prin combinarea unor cantiti din celelalte 5 aliaje. S se determine cantitile necesare realizrii noului aliaj cu cost minim.
R. Notm cu xi cantitatea din aliajul i (i=1,2,...,5) care intr n alctuirea noului aliaj. Trebuie rezolvat urmtoarea problem de programare liniar: min {5x1+4x2+3x3+2x4+1.5x5 } 10 x1 + 25 x 2 + 50 x 3 + 75 x 4 + 95 x 5 = 30 90 x1 + 75 x 2 + 50 x 3 + 25 x 4 + 5 x 5 = 70 x ,..., x 0 5 1 care are soluia: x1=0 , x2=0.9 , x3=0 , x4=1 , x5=0 , iar valoarea funciei obiectiv este min f = 3.8 .

8. O rafinrie de petrol are dou surse de aprovizionare cu petrol brut: petrol brut uor la 35$/baril i petrol brut greu la 30 $/baril. Rafinria produce benzin, petrol lampant i benzin superioar, obinnd dintr-un baril de petrol brut cantitile din Tabelul 4.21.
Tabelul 4.21 Produs finit Materie prim Petrol brut uor Petrol brut greu Benzin 0.3 0.3 Petrol lampant 0.2 0.4 Benzin superioar 0.3 0.2

Rafinria s-a angajat s produc 900 000 barili de benzin, 800 000 barili de petrol lampant i 500 000 barili de benzin superioar. Ce cantiti de petrol brut uor i greu trebuie achiziionate pentru a se realiza angajamentul cu un cost minim?
R. Notm cu x1 , x2 , x3 cantitile de petrol brut uor folosite pentru obinerea de benzin, petrol lampant i respectiv benzin superioar, i analog x4 , x5 , x6 , cantitile de petrol brut greu. Se ajunge la urmtoarea problem de programare liniar: min {35(x1 + x2 + x3 ) + 30(x4 + x5 + x6 )}

4. Programare liniar

101

0.3 x1 + 0.3x4 = 900 000 0.2 x + 0.4 x = 800 000 2 5 0.3 x3 + 0.2 x6 = 500 000 x1 , x2 , x3 , x4 , x5 , x6 0 Pentru realizarea planului de producie sunt necesare cantitile 1 666 666.67 barili petrol brut uor i 5 000 000 barili petrol brut greu, costul minim fiind 208 333 333.33 .

9. O firm produce cinci tipuri de piese de schimb pentru automobile. Fiecare pies este turnat n oel la turntorie i apoi este trimis la secia de finisaj. Numrul de ore munc necesare pentru 100 de uniti din fiecare tip de pies n cele dou secii sunt date n Tabelul 4.22.
Tabelul 4.22 Tip pies 1 2 Secie Turntorie Finisaj Profit / 100 uniti 2 3 3 0 1 2 2 0

3 3 2 4 0

4 3 1 2 5

5 1 1 1 0

Capacitatea de turnare i finisare pe parcursul unei luni este de 700, respectiv 1000 ore munc. S se determine numrul de piese din fiecare tip care trebuie produse pentru a se obine un profit maxim.
R. Notnd cu xi numrul de sute de piese de tipul i, i = 1,5 , obinem urmtoarea problem de programare liniar max {30x1+20x2+40x3+25x4+10x5} 2 x1 + x 2 + 3 x 3 + 3 x 4 + x 5 7 3 x1 + 2 x 2 + 2 x 3 + x 4 + x 5 10 x 0 , i = 1,5 i

care are maximul egal cu 120, obinut pentru x1=0 , x2=4 , x3=1 , x4=0 , x5=0 .

10. O firm productoare de calculatoare prognozeaz c n urmtoarele n luni cererea va fi di , i = 1, n . ntr-o lun firma poate produce r uniti cu un cost b. Lucrnd peste program, firma poate produce calculatoare la un cost c > b . Costul unitar de stocare al calculatoarelor de la o lun la alta este s . S se determine planul de producie care minimizeaz costul.

5. PROBLEMA DE TRANSPORT

5.1. Fundamentele algoritmului de transport


Problema de transport (4.8) (4.11) are totdeauna o soluie admisibil, anume m n ai b j , unde S = a i = b j i care este o soluie mrginit de ai i bj . xi j = S i =1 j =1 Exist n total n+m restricii (m ecuaii corespunztoare restriciilor date de centrele de aprovizionare i cele n ecuaii corespunztoare restriciilor date de centrele de consum) la care se adaug condiia de echilibru

a = b
i =1 i j =1

. De aici

rezult c una dintre restricii este redundant. Orice restricie se poate exprima n funcie de celelalte m+n1 rmase.
Teorema 5.1. Problema de transport are totdeauna soluie i o restricie este redundant. nlturnd oricare dintre restricii, cele n+m1 rmase formeaz un sistem liniar independent (Luenberger, 1989). Demonstraie. Existena soluiei i redundana rezult din observaia de mai sus. Deoarece suma restriciilor date de centrele de aprovizionare este egal cu suma restriciilor date de centrele de consum, rezult c orice restricie poate fi exprimat ca o combinaie liniar de celelalte m+n1 . Astfel, orice restricie poate fi eliminat. S presupunem c am eliminat o restricie, fie ea ultima. Presupunem c exist o combinaie liniar a ecuaiilor rmase egal cu zero. S notm cu i , i = 1, m , coeficienii acestei combinaii liniare corespunztori primelor ecuaii

din problema de transport i cu

j , j = 1, n 1

coeficienii corespunztori

ultimelor n1 ecuaii. Fiecare variabil xin , i = 1, m , apare numai n a i - a ecuaie, deoarece ultima ecuaie a fost nlturat. Astfel, i = 0 , i = 1, n . n restul ecuaiilor

x ij

apare numai ntr-o ecuaie i astfel j = 0, j = 1, n 1 . Aadar,

sistemul de n+m1 ecuaii este liniar independent.

Din Teorema 5.1 rezult c o baz pentru problema de transport este format din m+n1 vectori liniar independeni, iar soluia de baz admisibil are m+n1 variabile. Problema dual asociat problemei de transport este dat de (4.51) . Are loc urmtoarea teorem.

5. Problema de transport

103

Teorema 5.2. Cuplul de soluii duale

(x )
ij

(u , v )
i j

este optim pentru

problemele (4.8)-(4.11), respectiv (4.51), dac i numai dac

xij = ai ;
j =1

x
i =1

ij

= b j ; x ij 0

c ij u i v j 0 ; x ij c ij u i v j = 0. (rezult din Teorema ecarturilor complementare). Din ultima condiie rezult c pentru x ij > 0 se obine c ij = u i + v j . n cele ce urmeaz prin celul se nelege o pereche de indici (i,j), iar prin ciclu se nelege un ir de celule notate (i1 , j1 ) , (i1 , j 2 ) , (i2 , j1 ) , L , (it , jt ) , (it , j1 ) . n continuare vom evidenia cea mai important proprietate structural a problemei de transport: toate bazele sunt triunghiulare. Aceast proprietate simplific rezolvarea unui sistem de ecuaii liniare a crui matrice a coeficienilor are o astfel de baz i aceasta conduce la implementarea eficient a metodei simplex pentru problema de transport.

Definiia 5.1. O matrice ptratic se numete triunghiular dac prin permutri ale liniilor i coloanelor sale poate fi pus sub forma unei matrice inferior triunghiular.
O matrice inferior triunghiular este triunghiular n sensul definiiei de mai sus. O matrice nesingular superior triunghiular este de asemenea triunghiular deoarece prin schimbarea ordinii liniilor i coloanelor sale devine inferior triunghiular. Algoritm pentru a determina dac o matrice este triunghiular. Pas 1. Se gsete linia care are un singur element nenul. Pas 2. Se formeaz o submatrice din matricea dat prin tierea liniei i coloanei elementului nenul din pasul 1. Se reia pasul 1 cu submatricea obinut. Dac aceast procedur poate fi continuat pn cnd toate liniile au fost eliminate, atunci matricea este triunghiular. Ea poate fi pus sub forma inferior triunghiular prin aranjarea liniilor i coloanelor n ordinea n care au fost determinate prin procedura de mai sus.

Exemplu. Folosind algoritmul de mai sus, s stabilim dac matricea 1 1 0 0 0 0 0 1 0 0 B = 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 este triunghiular.

104

Modele i algoritmi de optimizare

Notm n partea stng a matricei B ordinea n care au fost gsite liniile cu un singur element nenul, iar sub matricea B, ordinea coloanelor corespunztoare elementului nenul. 1 1 0 0 0 5 0 0 1 0 0 1 B = 0 0 0 1 1 3 1 0 0 1 0 4 0 0 1 0 1 2 4 5 1 3 2 Permutm liniile n ordinea dat de coloana din dreapta matricei B i obinem matricea 0 0 1 0 0 0 0 1 0 1 B1 = 0 0 0 1 1 . 1 0 0 1 0 1 1 0 0 0 Permutm coloanele n matricea B1 n ordinea dat de linia de sub matricea B i obinem matricea 1 0 0 0 0 1 1 0 0 0 B2 = 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 care este inferior triunghiular i astfel matricea iniial este triunghiular.

Aceast proprietate a matricelor este important i are aplicaii n rezolvarea sistemelor de ecuaii liniare prin metoda substituiei (eliminrii) a lui Gauss. Sistemul de ecuaii Ax=b , cu A inferior triunghiular permite determinarea lui x1 din prima ecuaie, apoi x2 din cea de-a doua ecuaia .a.m.d. Teorema 5.3. Orice baz a problemei de transport este triunghiular. Demonstraie. Considerm sistemul de restricii din problema de transport: n xij = ai ( 1) i = 1, m j =1 m x ij = b j j = 1, n i =1 Schimbm semnul la primele m ecuaii i atunci matricea coeficienilor este format numai din 1 , 0, +1. Din Teorema 5.1, tergnd oricare dintre ecuaiile de mai sus, se elimin redundana. Din matricea coeficienilor care rezult se formeaz o

5. Problema de transport

105

baz nesingular, B, prin selectarea unei mulimi de m+n1 coloane. Fiecare coloan a matricei B conine cel mult dou elemente nenule, unul egal cu +1 i altul egal cu 1 . Astfel exist cel mult 2(m+n1) elemente nenule n baz. Totui, dac orice coloan ar conine dou elemente nenule, atunci suma lor ar fi zero i s-ar contrazice nesingularitatea lui B . Astfel, cel puin o coloan a lui B trebuie s conin numai un element nenul. Aceasta nseamn c numrul total de elemente nenule din B este mai mic dect 2(m+n1) . Rezult c trebuie s fie o linie cu numai un element nenul, altfel, dac orice linie ar avea dou sau mai multe elemente nenule, numrul total al elementelor nenule ar fi cel puin 2(m+n1). Deducem c primul pas al procedurii de verificare a triunghiularitii se verific i raionamentul se poate continua pentru submatricea obinut din B prin tierea liniei i coloanei corespunztoare elementului nenul. Se continu raionamentul, stabilind c B este triunghiular. Deoarece orice matrice baz n problema de transport este triunghiular i toate elementele nenule sunt egale cu 1, rezult c, prin rezolvarea sistemului de ecuaii liniare Bx=b cu metoda substituiei, dac toate datele iniiale sunt numere ntregi, soluia va fi format din numere ntregi. Acest lucru poate fi dat ca un corolar la Teorema 5.3. Corolar 5.1. Dac sumele liniilor i coloanelor unei probleme de transport sunt ntregi, atunci variabilele de baz n orice soluie de baz sunt ntregi. Metoda simplex aplicat problemei de transport, innd seama de rezultatele de mai sus, este o versiune a algoritmului simplex revizuit i poart numele de algoritmul de transport (datorat lui Kantorovich). Multiplicatorii simplex asociai cu ecuaiile restriciilor i notm cu =(u,v) , uRm, vRn . Deoarece o restricie este redundant, vom considera de exemplu c vn=0 . Dat o baz B , multiplicatorii simplex se gsesc ca soluii ale sistemului B = c B . Ca s-i determinm n mod explicit din aceast ecuaie, ne referim din nou la sistemul iniial de restricii. Dac xij este necunoscut de baz, atunci coloana corespunztoare din A va fi inclus n B. Aceast coloan are exact dou elemenete nenule egale cu +1: unul n pozitia i din partea superioar i altul n poziia j din partea inferioar. Aceast coloan genereaz pentru multiplicatorii simplex ecuaia ui+vj=cij , ui i vj sunt componentele corespunztoare ale vectorului deoarece multiplicatorilor simplex. n general, ecuaiile multiplicatorilor simplex sunt ui+vj=cij ()i, j pentru care xij sunt bazice. Matricea coeficienilor acestui sistem este transpusa matricei bazei, aadar este triunghiular i sistemul poate fi rezolvat prin metoda substituiei.

106

Modele i algoritmi de optimizare

Corolar 5.2. Dac toate costurile unitare din problema de transport sunt ntregi, atunci, dnd o valoare ntreag la un multiplicator oarecare, multiplicatorii simplex asociai cu orice baz sunt ntregi. Dac multiplicatorii simplex sunt cunoscui, coeficienii costurilor relative pentru variabilele nebazice pot fi calculai cu relaiile S = S c S . n acest caz coeficienii costurilor relative sunt ij = u i + v j cij , () i = 1, m , () j = 1, n . Pentru variabilele bazice

ij = 0 . Dat o baz, calculul multiplicatorilor

simplex este asemntor cu calculul variabilelor de baz. Conform cu algoritmul simplex general, dac o variabil nebazic are un coeficient de cost relativ pozitiv, atunci acea variabil este candidat s intre n baz. Cum valoarea acestei variabile este cresctoare, valorile variabilelor de baz curente vor fi schimbate astfel nct s se menin admisibilitatea soluiei. Valoarea noii variabile va crete exact pn la valoarea pentru care vechea variabil de baz devine zero. Dac noul vector de baz este d , atunci schimbarea n celelalte variabile de baz este dat de B 1d , unde B este baza curent. Din nou avem de-a face cu o problem de rezolvare a unui sistem cu baz triunghiular i din nou soluia are proprieti speciale. Teorema 5.4. Fie B o baz extras din A (dup ignorarea unei linii) i fie d o coloan a lui A care nu este inclus n B. Atunci, componentele vectorului y = B 1 d sunt fie 1 , 0 sau +1. Demonstraie. Fie y soluia sistemului By=d. Atunci, y este reprezentarea lui d n baza B . Acest sistem de ecuaii poate fi rezolvat cu regula lui Cramer det B k yk = , det B unde Bk este matricea obinut prin nlocuirea n matricea B a coloanei k cu coloana d . Att B ct i Bk sunt submatrice ale lui A. Matricea B poate fi pus sub forma triunghiular cu toate elementele diagonalei egale cu +1. Atunci, detB=+1 sau 1 , dup cum liniile sau coloanele au fost permutate. Analog detBk=+1 , 0 sau 1 . Concluzionm c fiecare component a lui y este fie 0, +1 sau 1 . Din Teorema 5.4 rezult c atunci cnd o nou variabil este adugat la soluie la un nivel unitar, variabilele de baz curente se vor schimba cu +1, 1 sau 0. Dac noua variabil are valoarea , atunci, corespunztor, variabilele de baz se vor schimba cu +, , sau 0. Este, aadar, necesar s determinm semnul schimbrii fiecrei variabile de baz.

5. Problema de transport

107

Determinarea acestor semne se face prin parcurgerea tabelului de trasport. Se atribuie un semn + celulei corespunztoare variabilei care intr n baz, reprezentnd o schimbare cu +, unde nu este nc determinat. Atunci, plusurile, minusurile i zerourile sunt atribuite unul cte unul celulelor anumitor variabile de baz, indicnd schimbri cu +, , sau 0 ca s se menin soluia admisibil. La fiecare pas, exist o relaie B 1 d , care determin n mod unic semnul care va fi atribuit celorlalte variabile de baz. Rezultatul va fi o succesiune de plusuri i minusuri atribuite celulelor care formeaz un ciclu iniiat de celula variabilei care va intra n baz. De fapt, noua schimbare este o parte a unui ciclu de redistribuire a fluxului mrfii n sistemul de transport. Dup ce succesiunea de plusuri, minusuri i zerouri a fost determinat, se obine o nou soluie admisibil prin modificarea nivelului variabilelor cu +, , sau 0. trebuie determinat asfel nct vechea variabil de baz s ia valoarea 0. Se examineaz variabilele crora li s-a atribuit semnul minus pentru a determina minimul valorilor acestor variabile, iar valoarea gsit va fi atribuit lui . Aceast valoare se adaug celulelor care au semnul plus i se scade din cele cu semnul minus. Rezultatul va fi o nou soluie admisibil.

5.2. Enunul algoritmului de transport


Pe baza rezultatelor de mai sus, se poate enuna algoritmul de transport sub urmtoarea form.
Pas 0. Se determin o soluie de baz admisibil x ij , corespunztoare bazei B,

format cu m+n1 coloane liniar independente din matricea A i fie B mulimea celulelor de baz; Pas 1. Se rezolv sistemul de ecuaii u i + v j = c ij , () (i, j ) B . Se obine o soluie particular lund vn=0 i se calculeaz pentru aceast soluie coeficienii de cost redus, ij = u i + v j cij , () (i, j ) S ,

S fiind mulimea celulelor corespunztoare coloanelor matricei A care nu se afl n B (celule secundare). Dac ij 0 pentru () (i, j ) S , atunci soluia de baz x ij este
optim. Stop! Altfel, se determin ( s, k ) S , lund drept criteriu de intrare n baz

sk = max{ ij ()(i, j ) S

Pas 2. Se determin ciclul format de ( s, k ) S cu o parte din celulele lui B i se numeroteaz celulele alegnd un sens de parcurgere a ciclului.

108

Modele i algoritmi de optimizare

Se determin celula (r , t ) B care va iei din baz , lund drept criteriu


de ieire din baz x rt = min x ij

{ },

minimul fiind luat dup toate celulele

de ordin par din ciclul determinat mai sus. ~ Pas 3. Se formeaz, pornind de la baza B, baza B , prin nlocuirea coloanei art ~ cu coloana ask . Se determin soluia de baz admisibil x ij ~ corespunztoare bazei B , folosind pentru schimbarea bazei formulele: xij xrt dac (i,j ) este de rang par n ciclu ~ xij = xij + xrt dac (i,j ) este de rang impar n ciclu x dac (i,j ) nu face parte din ciclu ij ~ Se nlocuiete B cu B , x ij cu ~ x ij i se trece la Pas 1.

5.3. Determinarea soluiei iniiale de baz

Algoritmul prezentat mai nainte necesit la pornire un program de baz iniial. Metoda general de obinere a acestui program este urmtoarea (Malia i Zidroiu, 1971): a) Se d unei variabile de baz oarecare xij valoarea x ij = min {a l , bk } .
1 l m 1 k n

b) Se nlocuiesc ai i bj cu a i x ij i respectiv cu b j x ij i se suprim linia i , dac x ij = ai , sau coloana j , dac x ij =bj . Dac ai=bj se suprim fie linia i , fie coloana j . c) Se repet operaiile de la a) i b) pn cnd toate cererile sunt satisfcute. S demonstrm c algoritmul de mai sus produce o soluie de baz. De fiecare dat cnd apare un xij>0 se suprim o linie i/sau o coloan. La sfrit, vor rmne o coloan i o linie nesuprimate. Pn n acest moment au fost suprimate m+n2 linii i coloane. Cantitatea rmas n linia nesuprimat este egal cu cantitatea rmas n coloana nesuprimat, aa cum rezult din condiia de echilibru. Satisfcnd i ultima linie, se obine o nou variabil xij>0 , adic sunt cel mult m+n1 variabile xij>0. Exist diferite metode de determinare a programului de baz iniial obinute din metoda general prezentat mai sus, dup cum se particularizeaz xij cu care se ncepe metoda, cum ar fi de exemplu: metoda colului nord-vest a lui G. B. Dantzig (se selecteaz celula (i,j) situat n prima linie i prima coloan) i metoda

5. Problema de transport

109

costului minim a lui H. S. Houthakker (se selecteaz la fiecare pas celula (i,j) corespunztoare costului minim cij ).

5.4. Exemplu

O ntreprindere de construcii are n lucru 4 blocuri de locuine n diferite locuri n ora i se aprovizioneaz cu mortar de la 3 staii de betoane de asemenea amplasate n diferite locuri. Prin contract, prima staie de betoane asigur 10 m3 , a doua 15 m3 , iar a treia 25 m3 . Necesarul zilnic de mortar pentru fiecare bloc este de 5 m3 pentru primul, 10 m3 pentru al doilea, 20 m3 pentru al treilea i 15 m3 pentru al patrulea. Preul de transport pentru 1 m3 de la o staie de betoane la un bloc este dat de Tabelul 5.1.
Tabelul 5.1 Bloc Staie betoane S1 S2 S3 Necesar (bj) B1 8 4 1 5 B2 3 1 9 10 B3 5 6 4 20 B4 2 7 3 15 Disponibil ( ai ) 10 15 25

S se gseasc un plan de transport care s determine cantitile zilnice xij de mortar ce trebuie aduse de la staia de betoane i la blocul j, astfel nct cheltuielile de transport s fie minime.
Rezolvare a) Modelarea problemei 3 4 multiplicatorii min cij xij simplex i =1 j =1 + x u1 11 x12 + x13 + x14 = 10 x + x + x + x = 15 u2 22 23 24 21 + + + x x x x u3 32 33 34 = 25 31 x + x21 + x31 = 5 v1 11 x12 + x22 + x32 = 10 v2 v3 x13 + x23 + x33 = 20 x14 + x24 + x34 = 15 v4 xij 0 , 1 i 3 , 1 j 4

110

Modele i algoritmi de optimizare

Matricea restriciilor 1 0 0 A = 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1

b) Determinarea unei soluii iniiale de baz Determinarea soluiei iniiale de baz se face cu metoda colului nord-vest, pornind de la Tabelul 5.1, obinndu-se Tabelul 5.2. min {a1,b1}= min {10,5}=5=b1 , x11=5 se suprim coloana 1 min {a1,b2}= min {5,10}=5=a1 , x12=5 se suprim linia 1 min {a2,b2}= min {10,5}=5=b2 , x22=5 se suprim coloana 2 min {a2,b3}= min {10,20}=10=a2 , x23=100 se suprim linia 2 min {a3,b3}= min {25,10}=10=b3 , x33=10 se suprim coloana 3 min {a3,b4}= min {15,15}=15=b4 , x34=15 se suprim linia 3 i coloana 4
Tabelul 5.2 Bloc Staie betoane S1 S2 S3 Necesar (bj) B1 5 B2 5 5 10 5 B3 B4 Disponibil( ai ) 10 5 15 10 25 15

10 10 20 10

15 15

Mulimea celulelor de baz este urmtoarea B= {(1,1), (1,2 ), (2,2), (2,3), (3,3), (3,4)} . Valoarea funciei obiectiv pentru baza dat de metoda colului nord-vest este f=58+53+51+106+104+153=205 dup cum rezult din Tabelul 5.3.
8 5 4 5 1 9 10 5 1 10 4 15 3 6 7 Tabelul 5.3 3 5 2

n Tabelul 5.3 celulele cu diagonal sunt celulele de baz. Matricea bazei corespunztoare este x11 x12 x22 x23 x33 x34

5. Problema de transport

111

1 0 0 B= 1 0 0

1 0 0 0 1 0

0 1 0 0 1 0

0 1 0 0 0 1

0 0 1 0 0 1

0 0 1 0 0 0

c) Algoritmul de transport Iteraia I Pas 1. ncepem algoritmul cu soluia de baz obinut n etapa precedent. Se consider v4=0 i se rezolv sistemul B = c = ( B T ) 1 c B , unde c B B =(8 3 1 6 4 3) , rezultnd = (u1 u 2 u 3 v1 v 2 v 3 ) = (7 5 3 1 4 1) . Obinem pentru celulele nebazice coeficienii de cost redus, ij = u i + v j c ij , valorile: 13=u1+v3c13=7+15=3; 14=u1+v4c14=0+72=5; 21=u2+v1c21=5+14=2; 24=u2+v4c24=57=2; 31=u3+v1c31=3+11=3; 32=u3+v2c32=349=10. Cum nu toi ij 0 , () (i, j ) S , continum cu determinarea celulei care intr n baz sk = max{ ij
ij 0

() (i, j ) S

(i,j ) S } = 14 = 5

Intr n baz celula (1,4) . Vectorul d corespunztor este d=(1 0 0 0 0 0) . Pas 2. Se determin ciclul iniiat de celula (1,4) x11 x12 x22 x23 x33 x34 y = B 1 d = B 1 (1 0 0 0 0 0 ) = (0 1 1 1 1 1) C1 = (1,4) , (1,2) , (2,2 ) , (2,3) , (3,3) , (3,4 ) , (1,4) .

Se determin celula care iese din baza B1 cu criteriul { xij }= x12 = 5 x i0 j o = min
(i , j ){ (1, 2 ) , (2 , 3 ) , (3, 4 )}

(minimul s-a luat dup toate celulele de ordin par (poziiile cu semn minus) din ciclul C1) . ~ Pas 3. Aadar, iese din baz celula (1,2) i se obine baza B1 cu celulele: ~ B1 = { (1,1) , (1,4 ) , (2 ,2) , (2,3) , (3,3) , (3,4 ) } . Se calculeaz xij xrt dac celula (i,j ) este de rang par n ciclul C1 , semnul ~ xij = xij + xrt dac celula (i,j ) este de rang impar n ciclul C1 , semnul + x dac celula (i,j ) C1 ij

i se trec n Tabelul 5.4

112 Tabelul 5.4 3 55 4 5+5 1 9 10+5 1 105

Modele i algoritmi de optimizare

8 5+0

5
6 4 155 7 3

Valoarea funciei obiectiv f=58+52+101+56+154+103=180 . Iteraia a IIa Pas 1. Considernd din nou v4=0 se rezolv sistemul ~ ~T ~ , unde c B1 = c = ( B1 ) 1 c B ~ ~ =(8 2 1 6 4 3) B B 1
1
1

intr n baz sk = max{ ij (i,j ) S 1 } = 31 = 8 .


ij 0

= (u1 u 2 u 3 v1 v 2 v3 ) = (2 5 3 6 4 1) , i obinem pentru celulele nebazice coeficienii de cost redus, 12=u1+v2c12=243=5; 13=u1+v3c13=2+15=2; 21=u2+v1c21=5+64=7 24=u2+v4c24=57=2; 31=u3+v1c31=3+61=8; 32=u3+v2c32=349=10. Deoarece nu toi ij 0 , ()(i, j ) S 1 , continum cu determinarea celulei care

=(0 0 1 1 0 0) . Intr n baz celula (3,1) . Vectorul d corespunztor este d 1 Pas 2. Se determin ciclul iniiat de celula (3,1) x11 x14 x22 x23 x33 x34

C2 = (3,1) , (1,1) , (1,4) , (3,4 ) , (3,1) ~ Se determin celula care iese din baza B 1 cu criteriul x i0 j 0 =
(i , j ){ (1,1) , (3, 4 ) }

y = B1 d 1 = B1

(0

0 1 1 0 0) = ( 1 1 0 0 0 1)

min

{x }= x
ij

11

=5

(minimul s-a luat dup toate celulele de ordin par din ciclul C2) . ~ Pas 3. Acum iese din baz celula (1,1) i se obine baza B 2 cu celulele: ~ B 2 = { (3,1) , (1,4) , (2 ,2) , (2,3) , (3,3) , (3,4) } . Se calculeaz xij xrt dac celula (i,j ) este de rang par n ciclul C2 ~ xij = xij + xrt dac celula (i,j ) este de rang impar n ciclul C2 x dac celula (i,j ) C2 ij i se trec n Tabelul 5.5.
55 8 4 Tabelul 5.5 3 1 5 5+5 6 7 2

5. Problema de transport
10 1 5 9 15 5 4 105 3

113

Valoarea funciei obiectiv f=102+101+56+51+154+53=140 . Iteraia a IIIa Pas 1. Din nou lum v4=0 i rezolvm sistemul ~ ~T ~ , unde c B 2 = c = ( B 2 ) 1 c B ~ ~ =(1 2 1 6 4 3) B B 21
1
1

= (u1 u 2 u 3 v1 v 2 v3 ) = (2 5 3 2 4 1) , i obinem pentru celulele nebazice coeficienii de cost redus, 11=u1+v1c11=228=8; 12=u1+v2c12=243=5; 31=u3+v1c31=2+15=2; 21=u2+v1c21=524=1; 24=u2+v4c24=57=2; 32=u3+v2c32=349=10. Deoarece ij 0 , () (i, j ) S 2 , soluia x14=10 , x22=10 , x23=5 , x31=5 , x33=15 , x34=5 este optim, d pentru funcia obiectiv valoarea f=140 i algoritmul se oprete. Rezolvm aceast problem i cu ajutorul pachetului de programe Management Scientist. Dup lansarea pachetului de programe alegem modulul Transportation din fereastra prezentat n Figura 2.4. Din fereastra care apare se selectez din submeniul File, New pentru crearea unei noi probleme de transport, se introduc numrul de depozite i numrul de centre de consum, apoi costurile unitare de transport ca n Figura 5.1.

Figura 5.1

Pentru rezolvarea problemei, din submeniul Solution se selecteaz Solve, se alege din fereastra Select Optimization Criteria, Maximization Objective . Se afieaz fereastra cu rezultatele problemei. Rezultatele obinute, aa cum se vd n Figura 5.2, coincid cu cele obinute aplicnd algoritmul de transport.

114

Modele i algoritmi de optimizare

Figura 5.2

S rezolvm aceeai problem utiliznd Solver-ul din Excel. Pentru aceasta crem foaia de calcul cu datele de intrare ca n Figur 5.3, efectund paii descrii n continuare.

Figura 5.3

n celula D3 introducem funcia de optimizat D3 =C7*B13+C8*B14+

5. Problema de transport

115

C9*B15+D7*D13+D8*D14+D9*D15+E7*F13+E8*F14+E9*F15+F7*H13+F8 *H14+F9*H15. Celulele cu necunoscutele problemei sunt B13B15, D13D15, F13F15 i H13H15. Celulele B18B24 conin restriciile problemei conform cu comentariile din celulele A18A24, apoi se adaug condiiile de nenegativitate. De exemplu, celula B18 conine =B13+D13+F13+H13, avnd n vedere cum sunt introduse datele problemei. Analog celelalte celule (B19B24). Dup apsarea butonului Solve se obin rezultatele problemei i rapoartele ca n Tabelele 5.65.8. Remarcm c rezultatele sunt aceleai cu cele obinute cu Management Scientist. .........
Tabelul 5.6
Microsoft Excel 10.0 Answer Report Worksheet: [Problema de transport.xls]Sheet1 Report Created: 6/24/2002 11:39:27 PM Target Cell (Min) Cell $C$3 Name Functia de optimizat Original Value 140 Adjustable Cells Cell $B$15 $C$15 $D$15 $E$15 $B$16 $C$16 $D$16 $E$16 $B$17 $C$17 $D$17 $E$17 Name Solutia problemei B2 B3 B4 Solutia problemei B2 B3 B4 Solutia problemei B2 B3 B4 Original Value 0 0 0 10 0 10 5 0 5 0 15 5 Constraints Cell $B$23 $B$24 $B$25 $B$26 $B$27 $B$28 Name Restrictiile problemei Restrictiile problemei Restrictiile problemei Restrictiile problemei Restrictiile problemei Restrictiile problemei Cell Value 10 15 25 5 10 20 Formula $B$23=$F$7 $B$24=$F$8 $B$25=$F$9 $B$26=$B$10 $B$27=$C$10 $B$28=$D$10 Status Not Binding Not Binding Not Binding Not Binding Not Binding Not Binding Slack 0 0 0 0 0 0 Final Value 0 0 0 10 0 10 5 0 5 0 15 5 Final Value 140

116
$B$29 $B$15 $C$15 $D$15 $E$15 $B$16 $C$16 $D$16 $E$16 $B$17 $C$17 $D$17 $E$17 Restrictiile problemei Solutia problemei B2 B3 B4 Solutia problemei B2 B3 B4 Solutia problemei B2 B3 B4 15 0 0 0 10 0 10 5 0 5 0 15 5

Modele i algoritmi de optimizare


$B$29=$E$10 $B$15>=0 $C$15>=0 $D$15>=0 $E$15>=0 $B$16>=0 $C$16>=0 $D$16>=0 $E$16>=0 $B$17>=0 $C$17>=0 $D$17>=0 $E$17>=0 Not Binding Binding Binding Binding Not Binding Binding Not Binding Not Binding Binding Not Binding Binding Not Binding Not Binding 0 0 0 0 10 0 10 5 0 5 0 15 5

Tabelul 5.7 Microsoft Excel 10.0 Sensitivity Report Worksheet: [Problema de transport.xls]Sheet1 Report Created: 7/10/2002 11:30:45 PM Adjustable Cells
Cell Name Final Value Reduced Cost Objective Coefficient Allowable Increase Allowable Decrease

$B$13 $B$14 $B$15 $D$13 $D$14 $D$15 $F$13 $F$14 $F$15 $H$13 $H$14 $H$15

x11= Solutia problemei x21= Solutia problemei x31= Solutia problemei x12= B2 x22= B2 x32= B2 x13= B4 x23= B4 x33= B4 X14= X24= X34=

0 0 5 0 10 0 0 5 15 10 0 5

8 1.00 0 5 0 10 2 0 0 0 2 0 Constraints

8 4.00 1 3 1 9 5 6 4 2 7 3

1E+30 1E+30 1.00 1E+30 5 1E+30 1E+30 1.00 2 2 1E+30 2

8 1.00 1E+30 5 1E+30 10 2 5 1.00 1E+30 2 2

Cell

Name

Final Value

Shadow Price

Constraint R.H. Side

Allowable Increase

Allowable Decrease

$B$18

x11+x12+x13+x14= Restrictiile problemei

10

10

5. Problema de transport
x21+x22+x23+x24= Restrictiile problemei x31+x32+x33+x34= Restrictiile problemei x11+x21+x31= Restrictiile problemei x12+x22+x32= Restrictiile problemei x13+x23+x33= Restrictiile problemei x14+x24+x34= Restrictiile problemei

117

$B$19

15

15

1E+30

$B$20

25

25

$B$21

$B$22

10

10

10

$B$23

20

20

$B$24

15

15

Tabelul 5.8 Microsoft Excel 10.0 Limits Report Worksheet: [Problema de transport.xls]Limits Report 1 Report Created: 7/11/2002 8:23:41 AM Target Cell $D$3 Cell $B$13 $B$14 $B$15 $D$13 $D$14 $D$15 $F$13 $F$14 Name Functia de optimizat Adjustable Name x11= Solutia problemei x21= Solutia problemei x31= Solutia problemei x12= B2 x22= B2 x32= B2 x13= B4 x23= B4 Value 0 0 5 0 10 0 0 5 Value 140 Lower Limit 0 0 5 0 10 0 0 5 Target Result 140 140 140 140 140 140 140 140 Upper Limit 0 0 5 0 10 0 0 5 Target Result 140 140 140 140 140 140 140 140

118 $F$15 $H$13 $H$14 $H$15 x33= B4 x14= x24= x34= 15 10 0 5 15 10 0 5

Modele i algoritmi de optimizare


140 140 140 140 15 10 0 5 140 140 140 140

5. Problema de transport

119

5.5. Problema atribuirii sarcinilor


S se determine atribuirea optim a n sarcini la n specialiti tiind c: unui specialist i se atribuie o singur sarcin, sarcina este executat de un singur specialist, iar profitul executrii sarcinii j de ctre specialistul i este cij . Atribuirea este optim dac profitul obinut este maxim (Luenberger, 1989). Trebuie s determinm xij , i = 1, n , j = 1, n astfel nct

n n max cij xij n j =1 1=1 x = 1 , i = 1, n ij (5.1) j =1 n xij = 1 , j = 1, n j =1 xij 0 , i = 1, n , i = 1, n n aceast formulare fiecare variabil xij trebuie s ia numai valorile 0 sau 1 .

Teorema 5.5. Orice soluie de baz admisibil pentru problema de atribuire (5.1) are toate componentele, xij , egale fie cu 0, fie cu 1. Demonstraie. Din corolarul 5.1 toate variabilele de baz n orice soluie de baz sunt ntregi. Variabilele xij nu pot fi mai mari dect 1 i cum sunt nenegative, nu pot lua dect valorile 0 sau 1 .

Astfel, sunt cel mult n variabile de baz care au valoarea 1, deoarece exist cel mult un singur 1 pe fiecare linie i fiecare coloan. ntr-o problem de transport de aceast dimensiune o soluie de baz nedegenerat ar avea 2n1 componente pozitive. Problema atribuirii sarcinilor are soluia admisibil de baz puternic degenerat avnd n1 componente de baz nule. Pentru rezolvarea problemei de atribuire se poate folosi algoritmul de transport sau algoritmul primaldual pentru problema de programare liniar.

5.6. Probleme propuse


1. Trei staii de betoane, Si, se aprovizioneaz cu ciment de la trei rampe de descrcare, Ri . Cantitile necesare fiecrei staii i cele oferite de fiecare ramp de descrcare, precum i costurile de transport de la fiecare ramp la fiecare staie de betoane sunt trecute n Tabelul 5.9 .
Tabelul 5.9

120 Staie Ramp Costuri (u.m.)

Modele i algoritmi de optimizare


Ofert (tone) 17 21 23

S1
7 3 4 19

S2
2 6 5 28

S3
5 3 6 14

R1 R2 R3 Necesar (tone)

S se precizeze planul de transport care s conduc la costul minim de transport i ct este acest cost.
R. Transportnd de la R1 pentru S2 17 tone, de la R2 pentru S1 7 tone i pentru S3 14 tone, de la R3 pentru S1 12 tone i pentru S2 11 tone, se obine costul minim Cmin=200 u.m.

2. O firm textil are dou fabrici, doi furnizori de materii prime i trei centre de desfacere. Costurile de transport pentru o ton de ncrctur ntre furnizor i fabrici i ntre fabrici i centrele de desfacere sunt date n Tabelul 5.10 .
Tabelul 5.10 Fabric A Furnizor 1 2 1 2 B Fabric 1.5 1.5 A B 4 3 2 4 1 2 Centru de desfacere 1 2 3

Sunt disponibile 10 tone de la furnizorul 1 i 15 tone de la furnizorul 2. Cele trei centre de desfacere necesit 8, 14 respectiv 3 tone de produse finite. Cele dou fabrici au capacitate de producie nelimitat. a) S se reduc problema la o problem de transport cu dou surse i trei destinaii i s se determine un plan de transport care s minimizeze cheltuielile totale. b) Dac fabrica A are o capacitate de producie de 8 tone i fabrica B de 7 tone, s se descompun problema n dou probleme de transport i s se rezolve.
3. O firm are nevoie s angajeze n trei posturi vacante trei persoane cu calificri diferite. Pentru aceste posturi sunt trei pretendeni, fiecare putnd ocupa oricare loc vacant cu acelai salariu, dar datorit deosebirii de aptitudini, studii i experien, utilitatea fiecrui candidat pentru firm depinde de postul pe care este angajat. Veniturile anuale ale firmei de pe urma fiecrui candidat, angajat pe unul din cele trei posturi vacante, sunt trecute n Tabelul 5.11.

5. Problema de transport
Tabelul 5.11 Funcie 1 Candidat 1 2 3 5 6 8 4 7 11 7 3 2

121

S se decid cea mai bun repartizare pe funcii a candidailor, astfel nct ctigurile firmei s fie maxime.
R. Repartiznd candidatul 1 pentru funcia 3, candidatul 2 pentru funcia 1 i candidatul 3 pentru funcia 2, firma obine un ctig maxim de 24 .

4. Un centru de proiectare are de realizat trei contracte pentru trei beneficiari (cte unul pentru fiecare beneficiar n parte) i timpii necesari realizrii acestor proiecte (n sptmni) pentru cele trei echipe de proiectare sunt trecui n Tabelul 5.12.
Tabelul 5.12 Client Echipa de proiectare A 1 2 3 10 9 6 B 15 18 14 C 9 5 3

Dac fiecrei echipe i se atribuie un singur proiect, care va fi cea mai eficient atribuire n sensul celui mai mic numr de sptmni necesare pentru realizarea celor trei proiecte?
R. Echipei 1 i se va repartiza proiectul 2, echipei 2 i se va repartiza proiectul 3, echipei 3 i se va repartiza proiectul 1, iar timpul minim necesar realizrii celor trei proiecte este de 26 sptmni.

5. O firm care organizeaz mese festive trebuie s serveasc n fiecare sear cte un banchet, timp de 4 zile. Pentru fiecare zi i sunt necesare ri fee de mese curate, r1=100 , r2=130 , r3=150 , r4=140 . Feele de mese murdare se trimit la curtorie, care le poate spla rapid (de pe o zi pe alta) cu un pre c1=6 u.m., sau normal (la dou zile), cu un pre c2=4 u.m. Firma poate i s cumpere fee de mese la un pre c0=12 . Stocul iniial de fee de mese este s=200. S se determine costul minim pentru a asigura fee de mese curate n fiecare sear.

6. PROGRAMARE PTRATIC

6.1. Exemple de probleme care conduc la programare ptratic 6.1.1. Utilizarea optim a resurselor
Considerm, ca i n cazul programrii liniare, c avem la dispoziie m resurse n cantitile bi , i = 1, m . Cu ajutorul acestor resurse se pot desfura n activiti de producie i s notm cu xj , j = 1, n , nivelul fiecrei activiti j. Fie aij cantitatea din resursa i necesar pentru producerea unei uniti din produsul j, ci preul de desfacere i di costul de producie. Se pune problema determinrii unui program de lucru astfel nct profitul obinut s fie maxim. Pentru a obine profitul maxim trebuie ca toat producia realizat s se vnd la preurile cj , ceea ce este greu de acceptat. Este natural s presupunem c volumul de producie xj care se vinde descrete o dat cu creterea preului de vnzare yj , astfel: (6.1) ( j0 , j0 ). yj=jj xj Dependena liniar a preului yj de nivelul de producie xj vndut este de asemenea o simplificare a realitii, dar mai realist dect faptul c preurile y j nu depind de xj . Astfel se obine urmtorul model (Malia i Zidroiu, 1971): n n 2 max j x j + ( d j + j ) x j = f ( x) j =1 j =1 m 1 i m (6.2) a ij x j bi j =1 x j 0 j = 1,n Funcia obiectiv a acestui model este o form ptratic. Modelul (6.2) poate fi extins n sensul c i costul unitar de producie di poate depinde de nivelul de producie xj , astfel d j = d j j x j cu j 0 , iar preul unitar de vnzare yj depinde de volumul de producie constituit din mai multe produse
y j = j jk x k .
k =1 n

6. Programare ptratic

123

6.1.2. Problema investiiei


S presupunem c exist mai multe domenii n care se pot face investiii, anume D1, ..., Dn . Presupunem c investind suma xj n domeniul Dj se obine un venit cj(xj) care depinde liniar de suma investit xj cj = j + j xj . S notm cu f venitul total adus de planul de investiii adoptat f ( x) = ( j + j x j ) x j
n j =1

i astfel se obine modelul n max ( j + j x j ) x j = f ( x) j =1 m 1 i m (6.3) a ij x j bi j =1 x j 0 j = 1,n Am obinut din nou o problem de optimizare n care funcia obiectiv este o form ptratic, iar restriciile sunt liniare.

6.1.3. Regresii liniare


Presupunem c avem o mrime y care depinde liniar de variabilele x1, ..., xn , astfel y=a1 x1+ ...+ an xn. Se pune problema estimrii parametrilor a1, ..., an , presupunnd cunoscute k observaii asupra lui y i xi , i = 1, m
j x1j ,..., x m , j = 1,k

n sensul minimizrii sumei ptratelor abaterilor ponderat cu nite factori bj>0

y j a i xij eventual
2

n min b j y a i x ij j . j =1 i =1 Asupra parametrilor a1, ..., an se impun condiii suplimentare, de tipul m

a i a i a i+ sau

i =1

ri

ai c r

1 r p .

124

Modele i algoritmi de optimizare

Se obine din nou o problem de programare cu funcia obiectiv o form ptratic i cu restricii liniare 2 m n j y a x min b j j i i i =1 . n j =1 + a c , 1 r p sau a a a ri i r i i i i =1 Mai nainte de a trece la rezolvarea problemei de programare ptratic s amintim cteva noiuni referitoare la formele ptratice.

6.2. Definiii. Proprieti


Fie f o funcie de gradul al doilea n x1, ..., xn f ( x ) = C ij xi x j + c j x j + c 0
i =1 j =1 j =1 n n n

unde: x=(x1, ..., xn) , C M n ,n (R ) i Cij=Cji (n caz contrar, adic dac CijCji,
1 (C ij + C ji ) 2 dij=dji ) , iar c = (c1 ,..., cn ) .

definim

d ij =

i atunci

C
i =1 j =1

ij

xi x j = d ij xi x j
i =1 j =1

Fie Q( x ) = Cij xi x j = xCx grupul termenilor de gradul al doilea. Se


i =1 j =1

tie c funcia Q(x) se poate pune sub form de sum algebric de ptrate de expresii liniare, omogene i independente (reducerea la forma canonic a formelor ptratice cu metoda lui Gauss). Dac notm cu n+ i cu n numrul ptratelor care au coeficienii pozitivi i respectiv negativi, atunci avem n+ + n n .
Definiia 6.1. Q(x) se numete form ptratic pozitiv definit dac n+ = n i n = 0 . Definiia 6.2. Q(x) se numete form ptratic pozitiv semidefinit dac n+<n i n=0 . Definiia 6.3. Q(x) se numete form ptratic negativ definit dac n = n i n+= 0 . Definiia 6.4. Q(x) se numete form ptratic negativ semidefinit dac n< n i n+ = 0 .

Dac n+ > 0 i n> 0, atunci forma ptratic este nedefinit.

6. Programare ptratic

125

Propoziia 6.1. Dac Q( x ) = x Cx este pozitiv semidefinit, atunci Q(x)=0 dac i numai dac Cx=0 . Demonstraie. Artm c Q(x)=0 implic Cx=0 . Fie () y R n i () R , atunci Q ( y + x ) = ( y + x ) C ( y + x ) = y Cy + 2y Cx + 2 x Cx = y Cy + 2y Cx 0 . Cum inegalitatea are loc pentru () R , rezult c y Cx = 0 . Dar cum aceast egalitate are loc pentru orice y , rezult c Cx=0. Implicaia invers este evident ! Proprieti 1. Dac Q este pozitiv definit, atunci det(C)>0 i Q(x)>0, ()x R n \ {0} , iar Q(0)=0 . 2. Dac Q este pozitiv semidefinit, atunci det(C)=0 i Q(x)=0, pentru o mulime de vectori x0 . 3. Dac Q este negativ definit, atunci det(C)<0 i Q(x)<0, ()x R n \ {0} , iar Q(0)=0 4. Dac Q este negativ semidefinit, atunci det(C)=0 i Q(x)=0, pentru o mulime de vectori x0 . Demonstraie

1. Q fiind pozitiv definit se poate reduce la forma canonic Q ( ) = i i2 cu


i =1

i > 0 , i = 1, n . Atunci

det(C ) = i > 0 . Afirmaia a doua rezult din


i =1

Propoziia 6.1 , astfel Q( x ) = x Cx = 0 Cx = 0 . Dar, C este nesingular i unica soluie este x=0. 2. Dac Q este pozitiv semidefinit Q( ) = i i2
i =1 n n+

cu

i > 0 , i = 1, n + ,

i = 0 , i = n + + 1, n . Atunci

det(C ) = i = 0 . Din Propoziia 6.1 rezult


i =1

Q( x ) = x Cx = 0 Cx = 0 . Dar, C este singular i soluia x=0 nu este unic. Analog se demonstreaz afirmaiile 3 i 4.
Observaia 6.1. Pentru () x, y R n , x y i () (0,1) avem

Q[ x + (1 ) y ] = Q( x ) + (1 ) Q( y ) + 2 Q( x y ) .

Deci, dac Q este pozitiv definit avem Q[ x + (1 ) y ] < Q( x ) + (1 ) Q( y ) i dac Q este pozitiv semidefinit avem

126

Modele i algoritmi de optimizare

Q[ x + (1 ) y ] Q( x ) + (1 ) Q( y ) . Prin urmare, orice form ptratic pozitiv definit este o funcie strict convex i orice form ptratic pozitiv semidefinit este o funcie convex.
O problem de programare ptratic este acea problem n care trebuie care minimizeaz o form ptratic convex sau determinat un vector x* maximizeaz o form ptratic concav i n care variabilele mai trebuie s verifice un sistem de inegaliti liniare i eventual unele restricii de semn. Forma general a problemei de programare ptratic este n 1 n n min f ( x ) = min 2 Cij xi x j + ci xi i =1 j =1 i =1 n aij x j bi 1 i m j =1 ii de semn) x j 0 1 j n (restric sau matriceal 1 min f ( x) = min 2 x Cx + c x Ax b x 0 x R n , b R m , A M mn (R ) , C M n (R ) unde
1 x Cx + c x 2 este convex. Numim aceast form a problemei de programare ptratic forma canonic. n inegalitile (6.4), valorile bi sunt strict pozitive (dac ar fi negative, inegalitile respective se nmulesc cu 1).
f ( x) =

(6.4)

Exemplu. n dou variabile o form ptratic pozitiv definit este paraboloidul eliptic, x2 x2 f ( x1 , x 2 ) = 12 + 2 , a, b 0 , a b2 i admite un minim unic (Figura 6.1), iar o form ptratic semidefinit este cilindrul parabolic, f ( x1 , x 2 ) = a 2 x12 , a 0 , cu concavitatea ndreptat n sus (n acest caz nu avem un punct de extrem unic, ci o dreapt paralel cu planul x1Ox2) (Figura 6.2).

6. Programare ptratic

127

Figura 6.1

Figura 6.2

6.3. Fundamentarea algoritmului lui Wolfe

n cele ce urmeaz sunt prezentate teoreme ce permit trecerea de la problema de programare ptratic la o problem de programare liniar echivalent, fiind astfel posibil utilizarea algoritmului simplex pentru obinerea soluiei problemei de programare ptratic. Algoritmul care se obine este cunoscut sub numele de algoritmul lui Wolfe, cu cele dou forme ale sale : scurt i lung. Teorema 3.5 (care d condiiile Kuhn-Tucker) pentru aceast problem are formularea urmtoare.
* * Teorema 6.1. (Condiiile KuhnTucker). Vectorul x * = x1 , ..., x n

este soluia

problemei de programare ptratic (6.4) dac i numai dac exist * * * * * * u * = u1 , ..., u m , v * = v1 , ..., v n i y * = y1 , ..., y m astfel nct

n * * 1 i m aij x j + yi = b =1 jn m C x * u * a v * = c 1 j n jk k i ij j j k =1 i =1 x * 0 , u* 0 , v * 0 , y * 0 n n * x*j v*j = 0 , u* i yi = 0 i =1 j =1 sau matriceal

(6.5)

128

Modele i algoritmi de optimizare

Ax + y = b Cx - A t u - v = -c x v = 0, u y = 0 * * * * x 0 , u 0 , v 0 , y 0 Observaia 6.2. yi sunt variabilele ecart care apar n Ax+y=b, vi sunt variabilele ecart n CxATuv=c . Din condiiile de nenegativitate rezult c xjvj=0 i uiyi=0 , 1 j n , 1 i m , adic din cele 2m+2n necunoscute care apar n sistemul (6.5) de m+n ecuaii, intereseaz numai soluiile nenegative, care au cel mult m+n componente nenule, adic soluiile admisibile de baz ale sistemului (6.5) . Fie problema de programare ptratic n 1 n n min ( ) min f C x x ci xi x = + ij i i 2 i =1 j =1 i =1 n aij x j = bi 1 i m j =1 1 j n x j 0

1 min f ( x ) = min 2 x Cx + c x Ax = b x 0 (6.4) (matriceal)

Numim aceast form a problemei de programare ptratic forma standard. Teorema 6.2. Problema (6.4) admite soluie optim x* dac i numai dac ()u R m astfel nct x* 0 ; Ax* = b ; c + Cx* At u* 0 ; x* c + Cx* At u = 0 . Demonstraie. Din Teorema 6.1 rezult c x* este soluie a problemei (6.4) dac i numai dac () u* R m , astfel nct x* 0 , u L(x* , u* ) = 0 , x L(x* , u* ) 0 , ( x * ) x L(x* , u* ) = 0 .

( )(

Corolar 6.2. x* este soluie a problemei (6.4) dac i numai dac ()v * R n , u* R m , astfel nct x * , v * , u* este soluie pentru sistemul

Ax = b t Cx A u + v = -c xv = 0 , x 0 , u 0 .

(6.6)

Demonstraie. n Teorema 6.2 lum v = -c - Cx + A t u . n Propoziia 6.2. Dac R = { xR Ax=b ; x0 }, atunci (6.4) are optim infinit dac i numai dac sistemul

6. Programare ptratic

129

Ax * = b * t * * Cx A u + v = -c x * 0 , u* 0 ,

(6.7)

este incompatibil. Demonstraie. Presupunem c min f ( x ) = i s artm c sistemul (6.7) este incompatibil. Fie x R . Prin absurd, presupunem c sistemul (6.7) are soluia (x*, u*, v*). Deoarece f este convex avem f ( x ) f ( x* ) x f ( x* ) x x* = Cx* + c x x* = At u* v x x* = = u* Ax - v* x - u* Ax + v* x* Dar Ax * = Ax = b i v * x * 0 , de unde rezult c f ( x ) f ( x* ) - v * x , adic minf(x) nu poate fi - . Contradicie! S artm c dac sistemul (6.7) este incompatibil atunci minf(x)= . Sistemul fiind incompatibil, rezult c problema (6.4) nu are soluii. Da, cum R, rezult c min f ( x ) = .

)( ) ( )( ) ( ( ) ( ) ( ) ( )
( )

)(

( )

I i = j x i = (x j ) jI , i=1,2,3 i s rescriem vectorii x i v sub forma


i

S considerm o partiie, (I i )1i 3 , a mulimii indicilor

{ 1, 2,..., n}

astfel

x1 v 1 2 x = x , v = v 2 . 3 3 x v Lema 6.1. Dac urmtoarea problem de programare liniar min g z Ax = b Cx A t u + v + Dz = -h n m x, v, z, g R , u, h R 3 1 x, v, z 0 , x = 0 , v = 0 astfel nct

(6.8)

admite soluie optim (x*, v*, u*, z*) cu x*1>0 , v*3>0 , atunci exist R n

A * = 0 , C * = 0 , * 0 , g z * = h * .
2

Demonstraie. Rearanjnd restriciile, problema (6.8) se poate pune sub forma

130

Modele i algoritmi de optimizare

min g z
x1 2 [A1 A2 A3 ] x = b 0 1 0 C11 C12 C13 x 2 t 2 C C 22 C 23 x A u + v + Dz = h 21 3 0 C 31 C 32 C 33 v 1 2 2 3 x , x , v , v , z 0 Duala problemei (6.9) este problema de programare liniar max {b + h }
t t t At + C11 1 + C 21 2 + C 31 3 0 1 t t t t 1 2 3 A2 + C12 + C 22 + C 33 0 t D g A = 0 , 2 0 , 3 0 .

(6.9)

(6.10)

Din Teorema fundamental a dualitii (4.13) exist o soluie optim , pentru problema dual (6.10) astfel nct b + h = g z * . Deoarece

x , v > 0 , restriciile corespunztoare variabilelor x 1 , v 3 sunt verificate cu egalitate de ctre soluia optim a problemei duale (din Teorema ecarturilor complementare, 4.13), adic

*1

*3

A t + C t 1 + C t 2 = 0 11 21 1 t 1 2 t t A2 + C12 + C 22 0 A = 0 , 2 0 , 3 = 0 ,

(6.11)

nmulind prima relaie (6.11) cu 1 , iar pe cea de-a doua cu *3 0 i adunndu-le, avem 1 1 1 1 2 t t A1t + C11 + C 21 +

( ) ( ) + ( ) A + ( ) C
2 t 2 2

t 12

( ) + ( ) C
2

t 22

0 .
2

inem seama c A = 0 i atunci putem scrie relaiile de mai sus sub forma
1 2 C ( ) ( ) C
11 1 C12 2 0 . C 22

12

6. Programare ptratic

131

3 Deoarece = 0 , relaia de mai sus se mai poate scrie C 0 . Cum C este pozitiv semidefinit, rezult c C = 0 , iar din Propoziia 6.2 avem

( )

( )

t C = 0 . Relaiile (6.11) devin A1t = 0 i A2 0 . inem seama de aceste

relaii n evaluarea produsului b i avem 1 2 2 b = Ax * = A1 x * + A2 x * = A2 x * = 0 ,

( )

( )

( )

adic b = 0 i g z * = h * . Astfel, lema este demonstrat.

numai dac () R n soluie a sistemului

Propoziia 6.3. Dac R , atunci problema (6.4) are optim infinit dac i

A = 0 C 0 c < 0 0

(6.12)

Demonstraie. Dac min f ( x ) = , atunci sistemul (6.7) este incompatibil, adic problema de programare liniar min e z Ax = b t (6.13) Cx A u + v + Dz = -c x0 , u0 ,
0 dac i j unde D = (d ij )1 , d ij = 1 dac i = j , ci 0 , iar e = (1, ...,1) are optim i, jn 1 dac i = j , c > 0 i nenul. Fie (x*, v*, u *, z*) o soluie optim pentru (6.13). Sistemul (6.12) este compatibil, aa cum rezult din Lema 6.1, n care lum g = e = (1,1,...,1) , h = -c , I 1 = I 3 = i innd seama c ez>0. Dac

rezult c x + R pentru () 0 . Calculm


*

() 0 , astfel nct

() R n

soluie a sistemului (6.12) i

x + * 0 avem A x + * = Ax + A * = b . De aici

x R ,

atunci pentru

f x + * = f ( x ) + 2x C * + 2 C * + c * = f ( x ) + c *

i pentru c c * < 0 , rezult c

( ) f (x + ) .
*

132

Modele i algoritmi de optimizare

6.4. Forma scurt a algoritmului lui Wolfe


Algoritmul lui Wolfe n forma scurt const din dou etape. n etapa nti se rezolv urmtoarea problem de programare liniar (tefnescu, 1989): min z 1 + z 2 Ax = b (6.14) * 1 2 t Cx A u + v + z z = -c x, v, z 1 , z 2 0

x, v, z1 , z 2 R n , iar unde u R m , mpreun cu urmtoarea regul suplimentar: (6.15) Pentru ()i = 1, n , xi , vi nu pot fi simultan nenuli Teorema 6.3. Prin aplicarea algoritmului simplex problemei (6.14) mpreun cu regula suplimentar (6.15) se ajunge la una din situaiile: a) problema (6.14) nu are soluii admisibile, R = ; b) se obine soluia optim (x*, v*, u *, z*1, z*2) pentru problema (6.14); c) se obine o soluie de baz a problemei (6.14) care nu mai poate fi mbuntit fr nclcarea regulii (6.15). Demonstraie. Se aplic algoritmul simplex, faza I, problemei (6.14), inndu-se seama de regula (6.15) . ntruct nu s-au pus condiii de semn asupra vectorului u, l vom descompune n u= u 1- u 2 , u1 0 , u 2 0 . Semnul pentru z i1 , z i2 se alege astfel nct s fie acelai cu cel al termenului liber ci . De aceea aceste variabile sunt iniial variabile de baz. Se completeaz baza cu variabilele artificiale xa, adugate primelor m ecuaii. Fie r = rang ( A) < m i se consider c primele r

A coloane ale matricei sunt primii r vectori unitari din Rm+n. C Faza I se aplic problemei a min xi ~ i A~ x =b * A t u1 + A t u 2 + v + z 1 z 2 = -c Cx a 1 2 1 2 x, x , v, u , u , z , z 0 1 2 r a mr 1 2 m x, v, z , z R , x R , u , u R unde x ~ A = A, e r +1 ,...e m , ~ x = xa ,

(6.16)

6. Programare ptratic

133

respectnd regula (6.15). Baza iniial este baza canonic din Rm+n , iar soluia de baz iniial este bi 1 i r 1 2 dac c j 0 , xi = z j = -c j , z j = 0 , + i m 0 r 1 (6.17) 1 2 cj 0 . x a = b r i m z j = 0 , z j = c j dac i i Deoarece coeficienii variabilelor vi i z i1 coincid, dou astfel de variabile nu pot fi simultan n baz i atunci regula (6.15) se poate aplica n aceast faz fr a se altera rezultatul. De fiecare dat cnd o variabil z i1 are ansa s intre n baz o vom nlocui cu vi , pstrnd astfel v=0 n faza I.

Teorema 6.4 1. Dac se realizeaz a) din Teorema 6.3, atunci problemma (6.4) nu are soluii admisibile. 1 2 2. Dac se realizeaz b) din Teorema 6.3, adic z * = z * = 0 , atunci x* este soluie optim a problemei (6.4). 3. Dac se realizeaz b) din Teorema 6.3 i e z 1 + z 2 > 0 , problema (6.4) are optim infinit. 1 2 4. Dac se realizeaz c) din Teorema 6.3 i dac z * = z * = 0 , atunci x* este soluie optim pentru problema (6.4). Demonstraie. Dac se realizeaz a) din Teorema 6.3, atunci sistemul Ax = b , x 0 este incompatibil deoarece nu s-au eliminat n faza I toate variabilele artificiale xa din baz. Dac se realizeaz b) i c) din Teorema 6.3, rezult c sistemul Ax = b , x 0 este compatibil i astfel rezult concluziile 2, 3 i 4 i demonstraia se ncheie.

Comentarii 1. Variabilele z i2 se introduc doar dac ci>0. 2. La ncheierea fazei nti s-au eliminat toate variabilele artificiale xa . n 1 2 faza a doua nu se mai introduc variabilele z i* , z i* nebazice. 3. Nu se poate trage o concluzie n situaia c) din Teorema 6.3, deoarece regula (6.15) nu face parte din algoritmul simplex. 4. Dac A are o baz unitar, faza I nu mai este necesar.
Urmtoarea teorem stabilete condiii suficiente pentru cazul n care se poate aplica algoritmul simplex, completat cu regula suplimentar (6.15), pentru rezolvarea problemei de programare ptratic (6.4).

Teorema 6.5. Pentru ca prin aplicarea algoritmului simplex, modificat cu regula (6.15), problemei (6.14) s se ajung n una din situaiile: a) problema (6.14) nu are soluii admisibile, R = ; b) se obine soluia optim (x*, v*, u *, z*1, z*2) pentru problema (6.14);

134

Modele i algoritmi de optimizare

c) se obine o soluie de baz a problemei (6.14) care nu mai poate fi mbuntit fr nclcarea regulii (6.15), sunt suficiente urmtoarele condiii: i) c=0 , ii) C este pozitiv definit, iii) C din problema (6.4) este pozitiv definit. Demonstraie. Dac n urma aplicrii fazei I se ajunge fie n cazul b), fie n cazul c), s-a obinut o soluie de baz (xb, vb, ub, zb1, zb2) pentru problema (6.14). Faza a II-a a metodei simplex va rezolva urmtoarea problem de programare liniar min z i i Ax = b (6.14) t Cx A u + v + Dz = -c x, v, z 0

unde D = (d ii ` )1 i n este o matrice diagonal ale crei elemente sunt date de relaiile 1 dac zib1 este variabil bazic d ii = 1 dac z ib 2 este variabil bazic , 0 altfel

pornind de la soluia de baz z b1 z ib = z b 2 0

Fie I 1 = i x i* > 0 i I 3 = i v i* > 0 , unde (x*, v*, u*, z*) este soluia final a problemei (6.14), obinut cu algoritmul simplex modificat cu regula suplimentar (6.15). Atunci (x*, v*, u*, z*) este soluie optim i a problemei min z i i Ax b = (6.14) Cx A t u + v + Dz = -c 3 1 x = 0 , v = 0 x, v, z 0 * Presupunem c (x , v*, u*, z*) nu este soluie optim a problemei (6.14) i atunci, la urmtorul pas, algoritmul simplex produce o nou soluie de baz mbuntit pentru problema (6.14). Deoarece x *j = 0 , i I 2 I 3 , v *j = 0 ,
i I 1 I 2 i cum problema (6.14) impune condiiile

(xb, vb, ub, zb) , unde dac z ib1 este variabil de baz dac zib 2 este variabil de baz altfel.

x 3 = 0 , v 1 = 0 , este

posibil ca n noua soluie de baz cu valori nenule, cel mult una din variabilele x i , v i , i I 2 . n acest fel noua soluie satisface condiia (6.15) i este o soluie mai bun dect (x*, v*, u*, z*). Contradicie !

6. Programare ptratic

135

n Lema 6.1, lund g = (1, ...,1) i h = c , obinem existena vectorului

R n cu proprietile A * = 0 , C * = 0 , g z * = c * . Din i) rezult c gz= 0 i atunci z= 0 .


Din ii) i C*= 0 rezult c *= 0 i gz= 0 i atunci din nou z= 0 . Problema (6.4) poate fi adus la forma (6.4), similar formei (6.4), prin introducerea variabilelor ecart w, astfel 1 ~ ~~ ~ ~ min 2 x Cx + c x ~ = A x b (6.4) ~ x 0 x ~ C 0 n+ m ~ c x = unde: ~ R , c = , C = . w 0 0 0 Adugarea variabilelor ecart nu afecteaz faptul c matricea C din funcia obiectiv este pozitiv definit. ~ ~ ~ Din iii) C este pozitiv semidefinit i aplicnd Lema 6.1 pentru A , C ~ = ~ * = 0 . De aici rezult c C*=0 i, ca mai w cu C rezult c exist sus, *=0 i gz=0 i atunci din nou z=0. n toate cele trei situaii soluia (x*, v*, u*, z*) are z=0 i teorema este demonstrat. Observaia 6.3 a) Forma scurt a algoritmului lui Wolfe se aplic atunci cnd se verific incluziunea R n A = 0 , C = 0 R n c = 0 (6.18) b) Incluziunea (6.18) are loc dac se verific unul din urmtoarele cazuri: i) c=0 , ii) C este pozitiv definit, iii) Matricea C , A t are rangul n ,

} {

iv) Sistemul Cx + At u = c are soluii, v) Problema standard (6.4) poate fi scris sub forma canonic 1 * * min 2 x C x + (c ) x * * A x = b x 0 * cu C pozitiv definit.

136

Modele i algoritmi de optimizare

Demostraie i) Incluziunea (6.18) este evident deoarece membrul drept coincide cu R n . ii) i iii) au membrul stng format numai din vectorul nul i atunci incluziunea (6.18) este evident. iv) c este o combinaie liniar a liniilor matricei C , A t i incluziunea (6.18) este evident. v) Demonstraia este dat n Teorema 6.5 .

Comentarii. Faza I rezolv problema (6.16) pentru eliminarea variabilelor auxiliare xa din baz, lund u=0 , v=0 . Dac problema (6.4) are optim, atunci minimul din problema (6.16) este zero i variabilele x ia au fost nlociute cu x i . Dac nu s-au eliminat din baz toate variabilele x ia (caz de degenerare), se nlocuiesc xia cu
x i , lucru posibil cnd rang ( A) = m . Dac rang ( A) < m , variabilele x ia rmase n baz se elimin o dat cu liniile i coloanele corespunztoare din A, deoarece restriciile corespunztoare sunt consecine ale celorlalte. Baza cu care se iese din faza I conine numai una din variabilele z i1 z i2 , deoarece coloanele corespunztoare acestor variabile sunt egale i de semn contrar. Aadar, din faza I se iese cu o baz format din m variabile xi (dac rang ( A) = m ) i n variabile

z i1 sau z i2 . Faza a II-a folosete programul obinut n faza I pentru rezolvarea problemei (6.14), innd seama de regula (6.15) care poate fi formulat i astfel : dac una din variabilele xi i vi este n baz, atunci cealalt nu poate fi introdus n baz la iteraia respectiv. Se asigur astfel respectarea condiiei xivi=0.
Exemplu. S se rezolve urmtoarea problem de programare ptratic : 1 2 1 1 min x12 + x 2 2 x1 + 3 x 2 + x 3 = min x' Cx + c' x 2 2 2 x1 2 x 2 + x 3 = 4 . x1 , x 2 , x 3 0 Rezolvare. Vom aplica algoritmul lui Wolfe n forma scurt. 2 1 0 0 1 f(x)= x' Cx + c' x ; C = 0 1 0 , c = 3 , A = (1 2 1) . 2 1 0 0 0 Verificm dac se poate aplica algoritmul Wolfe, forma scurt. 1 0 0 1 1 0 1 t rang C A = rang 0 1 0 2 = 3 deoarece 0 1 2 = 1 . 0 0 0 1 0 0 1

[ ]

6. Programare ptratic

137

Aadar, se poate aplica algoritmul deoarece incluziunea (6.18) este verificat, fiind ndeplinit condiia iii) din Comentarii. Introducem variabilele artificiale nenegative xa, z1, z2 i condiiile KuhnTucker devin: Ax + x a = b t 1 2 Cx v + A u + z z = c1 1 2 x 0, v 0, z 0, z 0, w 0 u oarecare Pentru a avea o baz, acestor variabile li se atribuie valori astfel: z 1j = c j dac c j 0 ; z 2 j = 0 sau
z2 j = cj dac c j 0 ; z 1j = 0 . n soluia de baz lum: x =0 , v = 0 , u = 0, xa = b . Pentru ca i asupra lui u s existe condiii de nenegativitate, l desfacem n doi vectori nenegativi astfel: u = u1u2 (u corespunznd restriciei cu egalitate, nu are resricii de semn). Matriceal, restriciile KuhnTucker devin:

Ax + x a = b 0 1 0 1 2 t Cx v + A u u + Dz = c , unde D = 0 1 0 0 0 1 x , v , u1 , u 2 , z 1 , z 2 , w 0 Pe componente avem: x1 2 x 2 + x3 + x a =4 1 2 1 =2 x1 v1 + u u + z1 1 2 2 x 2 v 2 2u 2u z1 = 3 . v + u 1 u 2 z 2 = 1 2 3 1 2 1 2 x, v, u , u , z , z , w 0 Faza I. Se aplic algoritmul simplex urmtoarei probleme de programare liniar:

min x iA = min x a (trebuie ca x a = 0)


i =1

x1 2 x 2 + x 3 + x a 1 2 1 x1 v1 + u1 u1 + z1 1 2 2 x 2 + v 2 + 2u 2 + 2u 2 + z1 v u 1 + u 2 + z 2 3 3 2 3 1 2 1 x , v , u , u , z , z2 , xa 0 .

=4 =2 =3 =1

n aceast faz u = 0, v = 0, deci nu pot intra n baz. Calculele sunt date n Tabelul 6.1 . Algoritmul simplex se oprete cu min xa=0.
Tabelul 6.1

138
CVB 1 0 0 0 0 0 0 0 VB xa VVB 4 2 3 1 4 4 2 3 1 0 0 x1 1 1 0 0 1 1 1 0 0 0 0 x2 2 0 1 0 2 2 0 1 0 0 0 x3 1 0 0 0 1* 1 0 0 0 0 0 v1 0 1 0 0 0 0 1 0 0 0 0 v2 0 0 1 0 0 0 0 1 0 0 0 v3 0 0 0 1 0 0 0 0 1 0

Modele i algoritmi de optimizare


0 u1 0 1 2 1 0 0 1 2 1 0 0 u2 0 1 2 1 0 0 1 2 1 0 0
1 z1

0
2 z2

0
3 z2

1 xa 1 0 0 0 0

z z

1 1

0 1 0 0 0 0 1 0 0 0

0 0 1 0 0 0 0 1 0 0

0 0 0 1 0 0 0 0 1 0

2 z2 3 2

x3
1 z1 2 z2 3 z2

Tabelul 6.2
CVB 0 1 1 1 0 1 0 1 0 0 0 1 VB x3
1 z1 2 z2

VVB 4 2 3 1 6 4 1/2 3/2 5/2 3 7/2 1/2 3/2 5/2 5/2 2 2 3 1 1 1 3 5 1 0

0 x1 1 1 0 0 1 1 1 0 0 1* 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0

0 x2 2 0 1 0 1 2 1/2 1/2 1/2 1 5/2 1/2 1/2 1/2 1/2 2 0 1 0 0 2 0 1 0 0

0 x3 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0

0 v1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0

0 v2 0 0 1 0 1 0 1/2 1/2 1/2 0 1/2 1/2 1/2 1/2 1/2* 0 0 1 0 0 0 0 1 0 0

0 v3 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0

0 u1 0 1 2 1 2* 0 0 1 0 0 0 0 1 0 0

0 u2 0 1 2 1 2 0 0 1 0 0 0 0 1 0 0 1 1 2 1 1* 0 0 0 1 0

1
3 z2

1 1

2 2

0 1 0 0 0 0 1 0 0 0

0 0 1 0 0 0

0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0

3 2

x3
1 z1

u1

3 2

x3 x1 u1
3 z2

0 0 0 1 0 0 0 0

x3 x1 v2
3 z2

x3 x1 v2 u3

6. Programare ptratic

139

Faza a II-a . Folosind tabelul simplex rezultat din faza I i renunnd la coloana corespunztoare variabilei xa, se aplic din nou algoritmul simplex 1 2 2 + z2 + z3 . Calculele sunt prezentate n pentru minimizarea funciei min z1 Tabelul 6.2 . Faza a IIa se ncheie cu eliminarea din baz a vectorilor z1 i z2 i 1 2 2 min z1 + z2 + z3 =0.

Deci, soluia este x1=3, x2=0, x3=1, i f(x1, x2, x3) =

1 . 2 Multiplicatorii lui Lagrange sunt: v1=0, v2=5, v3=0; u=u1u2=01= 1 .

Vom considera, ca exemplificare a folosirii Solver-ului din Excel pentru rezolvarea problemelor de programare ptratic, problema de mai sus. Se creeaz foaia electronic de calcul cu datele problemei ca n Figura 6.1. Celula D4 conine funcia de minimizat =((1/2)*D7^2+(1/2)*D8^22*D7+3*D8+D9, celulele D7D9 conin necunoscutele problemei, iar restricia D72*D8+D9 este depus n celula B11. Condiiile de nenegativitate ale necunoscutelor sunt D7:D9 B7:B9. Selectnd Solve se rezolv problema, obinndu-se aceleai valori pentru funcia de optimizat i pentru necunoscute ca i cele obinute n urma aplicrii algoritmului lui Wolfe forma scurt, aa cum se vede din rapoartele din Tabelele 6.3-6.5 .

Figura 6.1

140

Modele i algoritmi de optimizare


Tabelul 6.3 Microsoft Excel 10.0 Answer Report Worksheet: [Programare patratica.xls]Sheet1 Report Created: 7/10/2002 8:09:27 PM Target Cell (Min) Original Name Value Functia de optimizat 0 Adjustable Cells Original Name Value x1= x2= x3= Name x12x2+x3= x1= x2= x3= 0 0 0 Constraints Cell Cell Value 4 3 0 1 Formula $A$12=$B$11 $B$15>=$B$7 $B$16>=$B$8 $B$17>=$B$9 Status Not Binding Not Binding Binding Not Binding Slack 0 3 0 1

Cell $D$4

Final Value 0.5

Cell $B$15 $B$16 $B$17

Final Value 3 0 1

$A$12 $B$15 $B$16 $B$17

Tabelul 6.4 Microsoft Excel 10.0 Sensitivity Report Worksheet: [Programare patratica.xls]Sheet1 Report Created: 7/10/2002 8:09:27 PM Adjustable Cells Final Cell $B$15 $B$16 $B$17 Name x1= x2= x3= Value 3 0 1 Final Cell $A$12 Name x12x2+x3= Value 4 Reduced Gradient 0 5.000000477 0 Lagrange Multiplier 1

Constraints

6. Programare ptratic
Tabelul 6.5 Microsoft Excel 10.0 Limits Report Worksheet: [Programare patratica.xls]Limits Report 1 Report Created: 7/10/2002 8:09:27 PM Target Cell $D$4 Name Functia de optimizat Adjustable Cell $B$15 $B$16 $B$17 Name x1= x2= x3= Value 3 0 1 Value 0.5 Lower Limit 3 0 1 Target Result 0.5 0.5 0.5 Upper Limit 3 0 1

141

Targe t Result 0.5 0.5 0.5

6.5. Probleme propuse


1. Scriei condiiile Kuhn-Tucker pentru urmtoarele probleme de programare ptratic: 1 2 2 2 min 2 x1 + 5 x 2 + 2 x 3 + 4 x1 x 2 2 x1 x 3 4 x 2 x 3 x1 + 3x 2 + 4 x 3 2 x1 + 3x 2 x 3 2 a) x1 + x 2 + 2 x 3 4 x1 2 x 2 + x 3 6 x2 1 x 0

2 2 min x12 + 2 x 2 + 3x3 2 x1 x 2 + 2 x1 x 3 2 x 2 x 3 x1 + 2 x 2 x 3 x + 2 x 2 3x3 = 6 b) 1 x1 2 x 2 + 4 x 3 = 8 x 0

2. S se rezolve urmtoarele probleme de programare ptratic 2 min 2 x12 2 x1 x 2 + x 2 4 x1 2 x1 min x12 x1 x 2 + x12 3 x1 x1 + 2 x 2 + x 3 = 6 a) x1 + x 2 4 b) 3 x1 + x 2 + x 4 = 9 x0 x 0

142

Modele i algoritmi de optimizare

artnd c se poate aplica algoritmul lui Wolfe n forma scurt. R. a) x = (2, 1) , v = (0, 0) , u=0 . 10 18 10 24 27 , 0 , , v = 0, 0, , 0 , u = , 0 . b) x = , 13 13 13 13 13 3. S se determine valoarea optim i punctul n care se atinge aceast valoare pentru problemele 1 i 2, folosind MathCAD.

7. PROGRAMARE DINAMIC

7.1. Generaliti
S considerm un sistem a crui evoluie n timp poate fi controlat, chiar i parial, de aciunile unui factor decident. n orice moment i al evoluiei, starea sistemului se poate descrie printr-un vector x i R s numit vectorul strilor, sau vector de stare. Pe fiecare perioad decidentul ia o decizie i , care provoac o modificare a strii sistemului, reflectat de un vector de decizie, d i R m . Vectorii de decizie di pot lua valori admisibile n domeniile de admisibilitate i R m , 1 i N . Cei doi vectori, de stare i de decizie de la momentul i, determin starea sistemului de la momentul i+1, conform unei legi de evoluie xi +1 = i ( x i , d i ) . Programarea dinamic este o metod de optimizare a sistemelor n care se opereaz pe faze sau secvene. Baza acestei metode o constituie Principiul de optimalitate al lui Bellman, care se enun astfel (Kaufmann, 1967): Orice politic optim nu poate fi format dect din subpolitici optime. O politic este alctuit dintr-o succesiune de decizii. Multe fenomene sau probleme sunt de natur secvenial, adic permit descompunerea lor n etape (faze), fiecare etap depinznd de cele apropiate, de etapa anterioar i cea urmtoare. Vom introduce n continuare cteva concepte cu care se opereaz n teoria deciziilor (Zidroiu, 1975). Considerm s=1 i m=1 i atunci vectorul de stare devine variabila de stare, iar cel de decizie devine variabila de decizie. Etapele procesului sunt momentele n care trebuie luate deciziile. n problemele secveniale ele formeaz un ir cresctor, pe care l vom nota cu 1, 2, ..., N . Spunem c avem o problem de decizie cu orizont finit sau infinit, dup cum N este finit sau nu. n cazul unui orizont finit de N etape, o politic este reprezentat de un ir format din deciziile luate n cele N etape. Dac orizontul este infinit, orice politic va fi reprezentat printr-un ir infinit, avnd aceeai interpretare ca i n cazul finit. Schematic, cele prezentate mai sus se pot reprezenta astfel:

144 Etapa Starea sistemului Decizia luat 0 x0 1 x1

Modele i algoritmi de optimizare


2 x2 ... ... ...

N1 xN1

N 1

N xN

unde x0 este starea iniial, xN este starea final. O problem de decizii secveniale const n determinarea unui ir finit sau nu de decizii, dup cum problema este cu orizont finit sau infinit. n urma lurii unei decizii se modific starea sistemului conform cu o lege de evoluie n funcie de starea actual a sistemului : xi = i(xi-1, di) unde di este o variabil de decizie avnd domeniul de admisibilitate i, iar i este o transformare dat, 1 i N. Dac ne intereseaz evoluia sistemului din starea iniial x0 pn n starea final xN, atunci se observ c se poate scrie succesiv x N = N ( x N 1 ; d N ) = N [ N 1 ( x N 2 ; d N 1 ); d N ] = ... = TN ( x 0 ; d 1 ,..., d N ) TN reprezentnd rezultatul final al nlocuirilor de mai sus. Se poate spune c politica (1, 2,..., N) are ca efect transformarea sistemului din starea iniial x0 n starea final xN : xN = TN(x0; d1, ..., dN) . Aceast relaie permite analiza prospectiv a procesului, deoarece se pleac din starea x0 i se ajunge n starea xN . Dac funciile i , 1 i N, sunt inversabile, se poate face i o analiz retrospectiv a procesului, inversnd schema precedent, astfel
Etapa Starea sistemului Decizia luat

N xN

N1 xN1

N 1

N2 xN2

N 2

... ... ...

x1

0 x0

Dac notm cu i inversele transformrilor i , putem scrie


x0 = i ( x1 ; d1 ) = 1[ 2 ( x 2 ; d 2 ); d1 ] = ... = T N ( x N ; d1 , d 2 ,..., d N )

unde: T N se obine nlocuind xi prin i +1 ( xi +1 ; d i +1 ) , 1 i N1 . Aceast relaie arat c starea final xN i politica aleas 1, 2,..., N determin starea iniial x0 . Diferena dintre analiza prospectiv i cea retrospectiv const n modul n care se privete evoluia sistemului (de la x0 ctre xN sau invers) . Exist situaii n care este mai eficient folosirea analizei retrospective n rezolvarea unor probleme. Decidentul are preferine n ceea ce privete evoluia sistemului, preferine ce pot fi descrise printr-o funcie obiectiv. Problema cu care se confrunt decidentul este de a alege o evoluie a variabilelor de decizie astfel nct s optimizeze funcia obiectiv cu restriciile de admisibilitate i starea iniial (final) date.

7. Programare dinamic

145

S notm ri(xi; di) ctigul parial dobndit n urma lurii deciziei i n etapa a i-a, cnd sistemul trece din starea xi1 n starea xi. Ctigul total pentru un orizont de N etape poate fi reprezentat ca o funcie de ctigurile pariale r1, r2, ..., rN asociate diferitelor etape ale sistemului. Aceast funcie se poate scrie sub forma f [r1 (x1 ; d 1 ), r2 ( x 2 ; d 2 ),..., rN (x N ; d N )] i constituie funcia obiectiv ataat procesului de decizii considerat. Definiia 7.1. O funcie f i : R i [0, ) se numete decompozabil prospectiv ~ dac exist o funcie f i : R 2 [0, ) monoton (cresctoare pentru probleme de maxim i descresctoare pentru probleme de minim) n a doua variabil astfel nct ~ f i (r1 ,..., ri ) = f i (ri , f i 1 ( r1 ,..., ri 1 )) . Definiia 7.2. O funcie f i : R i [0, ) se numete decompozabil retrospectiv ~ dac exist o funcie f i : R 2 [0, ) monoton (cresctoare pentru probleme de maxim i descresctoare pentru probleme de minim) n a doua variabil astfel nct ~ f N i +1 (ri ,..., rN ) = f N i +1 (ri , f N i (ri +1 ,..., rN )) . Cu schimbarea de variabil xi = x N i se poate trece de la decompozabilitate prospectiv la cea retrospectiv i invers. Cazul cel mai frecvent de decompozabilitate este cazul aditiv, cnd funcia obiectiv este de forma
f [r1 (x1 ; d 1 ), r2 ( x 2 ; d 2 ),..., rN ( x N ; d N )] = ri (x i ; d i ) .
i =1 N

(7.1)

Se ntlnesc i probleme n care funcia obiectiv se exprim multiplicativ


f [r1 (x1 ; d 1 ), r2 ( x 2 ; d 2 ),..., rN (x N ; d N )] = ri ( x i ; d i ) .
i =1 N

n cazul analizei retrospective se pot scrie succesiv egalitile ri (xi , d i ) = ri [i +1 (xi +1 , d i +1 ); d i ] = ... = ri(xi ; d N ,..., d i ) pentru (7.2) N N N N 1 N 1 N 1 1 1 1 N N 1 N adic funcia obiectiv depinde de starea final xN i de variabilele de decizie dN , dN1 , ... , d1 . Astfel, cunoscnd starea final i politica aleas se poate calcula ctigul asociat politicii considerate. n cazul analizei prospective, ctigul total se exprim n funcie de starea iniial x0 i de variabilele de decizie d1 , d2 , ... , dN , astfel

()i = 1, N , obinndu-se pentru funcia obiectiv forma f [r (x ; d ), r (x ; d ),..., r (x ; d )] = R (x ; d ,..., d )

146

Modele i algoritmi de optimizare


f [r1 (x1 ; d1 ),..., rN 1 (x N 1 ; d N 1 ), rN (x N ; d N )] = RN (x0 ; d1 ,..., d N ) .

(7.3) Printre politicile posibile care fac ca sistemul s evolueze din starea x0 n starea xN , exist una (sau mai multe) care optimizeaz funcia obiectiv; aceste politici se numesc politici optime. Vom nota politica optim cu 1 ,..., N , iar variabilele de decizie ,..., d . Mulimea strilor x ) , ,..., x , x = (x ,d corespunztoare cu d

,..., d constituie traiectoria optim. 1 i N corespunztoare deciziilor d 1 N Deoarece ctigul total depinde de starea iniial (final) i de politica aleas este necesar s se considere mai multe valori posibile pentru starea iniial x0 sau starea final x N (spunem c simulm evoluia sistemului n mai multe situaii ). n aceste cazuri politicile optime sunt funcii de x0 sau xN , adic =d (x ) sau d =d (x ) , 1 i N . d i i 0 i i N Teorema de optimalitate a lui Bellman. Date strile iniial x0 i final xN , traiectoria x0,, xN este optim dac traiectoria x0,, xN-1 este optim i xN-1 este astfel nct ~ f N (rN ( x N ; d N ), f N 1 (r1 ( x1 ; d1 ),..., rN 1 ( x N 1; d N 1 )) ) este optim. Demonstraie. Notm V(x0,xN) valoarea ctigului optim global. Din ~ decompozabilitate avem c f N (rN ( x N ; d N ),VN 1 ( x0 , x N 1 )) este optim dac xN = N(xN-1, dN) . Optimalitatea subpoliticii x0,, xN-1 rezult din monotonia funciei ~ f N i demonstraia se ncheie. n continuare vom prezenta relaiile de recuren i rezolvarea problemei de programare dinamic n cazul analizei retrospective, trecerea la analiza prospectiv fiind imediat atunci cnd legile de evoluie a sistemului analizat sunt inversabile.

i 1

i 1

7.2. Analiza retrospectiv


Presupunem c avem de rezolvat urmtoarea problem: S se afle decizia ,d , . . ., d astfel nct optim d 1 2 N

, r x ,d f [rN x N , d N N 1 N 1 N 1 ,. . . , r1 x1 , d 1 ] = f [rN (x N , d N ) , rN 1 (x N 1 , d N 1 ) ,. . . , r1 (x1 , d 1 )] = max d 1i i N x = ( x ; d ) , 1 i N i i i i 1 sau dac inem seama de (7.2),

(7.4)

7. Programare dinamic

147

,r f [rN x N , d N N 1 x N 1 , d N 1 ,. . . , r 1 x1 , d1 ] = max R ' N ( x N ; d1 ,..., d N ) .


d i i 1 i N

) (

(7.5)

n formularea (7.5) intervin efectiv numai xN i variabilele de decizie d1, d2 , ... , dN, deoarece variabilele x0, x1, ..., xN1 se determin cu ajutorul precedentelor, innd seama de relaiile x i 1 = i ( x i ; d i ) , 1 i N 1 .

7.2.1. Rezolvarea n cazul aditiv


Considerm funcia obiectiv n cazul aditiv (7.1) i, nlocuind n (7.4), obinem : N max ri (xi , d i ) d i i (7.6) 1i N i =1 x = (x , d ) , 1 i N . i i i i 1 Notnd cu fN(xN) valoarea maximului (7.6) obinem f N (x N ) = max[rN (x N , d N ) + rN 1 (x N 1 , d N 1 ) + . . . + r1 (x1 , d 1 )] = d i i 1 i N {rN (x N , d N ) + max [rN 1 ( x N 1 , d N 1 ) + rN 2 (x N 2 , d N 2 ) + . . . + r1 (x1 , d 1 )]} = dmax d i i N N 1 i N 1 x i 1 = i (x i , d i ) , 1 i N sau, prin aplicarea Teoremei de optimalitate a lui Bellman f N (x N ) = max[rN (x N , d N ) + f N 1 (x N 1 )] d i i 1i N x N 1 = N (x N , d N ) .

(7.7)

Dac notm QN (x N , d N ) = rN (x N , d N ) + f N 1 (x N , d N ) , putem scrie

f N (x N ) = max QN (xn , d N )
d N N

(7.8)

i maximul nu se mai ia dup restricii (restriciile fiind incluse n expresia funciei QN) . ,..., Relaia (7.7) poate fi justificat astfel: dac este o politic optim

pentru un orizont de N etape i cu xN ca stare final, atunci subpolitica 1 ,..., N 1 este optim pentru un orizont de N1 etape cu x N 1 = N (x N , d N ) ca stare final. Relaia (7.8) permite determinarea funciei fN(xN) n ipoteza c se cunoate funcia fN1(xN1) . Pornind de la relaia (7.8), procednd analog, obinem:

148

Modele i algoritmi de optimizare

f1 (x1 ) = max Q1 (x1 , d1 ) = max r1 (x1 , d1 ) d11 d11 . . . . . . . . . . . . . . . . . . . . . . . . . . . f (x ) = max Q (x , d ) = max r (x , d ) + f (x , d ) , 2 i N 1 i i i i i i i 1 i i i i i d i i d i i . . . . . . . . . . . . . . . . . . . . . . . . . . . f N (x N ) = max QN (x N , d N ) = max rN ( x N , d N ) + f N 1 N (x N , d N ) . d N N d N N

]}

(7.9)

]}

Aceste relaii se numesc ecuaiile de recuren ale programrii dinamice. Rezolvarea problemei iniiale nseamn calcularea funciilor = d (x ). f1(x1), f2(x2), ..., fN(xN) i d
N N N

Funciile fi(xi) , 1 i N , se determin din relaiile de recuren (7.8), iar = d (x N ) din ultima din aceste relaii. d N N
Algoritmul pentru rezolvarea problemei de programare dinamic n cazul aditiv N ) = max f (x N ) ; N cu f (x Pas 0. Se determin x
xN

= d (x N ); Se determin d N N
Pas 1. Pentru i:=N ,2

= d (x ; d i 1 = i x i , d i 1 ) ; determin x i i 1 i 1

,d , ... , d ; Pas 2. Reine: d 1 2 N

1 , x 2 , ... , x N ; x

N ) . Stop ! f N (x

Procedeul de mai sus presupune cunoaterea expresiilor analitice ale funciilor fi , d i . Vom prezenta cteva situaii n care metodele programrii dinamice conduc la obinerea optimului fr a se apela la evidenierea tuturor soluiilor posibile.

7.2.2. Problema repartiiei investiiilor


Avnd o sum de 5.109 lei cu care trebuie cumprate aciuni la 4 societi, care n funcie de suma investit asigur profituri conform cu Tabelul 7.1, s se stabileasc o repartiie optim a sumelor investite la fiecare societate, astfel nct profitul obinut n urma aplicrii acestei politici de investiii s fie maxim (Kaufmann, 1967). Se cere s se determine repartiia optim a investiiilor n aciuni la cele 4 societi, adic acea repartiie care d profitul total maxim.

7. Programare dinamic
Tabelul 7.1 Societatea Suma investit (n miliarde de lei) 0 1 2 3 4 5 Profitul n procente

149

S1 0 0.28 0.45 0.65 0.78 0.90

S2 0 0.25 0.41 0.55 0.65 0.75

S3 0 0.15 0.25 0.40 0.50 0.62

S4
0 0.20 0.33 0.42 0.48 0.53

Rezolvare Modelarea problemei Notaii : di numrul de miliarde investite n aciuni la societatea i. xi numrul total de miliarde investite n aciuni la primele i societi, 1 i 4 . x4 mrimea total a investiiilor, care este de cel mult S=5109. ri(di) profitul adus de suma di investit n aciunile la societatea i. Problema are urmtoarea formulare: 4 max ri (d i ) 4 i =1 d i x4 S i =1 1 i 4 d i 0 Precizarea funciilor fi (suntem n cazul analizei retrospective). Pentru orice 1 i 4, 0 xi x4 i xi 1 = xi d i = i ( xi , d i ), 2 i 4 i 0 d i xn , 1 i 4 . Am precizat astfel domeniul de admisibilitate: i = [0, xi ] , d i i . Pentru analiza prospectiv xi +1 = xi + d i = i ( xi , d i ), 1 i 3 . Deoarece
i =1

d i = ( xi xi 1 ) = xi x4
i =1

lund x0=0, cu notaiile din modelul

teoretic obinem ecuaiile de recuren: f1 ( x1 ) = max r1 ( d1 ) ; coloana S1 din tabel este cresctoare i reprezint r1

f 2 (x2 ) = max[r2 (d 2 ) + f1 (x1 )] = max[r2 (d 2 ) + f ( x2 d 2 )] ; 0 d 2 x2 f 3 (x3 ) = max[r3 (x3 ) + f 2 (x3 d 3 )] ; 0 d 3 x3 f 4 (x4 ) = max[r4 (x4 ) + f 3 (x4 d 4 )] ; 0 d 4 x4 ; x4 S .
Determinarea valorilor funciilor fi : (x ) = x . f1 ( x1 ) = max r1 ( x1 ) = r1 ( d1 ) , r1 fiind cresctoare 0 d 1 x1 deci: d 1 1 1

0 d1 x1

150

Modele i algoritmi de optimizare

x2=0 f 2 (0) = max[r2 (d 2 ) + f1 (0 d 2 )] = 0 cu 0 d 2 0 . Deoarece r2(0)=0 i f1(0)=0 rezult d2=0. x2=1 f 2 (1) = max[r2 (d 2 ) + f1 (1 d 2 )] cu 0 d 2 1 , d 2 { 0, 1 } . f 2 (1) = max[r2 (0) + f1 (1) ; r2 (1) + f1 (0)] = max[0 + 0.28; 0.25 + 0] = 0.28 (1) = 0 . valoare obinut pentru d
2

= max[0 + 0.45; 0.25 + 0.28; 0.41 + 0] = 0.53 (2) = 1 . valoare obinut pentru d=1; rezult d
2

x2=2 f 2 (2) = max[r2 (d 2 ) + f1 (2 d 2 )] cu 0 d 2 2 , d 2 { 0,1, 2} f 2 (2) = max[g 2 (0) + f1 ( 2) ; r2 (1) + f1 (1); r2 (2) + f1 (0) ] =

= max[0 + 0.65; 0.25 + 0.45; 0.41 + 0.28; 0.55 + 0] = 0.70 (3) = 1 . rezultat obinut pentru d=1 i astfel d
2

x2=3 f 2 (3) = max[r2 ( d 2 ) + f1 (3 d 2 )] cu 0 d 2 3 , d 2 { 0,1, 2, 3} f 2 (3) = max[r2 (0) + f1 (3) ; g 2 (1) + f1 (2); r2 (2) + f1 (1) ; r2 (3) + f1 (0)] =

= max[0.78; 0.90; 0.86; 0.83; 0.65] = 0.90 (4) = 1 . valoare obinut pentru d=1, rezult d
2

x2=4 f 2 (4) = max[r2 (d 2 ) + f1 (4 d 2 )] cu 0 d 2 4 , d 2 { 0,1, 2, 3, 4} f 2 (4) = max[r2 (0) + f1 (4) ; r2 (1) + f1 (3); r2 (2) + f1 (2) ; r2 (3) + f1 (1); r2 (4) + f1 (0)] =

= max[r2 (0) + f1 (5); r2 (1) + f1 (4 ); r2 (2 ) + f1 (3); g 2 (3) + f1 (2 ); r2 (4 ) + f1 (1);

x2 = 5 f 2 (5) = max[r2 (d 2 ) + f1 ( x2 d 2 )] ;
r2 (5) + f1 (0)] =

d 2 { 0,1,...5}

= max[0 + 0.9; 0.25 + 0.78; 0.41 + 0.65; 0.55 + 0.45; 0.65 + 0.28; 0.75 + 0] = = max[0.9; 1.03; 1.06; 1.00; 0.93; 0.75] = 1.06 obinut pentru d2=2 . Astfel d (5) = 2 .
2

x3 = 0 f 3 (0) = max[r3 (d 3 ) + f 2 (0 d 3 )] ( 0) = 0 . rezult d3=0. d


3

cu

0 d 3 0 . Deoarece r3(0)=0 i f3(0)=0

x3 = 1 f 3 (1) = max[r3 (d 3 ) + f 2 (1 d 3 )] cu 0 d 3 1 , d 3 { 0,1} . f 3 (1) = max[r3 (0) + f 2 (1) ; r3 (1) + f 2 (0)] = max[0 + 0.28; 0.15 + 0] = 0.28 (1) = 0 . obinut pentru d
3

7. Programare dinamic

151

f 3 (2) = max[r3 (0) + f 2 (2) ; r3 (1) + f 2 (1); r3 (2) + f 2 (0) ] = max[0.53; 0.43; 0.25]= 0.53 (2) = 0 . obinut pentru d
3

x3=2 f 3 (2) = max[r3 (d 3 ) + f 2 (2 d 3 )] cu 0 d 3 2 , d 3 {0, 1, 2}

f 3 (3) = max[r3 (0) + f 2 (3) ; r3 (1) + f 2 (2); r3 (2) + f 2 (1); r3 (3) + f 2 (0) ] =

x3=3 f 3 (3) = max[r3 (d 3 ) + f 2 (3 d 3 )] cu 0 d 3 3 , d 3 { 0,1, 2, 3}

= max[0.70; 0.68; 0.53;0.40] = 0.70

(3) = 0 . Aadar, pentru d=0 s-a obinut valoarea maxim i rezult d 3 x3=4 f 3 (4) = max[r3 (d 3 ) + f 2 (4 d 3 )] cu 0 d 3 4 , d 3 { 0,1, 2, 3, 4} = max[0.90; 0.85; 0.78; 0.68; 0.5] = 0.90

f 3 (4) = max[r3 (0) + f 2 (4) ; r3 (1) + f 2 (3); r3 (2) + f 2 (2); r3 (3) + f 2 (1); r3 (3) + f 2 (1) ] =

( 4) = 0 . valoare obinut pentru d=0; rezult d 3 x3=5 f 3 (4) = max[r3 (d 3 ) + f 2 (4 d 3 )] cu 0 d 3 4 , d 3 { 0,1, 2, 3, 4}


f 3 (5) = max[r3 (0) + f 2 (5) ; r3 (1) + f 2 (4); r3 (2) + f 2 (3); r3 (3) + f 2 ( 2); r3 ( 4) + f 2 (1); r3 (5) + f 2 (0)] = max[1.06; 1.05; 0.95; 0.93; 0.78; 0.60] = 1.06

(5) = 0 . obinut pentru d=0; rezult d 3

(0) = 0 , f4(1)=0.28 i d (1) = 0 , Analog, gsim pentru f4 valorile: f4(0)=0 i d 4 4


f4(2)=0.53

(2) = 0 , d 4

f4(3)=0.73

(3) = 1 , d 4

f4(4)=0.9 i

(5) = 1 . Centralizm n Tabelul 7.2 (4) = 0 sau d (4) = 1 , f4(5)=1.1 i d d 4 4 4 valorile gsite pentru f i d .
Tabelul 7.2

x
0 1 2 3 4 5

d1 ( x)

f1(x)
0 0.28 0.45 0.65 0.78 0.90

d 2 ( x)

f2(x)
0 0.28 0.53 0.70 0.90 1.06

d 3 ( x)

f3(x)
0 0.28 0.53 0.70 0.90 1.06

d 4 ( x)

f4(x)
0 0.28 0.53 0.73 0.90 1.1

0 1 2 3 4 5

0 0 1 1 1 2

0 0 0 0 0 0

0 0 0 1 0 sau 1 1

152

Modele i algoritmi de optimizare

Culegerea rezultatelor. Se observ c


0 x4 5

(x ) = 1. 4 = 5 , iar d max f 4 ( x 4 ) = f 4 (5) = 1.1 i x 4 4


(x ) = 4 . 3 = x 4 d x 4 4

Atunci Dar

(x (4) = 0 i atunci x (x ) = 4 . 3 ) = d 2 = x 3 d d 3 3 3 3 n continuare avem: (x ) = 3 ; d (x (3) = 3 . (x (4) = 1 , iar x 1 ) = d 2 ) = d 1 = x 2 d d 2 2 2 2 1 1


,d ,d ,d = (3,1, 0, 1) ceea ce nseamn c din Astfel, politica optim este d 1 2 3 4 cele 5 miliarde se vor investi 3 miliarde n aciuni la prima societate, 1 la cea de-a doua i 1 la cea de-a patra. Nu se vor achiziiona aciuni de la societatea a treia.

7.2.3. Problema gestiunii stocului


Principiul de optimalitate al lui Bellman poate fi enunat i sub urmtoarea form, aa cum va fi folosit n rezolvarea problemei ce urmeaz.
ntr-un ir optimal de decizii, oricare ar fi prima decizie luat, deciziile urmtoare formeaz un subir care este optimal, innd seama de rezultatele primei decizii.

n continuare vom rezolva urmtoarea problem cunoscut sub numele de problema gestiunii stocului. Tabelul 7.3 d pentru cinci perioade cantitile unitare de produs di pe care un vnztor le va furniza, precum i preurile ci cu care el poate achiziiona aceste produse pe care le va revinde la pre constant. El cumpr la nceputul perioadei un numr ntreg de produse, dispune de o capacitate de stocare gratuit de 5 uniti. Trebuie ca la nceputul fiecrei perioade s dispun de suficiente produse pentru a face fa cererii, ncepe i termin cu stoc nul. Cum trebuie s organizeze aceste cumprturi astfel nct profitul su s fie maxim ?
Tabelul 7.3 1 2 3 2 13 3 15 4 20

Perioada i Cererea bi Preul ci

4 3 11

5 2 12

Rezolvare. Notm :

7. Programare dinamic

153

di = cantitatea de produs cumprat la nceputul perioadei i , are rol de variabil de decizie ; xi = cantitatea de produs rmas n stoc la sfritul perioadei i , xi este n acest caz variabila de stare, pentru c permite cunoaterea perfect a strii situaiei la sfritul fiecrei perioade. Restriciile sistemului sunt b j x j 1 + d j 5 x j = x j 1 + d j b j j = 1,5 x = 0 ; x = 0. 5 0

Funcia de optimizat este f (d ) = c j d j .


j =1

S-a obinut astfel o problem de programare n numere ntregi. innd seama de cererea de la perioada nti, se vede (Tabelul 7.4) c perioada nti se poate termina cu 0 ; 1 ; 2 sau 3 uniti n stoc.
Tabelul 7.4 d1 f(d) min 5 65 4 52 3 39 2 26

b1
2

x1 3 2 1 0

Perioada a doua (Tabelul 7.5) se poate termina cu 0 , 1 sau 2 uniti n stoc (x1+d2=b2=3).
Tabelul 7.5 x1 d2 f(d) min 0 3 26+45=71 1 2 39+30=69 2 1 52+15=67 3 0 65+0=65 * 0 4 26+60=86 1 3 39+45=84 2 2 52+30=82 3 1 65+15=80 * 0 5 26+75=101 1 4 39+60=99 2 3 52+45=97 3 2 65+30=95 *

b2

x2
0

1 3

Perioada a treia (Tabelul 7.6) se poate termina cu 0 sau 1 uniti n stoc (x2+d3=b3=4).

154

Modele i algoritmi de optimizare


Tabelul 7.6 x2 d3 f(d) min 0 4 65+80=145 1 3 80+60=140 2 2 95+40=135 * 0 5 65+100=165 1 4 80+80=160 2 3 95+60=155 *

b3

x3
0

4 1

Perioada a patra (Tabelul 7.7) se poate termina cu 0, 1 sau 2 uniti n stoc (x3+d4=b4=3).
Tabelul 7.7 d4 f(d) min 3 135+33=168 * 2 155+22=177 4 135+44=179 * 3 155+33=188 5 135+55=190 * 4 155+44=199

b4

x4 0
1 2

x3 0 1 0 1 0 1

La sfritul perioadei a cincea (Tabelul 7.8) avem x5=0 i, deoarece x4+d5=b5=2, rezult
Tabelul 7.8 d5 f(d) min 2 168+24=192 1 179+12=191 0 190 *

b5
2

x4 0 1 2

Politica optimal de cumprturi este


x1 = 3 x 2 = 2 d 1 = 5 f (d ) = 65 x3 = 0 d = 2 x = 2 4 2 d5 = 0 f (d ) = 95 d 3 = 2 f (d ) = 135 d = 5 4 f ( d ) = 190 sau: d5=0 ; d4=5 ; d3=2 ; d2=2 ; d1=5 cu costul minim, f(d)=012+511+220+215+513=190 .

7. Programare dinamic

155

Generalizare Clasa de probleme Pk(x). S se determine o politic optimal de cumprturi pe primele k perioade, putnd termina cele k perioade cu x produse n stoc. Problema iniial poate s fie considerat ca P5(0). Vrem s punem n eviden o relaie de recuren ntre aceste diferite probleme i s le rezolvm de o manier mai economic n timp. Notm zk(x), valoarea optimului funciei obiectiv a problemei Pk(x). Avem relaia z k ( x) = min{c k d k + z k 1 ( x + bk d k )} ,
unde d k ( x) = {d k bk + bk 1 + x 5 d k x + bk } . Rezumm calculele precedente n Tabelul 7.9.
Tabelul 7.9 d3(x) d3(x) 135 2 155 3 * * * *
dk ( x)

x 0 1 2 3

z1(x) 26 36 52 65

d1(x) 2 3 4 5

d2(x) 65 80 95 *

d2(x) 0 1 2 *

d4(x) 168 179 190 *

d4(x) 3 4 5 *

d5(x) 190 * * *

d5(x) 0 * * *

n acest tablou coloanele au fost completate de la stnga la dreapta, calculnd d1(x) apoi z1(x) . a. m. d. Culegerea soluiei optimale se face de la dreapta la stnga. tiind c d5=0 i b5=2, adic x4=2, cutm soluia pentru P4(2) . Gsim d4=5, adic x3=0 i atunci cutm P3(0) . Din Tabelul 7.9 avem d3=2 i, cum b3=4, rezult x2=2. Cutm acum soluia pentru P2(2) . Cum b2=3 i din tabel d2=2, rezult c x1=3, i acum ne intereseaz P1(3) . Din Tabelul 7.9 rezult c d1=5 i astfel am ajuns la soluia final.

7.2.4. Problema alocrii optime a resurselor


Trei echipe de cercettori A, B, C lucreaz la un acelai proiect folosind abordri diferite. Echipele au probabilitile de eec : P(A)=0.4 ; P(B)=0.6 ; P(C)=0.8. Se decide alocarea a 2 noi cercettori la proiect n scopul minimizrii probabilitii de eec a proiectului. Pentru a decide alocarea cercettorilor suplimentari s-a stabilit Tabelul 7.10 (Henry-Labordere, 1995).
Tabelul 7.10 Noile probabiliti de eec pentru Nr. cercettori noi alocai echipe A B C 0 0.4 0.6 0.8 1 0.2 0.4 0.5 2 0.15 0.2 0.3

Care este alocarea optimal a cercettorilor suplimentari astfel nct mpreun s aib probabilitatea de eec minim ?

156

Modele i algoritmi de optimizare

Fie f i (x ) , probabilitatea minim atunci cnd se utilizeaz suplimentari pentru proiectele A, B, C. f i (x ) = min{f pred (i ) (x d i ) ri (d i )}, i {A, B, C } , unde
i i{A, B ,C }

Rezolvare Fie dA, dB, dC numrul de cercettori afectai echipelor A, B, C , rA(dA), rB(dB), rC(dC) funciile care dau probabilitile de eec pentru fiecare echip, xA numrul cercettorilor alocai proiectului A ; xB numrul cercettorilor alocai proiectelor A i B , i xC numrul cercettorilor alocai proiectelor A, B i C. Probabilitatea de eec toate echipele eueaz este f ( x) = rA (d A ) rB ( d B ) rC (d C ) , d A + d B + d C 2 .
x cercettori

= x , iar f pred ( A) = 1 .

Soluia este analoag soluiei problemei repartiiei investiiilor. S determinm valorile funciilor f i , i {A, B, C }. f A ( x) = min rA ( x) , deoarece rA este descresctoare, aa cum se vede din coloana

( x) = x . A a Tabelului 7.10 i atunci d A


x=0 , atunci 0 d B 0 i

(0) = 0 . f B (0) = min{ rB (0) f A (0)} = min{ 0.6 0.4} = 0.24 , iar d B
f B (1) = min{ rB (d B ) f A (1 d B )} = min{ rB (0) f A (1); rB (1) f A (0)} = 0.12 , (1) = 0 . d B
f B (2) = min{ rB (d B ) f A (2 d B )} = min{ rB (0) f A (2); rB (1) f A (1); rB (2) f A (0) } = (2) = 2 sau 1. = 0.08 , iar d B

x=1 , atunci 0 d B 1 i

x=2 , atunci 0 d B 2 i

x=0 , atunci 0 d C 0 i ( 0) = 0 . f C (0) = min{ rC (0) f B (0)} = min{ 0.8 0.24} = 0.192 , iar d C x=1 , atunci 0 d B 1 i

f B (1) = min{ rC (d C ) f B (1 d C )} = min{ rC (0) f B (1); rC (1) f B (0)} = 0.096 ,


(1) = 0 . d C
f C (2) = min{ rC (d C ) f B ( 2 d C )} = min{ rC (0) f B (2); rC (1) f B (1); rC (2) f B (0) } = ( 2) = 1 . = min{ 0.8 0.8; 0.5 0.12; 0.3 0.24} = 0.06 , iar d
C

x=2 , atunci 0 d C 2 i

Datele obinute sunt trecute n Tabelul 7.11

7. Programare dinamic
Tabelul 7.11

157

x 0 1 2

fA(x) 0.4 0.2 0.15

( x) d A

0 1 2

fB(x)* 0.24 0.12 0.08

d B ( x)

0 0 2 sau 1

fC(x)* 0.192 0.096 0.06

d C ( x)

0 0 1

Valoarea soluiei optimale este fC (x ) =0.06 pentru alocarea ambilor cercettori, astfel:
= 1 , adic se aloc un cercettor la proiectul C ; C = 2 i d x C = 1 , dar d = d (1) = 0 , adic la proiectul B nu se mai aloc alt B = x c d x C B B

cercettor;
= 1 , ns d = d (1) = 1 , adic se aloc un cercettor la proiectul A. A = x B d x B A A

7.3. Probleme propuse

1. O firm de construcii are 4 000 000 euro pe care vrea s-i investeasc n construirea a 3 tipuri de locuinte B1, B2, B3. Profitul adus de fiecare tip de locuin este dat de Tabelul 7.12.
Tabelul 7.12 Suma investit (mil) B1 0 0 1 35% 2 43% 3 47% 4 49%

B2 0 28% 32% 45% 47%

B3 0 26% 34% 40% 51%

S se precizeze care este profitul maxim i cum se obine.

R. Trecem rezultatele calculelor n Tabelul 7.13


Tabelul 7.13 f1 f2 d 1 0 35 43 47 49 0 1 2 3 4 0 35 63 71 80

x
0 1 2 3 4

r1
0 35 43 47 49

r2
0 28 32 45 47

r3
0 26 34 40 51

d 2 0 0 1 1 3

f3
0 35 63 89 97

d 3 0 1 2 2 2 sau 3

158

Modele i algoritmi de optimizare

Culegerea rezultatelor: =2 , d =2 , x = d (x 2 = x 3 d 3 = 4 , x a) d 2 ) = 1 3 3 2 2 = d (x ) =1 ; d
1 1 1

=1, 1 = x 2 d x 2 =1, 1 = x 2 d x 2

=1 , d =3 , x = d (x 2 = x 3 d 3 = 4 , x b) d 2 ) = 0 3 3 2 2

= d (x 1 ) = 1 . d 1 1 Profitul maxim este de 97% , dac se investete suma astfel: a) (1, 1, 2) , adic 1 milion n primul tip de locuine, 1 milion n al doilea tip de locuine i 2 milioane n al treilea tip de locuine; b) (1, 0, 3) , adic 1 milion n primul tip de locuine i 3 milioane n al treilea tip de locuine.
2. Problema achiziionrilor de carburant Serviciul de aprovizionare al municipalitii trebuie s asigure motorina pentru nclzirea oraului, timp de 6 luni noiembrie-aprilie. Preurile de cumprare prevzute pe ton i nevoile lunare sunt date de Tabelul 7.14 (Henry-Labordere, 1995):
Perioada (i) Necesarul (bi) Preul tonei (ci) 1 800 3300 Tabelul 7.14 2 3 500 300 5400 3900 4 200 5100 5 700 6000 6 400 3000

Stocul iniial la 1 noiembrie este de 200 t. Nu se poate depi capacitatea rezervorului care este de 900 t. Se dorete minimizarea cumprturilor, dar cu satisfacerea cererii pe ntreaga perioad. Fie: ci costul unei tone pe perioada i , xi stocul la sfritul perioadei i1, nceputul perioadei i, nainte de cumprarea cantitii di , di cantitatea cumprat la data de nti a lunii i , bi necesarul pe perioda i. Notnd f i (xi +1 ) costul politicii optimale care las la sfritul perioadei i un stoc xi+1, atunci : s se stabileasc o relaie ntre f i (xi +1 ) i f i 1 (xi ) , s se gseasc soluia optimal folosind programarea dinamic. S se precizeze cumprturile lunare i stocul final.

Rezolvare 1) Formularea problemei n programare liniar (vom renuna la dou zerouri la x1 = 2 x = x + d b ()i i i i preuri i cantiti) are restriciile : i +1 xi + d i 9 xi , d i 0

7. Programare dinamic

159

innd seama de relaiile de mai sus, funcia obiectiv se poate scrie ca funcie de d astfel: f=33d1+54d2+39d3+51d4+60d5+30d6 , iar problema obinut este
f p (d ) =min ci d i
i =1 p

x1 = 2 x = x + d b i = 1,6 i +1 i i i xi + d i 9 xi , d i 0 . Funcia de minimizat se scrie : f i (d i +1 ) =min(fi1(xi+1+bidi)+cidi). Transformrile i fiind inversabile se poate aplica att analiza prospectiv ct i retrospectiv. 2) Calculele sunt rezumate n Tabelul 7.15.
Tabelul 7.15 ( x ) f (d) f3(d) d 3 4 564 3 642 603 4 681 642 5 720 681 6 759 720 7 798 759 8 849 798 9 900 951

xi 0 1 2 3 4 5 6 7

f1(d) 198 231

( x) d 1

6 7

f2(d) 447 501 555 609 663

( x) d 2

( x) d 4

4 5 6 7 8

0 0 0 0 0 1 2 3

( x) f5(d) d 5 951 0 1011 1 1071 2

f6(d) 1071 1101 1161 1191 1221

( x) d 6

4 5 6 7 8 9

Culegerea rezultatelor din tabel:


) = 1071 = f (4) , d = d (x 7 ) = d 6 (0) = 4 , x 7 = 0 , min f 6 (d 7 6 6 6 b x = 44 = 0. 7 = x 6 + d 6 = b6 d x 6 6 6 = d (x 6 ) = d 5 (0) = 0 , rezult Cum d 5 5 = d (x b x = 0 + 7 0 = 7 i d 5 ) = d 4 (7 ) = 3 . 6 = x 5 + d 5 = x 6 + b5 d x 5 5 5 4 4

Analog obinem:
= d (x b x = 7 + 2 3 = 6 i d 4 ) = d 3 ( 6) = 9 , 5 = x 4 + d 4 = x 5 + b4 d x 4 4 4 3 3 = d (x b x = 6 + 3 9 = 0 i d 3 ) = d 2 (0) = 4 , 4 = x 3 + d 3 = x 4 + b3 d x 3 3 3 2 2 = d (x b x = 0 + 5 4 = 1 i d 2 ) = d1 (1) = 7 , 3 = x 2 + d 2 = x 3 + b2 d x 2 2 2 1 1 b x = 1+ 8 7 = 2 . 2 = x 1 + d 1 = x 2 + b1 d x 1 1 1

Politica optimal de cumprturi este : =7, d = 4, d =3, d =0, d =4 . =9, d f6(4)=1071 cu cantitile d 1 2 3 4 5 6

160

Modele i algoritmi de optimizare

3. La o balastier s-au estimat cantitile necesare de balast pentru trimestrul patru n vederea ncheierii contractului cu o carier. Cantitile i preurile sunt trecute n Tabelul 7.16 .
Luna Necesar (m3) Cost (u.m.) Tabelul 7.16 Octombrie Noiembrie 80 30 4 3 Decembrie 40 5

La nceputul fiecrei luni se comand o anumit cantitate de balast astfel nct s fie satisfcut necesarul de balast, dar s nu fie depit capacitatea de depozitare a balastierei, limitat la 100 m3. S se precizeze costul minim de aprovizionare i cum se obine. Se presupune c la nceputul i sfritul semestrului depozitul este gol.

R. Politica optimal de aprovizionare este : = 70 , d = 80 , d = 0. f3(0)=690 cu cantitile d 1 2 3


4. O firm de transport de persoane trebuie s fac legtura ntre localitile A i H, pe un drum ce poate trece prin localitile A, B, C, D, E, F, G, H. Distanele ntre localiti i reeaua de drumuri sunt trecute n graful din Figura 7.1. tiind c pentru o persoan se pltesc 3.4 u.m., s se determine costul minim de transport pentru o persoan i traseul pentru care se obine acest cost.
B 2 A 1 D 4 1 C 8 5 8 3 2 4 F 3 G 7 E 6 H

Figura 7.1

R. Traseul minim A, D, G, H are lungimea 13 i costul minim este Cmin=3.413=44.2 u.m.


5. Construirea unei autostrzi. (Kaufmann, 1967) Folosind analiza prospectiv s se rezolve problema 3 din 2.5.

R. Se consider c autostrada, care va uni localitile 1 i 14 (Figura 2.18), va fi format din cinci tronsoane.

8. ELEMENTE DE TEORIA ATEPTRII

8.1. Introducere n teoria ateptrii


Teoria ateptrii (sau teoria firelor de ateptare sau teoria cozilor) se ocup cu studiul evoluiei sistemelor care prezint aglomerri (sistemele de ateptare). Un astfel de sistem este compus dintr-una sau mai multe staii de servire (n numr finit) care servesc clienii ce sosesc n sistem pentru a solicita servicii. Modul de dispunere sau condiionare a staiilor de serviciu dintr-un sistem de ateptare constituie topologia sistemului. Astfel, staiile pot fi n serie sau n paralel sau acest serviciu se realizeaz de ctre una din staii sau de ctre un grup de staii. Studiul unui sistem de ateptare se face cu ajutorul unui model de ateptare.

Elementele cunoscute ale unui model de ateptare sunt (Vduva et al, I, 1974): fluxul intrrilor n sistem mecanismul serviciului. Intrrile sunt caracterizate fie de numrul de clieni pe unitatea de timp care sosesc, fie de intervalele de timp dintre dou veniri consecutive. Oricare dintre aceste dou mrimi este o variabil aleatoare cu repartiia cunoscut. Cunoaterea mecanismului serviciului presupune cunoaterea topologiei sistemului, regula dup care se face serviciul, numit i disciplina serviciului (de exemplu: FIFO (FirstIn FirstOut) primul sosit primul servit, sau o ordine bazat pe prioriti), precum i repartiia numrului de clieni servii pe unitatea de timp sau repartiia duratei serviciului. Mecanismul serviciului este caracterizat de asemenea i de capacitatea sistemului presupus cunoscut, adic numrul maxim de clieni ce pot exista la un moment dat n sistem, sau, echivalent, lungimea maxim a cozii. Elementele necunoscute ale modelului de ateptare sunt: timpul de ateptare timpul de neocupare a staiilor lungimea cozii numrul de clieni din sistem N(t) existeni la momentul t . Toate aceste necunoscute sunt variabile aleatoare i, prin rezolvarea modelului de ateptare, se urmrete determinarea repartiiei lor sau mcar a unei valori medii n funcie de elementele cunoscute.

162

Modele i algoritmi de optimizare

Un model de ateptare se noteaz A / S / c: (L, d) , unde: A repartiia timpului dintre dou veniri consecutive, S repartiia duratei de serviciu, c numrul de staii (canale) de serviciu, L lungimea maxim a cozii, d disciplina de serviciu.

Exemplu. Notaia Exp() / Exp() / 1: (, FIFO) caracterizeaz un model cu: veniri cu repartiia exponenial negativ de parametru , servicii cu repartiie exponenial negativ de parametru , o singur staie ( c=1 ), coada care poate crete indefinit ( L=), disciplina de serviciu care este primul sositprimul servit (FirstIn FirstOut).
Numrul N(t) de clieni din sistem ia valori ntregi 0,1,2,..., i este, n general, un proces stochastic discret. Cunoaterea repartiiei acestui proces permite determinarea multor caracteristici ale sistemului.

8.2. Caracterizarea procesului N(t) ca proces de natere i deces


O caracteristic a procesului N(t) este aceea c variaia valorilor sale pe intervale mici de timp nu este mare, n sensul c probabilitatea ca N(t) s prezinte variaii mari pe intervalul de timp (t, t + t) depinde de valoarea lui N(t) i este, n general, mic. Variaia procesului N(t) este determinat de intrrile i ieirile din sistem, adic de veniri i servicii. Asemntor variaz i volumul populaiilor biologice; variaia numrului de indivizi dintr-o astfel de populaie pe un interval mic de timp nu este prea mare i ea depinde de natalitate (intrri) i de deces (ieiri). Procesul stochastic N(t) este un caz particular de proces Markov i se numete proces de natere i deces (Vduva, 1977).

Definiia 8.1. Procesul stochastic cu creteri independente N(t) se numete proces de natere i deces dac satisface urmtoarele condiii: 1) P [ N ( t + t ) = n + 1 N(t) = n ] =n t + O (t ) ; 2) P [ N ( t +t ) = n 1 N(t) = n ] = n t + O (t ) ; 3) P [ N ( t + t ) = n i N(t) = n ] = O (t ), () i > 1 unde P ( AB ) este probabilitatea lui A condiionat de B, {n , n 0}, {n , n 0} sunt iruri de numere pozitive date, iar O (t ) un element al unei clase de O ( t ) = 0, cO ( t ) = O ( t ), ()c R . funcii care satisface: lim O ( t ) = 0, lim t 0 t 0 t

8. Elemente de teoria ateptrii

163

Procesul este cu creteri independente n sensul c, oricare ar fi t1<t2<t3<t4 variabilele N(t2 t1), N(t3 t4) sunt independente stochastic, adic evoluiile procesului pe dou intervale de timp disjuncte sunt independente. Constantele n , n 0 , se numesc intensiti de natalitate, iar n , n 1 , se numesc intensiti de deces. Dac pentru t1 < t 2 avem N (t2 t1 ) = N (t2 ) N (t1 ) , se spune c procesul N este un proces de numrare. Vom determina probabilitile Pn(t) = P( N( t ) = n ), n = 0,1,2,... . Din definiia procesului de natere i deces i innd seama c mulimea funciilor O (t) este nchis la adunare, scdere, nmulire i nmulire cu un scalar sau cu o funcie de timp, avem: 1 n t + O ( t ) )(1 n t + O (t ) ) + Pn (t + t ) = Pn (t )( 144 4 2444 3 144 4 2444 3 + Pn +1 (t )(1 n +1 t + O (t ) )( n +1 t + O (t ) ) + 144 4 2444 3 1442443 + Pn +i (t )(1 O (t ) ) O (t ) + 14 24 3 1 2 3 i >1
nu are loc o venire de i indivizi are loc o plecare de i indivizi nici o venire o plecare

+ Pn 1 (t )( n 1 t + O ( t ) )(1 n 1 t + O ( t ) ) + 144 244 3 144 4 2444 3


o venire nici o plecare

nici o venire

nici o plecare

+ Pn i (t ) O (t ) (1 O (t ) ) 1 2 3 14 24 3 i >1
are loc o venire de i indivizi

nu are loc o plecare de i indivizi

innd seama de proprietile funciilor O (t) avem: Pn (t + t ) Pn (t ) = ( n + n )Pn (t )t + n 1 Pn 1 (t )t + + n +1 Pn +1 (t )t + O ( t )

, n1 .

mprim la t , trecem la limit pentru t 0 i obinem ecuaiile KolmogorovFeller care guverneaz procesul de natere i deces: Pn (t ) = ( n + n )Pn (t ) + n 1 Pn 1 (t ) + n +1 Pn +1 (t ) , n 1 (8.1) Asemntor deducem P0 (t ) = 0 Po (t ) + 1 P1 (t ) (8.2) Sistemul de ecuaii (8.1) i (8.2) trebuie s aib o soluie care s fie un sistem complet de probabiliti, adic

P (t ) = 1 , ()t
n =0 n

(8.3)

Teoremele urmtoare dau condiiile ca sistemele (8.1)-(8.3) s aib soluie.

Teorema 8.1. Dac procesul N ( t ) este un proces de natere pur (n = 0, () n 1), i dac exist i astfel nct Pi ( 0 ) = 1 i Pn ( 0 ) = 0, n i (condiiile

164

Modele i algoritmi de optimizare

iniiale sunt date), atunci condiia necesar i suficient ca soluia sistemului de ecuaii difereniale (8.1) i (8.2) s fie un sistem complet de probabiliti este ca 1 =.
k =0

Teorema 8.2. Dac pentru procesul de natere i deces N ( t ) sunt date condiiile iniiale ca n Teorema 8.1, atunci o condiie suficient ca sistemul de ecuaii difereniale (8.1) i (8.2) s aib ca soluie un sistem complet de probabiliti este ca


k =1 i =1

=.

i 1

Ipotez simplificatoare. Procesul N ( t ) se presupune staionar, adic Pn ( t ) = pn = constant, ipotez justificat de faptul c, dup perioade mari de timp de funcionare, sistemele se stabilizeaz. n caz staionar, sistemul (8.1) (8.2) devine: 0 p 0 + 1 p1 = 0 (8.4) ( n + n ) p n + n 1 p n 1 + n +1 p n +1 = 0 , n 1
Notm i din ultima ecuaie avem iar din prima ecuaie Astfel, n cazul staionar sau
p n +1 =

z k = k p k + k +1 p k +1
zn = zn1 , z0 = 0. zn = 0, n 0,

n pn , n 0 . n +1

Deducem c
n 1 k pn = p0 , n 1 . k = 0 k +1

Din condiia (8.3) rezult c


p0 = 1

1 + k n =1 k = 0 k +1
n 1

Cunoscnd repartiia procesului N ( t ), n cazul staionar, adic a numrului de clieni din sistemul de ateptare, se pot calcula unele elemente necunoscute ale modelului, i anume: a) numrul mediu de clieni din sistem M [N (t )] = np n ,
n =0

8. Elemente de teoria ateptrii

165

b) lungimea medie a cozii M [Lc ] = ( n c) p n ,


n=c L

(nu poate fi coad pentru n c, adic mai puini clieni dect numrul staiilor de serviciu), c) timpul mediu de ateptare la coad 1 M [WT ] = M [Lc ] , (1 p 0 ) unde 1 este timpul mediu de servire i se presupune cunoscut. (1 p 0 )

Observaia 8.1. (1 p0) reprezint numrul mediu de clieni (uniti) servii n unitatea de timp. Atunci: d) timpul mediu de ateptare n sistem 1 M [W ] = M [N (t )] , (1 p 0 ) e) numrul mediu de staii neocupate
M [SL ] = (c n) p n ,
n =0 c

timpul mediu de lenevire (neocupare) a unei staii ntre dou servicii consecutive M [ AT ] , M [TL ] = M [SL ] c unde M[AT] este media intervalelor de timp dintre dou veniri consecutive. f) Aadar, pentru a rezolva un model folosind procese de natere i deces trebuie cunoscute intensitile procesului n , n 0, n , n 1. Pe baza acestor intensiti se calculeaz probabilitile pn , n 0, i apoi elementele necunoscute ale modelului, conform cu formulele precedente.

8.3. Modelul Po()/Exp()/1:(,FIFO)

n acest model intrrile se fac dup repartiia Poisson ( t ) n t P ( N (t ) = n ) = e , n0, n! iar intervalul de timp dintre dou sosiri consecutive are o repartiie exponenial de parametru , cum se poate constata uor.

166

Modele i algoritmi de optimizare

Serviciile se fac dup repartiia exponenial, adic durata serviciului ca variabil aleatoare are repartiia exponenial, 1 e x , pentru x 0 . F ( x) = pentru x < 0 0 , Raportul = se numete intensitate de trafic sau factor de serviciu. El reprezint, n medie, numrul de clieni care vin n perioada unui singur timp de serviciu. Dac > 1, atunci durata serviciului pentru clienii care l solicit n unitatea de timp este mai mic dect unitatea de timp, deci nu se va produce o aglomerare. Dac < 1, numrul clienilor din irul de ateptare va crete necontenit. Dac = 1, nu se va produce o coad imens durata serviciilor coincide cu unitatea de timp, ns evident n anumite momente va fi aglomeraie. n modelul precedent n = i n = , () n N * . n acest caz, ecuaiile KolmogorovFeller (8.4) devin, pentru cazul staionar p n 1 ( + ) p n + p n +1 = 0 , () n 1 (8.5) p 0 + p1 = 0 Ultima ecuaie d p1 =

p0 = p0

i nlocuind n prima, avem p 0 ( + ) p1 + p 2 = 0 p 2 = 2 p 0 . Rezult prin inducie c p0 . pn = n Dar pn = 1 p0 n = 1 ,


nN

nN

ns
n

(8.6) pn = n( 1 ) . Se pot determina elementele necunoscute ale modelului n funcie de . De asemenea, se pot gsi: pn maxim d n n (1 ) = 0 = d n +1 i atunci

cnd < 1 i atunci

1 1 = p0 1

1 n . p n (t ) = n + 1 n + 1

8. Elemente de teoria ateptrii

167

Aadar, putem determina: numrul mediu de clieni din sistem la momentul t (8.7) 1 n numrul mediu al clienilor din irul de ateptare lungimea medie a cozii M [N (t )] =

n np (t ) = N
n

n 1

(1 ) =

M [L1 ] = (n 1) p n = (1 ) ( n 1) n =
n=2 n=2

2 1

(8.8)

timpul mediu de ateptare la coad 1 M [WT ] = M [L1 ] = (8.9) (1 p 0 ) (1 ) timpul mediu de ateptare n sistem 1 1 M [W ] = M [WT ] + = . (8.10) (1 ) Dac este interesant probabilitatea ca n sistem s fie mai mult de m persoane i dorim ca ea s nu depeasc o anumit valoare , atunci 1 (1 ) (1 ) ... m 1 (1 ) < m < (8.11) Se pot determina astfel i nct s nu existe aglomeraie.
Propoziia 8.1. Probabilitatea ca numrul clienilor din sistem la un moment dat s fie mai mare ca un numr dat k este (8.12) P( N( t ) > k ) = k+1 . Demonstraie. Calculm aceast probabilitate, innd seama de notaiile de mai nainte, i avem k +1 P(N (t ) > k ) = p n (t ) = n (1 ) = (1 ) = k +1 . 1 n = k +1 n = k +1

Se poate determina probabilitatea ca un client s atepte la rnd un timp superior unui timp dat t0 . Deoarece timpul de ateptare la coad este o variabil aleatoare continu, vom determina repartiia complementar a acestei variabile aleatoare, adic P(WT >t0 ) (funcia de repartiie F(t0) = P(WT t0 )). Determinm aceast repartiie prin intermediul unei probabiliti elementare de forma P( t < WT < t + dt ), care reprezint probabilitatea evenimentului ca timpul de ateptare al unui client la coad s fie cuprins n intervalul (t, t+dt). Notm cu Pn( t < WT < t + dt ) probabilitatea ca timpul de ateptare la coad al unui client s fie cuprins n intervalul (t, t+dt) condiionat de faptul c la sosirea lui n sistem exist deja n > 0 clieni.
Observaia 8.2. Dac n = 0 la sosirea n sistem a clientului, acesta nu ateapt i

intr direct n serviciu. P (t < WT < t + dt ) = Pn (t < WT < t + dt ) .


n =1

Cum se calculeaz Pn( t < WT < t + dt ) ?

168

Modele i algoritmi de optimizare

Fiind o probabilitate condiionat, se scrie ca un produs de probabiliti pentru urmtoarele trei evenimente: a) evenimentul ca, la sosire, n sistem s existe n uniti, Pn(0). Se ia momentul sosirii clientului ca fiind t = 0 ; b) evenimentul ca n intervalul de timp t s fie servii i s plece din sistem n1 clieni, cu condiia s fi existat iniial n clieni n sistem. Probabilitatea acestui ( t )n 1 t eveniment este e ; (n 1) ! c) evenimentul ca n intervalul de timp dt s fie servit i s plece un client, condiionat de evenimentele de la a) i b). Probabilitatea acestui eveniment este dt . Prin urmare, ( t )n1 e t dt . Pn (t < WT < t + dt ) = Pn (0) (n 1)! Sistemul este presupus n regim staionar i atunci avem: ( t )n 1 t n e dt = P (t < WT < t + dt ) = (1 ) (n 1)! n =1 = (1 ) de t Aadar,
P (WT > t 0 ) = (1 ) e (1 ) d = (1 )
t0

( t ) n 1 = (1 ) e t (1 ) dt . ( ) 1 ! n n =1

e (1 ) (1 )

=
t0

=e

t 0 (1 )

pentru < 1. Am obinut P( WT > t0 ) = e t0 (1 ) i astfel am demonstrat urmtoarea propoziie.


Propoziia 8.2. Probabilitatea ca un client s atepte la rnd un timp superior unui timp dat t0 este P( WT > t0 ) = e t0 (1 ) . Exemplu. La o baz de aprovizionare sosesc n medie 30 de autobasculante pe or pe care trebuie s le ncarce un singur excavator. Timpul mediu necesar ncrcrii unei autobasculante este de 1 min i 30 s. S se stabileasc elementele modelului de ateptare care rezult, dac se consider c sosirile sunt poissoniene, iar servirile, exponeniale. S se determine probabilitatea ca n sistem s fie 3 sau mai mult de 3 autobasculante. Rezolvare. Presupunem c prin observaiile din teren ne situm n cazul modelului Po()/Exp()/1:(,FIFO) . Pentru acest caz intensitatea intrrilor este =30 , iar

8. Elemente de teoria ateptrii

169

cea a ieirilor (serviciilor) din sistem este = este =

60 min . Intensitatea de trafic 1 min 30 s

3 . Din relaia (8.6) avem p 0 = 1 = 0.25 , p1=0.1875 .a.m.d. 4 Se pot determina acum conform cu relaiile (8.7)(8.11) elementele necunoscute ale modelului: numrul mediu de autobasculante din sistem M[N(t)]=3. numrul mediu de autobasculante din irul de ateptare M[L1(t)]=2.25. timpul mediu de ateptare n sistem M[W]=6 min. timpul mediu de ateptare n irul de ateptare M[WT]=4 min i 30 s. Din relaia (8.12) avem P( N( t ) > 2) = 2+1=0.42187 .
Comentariu. Dac s-ar pune problema ca n sistem s fie n medie 2 autobasculante n 2 loc de 3, atunci din relaia (8.7) obinem = 2 i = = . Cum =30 1 3 este o dat exterioar sistemului, trebuie modificat durata medie a serviciilor, i anume = 45 s . Pentru noile valori ale parametrilor , se pot determina elementele necunoscute ale modelului.

S rezolvm modelul pentru valorile iniiale ale parametrilor i cu pachetul de programe Management Scientist. Dup lansarea pachetului de programe selectm modulul Waiting Lines i din acesta Poisson Arrivals / Exponential Service (Figura 2.4). Introducem datele de intrare ca n Figura 8.1.

Figura 8.1

Selectnd Solve obinem soluia modelului care, aa cum se vede din Tabelul 8.1, coincide cu cea obinut mai sus.

170 Tabelul 8.1

Modele i algoritmi de optimizare


WAITING LINES ************* NUMBER OF CHANNELS = 1 POISSON ARRIVALS WITH MEAN RATE = 30 EXPONENTIAL SERVICE TIMES WITH MEAN RATE = 40 OPERATING CHARACTERISTICS ------------------------THE PROBABILITY OF NO UNITS IN THE SYSTEM THE AVERAGE NUMBER OF UNITS IN THE WAITING LINE THE AVERAGE NUMBER OF UNITS IN THE SYSTEM THE AVERAGE TIME A UNIT SPENDS IN THE WAITING LINE THE AVERAGE TIME A UNIT SPENDS IN THE SYSTEM THE PROBABILITY THAT AN ARRIVING UNIT HAS TO WAIT Number of Units in the System ----------------------------0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 OR MORE Probability ----------0.2500 0.1875 0.1406 0.1055 0.0791 0.0593 0.0445 0.0334 0.0250 0.0188 0.0141 0.0106 0.0079 0.0059 0.0045 0.0033 0.0025 0.0075

0.2500 2.2500 3.0000 0.0750 0.1000 0.7500

8.4. Modelul Po()/Exp()/1:(m, FIFO)


Pentru acest model, lungimea maxim a cozii este m<. n acest caz, probabilitatea ca n intervalul de timp de lungime t>0 s soseasc un client n sistem este proporional cu mrimea intervalului; coeficientul de proporionalitate depinde de numrul n de uniti aflate n sistem la momentul respectiv i rmne n ; analog, coeficientul legat de servicii rmne n . n ecuaiile de stare (8.4) facem presupunerea c probabilitatea ca n intervalul de timp t s soseasc n sistem un client este cu att mai mic cu ct numrul clienilor rmai din numrul total este mai mic, (m n ) t = n t i atunci n = (m n ) . Coeficientul n nu depinde de numrul de clieni din sistem la un moment dat, deoarece exist o singur staie, i l notm cu . n ecuaiile de stare (8.4), nlocuind n i n i considernd n+1 = 0, obinem ecuaia m p 0 + p1 = 0 p1 = m

p0 .

8. Elemente de teoria ateptrii

171

n cea de-a doua ecuaie din (8.4) lum n = 1 i obinem m p 0 [(m 1) + ] p1 + p 2 = 0 m p 0 (m 1) m

p0 m p0 + p2 = 0
2

p 2 = m(m 1) p0 .
Lund n = 2, obinem (m 1) p1 [( m 2) + ] p 2 + p 3 = 0

( m 1) m p 0 (m 2) m(m 1) p0 + p3 m(m 1) p 0 = 0 p 3 = m(m 1)(m 2) p0 . Prin inducie rezult pn = A p0 2 K m i p 2 (t ) K p m (t )


n m n n

0 N (t ) : p (t ) 0
m

1 p1 (t )

p
k =0 n

(t ) = 1

n Am p0 = 1 p0 = n =0

A
n =0

n m

0 , Am =1 .

Calculul elementelor necunoscute ale modelului numrul mediu de clieni din sistem
m n M [ N (t )] = np n (t ) = nA p = 0 [m (m n)] Am p0 = n =0 n =0 n =0 m m n m m m 1 n +1 n p m n A p m = m A = ( ) A 0 0 m p0 = n =0 m n =0 n =0 4 14 4 244 3 144 4 24 4 3 1 1 p0 m n m n n n +1 n n

=m

(1 p 0 ) ; deci M [ N (t )] = m (1 p 0 ) ,

numrul mediu de clieni servii la un moment dat 1 0 n s (t ) : p (t ) 1 p (t ) M [n s (t )] = 0 p 0 + 1 p 0 = 1 p 0 . 0 0

172

Modele i algoritmi de optimizare

Dac este numrul mediu de clieni ce pot fi servii pe unitatea de timp, dac staia este ocupat tot timpul, atunci numrul mediu de clieni servii efectiv ntr-o unitate de timp este ( 1 p0 ). lungimea medie a cozii M[Lc] = M[L1] M[Lc] = numrul mediu de clieni n sistem la un moment dat minus numrul mediu de clieni ce sunt servii la un moment dat = =M[N( t )] ( 1 p0 ) = + = m (1 p 0 ) (1 p 0 ) M [ Lc ] = m (1 p 0 ) .

timpul mediu de ateptare la coad + 1 1 m M [WT ] = M [ L1 ] = (1 p 0 ) 1 p 0 + 1 m M [WT ] = , 1 p 0


timpul mediu de ateptare n sistem 1 1 m 1 m M [W ] = M [WT ] + = M [W ] = . 1 p 0 1 p 0

Exemplu. O firm de taximetre are 12 autoturisme i un singur mecanic de ntreinere. tiindu-se c repartiia de probabilitate a timpului de funcionare a unui autoturism ntre dou defeciuni este exponenial cu media de 6 zile, iar repartiia timpului necesar reparaiei defeciunii este exponenial cu media 4 ore, s se determine: probabilitatea ca la un moment dat toate autoturismele s funcioneze, timpul mediu de ateptare a unui autoturism defect pn la momentul cnd ncepe s fie reparat, timpul mediu de ateptare a unui autoturism pn n momentul n care prsete atelierul de reparaii, numrul mediu de autoturisme la coad i numrul mediu de autoturisme din atelier. Se consider ziua de lucru de 8 ore. Rezolvare
1 1 1 1 48 1 = = = ; = maini pe or , = , atunci 8 6 48 4 1 12 4 1 1 p0 = = = 0.19857 , n 12 5.03607 n 1 A12 12 n=0

8. Elemente de teoria ateptrii

173

reprezint probabilitatea ca la un moment dat toate autoturismele s funcioneze. 1 1 + + M [ L1 ] = m (1 p 0 ) = 12 48 4 (1 0.19857) = 1.58141 , 1 48

M [ N (t )] = m (1 p 0 ) = 12 4 (1 0.19857) = 2.38284 , 1
68
1 1 + m + 1 1 12 4 48 = 7.89294 , M [WT ] = = 1 1 p 0 1 1 0.19857 4 48

1 12 1 m 1 M [W ] = 4 = 11.89294 . = 1 p 0 1 1 0.19857 1 4 48 Pentru rezolvarea acestei probleme cu Management Scientist, dup lansarea programului, selectm Waiting Lines, apoi din meniul File alegem New i din fereastra care apare selectm Poisson Arrivals/Exponential Service (Finite Pop.), (Figura 2.4). n fereastra care apare introducem datele de intrare 1 = = 0.02083 , = 0.25 68 ca n Figura 8.2, apoi selectm Solve

Figura 8.2

i rezultatele sunt afite pe ecran sub urmtoarea form (Tabelul 8.2).

174 Tabelul 8.2

Modele i algoritmi de optimizare

WAITING LINES ************* NUMBER OF CHANNELS = 1 POISSON ARRIVALS WITH MEAN RATE = 0.02083 EXPONENTIAL SERVICE TIMES WITH MEAN RATE = 0.25 FINITE CALLING POPULATION OF SIZE = 12 OPERATING CHARACTERISTICS ------------------------THE PROBABILITY OF NO UNITS IN THE SYSTEM THE AVERAGE NUMBER OF UNITS IN THE WAITING LINE THE AVERAGE NUMBER OF UNITS IN THE SYSTEM THE AVERAGE TIME A UNIT SPENDS IN THE WAITING LINE THE AVERAGE TIME A UNIT SPENDS IN THE SYSTEM THE PROBABILITY THAT AN ARRIVING UNIT HAS TO WAIT Number of Units in the System ----------------------------0 1 2 3 4 5 6 7 8 9 10 11 12 Probability ----------0.1986 0.1986 0.1820 0.1517 0.1137 0.0758 0.0442 0.0221 0.0092 0.0031 0.0008 0.0001 0.0000

0.1986 1.5808 2.3822 7.8907 11.8907 0.8014

8.5. Modelul Po()/Exp()/c:(, FIFO)


Aceste modele generalizeaz modelele de ateptare cu o singur staie de servire, avnd c staii de servire paralele (identice n ceea ce privete timpul de servire). Fie N( t ) numrul mediu de clieni din sistem la momentul t . Atunci avem: probabilitatea unei veniri n intervalul ( t , t + t ) este t + O (t), iar venirile sunt independente ntre ele, probabilitatea unei ieiri dintr-o staie de servire n intervalul de timp (t , t + + t) este t + O (t) , probabilitatea rmnerii unui client n sistem este 1 t + O (t) , probabilitatea ca n c clieni s rmn n staiile de servire este ( 1 t+ O (t) )n = 1 nt + O (t), deoarece ieirile din sistem sunt independente, probabilitatea ca n intervalul de timp ( t , t + t ) un client s prseasc sistemul atunci cnd n staii de servire lucreaz simultan este n t + O(t) .

8. Elemente de teoria ateptrii

175

Notm En evenimentul care const n prezena a n clieni n sistem i cu pn(t) probabilitatea producerii evenimentului En la momentul t. Vom calcula Pn( t + t ). a) 0 < n < c . Vom neglija probabilitile de ordin de mrime mai mic ca O (t). Sunt posibile urmtoarele situaii: 1) sistemul se gsete la momentul t n starea En i nu au loc nici o venire i nici o plecare n/din sistem n intervalul de timp (t, t + t). Probabilitatea corespunztoare este (1 t + O (t ))(1 n t + O (t )) p n (t ) =

= [1 ( + n )t + O (t ))] p n (t ) ,

2) sistemul se gsete la momentul t n starea En1 i au loc o venire i nici o plecare. Probabilitatea corespunztoare este ( t + O (t ) )(1 t ) p n 1 (t ) = p n 1 (t )t , 3) sistemul se gsete la momentul t n starea En+1 i au loc o ieire din sistem i nici o venire. Probabilitatea corespunztoare este (1 t + O (t ) )((n + 1) t + O (t ) ) p n +1 (t ) = = [(n + 1) t + O ( t ))] p n +1 (t ) . Aadar, p n (t + t ) = [1 ( + n )t + O (t )] p n (t ) + p n 1 (t )t + + [(n + 1) t + O (t )] p n +1 (t )

(8.13)

= [1 ( + c )t + O ( t ))] p n (t ) , ntruct toi cei c clieni din staiile de servire rmn n sistem (n-au terminat serviciul). 2) sistemul se gsete la momentul t n starea En1 , are loc o intrare n sistem i nu se produce nici o ieire. Probabilitatea corespunztoare este ( t + O (t ) )(1 c t + O (t ) ) p n 1 (t ) = p n 1 (t )t . 3) sistemul se gsete la momentul t n starea En+1 , nu are loc nici o intrare n sistem, dar are loc o ieire. Probabilitatea corespunztoare este (1 t + O (t ) )(c t + O (t ) ) p n +1 (t ) = c p n +1 (t )t , unde c t + O (t ) este probabilitatea ca un client s prseasc sistemul atunci cnd c staii lucreaz simultan. Aadar,

b) n c . Apar urmtoarele eventualiti: 1) sistemul se gsete la momentul t n starea En i nu au loc nici o venire i nici o plecare n/din sistem n intervalul de timp (t, t + t). Ieirile nu pot avea loc dect din cele c staii ocupate. Probabilitatea corespunztoare este (1 t + O (t ) )(1 c t + O (t ) ) p n (t ) =

176

Modele i algoritmi de optimizare

p n (t + t ) = [1 ( + c )t + O (t )] p n (t ) + p n 1 (t )t + + c p n +1 (t )t .

(8.14)

c) n = 0 . Evideniem urmtoarele eventualiti: 1) sistemul se gsete la momentul t n starea E0 i nu au loc nici o venire i nici o plecare n/din sistem n intervalul de timp (t, t + t). Probabilitatea corespunztoare este ( 1 t + O (t ) ) p0 ( t ). 2) sistemul se gsete la momentul t n starea E1 , are loc o ieire din sistem i nu se produce nici o intrare. Probabilitatea corespunztoare este (1 t + O (t ) )( t + O (t ) ) p1 (t ) = [ t + O (t )]p1 (t ) . Am obinut p 0 (t + t ) = [1 t + O (t )] p 0 (t ) + [ t + O (t )] p1 (t ) (8.15) Din relaiile (8.13), (8.14), (8.15), prin mprire la t i innd seama de proprietile funciilor O (t) , trecnd la limit (t 0), obinem ecuaiile de stare pentru acest model: (t ) = p 0 (t ) + p1 (t ) p0 (8.16) p n (t ) = ( + n ) p n (t ) + p n 1 (t ) + ( n + 1) p n +1 (t ) , 1 n < c p (t ) = ( + c ) p (t ) + p (t ) + c p (t ) , nc . n n 1 n +1 n (t ) = 0 , n 0 , ecuaiile de stare (8.16) devin n cazul staionar p n p 0 = p1 ( + n ) p n = p n 1 + (n + 1) p n +1 1 n < c ( + c ) p = p + c p n c. n n 1 n +1 Pentru rezolvarea sistemului (8.17) vom nota zn = pn1 + npn . Prima ecuaie din (8.17) devine z1 = p0 + p1 = 0 . Prelucrm a doua ecuaie din (8.17) pn + ( n + 1)pn+1 = pn1 + npn , de unde rezult c zn+1 = zj = ... = z1 = 0 . (8.17)

1 1 1 p1 = p 0 ; p n = p n 1 p n = p0 = n p0 ; = . n n! n!
Astfel,
1 n p0 , 1 n < c . n! Din ultima ecuaie a sistemului (8.17) rezult c pn + cpn+1 = pn1 + cpn . De unde

pn =

8. Elemente de teoria ateptrii

177

zn = zn+1 , iar zc = pc1 + cpc = 0. Astfel pc = Aadar,


c pc+k = p0 , k 0 . c c! k

1 c c 1 p0 = p0 . p c 1 = c (c 1)! c! c

Pentru acest model notm

* =

intensitatea de trafic a sistemului de

ateptare. Am obinut soluia sistemului (8.17) n pn = p0 , 1 n < c n! n pn = p0 , n c . c! c n c Deoarece

(8.18)

p
n=0

= 1 , rezult c
n c 1 n * c = 1, + p0 n=0 n! ! c = n c

( )

de unde obinem + c! 1 * n=0 n! Cunoscnd repartiia variabilei aleatoare N( t ), se poate determina repartiia variabilei aleatoare Lc( t ) L 0 1 2 Lc : p (t ) + ... + p (t ) p (t ) p (t ) L . c c +1 c+2 0 p0 = 1

c 1

Calculul elementelor necunoscute ale modelului lungimea medie a cozii


M [ Lc ] = 0 [ p 0 (t ) + ... + p c (t )] + kp c + k (t ) .
k =1

Notm c + k = n k = n c . Atunci
M [ Lc ] =
n = c +1

(n c) p n =

n = c +1

(n c)

n
c!c n c

p0 =

178

Modele i algoritmi de optimizare


c+2 c +3 c +1 cc = + 2 + 3 + ... p 0 1 = c c c! c

= Se tie c

cc p0 c! c

c +1

2 3 + 1 + 2 c c ... .

1 , x <1. (1 x) 2 k =1 Aplicnd n relaia de mai sus, obinem

kx

k 1

M [ Lc ] =

cc p0 c! c

c +1

1 1 c
c 2

de unde rezult c p0 . Pentru determinarea numrului mediu de clieni din sistem, vom considera numrul de clieni aflai n serviciu la un moment dat, care este acelai lucru cu numrul de staii ocupate ns , ca fiind o variabil aleatoare discret cu repartiia c K c 1 1 2 0 ns : . p (t ) p (t ) p (t ) K p (t ) p (t ) + p (t ) + ... 1 2 c 1 c c +1 0 M [ Lc ] = M [n s ] = np n (t ) + c( p c (t ) + p c +1 (t ) + ...) = np n (t ) + c p n (t ) =
n =0 c n =0 n n = c +1 1 1 + ( ) p t c 0 n c n! n = 0 c! c n =0 De aici rezult c c c

(c 1)!(c ) 2

= n

p 0 (t ) .

M [n s ] = iar cum

M[N( t )] = M[Lc] + M[ns], obinem c p0 + . numrul mediu de servicii fcute efectiv n unitatea de timp

M [ N (t )] = (c 1)!(c ) 2 M [n s ] =

= .

timpul mediu de ateptare la coad

8. Elemente de teoria ateptrii

179

M [WT ] =

M [ Lc ]

= (c 1)!(c ) 2
1 .

p 0 (t ) .

timpul mediu de ateptare n sistem M [W ] = M [WT ] +

numrul mediu de staii de servire care lenevesc (neocupate) M [ SL] = (c j ) p j (t ) = c .


j =0 c 1

Exemplu. La o spltorie auto se prezint n medie 6 autoturisme pe or. Un luctor folosete pentru splatul unui autoturism n medie 15 minute. S se determine elementele sistemului pentru cazurile n care se folosesc 2 i respectiv 3 lucrtori. Rezolvare
Pentru acest exemplu avem = 6 , = 60 6 = 4 , = > 1 . Cum > 1 , nu este 15 4 suficient un singur lucrtor. Vom considera urmtoarele situaii: a) c = 2 (2 lucrtori) 1 3 p0 = = 0.14286 , p1 = p 0 = 0.21429 , 2 2 1 3 3 +1+ 2 2 2!1 3 4

3 1 p2 = p 0 = 0.16072 etc 2 2!

1 3 1 = 1.92861 , M [ L2 ] = 0.14286 2 2 2 ! 2 3 1 4 3 1 M [ SL] = c = 2 = , 2 2 1 3 3 1 + = 3.4261 , M [ N (t )] = 0.14286 2 2 2 2!2 3 1 2 M [ Lc ] 1.92861 = = 0.32143 = 19 min 17 s . M [WT ] = 6 b) c = 3 (3 lucrtori)
3

180

Modele i algoritmi de optimizare

= 0.21053 , 2 3 3 1 1 3 +1+ + 2 2 2! 2 3!1 3 2 3 p1 = p 0 = 0.3158 etc . 2 M [ L3 ] = 0.23685 ; M [ N (t )] = 1.73685 ; M [ SL] = 1.5 ; M [WT ] = 0.03946 ore = 2 min 22 s . p0 =
3

Concluzie. Din punctul de vedere al clienilor, serviciul la spltorie este mult mai atractiv cu 3 lucrtori, deoarece numrul mediu al autoturismelor care stau la rnd n acest caz este 0.23 i ateapt n medie doar 2 min i 22 s, fa de cazul n care ar fi doar 2 lucrtori i ar atepta n medie 19 min i 17 s. n cazul b) 21% dintre solicitani au ansa s nu stea la rnd.
Apelm Management Scientist pentru rezolvarea acestui model. Dup lansarea pachetului de programe, selectm modulul Waiting Lines, apoi modelul Poisson Arrivals / Exponential Service. Introducem datele de intrare pentru cazul cu 2 lucrtori n fereastra corespunztoare modelului selectat (Figura 8.3).

Figura 8.3

Selectnd Solve se obin rezultatele prezentate n Tabelul 8.3. Analog se rezolv i cazul cu c=3.

8.6. Modelul P0()/Exp()/c:(m,FIFO)


Acest model reprezint cazul sistemului de ateptare cu sosiri poissoniene, servicii exponeniale, mai multe staii de servire n paralel (identice n ceea ce privete timpul de servire), numr limitat de clieni, m, i disciplina de servire FIFO.

8. Elemente de teoria ateptrii


Tabelul 8.3
WAITING LINES ************* NUMBER OF CHANNELS = 2 POISSON ARRIVALS WITH MEAN RATE = 6 EXPONENTIAL SERVICE TIMES WITH MEAN RATE = 4 PER CHANNEL OPERATING CHARACTERISTICS ------------------------THE PROBABILITY OF NO UNITS IN THE SYSTEM 0.1429 THE AVERAGE NUMBER OF UNITS IN THE WAITING LINE 1.9286 THE AVERAGE NUMBER OF UNITS IN THE SYSTEM 3.4286 THE AVERAGE TIME A UNIT SPENDS IN THE WAITING LINE 0.3214 THE AVERAGE TIME A UNIT SPENDS IN THE SYSTEM 0.5714 THE PROBABILITY THAT AN ARRIVING UNIT HAS TO WAIT 0.6429 Number of Units in the System Probability --------------------------------------0 0.1429 1 0.2143 2 0.1607 3 0.1205 4 0.0904 5 0.0678 6 0.0509 7 0.0381 8 0.0286 9 0.0215 10 0.0161 11 0.0121 12 0.0091 13 0.0068 14 0.0051 15 0.0038 16 0.0029 17 OR MORE 0.0086

181

Pentru prezentarea modelului (schematizat n Figura 8.4) vom considera urmtorul exemplu. La o balastier vin m autobasculante pentru a fi ncrcate de c excavatoare. Autobasculantele formeaz o singur coad i sunt ncrcate dup metoda FIFO. S-a observat c venirile autobasculantelor la coad sunt repartizate P0() , iar timpii de ncrcare sunt repartizai dup legea Exp().
staie de servire 1 coada Veniri O O ... O ir de ateptare staie de servire 2

numrul zilelor lucrt

Figura 8.4

182

Modele i algoritmi de optimizare

Determinarea ecuaiilor de stare Notm En evenimentul care const n prezena a n autobasculante la balastier, iar pn( t ) probabilitatea producerii evenimentului En la momentul t . Dac n c , nu exist coad de ateptare. Dac n> c , se formeaz coad de ateptare. Fie Pn( t + t ) probabilitatea ca la momentul t + t s fie n autobasculante la balastier. La intervalul de timp t + t pot avea loc urmtoarele situaii: 1) sistemul este n starea En , nu vine i nu pleac nici o autobasculant. Probabilitatea corespunztoare este: (1 n t + O (t ) )(1 (m n) t + O (t ) ) , dac 1 n < c , sau (1 c t + O (t ) )(1 (m n) t + O (t ) ) , dac n c . 2) sistemul se afl n starea En+1 , nu are loc nici o venire, dar are loc o plecare n intervalul de timp ( t , t + t ). Probabilitatea corespunztoare este [(n + 1) t + O (t )] [1 (m n) t + O (t )] = (n + 1) t + O (t ) , dac 1 n < c , sau [1 (m n) t + O (t )] [c t + O (t )] = c t + O (t ) , dac n c . 3) sistemul se afl n starea En1 i au loc o venire i nici o plecare n intervalul de timp ( t , t + t ). Probabilitatea corespunztoare este: [(m n + 1) t + O (t )] [1 (m n) t + O (t )] = = (m n + 1) t + O (t ) , dac 1 n < c , sau [(m n + 1) t + O (t )] [1 c t + O (t )] = (m n + 1) t + O (t ) , dac n c . Aadar, a) pentru n < c , avem: 1 [n + ( m n) ]t + O ( t )}p n (t ) + p n (t + t ) = { + [(n + 1) t + O (t )] p n +1 (t ) + + [(m n + 1) t + O (t )] p n 1 (t )

+ [c t + O (t )] p n +1 (t ) + [( m n + 1) t + O (t )] p n 1 (t ) c) pentru n = 0 , avem p 0 (t + t ) = [1 t + O (t )] p 0 (t ) +
= [1 m t + O (t )] p 0 (t ) + [ t + O ( t )] p1 (t ) + [1 t + O (t )]( t + O (t ) ) p1 (t )

b) pentru n c , avem 1 [c + (m n) ]t + O ( t )}p n (t ) + p n (t + t ) = {

8. Elemente de teoria ateptrii

183

Relaiile a), b), c) le mprim la t , inem seama de proprietile funciilor O ( t ) cnd se trece la limit pentru t 0 , i se obin ecuaiile de stare ale modelului (t ) = p1 (t ) m p 0 (t ) p0 p (t ) = [n + (m n) ] p (t ) + (n + 1) p (t ) + (m n + 1) p (t ) n n n +1 n 1 1 n c < p (t ) = [c + (m n) ] p (t ) + c p (t ) + (m n + 1) p (t ) n n +1 n 1 n c n m. n cazul staionar, ecuaiile de stare sunt mp 0 = p1 (n + 1) p n +1 = [n + (m n) ] p n (m n + 1) p n 1 1 n < c c p = [c + ( m n) ] p (m n + 1) p cn<m n +1 n n 1 deoarece pm+1( t ) = 0 , sistemul neputnd avea mai mult de m autobasculante la un moment dat. Pentru rezolvarea sistemului, aplicm aceeai metod ca la modelul din 8.5 i, prin inducie, avem n C m n<c n p0 , c n pn = c n c! Am c p 0 , c n m . nlocuind pn de mai sus n (8.3) rezult 1 . p0 = n c 1 cc m n n n Cm + Am c! n = c c n =0 Aici pn este probabilitatea ca, la un moment dat, s existe n sistem n autobasculante, p0 este probabilitatea ca n sistem s nu existe nici o

autobasculant la un moment dat, iar

< 1 pentru evitarea supraaglomerrii.

Calculul elementelor necunoscute ale modelului Dup calcule laborioase se obin pentru elementele necunoscute ale modelului urmtoarele relaii: numrul mediu de clieni din sistem c m c c + c m c 1 n n c c 1C m M [ N (t )] = p 0 Cm + + 1+ (1 + ) n =0 numrul mediu de clieni de la coad c 1 c n c M [ Lc ] = m c 1 p 0 C m n + c c 1C m p0 n =0 numrul mediu de staii n lucru

184

Modele i algoritmi de optimizare

M[ns] = M[N(t)] M[Lc] timpul mediu de ateptare la coad M [ Lc ] M [WT ] = M [n s ] timpul mediu de ateptare n sistem M [W ] = M [WT ] + 1 .

Aplicaie numeric Balastiera are 2 excavatoare care trebuie s ncarce 20 autobasculante. S-a constatat c sosirile autobasculantelor sunt poissoniene cu parametrul = 0.3 autobasculante pe or, iar timpul de ncrcare este exponenial de parametru = 4 autobasculante pe or pentru fiecare excavator. S se determine elementele necunoscute ale fenomenului de ateptare. Rezolvare

=
p0 =

0.3 = = 0.075 ; c = 2 ; m = 20 4
1
n

22 C ( 0 . 0 75 ) + 2! n =0
1 n 20

0.075 A 2 n=2
20 n 20

= 0.18756

2 2 0.075 + 2 20 0.075 1 n 2(0.075)1 C 20 n ( 0 . 075 ) M [ N (t )] = p 0 C + + 20 0.075 1.075 1.075 n =0 20 0.075 2 + = 2.08595 0.075 1 2 n 2 2 1 p 0 C 20 M [ L2 ] = 20 (0.075) n + + 2(0.075)1 C 20 p0 = 0.74239 0.075 n =0

M [n s ] = M [ N (t )] M [ L2 ] = 1.34355 M [WT ] = M [ L2 ] = 0.13814 = 8 min 17 s 4 M [ ns ] 1 = 0.38814 = 23 min 17 s . 4

M [W ] = M [WT ] +

Rezolvm modelul de mai sus i cu Management Scientist. Dup lansarea pachetului de programe selectm modulul Waiting Lines, apoi modelul Poisson Arrivals/Exponential Service (Finite Pop.) i introducem datele ca n Figura 8.5. Dup apsarea butonului Solve obinem rezultatele din Tabelul 8.4 care coincid cu cele determinate anterior.

8. Elemente de teoria ateptrii

185

Figura 8.5 Tabelul 8.4


WAITING LINES ************* NUMBER OF CHANNELS = 2 POISSON ARRIVALS WITH MEAN RATE = 0.3 EXPONENTIAL SERVICE TIMES WITH MEAN RATE = 4 PER CHANNEL FINITE CALLING POPULATION OF SIZE = 20 OPERATING CHARACTERISTICS ------------------------THE PROBABILITY OF NO UNITS IN THE SYSTEM 0.1876 THE AVERAGE NUMBER OF UNITS IN THE WAITING LINE 0.7424 THE AVERAGE NUMBER OF UNITS IN THE SYSTEM 2.0859 THE AVERAGE TIME A UNIT SPENDS IN THE WAITING LINE 0.1381 THE AVERAGE TIME A UNIT SPENDS IN THE SYSTEM 0.3881 THE PROBABILITY THAT AN ARRIVING UNIT HAS TO WAIT 0.5311 Number of Units in the System Probability --------------------------------------0 0.1876 1 0.2813 2 0.2005 3 0.1353 4 0.0863 5 0.0518 6 0.0291 7 0.0153 8 0.0075 9 0.0034 10 0.0014 11 0.0005 12 0.0002 13 0.0001 14 0.0000

8.7. Simulare
Modelele matematice corespunztoare sistemelor reale sunt folosite pentru a analiza rezultatele deciziilor nainte de implementare. Simularea nu determin soluia optim a modelului matematic, ci compar rezultatele mai multor alternative predefinite cu scopul de a o reine pe cea mai avantajoas. Modelul de simulare urmrete evoluia n timp a sistemului real i ine seam i de factorul aleatoriu. n situaia n care modelul matematic poate fi rezolvat analitic, aceast metod este preferabil simulrii, deoarece se obine soluia optim. Simularea se folosete n

186

Modele i algoritmi de optimizare

cazurile n care rezolvarea analitic a modelului matematic este imposibil sau destul de dificil.
Simulare probabilist Vom ilustra aceast metod printr-un exemplu de model de ateptare adaptat dup Bonini et al. (1997). Considerm un depozit care are o ramp de descrcare a vagoanelor. Vagoanele sosesc noaptea i descrcarea unui vagon dureaz o jumtate de zi. Dac sunt mai mult de dou vagoane la rnd pentru descrcare, atunci unele dintre ele rmn s fie descrcate n ziua urmtoare. S-a constatat c numrul de vagoane care sosesc noaptea urmeaz repartiia din Tabelul 8.5 i este independent de numrul de vagoane sosite n oricare alt noapte.
Tabel 8.5 Nr. vagoane Probabilitatea 0 0.23 1 0.30 2 0.30 3 0.10 4 0.05 5 0.02 cel puin 6 0.00

Numrul mediu de sosiri pe noapte este de 1.5 vagoane. Suntem n cazul unui model de ateptare cu o singur staie de servire, FIFO, coad infinit, cu rata serviciilor =2 i rata sosirilor =1.5 . Se poate arta c sosirile nu sunt poissoniene i din acest motiv nu se poate aplica nici unul din modelele clasice. n vederea simulrii avem nevoie de un eantion de sosiri aleatoare pentru un numr de nopi. Pentru aceasta se poate folosi o tabel de numere aleatoare sau un generator de astfel de numere. Vom folosi generatorul de numere aleatoare din Microsoft Excel pentru a genera numere uniform repartizate ntre 0 i 99, pe care le vom asocia cu un numr de sosiri ca n Tabelul 8.6.
Tabelul 8.6 Numr aleatoriu generat 0-22 23-52 53-82 83-92 93-97 98-199

Numr de sosiri 0 1 2 3 4 5

Frecvena relativ 0.23 0.30 0.30 0.10 0.05 0.02

Vom considera comportarea sistemului de ateptare pe o perioad de 30 zile. Pentru c simularea ncepe fr vagoane la descrcare, este necesar o perioad de

8. Elemente de teoria ateptrii

187

iniializare (o considerm de 5 zile) pentru ca sistemul s se apropie de o situaie normal. Au fost generate 35 de numere, care sunt trecute n Tabelul 8.7, mpreun cu rezultatele simulrii.
Numr aleatoriu 99 6 15 62 86 12 39 39 16 24 45 88 81 53 26 56 77 31 34 94 11 15 92 38 14 36 9 56 84 12 79 25 81 1 65 Total Media Tabelul 8.7. Numr Total de sosiri descrcat 5 0 0 0 0 0 2 2 3 3 0 1 1 0 1 1 3 2 2 1 2 2 1 1 4 0 0 4 1 0 1 0 2 3 0 2 1 2 0 2 40 1,33 1 1 1 0 1 1 3 3 3 2 2 2 1 1 4 2 0 4 3 1 1 0 2 3 1 2 1 2 0 2

Ziua x x x x x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Amnate 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 2 0 0 2 1 0 0 0 0 1 0 0 0 0 0 0 9 0,3

Descrcate 0 0 0 2 2 1 1 1 0 1 1 2 2 2 2 2 2 1 1 2 2 0 2 2 1 1 0 2 2 1 2 1 2 0 2 41 1,36

188

Modele i algoritmi de optimizare

Observm c a fost descrcat i un vagon n plus fa de cele sosite n cele 30 de zile care constituie perioada de simulare, deoarece atunci cnd ncepem simularea pentru 30 de zile mai era un vagon de descrcat. Cunoscnd care este penalizarea pentru amnarea descrcrii unui vagon, se poate calcula pierderea cauzat pe perioada simulat. Se pot reface calculele pentru o capacitate de descrcare sporit, de exemplu 3 vagoane pe zi, i se compar pierderea cauzat de vagoanele amnate, putnd decide care este cea mai avantajoas configuraie pentru acest sistem de ateptare. Rolul simulrii manuale este de a nelege n ce const simularea unui model de ateptare, urmnd ca pentru un eantion mare s se foloseasc simularea cu calculatorul. Exist multe pachete de programe specializate n simulare, de exemplu SIMUL8 care are o interfa grafic atrgtoare i se pot realiza destul de comod simulri pentru modele de ateptare. Se poate folosi i EXCEL pentru realizarea simulrii modelelor de ateptare sau de stocuri.

8.8. Probleme propuse


1. La un magazin de decoraiuni interioare sosesc n medie 80 de clieni pe or, iar solicitrile unui client sunt satisfcute n medie ntr-un minut i jumtate. Analiznd statistic datele culese la acest sistem de ateptare, s-a constatat c sosirile clienilor sunt poissoniene, iar serviciile, exponeniale. S se determine: a) intervalul mediu dintre dou sosiri consecutive b) numrul mediu de persoane servite pe or c) probabilitatea ca ntr-un interval de 3 minute s nu soseac nici un client d) numrul vnztorilor necesari pentru a se evita algomerarea.

R. Se consider unitatea de timp minutul i atunci, numrul mediu de sosiri ntr-un 80 minut este = = 1.333 . 60 1 60 = = 0.75 minute. a) Intervalul mediu dintre dou sosiri consecutive este de 80 60 = 40 . b) Numrul mediu de persoane ce pot fi servite pe or este de = 1 .5 (3 0.75) 0 (t ) n , rezult c P0 (3) = e 30.75 = 0.1054 . c) Deoarece Pn (t ) = e t 0! n! d) Dac sistemul de ateptare are o singur staie de servire (un singur vnztor), 80 = = = 2 > 1 i se creeaz aglomeraie. Considernd sistemul cu mai multe 40

staii

~=

<1

i alegem c ca fiind cel mai mic ntreg pentru care este

8. Elemente de teoria ateptrii

189

satisfcut aceast inegalitate. Obinem c=2. Ca s nu se creeze aglomeraie, este nevoie de 2 vnztori.
2. La ieirea dintr-o staie de betoane, sosesc pentru a li se spla roile n medie 15 autobasculante pe or. Dac repartiia sosirii autobasculantelor pentru a li se spla roile este poissonian, s se determine timpul maxim n care, cu probabilitatea de cel puin 0.95, cel mult 3 autobasculante ateapt s li se spele roile.

R. n urmtoarea secven MathCAD, care rezolv aceast problem, se consider unitatea de timp minutul.
Media sosirilor
:=
15 60

Probabilitatea ca in intervalul de timp sa soseasca num rul zilelor lucrttoare din an n autobasculante
P( n , t) := e
t ( t ) n

n!

f( t) :=

n =0

P( n , t)

f(0)=1

f(1)=0.99987

f(2)=0.99825 f(6)=0.934

f(3)=0.99271

f(4)=0.98101

f(5)=0.96173

n maximum 5 minute, cu probabilitatea 0.95, cel mult 3 autobasculante vor atepta s li se spele roile.
3. La o staie de betoane sosesc bene care sunt ncrcate i prsesc imediat staia. S-a constatat c la intervale de o or pe o perioad de o sptmn benele au sosit conform cu Tabelul 8.8 . n aceeai perioad s-au notat i timpii de ncrcare a benelor, iar rezultatele sunt trecute n Tabelul 8.9 .
Tabelul 8.8 1 2 23 24 Tabelul 8.9 2 2 0 5 1 1 9 4 8 0 0 8 5 2 9 0 0

Nr bene sosite/ora (xi) Frecvena (Ni)

0 8

3 21

4 14

5 6

6 3

7 1

Minute/ben (tj) Frecvena(Nj) 6 5 4

5 5 0 7 0 2

1 0 3 4 7 5 0

1 5 2 9

3 0 1 3 9 5 0

3 5 8 10 0 0

4 0 6

4 5 4 10 5 0

5 0 6 11 0 2

5 5 3 11 5 0

6 0 3 12 0 1

Minute/ben (tj) Frecvena(Nj)

a) S se testeze c sosirile la staia de betoane sunt repartizate Poisson.

190

Modele i algoritmi de optimizare

b) S se testeze c timpii de servire sunt repartizai exponenial. c) S se determine numrul mediu de bene din sistemul de ateptare care este dat de staia de betoane. d) S se determine numrul mediu de bene care ateapt s fie ncrcate. e) S se determine timpul mediu de ateptare la rnd pentru a fi ncrcate benele. f) S se determine timpul mediu petrecut de o ben n sistemul de ateptare dat de staia de betoane. g) S se determine numrul punctelor de ncrcare necesare pentru a evita aglomerarea n perioada de vrf.
Rezolvare a) Vom folosi testul 2 pentru a verifica ipoteza H0 : Sosirile sunt repartizate

Po() , cu =
N i = N i e

x N
i =1 8 i

N
i =1

= 2.45 . Determinm statistica

c2 =
i =1

( N i N i ) 2 , Ni

i 2

unde

xi

, ()i = 1,8 . Obinem c = 0.52657 . Din tabela repartiiei

gsim, pentru pragul = 0.05 i numrul gradelor de libertate, l = (8 1) 1 = 6 (deoarece avem un parametru media sosirilor), ,

02.05; 6 = 12.592 . Cum

c2 < 02.05; 6

admitem ipoteza

H0

cu pragul de

semnificaie 0.05 ; b) Vom folosi testul Kolmogorov pentru a verifica ipoteza H0: Timpii de servire sunt repartizai Exp(). Pentru aceasta calculm un estimator pentru media timpilor de servire t=

(t
i =1

24

2.5) N i
24

Ni
i =1

= 19.5

minute (am considerat mijlocul

intervalului de referin). Atunci Fi = 1 e


0.05128 t i

= 0.05128 . Calculm funcia de repartiie


Fei =

N
j =1 24

teoretic

, funcia de repartiie empiric

N
j =1

,
j

() i = 1,24
semnificaie

i determinm

d = max Fi Fei = 0.0283 . Pentru pragul de


1 i 24

= 0.01 , n tabela funciei


u
23

K (u ) (testul asimptotic al lui


= 0.33272 se admite ipoteza H0

Kolmogorov) gsim u=1.63 . Deoarece d <

cu pragul de semnificaie = 0.01 ; c) Numrul benelor servite ntr-o or 60 0.5128 = 3.0768 . Suntem n cazul modelului Po(2.45)/Exp(3.07)/1:(,FIFO) i atunci M[N(t)]=3.9;

8. Elemente de teoria ateptrii

191

d) M[L1]=3.11 ; e) M[WT]=3.7 min ; f) M[W]=23.24 min ; 2.45 g) = = < 1 i astfel este suficient un singur punct de ncrcare. 3.07

4. La o carier, care are un singur utilaj de ncrcare a autobasculantelor, sosesc n medie 15 autobasculante pe or. n medie, utilajul poate s ncarce 20 autobasculante pe or. Din analiza statistic a datelor culese la fa locului s-a constatat c sosirile sunt poissoniene, iar servirile, exponeniale. S se determine: a) probabilitatea ca o autobasculant s nu atepte pentru a fi ncrcat b) numrul mediu de autobasculante din sistemul de ateptare creat la carier c) numrul mediu de autobasculante din irul de ateptare d) timpul mediu de ateptare al unei autobasculante n sistemul de ateptare e) timpul mediu de ateptare al unei autobasculante n irul de ateptare pentru a fi ncrcat f) probabilitatea ca n sistemul de ateptare s existe mai mult de 2 autobasculante g) probabilitatea ca autobasculanta s atepte la rnd s fie ncrcat mai mult de dou minute.

R. Se consider unitatea de timp minutul. Modelul corespunztor acestei probleme 3 este Po()/Exp()/1:(,FIFO) cu =10, =20 i = . 4 a) p0=0.25, b) M[N(t)]=3, c) M[L1]=2.25, d) M[WT]=0.15 min, e) M[W]=0.2 min, f) P(N(t)>2)=1-p0-p1-p2=1-0.25-0.1875-0.1406=0.4219, g) P(M[WT]>2)=0.0067 (extrem de rar se ntmpl ca autobasculanta s atepte mai mult de 2 minute la rnd pentru a fi ncrcat!).
5. La o cantin a unei firme de construcii, cu autoservire, cu un singur ghieu, sosesc salariaii la mas dup legea Poisson cu rata 0.75 salariat/minut. Un funcionar ia comanda, stabilete preul i ncaseaz contravaloarea comenzii. Pn i se pregtete meniul, funcionarul ia comanda urmtorului client aezat la rnd. S-a constatat c timpul mediu de servire este de 1 min/salariat. Se apreciaz c n medie cei ce ateapt s ia masa sunt pltii cu 10 u.m./or, iar funcionarul de la ghiseu cu 7 u.m./or. Conducerea firmei este interesat s cunoasc: a) probabilitatea ca nici un salariat s nu fie n cantin, b) numrul mediu de salariai ateptnd s dea comanda, c) timpul mediu petrecut la rnd de un salariat, ateptnd s dea comanda, d) probabilitatea ca un salariat care vine n cantin s atepte s dea comanda i e) costul orar al serviciului n cantin.

R. a) p0=0.25 , b) 2.25 , c) 3min , d) 0.75 , e) 37 u.m.


6. Proprietarul unui service auto dorete s nfiineze propria spltorie auto, astfel ca n atelierul de reparaii s intre autoturismele care au fost splate. tiind c sosirile autoturismelor pentru service care trebuie i splate sunt poissoniene, cu rata medie de 3 autoturisme pe or, iar un muncitor are nevoie n medie de 20 de

192

Modele i algoritmi de optimizare

minute pentru splarea unui autoturism i probabilitatea de ateptare pentru splare s nu depeasc 0.2, ci muncitori pentru splarea autoturismelor ar trebui angajai?

R. Trebuie ca P(N[t]>c)<0.2 , adic 1 P ( N [t ] c) < 0.2 . Deoarece = 3 i 60 = = 3 , atunci = = 1 i astfel sunt necesari cel puin 2 muncitori, c=2. 20 Este cazul modelului Po()/Exp()/c:( , FIFO). Lund pentru nceput c=2, obinem P(N[t]>c)=1(p0+p1)=1(0.3333+0.3333+1.6667)=0.1666<0.2 Aadar, ar trebui angajai 2 muncitori.
7. La o secie de poliie de constatri accidente uoare sosesc n medie 15 automobile pe or, repartiia sosirilor fiind poissonian. ntr-o or, un poliist constatator ntocmete actele pentru 6 automobile, iar timpul necesar acestei operaii este repartizat exponenial. Secia are rezervate 5 locuri de parcare, iar dac sunt ocupate aceste locuri, celelalte automobile parcheaz n alte locuri din vecintate. S se determine: a) numrul poliitilor necesari pentru a se evita supraaglomerarea b) probabilitatea ca la secie s nu fie automobile pentru constatare c) probabilitatea ca s fie automobile parcate n alte locuri dect cele ale seciei d) numrul mediu de automobile care ateapt nceperea ntocmirii actelor e) timpul mediu de ateptare la rnd pn cnd un poliist vine s nceap constatarea.

R. =15 automobile/or , =6 automobile/or, =


singur poliist ar fi supraaglomerare. a) Alegem numrul c de poliiti astfel nct ateptare devine Po()/Exp()/3:( , FIFO) ; b) p0=0.0449;
5

15 = = 2.5 > 1 i dac ar fi un 6


< 1 , adic c=3 . Modelul de

c)

P (n > 5) = 1 P (n 5) = 1 p i =
i =0

= 1 (0.0449 + 0.1124 + 0.1404 + 0.1170 + 0.0975 + 0.0813) = 0.4065 d) M[L3]=3.5112 automobile ; e) M[WT]=14 minute .
8. Un depozit nchiriaz de la o firm de transporturi 4 camioane pentru a se aproviziona sau pentru a transporta marfa la clieni. Depozitul are 2 rampe de ncrcare/descrcare care ncarc/descarc un camion n medie n 20 minute. La depozit sosesc n medie 4 camioane pe or. S-a constatat c intervalele dintre sosiri i timpii de ncrcare au repartiia exponenial. S se determine: a) probabilitatea ca ambele rampe s fie libere b) numrul mediu de camioane de la depozit c) probabilitatea ca un camion care vine la depozit s atepte intrarea la ramp

8. Elemente de teoria ateptrii

193

d) tiind c pentru o or chiria pentru un camion este de 20 u.m., care este suma medie orar pltit pentru nefolosirea unui camion?

R. a) p0=0.0246 , b) M[N(t)]=2.6351 , c) P(M[N(t)]>2)=1-(p0+p1+p2)=0.5823 , d) S = M [WT ] 20 = 2.986 u.m.


9. La o dan din port, proprietatea unei companii petroliere, sosesc pentru descrcare tancuri petroliere la intervale de timp repartizate exponenial, cu media 1.4 zile. Timpul mediu necesar descrcrii este de asemenea presupus repartizat exponenial, cu media 0.8 zile. S se determine: a) numrul mediu de tancuri petroliere care ateapt la rnd pentru descrcare b) timpul mediu de ateptare n port nainte de a ncepe descrcarea c) timpul mediu de ateptare n port din momentul sosirii i pn la plecarea tancului petrolier d) dac se nchiriaz o dan cu 1500 u.m./zi, la care se lucreaz la fel ca la prima i dac tancurile petroliere se duc la dana liber pentru descrcare, n ordinea sosirii lor, care este timpul mediu de ateptare pn la nceperea descrcrii e) n condiiile de la d) care este numrul mediu de tancuri petroliere care ateapt la rnd pentru descrcare f) este avantajoas nchirierea celei de-a doua dane dac pentru fiecare zi pe care tancul petrolier o petrece la rnd ateptnd pentru descrcare compania pierde 4000 u.m. ?

R. a) M[L1]=7.4098 ; b) M[WT]=10.3779 ; c) M[W]=11.6279 ; d) M[WT]=0.3108 ; e) M[L2]=0.2219 ; f) Pierderea pentru primul caz 4000 M [ L1 ] = 41511.6 , iar pentru cel de-al doilea caz 4000 M [ L2 ] + 1500 = 2387.6 . Da.
10. O firm are 30 de instalaii de aer condiionat i frigidere i pentru ntreinerea lor a angajat 2 specialiti. tiind c solicitrile pentru intervenii sosesc n medie una pe zi i sunt repartizate Poisson, iar un specialist reuete s depaneze un aparat (aer condiionat sau frigider) n medie n 20 minute, timpul necesar depanrii fiind repartizat exponenial, s se determine: a) numrul mediu de aparate care ateapt s fie depanate b) numrul mediu de aparate care nu funcioneaz la un moment dat c) probabilitatea ca s nu aib de lucru cei doi specialiti d) timpul mediu de ateptare pn cnd un specialist ncepe depanarea unui aparat e) timpul mediu de nefuncionare a unui aparat

R. a) M[L2]=0.5037 , b) M[N(t)]=1.6836 , c) p0=0.2524 , d) 8 min 32 s , e) 28 min 32 s .

9. ELEMENTE DE TEORIA STOCURILOR

9.1. Introducere n teoria stocurilor 9.1.1. Punerea problemei


n desfurarea unei activiti de producie intervin valori materiale care intr n procesul de prelucrare (materii prime, fonduri bneti etc.) i valori care rezult n urma acestui proces (produse finite). Pentru ca procesul de producie ntr-o ntreprindere s se desfoare nentrerupt, este necesar ca ntreprinderea s dispun de un stoc de materiale care s poat alimenta n mod sistematic producia. Exist astfel o cerere din stocul de materiale care vine din partea produciei. ntreprinderea trebuie s investeasc o sum de bani n aceste materiale pentru a fi capabil s satisfac necesitile procesului de producie. Imobilizarea unor sume mari de bani n stocurile de materiale poate s conduc la pierderi pentru ntreprindere. Pe de alt parte, dac investiia n stocul de materiale va fi mic, adic, stocul este subdimensionat, vor exista perioade cnd procesul de producie nceteaz i ntreprinderea nregistreaz din nou pierderi datorate nefolosirii mainilor i utilajelor n procesul de producie. Apare astfel necesitatea dimensionrii optime a stocurilor de materii prime i materiale astfel nct costurile care rezult din imobilizarea fondurilor sau neutilizarea resurselor s fie minime. Problemele care constau n dimensionarea optim a stocurilor de materii prime i materiale se numesc probleme de stoc aprovizionare. Produsele rezultate din procesul de producie sunt cerute n afara ntreprinderii n diferite cantiti care variaz n timp. Pentru ca ntreprinderea s poat asigura ntotdeauna satisfacerea cererii pe un interval de timp dat, este necesar s se realizeze un stoc de produse rezultate n urma procesului de producie. Dac ntreprinderea menine un stoc prea mare de produse, poate aprea o pierdere, constnd din imobilizarea fondurilor bneti investite n aceste produse, precum i n eventuala depreciere a produselor sau recondiionarea lor periodic. Dac stocul nu ar putea s satisfac cererea nregistrat de ntreprindere pe o perioad de timp, ar aprea din nou pierderi datorate penalizrilor pltite, pentru nesatisfacerea comenzilor.

9. Elemente de teoria stocurilor

195

Se pune din nou problema dimensionrii optime a stocului astfel nct pierderile datorate imobilizrii valorilor n stoc, precum i pierderile rezultate din nesatisfacerea cererilor (penalizrile) s fie minime. Problemele care constau n dimensionarea optim a stocului de produse rezultate din procesul de producie se numesc probleme de stoc producie (Vduva et al, II, 1974).

9.1.2. Concepte utilizate n teoria stocurilor


Rezolvarea problemelor legate de determinarea stocurilor optime se face cu ajutorul unor modele matematice ale teoriei stocurilor. Stocul sau inventarul este o resurs de orice fel care are o valoare economic i care se caracterizeaz prin intrri n resurs (reaprovizionarea stocului) i ieiri din resurs. Valoarea resursei I = I (t) este o funcie de timp. Scopul meninerii unui stoc este acela de a satisface o cerere. n urma satisfacerii cererii stocul se micoreaz i, de aici, nevoia reaprovizionrii lui. Fie a(t), rata intrrilor n resurs la momentul t i b(t), rata ieirilor din resurs, iar r(t), rata cererii la momentul t. Cererea nu se confund ntotdeauna cu ieirea, deoarece exist situaii n care materialele din stoc se depreciaz n timp i atunci la ieirea din stoc la cerere se adaug i materialele depreciate n acel interval de timp. De cele mai multe ori ns b(t) = r(t) . Fie I(0) = I0, nivelul stocului la momentul t = 0, considerat momentul iniial de la care se urmrete evoluia stocului. Variaia stocului este dat de relaia

I (t ) = I 0 + (a (t ) b(t ) )dt .
0

Ieirile din stoc, b(t), i/sau cererea, r(t), pot fi deterministe sau aleatoare, iar funcia a(t) trebuie aleas astfel nct s se realizeze un obiectiv sau o eficien dorit. Eficiena se definete n funcie de costuri i acestea pot fi: costul de depozitare, ce rezult din imobilizarea fondurilor bneti n materii prime sau produse (cheltuieli de producie) i din cheltuielile pentru asigurarea depozitrii i conservrii stocului, costul de lansare, care rezult din cheltuielile pentru lansarea comenzilor de reaprovizionare i introducerea lor n stoc sau lansarea fabricaiei, costul lipsei de stoc, care se determin n funcie de toate cheltuielile i pierderile cauzate de lipsa din stoc a materiilor prime sau produselor (inclusiv penalizrile rezultate din nelivrarea la timp a produselor fabricate). Eficiena unui stoc de-a lungul unui interval de timp este dat de o funcional de forma

196

Modele i algoritmi de optimizare

C(t) = C[a(t), b(t), r(t)]. n general, r(t) este o funcie cunoscut i uneori se cunoate i funcia b(t). n acest caz, trebuie determinat funcia a(t) astfel nct eficiena s fie optim. Dac C este o variabil aleatoare, atunci se determin funciile necunoscute din condiia ca valoarea medie a lui C s fie optim. Pentru determinarea optimului lui C pot s intervin uneori i anumite restricii legate de elementele necunoscute.
n modelele de teoria stocurilor intervin i variabile sau parametri legate n special de mecanismul reaprovizionrii, adic de mecanismul intrrilor n stoc. Din motive practice, se presupune c intrarea n stoc, reaprovizionarea, se face la momente discrete de timp. Astfel, a(t) ia valori nenule numai la anumite momente de timp t0 < t1 < t2 < ... . Intervalele de timp Ti = ti+1 ti, i = 0, 1, 2, ..., se numesc cicluri de reaprovizionare. ntr-un interval de timp [0,T*] pot avea loc mai multe reaprovizionri.
I(t) S a(t1) P T0 t0 L t1 T1 t2 Figura 9.1 T2 t3 T3 t T* t a(t2) a(t3)

n Figura 9.1, variaia stocului este reprezentat prin segmentele oblice, rata cererii fiind presupus constant. Se observ c pe intervalul de timp (t, T *) exist lips de stoc. Cantitile a(ti) reprezint valorile comenzilor care intr n stoc la momentele ti, iar ntre aceste momente de timp au loc numai ieiri din stoc, care micoreaz nivelul stocului. n diferite modele ale teoriei stocurilor, ciclurile de reaprovizionare Ti, i = 0, 1, 2, ..., pot fi egale sau nu, pot fi constante sau aleatoare. n ceea ce privete mrimea loturilor de reaprovizionare a(ti), acestea pot fi egale sau nu, pot depinde sau nu de Ti. n unele modele ale teoriei stocurilor din optimizarea funciei de eficien se poate deduce ciclul optim de reaprovizionare, Topt. Aadar, modelele de teoria stocurilor determin mrimea lotului de reaprovizionare optim, aopt, i/sau ciclul de reaprovizionare optim, Topt. Reaprovizionarea la anumite momente de timp impune utilizarea i a altor variabile care au importan practic.

9. Elemente de teoria stocurilor

197

Astfel, lotul de reaprovizionare optim nu intr n stoc n momentul cnd a fost lansat, ci dup un interval de timp L, numit timp de avans. Comanda a(t1) a fost lansat la momentul t1 L, cnd stocul avea valoarea P0 = I(t1 L). Mrimea P0 se numete nivel de reaprovizionare i se observ c ea este strns legat de timpul de avans L, n sensul c stocul P0 poate satisface cererea pe perioada timpului de avans L. n unele modele, L este presupus variabil aleatoare, iar P0 este constant sau variabil. Mrimile L i P0 pot fi presupuse cunoscute sau pot fi variabile de decizie, care trebuie alese de decident n vederea realizrii eficienei optime. De obicei se cunoate una dintre aceste mrimi, cealalt urmnd a fi determinat cu ajutorul modelului de stocare. Intervalul de control este intervalul de timp dintre dou lansri de comenzi succesive. Momentul lansrii comenzii este momentul cnd nivelul stocului scade la nivelul de reaprovizionare P0. Uneori, drept variabil de decizie se consider i nivelul S pn la care trebuie ncrcat stocul prin introducerea comenzii (nivelul maxim al stocului). Totalitatea elementelor care definesc mecanismul de reaprovizionare formeaz o politic de reaprovizionare. Aceasta const din: loturile de reaprovizionare, ciclurile de reaprovizionare, nivelul de reaprovizionare, timpul de avans. Politica este optim dac elementele ce o caracterizeaz au fost determinate ca elemente ce realizeaz eficiena optim pe un interval de timp dat. Modelele de teoria stocurilor se pot clasifica dup mai multe criterii. 1. Dup modul cum evolueaz n timp modele dinamice, modele statice. 2. Dup natura aleatoare sau nu a elementelor sale modele stochastice, modele deterministe. 3. Dup valorile posibile ale unor variabile (de exemplu, cererea) modele cu cerere continu, modele cu cerere discret. 4. Dup numrul de stocuri de materiale distincte (se mai numesc i staii) criteriu topologic modele de stocare cu o singur staie stocarea unui singur tip de material, produs etc., modele de stocare cu mai multe staii stocarea mai multor tipuri de materiale, produse etc.

198

Modele i algoritmi de optimizare

Modelele de teoria stocurilor se aseamn cu cele de teoria cozilor. Sosirile din cadrul teoriei ateptrii corespund intrrilor n stoc, iar ieirile corespund ieirilor din stoc. Deosebirea dintre cele dou tipuri de modele const n aceea c, n timp ce n teoria ateptrii se presupune c venirile i serviciile sunt variabile aleatoare cunoscute, n teoria stocurilor se cunoate numai cererea sau ieirea i se caut s se determine intrarea optim. Aplicarea modelelor de teoria ateptrii n teoria stocurilor este posibil numai atunci cnd variabila I(t) este o variabil discret. Pentru modelele ce vor fi prezentate n continuare se fac urmtoarele ipoteze. 1. Ipoteze referitoare la mecanismul de intrare/ieire a) Cererea este continu, are rata r=const. i poate fi satisfcut dac nivelul curent al stocului I(t) > 0. b) Intrrile se realizeaz la intervale de timp T, constante sau nu. ntre lansarea comenzii i sosirea ei (nu) exist un interval L de timp, timpul de avans. c) Momentul lansrii unei noi comenzi este semnalat de nivelul critic P0, nivel de reaprovizionare. d) n perioada T intr o cantitate a cu rata constant p ritmul de reaprovizionare. e) Parametrii P0, a, T sunt constani (modele statice). f) Procesul de reaprovizionare continu nedefinit. 2. Ipoteze privind costurile, pe baza crora se poate defini eficiena a) Costul s de lansare a comenzii este constant. b) Preul ca de cumprare a unei uniti de materie prim sau produs poate depinde de a. c) Pentru I(t) > 0, exist un cost de stocare, h, pentru unitatea de produs / unitatea de timp. d) Pentru I(t) < 0, exist un cost al lipsei de stoc, d, pentru unitatea de produs / unitatea de timp. Problemele generale care se pun i trebuie rezolvate de modelele de stocuri sunt: determinarea valorilor optime pentru a i T astfel nct costul total unitar pe unitatea de timp s fie optim, determinarea nivelului de reaprovizionare P0 astfel nct costul total unitar pe unitatea de timp s fie optim, nivelul maxim al stocului, nivelul mediu al stocului, numrul optim de cereri de reaprovizionare a stocului ntr-un an.

9. Elemente de teoria stocurilor

199

9.2. Modelul clasic al lotului economic


Parametrii cunoscui: intrrile au loc n mod continuu cu rata p constant, ieirile au loc n mod continuu cu rata r constant; p > r, costul de stocare h este constant pe unitatea de stoc / unitatea de timp, costul de lansare a comenzii a este s = constant, L = 0. Parametrii necunoscui: cantitatea comandat a (mrimea lotului de reaprovizionare), mrimea ciclului de reaprovizionare T. Ipoteze: nu se admite lipsa de stoc, nu exist stoc de rezerv sau stoc intangibil, I0 = 0. Construcia modelului (determinarea funciei obiectiv)
Figura 9.2 ilustreaz comportarea stocului pe durata unui ciclu de reaprovizionare. a Din ipotezele modelului rezult c funcia I(t) este periodic cu perioada T = . r a Este suficient s rezolvm problema de optim pe intervalul 0, . r a a ntreaga cantitate a va intra n stoc pn la momentul , i n intervalul 0, p , p

a a I(t) va crete, iar n intervalul p,r , I(t) descrete.


I(t)

a I(t) = (p r) t I(t) = a rt

a p

T=

a r

Astfel,

Figura 9.2

200

Modele i algoritmi de optimizare

a ( p r )t , t 0, p I (t ) = a rt , t a , a p r Costul total pe perioada T este CT = Ch,T + s, unde Ch,T este costul de stocare, dat de
( p r) a2 1 1 ra 2 1 1 ha 2 ( p r ) = 2 + a2 . C h ,T = h I (t )dt = h 2 r p p 2 p2 2 pr r 0 2 Costul total de stocare i de lansare pe unitatea de timp este C h , T ha 2 ( p r ) r ha ( p r ) rs = + s = + . C (a) = 2 pr 2p T a a Figura 9.3 reprezint costul total, costul de pstrare i costul de lansare, abscisa punctului de intersecie a ultimelor dou constituind mrimea optim a comenzii (Q reprezint cantitatea necesar pe un ntreg an).
Costurile total, de lansare, dede pastrare totale, de lansare, pstrare
a r

CT ( Q , a , s , h) CL( Q , a , s) Ch( Q , a , h)

marimea comenzii m rimea comenzii

Figura 9.3

Rezolvarea modelului

9. Elemente de teoria stocurilor

201

Costul minim l obinem din relaia C(a) = 0 (deoarece C(aopt)>0, rezult c aopt determinat realizeaz minimul pentru C(a) ), de unde rezult cantitatea optim de reaprovizionare: h( p r ) rs 2 prs 2 = 0 a opt = . 2p h ( p r) a Costul minim pe unitatea de timp este

C opt =

2 prs h 2 ( p r)2 + 2 h( p r ) 4p

2hrs ( p r ) r 2 s 2 h( p r ) = . 2 prs p

Astfel, avem costul unitar optim i intervalul de reaprovizionare optim date de relaiile 2hrs ( p r ) 2 ps C opt = , Topt = . p rh( p r ) i numrul optim de 2 numarul num rul zilelor lucratoare lucrtoare din din an an . reaprovizionri pe an dat de Topt Se pot determina: nivelul mediu al stocului ca fiind n practic se presupune c
r 0, p

a opt

adic p >> r ( se consider p = ), r ceea ce revine la a accepta c =0 p (Figura 9.4). Costul de stocare pe unitatea de timp este C h ,T ha = T 2 i reprezint costul de stocare al unui a stoc mediu pe unitatea de timp. 2

I(t)

T
Figura 9.4

2T

Astfel, costul de stocare pe o perioad de timp t0 este ha C h ,t 0 = t0 . 2 n acest caz mrimea optim a comenzii de reaprovizionare a stocului este 2rs I = a opt h costul minim pe unitatea de timp este

(9.1)

202
I C opt = 2rsh

Modele i algoritmi de optimizare

(9.2)

ciclul optim de reaprovizionare este 2s I Topt = hr

(9.3)

n anumite situaii cererea este exprimat prin valoarea n bani. Se disting dou cazuri (Turban i Meredith, 1988): 1. Se d preul unitar al produsului. n acest caz se afl numrul de produse i astfel se ajunge la situaia studiat mai nainte. 2. Preul unitar nu se cunoate i atunci trebuie s se dea costul de stocare ca un procent din valoarea cererii de produse. n acest caz modelul d valoare optim a unei cereri de reaprovizionare. Costul total anual Q a CT = h + s (9.4) a 2 Q unde Q este cantitatea (sau valoarea acesteia) necesar pe un an, iar a reprezint numrul de comenzi de reaprovizionare lansate ntr-un an. Atunci 2 sQ (9.5) . a opt = h
Exemplu. O ntreprindere de prefabricate primete o comand de 120 000 de dale pe care trebuie s le livreze municipalitii, pentru pavarea trotuarelor. Cererea firmei de construcii care realizeaz pavarea este constant. Costurile sunt: h = 500 lei o dal /zi stocarea, s = 30 000 000 lei lansarea unei comenzi pentru un lot de dale. n ce ritm trebuie ntreprinderea de prefabricate s-i aprovizioneze stocul dac nu i se admite nici o ntrziere n livrare ? Se consider anul cu 300 zile lucrtoare. Rezolvare Se consider modelul de stocare al lotului economic i, utiliznd formulele (9.1)(9.3), se obin rezultatele de mai jos: 120000 r= = 400 rata ieirilor zilnice, 300 2rs 400 30000000 I a opt = = 2 = 6928.20 , h 500
I Topt =

2s 2 30000000 = 17.32 zile , = hr 500 400

I C opt = 2rsh = 2 400 30000000 500 = 3464101.61 lei/zi.

Costul total anual este 1 039 230 484.51 lei, iar costul de lansare a comenzilor de reaprovizionare pe un an este 5196108.

9. Elemente de teoria stocurilor

203

Se poate rezolva problema din exemplul precedent cu Management Scientist. Dup lansarea pachetului de programe, se selecteaz modulul Inventory, apoi, din meniul File se alege New i din fereastra care apare se selecteaz modelul Economic Order Quantity, ca n Figura 9.5.

Figura 9.5

Se introduc datele de intrare ca n Figura 9.6, avnd n vedere c trebuie introdus costul anual de stocare (500 lei/zi 300 zile). Se presupune c sunt necesare 3 zile pentru a se satisface o cerere de reaprovizionare (L=3). Atunci trebuie s se determine i nivelul optim de reaprovizionare.

Figura 9.6

Rezultatele obinute sunt prezentate n Tabelul 9.1.


Tabelul 9.1
INVENTORY MODEL

204
*************** ECONOMIC ORDER QUANTITY ***********************

Modele i algoritmi de optimizare

YOU HAVE INPUT THE FOLLOWING DATA: ********************************** ANNUAL DEMAND = 120000 UNITS PER YEAR ORDERING COST = $30000000 PER ORDER INVENTORY HOLDING COST = $150000 PER UNIT PER YEAR WORKING DAYS PER YEAR = 300 DAYS LEAD TIME FOR A NEW ORDER = 3 DAYS INVENTORY POLICY **************** OPTIMAL ORDER QUANTITY ANNUAL INVENTORY HOLDING COST ANNUAL ORDERING COST TOTAL ANNUAL COST MAXIMUM INVENTORY LEVEL AVERAGE INVENTORY LEVEL REORDER POINT NUMBER OF ORDERS PER YEAR CYCLE TIME (DAYS)

6,928.20 $519,615,242.27 $519,615,242.27 $1,039,230,484.54 6,928.20 3,464.10 1,200.00 17.32 17.32

Rotunjirea rezultatelor Rezultatul obinut n urma rezolvrii unui model de stocare poate s nu fie un numr ntreg, ca n exemplul de mai sus (mrimea optim a comenzii de reaprovizionare, numrul de zile ale ciclului optim de reaprovizionare). Atunci, se evalueaz funcia obiectiv pentru [aopt] i pentru [aopt]+1 i se reine valoarea care d cea mai bun valoare pentru costul total ( [x]=partea ntreag a lui x).

9.3. Modelul clasic al lipsei de stoc


Aa cum arat i numele, n acest model se accept lipsa de stoc, adic se pstreaz cererile care nu au putut fi satisfcute dup epuizarea stocului, iar dup reaprovizionare, acestea vor fi satisfcute (Vduva et al, II, 1974). Exist i cazuri n care cererea nesatisfcut, pe perioada epuizrii stocului, se pierde. n continuare se consider numai primul caz. Parametrii cunoscui: intrrile au loc n mod continuu cu rata p constant, ieirile au loc n mod continuu cu rata r constant, p > r, costul de stocare h, pe unitatea de stoc / unitatea de timp, este constant, d costul (deficitul) datorat lipsei unei uniti de stoc pe unitatea de timp este constant,

9. Elemente de teoria stocurilor

205

costul de lansare a comenzii a este s.

Parametrii necunoscui: cantitatea comandat a, S nivelul maxim la care trebuie adus stocul la intrarea n stoc a comenzii, mrimea lotului de aprovizionare T. Ipoteze: se admite lipsa de stoc i cererea pe perioada lipsei de stoc se pstreaz i se reporteaz pe perioada ciclului de reaprovizionare urmtor, r =0. p Formularea problemei I(t) S se determine cantitatea a care trebuie introdus n stoc dup timpul T (care trebuie de asemenea determinat), presupunnd c dup ce se epuizeaz stocul S n intervalul de S timp (0, t ), poate s mai a treac un interval de timp t (t, T ) pn cnd intr t T cantitatea a n stoc. Figura 9.7 arat 0 t comportarea acestui model de stocare. Dup ce Figura 9.7 se recupereaz lipsa de stoc, stocul a ajuns la nivelul S. Parametrii necunoscui ai modelului trebuie determinai astfel nct costul total, provenit din costul de depozitare, costul de lansare i costul lipsei de stoc, s fie minim. Construcia modelului Considernd modelul anterior, se stabilete funcia de minimizat astfel : - costul de depozitare a cantitii S pe intervalul de timp (0, t ) este S C h ,t ' = h t ' 2 - costul lipsei de stoc este aS C d ,t " = d t" . 2 Astfel, costul unitar total este

206

Modele i algoritmi de optimizare

1 S aS t" . s + h t '+ d T 2 2 Se exprim membrul drept al relaiei precedente n funcie de S, T innd seama c a S S Tr S T = , t ' = , t" = T = , r r r r astfel c s hS 2 d (rT S ) 2 + . C (S , T ) = + T 2rT 2rT Se determin min C(S,T): hS d (rT S ) C =0 = 0 S rT rT C hS 2 d 2r (rT S )T (rT S ) 2 1 + 2 + =0 s =0 2r T2 T 2r T C=
II Topt =

2s rh

h+d II = , S opt d

2rs h

d d II = 2rsh , C opt . h+d h+d

Deoarece 2C 2C 2C 2 > 0 i 2 S 2T S T II II (S opt ,Topt ) 2C 2S II II > 0 (S opt ,Topt )

valorile obinute realizeaz minimul costului. d < 1 i relaiile de mai sus devin Se noteaz cu = h+d 2s 2rs II II II Topt = , S opt = , C opt = 2rsh rh h de unde rezult c II I C opt = C opt . Aceast relaie arat c este mai convenabil politica de aprovizionare care admite lipsa de stoc ! Mrimea optim a lotului de reaprovizionare este 2rs h + d II = Tr = a opt h d iar lipsa de stoc este h II II II a opt S opt = a opt . h+d Ultima relaie arat c numrul articolelor din perioada lipsei de stoc crete pentru articolele cu cost unitar de stocare mare. Aceasta explic de ce articolele care au un pre de stocare unitar mai mare sunt tratate mai economic ntr-un model cu lips de stoc. Pe de alt parte, cnd costul unitar al lipsei de stoc crete, numrul articolelor din perioada lipsei de stoc scade. Astfel, modelul arat intuitiv c articolele cu cost mare pentru lips de stoc vor fi foarte puine pe perioada lipsei de stoc.

9. Elemente de teoria stocurilor

207

Deoarece
II S opt II Topt

= r =

II S opt II r Topt

II S opt

se numete i indice de lips de stoc. n (1)% din cazuri, pe perioada T,


stocul se epuizeaz. Probabilitatea epuizrii stocului este h 1 h. d= d +h Aceast relaie arat c, dac se accept drept cunoscut probabilitatea epuizrii stocului, atunci costul lipsei de stoc este proporional cu cel al stocrii. Acest fapt nu concord totdeauna cu realitatea, i de aici rezult un inconvenient al modelului, deoarece costurile h i d sunt practic independente. Comparnd cele dou modele se obine I Topt 1 II I II I II , Topt S opt = S opt = a opt = , , a opt

=1 =

adic
II I II I II I S opt < S opt , a opt > a opt , Topt > Topt .

Exemplu. n exemplul din 9.2. se consider c lipsa dalelor din stoc va fi penalizat cu 3500 lei/dal/zi (d = 3500) . S se determine elementele optime ale modelului de stocare n acest caz. Rezolvare

=
S
II opt

3500 = 0.875 ; 500 + 3500


II = a 6481 ; Topt = II opt I Topt

= 0.93541 ;

II a opt =

10141.85 7407 ; 0.93541

II I = Copt 3 240 370.34 . 18.51 ; Copt

Modelul se poate rezolva i utiliznd Management Scientist. Dup lansarea pachetului de programe se alege modulul Inventory. Din meniul File se selecteaz New i din fereastra artat n Figura 9.5 se alege modelul Economic Order Quantity with Planned Shortages. n fereastra care apare dup apsarea butonului OK, se introduc datele de intrare ca n Figura 9.8, unde costul de stocare i cel de lips de stoc sunt considerate pe ntregul an (d numrul de zile lucrtoare din an , respectiv, h numrul de zile lucrtoare din an). Se consider c sunt necesare 3 zile pentru satisfacerea comenzii de reaprovizionare din momentul lansrii acesteia.

208

Modele i algoritmi de optimizare

Figura 9.8

Apsnd butonul Solve se obine soluia modelului sub forma dat n Tabelul 9.2.
Tabelul 9.2 INVENTORY MODEL *************** ECONOMIC ORDER QUANTITY WITH PLANNED SHORTAGES ********************************************** YOU HAVE INPUT THE FOLLOWING DATA: ********************************** ANNUAL DEMAND = 120000 UNITS PER YEAR ORDERING COST = $30000000 PER ORDER INVENTORY HOLDING COST = $150000 PER UNIT PER YEAR BACKORDER COST = $1050000 PER UNIT PER YEAR WORKING DAYS PER YEAR = 300 DAYS LEAD TIME FOR A NEW ORDER = 3 DAYS
INVENTORY POLICY **************** OPTIMAL ORDER QUANTITY ANNUAL INVENTORY HOLDING COST ANNUAL ORDERING COST ANNUAL BACKORDER COST TOTAL ANNUAL COST MAXIMUM INVENTORY LEVEL AVERAGE INVENTORY LEVEL MAXIMUM BACKORDERS REORDER POINT NUMBER OF ORDERS PER YEAR CYCLE TIME (DAYS)

7,406.56 $425,298,608.33 $486,055,552.38 $60,756,944.05 $972,111,104.76 6,480.74 2,835.32 925.82 274.18 16.20 18.52

n continuare sunt prezentate alte dou variante ale modelului clasic.

9. Elemente de teoria stocurilor

209

9.3.1. Modelul de stocare considernd influena preului de cumprare


Acest model se refer la problemele de stoc-aprovizionare i presupune c preurile de achiziie a materiilor prime i materialelor depind de mrimea comenzii, adic ca = ca(a) (Vduva et al, II, 1974). n modelul lotului economic se consider a r C (a) = h + s + r c a (a) , a 2 unde primul termen este costul stocrii unei cantiti medii pe unitatea de timp, al doilea este costul lansrii, iar cel de-al treilea termen este costul de cumprare a materiilor prime consumate din stoc. Se poate considera costul de stocare ca fiind o fraciune din costul de cumprare, h = kca(a), i atunci: 1 r C (a) = kc a (a ) + s + r c a ( a) . 2 a De obicei, n practic, ca(a) este o funcie n scar descresctoare. k r Ci (a ) = ca , i a + s + rca , i , pentru li a ui , (li = ui 1 ) , i = 1,2,..., m . 2 a Se determin minimul local al acestei funcii, obinut pentru: l i , dac a i l i 2rs * a i = a i , dac l i < a i < u i , iar a i = kc a , i u , dac u a . i i i Atunci, costul minim local este C (c a , i ) , dac a i* = l i C i opt = 2rsk + c a , i r , dac a i* = a i C (u ) , dac a i* = u i . i Costul minim total va fi C opt = min C i opt , iar Topt =
1 i m

a i* . r

9.3.2. Modelul de stocare considernd influena costului de producie


Acest model se refer la problemele de stocproducie i consider costul de stocare h ca funcie de costul de producie unitar cp (Vduva et al, II, 1974) h = k cp,

210

Modele i algoritmi de optimizare

iar cp depinde de cantitatea produs a. Notnd cu cf costul unitar de fabricaie, atunci costul de fabricaie pentru ntreaga cantitate este s s s + cfa i astfel c p = + c f , deci h = k + c f , 0 < k < 1 . a a Se presupune c nu se admite lipsa de stoc. Atunci costul total de lansare i stocare pe unitatea de timp este sr s a C (a) = + k + c f . a a 2 Din condiia de minim, C(a) = 0, rezult 2rs 2s ks , C = 2kc f rs + , T= . a= kc f r 2 kc f
Comentariu. Mrimea lotului de reaprovizionare a depinde de costul unitar total de producie cf; dac cf este mare, mrimea lotului se micoreaz, adic nu este indicat s se menin stocuri mari din produse scumpe. Se mai pot considera: modele cu costul stocrii variabil, descris de o funcie n salturi, modele cu cererea depinznd de preurile de vnzare etc. (Vduva et al, II, 1974) .

9.4. Extensii ale modelului clasic al lotului economic

Vnztorii ofer deseori reduceri de pre pentru cumprarea unui lot mai mare de produse. Exist preuri pentru intervale ale numrului de produse cumprate. Aceast practic este larg rspndit pentru c ofer avantaje att cumprtorului ct i vnztorului, avantaje prezentate n Tabelul 9.3 .
Tabelul 9.3 Avantaje -preuri reduse -mai puine hrtii de completat -transport mai ieftin -mai puine momente cu lips de stoc -produse uniforme -securitate sporit (ar putea s creasc preurile) -transport mai ieftin -mai puine hrtii de completat -producie mai mare Dezavantaje -stocuri mari -cheltuieli sporite de stocare -riscul deteriorrii -nvechirea produselor

Cumprtor

Vnztor

-pre unitar sczut -putere sczut de tranzacionare cu clienii

Se disting dou cazuri :

9. Elemente de teoria stocurilor

211

i) Reduceri oferite pentru un singur nivel de pre ii) Reduceri oferite pentru mai multe niveluri de preuri.
Reduceri oferite pentru un singur nivel de pre

Vom prezenta metoda pe un exemplu. Pentru iluminatul stradal al unui ora sunt necesare 100 de becuri pe lun pentru nlocuirirea celor care se defecteaz. Fiecare bec cost 8 u.m. Costul de lansare a unei comenzi de reaprovizionare este de 27 u.m. indiferent de mrimea comenzii, iar cel de pstrare al unui bec pe un an de zile este de 25% din valoare. Onorarea comenzii se face n momentul lansrii acesteia i nu se accept lipsa de stoc. Furnizorul ofer municipalitii o reducere de 2%, dac se cumpr 600 de becuri deodat. S se satabileasc dac municipalitatea accept sau nu oferta furnizorului.
Rezolvare i) Vom folosi modelul lotului economic fr lips de stoc i nu vom lua n seam reducerea furnizorului. Pentru acest caz avem : Q=10012=1200 becuri pe an, h=0.258=2 u.m. , s=27 u.m. , p=8 u.m. (p=preul de achiziie al unui bec). Folosind formulele (9.4)-(9.5) obinem valoarea optim pentru comanda de reaprovizionare
a opt =
2Qs = h 2 27 1200 = 180 , 2

costul total anual de stocare


CT = a opt Q 27 1200 180 2 s+ h= + = 180 , a opt 2 180 2

iar costul becurilor este Qp=12008=9600. Aadar, fr reducere, municipalitatea ar cheltui 9600+360=9960 u.m. ii) Vom reface calculele innd seama de reducerea oferit de furnizor pentru un lot de 600 becuri. n acest caz vor fi doar dou lansri de comenzi de reaprovizionare i atunci costul de lansare total ar fi de 54 u.m. Costul unitar anual de pstrare devine h=0.980.258=1.96 u.m., iar costul total anual de pstrare este 600 1.96 = 588 . Costul de achiziie devine 9600 9600 0.02 = = 9408 . n acest 2 caz municipalitatea ar plti 9408+588+54=1050 u.m. n concluzie, oferta de reducere trebuie respins pentru c, dac ar fi acceptat, municipalitatea ar fi n dezavantaj !

212

Modele i algoritmi de optimizare

Reduceri oferite pentru mai multe niveluri de preuri

nainte de a da metoda general vom considera un exemplu. Un spital trebuie s achiziioneze antibiotice de la un furnizor care face oferta din Tabelul 9.4 .
Tabelul 9.4 Cantitate 1 4999 5000 9999 >10000 Pre 2.75 2.60 2.50

Cererea spitalului este de 50 000 uniti pe an. Costul lansrii unei comenzi de reaprovizionare este de 50 u.m. i costul de pstrare este 20% din costul medicamentului pe an. Nu se admite lips de stoc i se presupune c onorarea comenzii se face imediat ce a fost lansat. S se stabileasc politica optim a spitalului de achiziionare a medicamentelor. Vom utiliza modelul lotului economic fr lips de stoc i vom rezolva problema n urmtorii pai. Pas 1. Cu modelul lotului economic fr lips de stoc, stabilim pentru cel mai mic pre mrimea optim a comenzii de reaprovizionare. Costul unitar anual de pstrare este h1=2.50.02=0.5 u.m. 2Qs 2 50 50000 (1) a opt = = = 10000000 = 3163 h 0 .5 (1) (1) cu intervalul corespunztor preului 2.50. Dac a opt ar fi Pas 2. Se compar a opt n interval, soluia este fezabil i optim n acelai timp i problema este rezolvat. Altfel, soluia nu este fezabil i se caut mrimea optim a comenzii de reaprovizionare pentru preul 2.60 u.m. Pas 3. n acest caz costul de pstrare este h2=2.60.02=0.52 u.m. Atunci, 2Qs 2 50 50000 (2) = = = 9615385 = 3101 . a opt h 0.52 ( 2 `) cu intervalul corespunztor preului 2.60. Se compar a opt
( 2) Pas 4. Dac a opt ar fi n interval, soluia este fezabil i optim n acelai timp i

problema este rezolvat. Altfel, soluia nu este fezabil i se caut mrimea optim a comenzii de reaprovizionare pentru preul 2.75 u.m. Pas 5. Costul de pstrare este h3=2.750.02=0.55 u.m. Atunci,
( 3) = a opt

2Qs = h

2 50 50000 = 9090910 = 3015 . 0.55

9. Elemente de teoria stocurilor

213

( 3) Pas 6. a opt este n intervalul corespunztor preului 2.75 i soluia gsit este

fezabil. Pas 7. {Compararea costurilor} Costul total anual este Q a CT (a ) = s + h + Q p . a 2 Aplicm formula pentru cele trei valori ale marginii din stnga intervalului pentru categoriile de pre i avem :
(1) ( 2) ( 3) (10 000) = 127 750 , CT CT (5000) = 131 800 , CT (5000) = 139 158 .

Deoarece o cerere de 10 000 de uniti o dat conduce la cel mai mic pre, se va adopta aceast politic. Bazat pe acest exemplu putem scrie urmtorul algoritm general.
Algoritm general Pas 1. {Iniializri} Intrare: necesarul anual Q, costul de lansare s, costul unitar de stocare h, intervalele pentru care se acord reduceri q = (qk ,1 , qk , 2 )1k n , n numrul

acestor intervale, preurile unitare reduse

( pu )1k n .

Pas 2. k:=n; Determin cantitatea optim aopt comandat cu modelul lotului economic pentru pun . Dac aopt qk,1 , determin Cn+1, costul total optim cu modelul lotului economic pentru aopt; sw:=0; an+1:=aopt ; Pas 3. Dac sw0, atunci Ct timp (k0 i sw4) execut Calculeaz ak:=aopt ; Dac a k [q k ,1 , q k , 2 ] atunci sw:=1; an+1:=qk,1 ; k:=k-1; optim cu modelul lotului economic pentru aopt ; Dac sw=4, atunci Pentru k:=1,n Calculeaz Ck costul total optim cu modelul lotului economic Determin C n +1 := min C k ; a n +1 := min a k ;
1 k n +1 1 k n +1

Dac a k [q k ,1 , q k , 2 ] atunci sw:=4; an+1:=aopt ; Cn+1, costul total

Pas 4. Reine an+1 i Cn+1. Stop!

214

Modele i algoritmi de optimizare

n continuare este redat algoritmul de mai sus, programat n MathCAD i aplicat exemplului precedent.

Determinarea lotului optim de reaprovizionare si a costului optim pentru preturi unitare cu discount-uri
Intervalele pentru care se acorda discount Preturile unitare de achizitionare

1 4999 q := 5000 9999 10000 106


Necesarul anual Q := 50000 Costul de lansare a comenzii de reaprovizionare

2.75 pu := 2.60 2.50

s := 50

Costul unitar anual de stocare este o fractiune din costul de achizitionare

:= 0.2 s h

Lotul optim de reaprovizionare

aopt ( h ) := 2 Q

Determinarea minimului elementelor unui sir si a pozitiei sale

Mn ( x) :=

m x i1

for k 1 .. last ( x) if m > x


k k

m x ik

m i

9. Elemente de teoria stocurilor


Discount ( Q , s , pu , ) := k last ( pu ) nk sw 1 CT n+ 1 Q qk, 1 s + pu k qk, 1 2 + Q pu k

215

a n+ 1 aopt ( pu k ) sw 0 if a n+ 1 q k , 1 if sw 0 while ( k 1) ( sw 4) h k pu k a k aopt ( h k) if ( q k , 1 a k q k , 2) ak q k , 1 kk1 if q k , 1 a k q k , 2 CT n+ 1 a n+ 1 a k sw 4 if sw = 4 for k 1 .. n CT k Q qk, 1 s + h k qk, 1 2 + Q pu k Q ak s + h k ak 2 + Q pu k

Ao Mn ( CT ) CT n+ 1 Ao1 i Ao2 a n+ 1 ai

a n+ 1 CT n+ 1
Apelul subprogramului MathCAD se face cu secvena
Discount ( Q , s , pu , ) =

216

Modele i algoritmi de optimizare

9.5. Model pentru stocarea mai multor tipuri de produse


Se presupune c stocul este format din p tipuri de produse. Att parametrii cunoscui ct i cei necunoscui se refer la fiecare tip de produse aflate n stoc. Parametrii cunoscui: rata cererii ri, costurile de stocare unitare hi, costurile de lansare si, i = 1, p . Parametrii necunoscui: mrimea optim, ai, a lotului de reaprovizionare din produsul i , ciclul optim de reaprovizionare, Ti, a stocului cu produsul i , i = 1, p . Formularea problemei: S se determine elementele necunoscute astfel nct costul de stocare i lansare pe unitatea de timp pentru produsul i ha sr C i (ai ) = i i + i i ai 2 s fie minim, i deci i costul total pe unitatea de timp C (a1 ,..., a p ) = C i (a i )
i =1 p

s fie minim. Se obin: a i opt = 2ri s i 2s i , Ti opt = . hi ri hi

Comentariu. Determinarea loturilor economice pentru mai multe produse revine la determinarea lotului economic pentru fiecare produs n parte.

9.6. Modele stochastice de stocare


ntr-un model aleatoriu, pe lng variabilele de decizie d1, ... , dn (de exemplu, mrimi de comenzi, cicluri de reaprovizionare) intervin i variabile aleatoare A1, ..., An, a cror repartiie se presupune cunoscut. va fi o variabil aleatoare, iar Funcia de eficien C(d1, ... , dn, A1, ... , An) valorile optime ale variabilelor de decizie vor fi determinate din condiia ca eficiena medie s fie optim. Printre elementele aleatoare ale unui model de teoria stocurilor, cel mai important este cererea pe unitatea de timp. Repartiia cererii n cazul cererii continue poate fi: normal, log-normal, Weibull etc., iar n cazul cererii discrete,

9. Elemente de teoria stocurilor

217

poate fi: Poisson, Pascal, binomial etc. Dac cererea este un proces aleatoriu, atunci modelul de stocare este un model stochastic dinamic. Timpul de avans, L, i stocul intangibil (de siguran), I S = P0 R , R fiind cererea medie pe perioada timpului de avans, pot fi variabile aleatoare continue sau discrete. Mrimea stocului de siguran i, corespunztor, nivelul de reaprovizionare reduc ansa apariiei lipsei de stoc, i invers. Tabelul 9.5 d efectul creterii sau reducerii nivelului de reaprovizionare asupra costurilor.
Tabelul 9.5 Aciune Reducerea nivelului de reaprovizionare Reducerea lotului de reaprovizionare Creterea nivelului de reaprovizionare Creterea lotului de reaprovizionare Rezultat Scade costul de stocare al stocului de siguran i crete costul lipsei de stoc a Scade costul de stocare al stocului mediu ( ) i cresc costul 2 lipsei de stoc i costul total de lansare comenzi Crete costul de stocare al stocului de siguran i scade costul lipsei de stoc Crete costul de stocare al stocului mediu i descrete costul total de lansare comenzi

9.6.1. Determinarea nivelului optim de reaprovizionare


Pentru determinarea nivelului optim de reaprovizionare P0, aplicm analiza marginal (Bonini et al, 1997), adic se ncepe analiza costului total cu o valoare iniial pentru P0 , fie P0 = R . S vedem ce se ntmpl cu costul total dac se adaug o unitate de produs de stoc la P0. Costul total pe perioada analizat (de exemplu, un an) va crete cu aproximativ h , deoarece IS crete cu o unitate. Dac nu se adaug o unitate la P0 , creterea costului va rezulta din faptul c o cerere cu o unitate mai mare pe perioada timpului de avans va mri probabilitatea lipsei de stoc, astfel (Figura 9.9): Creterea costului prin neadugarea unei uniti la P0 este egal cu Q (Probabilitatea unei uniti de stoc cerute n plus) d a Q a fiind numrul de cicluri de reaprovizionare pe perioada analizat. Se consider urmtoarea ipotez: Cererea r, pe unitatea de timp, este o variabil aleatoare cu repartiia cunoscut, F(x).

218 Creterea costurilor

Modele i algoritmi de optimizare

(1 F ( P0 )) d

Q a

Costul neadugrii unei uniti

O P0 opt
Figura 9.9

P0

Atunci, cererea R, pe perioada timpului de avans L, este de asemenea o variabil aleatoare cu funcia de repartiie cunoscut, F(x)=P(R<x). Probabilitatea unei uniti de stoc cerute n plus este 1 F ( P0 ) . Figura 9.9 reprezint costurile adugrii i neadugrii unei uniti de stoc la P0 . Din egalitatea celor dou costuri avem : ah ah Q . h = (1 F ( P0 ) ) d 1 F ( P0 ) = F ( P0 ) = 1 d Q d Q a P0 poate fi acum obinut din tabela funciei de repartiie F. Se poate scrie urmtorul algoritm pentru determinarea nivelului optim de reaprovizionare.
Algoritm pentru determinarea nivelului optim de reaprovizionare P0 Pas 1. Date de intrare : h, d, Q, s R , R ;

2s Q ah ; =1 ; h d Q Pas 3. Din tabela funciei de repartiie a cererii pe perioada de avans R, se ia Z. Popt = R + Z R . Stop ! Pas 2. Calculeaz a opt =
Observaii

9. Elemente de teoria stocurilor

219

1. Stocul de siguran este I S = P0 R = Z R . 2. Pentru un (0, 1) , un risc asumat de a avea lips de stoc pe perioada timpului de avans, se poate determina nivelul critic al stocului astfel : = P(R P0)=1F(P0) F(P0)=1 , relaie ce permite determinarea nivelului critic al stocului P0. Determinarea costului total Costul total=Costul de lansare+Costul de stocare+Costul lipsei de stoc Q Q a CT (a, P0 ) = s + + P0 R h + d (R P0 ) f ( R )dR . (9.6) a 2 P0 a
Q reprezint costul de lansare al tuturor comenzilor de reaprovizionare pe a perioada de timp analizat, Q numrul comenzilor de reaprovizionare pe perioada de timp analizat, a Q d (R P0 ) f ( R)dR costul lipsei de stoc pe perioada de timp analizat, P0 a

unde: s

P0

(R P ) f ( R)dR
0

numrul mediu de uniti de stoc lips din stoc pe un ciclu

de reaprovizionare, f(x) densitatea de repartiie a cererii. Se determin P0 opt i aopt din condiia impus costului total dat de (9.6), s fie minim: Q Q CT =0 h a d P0 f ( P0 ) + a d [F ( P0 ) + P0 f ( P0 ) 1] = 0 P0 . (9.7) h Q 2 s + d (R P0 ) f ( R )dR + = 0 CT = 0 2 a a P0 Prima relaie (9.7) se poate rescrie astfel: Q Q h d + d F ( P0 ) = 0 . a a Atunci ah P0 opt . F ( P0 ) = 1 (9.8) d Q
2Q s + d (R P0 opt ) f ( R )dR P0 = . h

(9.9)

a opt

220

Modele i algoritmi de optimizare

Se observ c P0 apare n exprimarea lui aopt (9.9) i a apare n exprimarea lui P0 opt (9.8). Pentru rezolvarea acestei probleme se poate folosi un procedeu iterativ astfel : - cu un a estimat, de exemplu dat de modelul lotului economic, se calculeaz P0, din tabela funciei de repartiie F din relaia (9.8), - apoi, cu acest P0 se calculeaz a cu relaia (9.9) i aa mai departe, pn cnd cele dou valori gsite satisfac relaiile (9.7). Dac R a N ( R, R ) , atunci

P0

(R P ) f ( R)dR =
0

N ( Z ) , unde N(Z) este

numrul mediu de comenzi de reaprovizionare a stocului pe perioada timpului de avans. Astfel, relaia (9.7) devine 2Q(s + d R N ( Z ) ) (9.9) a opt = h i costul total optim este Q a opt h . + + C opt = CT (a opt , P0 opt ) = [s + d R N ( Z )] P R (9.6) 0 opt a opt 2

Particularizri 1) Dac timpul de avans, L, este constant i cunoscut i cererea, r, este o variabil aleatoare repartizat N (m,R), atunci R=Lr este o variabil aleatoare
repartizat N L m, L R . Notnd cu z , cuantila inferioar a variabilei aleatoare N (0,1) , adic

1 2

u2 2

du ,

rezult c n acest caz nivelul de reaprovizionare este P0 = L m + z L R . 2) Presupunnd timpul de avans, L, constant i cererea, r, variabil aleatoare repartizat Exp(), atunci cererea pe perioada timpului de avans este R = r1 + ... + rL a Erlang ( , L) i P0 se determin din relaia
P0

f ( x)dx = 1 = P( R < P )
0 0

( riscul asumat fiind mic) folosind tabela repartiiei Erlang(,L).

9. Elemente de teoria stocurilor

221

3) Dac L este o variabil aleatoare cu media M[L]=l, iar r este o variabil aleatoare repartizat N (m,R), independent de L, atunci R=Lr este o variabil aleatoare normal cu M[R] = lm i D2[R] = lR2, adic N l m, l R . n acest caz nivelul de reaprovizionare este P0 = l m + z l R

Exemplu. La un service auto sunt necesare 1800 bidoane de ulei de motor pe an. Costul de lansare a unei comenzi de reaprovizionare cu ulei este de s=10 u.m., costul de pstrare h=0.6 u.m./an, iar timpul de avans este de 20 zile. Cererea medie pe timpul de avans este R = 30 bidoane, R a N ( R, R ) . Costul lipsei din stoc a unui bidon de ulei este d=5 u.m. S se determine cantitatea optim de reaprovizionare i punctul optim de reaprovizionare. Rezolvare. Consider mrimea optim a lotului de reaprovizionare 2 sQ 2 10 1800 = = 245 bidoane de ulei. a opt = h 0 .6 Indicele de lips de stoc asumat este ha 0.6 245 ( P0 ) = 1 =1 = 0.9837 = d Q 5 1800 fiind funcia de repartiie a unei variabile aleatoare normale. Din tabelele repartiiei normale lum cuantila corespunztoare, Z = 2.14 . Se obine punctul optim de reaprovizionare P0=100+2.1430=164 . Astfel, stocul de siguran este I S = Popt R = 164 100 = 64 bidoane de ulei.
n anumite ipoteze asupra repartiiei ciclului de reaprovizionare, T a G ( ) , numrului de cereri din intervalul de timp (0, t), n(t ) a Po( t ) , mrimii unei cereri X, X a F ( x) , se poate determina repartiia cererii totale pe intervalul de timp ( 0, t ).

9.6.2. Modele de stocare pe o singur perioad cu cerere aleatoare


Dac rata cererii nu este determinist, modelul de stocare cu cerere aleatoare presupune cunoscut repartiia acesteia. Modelele de stocare pe o singur perioad se refer la situaia n care o singur comand este lansat pentru un produs. La sfritul perioadei produsul a fost fie epuizat, fie exist un surplus de articole nevndute care vor fi vndute la o valoare de lichidare de stoc. Modelul pentru o singur perioad este aplicabil n situaii ce implic articole sezoniere sau perisabile care nu pot fi pstrate n stoc i vndute n perioada urmtoare. De exemplu: hainele

222

Modele i algoritmi de optimizare

de sezon (costume de baie, hainele de iarn), ziare etc. Cum comanda se face o singur dat pe perioada considerat, singura decizie de stoc care trebuie luat este: ce cantitate din produsul respectiv s se comande la nceputul perioadei ? O astfel de problem este cunoscut sub numele de problema vnztorului de ziare.

Exemplu de cerere cu repartiie discret Un magazin cumpr roii o dat pe sptmn de la productor cu 6 u. m. / kg i le vinde cu 11 u. m. / kg. La sfritul sptmnii preul de lichidare de stoc este de 2 u. m./kg. Din experiena avut (reflectat n Tabelul 9.6) magazinul vinde ntre 160 i 200 kg de roii pe sptmn. Deoarece cererea este relativ stabil, se presupune c este continu cu acea rat. S se determine mrimea comenzii de reaprovizionare pentru magazin, astfel ca profitul magazinului s fie maxim (Turban i Meredith, 1988) .
Tabelul 9.6 Numr kilograme vndute (x) 160 170 180 190 200 Total Numr de sptmni 4 10 12 15 9 50 Probabilitatea cererii 0.08 0.2 0.24 0.3 0.18 Funcia empiric de repartiie (P(xa)) 0.08 0.28 0.52 0.82 1

Rezolvare n rezolvarea acestui tip de probleme este indicat folosirea metodei analizei incrementale. Analiza incremental compar ctigul sau pierderea realizat prin comandarea unui articol suplimentar pentru care nu ar fi existat cerere, cu ctigul sau pierderea realizat prin necomandarea unui articol pentru care ar fi existat cerere. Fie: a cererea de aprovizionare cu roii pentru o sptmn, c+ costul unitar al supraestimrii cererii, adic pierderea datorat comandrii unui kilogram suplimentar care apoi se constat c nu se poate vinde, c- costul unitar al subestimrii cererii, adic pierderea datorat necomandrii unui kilogram suplimentar care apoi se constat c s-ar fi putut vinde, D+ pierderea total datorat supraestimrii comenzii de aprovizionare, D+(a)=c+P(aaopt) D- pierderea total datorat subestimrii comenzii de aprovizionare, D-(a)=c- P(a>aopt )= c- (1-P(aaopt)) . Din egalitatea D+(a)= D-(a) se determin cantitatea optim comandat astfel: c_ . P (a a opt ) = (9.10) c+ + c

9. Elemente de teoria stocurilor

223

11 6 = 0.5555 . Din Tabelul 9.6 c + + c (6 2) + (11 6) se constat c P (a a opt ) = 0.5555 i se obine aopt=190 kg . Pentru aceast problem c_

Exemplu de cerere cu repartiie continu O reea de magazine comand la o fabric de ncminte un nou model de pantofi brbteti de primvar-var. La sfritul sezonului (30 septembrie) patronul magazinelor va avea lichidare de stoc pentru ce nu s-a vndut pn la acea dat. Preul de achiziie de la fabric este de 40 u.m. perechea, iar magazinul i vinde cu 60 u.m. Preul de lichidare de stoc este de 30 u.m. perechea i se ateapt ca la acest pre stocul s fie lichidat. Cte perechi de pantofi ar trebui s comande patronul magazinelor pentru a obine profit maxim (pierderi minime) ? (Anderson et al, 1994) Rezolvare Din experiena anilor trecui, cererea pentru pantofi brbateti, msura 42, este uniform i cuprins ntre 350 i 650 perechi, avnd media 500. Se apeleaz la analiza incremental pentru rezolvarea acestei probleme. Fie: a cererea de aprovizionare cu pantofi brbteti mrimea 42, c+ costul unitar al supraestimrii cererii, adic pierderea datorat comandrii unei perechi de pantofi suplimentare, care apoi se constat c nu se poate vinde, c- costul unitar al subestimrii cererii, adic pierderea datorat necomandrii unei perechi de pantofi suplimentare, care apoi se constat c s-ar fi putut vinde, D+ pierderea total datorat supraestimrii comenzii de aprovizionare D- pierderea total datorat subestimrii comenzii de aprovizionare.
Pentru aceast problem c+=4030=10, iar c-=6040=20. Considernd cererea egal cu media, analiza incremental pentru dou cazuri este artat de Tabelul 9.7.
Tabelul 9.7 Cazul I II Mrimea comenzii 501 500 Pierderea produs dac Cererea este supraestimat i o unitate nu poate fi vndut Cererea este subestimat i o unitate ar fi putut s fie vndut Pierderea posibil Probabilitatea

c+=10 c-=20

P(a500) P(a>500)

P(a500)= P(a>500)=0.5, D+(a)=c+0.5=5 u.m. , D-(a)=c-0.5=10 u.m. Este de preferat s se comande 501 perechi de pantofi. Se continu investigarea pn cnd D+(a)= D-(a) . innd seama de relaia (9.4), se obine pentru acest exemplu a opt 350 2 P (a a opt ) = = , 650 350 3

224

Modele i algoritmi de optimizare

iar aopt=550. n situaiile practice apare problema cunoaterii repartiiei cererii pentru produsul respectiv i cea a costurilor c+ i c- . c_ are rol esenial n n modelele cu o singur perioad, cantitatea c+ + c determinarea cantitii optime de reaprovizionare. Cnd c+<c- se recomand s fie mai mic lotul de reaprovizionare. Cnd c-<c+ se recomand s fie mai mare lotul de reaprovizionare. Cnd cele dou costuri sunt egale, probabilitatea de a avea surplus este egal cu probabilitatea de a avea lips de stoc i atunci se recomand ca lotul de reaprovizionare s fie egal cu media.

9.6.3. Modele stochastice de stocare bazate pe modele de ateptare


Aplicarea modelelor de ateptare la rezolvarea problemelor legate de gestiunea stocurilor se poate prezenta astfel (Vduva et al, II, 1974): 1. cererile ce urmeaz a fi satisfcute sunt considerate clieni n modelul de ateptare. Pentru ca s fie satisfcute cererile ar trebui ca n stoc s se afle o cantitate practic infinit, ceea ce n realitate nu este posibil; 2. ncrcarea stocului corespunde venirilor n sistemul de ateptare i satisfacerea cererilor corespunde ieirilor din sistemul de ateptare. n continuare vor fi prezentate dou modele de stocare avnd la baz modele de ateptare.

9.6.4. Modelul P0()/Exp()/1:(, FIFO)


Ipotezele modelului stocul este unic (un singur tip de produse, c=1), variaia stocului este discret, intervalul de timp dintre dou intrri n stoc este o variabil aleatoare exponenial negativ de parametru , fiecare cerere este egal cu unitatea (r=1), intervalul de timp dintre dou cereri este o variabil aleatoare exponenial negativ de parametru , intrrile n stoc pot avea loc indefinit, N(t) numrul unitilor din stoc este un proces aleatoriu staionar descris de un proces de natere i deces. Cu notaiile de la modelele de ateptare avem

9. Elemente de teoria stocurilor

225

1 Construcia funciei de cost. Notm cu: cu costul unei uniti din stoc, fraciunea pe care o reprezint costul de stocare din costul unitii de stoc, (h=cu) , d costul unitar al lipsei de stoc, p0 probabilitatea de a avea lips de stoc. Atunci obinem costul mediu de stocare = cuM[N(t)], costul mediu al lipsei de stoc = dp0, funcia de eficien (costul mediu ce trebuie optimizat) =C(), unde

M [N (t )] =

, =

, p0 = 1 .

+ d (1 ) . 1 Din condiia ca C() s fie minim ( C ( ) = 0 , C ( ) > 0) , se obine


C ( ) = c u M [ N (t )] + d p 0 = c u cu d i astfel se pot determina elementele necunoscute ale modelului. Practic se cunoate cererea a Exp( ) i astfel numrul de uniti cerute pe unitatea de timp este o variabil aleatoare Poisson de parametru , fiind intensitatea cererii, presupus cunoscut. Se cere determinarea parametrului opt = intensitatea optim de ncrcare a

opt = 1

stocului. Dar

cu . d Se poate determina probabilitatea ca nivelul stocului s depeasc o anume valoare ,

= = 1

P(N (t ) ) = p n = (1 ) j =
n = j =0

deoarece

p n = n (1 ) .

Problema se poate formula i astfel: S se determine nivelul stocului care s fie atins i/sau depit cu probabilitatea (0, 1) suficient de mic. ln . Atunci, din relaia = obinem = ln Ipoteza c intrrile n stoc pot avea loc n mod indefinit se poate nlocui cu alta, rezultat din faptul c stocul are o limit a capacitii, m. Atunci

226

Modele i algoritmi de optimizare

n p 0 pn = 0
i deoarece

pentru 1 n m pentru n > m

p
n =1

= 1 se obine
p0 = 1 . 1 m +1

Astfel M [N (t )] = n p n = n n p 0 =
n =1 n =1 m m

(1 ) m n n 1 . 1 m +1 n =1

ns

n =
n =1

1 m 1
m m +1

de unde rezult c

n n1 =
n =1

[1 (m + 1) ] (1 ) +
(1 )2

(1 ) [1 (m + 1) m ] (1 ) + m +1 = 1 m +1 (1 )2 [1 (m + 1) m + m m+1 ] . = (1 ) (1 m+1 )
N = M [N (t )] = nlocuind M[N(t)] n funcia de cost i punnd condiia de minim se obine opt cu ajutorul cruia se pot determina elementele modelului. De exemplu, numrul mediu de cereri ce urmeaz a fi satisfcute (adic lungimea medie a cozii) 2 1 m m +1 + (m 1) m R = M [N (t ) 1] = . (1 ) 1 m+1

Obinem

Se obine o nou funcie de cost dac se consider valorile medii N , R astfel

Din condiia de optim (min C1() ) rezult opt elementele modelului.

(1 ) (1 m+1 ) {cu [1 (m + 1) m + m m+1 ] + d [1 m m1 + (m 1) m ]}

C1 ( ) = c u N + d R =

. i acum se pot calcula

9.6.5. Modelul cu mai multe staii paralele i cu timp de avans L aleatoriu

9. Elemente de teoria stocurilor

227

Ipotezele modelului n momentul cnd se scoate o unitate din stoc se comand alta, astfel nct numrul de uniti din stoc plus cele comandate s fie S=constant, fiecare cerere este egal cu unitatea (r=1); numrul de cereri pe unitatea de timp este o variabil aleatoare Poisson, de parametru , timpul de avans L este o variabil aleatoare exponenial negativ de parametru .

A. Cererea nesatisfcut nu se pstreaz Analogia cu modelul de ateptare Exp( )/Exp( )/c : (, N d ) Se consider cele c locuri din stoc drept staiile de serviciu ale sistemului de ateptare, Nd semnific faptul c exist clieni nedisciplinai care, dac nu pot fi servii, prsesc sistemul, N(t) numrul de uniti din sistem la momentul t este un proces finit, Pn(t)=P(N(t)=n) probabilitatea de a avea n uniti n stoc. Cnd sunt n uniti n stoc nseamn c sunt lansate cn comenzi.
Determinarea coeficienilor n , n, n{1, 2, . . . , c}. Deoarece o comand sosete dup timpul aleatoriu L, care are repartiia Exp(), rezult c intensitatea intrrii n stoc a unuia din cele c articole este c, adic, 0= c. Dac exist n uniti n stoc, atunci poate s soseasc numai una din cele cn comenzi, deci n= (cn) , 1 n c , c = 0. Pentru a determina intensitatea ieirii inem seama de faptul c ieirea depinde de cerere, deci n = , 1 n c. Se pot scrie ecuaiile de stare ale modelului astfel P0(t ) = c P0 (t ) + P1 (t ) P(t ) = [ + (c n) ]P (t ) + P (t ) + (c n + 1) P (t ) , 1 n c 1 n n n +1 n 1 Pc(t ) = Pc (t ) + Pc 1 (t ) Pn (t ) = 0 , n > c. Rezolvarea pentru cazul staionar conduce la soluia 1 , p0 = c 1 c! n n = 0 (c n)! iar 1 c! p0 = c n p c , 1 n c, pn = n (c n ) ! (c n)! unde

228

Modele i algoritmi de optimizare

=
Se poate determina stocul mediu

M[N(t)] = p c

cn n . n n =0
c

Numrul mediu de cereri pe unitatea de timp este , deci numrul mediu de 1 , va fi , iar numrul cereri pe intervalul mediu de timp de avans, egal cu

mediu de cereri satisfcute pe intervalul de timp de avans este M[R] = cM[N(t)]. Stabilirea funciei obiectiv Fie cv preul de vnzare al unei uniti de stoc i h costul de stocare pe intervalul de timp de avans mediu Profitul pe perioada T este B(c) = M[R]cvhM[N(t)] = c v c (h + v) unde x n x e . n = 0 n! c fiind o variabil ntreag, condiia B(c) = 0, revine la B(c+1)B(c) = 0, adic E ( ) E ( ) h = c c 1 . h + cv E c +1 ( ) E c ( ) E c ( x) =
c

c E c ( ) E c 1 ( ) , Ec ( )

Dndu-se h, c, cv, ultima relaie permite determinarea stocului optim pentru obinerea unui profit maxim.

B. Cererea nesatisfcut se pstreaz Pot exista cel mult m cereri nesatisfcute i atunci numrul de uniti din stoc satisface relaia m n c.
Analogia cu modelul de ateptare Exp( )/Exp( )/c : (m, FIFO)

9. Elemente de teoria stocurilor

229

Formularea problemei. S se determine nivelul optim al stocului c n funcie de , L, costul unitar de stocare h i costul unitar al lipsei de stoc d. n acest caz N(t) reprezint numrul de cereri nregistrate, 0 N(t) c+m. n stoc vor exista j = cN(t) uniti. Determinarea coeficienilor n, n, 0 n c+m Dac exist n cereri nregistrate, intensitatea cu care apare o nou cerere este n = , 0 n c+m, n = 0 pentru n > c+m. Intensitatea satisfacerii cererilor n se determin astfel. Dac exist n cereri la un moment dat t, 1 n c, atunci ele se pot satisface cu unitile ce vor sosi n stoc cu intensitatea , deci n = n , 1 n c. Dac c n c+m, nu pot sosi n stoc dect c uniti ce au fost comandate, care intr n stoc cu intensitatea , deci numai c din cele n cereri vor fi satisfcute, atunci n = c , c n c+m. Deoarece numrul maxim de cereri ce se pot realiza este c+m, rezult c n = 0, pentru n > c+m. Astfel, ecuaiile de stare ale modelului sunt P0 (t ) = P0 (t ) + P1 (t ) P (t ) = ( + n ) P (t ) + P (t ) + (n + 1) P (t ) 1 n c n n n 1 n +1 . P ( t ) ( S ) P ( t ) P ( t ) S P ( t ) cnc+m = + + + n n 1 n +1 n Pc+ m (t ) = c Pc + c (t ) + Pc + m 1 (t ). Soluia pentru cazul staionar n funcie de =

este

n 1 n c p0 n ! n p n = nc p0 c n c + m c!c n>c+m 0
c+m

(9.11)

Din

p
n =0

= 1 deducem
p0 = 1
m +1

1 n c c 1 c + ! ! n c n =0 1 c Se pot determina acum: numrul mediu de uniti existente n stoc

(9.12)

230

Modele i algoritmi de optimizare

M[N+(t)] =

(c n ) p
n=0 c+m

numrul mediu de uniti lips din stoc


M[N(t)] =
n = c +1

(c n ) p

Astfel, funcia de cost care trebuie optimizat este C(c)= M[N+(t)]h M[N(t)]d. Notm Q( n) = p j funcia de repartiie a variabilei aleatoare discrete n.
j =0 n

Atunci C (c) C (c + 1) C (c) = h (c + 1 n) p n d


n =0 c +1 c +1+ m n =c + 2

(c + 1 n ) p
n

h ( S n) p n + d
n =0

S+L

n = S +1

( S n) p

= h (c + 1 n c + n ) p n d
n =0

c+m

d (c + 1 c m 1) p c +1+ m = h Q(c) d (1 Q(c) ) . d Din condiia de optim, C(c)=0, se obine Q(c) = . d +h Pentru a gsi o soluie ntreag a acestei ecuaii se poate folosi urmtorul algoritm. Pas 0. Intrare m, d, h, ; d k := , c := 0 ; d +h Pas 1. c:=c+1; Calculeaz p0 conform cu (9.12) i pn, 1 n c + m , conform cu (9.11); := p 0 ; i := 0 ; Pas 2. i:=i+1 ; := +pi ; dac <k i i<c+m mergi la Pasul 2; Pas 3. Dac <k i i=c+m mergi la Pasul 1 ; Pas 4. Dac k i i c + mL atunci c este optim. Stop! Se observ c algoritmul determin acea valoare ntreag pentru care d Q (c 1) < Q (c ) . d +h

n = c +1

(c + 1 n c + n ) p

9.7. Probleme propuse

9. Elemente de teoria stocurilor

231

1. Din experiena anilor trecui, universitatea are nevoie pentru consumurile curente de 1200 de cutii de hrtie A4 pentru un an. Costul de lansare a unei comenzi de reaprovizionare cu hrtie este de 150 000 lei, iar pentru depozitarea unei cutii se consider c se cheltuiesc 35 000 lei pe un an. S se stabileasc un plan optim de aprovizionare cu hrtie A4, care s conduc universitatea la cheltuieli minime. Se consider c anul are 300 zile lucrtoare i c nu se admite lipsa hrtiei n depozit. R. Pentru un an avem: aopt=101.42 cutii 101 cutii, costul total anual este de 3 549 647.87, numrul de comenzi lansate ntr-un an este 12, Topt 25 zile. 2. Firma care se ocup cu semaforizarea interseciilor din Capital are nevoie de 10 000 de becuri pe an. Costul de lansare a unei comenzi de reaprovizionare este de 1 500 000 lei, costul anual de pstrare a unui bec este de 3500 lei. Presupunnd c anul are 300 zile lucrtoare i c nu se admite lipsa becurilor din depozit, s se determine: a) cantitatea optim de reaprovizionare b) costul total anual al stocrii c) cte comenzi de reaprovizionare vor fi lansate anual.

R. a) Qopt=2927.7 2928 , b) CT =10 246 950.77 10 246 951 , c) N=3.42 3 .


3. RomTelecom cumpr anual consumabile n valoare de 500 000 euro. Costul de lansare a unei comenzi de reaprovizionare este de 80 euro, iar costul anual de pstrare este de 20% din valoarea consumabilelor pstrate. S se determine: a) care este valoarea optim a unei comenzi de reaprovizionare? b) de cte ori ntr-un an se lanseaz cereri de reaprovizionare? c) care este costul total anual de lansare a comenzilor? d) care este costul total anual de stocare?

R. a) Valoarea optim a comenzii de reaprovizionare este 20 000 euro; b) se lanseaz ntr-un an 25 cereri de reaprovizionare; c) costul total anual de lansare a comenzilor de reaprovizionare este de 2000 euro; d) costul total anual de stocare este de 4000 euro.
4. O firm de reparaii aparatur electronic are o component pentru care poate aplica modelul cu lips de stoc. Cererea nual este de 2000 uniti, costul anual unitar de pstrare este h=10 u.m. , costul de lansare a unei comenzi de reaprovizionare este de s=25 u.m. , costul anual unitar al lipsei de stoc este d=30 u.m.. Se presupune c anul are 250 zile lucrtoare. S se determine: a) mrimea optim a comenzii de reaprovizionare b) numrul maxim de uniti lips din stoc pe perioada lipsei de stoc. c) nivelul maxim al stocului d) ciclul optim de reaprovizionare

232

Modele i algoritmi de optimizare

e) costul total anual

R. a) mrimea optim a comenzii de reaprovizionare a opt = 115


b) numrul maxim de uniti lips din stoc pe perioada lipsei de stoc, S=29. c) nivelul maxim al stocului Imax= a opt S =86 d) ciclul optim de reaprovizionare, Topt=11.4 zile lucrtoare e) Ch=322, Cs=435, Cd=110 i atunci, costul total anual, CT=867 .

5. O companie trebuie s asigure un produs chimic (soluie) la fiecare 6 luni unui client. Cum procesul de producie dureaz dou luni, producia trebuie nceput naintea formulrii cererii de ctre client. Ci litri trebuie produi tiind c : preul de vnzare este de 20 u. m. / litru, costul de producie este de 15 u. m. / litru, lipsa de stoc este rezolvat prin cumprarea soluiei de la alt firm cu 19 u. m. / litru, surplusul se vinde cu 5 u. m. / litru. Din experiena care exist cererea se consider ca fiind N (1000,100). Care este planul de producie optim ? 4 = 0.29 . Din tabela Rezolvare. c-=19-15=4, c+=15-5=10, P (a a opt ) = 4 + 10 repartiiei normale standard

e dx = 0.29 2 se ia z=0.55. Atunci aopt=-0.55=1000-0.55100=0.945 litri. n acest caz, costul de subestimare este mai mic dect cel de supraestimare i atunci compania i asum un risc mai mare de apariie a lipsei de stoc. La valoarea aopt obinut, probabilitatea de a avea surplus este 0.29, iar cea de a avea lips de stoc este 0.71 .
P(a z ) =

x2 2

6. Folosind algoritmul general din 9.4. s se rezolve urmtoarea problem : Un magazin de nclminte brbteasc vinde n medie la fiecare 3 luni 500 perechi de pantofi negri. Fcnd aprovizionarea n loturi de cte 500 perechi de pantofi, magazinul obine de la productor cel mai mic pre petru o pereche, 28 u.m. Costul de depozitare este 20% din preul de achiziie. tiind c o lansare de comand de aprovizionare este de 30 u.m. i c productorul ofer i alte reduceri de preuri n funcie de mrimea comenzii, conform cu Tabelul 9.8, s se stabileasc mrimea optim a comenzii de reaprovizionare a magazinului i s se precizeze dac este mai avantajoas vechea politic de reaprovizionare.
Tabelul 9.8 Cantitate Pre unitar 0 99 36 100 199 32 200-299 30 28 300

ANEX Noiuni generale de probabiliti i statistic matematic


A.1. Cmp de evenimente. Axioma lui Kolmogorov

A.1.1. Evenimente. Probabiliti


Fie o mulime nevid dat, K o familie de submulimi ale lui , K P (). Elementele lui K le numim subevenimente. Familia K se numete cmp complet aditiv dac sunt verificate urmtoarele axiome: A1. () X K , cX K (cX= \ X) A2. U X K dac X K , () I , I familie de indici cel mult
I

numrabil ( I submulime a lui N ).

A.1.2. Probabilitate
Funcia de mulime P : K R se numete probabilitate dac: P1. () X K , P(X) 0; P2. ()I familie de indici cel mult numrabil, este ndeplinit relaia: X K , () I , X X = , , I , P = P( X ) ; U X I I P3. P() = 1.

A.1.3. Cmp de probabilitate complet aditiv


Cmp de probabilitate complet aditiv este tripletul { , K , P} , iar se numete evenimentul sigur i evenimentul imposibil. P() = 1, P( ) = 0 .

234

Modele i algoritmi de optimizare

A.1.4. Probabilitate condiionat


Fie { , K , P} un cmp de probabilitate complet aditiv, A, B K cu P(B)>0. Numim probabilitatea evenimentului A condiionat de B i notm P( A B) PB(A) sau P(AB) raportul . P( B)

A.1.5. Evenimente independente


Fie { , K , P} un cmp de probabilitate complet aditiv i A, B K . Spunem c evenimentele A i B sunt independente dac se verific relaia: P ( A B) = P ( A) P ( B ) . Dac evenimentele A i B sunt independente, atunci au loc relaiile: P (cA B) = P (cA) P ( B ) P ( A cB) = P( A) P (cB) P (cA cB) = P(cA) P (cB).

Observaie. Dac A i B sunt independente, atunci PB(A) = P(A).

A.2. Variabile aleatoare

Fie

{ , K

, P}

un cmp de probabilitate complet aditiv sau cmp de

probabilitate i X o funcie, X : R. Aplicaia X este variabil aleatoare X ( ) > c} K , pentru () c R. . dac {

Proprieti Teorema 1. Fie X o variabil aleatoare i b un numr finit. Atunci: a) X + b b) b X c) X


d) X 2 1 e) , pentru X 0 X sunt de asemenea variabile aleatoare.

Anex

235

Teorema 2. Dac X i Y sunt dou variabile aleatoare, atunci: a) X Y b) X + Y c) X Y X , pentru Y 0 d) Y sunt variabile aleatoare.

A.2.1. Funcia de repartiie


Fie x R i X o variabil aleatoare. Notm F(x) = P( X ()) < x ) (de fapt, F ( x) = P( { R X () < x} ) . Funcia F se numete funcia de repartiie a variabilei aleatoare X .

Exemplu. Dac X este o variabil aleatoare discret (ia numai un numr finit sau o infinitate numrabil de valori), atunci funcia de repartiie este suma probabilitilor valorilor lui X () situate la stnga lui x.
x 0 p 0.2 1 0.3 2 0.1 3 0.3 4 0.1

Deci, pentru variabila aleatoare discret, F ( x) = P( X < x) = P ( X = x i ) .


xi < x

0 0.2 0.2 + 0.3 F ( x) = 0.2 + 0.3 + 0.1 0.2 + 0.3 + 0.1 + 0.3 1

x0 0 < x 1 1< x 2 2< x3 3< x 4 4< x

Proprieti Teorema 3. Fie X o variabil aleatoare, F funcia sa de repartiie i x1, x2 R. Atunci: a) P( x1 X < x2 ) = F( x2 ) F( x1 ) ; b) P( x1 < X < x2 ) = F( x2 ) F( x1 ) P(X = x1 ) ; c) P( x1 < X < x2 ) = F( x2 ) F( x1 ) P(X = x1 ) + P(X = x2 ) ; d) P( x1 X x2 ) = F( x2 ) F( x1 ) + P(X = x2 ) . Teorema 4. Fie X o variabil aleatoare i F funcia sa de repartiie. Atunci:

236

Modele i algoritmi de optimizare

a) F( x1 ) F( x2 ) , x1 < x2 ; b) lim F ( x) = F (+) = 1 ; lim F ( x) = F () = 0 ;


x x

c) F( x 0) = F( x ) (continuitate la stnga).

A.2.2. Densitate de repartiie


F ( x) =
x

Dac exist o funcie nenegativ

f( y )

astfel nct

f ( y )dy ,

()xR , atunci numim funcia f densitate de repartiie sau de probabilitate.


Proprieti a) f ( x ) 0 , () x R ;

b) () x1 , x2 R , P( x1 X < x 2 ) = f ( x)dx ;
x1

x2

c)

f ( x ) dx = 1 .

A.2.3. Variabile aleatoare independente n sensul SteinhausKa


Fie

( X )I

, I familie oarecare de indici. Spunem c aceasta este o familie

independent n sensul SteinhausKa dac, () J I , J finit, avem: 1 1 P I X (, a ) = P X (, a ) . xJ J

A.2.4. Valoare medie. Dispersie. Momente


Fie { , K , P} un cmp de probabilitate i X o variabil aleatoare. Se numete media variabilei aleatoare X valoarea M [ X ] = X ( )dP .

Dac

variabila aleatoare este discret, atunci M [ X ] = a i P ( X = a i ) . Dac variabila


iI

aleatoare are densitatea de probabilitate f, atunci M [ X [= xf ( x)dx .

Proprieti Fie X , Y variabile aleatoare, iar a, b constante reale. Atunci:

Anex

237

a) M[ a X + b] = aM[X] + b ; b) M[ X + Y] = M[X] + M[Y] ; c) M[ X Y] = M[ X] M[ Y] numai dac X i Y sunt independente. Dispersia unei variabile aleatoare X este 2 2 D 2 [ X ] = M ( X M [X ]) = M X 2 (M [ X ]) .

] [ ]

Proprieti Fie X , Y variabile aleatoare independente, iar a, b constante reale. Atunci: a) D[ a X + b] = a2D[X] ; b) D[ X + Y] = D[X] + D[Y] .

Abaterea medie ptratic se definete ca fiind [ X ] = D 2 [ X ] . Momentul de ordinul r (r>1) al unei variabile aleatoare este M r [ X ] = X r ( )dP ( ) = x r f ( x)dx

dac X are densitatea de probabilitate f.

A.3. Cteva repartiii clasice

A.3.1. Repartiia uniform


O variabil aleatoare X urmeaz repartiia uniform pe intervalul [a,b] dac are densitatea de probabilitate 1 dac x [a,b] f ( x) = b a altfel . 0 Funcia sa de repartiie este x xa F ( x) = (t )dt = , ()x [ a, b] . ba a Pentru variabila aleatoare uniform X media i dispersia sunt 1 1 M [ X ] = ( a + b) , D 2 [ X ] = (b a ) 2 . 2 12

A.3.2. Repartiii Markov

238

Modele i algoritmi de optimizare

n modelele de ateptare intervin repartiia Poisson pentru modelarea sosirilor n sistem i repartiia exponenial pentru modelarea timpilor de servire. Cele dou repartiii, prima discret i cea de-a doua continu, sunt repartiii complementare. Ambele sunt numite repartiii Markov. Repartiia Poisson O variabil aleatoare discret X urmrete repartiia Poisson de parametru dac n! unde >0 , iar n=0, 1, 2, ... Pentru acest tip de variabil aleatoare M[X]= i D2[X]= .. Repartiia exponenial O variabil aleatoare are repartiia exponenial dac are densitatea de probabilitate f (t ) = e xt , t 0 , > 0 , iar funcia de repartiie este F (t ) = 1 e t , t 0 . Dac Y a Exp( ) , atunci M [Y ] = 1 , iar D 2 [Y ] = . 1
2

P ( X = n) = f ( n) =

e ,

Repartiia Erlang(,n) Fie Y1, Y2,..., Yn , n variabile aleatoare repartizate Exp() i independente, iar X = Yi . Variabila aleatoare X este repartizat Erlang(,n) i are densitatea de
i =1 n

repartiie
f ( x) =

n
( n)

x n1e x ,

iar este funcia gama (funcia lui Euler de spea a II-a) (a) = x a 1 e x dx .
0

Dac X a Erlang ( ) atunci M [ X ] =

, iar D 2 [ X ] =

n3

A.3.3. Repartiia normal unidimensional a lui Gauss

Anex

239

O variabil aleatoare X urmeaz repartiia normal dac are densitatea de probabilitate f ( x) = iar funcia de repartiie 1

( x )2 2 2

()x ( , ) ,
x

2 unde M[X]=, iar D2[X]=2. Cnd =0 i =1 , variabila X se numete variabil


aleatoare normal standard (sau redus), iar pentru aceasta F(x) este tabelat.

F ( x) =

(t )2 2 2

dt ,

A.3.4. Repartiia Beta


O variabil aleatoare X urmeaz repartiia Beta de parametri a i b dac are densitatea de repartiie 1 x a 1 (1 x) b 1 ()x (0,1) f ( x ) = B ( a, b) , altfel 0 unde B(a,b) este funcia beta (funcia lui Euler de spea I) (a )(b) B ( a , b) = , a>0 , b>0. ( a + b) Pentru o variabil aleatoare de acest tip, 2 a 1 a . M[X ] = i D 2 [ X ] = a+b a + b a + b +1

A.4. Procese aleatoare


Fie { , K , P} un cmp de probabilitate i E = { X : R X variabil aleatoare} , T o mulime oarecare de numere reale. Se numete proces aleatoriu sau proces stochastic cu mulimea de parametri T o aplicaie : T E . Considerm c variabilele din E descriu starea unui anumit sistem, iar mulimea T reprezint timpul. Astfel, un proces aleatoriu reflect evoluia n timp a unui real sistem dat. Dac mulimea T este finit, procesul aleatoriu este echivalent cu un vector aleatoriu. Frecvent T=R, T=[0, ) sau T=[0, 1] i se spune c procesul aleatoriu este cu timp continuu. Dac T=Z sau T=N termenul de proces aleator se nlocuiete cu cel de lan.

240

Modele i algoritmi de optimizare

Dup cum o variabil aleatoare se consider determinat din punct de vedere probabilistic atunci cnd i se cunoate funcia de repartiie, pentru definirea unui proces aleatoriu ar trebui cunoscute toate funciile de repartiie finit dimensionale, adic ()n N , ()t1 , t 2 , ... , t n T i ()x1 , x 2 , ... , x n R trebuie s fie cunoscute probabilitile Ft1 , t2 ,...,tn ( x1 , x 2 , ..., x n ) = P t1 ( ) < x1 , t2 ( ) < x 2 ,..., tn ( ) < x n .

({

})

n cele ce urmeaz vom presupune c intervalul de interes este n timp. Un proces aleatoriu se numete proces Markov dac pentru ()n N , ()t1 , t 2 , ... , t n T , t1 < t 2 < ... < t n i ()a R are loc relaia unde B = ( , a ), sau ( , a ], sau (a, ), sau [a, ). . Din aceast definiie rezult c procesul dinamic descris de procesul Markov are o evoluie n viitor care depinde numai de starea precedent i nu de ceea ce s-a petrecut cu el la momentele t1 , t 2 , ..., t n 1 . Un proces aleatoriu : [0, ) E se numete cu creteri independente dac pentru ()n N i ()t1 , t 2 , ... , t n 0 cu proprietatea c t1 < t 2 < ... < t n , variabilele aleatoare (t1 ) , (t 2 ) (t1 ) , (t 3 ) (t 2 ) ,..., (t n ) (t n 1 ) sunt independente. Un proces aleatoriu cu creteri independente i satisfcnd condiia (0)=0 se numete proces Poisson dac ia numai valori ntregi nenegative i dac pe orice interval [s,t] , creterile sale urmeaz repartiii Poisson de parametru (t s ) , adic n! Se poate considera c (t ) nregistreaz numrul de apariii ale unui eveniment n intervalul de timp [0, t] . Media i dispersia procesului Poisson sunt M [ (t )] = t , D 2 [ (t )] = t . ntr-un proces Poisson probabilitatea apariiei unui eveniment este constant i apariia unui eveniment este independent de ceea ce s-a ntmplat imediat naintea observaiei curente. Pot fi considerate procese Poisson: numrul erorilor de tipar dintr-o carte, ziar etc., numrul pieselor defecte dintr-un lot de fabricaie, vnzrile unui produs etc. Repartiia probabilitii Poisson aplicat procesului Poisson d probabilitatea numrului de evenimente pe un interval, [0, t] , date fiind: a) numrul mediu de evenimente pe unitatea de timp, =rata sau intensitatea procesului, b) lungimea intervalului, t . Atunci, probabilitatea apariiei a n evenimente n intervalul [0, t] este e t (t ) n P( X = n , t ) = . n! P ({ (t ) B (t1 ), (t 2 ),..., (t n )}) = P ({ (t ) B (t n )}) ,

[ (t s ] P( (t ) ( s ) = n ) = e (t s )

, ()n N * .

Anex

241

Notm m = t i atunci m este numrul de evenimente care s-ar produce n intervalul [0, t ] . ntr-un proces Poisson este interesant de cunoscut intervalul de timp dintre dou evenimente succesive. Vrem s tim care este repartiia de probabilitate pentru aceste intervale. Aceasta este repartiia exponenial. Pentru m de mai sus P (Y > t ) = e m reprezint probabilitatea ca timpul dintre dou evenimente s fie mai mare ca t este e-m , adic probabilitatea ca s nu apar nici un eveniment n intervalul [0,t] . Astfel, repartiia Poisson pentru evenimentele petrecute pe unitatea de timp i repartiia exponenial a intervalului dintre dou astfel de evenimente sunt dou modaliti alternative de a descrie acelai lucru. Se poate spune c numrul de evenimente pe unitatea de timp este repartizat Poisson cu media pe unitatea de timp, sau c intervalul dintre dou evenimente este 1 exponenial cu media = uniti de timp.

A.5. Teste de concordan

n practic apare necesitatea comparrii a dou procese tehnologice diferite, a dou metode de cercetare diferite etc. Este necesar s se cunoasc dac metodele comparate dau rezultate identice, iar dac nu, care este mai eficace. n statistic o diferen semnificativ este aceea care nu poate fi pus pe seama ntmplrii la un anumit nivel de probabilitate sau de ncredere. De exemplu, cu ct este mai mic diferena dintre dou medii, cu att este mai mare probabilitatea ca ele s aparin unei selecii extrase din aceeai colectivitate de baz. Se numete ipotez statistic orice presupunere cu privire la caracteristicile unei variabile aleatoare, fa de legea ei de repartitie sau fa de parametrii ce o determin (Mihil i Popescu, 1978). Mijloacele de verificare a ipotezelor statistice se numesc teste statistice. Cnd ipoteza se refer la natura repartiiei, de exemplu afirmaia c o variabil empiric are o anumit repartiie teoretic, testul se numete test de concordan. Afirmaia H0 : o variabil empiric are o anumit repartiie teoretic este numit ipoteza H0 , iar ipoteza alternativ: H1 : variabila empiric poate avea oricare alt repartiie. Testul pentru verificarea ipotezei nule d o regul de descompunere a spaiului n-dimensional al seleciilor Rn (n este volumul seleciei) n dou regiuni R1n , R0n cu
n R n = R1n R0 i

R1n R0n = , astfel nct dac valorile observate se

( X 1 , X 2 ,..., X n ) R1n se accept ipoteza H0 , iar dac ( X 1 , X 2 ,..., X n ) R0n

242

Modele i algoritmi de optimizare

respinge ipoteza H0 . R0n se numete domeniul critic sau regiunea critic a testului. Probabilitile n = P ( R0 H 0 ) = P(resping H 0 cnd H 0 este adevrat)

= P( R1n H 1 ) = P (accept H 0 cnd H 0 este fals )


se numesc riscul de genul nti i respectiv riscul de genul al doilea. se mai numete i prag de semnificaie i de obicei se ia =0.05 .

A.5.1. Etapele verificrii ipotezelor statistice


1. Enunarea ipotezei; 2. Se specific i . Pe baza acestora se va determina numrul de observaii care trebuie fcute pentru a calcula statistica aleas; 3. Se determin care valori ale unei anumite statistici, valori ce formeaz regiunea critic, determin respingerea ipotezei i care determin acceptarea ipotezei; 4. Se calculeaz valoarea statisticii de selecie; 5. Se accept sau nu ipoteza, dup cum valoarea obinut pentru statistic este n afara sau n interiorul regiunii critice. Concordana dintre repartiia empiric i cea teoretic se stabilete cu ajutorul unui test de concordan. Se pune problema racordrii unei variabile empirice Xe la o variabil teoretic X, n x1 x 2 L x n x , Xe = Ni = N , X = ( x) , N N L N i =1 2 n 1 adic se cerceteaz dac irul numeric al frecvenelor absolute empirice Ni reflect legitatea ipotetic a variabilei aleatoare teoretice. Rspunsul respectiv este util n aprecierea caracteristicilor variabilei empirice prin prisma legitii variabilei teoretice. Rezolvarea acestei probleme se face n urmtoarele etape : 1. Estimarea parametrilor innd seama de semnificaia pe care ar putea s o aib n legtur cu caracteristicile repartiiei teoretice; 2. Se construiete variabila pseudoteoretic: ~ x1 x 2 L x n n X = , N i = N N N L N i =1 2 n 1 fcndu-se astfel legtura ntre variabila empiric Xe i cea teoretic X. Determinarea frecvenelor absolute N i , ()i = 1, n se face cu ajutorul funciei N de probabilitate f ( x i ) = i N i = Nf ( x i ) , () i = 1, n . N

Anex

243

3. Verificarea concordanei dintre repartiia empiric i cea teoretic, adic se stabilete dac diferenele dintre N i N i , ()i = 1, n , sunt datorate ntmplrii, adic nu sunt semnificative, sau diferenele sunt semnificative i atunci exist o neconcordan ntre repartiia teoretic i cea empiric.

A.5.2. Testul de concordan 2


Acest test este datorat lui K. Pearson care a artat c, n cazul unui sondaj nonexhaustiv n populaia chestionat, cnd probabilitile pi nu sunt aproape de 0 sau 1, iar produsele N i = Np i , unde p i = f ( x i ) , ()i = 1, n , calculate dup estimarea parametrilor, nu sunt prea mici ( N i > 5 ), atunci c2 =
i =1 2 n

(N i N i )2
N i

are repartiia cu = n 1 k , n fiind numrul de valori observate, iar k , numrul parametrilor estimai (Vduva, 1977).

Observaie. Numrul gradelor de libertate este strns legat de cantitatea de informaie de care se dispune n cercetarea care se efectueaz. Ea se reflect n volumul n, de
date experimentale, n-1 informaii sunt independente, deoarece

N
i =1

= N , i se

mai pierde informaie pentru determinarea celor k parametri estimai. 2 din tabela repartiiei 2 , Pentru < 30 i dai se determin n 1 k ,
2 2 2 ( P 2 > n 1 k , = ) i dac c < n 1 k , , atunci exist concordan, iar dac


2 c

2 n 1 k ,

nu exist concordan ntre cele dou repartiii.

A.5.3. Testul Kolmogorov


Acest test de concordan are la baz urmtoarea teorem:

Teorema lui Kolmogorov (Vduva, 1977). Fie X o variabil aleatoare a crei funcie de repartiie F(x) este continu i X1, X2, ..., Xn o selecie efectuat asupra sa. Fie Fn(x) funcia de repartiie empiric (sau de selecie) asociat seleciei numrul valorilor lui X i x date, adic Fn ( x) = . Atunci n 2 2 u < lim P max ( ) ( ) = (1) k e 2u k = K (u ) . F x F x n n n

244

Modele i algoritmi de optimizare

Funcia K(u) se numete funcia lui Kolmogorov i exist tabele cu cuantilele ei.
Algoritm pentru aplicarea testului Kolmogorov (Vduva, 1977) Pas 1. Se formuleaz ipoteza H0: Variabila aleatoare X are funcia de repartiie F(x); Pas 2. Se fixeaz un prag de semnificaie (de exemplu, =0.05 , =0.01 , =0.025); Pas 3. Se determin u , din tabelele funciei K(u) , astfel K (u ) = 1 ; Pas 4. Se ordoneaz cresctor X (1) X ( 2 ) ... X ( n ) ;

Pas 5. Se calculeaz d i = Fn ( X (i ) ) F ( X i ) , ()i = 1, n ; Pas 6. Se determin d = max d i ;


1 i n

Pas 7. Dac d <

u n

, se accept ipoteza H0 , altfel se respinge. Stop!

BIBLIOGRAFIE
Anderson, D. R. , Sweeney, D. J., Williams, Th. A. An Introduction to Management Science. Quantitative Approaches to Decision Making, ediia a 7a. West Publishing Company, 1997. Anderson, D. R. , Sweeney, D. J., Williams, Th. A., Joseph, D. A. The Management Scientist, ediia a 7a. West Publishing Company, 1998. Bergounioux, M. Optimization et Contrle des systmes linaires. Ed. Dunod, 2001. Bonini, C. P. , Hausman, W. H., Bierman, H. Jr. Quantitative Analysis for Management, ediia a 9a. Irwin McGrawHill, 1997. Cohen, G. Convexite et optimisation, ENPC, Paris, 2000 Cohen, V. La Recherche Oprationnelle. Presses Universitaires de France, 1995. Dragomirescu, M., Malia, M. Programare ptratic. Editura tiinific, Bucureti, 1968. Fletcher, R. Practical Methods of Optimization, vol. 1 Unconstrained Optimization i vol. 2 Constrained Optimization. John Wiley & Sons, 1981. Fuente, Angel de la. Mathematical Methods and Models for Economists, Cambridge University Press, 2000. Henry-Labordere, A. Recherche Operationnelle. Presses de lcole Nationale des Ponts et Chausses, 1995. Hsiao, J. C., Cleaver, D.S. Management Science. Houghton Mifflin Company, 1982. Ionescu, H., Dinescu, C., Svulescu, B. Probleme ale cercetrii operaionale. Editura Didactic i Pedagogic, Bucureti, 1972. Kaufmann, A. Metode i modele ale cercetrii operaionale, vol. I, II. Editura tiinific, Bucureti, 1967. Lee, A. M. Teoria ateptrii cu aplicaii. Editura Tehnic, Bucureti , 1976. Lange, O. Decizii optimale Bazele programrii. Editura tiinific, Bucureti, 1970. Luenberger, D. G. Linear and Nonlinear Programming. AddisonWesley, 1989. Malia, M., Zidroiu, C. Matematica organizrii. Editura Tehnic, Bucureti, 1971. Mihil, N., Popescu, O. Matematici speciale aplicate n economie, Editura Didactic i Pedagogic, Bucureti, 1978. Popescu, O i colectiv. Matematici aplicate n economie, Editura Didactic i Pedagogic, Bucureti, 1997. Popescu, O i colectiv. Matematici aplicate n economie Culegere de probleme, Editura Didactic i Pedagogic, Bucureti, 1996. Preda, V i Bad, M. Culegere de probleme de Cercetri Operaionale, Tipografia Universitii din Bucureti, 1978.

246

Modele i algoritmi de optimizare

Turban, E., Meredith, J. R. Fundamentals of Management Science, Ediia a 4a. Irwin, 1998. tefnescu, A. Curs de Cercetri Operaionale, Tipografia Universitii din Bucureti, 1989. Vduva, I. Modele de simulare cu calculatorul. Editura Tehnic, Bucureti, 1977. Vduva, I., Dinescu, C., Svulescu, B. Modele matematice ale organizrii i conducerii produciei, vol. I, II. Editura Didactic i Pedagogic, Bucureti, 1974. Vrnceanu, Gh. Gh., Mititelu, t. Probleme de cercetare operaional. Editura Tehnic, Bucureti , 1983. Zidroiu, C. Programare dinamic discret. Editura Tehnic, Bucureti , 1975. Zidroiu, C. Programare liniar. Editura Tehnic, Bucureti , 1983.

INDEX ALFABETIC
abaterea medie ptratic ........................... 235 algoritmul de transport .......................................... 104 Dijkstra .................................................. 25 Kruskal .................................................. 21 lui Prim .................................................. 23 simplex .................................................. 61 simplex dual........................................... 88 simplex revizuit ..................................... 63 Wolfe................................................... 125 alternativ ................................................... 13 analiza convergenei globale .............................................. 16 locale................................................. 16 marginal ............................................. 215 prospectiv ........................................... 142 retrospectiv......................................... 142 sensibilitii............................................ 68 arbore .......................................................... 20 de acoperire de lungime minim ............ 20 arborescen ............................................... 18 arc al grafului............................................... 17 incident .................................................. 18 baz dual admisibil ....................................... 83 primal admisibil ................................... 83 Bellman, principiul ..................... 15, 141, 150 Bland, regula lui ......................................... 72 cmp complet aditiv................................... 231 capacitatea sistemului de ateptare ........... 159 ctigul parial................................................... 143 total ...................................................... 143 celul ........................................................ 102 cerere ........................................................ 192 ciclare ......................................................... 71 ciclu .......................................................... 102 de reaprovizionare ............................... 194 eulerian .................................................. 20 hamiltonian ............................................ 20 ciclu ntr-un graf ......................................... 20 circuit.......................................................... 18 eulerian .................................................. 20 hamiltonian ............................................ 20 clieni ........................................................ 159 coeficieni de cost redus...................................59, 106 coeficienii funciei obiectiv .................62, 93 condiia de balansare...................................52 condiiile de nenegativitate ....................................50 Kuhn-Tucker ..................................49, 125 conul direciilor admisibile ..............................48 tangent....................................................48 costul de depozitare.............................................193 lansare ..........................................193, 197 stocare ..................................................197 costul lipsei de stoc ...........................193, 203 costul total.................................................198 costul unitar al subestimrii.......................................220 al supraestimrii ...................................220 de fabricaie..........................................208 de transport ............................................53 costuri reduse ..............................................67 criteriu de ieire din baz ..........................61, 90, 107 intrare n baz...........................61, 90, 106 cuantila inferioar .....................................218 cuplu de probleme duale .............................82 asimetrice ...............................................83 simetrice.................................................83 degenerare...................................................72 densitate de repartiie ................................234 diagrama activitilor ..................................30 direcie admisibil .......................................48 disciplina de serviciu ................................160 dispersia variabilei aleatoare.....................235 domeniul de admisibilitate........................142 drum............................................................17 critic .......................................................30 eulerian ..................................................20 hamiltonian ............................................20 ecuaiile de recuren ..........................................146 KolmogorovFeller..............................161 ecuaiilor de stare......................................180 evenimentul imposibil ..............................................231 sigur .....................................................231

248
factor de serviciu ...................................... 164 FIFO ......................................................... 159 fluxul intrrilor n sistemul de ateptare ... 159 form ptratic negativ definit .................................... 122 negativ semidefinit ............................. 122 pozitiv definit ..................................... 122 pozitiv semidefinit ............................. 122 funcia lui Kolmogorov ............................ 242 funcie beta ...................................................... 237 convex .................................................. 43 de repartiie .......................................... 233 decompozabil prospectiv........................................ 143 retrospectiv ..................................... 143 gama .................................................... 236 obiectiv .................................................. 14 pozitiv semidefinit ............................... 43 strict concav ......................................... 44 strict convex ......................................... 43 grad exterior................................................... 18 interior ................................................... 18 graf complet .................................................. 19 neorientat ............................................... 19 orientat................................................... 17 parial..................................................... 18 ponderat ................................................. 19 simetric .................................................. 19 simplu conex.......................................... 20 tare conex............................................... 18 indice de lips de stoc............................... 205 nfurtoarea convex ............................... 42 intensitate de trafic ................................... 164 intensitatea de trafic.................................. 175 intensitatea optim de ncrcare a stocului223 intensitatea procesului .............................. 238 intensiti de deces.................................... 161 intensiti de natalitate.............................. 161 intervalul de control.................................. 195 inventar ..................................................... 193 ipotez alternativ ............................................ 239 statistic ............................................... 239 lagrangean .................................................. 46 lan .............................................................. 19 eulerian .................................................. 20 hamiltonian ............................................ 20 lege de evoluie......................................... 142 lema Farkas-Minkowski ................................. 48 substituiei.............................................. 87 lot de reaprovizionare ............................... 194

Modele i algoritmi de optimizare


lungimea cozii...........................................159 lungimea maxim a cozii ..........................160 lungimea medie a cozii ............. 163, 170, 175 mrimea optim a comenzii de reaprovizionare ....................................199 marja ...........................................................32 matrice triunghiular ..................................102 maxim global .....................................................45 local........................................................45 mecanismul reaprovizionrii ....................................194 serviciului.............................................159 media variabilei aleatoare .........................234 metoda celor dou faze .......................................76 colului nord-vest .................................107 costului minim .....................................108 PERT......................................................29 model ....................................................11, 12 de ateptare ....................................15, 159 de stocare ...............................................15 modelare......................................................11 modele de simulare................................................183 modele de stocare cu cerere continu ...........................................195 discret ............................................195 cu mai multe staii................................195 cu staie ................................................195 deterministe..........................................195 dinamice...............................................195 statice ...................................................195 stochastice............................................195 momentul lansrii comenzii ......................195 muchiile grafului.........................................19 mulime convex .........................................42 multiplicatorii lui Lagrange ...........................................48 simplex.................................................104 nivel de reaprovizionare............................195 nivelul mediu al stocului...........................199 nod ascendent................................................18 descendent..............................................18 precedent................................................18 succesor..................................................18 nodurile grafului .........................................17 numrul de clieni din sistem ....................159 numrul de staii de serviciu .....................160 numrul mediu al clienilor de la coad ....165 numrul mediu de clieni de la coad........181 numrul mediu de clieni din sistem 162, 165, .....................................................169, 181

Index alfabetic
numrul mediu de clieni servii la un moment dat .......................................... 169 numrul mediu de servicii ........................ 176 numrul mediu de staii de servire care lenevesc ............................................... 177 numrul mediu de staii n lucru ............... 181 numrul mediu de staii neocupate ........... 163 obiectiv ....................................................... 13 optimizare............................................. 13, 14 pivot............................................................ 62 poligonul soluiilor.................................... 74 politic ...................................................... 141 de reaprovizionare ............................... 195 optim .................................................. 144 pondere ....................................................... 20 ponderea arcelor ......................................... 19 prag de semnificaie.................................. 240 pre dual...................................................... 68 pre umbr ................................................... 91 probabilitate.............................................. 231 problem de decizii.............................................. 142 cu orizont finit................................. 141 cu orizont infinit ............................. 141 de programare convex ............................................. 44 liniar ................................................ 15 ptratic .................................... 15, 124 forma canonic ........................... 124 forma standard ........................... 126 dual ...................................................... 81 nedegenerat .......................................... 72 primal ................................................... 81 probleme de stoc aprovizionare ....................................... 192 producie............................................... 193 proces aleatoriu ............................................... 237 cu creteri independente ...................... 238 Markov ................................................ 238 Poisson................................................. 238 stochastic ...................... v. proces aleatoriu proces de natere i deces ......................... 160 program de baz ................................................... 57 de transport ............................................ 52 degenerat................................................ 71 optim...................................................... 57 program liniar ............................................. 51 forma canonic ....................................... 55 forma standard ....................................... 55 programare........................... 14, v. optimizare cu restricii ............................................. 14 dinamic ................................................ 15 far restricii........................................... 14

249
punct admisibil............................................15 punct de extrem...........................................43 punct regulat ...............................................47 rata cererii ...................................................193 ieirilor .................................................193 intrrilor ...............................................193 regiunea admisibil .....................................15 regiunea critic a testului ..........................240 regula dreptunghiului..................................62 repartiia Beta ................................................34, 237 Erlang...........................................218, 236 exponenial .................................164, 236 normal ................................................237 Poisson .................................................236 uniform ...............................................235 repartiii Markov.......................................236 restricie activ ......................................................46 inactiv ...................................................46 restricii.......................................................13 riscul de genul al doilea................................................240 nti ......................................................240 rotunjirea rezultatelor................................202 simulare probabilist .................................184 soluie admisibil .........................................15, 56 de baz ...................................................56 degenerat ..............................................56 global....................................................45 local ......................................................45 nedegenerat ..........................................56 optim ..............................................15, 57 starea final ....................................................142 iniial ..................................................142 staie de servire ..........................................159 stoc....................................................192, 193 stoc intangibil....................................197, 215 subgraf ........................................................18 tabel simplex...............................................62 teoria ateptrii ..............................................159 grafurilor................................................15 test de concordan ...................................239 testul 2 ........................................................241 lui Kolmogorov....................................242 timpul de ateptare ...............................................159
P P

250
avans .................................................... 195 neocupare a staiilor............................. 159 timpul mediu de ateptare n sistem 163, 165, 170, 177, 182 ateptare la coad 163, 165, 170, 177, 182 lenevire ................................................ 163 servire .................................................. 163 topologia sistemului de servire................... 159 traiectoria optim ...................................... 144 vrf adiacent.................................................. 18 al grafului............................................... 19

Modele i algoritmi de optimizare


variabil aleatoare ...............................................232 normal standard .............................237 artificial ................................................76 ecart........................................................56 variabile de decizie ...............................................12 externe....................................................12 intermediare ...........................................13 vector de decizie ..................................................141 stare......................................................141

MODELE I ALGORITMI DE OPTIMIZARE

Conf. univ. dr. Romic Trandafir, membru al catedrei de Matematic Informatic din Universitatea Tehnic de Construcii din Bucureti, este absolvent al Facultii de Matematic a Universitii din Bucureti, promoia 1974 i doctor n matematici din anul 1994. Desfoar o susinut activitate de cercetare n domeniul matematicilor aplicate. Cercetrile sale, materializate ntr-un numr semnificativ de articole publicate n reviste interne i internaionale, abordeaz teme privind modelarea stochastic, teoria informaiei i analiza numeric. Este coautor al monografiei Bazele Analizei Numerice, Editura Printech, 2001. Lucrarea conine modele i algoritmi pentru optimizarea activitilor economice, elemente de teoria grafurilor, programare convex, liniar, ptratic i dinamic, problema de transport, modele de ateptare i de stocuri, fiind util cercettorilor din domeniu, inginerilor, economitilor, precum i studenilor de la facultile tehnice i economice.

I SBN 9 7 3 - 8 4 6 6 - 7 6 - 8

9 789738 466760

You might also like