Sunteți pe pagina 1din 19

C API T O LU L I

PROGRAMARE N NUMERE NTREGI


1. Specificul programrii n numere ntregi
Este binecunoscut faptul c modelarea prin programare liniar reprezint un mijloc
puternic i eficace pentru studiul proceselor economice n vederea mbuntirii performanelor
acestora.
O proprietate foarte important a variabilelor de decizie, dintr-un program liniar era aceea
c, o dat cu dou valori permise, puteau lua orice alt valoare intermediar; aceast proprietate
de a putea varia continuu era esenial n fundamentarea metodelor de determinare a soluiilor
optime.
Nu puine sunt situaiile practice, modelate cu ajutorul programrii liniare n care unele
variabile de decizie nu au sens economic dect dac au numai valori ntregi.
De exemplu, dac outputul unei activiti este msurat n uniti indivizibile este clar c
valorile permise ale variabilei care indic nivelul activitii respective trebuie s fie numere ntregi.
La fel, repartizarea personalului muncitor, al utilajelor sau al mijloacelor de transport pe diverse
activiti trebuie exprimat tot prin cantiti ntregi.
Exemplul 1.1 [4] Un fermier are nevoie de 107 funi de ngrmnt pe care l poate procura
fie n saci de 35 funi la preul de 14 $ sacul, fie n saci de 24 funi a 12 $ fiecare. Obiectivul su
este de a cumpra cantitatea necesar de ngrmnt la cel mai mic cost.
Notnd cu x1, x2 numrul sacilor de 35 funi, respectiv 24 funi cumprai de fermier,
modelul situaiei descrise arat astfel:
min f = 14 x1 + x2 costul sacilor cumprai
35 x1 + 24 x2 107 asigurarea achiziionrii cantitii de ngrmnt dorite
x1, x2 0, ntregi
n modelul rezultat, condiia x1, x2 ntregi nseamn pur i simplu c fermierul nu poate
cumpra o jumtate sau o treime de sac; ori cumpr un sac ntreg ori nu. Fr aceast condiie
avem de a face cu o problem uzual de programare liniar.
Poate mai importante sunt situaiile n care trebuie luate decizii de tip da sau nu ca de
exemplu:
se poate aproba realizarea unui anumit proiect de dezvoltare ?
se poate iniia o activitate implicnd un anumit cost fix de pregtire ?
se poate amplasa o facilitate (unitate productiv, depozit, magazin) ntr-un anumit loc ?
Existnd doar dou posibiliti, de a amplasa sau de a respinge, asemenea decizii pot fi
reprezentate prin variabile cu numai dou valori permise, 0 sau 1:
1

1, dac decizia este afirmativ;


0, dac decizia este negativ.
Exemplul 1.2 [7 ] n cadrul unui proiect mai general de extindere i dezvoltare, conducerea
unei firme studiaz oportunitatea construirii unei noi fabrici fie n oraul A, fie n oraul B, poate
chiar n amndou i a cel mult un depozit ntr-unul din cele dou orae, alegerea amplasamentului
fiind ns condiionat de construirea unei fabrici n localitatea respectiv. n tabelul 1.1. sunt
indicate: valoarea prezent net a diferitelor alternative, capitalul necesar acestor investiii i
capitalul disponibil pentru ntregul proiect de dezvoltare.
milioane $
Nr.
Alternativa decizional
Variabila
Valoarea
Capitalul
crt.
de decizie
prezent net
necesar
1 Construirea unei fabrici n A
x1
9
6
2 Construirea unei fabrici n B
x2
5
3
3 Construirea unui depozit n A
x3
6
5
4 Construirea unui depozit n B
x4
4
2
Capital disponibil
10
Tabelul 1.1.
unde xj =

1 dac alternativa decizional j se aprob


j = 1, 2, 3, 4.
0 dac alternativa decizional j se respinge

Condiiile specificate n proiectul de dezvoltare se formalizeaz astfel:


cel mult un depozit poate fi construit: x3 + x4 1
(deoarece x3, x4 nu pot lua dect valorile 0 sau 1, se elimin posibilitatea construirii a dou depozite
n ambele orae deoarece x3 = 1, x4 = 1 nu satisfac inegalitatea !)
depozitul nu poate fi construit n lipsa unitii productive: x3 x1, x4 x2
(este clar c x1 = 0 implic cu necesitate x3 = 0, etc.)
ncadrarea n capitalul disponibil: 6 x1 + 3 x2 + 5 x3 + 2 x4 10
maximizarea valorii prezente nete totale a obiectivelor care se vor realiza:
9 x1 + 5 x2 + 6 x3 + 4 x4 max
Rezult urmtorul model matematic:
max f = 9 x1 + 5 x2 + 6 x3 + 4 x4
: 6 x1 + 3 x2 + 5 x3 + 2 x4 10
x3 + x4 1
- x1
+ x3
0
- x2
+ x4 0
xj 1

