Sunteți pe pagina 1din 17

unitatea de nvare 3 Cercetri Operaionale II

Autor: Vasile Teodor NICA

UNITATEA DE NVARE 3

PROGRAMAREA N NUMERE NTREGI


Metode de rezolvare exact a programelor ntregi

Cuprins

Obiectivele unitii de nvare 3

3.1 Generaliti privind metodele de rezolvare a programelor ntregi


3.2 Metoda Branch and Bound descriere de principiu
3.3 Aplicarea metodei B&B. Exemple numerice

ntrebri i probleme propuse

Printed by Vasile Teodor NICA 1


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

Obiectivele unitii de nvare 3

Rezolvarea unui program ntreg este o chestiune dificil mai cu seam n cazul n care
dimensiunile acestuia numr de restricii , numr de variabile sunt mari ca i atunci cnd
programul este puternic structurat.n unele contexte concrete este suficient rezolvarea
programului relaxat, operaie care de regul este mult mai uor de fcut, i rotunjirea rezultatului la
o soluie ntreag acceptabil (suboptimal). Exist totui destule situaii n care cunoaterea soluiei
optime ntregi este imperios necesar. Iat de ce n aceast unitate de nvare se propun
urmtoarele obiective:
- prezentarea la nivel de principiu a unor clase de metode de rezolvare exact a programelor
ntregi;
- descrierea efectiv a metodei Branch and Bound, des utilizat n programele de calculator;
- ilustrarea numeric a aplicrii metodei B&B.

3.1 Generaliti privind metodele de rezolvare a programelor ntregi

Din punctul de vedere al teoriei complexitii, programele ntregi fac parte din clasa
problemelor grele.Aceasta nu nseamn c ele sunt cu totul intractabile. n dimensiune relativ
moderat, aceste probleme pot fi rezolvate exact i n timp rezonabil. Folosind metode de cutare
din ce n ce mai sofisticate au putut fi rezolvate cu succes i probleme de dimensiuni apreciabile.
Totui nu se poate spune c metodele exacte orict de sofisticate ar fi ele sunt n stare s fac
fa oricrei probleme i mai mult pot avea comportamente radical diferite pe probleme
asemntoare i de aceeai talie!

Faptul c un program ntreg are (sau poate fi fcut s aibe) un numr finit de soluii sugereaz i
cel mai simplu mod de rezolvare bazat pe enumerarea total sau parial a acestor soluii.
Enumerarea total a fost evocat doar ca posibilitate pentru c, dei este finit, numrul soluiilor
ntregi ce trebuie generate i verificate poate fi ( mai cu seam n aplicaiile practice) excesiv de
mare.
Schemele de enumerare parial determin soluia optim ntreag genernd efectiv doar o
parte a mulimii soluiilor ntregi de dorit ct mai mic - soluiile negenerate fiind recunoscute
implicit ca neoptimale. Domeniul predilect al metodelor de enumerare l constituie programarea
bivalent i un exemplu reprezentativ (n fapt, primul) este algoritmul aditiv al lui BALA (1965).

Exceptnd enumerarea, metodele exacte clasice reduc rezolvarea unui program ntreg (P)
la rezolvarea mai multor programe liniare uzuale cu ajutorul procedurii simplex primal sau
dual.

