7.1 O problemă de optimizare discretă: problema croirii

Σχετικά έγγραφα
TEMA 9: FUNCȚII DE MAI MULTE VARIABILE. Obiective:

7. ECUAŢII ŞI SISTEME DE ECUAŢII DIFERENŢIALE

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

Metode iterative pentru probleme neliniare - contractii

4. Ecuaţii diferenţiale de ordin superior

Inegalitati. I. Monotonia functiilor

a) (3p) Sa se calculeze XY A. b) (4p) Sa se calculeze determinantul si rangul matricei A. c) (3p) Sa se calculeze A.

Capitole fundamentale de algebra si analiza matematica 2012 Analiza matematica

Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare

CURS III, IV. Capitolul II: Serii de numere reale. a n sau cu a n. Deci lungimea segmentului este suma lungimilor sub-segmentelor obţinute, adică

Formula lui Taylor. 25 februarie 2017

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Olimpiada Naţională de Matematică Etapa locală Clasa a IX-a M 1

sistemelor de algebrice liniarel

Asupra unei inegalităţi date la barajul OBMJ 2006

Analiza matematica Specializarea Matematica vara 2010/ iarna 2011

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

Analiza bivariata a datelor

COMBINATORICĂ. Mulţimile ordonate care se formează cu n elemente din n elemente date se numesc permutări. Pn Proprietăţi

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

CAPITOLUL I PROGRAMARE LINIARA. 1. Forma generală a unei probleme de programare liniară

Laborator 4 Interpolare numerica. Polinoame ortogonale

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

6.1. DERIVATE ŞI DIFERENŢIALE PENTRU FUNCŢII REALE DE O VARIABILĂ REALĂ. APLICAŢII

Statisticǎ - curs 2. 1 Parametrii şi statistici ai tendinţei centrale 2. 2 Parametrii şi statistici ai dispersiei 5

Curs 4 Serii de numere reale

Tema: şiruri de funcţii

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

SUBGRUPURI CLASICE. 1. SUBGRUPURI recapitulare

BAREM DE CORECTARE CLASA A IX A

PENTRU CERCURILE DE ELEVI

Metode de interpolare bazate pe diferenţe divizate

Sunt variabile aleatoare care iau o infinitate numărabilă de valori. Diagrama unei variabile aleatoare discrete are forma... f. ,... pn.

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

PROBLEME CU PARTEA ÎNTREAGĂ ŞI

CAPITOLUL III FUNCŢII CONTINUE

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

CLASA a V-a CONCURSUL INTERJUDEŢEAN DE MATEMATICĂ ŞI INFORMATICĂ MARIAN ŢARINĂ EDIŢIA A IV-A MAI I. Să se determine abcd cu proprietatea

1. ŞIRURI ŞI SERII DE NUMERE REALE

5.1. ŞIRURI DE FUNCŢII

TEMA 1: FUNCȚII LINIARE. Obiective:

3.1. DEFINIŢII. PROPRIETĂŢI

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

în care suma termenilor din fiecare grup este 0, poate conduce la ideea că valoarea acestei sume este 0. De asemenea, gruparea în modul

Concursul Naţional Al. Myller Ediţia a VI - a Iaşi, 2008

Curs 12. Intervale de încredere Intervale de încredere pentru medie în cazul σ cunoscut

Partea întreagă, partea fracţionară a unui număr real

REZOLVAREA NUMERICĂ A ECUAŢIILOR ŞI SISTEMELOR DE ECUAŢII ALGEBRICE NELINIARE

CAPITOLUL IV CALCULUL DIFERENŢIAL PENTRU FUNCŢII REALE DE O VARIABILA REALĂ

3. Serii de puteri. Serii Taylor. Aplicaţii.

2.1. DEFINIŢIE. EXEMPLE

OLIMPIADA DE MATEMATICĂ FAZA LOCALĂ CLASA a V-a

Sala: 2103 Decembrie 2014 CURS 10: ALGEBRĂ

Varianta 1 - rezolvari mate MT1

Clasa a IX-a. 1. Rezolvaţi în R ecuaţiile: (3p) b) x x x Se consideră mulţimile A = { }, (2p) a) Determinaţi elementele mulţimii A

Seminar 3. Serii. Probleme rezolvate. 1 n . 7. Problema 3.2. Să se studieze natura seriei n 1. Soluţie 3.1. Avem inegalitatea. u n = 1 n 7. = v n.

MARCAREA REZISTOARELOR

1. ŞIRURI ŞI SERII DE NUMERE REALE

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Sisteme diferenţiale liniare de ordinul 1

ŞIRURI ŞI SERII DE FUNCŢII

CAPITOLUL II PROBLEME DE OPTIMIZARE IN RETELE DE TRANSPORT SI DISTRIBUTIE

Capitolul 2 ŞIRURI DE NUMERE REALE. 2.1 Proprietăţi generale Moduri de definire a unui şir. (x n ) n 0 : x n =

TEMA 10 TESTE DE CONCORDANŢĂ

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

5. PROBABILITĂŢI Evenimente

CAPITOLUL 4 SPAŢII VECTORIALE EUCLIDIENE/UNITARE Produs scalar. Spaţii euclidiene şi spaţii unitare-definiţie

ŞIRURI DE VARIABILE ALEATOARE. PROBLEME ASIMPTOTICE

Examenul de bacalaureat nańional 2013 Proba E. c) Matematică M_mate-info. log 2 = log x. 6 j. DeterminaŃi lungimea segmentului [ AC ].

Examen AG. Student:... Grupa:... ianuarie 2011

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

riptografie şi Securitate

Curs 1 Şiruri de numere reale

