Sunteți pe pagina 1din 15

2. PROGRAMARE LINIAR N NUMERE NTREGI 2.

1 Specificul programrii n numere ntregi Una dintre proprietile eseniale pentru fundamentarea metodelor de determinare a soluiei optime a unei probleme de programare liniar o constituie posibilitatea variabilelor de decizie de a varia continuu: ele puteau lua orice alt valoare intermediar dintre dou valori permise. Nu puine sunt situaiile practice, modelate cu ajutorul programrii liniare n care unele variabile de decizie nu au sens dect dac acestea au valori ntregi. De exemplu, dac variabila care exprim o anumit mrime asociat unei activiti este msurat n uniti indivizibile este clar c valorile permise ale variabilei care indic valoarea variabilei respective trebuie s fie numr ntreg. La fel, repartizarea personalului muncitor, al utilajelor sau al mijloacelor de transport pe diverse activiti trebuie exprimat tot prin numere ntregi. n continuare se vor considera urmtoarele definiii: variabil continu - variabil care, o dat cu dou valori permise poate lua orice alt valoare intermediar; variabil ntreag - variabil care nu poate lua dect valori numere ntregi; variabil bivalent (boolean) - variabil ntreag care nu poate lua dect valorile 0 sau 1; problem de programare n numere ntregi (pe scurt program ntreg) - problem de programare liniar care conine una sau mai multe variabile ntregi. Problema se zice total dac toate variabilele sale sunt ntregi i mixt dac utilizeaz simultan i variabile continue i variabile ntregi; problem de programare bivalent (sau program bivalent) total sau mixt - problem care utilizeaz variabile bivalente. Utilizarea variabilelor ntregi poate aduce un plus de flexibilitate n modelarea unor situaii practice. Acest plus flexibilitate are un cost destul de ridicat n ceea ce privete efortul depus n rezolvarea problemei respective deoarece programele ntregi sunt mult mai greu de rezolvat dect programele liniare uzuale (adic n variabile continue). 25

Aplicaie: S se analizeze oportunitatea construirii a dou centrale i a unei staii electrice n dou locaii A i B. Nu se poate construi o staie electric ntr-o anumit locaie dect dac s-a construit i o central n locaia respectiv. Deoarece exist i alte soluii de racordare nu este obligatorie construirea unei staii n cazul construirii unei centrale. n tabelul 2.1. sunt indicate: beneficiul anual obinut n urma realizrii fiecrei investiii, costurile de realizare i capitalul disponibil.
Tabelul 2.1.

Nr. crt. 1 2 3 4

Varianta Construire central n A Construire central n B Construire staie n A Construire staie n B

Variabila Beneficiu de decizie [mil] x1 90 x2 60 x3 30 x4 40 Capital disponibil

Costuri [mil] 500 300 300 400 1.000

Variabilelor x1 x4 li se impune s fie variabile bivalente: valoarea 1 a variabilei xj corespunde unei decizii de realizare a investiiei respective iar o valoare nul corespunde unei decizii de respingere a acesteia. Pe lng condiia ca variabilele s fie bivalente se mai formuleaz urmtoarele restricii: -condiia de a nu construi dect cel mult o central: x3 + x4 1 -condiia de a nu construi o staie ntr-o locaie n care nu s-a construit o central: x3 x1, x4 x2 Ca funcie obiectiv se impune maximizarea beneficiului anual, rezultnd urmtorul model matematic:

max F ( x1 , x 2 , x3 , x 4 ) = 90 x1 + 60 x 2 + 30 x3 + 40 x 4 500 x1 + 300 x 2 + 300 x3 + 400 x 4 1000 x3 + x 4 1 x + x 0 1 3 x 2 + x 4 0 x j {0,1} j = 1,4 Soluia acestei probleme de programare liniar n numere ntregi (uor de determinat prin ncercri, innd cont c nu sunt dect 7 combinaii posibile) este: F(1,1,0,0)=150
26