Astfel, metodele de tip plane de seciune genereaz o secven finit de programe liniare
PL PL0 , PL1 , PL2 , ... , PLt primul fiind relaxatul programului (P) i ultimul avnd drept
soluie optim chiar soluia optim ntreag cutat. Pentru fiecare k 1,2,..., t programul (PLk) se
obine din programul anterior (PLk-1) prin adugarea unei tieturi a crei construcie difer de la
metod la metod. Elementul comun al acestor proceduri este observaia potrivit creia soluia
optim ntreag va fi recunoscut de algoritmul simplex dac i numai dac ea va fi ntr-o
problem extins o soluie de baz cu trei proprieti: s fie primal admisibil ( s aibe

Printed by Vasile Teodor NICA 2


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

componentele nenegative), s fie dual admisibil ( s verifice criteriul de optim al algoritmului


simplex) i s aibe toate componentele ntregi. Toate metodele bazate pe plane de seciune
construiesc tieturile de aa manier nct soluiile optime ale programelor (PL k) s menin dou
din cele trei proprieti, fornd ndeplinirea proprietii restante.
n algoritmul ciclic al lui GOMORY (1958) tieturile conserv primal i dual admisibilitatea
n timp ce algoritmul discret (GOMORY, 1963) menine dual admisibilitatea i integritatea soluiilor
intermediare. Ambele proceduri conserv deci dual admisibilitatea i ca urmare rezolvarea fiecrui
program (PLk) k 1,2,..., t se face prin reoptimizarea programului precedent extins cu tietura
ataat cu algoritmul simplex dual.
Algoritmul lui YOUNG i GLOVER (1972) conserv primal admisibilitatea i integritatea soluiilor
intermediare folosind pentru reoptimizare algoritmul simplex primal.
Dei n teorie metodele amintite determin soluia optim ntreag ntr-un numr finit de pai, n
practic ele s-au dovedit lente, instabile i mai cu seam impredictibile n comportament pe
probleme de aceleai dimensiuni. Meritul lor major este acela de a fi impulsionat cercetarea n
domeniul teoriei poliedrale i al cutrii de tieturi mai restrictive care s exploateze
particularitile structurii problemei de rezolvat.Fie separat, fie n combinaie cu alte metode,
planele de seciune sunt utilizate astzi la soluionarea unei largi varieti de probleme de optimizare
grele.
Ar fi de amintit n final c tieturile au fost utilizate pentru prima dat desigur ntr-o form
incipient de DANTZIG, FULKERSON i JOHNSON (1954) la rezolvarea unei probleme a
comisvoiajorului n care se cerea determinarea celui mai scurt traseu de vizitare a 42 de orae din
SUA.

Branch and Bound, abreviat B&B (LAND, DOIG, 1960; DAKIN, DRIEBECK, 1964;
BALA, 1965) este o metod alternativ de rezolvare a programelor ntregi totale sau mixte bazat
pe un principiu ce amintete vechiul adagiu latin divide et impera. Deoarece problema original
este n general greu de rezolvat direct, ea este ramificat, adic divizat n subprobleme mai
mici, cu mai puine soluii ntregi. Fiecare subproblem rezultat din ramificare este mrginit,
aceasta nsemnnd calcularea unei valori (margini) care arat ct de bune sunt soluiile
subproblemei respective pentru procesul de optimizare. n principiu, fiecare subproblem este la
rndul ei ramificat n subprobleme i mai mici, afar de cazul n care marginea ataat arat c,
printre soluiile ei ntregi, nu se gsete cu siguran soluia optim ntreag cutat.

3.2 Metoda Branch and Bound descriere de principiu

Pentru prezentarea metodei vom fixa un program liniar ntreg (P) n care funcia obiectiv se
maximizeaz. Putem presupune c toi coeficienii funciei obiectiv sunt numere ntregi astfel c
evaluarea ei n orice soluie ntreag a programului (P) va fi un numr ntreg. Admitem c mulimea
soluiilor admisibile ale programului relaxat (PL) este mrginit; de aici va rezulta c (P) are un
numr finit de soluii ntregi. Aceast ipotez nu este deloc restrictiv fiind asigurat n toate
aplicaiile practice.

Metoda utilizeaz o list L n care vor fi nscrise toate programele ntregi rezultate din
procesul de ramificare. Dup cum se va vedea, toate programele din lista L sunt extinderi ale
programului original (P) cu limitri impuse unora dintre variabile. Lista este dinamic n sensul c,
pe parcurs, n ea se vor opera tergeri i/sau adugiri de programe. La start L = {P}.

Printed by Vasile Teodor NICA 3


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