Seria MATEMATICĂ ANALIZĂ MATEMATICĂ Calcul diferenţial

Subiecte Clasa a VII-a

T R A I A N. Numere complexe în formă algebrică z a. Fie z, z a bi, Se numeşte partea reală a numărului complex z :

EXAMENE ŞI CONCURSURI

CONCURSUL NAŢIONAL DE MATEMATICĂ APLICATĂ "ADOLF HAIMOVICI"

Criptosisteme cu cheie publică III

lim = dacă se aplică teorema lui 3. Derivate de ordin superior. Aplicaţii.

2. Metode de calcul pentru optimizarea fără restricţii


REZOLVAREA NUMERICĂ A ECUAŢIILOR ŞI SISTEMELOR DE ECUAŢII DIFERENŢIALE ORDINARE

CAP VII ELEMENTE DE TEORIA PROBABILITĂŢILOR ŞI STATISTICĂ MATEMATICĂ

a. 11 % b. 12 % c. 13 % d. 14 %

PRELEGEREA VI STATISTICĂ MATEMATICĂ

Cursul 7. Spaţii euclidiene. Produs scalar. Procedeul de ortogonalizare Gram-Schmidt. Baze ortonormate

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Polinoame Fibonacci, polinoame ciclotomice

Curs 2 Şiruri de numere reale

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].

Integrala nedefinită (primitive)

Subiecte Clasa a VIII-a

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Aplicatii ale marimilor medii in practica

Transcript:

26 7. Aplicaţie la programarea î umere îtregi De regulă, variabilele uei probleme de programare matematică variază cotiuu sigura codiţie impusă fiid aceea ca valorile lor să fie eegative, ceriţă ustificată de obicei de cotextul practic modelat. O mulţime de situaţii, cele mai multe di domeiul ecoomic, impu utilizarea uor variabile care pot lua umai valori îtregi: dacă, de exemplu, o variabilă este măsurată î uităţi idivizibile (umăr de bucăţi) atuci este clar că î orice soluţie admisibilă şi î particular î soluţia optimă, variabila î cauză u poate lua valori fracţioare. O problemă care utilizează variabile îtregi se va umi problemă de programare î umere îtregi sau problemă de programare discretă (totală sau mixtă după cum toate variabilele trebuie să ia î exclusivitate valori îtregi sau umai o parte di ele). După cum va rezulta şi di exemplele cocrete, utilizarea variabilelor îtregi duce la creşterea flexibilităţii modelării î sesul obţierii uor descrieri mai exacte a situaţiilor practice modelate. Pe de altă parte, codiţia de itegritate impusă variabilelor complică eorm rezolvarea, mai cu seamă di cauza faptului că miloacele teoriei clasice u sut direct aplicabile.astfel, la ora actuală, o problemă de programare liiară uzuală, cu câteva mii de variabile cotiue poate fi rezolvată leer, utilizâd uul sau altul ditre programele comerciale de calculator existete pe piaţă, î timp ce o problemă de optimizare discretă cu mai puţi de 00 variabile poate cauza serioase dificultăţi. Nu este î iteţia oastră ca, î cuprisul acestei lucrări, să dezvoltăm teoria şi metodele specifice programării î umere îtregi. Î secţiuile următoare e propuem să ilustrăm utilitatea acestui tip de programare î modelarea proceselor ecoomice şi să idicăm uele posibilităţi de rezolvare ale programelor discrete folosid postoptimizarea. 7. O problemă de optimizare discretă: problema croirii Problema debitării sau croirii uor repere di suporţi de dimesiue mai mare este frecvet îtâlită î cele mai diverse domeii cum ar fi idustria mobilei, a sticlei, a hârtiei, a cofecţiilor, idustria metalurgică sau cea

7. Aplicaţie la programarea î umere îtregi 27 costructoare de maşii. Importaţa acestei probleme rezidă î depedeţa emilocită a reducerii cosumului de materiale de utilizarea uor scheme eficiete de croire. Formele cocrete sub care ea se prezită diferă foarte mult de la u cotext la altul dar chestiuea care se pue de fiecare dată este aceeaşi: cum trebuie să se desfăşoare procesul efectiv de croire astfel îcât producerea uor catităţi date de repere să se facă cu u cosum cât mai mic de materiale. De obicei, clasificarea problemelor de croire se face după umărul dimesiuilor relevate ale reperelor croite: avem probleme uidimesioale, bidimesioale sau tridimesioale. Î croirea uidimesioală reperele se difereţiază pritr-o sigură dimesiue chiar dacă ele au mai multe. Cazul tipic este cel al debitării uor bare de diferite lugimi di bare mai mari. Iată u alt exemplu: o firmă produce u carto special î rulouri avîd o aumită lăţime. Clieţii solicită îsă rulouri cu aceeaşi lugime ca şi rulourile stadard dar de lăţimi mai mici. Î acest caz, reperele ca şi suporţii sut bidimesioali dar relevată este o sigură dimesiue - lăţimea (vezi exemplul 7..). Este iteresat de meţioat cu acest prile faptul că există cotexte care u implică croirea uor obiecte mai mici di suporţi similari mai mari î sesul uzual al cuvâtului croire,dar care sut reductibile la acest ge de probleme. U exemplu îl costituie umplerea uor spaţii publicitare la televiziue sau radio cu diferite reclame. Aici suporţii sut spaţiile publicitare iar reperele sut reclamele, toate difereţiate pritr-o sigură dimesiue - timpul. După cum vom vedea problemele de croire uidimesioale sut relativ simplu de formalizat (ca de altfel şi celelalte cu mai multe dimesiui). Pricipala dificultate rezidă î umărul de posibilităţi de tăiere a uui suport care, î cele mai multe situaţii cocrete, poate fi uluitor de mare. De exemplu, petru o problemă cu 40 de repere ale căror lugimi sut cuprise ître 20 şi 80 iches şi care se taie di suporţi cu lugimea de 200 iches, umărul reţetelor de croire posibile este situat ître 0 şi 00 milioae! Croirea bidimesioală este cu mult mai complicată. Chiar şi î cazul cel mai simplu î care reperele şi suporţii sut dreptughiulari dificultăţile sut eorme. Ele sut cauzate î primul râd de umărul mare de posibilităţi de aşezare a reperelor pe suport; deşi fiit acest umăr este practic de ecupris.