Dac se ncearc obinerea soluiei prin rotunjirea soluiei problemei relaxate (obinut prin eliminarea condiiei ca variabilele s fie numere ntregi), de forma:
max F ( x1 , x 2 , x 3 , x 4 ) = 90 x1 + 60 x 2 + 30 x 3 + 40 x 4 500 x1 + 300 x 2 + 300 x 3 + 400 x 4 1000 x + x4 1 3 x1 + x 3 0 x 2 + x 4 0 x j 1 j = 1,4 x j 0 j = 1,4 rezultnd soluia: F(1; 1; 0,2; 0,35)=170 care, prin rotunjire la valoarea cea mai apropiat, conduce la soluia problemei n numere ntregi. Obinerea soluiei problemei n numere ntregi prin rotunjirea soluiei nu garanteaz ntotdeauna obinerea soluiei corecte. De exemplu, dac se modific problema iniial considernd un capital disponibil de 1.150, sub forma: max F ( x1 , x 2 , x3 , x 4 ) = 90 x1 + 60 x 2 + 30 x3 + 40 x 4 500 x1 + 300 x 2 + 300 x3 + 400 x 4 1150 x3 + x 4 1 x + x 0 1 3 x 2 + x 4 0 x j {0,1} j = 1,4 se obine soluia F(1,1,1,0)=180. Problema relaxat asociat are soluia F(1; 1; 0,34; 0,619)=185. Prin rotunjire la valoarea cea mai apropiat se obine (1; 1; 0; 1) care nu numai c nu este soluia problemei n numere ntregi, dar nu este nici soluie admisibil pentru problema respectiv.

27

2.2 Particularitile soluiilor admisibile ale unui program ntreg

Se consider urmtorul program ntreg total (P): max F(x1,x2)=8x1+3x2 5x1+3x215 -3x1-8x2-12 x1-2x2-1

x10, x20, x1,x2 - ntregi


din care rezult programul relaxat (PL): max F(x1,x2)=8x1+3x2 5x1+3x215 -3x1-8x2-12 x1-2x2-1 x10, x20 n continuare vor fi folosite urmtoarele definiii i notaii: soluie admisibil - ansamblu de valori numerice (nu neaprat ntregi) care verific restriciile i condiiile de nenegativitate; soluie admisibil ntreag - soluie admisibil cu toate componentele ntregi; APL - mulimea sluiilor admisibile ale programului relaxat (PL); AP - mulimea soluiilor admisibile ntregi ale programului (P); soluia optim fracionar - soluia optim a programului relaxat (PL), notat constant cu x*; optim fracionar - valoarea F(x*) a funciei obiectiv n soluia optim fracionar x*; soluia optim ntreag - soluia optim a programului ntreg (P), notat constant cu x0; optim ntreg - valoarea F(x0) a funciei obiectiv n soluia optim ntreag x0. Pentru reprezentarea grafic a mulimii APL se reprezint dreptele: d1: 5x1+3x2=15 d2: 3x1+8x2=12 d3: x1-2x2=-1 28

i se identific semiplanele n care sunt verificate cele trei restricii i cele dou condiii de nenegativitate.
x2 A d1 G I E d2 D d3C H x0

x*

f(x1,x2)=8x1+3x2=12 (dreapta de nivel) x1

Figura 2.1. Domeniul soluiilor admisibile

n figur a fost reprezentat grafic o dreapt de nivel a funciei obiectiv i direcia de translatare a acesteia corespunztoare creterii valorii funciei obiectiv. Prin aplicarea algoritmului simplex sau grafic se obine soluia problemei relaxate la intersecia dreptelor d1 i d3, care reprezint vrful 20 D al poligonului soluiilor admisibile x = 13 cruia i corespunde 27 13 276 valoarea optim F (x ) = . 13
Prin observare direct se gsete mulimea soluiilor admisibile ntregi ale programului (P) care este alctuit din urmtoarele puncte: AP = {E(0,2), F(0,3), G(0,4), A(0,5), H(1,2),I(1,3)}