ntr-o locaie notat xCMB se va pstra Cea Mai Bun soluie admisibil ntreg gsit n
timpul derulrii procedurii. ntr-o alt locaie, zCMB , se va nscrie valoarea funciei obiectiv n
soluia din xCMB. La start:

x CMB {} , z CMB n problemele de maximizare sau z CMB n cele de minimzare.

Locaia xCMB se poate iniializa i cu o soluie ntreag particular, n caz c o asemenea soluie se
cunoate! Evident z CMB se va iniializa cu valoarea corespunztoare a funciei obiectv.
Vom arta acum cum lucreaz metoda.

Pasul 1 Dac lista L este vid procedura se oprete. Dac locaia xCMB este ocupat acolo se va
gsi soluia optim ntreag a programului (P). Valoarea optim a funciei obiectiv se va lua din
zCMB. n caz c locaia xCMB este vid, programul (P) nu are soluii admisibile ntregi.
Dac lista L este nevid se trece la:

Pasul 2 Se selecteaz unul dintre programele nscrise n L, de obicei primul. Programul selectat,
notat P , se terge din list ( atenie, lista L este ordonat aa c de la bun nceput trebuie convenit
locul n care vor fi operate tergerile i adugirile de programe, de exemplu n capul listei).
Not: la prima iteraie , P P ns pe parcurs indicele va fi dup cum se va vedea o
succesiune de 1 i 2.

Pasul 3 Se trece la rezolvarea programului relaxat (PL) folosind algoritmul simplex. Sunt
posibile urmtoarele situaii:

I) (PL) este un program incompatibil, adic nu are soluii admisibile; evident nici P nu
va avea soluii ntregi. Se revine la pasul 1.

II) ( PL) este un program compatibil i cu siguran va avea un optim finit notat z. Este
uor de vzut c numrul ntreg z este o margine superioar a funciei obiectiv din (P) pe
soluiile ntregi ale programului P . Dou cazuri sunt posibile n continuare:

II1) z z CMB
n aceast situaie nici o soluie ntreag a lui P nu va fi mai bun dect soluia ntreag
depozitat n xCMB ! Ca urmare, este inutil s mai cercetm soluiile ntregi ale programului P (vom
spune c programul (P) este abandonat). Se revine la pasul 1.

II2) z z CMB
(n acest caz s-ar putea ca (P) s aibe soluii ntregi mai bune dect soluia din locaia xCMB !) Fie
x* soluia optim a programului (PL).Sunt posibile dou continuri:

II21) Toate variabilele ntregi din programul original au valori ntregi n x* ; evident,
x* va fi o soluie ntreag mai bun dect cea existent n xCMB, drept care se fac actualizrile:

Printed by Vasile Teodor NICA 4


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

x CMB x ; z CMB f ( x )

dup care din nou se revine la pasul 1.

II22) Una sau mai multe variabile ntregi din programul original au n x* valori
fracionare. Fie xk una din aceste variabile. Este clar c orice soluie ntreag a programului P va
verifica una din inegalitile mutual exclusive:

x k x k sau x k x k x k 1

(s-a notat cu x i x rotunjirea ntreag inferioar respectiv superioar a numrului real x)


Extindem programul ntreg (P) cu fiecare dintre cele dou inegaliti, obinnd dou noi programe
ntregi:

P P
P1 P2
xk xk xk xk
i

Noile programe au urmtoarele proprieti evidente:

- nu au soluii ntregi comune;


- reuniunea soluiilor lor ntregi este mulimea soluiilor ntregi ale programului (P ) vezi
figura 1.


x x1 , x2

APL 1

APL 2
x1
x1 x1 x1 x1

Figura 1

(comentariu: prin urmare, cercetarea soluiilor ntregi ale lui P se va realiza prin cercetarea
separat, n etape ulterioare diferite, a soluiilor ntregi ale programelor P 1 i P2. Cercetarea va fi

Printed by Vasile Teodor NICA 5


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

oarecum uurat prin faptul c programele succesoare P1 i P2 au fiecare mai puine soluii
ntregi dect programul printe P)
Noile programe (P1) i (P2) se adaug in capul listei L , n locul lui P deja ters:

L = { P1 , P2, ....}
Se revine la pasul 2.

Observaii : 1) Despre programele P 1 i P2 vom spune c au rezultat din ramificarea programului


P dup variabila (ntreag) xk.
2) n cazul n care ramificarea se poate executa dup mai multe variabile este necesar un
criteriu de alegere. De exemplu, ramificarea se poate face dup prima variabil ntreag cu valoare
fracionar n x* sau dup variabila ntreag cu cea mai mare parte fracionar n x*.
3) Procedura descris este aplicabil i programelor ntregi mixte cu precizarea c
ramificarea, atunci cnd este necesar, se va face numai dup variabilele ntregi!

Pentru nelegerea metodei vom vizualiza procesul de ramificare printr-un graf arbore T ale
crui noduri sunt relaxatele diferitelor programe rezultate din ramificare vezi figura 2. Un nod
din T , identificat cu programul liniar (PL) va fi un nod terminal dac i numai dac programul
(P) nu a mai fost ramificat i aceasta se ntmpl n trei situaii:
- (PL) este un program incompatibil;
sau
- (PL) este compatibil dar marginea ataat arat c nu are soluii ntregi mai bune dect
soluia existent n xCMB;
sau
- (PL) are soluie optim ntreag mai bun dect cea din xCMB.

Cu excepia rdcinii (PL) fiecare nod din T are un unic predecesor. Orice nod care nu este nod
terminal are doi succesori.

PL

PL1 PL2

PL11 PL12 PL21 PL22


Noduri terminale

... .... PL221 PL222


Nod terminal

... ....

Figura 2

Printed by Vasile Teodor NICA 6


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

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.

Aceasta ar fi o descriere de principiu a metodei B&B. Desigur, sunt necesare precizri privind
modul de alegere al subproblemei ce urmeaz a fi ramificat sau al variabilei dup care se face
ramificarea. La fel, manipularea i stocarea datelor condiioneaz nemijlocit performanele metodei.
Nu mai puin important s-a dovedit etapa de pregtire a programului de rezolvat n care acesta este
simplificat i reformulat prin eliminarea eventualelor restricii redundante i a variabilelor a cror
valoare optim poate fi dedus direct din structura problemei (preprocesare). Metoda B&B este
astzi implementat n mai toate programele comerciale destinate rezolvrii programelor ntregi.
Principalele dezavantaje ale metodei descrise sunt:

creterea foarte rapid, chiar exploziv 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.

Branch and Cut este o procedur i mai performant, rezultat din combinarea metodei B&B cu
metoda planelor de seciune. Versiunea hibrid a fost utilizat cu succes la rezolvarea unor probleme
de tip comisvoiajor de dimensiuni impresionante.

3.3 Aplicarea metodei B&B. Exemple numerice

Exemplul 1 Vom determina soluia optim ntreag a programului

(max) f 2 x1 5x2
2x 2x 9
1 2
( P) x1 3x2 1
x ,x 0
1 2
x1 , x2 intregi

folosind metoda B&B descris mai sus. Convenim ca n lista L toate adugirile i tergerile s se
opereze n capul listei iar variabila dup care se face ramificarea unui program (P) s fie prima
variabil ntreag cu valoare fracionar n soluia optim a relaxatei (PL).

Start Iniializm:

xCMB (locaia vid) ; z CMB (n problemele de maximizare !) ; L = { P }

Printed by Vasile Teodor NICA 7


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

Iteraia 1 Operaii:

Selectm programul (P), singurul element al listei L .


tergem P din list; lista L este acum vid.
Cu algoritmul simplex rezolvm programul relaxat

(max) f 2 x1 5x2
2x 2x 9
1 2
( PL)
x1 3x2 1
x1 , x2 0