28 Dacă î cazul uidimesioal acestea pot fi costruite algoritmic, existâd siguraţa - cel puţi teoretică - a geerării tuturora, î cazul bidimesioal u există la ora actuală algoritmi care să garateze producerea oricărei aşezări posibile. Nu mai puţi importate sut restricţiile privid aşezarea efectivă a reperelor pe suport, aşezare care trebuie să ţiă seama de particularităţile istrumetului de tăiere ca şi de alte ceriţe, uele imposibil de formalizat. De exemplu, î multe situaţii practice se poate îtâmpla ca o reţetă de croire, acceptabilă ditr-u aumit puct de vedere - de pildă al acoperirii cât mai bue a suportului - să u fie acceptabilă di alt puct de vedere - de pildă al productivităţii ei î procesul efectiv de debitare! Există şi alte restricţii impuse de codiţiile cocrete, restricţii care diferă de la u caz la altul. S-a coturat dea opiia că fiecare problemă de croire reală trebuie tratată de sie stătător, speculâdu-se pe cât posibil toate particularităţile ei. Î ceeace priveşte croirea tridimesioală, termeul de croire este impropriu, el fiid folosit mai degrabă petru a subliia asemăarea cu problemele aterioare.petru a u itra î amăute vom da următorul exemplu: mai multe cotaiere paralelipipedice trebuiesc îcărcate î vagoae idetice. Cum trebuie făcută îcărcarea acestor cotaiere astfel îcât umărul de vagoae utilizate să fie miim? Î mod curet, problemele de acest tip poartă umele de probleme de împachetare. Î cotiuare e vom ocupa de modelarea problemei de croire uidimesioală. U umăr de repere cu lugimile l > l 2 >... > l m trebuiesc executate î catităţile b, b 2,..., b m. Aceste repere se obţi pri tăiere di suporţi idetici cu lugimea L. Î ce mod trebuie făcută croirea reperelor astfel îcât catităţile plaificate să fie realizaţe cu u cosum miim de suporţi? O modalitate de tăiere a uui suport î repere se va umi reţetă de croire. Evidet, o reţetă este complet determiată de u vector cu m compoete îtregi, eegative a = ( a, a2, K, a m ) î care a i reprezită umărul reperelor de lugime l i rezultate pri tăiere. Deoarece suma lugimilor reperelor tăiate ditr-u suport u depăşeşte lugimea acestuia, urmează că mulţimea reţetelor de croire se idetifică cu mulţimea soluţiilor îtregi,eegative şi eule ale iecuaţiei: la + la + K + l a L (7..) 2 2 Să umim rest al reţetei a = ( a, a2, K, a m ) difereţa: m m

7. Aplicaţie la programarea î umere îtregi 29 ra ( ) = L la la la 2 2 K Di puct de vedere practic, importate sut reţetele di al căror rest u se mai pot croi alte repere; aceste reţete se vor umi maximale. Este clar că reţeta a va fi maximală umai dacă : r(a) < l m lugimea celui mai mic reper. Î cotiuare vom avea î vedere umai reţetele maximale. Fie A, A 2,..., A lista lor, ordoată îtr-u fel oarecare, de exemplu lexicografic, ude: A = ( a, a,, a ) 2 K m T m m (petru evoi ulterioare reţetele vor fi scrise î coloaă ). Notâd cu x umărul de aplicări ale reţetei A (sau, cum se mai spue, multiplicitatea reţetei A ) problema de croire uidimesioală se modelează astfel: (C) Să se determie x, x 2,..., x îtregi eegativi, astfel îcât: Ax b ax b i=,..., m i = = i (7..2) şi care miimizează fucţia obiectiv: f x = = (7..3) Obsevaţie: Deşi î euţ se specifică realizarea reperelor exact î catităţile b, b 2,..., b m u putem impue î (7..2) satisfacerea restricţiilor cu egalitate deoarece sistemul Ax = b = s-ar putea să u aibe soluţii îtregi eegative (acest lucru ar avea loc dacă am cosidera toate reţetele, maximale şi emaximale!). Iată de ce, petru a asigura compatibilitatea programului (C), sutem evoiţi să admitem că aumite repere pot fi croite î exces. Î modelarea problemei de croire am putea cosidera şi u alt criteriu de performaţă şi aume miimizarea restului iutilizabil reprezetat pri expresia:

30 f ' = r( A 2 ) x + r( A ) x + + r( A ) x 2 K (7..4) După cum vom vedea î exemplul 7.. cele două fucţii obiectiv (7..3) şi (7..4) pot coduce la soluţii optime diferite. Î aplicaţiile practice, pe lâgă restul iutilizabil trebuie avut î vedere şi aşa umitul rest utilizabil reprezetat de suma lugimilor reperelor croite peste catităţile plaificate (acesta se mai umeşte şi suprapla). Exemplul 7.. O sucursală a uei firme producătoare de hîrtie produce u carto izolator î rulouri avîd lăţimea de 70 iches (u ich = 2,54 cm). Toate rulourile au aceeaşi lugime. Clieţii firmei solicită rulouri avâd îsă o lăţime mai mică, dar de aceeaşi lugime ca şi ruloul stadard. Cererea zilică este de 00 rulouri de 22 iches, 25 rulouri de 20 iches şi 80 rulouri de 2 iches lăţime. Rulourile de lăţime mai mică se obţi pri tăiere di rulourile stadard. Firma doreşte să acopere aceste cereri de aşa maieră îcât pierderile datorate tăierii să fie miime. Pri acest exemplu practic u iteţioăm să ilustrăm aspectele teoretice şi de calcul di domeiul croirii (foarte importate, dar depăşid obiectivele pe care i le-am propus la îceputul paragrafului...). De altfel, problemele de optimizare liiară ce vor apare pe parcurs sut rezolvate cu autorul uor pachete de programe utilitare. Dorim să realizăm o aaliză ecoomică a diferitelor variate rezultate di studiu î vederea formulării uei decizii fiale cât mai corecte. Petru îceput vom lista toate reţetele maximale de croire; e putem permite aceasta îtrucît umărul lor este, î cazul de faţă, mic. Reţeta A A 2 A 3 A 4 A 5 A 6 A 7 A 8 l = 22 3 2 2 0 0 0 0 l 2 = 20 0 0 2 0 3 2 0 l 3 = 2 0 0 2 0 2 4 0 2 4 5 Rest iutilizabil 4 6 2 8 4 0 0 6 2 0 Tabelul 7.. A 9 A 0

7. Aplicaţie la programarea î umere îtregi 3 Acoperirea cererii zilice coduce la restricţiile: 3x + 2x2 + 2x3 + x4 + x5 + x6 00 x2 + 2x4 + x5 + 3x7 + 2x8 + x9 25 2x3 + 2x5 + 4x6 + 2x8 + 4x9 + 5x0 80 x 0 =,..., 0 itregi (7..5) Dacă se urmăreşte miimizarea restului total iutilizabil, la sistemul (7..5) ataşăm fucţia obiectiv: (mi) f ' = 4x + 6x + 2x + 8x + 4x + 0x + 6x + 2x + 0x 2 3 4 5 7 8 9 0 Î vederea rezolvării problemei relaxate, vom itroduce variabilele de abatere x, x 2, x 3 care vor idica umărul de rulouri de 22, 20, respectiv de 2 iches tăiate peste catităţile cerute. 4 6 2 8 4 0 0 6 2 0 0 0 0 CB B VVB A A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 0 A A 2 A 3 0 A 3 820 2 2 6 2 6 0 2 6 0-5 -4-4 2 A 9 25 0 0 2 0 3 2 0 0-0 0 A 6 00 3 2 2 0 0 0 0-0 0 f 250-4 -4-2 -4-2 * -4-2 * * 0 - * Tabelul 7..2 Di tabelul simplex 7..2 rezultă următoarea soluţie optimă: 0 0 0 0 x = 00, x = 25, x = 820, x = 0 =, K, 3 6, 9, 3 (mi) f ' = 250 6 9 3 Ea prevede tăierea a 225 rulouri stadard:00 de rulouri după reţeta A 6 şi 25, după reţeta A 9. Resturile iutilizabile îsumează 250 iches. Rulourile de 22 şi 20 iches se produc î catităţile plaificate, î schimb apare u surplus de 820 rulouri de 2 iches, cu mult mai mare decât catitatea cerută. Restul total, utilizabil şi iutilizabil măsoară 820 2 + 250 =0090 iches şi reprezită

32 0090 = 64, % di lăţimea tuturor rulourilor tăiate!! Este clar că această 225 70 soluţie u poate fi acceptată. Dacă se urmăreşte miimizarea umărului de rulouri stadard tăiate, fucţia obiectiv f trebuie schimbată î: f = x + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x0 Pri reoptimizare se obţie tabelul 7..3. Î raport cu oul criteriu problema relaxată are o ifiitate de soluţii optime: u mai puţi de şase costuri reduse sut ule! - vezi observaţia 5) di secţiuea 4.2 şi exemplul 6.2.. CB B VVB A A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 0 A A 2 A 3 A 7 55/3 -/2 0 -/2 /2 0 -/2 /2 0-5/2 /6 -/3 /2 A 9 20 0 0 /2 0 /2 0 /2 5/4 0 0 -/4 A 2 50 3/2 /2 / 2 /2 0 0 0 0 -/2 0 0 f 265/3 0 * 0 0 0 0 * 0 * -/6 -/6 -/3 -/6 Tabelul 7..3 Soluţia di tabelul 7..3 u este acceptabilă deoarece valoarea variabilei x 7 este fracţioară. Aplicâd u algoritm adecvat de rezolvare a problemelor de optimizare liiară discretă au fost determiate soluţiile optime îtregi di tabelul 7..4. Oricare di cele şase soluţii listate, deşi prevăd o dublare a restului iutilizabil, sut mult mai realiste deoarece: - se taie u umăr mult mai mic de rulouri stadard: 89 faţă de 225! - supraplaul este esemificativ ca valoare; - procetul pierderilor rezultate di tăiere este de umai : 570 00= 9, 5% 89 70 Retete utilizate Nr. rulouri stadard Suprapla Rest utilizabil Rest iutilizabil Rest