ntregi xJ {0, 1} j = 1, 2, 3, 4

xj 0
Observaie: Dac s-ar fi pus condiia construirii unui singur depozit ntr-unul din cele dou
orae, atunci inegalitatea x3 + x4 1 trebuie schimbat n x3 + x4 = 1.
Pentru cele ce urmeaz este necesar s precizm civa termeni.
2

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 utilizeaz 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.
Exemplul 1.2. arat c utilizarea variabilelor ntregi aduce un plus de flexibilitate n
modelarea unor situaii practice. Aceast flexibilitate cost ns destul de mult, deoarece
programele ntregi sunt mult mai greu de rezolvat dect programele liniare uzuale (adic n variabile
continue). Fr a intra deocamdat n amnunte este suficient s amintim c dac n prezent a
devenit o obinuin rezolvarea unor programe liniare cu mii de variabile continue (firete utiliznd
programe comerciale de calculator), un program cu mai puin de 100 variabile ntregi poate cauza
mari dificulti !
Pentru evitarea complicaiilor se poate aplica urmtoarea schem
de rezolvare
aproximativ a programelor ntregi.
Se ignor condiia ca variabilele s ia numai valori ntregi i se rezolv programul relaxat
care este un program liniar uzual. Dou situaii sunt posibile:
soluia optim a problemei relaxate are toate componentele ntregi; aceasta va fi, evident i
soluia optim a programului ntreg original;
unele componente ale soluiei optime a programului relaxat sunt fracionare. n aceast
situaie componentele fracionare vor fi rotunjite inferior sau superior la valori ntregi, n ideea
c soluia optim ntreag este situat n apropierea soluiei optime fracionare.
Operaia de rotunjire trebuie astfel fcut nct rezultatul s fie o soluie a problemei, adic s
verifice restriciile. este firesc s acceptm soluia continu prin rotunjire, cel puin ca soluie
suboptimal; n multe contexte practice acest lucru este justificat prin faptul c valorile permise
variabilelor sunt suficient de mari astfel nct efectul rotunjirii s fie neglijabil.
Nu puine sunt situaiile n care strategia de rezolvare fie i aproximativ prin rotunjirea
soluiei optime fracionare nu este recomandabil. Uneori se ntmpl ca numrul alternativelor de
rotunjire s fie foarte mare implicnd un volum apreciabil de calcule suplimentare pentru
verificarea i sortarea acestora. Pe de alt parte, pentru unele programe ntregi n care variabilele iau
valori destul de mici, ca de exemplu 0 sau 1, este posibil ca distana dintre optimul ntreg i cel
fracionar s fie att de mare nct simpla rotunjire s nu duc la o soluie acceptabil.
Exemplul 1.3 Pentru programul ntreg din exemplul 1.1. soluia optim a programului
relaxat:
min f = 14 x1 + 12 x2
35 x1 + 24 x2 107
x1 0, x2 0
are componentele:

x 1 3

2
, x 2 0;
35

2
f x 42
5

Sunt evidente urmtoarele rotunjiri care conduc la soluii admisibile:

x1 4, x 2 0 ; f x 56; 4 35 140 funti


x1 3, x1 1 ; f x 54;
3 35 1 24 129 funti
A doua soluie - mai bun este totui departe de soluia optim ntreag:
x 10 1,

x 02 3

; f x 0 50; 1 35 3 24 107 funti

2. Domenii de aplicare ale programrii n numere ntregi. Exemple


Situaiile practice a cror modelare necesit utilizarea variabilelor ntregi sunt extrem de
numeroase i exemplele urmtoare nu acoper nici pe departe aceast varietate. Dup cum vom
vedea n urmtorul capitol, situaiile combinatoriale pot fi modelate cel puin n principiu ca
probleme de programri n numere ntregi.
2.1. Problema monezilor Cum poate fi pltit o sum de bani astfel nct:

numrul tipurilor valorice de monezi utilizate la plat s nu depeasc o limit dat;


numrul total al monezilor necesare plii s fie minim.

Pentru formalizare avem nevoie de urmtoarele notaii:


S = suma de plat,
n = numrul total al tipurilor valorice de monezi disponibile pentru plat;
p = numrul maxim de tipuri valorice de monezi ce pot fi utilizate la plata sumei S;
aj valoarea monezii de tip j;
mj numrul monezilor de tip j disponibile n cas.
Introducem variabilele:
xj = numrul monezilor de tip j utilizate la plata sumei S;
Rezult urmtorul program ntreg

min f

xj
j1

a jx j S

j1

0 xj mjyj

j=1, ...n

yj p

j1

xj 0 ntregi; yj {0, 1}

j = 1, ...n

2.2. Alegerea proiectelor de investiii O firm este interesat n mai multe proiecte de
4

investiii pe care ar putea s le realizeze n civa ani dar, din cauza bugetului limitat, va trebui s se
limiteze la o parte din ele. Proiectul j aduce firmei n caz de finalizare un profit estimat la c j
dolari j = 1, ... n i necesit investiii anuale n valoare de a ij dolari i = 1, ... m. Capitalul disponibil
pentru anul i este bi. Se pune problema alegerii acelor proiecte care s aduc firmei un profit total
maxim cu condiia nedepirii capitalului disponibil anual.
Pentru formalizare introducem variabile bivalente
1 dac proiectul j este acceptat
0 dac proiectul j este respins

xj =

Obinem programul bivalent:

max f

c jx j
j1

a ij x j b i

i 1,...m

j1

xj {0, 1}

j = 1, ... n

Observaie Utilizarea variabilelor bivalente ne permite s modelm o serie de situaii


speciale. De exemplu:
cel mult unul din primele trei proiecte poate fi acceptat: x1 + x2 + x3 1;
numai unul din primele trei proiecte poate fi acceptat: x1 + x2 + x3 = 1;
nu poate fi acceptat proiectul 2 dac proiectele 1 i 4 sunt respinse: x2 x1 + x4
etc.
2.3. Elaborarea programelor de producie cu costuri de pregtire
S considerm programul liniar
n

a ij x j b i

i 1,...m

j1

xj 0

min f

j = 1, ... n

c jx j
j1

n care x1, x2, ... xn reprezint nivelul unor activiti productive iar c 1, c2, ...cn sunt costurile unitare
aferente. Ipoteza uzual de liniaritate presupune proporionalitatea direct ntre costul unei
activiti i nivelul la care este operat activitatea respectiv. Exist ns situaii n care demararea
unei activiti necesit un cost de pregtire, independent de nivelul la care activitatea va fi operat.
Costul activitii j va avea forma:
cj (xj) =

0 dac xj = 0
qj + cjxj dac xj > 0

Pentru a ncorpora n modelul matematic anterior aceste elemente introducem urmtoarele bivalente
yj =

1 dac activitatea j va fi operativ la un nivel xj > 0


0 n caz contrar

Rezult programul mixt:


5

a ij x j b i

i 1,...m

j1

xj mjyj
xj 0, yj {0,1}

min f

j = 1, ... n
j = 1, ... n

j1

j1

unde mj reprezint o
limit
superioar
a
nivelului xj al activitii j

q jy j c jx j

2.4 Stabilirea programului de zbor al avioanelor unei companii de transporturi aeriene


O companie de transporturi aeriene are n dotare mai multe avioane de diferite tipuri pe care
i impune s le utilizeze ct mai bine pe rutele de transport utilizate de aceast companie.
Datele problemei:
m = numrul tipurilor de avioane;
n = numrul rutelor servite de companie;
ci = capacitatea maxim de transport a unui avion de tipul i (nr. locurilor disponibile);
di = numrul avioanelor de tipul i disponibile;
bj = numrul clienilor poteniali pe ruta j;
pj = profitul companiei pe cltor transportat pe ruta j;
aij = numrul de zboruri pe care un avion de tipul i l poate face pe ruta j ntr-o perioad (zi,
decad, lun);
qij = costul operrii unui zbor al unui avion de tipul i pe ruta j
Obiectiv:
repartizarea avioanelor pe rute i stabilirea numrului de zboruri ce trebuie efectuate la
nivelul unei perioade astfel nct cererile de transport s fie raional fcute la cel mai mic cost.
Variabile modelului:
xij = numrul avioanelor de tipul i rezultate pe ruta j;
yij = numrul de zboruri planificat a se realiza cu avioane de tipul i pe ruta j ntr-o perioad.
Funcia obiectiv. Avem dou cazuri:
1) Se au n vedere numai costurile de operare ale diferitelor zboruri:

min f1

m n

q ij y ij

(2.1.)

j1ji

2) La costurile de operare se adaug i costurile de penalizare pentru locurile libere. Pe


m