(n cazul de fa se poate folosi i metoda grafic) Se gsete soluia optim fracionar:

1 1 3
x1 1 , x 2 3 ; z f ( x ) 18
4 4 4

3
Optimul ntreg nu depete marginea superioar z 18 18 .Condiia de ramificare
4
z z CMB 18 este banal satisfcut (suntem abia la nceput i nc nu a fost gsit nici o
soluie ntreag a programului (P)). Ramificm (P) dup variabila x1, prima variabil ntreag cu
valoare fracionar n x*. Aceasta nseamn nlocuirea programului (P) cu programele ntregi:

(max) f 2x1 5x2


2 x 2 x 9
P
1 2
P
(P1) x1 3x2 11 i (P2 )
x1 1 x 1 x1 2
1
x1, x2 0 , intregi
nscriem programele rezultate din ramificare n capul listei L :

L = { P1 , P2 }

Iteraia 2 Operaii:

Printed by Vasile Teodor NICA 8


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

Selectm programul (P1), primul program nscris n lista L .


tergem programul selectat din list: L = { P2 }.
Rezolvm problema relaxat (PL1); se gsete soluia optim, din nou fracionar:

1 2
x1 1 , x 2 3 ; z1 f ( x ) 18
3 3

Deoarece z1 18 z CMB ramificm (P1) dup variabila x2.


Noile programe:

P1 P1
(P11 ) i (P12 )
x2 3 x2 4
vor fi nscrise n capul listei L :
L = { P11 , P12 , P2}

Iteraia 3 Selectm programul (P11) i actualizm lista L :

L = { P12 , P2}

dup care rezolvm programul relaxat (PL11) ; obinem soluia optim ntreag:

x1 1 , x 2 3 ; f ( x ) 17

n acest stadiu al derulrii algoritmului B&B nu putem ti dac aceast soluie este i soluia optim
a programului original (P). O vom reine ca fiind Cea Mai Bun soluie ntreag gsit pn acum:

xCMB (1,3) z CMB 17

Iteraia 4 Acum se va rezolva relaxata programului (P12). Lista programelor ntregi de studiat se
reduce la:
L = { P2}

Se gsete c programul liniar (PL12) este incompatibil.

Iteraia 5 Se selecteaz programul (P2); lista L devine vid. Programul relaxat (PL2) are soluia
optim fracionar:
1 1
x1 2 , x2 3 ; z2 f ( x ) 16
2 2

Deoarece z 2 16 17 z CMB nici o soluie ntreag a programului (P2) nu este mai bun dect
soluia existent n xCMB; abandonm (P2) i revenim la consultarea listei L .

Printed by Vasile Teodor NICA 9


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

Iteraia 6 n acest moment L = : aceasta nseamn c toate soluiile ntregi ale programului
original (P) au fost cercetate i c soluia depozitat n xCMB este cea mai bun. n concluzie, soluia
optim ntreag cutat este :
x10 1 x 20 3 f ( x 0 ) 17

Consideraiile precedente sunt sintetizate n graful arbore T din figura 3 ; nodurile lui T sunt
cele cinci programe liniare efectiv rezolvate cu algoritmul simplex n ordinea PL , PL 1, PL11 , PL12 i
PL2.

Iniializare
xCMB = zCMB =-
PL

x1 1 x1 2

PL1 PL2

x2 3 x2 4 Stop ramificare deoarece


marginea=16<17=zCMB
PL11 PL12
Incompatibil
Actualizare
xCMB = (1,3) zCMB =17

Figura 3

Dup cum s-a mai spus, arborele T se construiete progresiv pe msura derulrii algoritmului.La
start el se reduce la rdcina (PL) i n continuare primete noi noduri i arce corespunztoare
programelor rezultate din ramificare.
Un nod (PL) unde este o succesiune de 1 i 2 corespunztor unui program ntreg (P )
ramificat, are doi succesori (PL1) i (PL2) ce corespund relaxatelor programelor ntregi:

(P ) (P )
(P1 ) i (P 2 )
x j x j x j x j

Printed by Vasile Teodor NICA 10


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

rezultate din ramificarea dup variabila xj (reamintim c x* este soluia optim a programului relaxat

(PL) n care x j este prima component fracionar!)
Am putea spune c, o dat stabilit oportunitatea ramificrii programului (P ) sau, altfel spus, a
nodului (PL), exist dou direcii de naintare n arborele T: una spre stnga ctre nodul
(PL1), i cealalt spre dreapta ctre nodul (PL2). Ca regul de naintare, ntotdeauna se va
merge mai nti spre stnga, ctre (PL1) i apoi, ntr-o etap ulterioar i nu neaprat imediat, pe
cealalt direcie catre (PL2).
Examinarea direciilor de naintare spre dreapta sugereaz ntoarceri dintr-un nod (PL)
ctre unicul predecesor. Pasul napoi se face atunci cnd din nodul (PL ) nu se mai poate
nainta i aceasta se ntmpl numai dac:

Programul (P) nu mai poate fi ramificat;


sau dac
Ambele direcii de naintare din nodul (PL) au fost examinate.

Consideraiile precedente justific urmtoarea clasificare a nodurilor arborelui T, clasificare care


depinde de stadiul construciei arborelui:

- noduri active noduri din care se poate face o naintare n T pe una din cele dou
direcii posibile;
- noduri moarte noduri din care naintarea nu mai este posibil fiind necesar ntoarcerea
n nodul predecesor.
-
Cu aceste precizri de terminologie procedura B&B se oprete cnd rdcina (PL) a arborelui T este
declarat nod mort.
Utilizarea limbajului introdus permite o descriere foarte sugestiv a modului n care a acionat
metoda B&B n ilustrarea numeric prezentat.
Astfel, n iteraia 1, din nodul ramificat (PL) am naintat spre stnga ctre succesorul (PL 1)
micarea 1. La iteraia 2 am mai fcut o naintare spre stnga ctre succesorul (PL 11)
micarea 2. Nodul (PL11) nu a mai fost ramificat deoarece a produs o soluie ntreag (ca urmare a
fost declarat nod mort). Atunci ne-am ntors n unicul predecesor (PL 1) micarea 3 i am
naintat spre dreapta ctre al doilea succesor (PL 12) micarea 4. Din nou ramificarea nu a mai
fost posibila din cauza incompatibilitii programului (PL12); nodul (PL12) a fost declarat mort .
Ne-am ntors iari n (PL1) micarea 5 i constatnd c ambele direcii de naintare din (PL 1)
au fost examinate am mai fcut un pas napoi micarea 6 ctre predecesorul (PL), nodul (PL 1)
fiind i el declarat mort . Abia acum am cercetat a doua direcie de naintare din (PL), cea care duce
la succesorul (PL2) micarea 7. Aici am realizat c este inutil continuarea ramificrii (declarnd
nodul (PL2) mort), drept care ne-am ntors din nou n rdcina (PL) micarea 8 cu concluzia
c am cercetat toate soluiile ntregi ale programului dat. Cele cinci noduri au fost declarate moarte
n ordinea (PL11), (PL12), (PL1), (PL2), (PL). Problemele de programare liniar au fost rezolvate n
ordinea (PL), (PL1), (PL11), (PL12), (PL2).

Exemplul 2 Rezultatul aplicrii metodei B&B la rezolvarea programului ntreg :

Printed by Vasile Teodor NICA 11


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

(max) f 20x1 11x2



(P) 240 x1 145x2 696
x , x 0, intregi
1 2
este sintetizat n arborele din figura 4. A fost necesar rezolvarea a 11 programe liniare n ordinea:

PL , PL1 , PL11 , PL12 , PL121 , PL1211 , PL1212 , PL12121 , PL12122 , PL122 , PL2