7. Aplicaţie la programarea î umere îtregi 33 SOLUTIA multiplicităţi utilizate 22 20 2 (lugime) (lugime) total I A 2 A 7 A 9 5 8 20 89 2 - - 44 526 570 II A 2 A 6 A 7 4 20 28 89 2 - - 44 526 570 III A 2 A 5 A 7 3 40 8 89 2 - - 44 526 570 IV A 2 A 7 A 9 50 8 2 89 - - 4 48 522 570 V A A 6 A 7 27 20 42 89-42 528 570 VI A A 4 A 6 6 63 20 89-42 528 570 Tabelul 7..4 7.2 Probleme cu variabile bivalete A) Alegerea proiectelor de ivestiţii. O firmă este iteresată î mai multe proiecte de ivestiţii pe care ar putea să le realizeze îtr-o perioadă de câţiva ai,dar di cauza bugetului limitat, va trebui să se limiteze la o parte di ele. Proiectul aduce firmei - î caz de fializare - u profit estimat la c dolari, =,..., şi ecesită ivestiţii auale î valoare de a i dolari, i =,...,m. Capitalul dispoibil petru aul i este b i. Problema costă î alegerea acelor proiecte care să aducă firmei u profit total maxim cu codiţia edepăşirii capitalului dispoibil aual. Itroducem variabilele bivalete: x = proiectul este acceptat 0 proiectul u este acceptat Commet: Î ipotezele de liiaritate uzuale obţiem problema de programare bivaletă: cu restricţiile: (max) f = = c x

34 ai x bi i =,..., m = x { } 0, =,..., Utilizarea variabilelor bivalete e permite să modelăm o serie de situaţii speciale.dacă, de exemplu, î problema de mai sus di primele trei proiecte cel mult uul (respectiv exact uul) trebuie realizat, itroducem restricţia: x + x2 + x3 (respectiv x + x2 + x3 = ) Este posibil ca u proiect să fie acceptat umai dacă este realizat u altul.petru a arăta, de exemplu, că proiectul 7 u poate fi acceptat dacă proiectul 9 u se realizează, itroducem restricţia: x x. 7 9 D) Problema moezilor. Această problemă îşi are origiea î studiul uei situaţii î apareţă baale, care are loc î orice magazi. S-a observat că umai î puţie cazuri clieţii plătesc la casă o sumă egală cu cotravaloarea mărfurilor cumpărate; de regulă, ei dau o sumă acoperitoare î bacote şi moezi de valoare mare şi aşteaptă restul. Petru casier, operaţia de dare a restului u este aşa de simplă cum s-ar crede; el trebuie s-o execute rapid şi corect, mai cu seamă atuci câd la casă sut mai mulţi clieţi care îşi aşteaptă râdul să plătească. După cum este ştiut, î foarte multe magazie s-a trecut la automatizarea îregistrării mărfurilor cumpărate de clieţi şi a evaluării resturilor de plată, modul î care aceste resturi sut îapoiate clieţilor rămââd î sarcia casierilor. Îsă, u rest format di multe moezi, de cele mai diverse tipuri valorice (î special mici...) u este de atură să satisfacă pe cliet care ar putea să plece emulţumit. Pe de altă parte, este greu să dai u rest exact utilizâd umai moezi de valoare mare. Chestiuea se complică dacă se are î vedere şi faptul că diferitele tipuri valorice de moezi, dispoibile petru plata restului se pot afla la u momet sau altul î catităţi eîdestulătoare.se aşte firesc îtrebarea: cum se poate da u rest de plată astfel îcât: - umărul tipurilor valorice de moezi utilizate la plata restului să u depăşească o limită dată; -umărul total al moezilor ecesare plăţii să fie miim;

7. Aplicaţie la programarea î umere îtregi 35 Rezolvarea acestei chestiui a permis automatizarea operaţiei - cel puţi î marile magazie -cotribuid astfel la creşterea gradului de servire al clieţilor. Î cotiuare vom arăta cum se formalizează problema descrisă; rezultatul va fi u ou program liiar î umere îtregi. Vom folosi următoarele otaţii: plată; S = restul de plată; = umărul total al tipurilor valorice de moezi dispoibile petru p = umărul maxim de tipuri valorice de moezi ce pot fi utilizate petru plata sumei S; a = valoarea moezii de tip ; m = umărul moezilor de tip dispoibile î casă; Petru fiecare =,..., itroducem variabilele: x = umărul moezilor de tip utilizate la plata sumei S; y = daca tipul de moeda este utilizat efectiv la plata sumei S; 0 i caz cotrar; Obţiem programul: a x = S ; 0 x m y ; y p = = x (mi) f {, } 0 itregi y 0 = x = 7.3 O problemă de programare mixtă: Program de producţie cu costuri de pregătire

36 Reluăm problema de programare liiară: ai x = bi i =,..., m = x 0 =,..., (mi) f = cx = î care x, x 2,..., x reprezită ivelele uor activităţi productive iar c, c 2,..., c costuri uitare acestor activităţi. Ipoteza uzuală de liiaritate presupue proporţioalitatea directă ître costul uei activităţi şi ivelul la care se operează activitatea respectivă. Există situaţii î care demararea uei activităţi ecesită u cost de pregătire, idepedet de ivelul la care se va opera ea. Costul activităţii va avea deci forma: c 0 daca x = 0 ( x) = q + cx daca x > 0 Petru a îcorpora î modelul matematic aterior aceste oi elemete itroducem variabilele bivalete: y daca activitatea se va opera la u ivel x > 0 = 0 i caz cotrar Rezultă programul: ai x = bi i =,..., m = x my =,..., x 0, y { 0, } (mi) f = q y + cx = =