ruta j numrul locurilor libere este dat de diferena c i y ij b i ; astfel c expresia cheltuielilor de
i 1

penalizare identificat cu profitul pierdut este:

n
m n
n
m

p j c i y ij b i c i p j y ij p j b j
j1 i 1
j1
i 1 j1

Cheltuielile totale vor avea expresia:


6

m n

m n

m n

i 1 j1

i 1 j1

j1

i 1 j1

q ij y ij c i p j y ij p j b j q ij c i p j y ij p j b j
j1

astfel c funcia obiectiv devine:

min f 2

m n

q ij c i p j y ij
i 1 j1

(2.2.)

expresia p j b j fiind o constant ce nu afecteaz optimizarea.


j1

Restricii:
ncadrarea aparatelor repartizate n numrul disponibil de avioane
n

x ij d i

j1

i = 1, ... m

(2.3.)

condiia de realizare a zborurilor planificate n funcie de numrul avioanelor repartizate


y ij a ij x ij

i = 1, ... m; j = 1, ...m

(2.4.)

satisfacerea cererilor de transport:


m

c i y ij b j j = 1, ... m

(2.5.)

i 1

Condiii impuse explicit variabilelor:


xij 0, yij 0 ntregi i = 1, ... m; j = 1, ... n

(2.6.)

Atand condiiilor 2.3. 2.6. funciile obiectiv (2.1.) i (2.2.) se obin dou programe
ntregi totale.
3. Particularitile mulimii soluiilor admisibile ale unui program ntreg
S considerm urmtorul program ntreg total (P) mpreun cu programul relaxat (PL)
obinut din (P) prin eliminarea cerinei ca variabilele s ia numai valori ntregi:
Programul ntreg (P)
max f = 3 x1 x2
3 x1 2 x2 3
5 x1 + 4 x2 10
2 x1 + x2 5
x1, x2 0
x1, x2 ntregi
Ne propunem:

Programul relaxat (PL)


(max) f = 3 x1 x2
3 x1 2 x2 3
5 x1 + 4 x2 10
2 x1 + 2 x2 5
x1, x2 0

s rezolvm grafic cele dou programe;


s punem n eviden principalele proprieti ale mulimilor de soluii admisibile ale celor
dou programe. Analiza comparativ a acestor proprieti ne va permite degajarea cel puin la
nivel de principiu a unor metode de rezolvare (exact) a programelor ntregi.
7

Terminologie, 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.
Vizualizm mulimile AP i APL
Reamintim c pentru reprezentarea grafic a mulimii APL se fac urmtoarele operaii:
se reprezint grafic dreptele:

d1 3 x1 2 x2 = 3
d2 5 x1 + 4 x2 = 10
d3 2 x1 + x2 = 5
i se identific semiplanele n care au loc cele trei restricii i cele dou condiii de nenegativitate.
APL va fi intersecia celor cinci semiplane puse n eviden mai sus adic poligonul simplu
haurat DFGH
x2
d3
D

dreapta de nivel f 3x 1 x 2

max f

d2

2
a funciei obiectiv
3

soluia optim NTREAG x0=(1,2)


optimul NTREG f(x0)=1

B
A
H

13 9
,
7 7
30

optimul FRACIONAR f x
7

soluia optim FRACIONAR x

x1

Fig. 3.1.

Pentru a gsi soluia optim fracionar se reprezint grafic o dreapt de nivel a funciei
obiectiv i se stabilete direcia de translatare a acesteia corespunztoare maximizrii. Rezult

30
13 9
, vrful F din desen optimul fracionar avnd valoarea f x
.
7
7
7

Prin simpl inspecie se constat c mulimea soluiilor admisibile ntregi ale programului
(P) se compune din cinci puncte:
AP = {A(1,2), B(0,3), C(0,4), D(0,5), E(1,3)}
Funcia obiectiv f are valoarea maxim n A(1,2); prin urmare soluia optim ntreag este
x =(1,2) iar optimul ntreg are valoarea f(x0) = 1.
Comparnd mulimile AP i APL se pot formula urmtoarele concluzii i n cazul general:
0