pentru a obine soluia optim x10 1 , x20 3 f ( x 0 ) 53 .


(cititorul este invitat s reconstituie coninutul celor 12 iteraii). Se observ c, dei acest program
este mai mic dect programul ntreg studiat n exemplul 1 (are o singur restricie fa de dou
cte avea cel de dinainte), efortul de calcul a fost mai mare. Se confirm faptul c metoda B&B ca
de altfel orice alt metod exact de rezolvare a programelor ntregi are un comportament ce nu
poate fi anticipat!

Printed by Vasile Teodor NICA 12


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

Iniializare
xCMB = ; zCMB = -
PL
x1 = 2.9 ; x2 = 0 ; f = 58
x1 2 x1 3
PL1 PL2
x1 = 2 ; x2 = 1.49 ; f = 56.39 incompatibil
x2 1 x2 2
PL11 PL12
x1 = 2 ; x2 = 1 ; f = 51 x1 = 1.692 ; x2 = 2 ; f = 55.833
Prima actualizare
xCMB (2,1) ; zCMB 51 x1 1 x1 2

PL121 PL122
x1 = 1 ; x2 = 3.145 ; f = 54.595 incompatibil
x2 3 x2 4

PL1211 PL1212
x1 = 1 ; x2 = 3 ; f = 53 x1 = 0.483 ; x2 = 4 ; f = 55.367
A doua actualizare
xCMB (1,3) ; zCMB 53 x1 0 x1 1

PL12121 PL12122
x1 = 0 ; x2 = 4.8 ; f = 52.8 incompatibil
Stop ramificare
deoarece marginea
este mai mic dect zCMB =53

Figura 4

Exemplul 3 Aa cum s-a specificat deja n finalul seciunii 3.1 ,combinarea metodei B&B
cu generarea de tieturi conduce, n general, la accelerarea rezolvrii programelor ntregi. Pentru
ilustrare relum programul (P) din exemplul 2, pe care, mai nti, l vom extinde cu cteva
tieturi uor de construit. Reamintim c o tietur este o restricie suplimentar care elimin o parte
dintre soluiile nentregi conservndu-le ns pe cele ntregi.(vezi indicaiile date n seciunea 2.2 a
unitii de nvare 2!)
1 240 696 95 116
nmulim unica restricie din (P) cu scalarul : x1 x 2 1 x1 x 2 4 .
145 145 145 145 145
Rotunjind inferior coeficienii fracionari rezult tietura x1 x 2 4 ( de ce?).
1 145 696 216
nmulim acum restricia original cu scalarul : x1 x2 2 .Din nou rotunjim
240 240 240 240
inferior coeficienii nentregi; obinem o alt tietur x1 2 .

Prin construcie, programul extins:

Printed by Vasile Teodor NICA 13


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

(max) f 20 x1 11x2
240 x 145x 696
1 2

( P) x1 x2 4
x 2
1
x1 , x2 0, intregi

va avea aceleai soluii ntregi ca i (P) i n particular aceeai soluie optim ntreag. Aplicarea
metodei B&B la programul (P) conduce mai repede la optim : din arborele dat n figura 5, rezult
c a fost nevoie s fie rezolvate numai 5 programe liniare fa de 11 cte sunt n arborele
programului original (P), vizualizat n figura 4!

Iniializare
xCMB = ; zCMB = -
PL
x1 = 2 ; x2 =1.49 ; f = 56.39

x2 1 x2 2

PL1 PL2
x1 = 2 ; x2 =1 ; f = 51 x1 = 1.692 ; x2 = 2 ; f = 55.833
Prima actualizare
x1 1 x1 2
xCMB (2,1) ; zCMB 51

PL21 PL22
x1 = 1 ; x2 =3 ; f = 53 incompatibil
A doua actualizare
xCMB (1,3) ; zCMB 53

Figura 5

ntrebri i probleme propuse

1. Recapitulai metoda B&B i enumerai situaiile n care un program (P ) din lista L nu se