7. Aplicaţie la programarea î umere îtregi 37 î care m reprezită o margie superioară petru ivelul x al activităţii. Se obţie astfel o problemă de optimizare mixtă î care o parte di variabile cotiuă să ia orice valoare eegativă î timp ce altele u pot lua decât valori îtregi. 7.4 Pricipiul Brach & Boud de rezolvare a problemelor de programare î umere îtregi Să cosiderăm u program liiar î umere îtregi cu m restricţii şi variabile î formă stadard: Ax = b ( P) x 0, x itreg (max) f = cx Vom presupue că toate compoetele masivelor A, b, c sut umere îtregi. Fie A mulţimea soluţiilor admisibile îtregi ale programului (P). Alături de (P) vom cosidera şi programul relaxat (adică fără codiţia de itegritate impusă variabilelor): Ax = b ( PL) x 0 ( mi) f = cx T despre care vom presupue că are optim fiit. Fie x = ( x, x2, K, x ) soluţia sa optimă. Dacă x* are toate compoetele îtregi atuci x* este şi o soluţie optimă a programului (P). Altmiteri, soluţia optimă îtreagă x 0 se va afla udeva î iteriorul mulţimii soluţiilor admisibile ale relaxatei (PL) şi petru a o pue î evideţă pri algoritmul simplex vom sparge această mulţime î bucăţi di ce î ce mai mici pâă câd x 0 devie vârf petru uul di cioburi. Desigur, fiecare bucată va fi mulţimea soluţiilor admisibile a uui aumit program liiar. Petru a fi mai precişi, să presupuem că î x* compoeta fracţioară. Este clar atuci că soluţia optimă îtreagă următoarele restricţii mutual exclusive: x 0 x este va satisface ua di

38 x x Cosiderăm programele liiare: x x sau + (7.4.) ( PL) ( PL ) x x ( PL) ( PL2 ) x x + Spuem că am ramificat problema (PL) î raport cu variabila.dacă A şi A 2 sut mulţimile de soluţii admisibile îtregi ale celor două probleme este clar că: A 2 A = şi A= A A 2 x Să cosiderăm acum soluţia optimă x* a programului (PL ), î caz că el este compatibil şi să presupuem că a doua compoetă a sa x 2 este fracţioară (prima compoetă este sigur îtreagă: problema (PL) î raport cu variabila x 2 obţiâd problemele: x = x!).ramificăm ca mai sus ( PL ) ( PL) x2 x2 ( PL2 ) x ( PL ) x + 2 2 Dacă A, A 2 sut mulţimile de soluţii admisibile îtregi ale celor două probleme rezultate pri ramificare atuci: A A = şi A= A A A 2 2 2 Î pricipiu, ramificarea poate cotiua de la oricare di problemele PL, PL 2 sau PL 2, codiţia de ramificare fiid aceea ca programul î cauză să fie compatibil iar soluţia sa optimă să fie fracţioară. De otat că ramificarea uei probleme se poate face î mai multe moduri î fucţie de alegerea variabilei a cărei valoare este fracţioară. Iată două di ele mai des folosite: - ramificarea se face după prima variabilă cu valoare fracţioară î soluţia optimă curetă.

7. Aplicaţie la programarea î umere îtregi 39 - ramificarea se face după variabila care, î soluţia optimă curetă, are cea mai mare parte fracţioară. Am putea vizualiza acest proces de ramificare pritr-u arbore T ale cărui oduri sut diferitele probleme rezultate, ca î figura 7.4.. Nodurile termiale ale acestui arbore sut fie probleme icompatibile, fie probleme cu soluţii optime îtregi. Fiecare od are u uic "predecesor" şi - dacă u este od termial - doi "succesori". Chestiuea fudametală este cum coducem acest proces de ramificare petru a găsi soluţia optimă x 0. Petru aceasta itroducem o variabilă z CMB şi o "locaţie" x CMB ; î orice momet al derulării procesului de ramificare x CMB va reţie Cea Mai Buă soluţie admisibilă îtreagă găsită pâă î acel momet iar z CMB va fi valoarea obiectivului problemei (P) î x CMB. PL x x x x + PL PL 2 x 2 x 2 x 2 x 2 + PL PL 2 Figura 7.4. La start z CMB = - şi x CMB = (locaţia vidă). Fiecare od PL α - ude α este o succesiue de şi 2! - va avea ataşată o margie superioară z α reprezetată pri rotuirea îtreagă iferioară a optimului problemei PL α. Este clar că dacă x 0 este o soluţie admisibilă petru PL α atuci: z CMB f( x 0 ) z α

40 Să otăm că î procesul efectiv de ramificare arborele T u există de la bu îceput! La start el se reduce la rădăcia (PL) şi î cotiuare primeşte oi oduri şi muchii de legătură î fucţie de problemele rezultate pri ramificare şi efectiv rezolvate. Să presupuem că sutem î odul (PL α ) al arborelui T. Rezolvăm problema (PL α ). Exceptâd problema iiţială (PL), celelalte vor fi rezolvate pri postoptimizare, adăugâd la problema predecesor ua di restricţiile (7.4.). Dacă (PL α ) este compatibilă fie x α soluţia sa optimă şi z α margiea superioară defiită mai sus. Dacă (PL α ) este icompatibilă vom pue z α = -. Sut posibile mai multe situaţii: ) z α z CMB.Î acest caz este iutil să cotiuăm procesul de ramificare di odul (PL α ) deoarece orice soluţie admisibilă îtreagă a problemei (PL α ) u este mai buă decât x CMB. Nodul (PL α ) se declară mort şi e îtoarcem î uicul predecesor al acestuia di arborele T. 2) z α > z CMB. Două cazuri se pot îtâmpla: 2.) Soluţia optimă x α a problemei (PL α ) este îtreagă.actualizăm: x CMB = x α, z CMB = z α după care reveim î uicul predecesor al odului (PL α ) di arborele T. 2.2) Soluţia optimă x α are compoete fracţioare. Putem fi îtrua di următoarele situaţii: 2.2.) Problema (PL α ) este cercetată petru prima oară. Î α acest caz alegem o variabilă, fie ea x, a cărei valoare optimă x este α fracţioară. Adăugăm la (PLα) restricţia x x obţiâd problema (PL α) şi reoptimizăm. Arborele T primeşte u ou od (PL α ) şi o muchie de legătură care ueşte (PL α ) cu (PL α ). Spuem că e-am deplasat di (PL α ) pe ramura di stâga. 2.2.2) Problema (PL α ) a fost rezolvată îtr-o fază aterioară şi ramificată dea după o aumită variabilă, să zicem x.dacă umai problema (PL α ) a fost rezolvată atuci se trece la rezolvarea problemei (PL α2 ), obţiută