1) APL este o mulime n care fiecare punct este nconjurat de alte puncte din mulimi
orict de apropiate. Ca urmare, teoria clasic a optimizrii, bazat dup cum se tie pe posibilitatea
efecturii unor deplasri infinitesimale n jurul unui punct, este direct aplicabil.
Prin contrast, AP este o mulime rar, adic orice punct din ea posed o vecintate suficient
de mic n care nu se mai afl alte puncte din mulime. Aplicarea teoriei amintite este n acest caz
lipsit de sens.
2) APL este o mulime convex i mai mult poliedral avnd un numr finit de vrfuri.
Aceste proprieti, plus liniaritatea funciei obiectiv, ne asigur c soluia optim fracionar se
gsete ntr-unul din vrfuri (conform teoremei centrale a programrii liniare). Cercetarea
sistematic a mulimii vrfurilor lui APL cu ajutorul algoritmului simplex conduce la optimul
fracionar ntr-un numr finit de pai.
Cu rare excepii, soluia optim ntreag care este la urma urmei o soluie admisibil
problemei relaxate se gsete n interiorul mulimii APL i ca urmare nu este nici mcar generat
de ctre algoritmul simplex.
3) S considerm anvelopa convex a mulimii AP, adic cea mai mic mulime convex
care conine AP. n fig. 3.1. aceast anvelop este reprezentat de poligonul dublu haurat ABDE.
Prin construcie vrfurile anvelopei sunt soluii admisibile ntregi ale programului (P).
Dac vom maximiza funcia obiectiv f pe anvelopa convex a soluiilor admisibile ntregi
vom regsi soluia optim ntreag x0.
n concluzie, putem 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 ABDE se compune din
soluiile sistemului de inecuaii
2 x1 + x2 5
x1 + x2 3
x1 1
x1 0, x2 0
n cazul general descrierea este practic imposibil de fcut. Totui am putea recupera ceva din
aceast idee: adugnd la problema relaxat PL un numr de restricii suplimentare judicios alese,
numite tieturi, se pot ndeprta din APL o serie de poriuni astfel nct soluia optim ntreag s
devin vrf n mulimea rmas vezi fig. 3.2.

Tietura 1
Tietura 2

x0

x0

APL 1

APL
max f

APL 2

APL 2

max f

max f

max f

Fig. 3.2
n acest fel soluia optim ntreag va putea fi detectat de ctre algoritmul simplex.
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 2 n soluii
admisibile ntregi. Fr a influena generalitatea concluziilor, se poate presupune c orice program
ntreg are un numr finit de soluii ntregi.
Aceste constatri ne vor permite s nelegem mai bune fundamentele, performanele i
limitele metodelor de rezolvare a programelor ntregi ce vor fi prezentate n urmtoarea seciune.
4. Metode de rezolvare ale programelor ntregi
Urmtoarele consideraii vizeaz programul ntreg n form standard cu m ecuaii i n
variabile:
n

a ij x j b i

j1

i 1,...m

xj 0
j = 1,...n
xj ntregi

(P)

max f

Ax=b
x0
x ntreg ( cu componente ntregi)
(max) f = cx

c jx l
j1

n care toate constantele aij, bi, cj sunt numere ntregi.


Forma general de mai sus acoper i cazul particular important al programelor bivalente prin
introducerea restriciilor xj 1 , j = 1, ... n Ca i pn acum (PL) va desemna programul relaxat
dedus din (P) prin eliminarea condiiei de integritate impus variabilelor.
Vom presupune n mod constant 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 optimul fracionar
unde nseamn rotunjirea ntreag inferioar a numrului real .
Ne propunem n continuare s dm o clasificare a metodelor i algoritmilor de rezolvare a
10

programului ntreg general (P); observaiile i concluziile din seciunea prezentat vor juca un rol
esenial.
1) O mare parte din aceste metode reduc rezolvarea programului ntreg (P) la rezolvarea
unei secvene finite i 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:
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 - vezi fig. 3.2.
Din acest motiv aceste restricii suplimentare se mai numesc i tieturi sau plane de
seciune.
Din categoria algoritmilor bazai pe tieturi fac parte algoritmii discret i ciclic datorai lui
Gomory (1960) i algoritmul primal al lui Young i Glover (1972).
2) Faptul c un program ntreg are (sau poate fi fcut s aib) un numr finit de soluii
sugereaz un alt mod de rezolvare a programelor ntregi bazate pe enumerarea total sau parial
a acestor soluii. Enumerarea total este evocat doar ca posibilitate pentru c numrul soluiilor
admisibile ntregi, dei finit este de regul foarte mare.
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. Un exemplu reprezentativ l constituie algoritmul aditiv al lui Bala (1965).
3) Punerea n eviden a soluiei optime ntregi x0 situat de regul n interiorul mulimii
soluiilor admisibile ale problemei relaxate se poate face i n urmtorul mod (Dakin, Driebeck,
1964).
S presupunem c am rezolvat problema relaxat PL, cu ajutorul algoritmului simplex
obinnd soluia optim fracionar x*. Dac x* are toate componentele ntregi, am terminat:
x* x0 soluia optim ntreag a programului original (P)
n caz contrar, una sau mai multe din componentele x 1 , x 2 ,... ale soluiei x* nu sunt ntregi; s
presupunem de exemplu c x 1 este fracionar. Este clar atunci c soluia optim ntreag cutat va
verifica una din urmtoarele inegaliti mutual exclusive:

x 1 x 1

saux 1 x 1 1

(unde s-a notat cu a partea ntreag a numrului real a ).


Considerm programele liniare obinute prin extinderea relaxatei PL cu fiecare din cele dou
inegaliti:
11

PL
PL1
x1

PL
PL2


x 1

x 1 x 1 1

Vom spune c am ramificat problema (PL) dup variabila x1.

x x1 , x 2

APL 1
APL 2

x 1 x 1

x 1 x 1 1

x1

Fig. 4.1.

Este uor de artat c:


Mulimile de soluii admisibile APL 1 i APL 2 ale celor dou programe noi sunt submulimi
stricte n APL.
A1 A2 = AP i A1 A2 =
unde A1, A2 sunt mulimile de soluii admisibile ntregi ale programelor PL1 i PL2. 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 vezi figura 4.1.
Rezolvm n continuare PL1; putem face acest lucru prin reoptimizare. S presupunem c
PL1 este compatibil; n soluia sa optim, notat x* 1 prima component va fi cu siguran ntreag:
x 11 x 1 .
n ipoteza ca a doua component
liniare dup modelul de mai sus:

1
x
2

este fracionar vom deriva alte dou noi programe

PL1

PL1

PL11

PL12
12

x 2 x 21

x 2 x 21 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, reunificarea 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 vom vizualiza procesul de ramificare printr-un graf arbore T ale
crui moduri 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 unic predecesor. Orice nod care
nu este nod terminal are doi succesori.
PL11

x 1 x 1

x 2 x 21

PL11

PL1

x 1 x 1 1

PL11

x 2 x 21 1

PL12

Introducem urmtoarele variabile:


xCMB (vector) care reine cea
mai bun soluie admisibil ntreag
la un moment sau altul al derulrii
procesului de ramificare
zCMB, care reine valoarea
funciei obiectiv n xCMB.
La start: xCMB =
zCMB = -

Figura 4.1
Fiecare 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) optimul ntreg z
Prin urmare, dac pentru o problem PL rezultat din ramificare, avem:
z zCMB
13

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 !
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 5x1 3x 2
x 2x 2
1 2

( P) x1 x 2 2
2x 2x 7
1 2
x1 , x 2 0 , intregi
START

Se iniializeaz: zCMB = - i xCMB = (locaia vid)


Se rezolv cu algoritmul simplex relaxata problemei (P):

(PL)

(max) f = 5 x1 + 3 x2
- x1 + 2 x2 2
x1 x2 2
2 x1 + 2 x2 7
x1, x2 0
2
3

5
6

Se gsete soluia optim fracionar: x 1 1 , x 2 1 ; f x 13

5
6

Se conchide c optimul ntreg nu poate depi marginea superioar:


5

z 13 13
6

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 (PL 1) dedus din (PL) prin
adugarea restriciei x2 1.
Se gsete soluia ntreag x1 = 0, x2 = 1; f = 3 pe care o reinem:
xCMB = (0, 1)

zCMB = 3

tim acum c optimul ntreg este cel puin 3. Revenim la problema (PL).
Iteraia 2 Se rezolv cu algoritmul simplex programul liniar (PL 2) dedus din (PL) prin
adugarea restriciei x2 2.
14

Se gsete soluia fracionar x 1 1

1
2

x 2 2; f 13

1
2

Se conchide c soluiile admisibile ntregi ale problemei (PL 2) care sunt i soluii ale
problemei iniiale (P) nu pot oferi funciei obiectiv o valoare mai mare dect marginea:

Ramificm dup variabila x1.

z 2 13 13
2

Iteraia 3 Se rezolv problema (PL21) obinut din PL2 adugnd restricia x2 1.


1
2

Rezult soluia fracionar x1 1, x 2 2 ;

f 12

1
2

Dac soluia optim a programului (P) s-ar gsi printre soluiile ntregi ale problemei PL 21,

optimul ntreg n-ar depi marginea z 21 12 12 .


2

Ramificm dup variabila x2.