29

Funcia obiectiv F are valoarea maxim n I(1,3), deci soluia optim ntreag este x0=(1,3) iar optimul ntreg are valoarea F(x0) = 17. Comparnd mulimile AP i APL se pot formula urmtoarele concluzii valabile pentru toate problemele de programare n numere ntregi: 1) Spre deosebire de APL, AP este o mulime rar, adic orice punct din ea posed o vecintate n care nu se mai afl alte puncte din mulime. Aplicarea teoriei teoria clasice a optimizrii, bazat pe posibilitatea efecturii unor deplasri infinitesimale n jurul unui punct este n acest caz lipsit de sens. 2) APL fiind o mulime poliedral, convex cu un numr finit de vrfuri, n general soluia optim ntreag care este n acelai timp o soluie admisibil problemei relaxate se gsete n interiorul mulimii APL i, ca urmare, nu este generat de ctre algoritmul simplex care conduce la determinarea soluiei probleme relaxate ce se gsete ntrunul din vrfurile poliedrului soluiilor admisibile. 3) Dac se consider anvelopa convex a mulimii AP, adic cea mai mic mulime convex care conine AP (n fig. 3.1. aceast anvelop este reprezentat de poligonul AIHE) se constat c vrfurile anvelopei sunt soluii admisibile ntregi ale programului (P). Dac se maximizeaz funcia obiectiv F pe anvelopa convex a soluiilor admisibile ntregi se poate regsi soluia optim ntreag x0. n concluzie, se poate rezolva o problem de programare n numere ntregi ca o problem de programare liniar uzual cu condiia s tim s descriem n limbaj de inecuaii liniare anvelopa convex a soluiilor admisibile ntregi. n cazul studiat, aceast descriere este uor de fcut: anvelopa AIHE se compune din soluiile sistemului de inecuaii: 2 x1 + x2 5 1 x1 x2 2 la care se adaug condiiile de nenegativitate: x10, x20. 30

n cazul general descrierea matematic a anvelopei convexe a mulimii AP este foarte dificil de realizat. Totui din aceste constatri se poate obine o metod de rezolvare a programului ntreg: adugnd la problema relaxat PL un numr de restricii suplimentare judicios alese, numite tieturi (reprezentate de inecuaii liniare), se pot ndeprta din APL o serie de poriuni astfel nct soluia optim ntreag s devin vrf n mulimea rmas fig. 2.2. n acest fel, chiar dac nu s-a obinut anvelopa convex a mulimii AP, soluia problemei relaxate asociat programului ntreg modificat (la care s-au adugat restriciile suplimentare reprezentnd inecuaiile tieturilor) reprezint i soluia programului ntreg iniial. Problema iniial

Tietura 1
x0 APL max f Tietura 2 x0 APL2 max f x0
APL1 max f

Problema modificat
x0

APL2 max f

Figura 2.2 Principiul metodei tieturilor

4) n cazul studiat AP era o mulime finit. Acest lucru se ntmpl i n situaii mai generale; de exemplu o problem de programare cu n variabile bivalente nu poate avea mai mult de 2n soluii admisibile ntregi. Fr a influena generalitatea concluziilor, se poate presupune c orice program ntreg are un numr finit de soluii ntregi. 31

2.3 Metode de rezolvare ale programelor ntregi

Se consider un program ntreg n form standard:

max F = n c x j j j =1 n i = 1,..., m (P) a ij x j =b i j =1 x j 0 j = 1,..., n x j ntregi n care toate constantele aij, bi, cj sunt numere ntregi.

(2.1)