7. Aplicaţie la programarea î umere îtregi 4 α di (PL α ) pri adăugarea restricţiei x x +. Arborele T primeşte u ou od (PLα2) şi o muchie de legătură ître (PL α ) şi (PL α2 ). Spuem că am îaitat di odul (PL α ) pe ramura di dreapta.dacă ambele probleme (PL α ) şi (PL α2 ) rezultate di ramificarea lui (PL α ) sut dea rezolvate declarăm odul (PL α ) mort şi e îtoarcem î uicul său predecesor di arborele T. Este clar acum că procedura se îcheie î mometul î care rădăcia (PL) a arborelui T este declarată od mort. Să mai observăm că de fiecare dată câd se îaitează î T ditr-u aumit od se merge mai îtâi pe ramura di stâga şi apoi pe cea di dreapta. Dacă mulţimea soluţiilor admisibile ale problemei relaxate (PL) este mărgiită (fapt care poate fi asigurat cel puţi î aplicaţiile practice) atuci algoritmul este coverget î sesul că îtr-u umăr fiit de paşi - îaitări şi retrageri î arborele T - se obţie fie soluţia optimă îtreagă a problemei origiale fie cocluzia că ea este icompatibilă, adică u are soluţii admisibile îtregi. Pricipalul dezavata al algoritmului costă î faptul că volumul de calcule creşte expoeţial o dată cu dimesiuile problemei; ca urmare, el u poate fi aplicat decât î cazul uor probleme de talie mică. Petru problemele practice, caracterizate î geeral pri dimesiuile lor impresioate, se utilizează proceduri euristice care, fără a determia soluţia optimă, furizează soluţii acceptabile cu u efort de calcul rezoabil. Algoritmul descris este o specializare a uei metode mai geerale deumită Brach ad Boud (ramifică şi mărgieşte) şi folosită la rezolvarea problemelor de optimizare combiatorială. Specific problemelor combiatoriale este umărul fiit de soluţii admisibile, relativ uşor de costruit.î ciuda acestui fapt, ele fac parte di categoria problemelor grele deoarece, de regulă, umărul soluţiilor admisibile este imes, practic impredictibil, chiar şi î cazul uor probleme de dimesiui modeste.

42 Î pricipiu, metoda Brach & Boud ramifică, adică partiţioează mulţimea fiită a soluţiilor admisibile ale uei probleme combiatoriale î părţi mai mici pe care mărgieşte, aceasta îsemâd optimizarea fucţiei obiectiv pe fiecare di părţile rezultate. Uele di aceste părţi sut ramificate şi mărgiite î cotiuare ; u sut ramificate acele părţi care î mod sigur u coţi soluţia optimă a problemei! Ideea metodei este deci de a găsi soluţia optimă fără a ispecta toate soluţiile admisibile. Exemplul 7.4. Vom aplica procedura descrisă următorului program liiar î umere îtregi: ( P) x + 2x + x 30 2 3 x + x + 2x 00 2 3 2x + x + 3x 40 2 3 6x + 9x 92x 0 2 3 x 0, = 2,, 3itregi (max) f = 3x + 4x2 + 2x3 Ne amitim că relaxata acestui program a fost studiată î exemplul 6.5.2 ude se puea problema maximizării profitului firmei X cu codiţia ca producţia buului A 3 să reprezite cel puţi 8% di valoarea îtregii producţii. Soluţia optimă găsită acolo u era acceptată deoarece avea compoete fracţioare. Ne propuem acum să determiăm combiaţia optimă cu compoete îtregi utilizâd algoritmul descris mai sus cu precizarea că ramificarea se va face după variabila cu cea mai mare parte fracţioară î soluţia curetă. Iiţializare: Rezolvăm programul relaxat (PL) obţiut di (P) pri omiterea codiţiei de itegritate impusă varibilelor x, x 2, x 3.(Operaţia a fost dea făcută î exemplul 6.5.2, pri postoptimizare). Rezultă soluţia optimă: x = 3,889 x 2 = 42,222 x 3 = 6,667 (max)f = 298,889 Iiţializăm arborele T pri rădăcia sa (PL) căreia îi ataşăm margiea superioară z = 298 = 298,889 (ici o soluţie admisibilă îtreagă u poate oferi obiectivului f o valoare mai mare!). Puem z CMB = - şi x CMB =. Notă: Î forma sa fială, arborele T este vizualizat î fig. 7.4.2. Cititorul este ivitat să urmărească etapele ce vor fi parcurse pe această figură