Iteraia 4 adugm la (PL) restricia x2 2, obinnd un nou program liniar PL 211.
Rezolvarea lui conduce la soluia ntreag x 1 = 1, x2 = 2, f = 11 evident mai bun dect soluia
ntreag depozitat n xCMB. n consecin actualizm:
xCMB = (1,2)

zCMB = 11

Conchidem c optimul ntreg al problemei originale (P) este mai mare sau egal cu 11.Revenim la
problema PL21.
Iteraia 5 De aceast dat adugm la PL 21 restricia x2 3. Programul PL212 rezultat are
1
2

soluia fracionar x 1 , x 2 3; f 11

1
2

S observm c eventualele soluii ntregi ale acestei probleme nu pot oferi funciei obiectiv

o valoare superioar marginii z 212 11 11; cum valoarea funciei obiectiv n cea mai bun
2

soluie ntreag gsit pn acum este chiar 11, conchidem c ramificnd PL 212 nu vom gsi soluii
ntregi mai bune dect actuala xCMB. n consecin ne ntoarcem din nou la problema PL21.
Recapitulnd, studiul problemei PL21 a produs o soluia ntreag care a fost reinut precum
i concluzia c PL21 nu are soluii ntregi mai bune dect cea gsit. Ne ntoarcem la problema PL 2
din care am derivat PL21.
Iteraia 6 Adugm acum la PL2 restricia x1 2. Noul program PL22 se dovedete a fi
incompatibil. Ne ntoarcem din nou la problema PL2 cu concluzia c actuala xCMB este cea mai bun
soluie ntreag a sa. Mai departe, revenim la problema PL din care am derivat PL2.
n acest moment putem spune c am examinat direct sau indirect - toate soluiile ntregi ale
problemei (P), deoarece acestea erau, fie soluii ntregi ale problemei PL1 deja studiate, fie ale
problemei PL2 de asemeni examinate.
Soluia ntreag reinut n xCMB este din cea mai bun soluie ntreag adic este soluia
optim a problemei originale (P).
Comentariile de mai sus sunt sintetizate n arborele T din fig. 4.2.

15

START

PL
f=13 5/6
x1 = 5/3, x2 = 11/6

xCMB =

zCMB = -
Actualizare
xCMB (0,1)
zCMB 3

x2 1

z = 13
x2 3
PL2
f = 13
x1 = 3/2; x2 = 2

PL1
f=3
x1 = 0, x2 = 1
Ne ntoarcem
n nodul PL

x2 1

x1 1
PL21
f = 12
x1 = 1 x2 = 5/2

z2 = 13

z21 = 12

PL22
problem
incompatibil
Ne
ntoarcem
rdcina PL STOP

Actualizare
xCMB (1,2)
zCMB 11

PL212
f = 11
x1 = 1/2, x2 = 3

PL211
f = 11
x1 = 1
x2 = 2

Ne ntoarcem
n nodul PL21

z212 = 11 = zCMB !!

Marginea superioar z = 11 arat c nu putem obine


soluii admisibile ntregi mai bune dect actuala xCMB !
Ne ntoarcem n nodul PL2

Fig. 4.2.
Ordinea de rezolvare a problemelor:
PL PL1 PL2 PL21 PL211 PL212 PL22
Soluia optim ntreag: x0 = xCMB = (1, 2); Optimul ntreg f (x0) = 11
Observaii
fracionar !

1) Utilitarul QM ramific o problem dup variabila cu cea mai mare parte

2) Utilitarul QM oprete ramificarea unui nod PL numai dac z < zCMB n


ideea gsirii tuturor soluiilor admisibile ntregi. n cazul de fa i nodul PL 212 a fost ramificat !
vezi fig.4.3
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.

16

Abia acum
utilitarul QM
decide s nu
mai ramifice

PL212

x1 0

PL2121
f = 10
x1 = 0
x2 = 7/2

PL2121
z2121 = 10 < zCMB

problem incompatibil

Fig 4.3
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.
n practic, metoda se conbin cu alte procedee (cum ar fi metoda planelor de seciune) care
pot oferi rapid soluii admisibile ntregi suficient de bune micorndu-se astfel drastic numrul
ramificrilor.
Algoritmul descris este o specializare a unei metode mai generale denumite branch &
bound.
n principiu aceast metod 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.
Ideea metodei B & B este de a gsi elementul optimal fr a inspecta toate elementele ntre
care acesta se gsete; de aceea se spune c B & B este o schem de enumerare parial.
5. ntrebri i probleme
1. Enumerai sursele de apariie ale modelelor de programare n numere ntregi.
2. Explicai termenii: relaxata unui program ntreg, soluie optim fracionar, soluie optim
ntreag, optim fracionar, optim ntreg.
3. Explicai principiul metodelor de rezolvare a programelor ntregi bazate pe tieturi.
4. Explicai eventual pe baza unui exemplu - metoda Branch & Bound.
5. n rezolvarea unui program liniar n numere ntregi (P) n care funcia obiectiv se maximizeaz
s-a ajuns la urmtorul arbore al programelor liniare efectiv rezolvate:
17