Forma general de mai sus acoper i cazul particular important al programelor bivalente prin introducerea restriciilor xj 1 , j = 1, ... n. Se presupune c mulimea soluiilor admisibile ale problemei (PL) este mrginit; n problemele practice aceast cerin poate fi ntotdeauna asigurat. Rezult imediat c (P) are un numr finit de soluii admisibile ntregi. Deoarece coeficienii funciei obiectiv sunt ntregi i optimul ntreg va fi un numr ntreg. Mai mult, optimul ntreg este cel mult egal cu rotunjirea ntreag inferioar a optimului fracionar. Pentru rezolvarea programului ntreg general (P) pot fi utilizai urmtorii algoritmi de rezolvare: (1) Transformarea rezolvrii programului ntreg (P) n rezolvarea unei secvene finite de programe liniare uzuale: (PL0 = PL), PL1, PL2, ... , PLt ultimul avnd drept soluie optim chiar soluia optim ntreag a programului original (P). Pentru fiecare k = 1, 2, ... t programul (PLk) se obine din cel anterior prin adugarea unei anumite restricii suplimentare a crei construcie difer de la metod la metod. Restriciile suplimentare sunt astfel alese nct:
32

s fie verificate de orice soluie admisibil ntreag a programului original (P); prin introducerea lor s ndeprteze poriuni din mulimea APL a tuturor soluiilor admisibile ale relaxatei PL PL0 pn cnd soluia optim ntreag devine vrf n mulimea rmas, putnd fi astfel cunoscut de algoritmul simplex.

Din acest motiv aceste restricii suplimentare se mai numesc i tieturi sau plane de seciune. 2) Faptul c un program ntreg are (sau poate fi fcut s aib) un numr finit de soluii sugereaz posibilitatea de rezolvare a programelor ntregi folosind metode bazate pe enumerarea total sau parial a acestor soluii. Schemele de enumerare parial determin soluia optim ntreag genernd efectiv doar o parte a mulimii soluiilor admisibile ntregi, soluiile negenerate fiind recunoscute implicit ca neoptimale. Domeniul predilect de aplicare a metodelor de enumerare l constituie programarea bivalent dar pot fi adaptate i pentru programe ntregi generale. Astfel, presupunnd c a fost rezolvat problema relaxat PL, cu ajutorul algoritmului simplex obinnd soluia optim fracionar x*, n , x2 ,... ale soluiei cazul n care una sau mai multe din componentele x1 x* nu sunt ntregi soluia programului ntreg difer de soluia programului relaxat; se presupune c x1 este fracionar. Este clar atunci c soluia optim ntreag cutat va verifica una din urmtoarele inegaliti mutual exclusive:

x1 [ x1 ] sau

x1 [ x1 ] + 1

( [a] = partea ntreag a numrului real a ). Se consider programele liniare obinute prin extinderea relaxatei PL cu fiecare din cele dou inegaliti:
PL (PL 1 ) x1 [ x1 ] PL (PL 2 ) x1 [ x1 ] + 1

Se spune c problema (PL) a fost ramificat dup variabila x1.

33

x2

x*

APL 1

APL 2

x1 [ x ]
1

x1 [ x1 ] + 1

x1

Figura 2.3 mprirea domeniului soluiilor admisibile la ramificarea problemei

Este evident c: Mulimile de soluii admisibile APL1 i APL2 ale celor dou programe noi sunt submulimi stricte n APL. Mulimile de soluii admisibile ntregi ale programelor relaxate PL1 i PL2 verific condiiile A1 A2 = A i A1 A2 = n particular soluia optim ntreag a programului original (P) se gsete ntr-una (i numai n una) din mulimile mai mici APL 1 sau APL 2 . n continuare se rezolv PL1. Presupunnd c PL1 este compatibil, n soluia sa optim, notat x*1 prima component va fi cu siguran ntreag: x11 = [ x1 ] .
1 n ipoteza c a doua component x2 este fracionar vom deriva alte dou noi programe liniare dup modelul de mai sus:

34