7. Aplicaţie la programarea î umere îtregi 43 şi mai mult, este îdemat să recostituie î diamică costrucţia arborelui, urmărid idicaţiile date î cuprisul iteraţiilor. Iteraţia. Avem z > z CMB. Ramificăm (PL) după variabila x a cărei valoare î soluţia optimă curetă are cea mai mare parte fracţioară. Rezolvăm problema (PL ), rezultată di (PL) pri adăugarea restricţiei x 38. Se obţie soluţia, deasemei fracţioară: x = 38 x 2 = 42,400 x 3 = 7,200 (max)f = 298,000 Arborele T primeşte odul (PL ) şi o muchie de legătură cu predecesorul (PL). Ataşăm odului (PL ) margiea superioară z = 298. Iteraţia 2. Deoarece z > z CMB, ramificăm (PL ) după variabila x 2. Adăugăm la (PL ) restricţia x 2 42 şi rezolvăm pri postoptimizare problema (PL ) astfel costruită. Se găseşte soluţia: x = 38 x 2 = 42 x 3 = 7,333 (max)f = 296,667 Itroducem î T odul (PL ), muchia de legătură cu predecesorul (PL ) şi margiea superioară z = 296. Iteraţia 3. Di ou z > z CMB ; ramificăm (PL ) după x 3, sigura variabilă cu valoare fracţioară î soluţia optimă curetă. Adăugăm la (PL ) restricţia x 3 7 şi rezolvăm problema extisă (PL ). Obţiem prima soluţie admisibilă îtreagă a problemei origiale (P): Actualizăm: x = 38 x 2 = 42 x 3 = 7 (max)f = 296 x CMB = (38, 42, 7) z CMB = f(x CMB ) = 296 Nodul (PL ) se declară mort şi e îtoarcem î predecesorul (PL ). Vom adăuga acum la (PL ) restricţia x 3 8. Noua problemă (PL 2 ) furizează o ouă soluţie admisibilă îtreagă a problemei origiale (P): x = 37 x 2 = 42 x 3 = 8 (max)f = 295

44 dar mai slabă decât cea mai buă soluţie îtreagă găsită pîă acum şi depozitată î x CMB. Abadoăm odul (PL 2 ) şi e îtoarcem î predecesorul (PL ). Deoarece ambele probleme rezultate di ramificarea lui (PL ), după variabila x 3, au fost rezolvate e îtoarcem î odul (PL ) - predecesorul lui (PL ). Adăugăm la (PL ) restricţia x 2 43 şi rezolvăm problema (PL 2 ) astfel obţiută. Se găseşte soluţia fracţioară: x = 37,357 x 2 = 43 x 3 = 6,643 (max)f = 297,357 Completăm arborele T cu odul (PL 2 ) şi cu muchia de legătură corespuzătoare. Ataşăm odului proaspăt iclus margiea superioară z 2 = 297. Iteraţia 4. Avem z 2 = 297 > 296 = z CMB ; s-ar putea ca (PL 2 ) să aibe o soluţie admisibilă îtreagă mai buă decît x CMB. Ramificăm (PL 2 ) după variabila x 3. Mai îtâi rezolvăm problema (PL 2 ) dedusă di (PL 2 ) pri adăugarea restricţiei x 3 6. Rezultă soluţia fracţioară: x = 27,500 x 2 = 43 x 3 = 6 (max)f = 266,500 Itroducem î T odul (PL 2 ) pe care-l legăm de predecesorul său (PL 2 ). Deoarece z 2 = 266 < 296 = z CMB orice soluţie admisibilă îtreagă a problemei (PL 2 ) este mai slabă decît x CMB. Ca urmare, abadoăm odul (PL 2 ) şi e îtoarcem î odul (PL 2 ). Efectuăm o îaitare spre dreapta î arborele T rezolvâd problema (PL 22 ) obţiută di (PL 2 ) pri extidere cu restricţia x 3 7. Se găseşte o soluţie admisibilă îtreagă mai buă decât actuala x CMB : Drept care, facem actualizarea: x = 37 x 2 = 43 x 3 = 7 (max)f = 297 x CMB = (37, 43, 7) z CMB = f(x CMB ) = 297 şi e îtoarcem î odul (PL 2 ), de acolo î odul (PL ), augâd î fial î rădăcia (PL) a arborelui T. Costruim problema (PL 2 ), adăugâd la (PL) restricţia x 39 (vezi iteraţia ). Pri reoptimizare se obţie soluţia fracţioară:

7. Aplicaţie la programarea î umere îtregi 45 x = 39 x 2 = 42,034 x 3 = 6,655 (max)f = 298,445 Arborele T primeşte odul (PL 2 ) cu margiea superioară z 2 =298. Iteraţia 5. Îtrucât z 2 = 298 > 297 = z CMB ramificăm (PL 2 ) după variabila x 3. Problema (PL 2 ), obţiută di (PL 2 ) pri completare cu restricţia x 3 6 are soluţia fracţioară: x = 45,500 x 2 = 3 x 3 = 6 (max)f = 272,500 Abadoăm odul corespuzător (PL 2 ) deoarece z 2 = 272 < 297 = z CMB. Adăugâd la (PL 2 ) restricţia x 3 7 şi rezolvâd problema (PL 22 ) astfel costruită obţiem o soluţie admisibilă îtreagă mai slabă decît x CMB : x = 39 x 2 = 4 x 3 = 7 (max)f = 295 Îtorcâdu-e î rădăcia (PL), costatăm că ici o ramificare u mai este posibilă.î cocluzie soluţia optimă îtreagă a problemei origiale (P) este actuala x CMB, adică: 0 x = 37 x 0 2 = 43 x 0 3 = 7 (max) f = z CMB = 297 PL f=298,889 x =38,889 x 2 = 42,22 x 3 = 6,667 x 38 x 39 PL f =298,000 x = 38,000 x 2 = 42,400 x 3 = 7,200 PL 2 f =298,445 x = 39,000 x 2 = 42,034 x 3 = 6,655

46