PL
f = 41.43
x1 = 1.43 ; x2 = 4.24

PL1
f = 41
x1 = 1 ; x2 = 4.5

PL11
f = 37
x1 = 1 ; x2 = 4

PL2
f = 38.8
x1 = 2 ; x2 = 3.6

PL12
f = 40
x1 = 1 ; x2 = 5

Figura 5.1
a)
b)
c)
d)

Precizai soluia optim fracionar x* i f(x*) i soluia optim ntreag x0 i f(x0);


Indicai pe arcele arborelui restriciile dup care s-a fcut ramificarea;
n ce ordine au fost rezolvate cele cinci probleme?
De ce nu s-a continuat ramificarea din nodul (PL2) ?

5. Se consider programele ntregi:

2 x1 2 x 2 9
3x x 11
1 2

a)

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

x1 2 x 2 2
x x 2
1 2

3 x1 8 x2 19
6 x 3 x 17
1 2

b) 2 x1 2 x 2 7
c )
x , x 0 intregi
x1 , x2 0 intregi
1 2

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

Pentru fiecare din ele:


a) reprezentai grafic mulimea soluiilor admisibile ale problemei relaxate;
b) punei n eviden soluiile admisibile ntregi i acoperirea convex a acestora;
determinai grafic soluiile optime fracionar i ntreag precum i optimele fracionar i ntreg.
6. Din produsul B sunt necesare cel puin b uniti. Produsul se poate obine pe dou instalaii I 1 i
I2 dar numai n cicluri complete de fabricaie ( i aceasta datorit unei operaii de coacere prevzut
n tehnologia de fabricaie). Pe fiecare ciclu instalaia I1 produce p1 uniti din B iar I2 produce p2
uniti din B. Un ciclu de fabricaie dureaz a1 ore pe I1 i a2 ore pe I2. Fondurile de timp disponibil
ale celor dou instalaii sunt de F1 ore respectiv F2 ore. Costurile de fabricaie se ridic la c1 u.m.
(uniti monetare) pe I1 i c2 u.m. pe I2 pe fiecare ciclu. Scriei un program ntreg pentru producerea
cantitii minimale B cu cheltuieli totale minime. Indicaie: se vor lua ca variabile de decizie
numrul ciclurilor de fabricaie planificate a se realiza pe cele dou instalaii.
18

7. Un produs complex P se compune din 4 uniti din componenta A i 3 uniti din componenta B.
Componentele A i B pot fi realizate prin trei procese de fabricaie diferite n cadrul crora se
utilizeaz resursele R i S disponibile n cantitile de 100 uniti respectiv 200 uniti. Realizarea
unui proces de fabricaie necesit anumite cantiti din resursele R i S i are ca rezultat producerea
anumitor cantiti din componentele A i B conform datelor din urmtorul tabel:
Proces
1
2
3

Intrri (uniti specifice) Ieiri (uniti specifice)


din R
din S
din A
din B
8
6
7
5
5
9
6
9
3
8
8
4

Tabelul 5.1
S se scrie un program ntreg pentru determinarea numrului maxim de produse complexe P ce pot
fi realizate din resursele date. Indicaie: se va nota cu x 1 , x2 , x3 numrul de procese 1,2 respectiv 3
necesare i cu y numrul produselor complexe P rezultate.
8. Folosii utilitarul QM pentru rezolvarea programului ntreg:

(max) x 4

8x 5x 3x
2
3
1

6 x1 9 x 2 8 x 3

100
200

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

x1 , x 2 , x3 , x 4 0 intregi
(Este vorba de modelul matematic al problemei precedente n care variabila y a fost renotat x 4)
Interpretai soluia obinut.
9. Rezolvai prin metoda Branch & Bound programele ntregi din ex.5. n rezolvarea programelor
liniare generate de metod se va folosi metoda grafic. Construii arborele T al programelor liniare
efectiv rezolvate.
10. Descriei urmtoarele probleme:
problema monezilor;
problema alegerii proiectelor de investiii;

problema stabilirii programului de producie cu costuri fixe de pregtire;

problema stabilirii orarului de zbor al avioanelor.


Particularizai aceste modele pe date concrete plauzibile.

19

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