PL (PL 11 ) 1 1 x1 [ x 2 ]

PL (PL 12 ) 1 1 x1 [ x 2 ] + 1

Dac soluia optim ntreag cutat este soluie admisibil pentru programul PL1 atunci cu siguran ea se va gsi n una din mulimile de soluii admisibile ale celor dou programe rezultate prin ramificare. n principiu, ramificarea poate continua de la oricare din problemele PL11, PL12 sau PL2, condiiile de ramificare fiind acelea ca programul n cauz: s fie compatibil (adic s aib soluii admisibile); soluia sa optim s aib cel puin o component fracionar.

De regul, ramificarea se face dup prima variabil cu valoare fracionar sau dup variabila cu cea mai mare parte fracionar. Pentru nelegerea metodei procesul de ramificare poate fi reprezentat printr-un graf arbore T ale crui noduri sunt diferitele probleme rezultate din ramificare. Nodurile terminale (adic nodurile din care nu s-a mai efectuat ramificarea) sunt fie probleme incompatibile, fie probleme cu soluii optime ntregi. Cu excepia rdcinii (PL) fiecare nod din T are un predecesor unic. Orice nod care nu este nod terminal are doi succesori.

x1 [ x1 ] x2 [ x ]
1 2

PL

x1 [ x1 ] + 1

PL1

x2 [ x ] +1
1 2

PL2

PL11

PL12

Figura 2.4. Arbore de ramificare

35

Se pot introduce urmtoarele variabile: xCMB (vector) care reine cea mai bun soluie admisibil ntreag la un moment precizat al derulrii procesului de ramificare; zCMB, care reine valoarea funciei obiectiv n xCMB. La start: xCMB = zCMB = - Fiecrui nod PL al arborelui T (unde este o succesiune de 1 i 2) va avea ataat o margine superioar: z rotunjirea ntreag inferioar a optimului problemei PL n cazul n care aceasta este compatibil. Este clar c dac soluia optim ntreag x0 se afl printre soluiile admisibile ale problemei PL atunci: zCMB f (x0) z avem: Prin urmare, dac pentru o problem PL rezultat din ramificare z zCMB nu mai are nici un rost s ramificm PL, deoarece printre eventualele sale soluii admisibil ntregi nu exist nici una mai bun dect actuala xCMB. Aceast constatare reduce numrul de ramificaii care vor fi analizate. Arborele T nu exist de la nceput. La start el se reduce la rdcina (PL) i n continuare primete noi noduri i arce de legtur n funcie de problemele rezultate din ramificare i efectiv rezolvate. Metoda de rezolvare a unui program ntreg succint expus mai sus va fi explicat mai n detaliu pe urmtorul exemplu:

(max)F = 4 x1 + 3 x 2 3x + 4 x 2 12 (P) 1 4 x + 2 x2 9 1 x1 , x 2 N
36

START

Se iniializeaz: zCMB = - i xCMB = Se rezolv cu algoritmul simplex relaxata problemei (P): (max) f = 4 x1 + 3 x2 3 x1 + 4 x2 12 4 x1 + 2 x2 9 x1, x2 0

(PL)

i se gsete soluia optim fracionar: x1 = 1,2; x 2 = 2,1; f (x ) = 11,1 Rezult c optimul ntreg nu poate depi marginea superioar: z = [11,1] = 11 Variabila dup care se face ramificarea va fi ales dup criteriul prii fracionare mai mari; n cazul de fa este vorba de variabila x2.
Iteraia 1 Se rezolv cu algoritmul simplex programul liniar (PL1) dedus din (PL) prin adugarea restriciei x1 1.

Se gsete soluia fracionar x1 = 1 x 2 = 1,25;

f = 10,75

Se conchide c soluiile admisibile ntregi ale problemei (PL1) care sunt i soluii ale problemei iniiale (P) nu pot oferi funciei obiectiv o valoare mai mare dect marginea: z1 = [10,75] = 10 Se ramific dup variabila x2.
Iteraia 2 Se rezolv problema (PL11) obinut din PL1 adugnd restricia x2 2.