mai ramific (echivalent, nodul (PL) este nod terminal n arborele programelor liniare efectiv
rezolvate)

2. Ce modificri trebuie aduse procedurii B&B pentru a obine toate soluiile optime ntregi (n
caz c sunt mai multe)

Printed by Vasile Teodor NICA 14


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

3. S se adapteze metoda B&B la rezolvarea problemelor n care funcia obiectiv se


minimizeaz.S se aplice metoda B&B la rezolvarea programului:

(min) f 14x1 12x2



( P) 35x1 24 x2 107
x , x 0 intregi
1 2
(vezi problema fermierului din seciunea 1.1 unitatea de nvare 1)

4. Rezolvarea unui program ntreg prin metoda B&B a necesitat aplicarea algoritmului simplex
programelor liniare indicate n arborele din figura 6. n ce ordine au fost rezolvate aceste programe
dac, de fiecare dat cnd un program (P) din lista L a fost ramificat, cele dou noi programe (P 1)
i (P2) au fost nscrise:
i) ambele n capul listei L n ordinea P1 , P2 (regula uzual);
ii) ambele n coada listei L n ordinea P1 , P2;
iii) P1 n capul listei L iar P2 n coada acesteia.
Se reamintete c, n ceeace privete consultarea listei L (care are loc la nceputul fiecrei iteraii),
programul care se selecteaz i se terge din list este cel situat n capul listei!

PL

PL1 PL2

PL11 PL12 PL21 PL22

PL111 PL112 PL211 PL212

Figura 6

5. Rezolvarea cu metoda B&B a unui program liniar n numere ntregi (P), n care funcia
obiectiv se maximizeaz , a necesitat rezolvarea programelor liniare indicate n arborele din figura
7.
a) Precizai soluia optim fracionar x* i optimul fracionar f(x*) precum i soluia optim
ntreag x0 i optimul ntreg f(x0);
b) Indicai pe arcele arborelui restriciile dup care s-a fcut ramificarea;
c) n ce ordine au fost rezolvate cele cinci probleme? Se va presupune c toate actualizrile
listei L s-au operat n capul acesteia!
d) De ce nu s-a continuat ramificarea din nodul (PL2) ?

6. Se consider programele ntregi:

Printed by Vasile Teodor NICA 15


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

x1 2 x 2 2
2 x1 2 x 2 9 x x 2 3 x1 8 x2 19
3x x 11 1 2 6 x 3 x 17
1 2 1 2
a) b) 2 x1 2 x 2 7 c )
x1 , x2 0 intregi x , x 0 intregi x1 , x2 0 intregi
(max)f 5x 1 2 x 2 1 2

(max) f 3x1 5x 2 (max) f 3 x1 2 x2

PL
f = 41.43
x1 = 1.43 ; x2 = 4.24

PL1 PL2
f = 41 f = 38.8
x1 = 1 ; x2 = 4.5 x1 = 2 ; x2 = 3.6

PL11 PL12
f = 37 f = 40
x1 = 1 ; x2 = 4 x1 = 1 ; x2 = 5

Figura 7

Rezolvai prin metoda Branch & Bound programele date (n rezolvarea programelor liniare generate
de metod putei folosi metoda grafic). Pentru fiecare caz, construii arborele T al programelor
liniare efectiv rezolvate.

7. Folosii utilitarul QM pentru rezolvarea programului ntreg:

Printed by Vasile Teodor NICA 16


unitatea de nvare 3 Cercetri Operaionale II
Autor: Vasile Teodor NICA

(max) x 4
8 x 5 x 3x 100
1 2 3

6 x1 9 x 2 8 x3 200

7 x1 6 x 2 8 x3 4 x 4 0
5x1 9 x 2 4 x3 3x 4 0

x1 , x 2 , x3 , x 4 0 intregi

Reconstituii arborele programelor liniare rezolvate pe baza informaiilor furnizate de utilitar.

Printed by Vasile Teodor NICA 17

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