Rezult soluia ntreag x1 = 1,

x 2 = 2;

f = 10

evident mai bun dect soluia ntreag depozitat n xCMB. n consecin se actualizeaz: xCMB = (1,2)T zCMB = 10 Se revine la problema PL1. 37

Iteraia 3 Deoarece valoarea funciei pentru soluia ntreag a problemei PL11 este egal cu z1, rezult c prin rezolvarea problemelor obinute prin ramificarea problemei PL12 rezultat din adugarea la (PL) a restriciei x2 3 nu poate conduce la o valoare mai mare dect cea deja obinut (f=10, PL11). n aceste condiii, programul PL12 i cele ce decurg din acesta se rezolv doar n cazul n care se dorete s se determine eventualele soluii echivalente din punct de vedere al valorii funciei obiectiv. Rezolvarea programului PL12 conduce la soluia ntreag x1 = 0, x2 = 3, f = 9 care este mai slab dect cea stocat n xCMB.

Se revine la problema PL1 i apoi la PL.


Iteraia 4 Se rezolv cu algoritmul simplex programul liniar (PL2) dedus din (PL) prin adugarea restriciei x1 2.

Se gsete soluia fracionar x1 = 2, x2 = 0,5; f = 9,5 Programele care pot rezulta prin ramificare din aceasta adugnd condiiile x2=0 i, respectiv, x21 vor conduce la valori ale funciei obiectiv care nu pot depi: z 2 = [9,5] = 9 deci care sunt inferioare soluiei deja determinate. n aceste condiii acesta este un nod terminal. Recapitulnd, studiul problemei PL11 a produs o soluia ntreag care a fost reinut precum i concluzia c PL12 i PL2 nu are soluii ntregi mai bune dect cea gsit. n acest moment se poate spune c au fost examinate direct sau indirect - toate soluiile ntregi ale problemei (P). Soluia ntreag reinut n xCMB este din cea mai bun soluie ntreag adic este soluia optim a problemei originale (P). Un nod al arborelui T din care ramificarea poate continua se numete nod activ; altminteri el se va numi nod mort. Din denumire rezult c algoritmul se oprete n momentul n care rdcina PL este declarat nod mort. Comentariile de mai sus sunt sintetizate n arborele din fig. 2.5. 38

PL x1=1,2 x2=2,1 f=11,1 x11 PL1 x1=1 x2=1,25 f=10,75 x20 PL11 x1=1 x2=2 f=10 x21 PL12 x1=0 x2=3 f=9 x12 PL2 x1=2 x2=0,5 f=9,5

Figura 2.5 Arborele de ramificare al problemei considerate

Principalele dezavantaje ale metodei descrise sunt: creterea foarte rapid a numrului problemelor de rezolvat i de aici a volumului de calcule o dat cu creterea dimensiunilor programului original i mai cu seam a numrului de variabile ntregi; comportare impredictibil pe probleme de dimensiuni apropiate: arborele problemelor rezolvate poate fi extrem de stufos pentru o problem i foarte simplu pentru o alta. n practic, metoda se combin cu alte procedee (cum ar fi metoda planelor de seciune) care pot oferi rapid soluii admisibile ntregi suficient de bune, micorndu-se astfel numrul ramificrilor. Algoritmul descris este o variant a unei metode mai generale denumite branch & bound, care ramific (adic partiioneaz) mulimea n care se caut un anumit element numit element optimal n pri mai mici pe care le mrginete, aceasta nsemnnd optimizarea funciei obiectiv pe fiecare din prile rezultate. Unele din aceste pri sunt ramificate i mrginite n continuare. Nu sunt ramificate acele pri care nu conin n mod sigur soluia optim cutat. 39

S-ar putea să vă placă și