Sunteți pe pagina 1din 38

OPTIMIZARE COMBINATORIALĂ

Conf. univ. dr. Silviu Bârză

I. INTRODUCERE

Vom presupune că optimizarea funcŃiilor se realizează prin maximizare şi că


restricŃiile la care sunt supuse necunoscutele sunt liniare. De asemenea, ca în toate
cazurile uzuale, vom presupune că variabilele modelelor sunt nenegative. Astfel, putem
scrie problemele generale de programare liniară întregi mixte drept:

(MIP) {
max cx + hy Ax + Gy ≤ b, x ∈ Z +n , y ∈ R+p }
unde Z +n este mulŃimea vectorilor întregi nenegativi de dimensiune n, R+p este mulŃimea
vectorilor reali nenegativi de dimensiune p. x=(x1, x2, …, xn) şi y=(y1, y2, …, yp) sunt
variabilele modelului. InstanŃa unei probleme este dată de specificarea datelor c, h, A, G
şi b, unde c este un vector de dimensiune n, h este un vector de dimensiune p, A este o
matrice m × n , G este o matrice m × p şi b este un vector de dimensiune m. Problema
este numită mixtă deoarece sunt prezente atât variabilele întregi (discrete) cât şi cele reale
(continue). Putem presupune că toate mulŃimile de date sunt raŃionale, presupunere care
devine naturală, chiar dacă se restrânge generalitatea teoretică, datorită implicării
calculatoarelor digitale în rezolvarea practică a problemelor de optimizare.
MulŃimea

{
S = x ∈ Z +n , y ∈ R+n Ax + Gy ≤ b }
se numeşte regiune admisibilă iar ( x, y ) ∈ S soluŃie admisibilă. O instanŃă a problemei
este admisibilă dacă S ≠ ∅ . FuncŃia z=cx+hy este numită funcŃie obiectiv. Un punct
admisibil (x0,y0) pentru care

cx 0 + hy 0 ≥ cx + hy pentru orice ( x, y ) ∈ S

este numită soluŃie optimă, iar valoarea z0=cx0+hy0 este valoarea optimă a soluŃiei.
O instanŃă admisibilă pentru (MIP) poată să nu aibă o soluŃie optimă şi vom spune
că instanŃa este negărginită dacă pentru orice ω ∈ R există ( x, y ) ∈ S astfel încât
cx+hy>ω şi în acest caz vom putea folosi notaŃia z 0 = ∞ .
Un caz special pentru (MIP), în care nu există variabile continue, poată numele de
problemă de programare liniară întreagă (pur întreagă) şi poate fi scrisă prin:

(IP) {
max cx Ax ≤ b, x ∈ Z +n }

1
Un alt caz special pentru (MIP), în care nu există variabile discrete, este
reprezentat de clasica problemă de programare liniară dată sub forma:

(LP) {
max hy Gy ≤ b, y ∈ R+p }
În foarte multe cazuri practice de optimizare, problemele consideră variabilele
întregi ca relaŃii logice şi astfel ele sunt restrânse la valorile 0 şi 1. Se obŃin astfel
problemele (0-1 MIP), respectiv (0-1 IP) în care x ∈ Z +n se înlocuieşte prin x ∈ B n , unde
Bn este mulŃimea vectorilor binari de dimensiune n.
Un caz special de problemă (IP) apare atunci când se consideră N={1, 2, …, n} ca
~
mulŃime finită de valori şi pentru F ⊆ N definim c(F ) = ∑ j∈F c j . Notăm cu F o
familie de submulŃimi ale lui N şi definim problema

(CP) { ~
max c( F ) F ∈ F }
care este o problemă generică de optimizare combinatorială. Vedem în plus că
problemele (0-1 IP) sunt cazuri particulare pentru (CP). Cele mai multe din problemele
(CP) practice sunt de fapt probleme de tipul (0-1 IP).
O zonă importantă şi largă de aplicare a problemelor (CP) priveşte gestionarea şi
utilizarea eficientă a resurselor pentru creşterea efectelor economice. Astfel de probleme
includ distribuŃia bunurilor, ordonanŃarea producŃiei, planificarea economică (cum este
cazul problemelor de buget), design-ul în diverse activităŃi economice (de exemplu pentru
reŃelele de comunicaŃii şi transport) şi, de ce nu, problema înlocuirii utilajelor.
În domeniul matematicii, modelele (CP) se aplică la subiecte legate de
combinatorică, teoria grafurilor şi logică matematică. AplicaŃii recente au implicat
modele combinatoriale în biologia moleculară, fizica energiilor înalte şi cristalografia cu
raze X.
O serie de probleme de optimizare combinatorială, mai exact de factură 0-1, pot fi
considerate drept clasice pentru acest subiect şi dăm în continuare câteva exemple.

I.1. Problema rucsacului 0-1

Presupunem existenŃa a n proiecte, fiecare având un cost aj şi un efect cj.


Proiectele de realizează sau nu, fără a fi posibile variate intermediare. Pentru realizarea
proiectelor se poate utiliza un buget dat de valoare b. Se pune problema alegerii unei
submulŃimi a proiectelor care să maximizeze suma efectelor fără depăşirea bugetului. Din
punct de vedere formal problema poate fi dată prin exprimarea

 n n 
max ∑ c j x j ∑a j x j ≤ b, x = ( x1 , x 2 , … , x n ) ∈ B n 
 j =1 j =1 

2
I.2. Problema asocierii

Presupunem că există n persoane şi m locuri de muncă (n ≥ m ) . Fiecare loc de


muncă trebuie ocupat de o singură persoană, iar o persoană poate ocupa cel mult un loc
de muncă, Costul ca persoana j să presteze munca în locul i este cij. Se pune problema
asocierii persoanelor la locurile de muncă astfel încât să se minimizeze costul total.
Formularea matematică a problemei se face prin introducerea variabilelor xij ∈ B
care este 1 dacă persoana j ocupă locul de muncă i şi 0 altfel. Se obŃine astfel
exprimarea :

 m n n m 
mn 
min ∑∑ cij xij ∑ x ij = 1, ∑ x ij ≤ 1, x ∈ B .
 i =1 j =1 j =1 i =1 

I.3. Problema corespondenŃei (perfecte)

Presupunem că 2n studenŃi trebuie repartizaŃi în n camere duble. Aici fiecare


student trebuie asociat la un singur coleg de cameră. Presupunem că evenimentul (i, j),
i<j, corespunde cuplării studenŃilor i şi j în aceeaşi cameră, asociere care are ca efect
valoarea cij. Se obŃine astfel o formulare matematică:

2 n −1 n 
max  ∑ ∑ cij xij ∑x ki + ∑ xij ρ1, i = 1, 2, … , 2n, x ∈ B n (2 n −1) 
 i =1 j =i +1 k <i j >i 

unde ρ poate fi relaŃia “=” sau “ ≤ ”. Dacă în exprimarea modelului se foloseşte restricŃia
cu inegalitate problema este una de corespondenŃă (simplă). Dacă în restricŃii se foloseşte
relaŃia de egalitate, atunci problema poartă numele de problema corespondenŃei perfecte.

I.4. Problema comis voiajorului

Considerăm o mulŃime de noduri V={1, 2, …, n} şi o mulŃime de arce A.


Nodurile reprezintă oraşe iar arcele perechi de oraşe între care există o legătură directă.
Pentru fiecare arc (i, j), cij este timpul călătoriei directe între cele două oraşe. Se pune
problema găsirii unui tur care: să înceapă în oraşul 1, să se termine tot în oraşul 1, să
treacă prin fiecare din celelalte oraşe o singură dată şi să fie realizat într-un timp total
minim.
Pentru formularea problemei introducem variabilele xij care iau valoarea 1 dacă j
urmează imediat după i în tur şi 0 altfel. Astfel, x ∈ B .
A

CondiŃia ca fiecare oraş să fie vizitat exact o dată este formalizată prin intermediul
condiŃiilor:

SP-1 ∑x ij
{i (i , j )∈A}
= 1 pentru j ∈ V

şi

3
SP-2 ∑x ij
{ j (i , j )∈A}
= 1 pentru i ∈ V

Aceste condiŃii asigură nu numai realizarea unui tur ci şi formarea subtururilor


care nu pot fi întregite la un tur. Pentru a evita formarea subtururilor este necesară
introducerea unei condiŃii suplimentare, dată pentru orice U ⊂ V cu 2 ≤ U ≤ V − 2
prin:

SP-3 ∑x
{(i , j )∈A i∈U ,
ij
j∈V \U }
≥1

sau echivalent prin:

SP-3’ ∑x
{(i , j )∈A i∈U ,
ij
j∈U }
≤ U −1

Folosind restricŃiile specificate, problema comis voiajorului se poate exprima


formal prin:

 
min  ∑ cij xij x satisface SP - 1, SP - 2 si (SP - 3 sau SP - 3) .
(i, j)∈A 

II. OPTIMIZARE LINIARĂ DISCRETĂ

Vom studia în cele ce urmează o problemă de optimizare liniară în care o parte


sau toate variabilele problemei pot lua numai valori întregi precizate în prealabil. Mai
precis, vom considera problema
 inf c T x { }

 Ax = b
 (1)
x ≥ 0
 xj ∈Sj, j ∈ J

unde A∈ M m ,n (ℝ ) , rangA=m, J este o submulŃime nevidă a mulŃimii {1,..., n}, iar S j ,
j ∈ J , sunt submulŃimi nevide date ale mulŃimii numerelor întregi ℤ . O problemă de
optimizare de această formă va fi numită problemă de optimizare liniară discretă.
Evident, eliminând ultima condiŃie din (1), condiŃie care va fi numită condiŃia de
integritate, se obŃine o problemă de optimizare liniară. Dacă J = {1,..., n} spunem că (1)
este o problemă de optimizare liniară (total) în numere întregi. În caz contrar, (1) este
numită problemă de optimizare parŃial în numere întregi sau mixtă.
Se poate constata uşor că, fără a restrânge generalitatea, putem presupune că avem
S j = ℤ pentru toŃi j ∈ J . Cu alte cuvinte, este suficient să considerăm problema

4
inf {cT x}

 Ax = b
 (2)
x ≥ 0
 x ∈ ℤ, j ∈ J
 j
unde A∈ M m ,n (ℝ ) şi rangA=m.
Fie
P = {x Ax = b, x ≥ 0}
mulŃimea soluŃiilor admisibile ale problemei de optimizare care se obŃine din (2) prin
eliminarea (relaxarea) condiŃiei de integritate, adică a problemei
inf {c T x}

 Ax = b (3)
x ≥0

Fie
{
P ′ = x x ∈ P, x j ∈ Z , j ∈ J }
mulŃimea soluŃiilor admisibile ale problemei (2).
Lema 1. Dacă x * este soluŃie optimă a problemei (3) şi dacă x * ∈ P ′ , atunci x *
este soluŃie optimă a problemei de optimizare discretă (2).
Rezultatul precedent sugerează posibilitatea construirii unui algoritm care să
rezolve problema de optimizare discretă. Mai precis, rezolvăm mai întâi problema de
optimizare liniară (3). Dacă x * este soluŃie optimă a problemei (3), atunci avem două
posibilităŃi:
(a) Avem x * ∈ P ′ . În acest caz, conform lemei precedente, rezultă că x * este soluŃie
optimă a problemei (2) (STOP).
(b) Avem x * ∉ P ′ . În acest caz se adaugă la restricŃiile care definesc mulŃimea P o
restricŃie de secŃionare, restricŃie care elimină din P soluŃii admisibile care nu pot fi
soluŃii optime ale problemei (2). Este clar că astfel de soluŃii există, x * fiind evident o
astfel de soluŃie.
În secŃiunile următoare se prezintă doi algoritmi datoraŃi lui Gomory, algoritmi
care utilizează ideea precedentă.

II.1. Algoritmul ciclic al lui Gomory

Algoritmul ciclic al lui Gomory este destinat rezolvării problemei de optimizare


liniară total în numere întregi. Fie B o bază primal şi dual admisibilă pentru problema de
optimizare liniară (3). Rezultă că soluŃia de bază corespunzătoare lui B este soluŃie
optimă a problemei (3). Sistemul de ecuaŃii Ax=b se poate scrie în formă explicită
xi = xiB − ∑ y ijB x j , i ∈ B
j∈R

5
Dacă xiB ∈ ℤ , ∀i ∈ B , atunci, din Lema 1 dată în secŃiunea precedentă rezultă că
soluŃia de bază corespunzătoare bazei B este soluŃie optimă pentru problema de
optimizare liniară în numere întregi (2).
În caz contrar, fie u ∈ B astfel încât xuB ∉ ℤ . Să introducem notaŃiile â:
( )
xuB = E xuB + f u 0
şi
( )
yujB = E y ujB + f uj , j ∈ R
unde prin E(a) am notat partea întreagă a numărului real a.
RestricŃia de secŃionare care se obŃine este următoarea
∑ (− f uj )x j ≤ − f u 0
j∈R

Adăugând această restricŃie la problema (3), rezultă că urmează să rezolvam


problema de optimizare liniară
{ }
 inf c T x

 Ax = b
 (− f )x + x = − f (4)
∑j∈R
uj j n +1 u0

 x ≥ 0, x ≥ 0
 n +1

unde x n +1 este variabila ecart introdusă pentru transformarea restricŃiei de secŃionare în


ecuaŃie.
Se constată uşor că pentru problema (4) avem o bază corespunzătoare variabilelor
B
x şi x n +1 . Adăugând tabelului simplex corespunzător lui B pentru problema (3) o linie
suplimentară pentru variabila de bază x n +1 şi o coloană suplimentară corespunzătoare
aceleiaşi variabile obŃinem tabelul simplex pentru problema (4):
V.B. V.V.B. … xj … x n +1
xB xB … y Bj … 0
x n +1 − fu0 … − f uj … 1
zB zB … z Bj − c j … 0
Se poate arată că, în anumite condiŃii, acest algoritm este finit.

II.2. Algoritmul mixt al lui Gomory

Algoritmul mixt al lui Gomory este destinat pentru rezolvarea problemei de


optimizare liniară parŃial în numere întregi. În acest caz vom avea deci J ≠ {1,..., n} .
Fie B o bază primal şi dual admisibilă pentru problema de optimizare liniară (3).
Rezultă că soluŃia de bază corespunzătoare lui B este soluŃie optimă a problemei (3).
Sistemul de ecuaŃii Ax=b se poate scrie în formă explicită
xi = xiB − ∑ y ijB x j , i ∈ B
j∈R

6
Dacă B ∩ J = ∅ sau dacă xiB ∈ ℤ pentru otice i ∈ B ∩ J , atunci, din Lema 1
rezultă că soluŃia de bază corespunzătoare bazei B este soluŃie optimă pentru problema de
optimizare liniară parŃial în numere întregi (2).
Dacă există u ∈ B ∩ J astfel încât xuB ∉ ℤ , să introducem notaŃiile
R * =R \ J
{ }
R +* = j j ∈ R * , y ujB > 0
şi
{ }
R −* = j j ∈ R * , y ujB < 0
RestricŃia de secŃionare care se obŃine în acest caz are forma
∑ (− d uj )x j ≤ − f u 0
j∈R

unde
 y ujB pentru j ∈ R +*
 f
 u 0 y ujB pentru j ∈ R −*
1 − f u 0
d ij =  f uj pentru j ∈ R ∩ J , f uj ≤ f u 0
 f
 u 0 (1 − f uj ) pentru j ∈ R ∩ J , f uj > f u 0
1 − f u 0
 0 în celelalte cazuri
Utilizarea restricŃiei de secŃionare obŃinută mai sus se face în acelaşi mod în care
s-a procedat la algoritmul ciclic.
Se poate de asemenea arăta că, în anumite condiŃii, algoritmul mixt al lui Gomory
este finit.

II.3. Algoritmul cu fixare întreagă

Algoritmii ciclic şi mixt ai lui Gomory destinaŃi rezolvării problemelor discrete se


bazează pe introducerea de restricŃii suplimentare, deci prin introducerea, la fiecare pas, a
unei linii şi coloane suplimentare în tabelul simplex obŃinut la pasul anterior al rezolvării.
Aceste extensii măresc efortul de rezolvare şi de memorare a modelelor de lucru
care sunt din ce în ce mai mari.
Ca alternativă la algoritmii de tip Gomory s-a dezvoltat tehnica reducerii
succesive a numărului de necunoscute. Considerăm din nou problema discretă (2) şi
problema continuă (3) obŃinută prin relaxare.
Fie B o bază primal şi dual admisibilă pentru problema de optimizare liniară (3).
Rezultă că soluŃia de bază corespunzătoare lui B este soluŃie optimă a problemei (3).
Dacă xiB ∈ ℤ , ∀i ∈ B , atunci, din Lema 1 dată în secŃiunea precedentă rezultă că
soluŃia de bază corespunzătoare bazei B este soluŃie optimă pentru problema de
optimizare liniară în numere întregi (2).
Altfel fie i ∈ B astfel încât xiB ∉ ℤ . Considerăm două probleme de programare
liniară obŃinute astfel:

7
- se elimină din funcŃia obiectiv toate variabilelor care în baza B au valori întregi :I
variabila aleasă xiB ;
- se înlocuiesc în sistemul de restricŃii toate variabilele care în baza B au valori
întregi cu valorile lor effective şi părŃile constante se trec în membru drept.
- Cele două probleme se obŃin substituid în sistemul de restricŃii variabila xiB cu
E ( xuB ) şi respective E ( xuB ) + 1
Se rezolvă cele două probleme de programare liniară obŃinute mai sus, care, prin
completarea vectorilor soluŃie cu variabile fixate mai sus conduc la vectorii x 1 şi x 2 . Se
alege x k pentru care cT x k = inf {cT x 1 , cT x 2 } . Dacă x k are toate componentele întregi
atunci x k este soluŃie optimă pentru problema de optimizare liniară în numere întregi (2).
Altfel se reia procedeul descris mai sus cu x k în loc de x B .
Facem observaŃia ca acest process se termină totdeauna, deoarece la fiecare
aplicare cel puŃin încă o valoare din vectorul soluŃie devine întreagă.

III. DOMENII POLIEDRALE

III.1. Prezentare generală

Spunem că P ⊆ R n este un domeniu poliedral dacă P este o mulŃime de puncte


( )
care satisfac un număr finit de inegalităŃi liniare, deci P = x ∈ R n Ax ≤ b , unde (A, b)
este o matrice de dimensiune m × (n + 1) .
Un domeniu poliedral este raŃional dacă există o matrice (A’, b’) de dimensiune
{
m'×(n + 1) cu elementele raŃionale astfel încât P = x ∈ R n A' x ≤ b' . }
Un domeniu poliedral nu este mărginit dacă există ω ∈ R+ astfel încât
{ }
P ⊆ x ∈ R n − ω ≤ x j ≤ ω pentru orice j = 1, 2, … , n . Un domeniu poliedral mărginit
este numit politop.
O mulŃime de puncte x1, x2, …, xk din Rn se numec afin independente dacă
k k
sistemul de ecuaŃii ∑ λ i x i = 0 şi
i =1
∑λ
i =1
i = 0 are soluŃia unică λ1=λ2=…=λk=0. Spunem că

un domeniu poliedral P este de dimensiune k (notăm dim(P)=k) dacă numărul maxim de


puncte afin independente este k+1; un domeniu poliedral P ⊆ R n este complet
dimensionat dacă dim(P)=n; putem considera prin notaŃie că dacă P = ∅ , atunci
dim( P ) = −1 .
Un punct x ∈ P se numeşte punct scufundat al lui P dacă a i x < bi pentru toŃi
{ }( )
i ∉ M = , unde M = = i 1 ≤ i ≤ m, a i x = bi pentru orice x ∈ P ( a i , bi nu poate fi scris ca o
combinaŃie liniară de linii j pentru care ajx=bj pentru orice x ∈ P , linii care formează o
submatrice a lui (A, b) notată (A=, b=).
Un punct x ∈ P se numeşte punct interior al lui P dacă pentru orice j=1, 2, …, m
j
a x<bj.

8
Relativ la noŃiunile de dimensionare şi punct interior, pot fi prezentate în acest
moment două rezultate importante şi anume:
· Dacă P ⊆ R n atunci dim(P)=n-rang(A=, b=).
· Un domeniu poliedral P este complet dimensionat dacă şi numai dacă P are un punct
interior.
Domeniile poliedrale pot fi descrise în două moduri: prin feŃe şi prin puncte şi
raze extreme.
O inegalitate πx ≤ π 0 (notată şi (π, π 0 ) ) spunem că este o inegalitate validă
pentru un domeniu poliedral P dacă ea este satisfăcută pentru orice x ∈ P . Dacă (π, π 0 )
este o inegalitate validă pentru P, vom numi faŃă a lui P mulŃimea F = {x ∈ P πx = π 0 } . O
faŃă este proprie dacă este nevidă şi diferită de P. O inegalitate validă pentru P la care îi
corespunde o faŃă nevidă se numeşte inegalitate suport pentru P. O faŃă F a lui P pentru
care dim(F)=dim(P)-1 se numeşte un facet pentru P.
În reprezentarea domeniilor poliedrale, principalul rezultat este dat de următoarea
teoremă (unicitatea implicată este una relativă în sensul neconsiderării multiplicării cu
scalari).
Teoremă:
a) Un domeniu poliedral complet dimensionat P are o unică reprezentare
minimală printr-o mulŃime finită de t inegalităŃi liniare. În particular, pentru fiecare facet
Fj al lui P există o unică inegalitate a j x ≤ bj reprezentând Fj şi
{
P = x ∈ R n a i x ≤ bi , i = 1, 2, … , t . }
b) Dacă dim(P)=n-k, k>0, atunci

{
P = x ∈ R n a i x = bi pentru i = 1, 2, … , k , a i x ≤ bi pentru i = k + 1, k + 2, … , k + t }
unde pentru j=1, 2, …, k (aj, bj) este o mulŃime maximală de linii liniar
independente din (A=, b=) şi pentru j=k+1, k+2, …, k+t (aj, bj) este orice
inegalitate din clasa de echivalenŃă a inegalităŃilor reprezentând facetul Fj.

Un punct x ∈ P este un punct de extrem pentru P dacă nu există nici o pereche de


puncte x1 , x 2 ∈ P, x1 ≠ x 2 pentru care x = 12 x 1 + 12 x 2 .
{ } { }
Fie P 0 = x ∈ R n Ar ≤ 0 , dacă P = x ∈ R n Ax ≤ b ≠ ∅ atunci r ∈ P 0 \ {0} se
numeşte o rază pentru P. Un punct r ∈ R n este o rază a lui P dacă şi numai dacă pentru
{ }
orice punct x ∈ P are loc y ∈ R n y = x + λr , λ ∈ R+ . O rază r a lui P este numită rază
extremă dacă şi numai dacă nu există nici o pereche de raze r 1 , r 2 ∈ P 0 \ {0} , r 1 ≠ λr 2
pentru orice λ ∈ R+ astfel încât r = 12 r 1 + 12 r 2 .

9
Rezultatele importante în rerpezentarea domeniilor poliedrale prin puncte şi raze
extreme sunt date de următoarele enunŃuri:
· x este un punct de extrem al lui P dacă şi numai dacă x este o faŃă de dimensiune 0 a
lui P,
· Dacă P este nevidă, r este o rază extremă pentru P dacă şi numai dacă {λr λ ∈ R+ }
este o faŃă de dimensiune 1 pentru P0
· Un domeniu poliedral are un număr finit de puncte de extrem şi de raze de extrem

Teorema (lui Minkowski): Dacă P ≠ ∅ şi rang A=n atunci

 
P =  x ∈ R n x = ∑ λ k x k + ∑ µ j r j , ∑ λ k = 1, λ k ≥ 0 pentru k ∈ K , µ j ≥ 0 pentru j ∈ J  ,
 k∈K j∈J k∈K 

{ }
k
unde x k∈K este mulŃimea punctelor de extrem ale lui P şi r { }j
j∈J este mulŃimea
razelor de extrem ale lui P.

III.2. Optimizarea combinatorială în domenii poliedrale

La trecerea la optimizarea întreagă şi combinatorială, P este acoperirea convexă a


unei muŃimi de numere întregi. În acest caz P poate fi dat fie printr-o descriere implicită a
punctelor de extrem, fie printr-o mulŃime de inegalităŃi liniare astfel încât P să fie
acoperea convexă a punctelor întregi care satisfac aceste inegalităŃi, fie printr-o descriere
a lui P cu inegalităŃi liniare, cu numărul acestora depinzând exponenŃial ca funcŃie de
descrierea naturală a lui P. Însă, aplicând aceste descrieri, nu există nici un algoritm
evident, cu timp polinomial pentru cele trei probleme enunŃate relativ la P.
Pentru exemplificare să considerăm familia politopurilor pentru problema
(0-1 IP). O instanŃă este acum specificată prin valorile întregi m şi n, prin matricea (A, b)
de dimensiune m × (n + 1) şi un vector scurt x ∈ R n sau o inegalitate dată printr-un vector
{
scurt (π, π 0 ) ∈ R n+1 . Politopul pentru o instanŃă este P = conv x ∈ B n Ax ≤ b . }
Considerănd problema admisibilităŃii mărginite inferior avem:

{ } {
P ∩ x ∈ R n πx ≥ π 0 ≠ ∅ ⇔ x ∈ R n Ax ≤ b, πx ≥ π 0 ≠ ∅ }
Această problemă, aşa cum am vazut anterior, este NP-completă şi astfel şi problema
admisibilităŃii mărginite inferior pentru familia politopurilor programării întregi 0-1 este
tot NP-completă. Folosind afirmaŃia relativă la echivalenŃa problemelor relative la
domeniile poliedrale va rezulta că problema validităŃii pentru familia politopurilor
programării întregi 0-1 va fi o problemă din CoNP şi astfel ar fi în NP dacă ar fi în
NP ∩ CoNP .

10
Pentru problema apartenenŃei la familia politopurilor programării întregi 0-1
{ }
presupunem că x ∈ x ∈ R+n \ B n Ax ≤ b, x j ≤ 1 pentru orice j , eliminând astfel cazurile
{ }
triviale când x ∈ B n sau x ∉ x ∈ R+n Ax ≤ b, x j ≤ 1 pentru orice j . Dacă dim(P)=n, orice
x ∈ P poate fi scris ca o combinaŃie convexă a unei mulŃimi de n+1 vectori binari din P.
Prima etapă a unui algoritm nedeterminist pentru rezolvarea problemei
apartenenŃei constă în ghicirea vectorilor xˆ j ∈ B n , j=1, 2, …, n+1.
Pentru a doua etapă verificăm întâi dacă toŃi vectorii x̂ j sunt în P (altfel este
necesar să revenim la prima etapă) şi apoi considerăm sistemul liniar:

 n +1
∑ λ i xˆ = x
i

i =1
 n +1
∑ λ i = 1
 i =1

Dacă acest sistem are o soluŃie λ0 ∈ R n +1 atunci putem trage concluzia că x ∈ P altfel
trebuind să revenim la prima etapă.

III.3. Domenii poliedrale întregi

Optimizarea combinatorială în domenii poliedrale întregi are ca principală


{ }
problemă studiul regiunilor admisibile de forma S = x ∈ Z +n Ax ≤ b pentru programele
întregi de forma max{cx x ∈ S }, unde (A, b) este o matrice de dimensiune m × (n + 1) cu
elemente întregi. În plus se consideră că se cunoaşte o descriere “frumoasă” pentru
{
conv(S), unele probleme având proprietatea că conv( S ) = x ∈ R+n Ax ≤ b iar pentru }
altele putându-se specifica o mulŃime explicită de restricŃii A' x ≤ b' şi astfel să avem
{ }
conv( S ) = x ∈ R n Ax ≤ b, A' x ≤ b' . Frecvent în astfel de cazuri obŃinem şi un algoritm
combinatorial eficient pentru rezolvarea problemei de optimizare combinatorială.
Vom spune că un domeniu poliedral nevid P ⊆ R n este întreg dacă fiecare din
feŃele sale nevide conŃine un punct întreg. În loc de utilizarea tuturor feŃelor putem
considera doar feŃele minimale. Deoarece fiecare faŃă minimală este un punct de extrem
pentru domeniul poliedral dacă şi numai dacă rang(A)=n, vom putea spune că un
{ }
domeniu poliedral P = x ∈ R n Ax ≤ b cu rang(A)=n este întreg dacă şi numai dacă toate
punctele sale de extrem sunt întregi.
Un sistem de inegaliŃăti liniare Ax ≤ b este numit total întreg dual dacă pentru
orice c întreg astfel încât problema de programare liniară z LP = max{cx Ax ≤ b} peste
{ }
domeniul poliedral P este finită şi duala sa min yb yA ≤ c, y ∈ R+m are o soluŃie optimă
întreagă. Folosind această noŃiune, avem că dacă Ax ≤ b este total întreg dual şi b este
{ }
întreg atunci şi domeniul poliedral P = x ∈ R n Ax ≤ b este întreg.
Principalul rezultat de reprezentare a domeniilor poliedrale este dat de enunŃul:

11
PropoziŃie: Pentru un domeniu poliedral întreg complet dimensionat există o
unică reprezentare printr-un sistem total întreg dual cu membru drept întreg.
În continuare să vedem o serie de caracteristici pentru matricile pentru care
rezultă un domeniu poliedral întreg şi pentru care se poate da un algoritm combinatorial
eficient pentru rezolvarea problemelor de programare liniară asociate.
O matrice A de dimensiune m × n este total unimodulară dacă determinantul
fiecărei submatrici pătrate formate din A este –1, 0 sau 1. Pentru o astfel de matrice avem
{ }
că P (b ) = x ∈ R+n Ax ≤ b este un domeniu poliedral întreg pentru orice b ∈ Z m pentru
care P(b ) ≠ ∅ . Acest lucru se poate generaliza pentru optimizarea combinatorială la
enunŃul:
PropoziŃie: Dacă A este o matrice total unimodulară, b, b’, d, d’ sunt întregi şi
{ }
P (b, b' , d , d ') = x ∈ R n b' ≤ Ax ≤ b, d ' ≤ x ≤ d ≠ ∅ atunci P(b, b’, d, d’) este un
domeniu poliedral întreg.
Exemple de matrici evident unimodulare sunt:
 matricile de elemente 0, 1 şi –1 în care în fiecare coloană sau există o singură valoare
nenulă, sau există două valori nenule din care una este 1 şi una –1.
 matricile interval
 matricile reŃea
Matricile interval sunt matricile A de dimensiune m × n şi elemente 0-1 în care, în
fiecare coloană valorile 1 sunt consecutive, deci în care dacă aij=akj şi k>i+1 atunci asj=1
pentru orice s pentru care i<s<k.
Principial, o matrice reŃea este o matrice în care coloanele reprezintă arcele unei
matrici de incidenŃă nod-arc pentru un digraf, după stergerea unei linii şi execuŃia unui
număr oarecare de pivotări simplex. Definirea exactă a matricilor reŃea o vom da în
continuare împreună cu elementele necesare prezentării ei.
Fie D=(V, F) un digraf cu m+1 noduri şi n arce şi A’ matricea de
incidenŃă nod-arc a digrafului presupus conex. Vom considera în plus că rang(A’)=m
deoarece este convenabil să lucrăm cu matrici cu rangul egal cu numărul de linii.
Transformarea lui A’ se realizează prin:
1. Fie A matricea de dimensiune m × n care se obŃine din A’ prin ştergerea oricărei linii.
2. Fie A=(A1, A2) rescrierea lui A în care A1 este o matrice nesingulară a lui A de
dimensiune m × m . Arcele (e1, e2, …, em) corespunzătoare coloanelor lui A1 induc un
arbore de trecere în D notat prin T=(V, F1).
3. Reprezentarea unei coloane din A2, corespunzătoare unui arc ej=(u, v), este o
combinaŃie liniară a coloanelor din A1 şi este dată prin vectorul de incidenŃă a j
pentru unicul drum pj din T de la u la v, definită prin:


 1 daca p j parcurge ei iˆn sens direct
 ⌣
a ij =  − 1 daca p j parcurge ei iˆn sens invers
 0 altfel

12
Dând un arbore orientat T=(V, F2) şi un digraf D=(V, F2) cu |V|=m+1, |F1|=m şi
|F2|=n, matricea de incidenŃă arc-drum notată cu M(T, D) corespunzătoare drumurilor din
T care au punctele terminale definite prin arcele din F2 se numeşte matrice reŃea.
De fapt, matricile date în primele două exemple sunt cazuri particulare de matrici
reŃea.
Un rezultat important pentru reprezentarea matricilor unimodulare este dat de
enunŃul:
PropoziŃie: Dacă A este o matrice total unimodulară care nu este de unul din cele
trei tipuri date ca exemplu, atunci ea poate fi construită din matrici de cele trei tipuri
prin folosirea următoarelor reguli:
1. Transpunere;
2. formatea matricii (A, I), unde I este matrice unitate;
3. ştergerea unei linii sau coloane unitare;
4. multiplicarea cu –1 a unei linii sau coloane;
5. interschimbarea a două linii sau coloane;
6. duplicarea liniilor sau coloanelor;
7. realizarea unei operaŃii pivot;
8. compunerea a două matrici de formă specială.

La regulile enumerate în enunŃul de mai sus consider că trebuie făcute


următoarele clarificări:
(a) pentru realizarea unei operaŃii pivot.
Presupunem că |aij|=1 şi realizăm următoarele transformări: întâi,
dacă aij=-1, multiplicăm linia i cu –1. Renumim linia i prin a i , apoi pentru
fiecare k ≠ i , linia k va avea forma a k , obŃinută prin aplicarea formulei:


 ak daca a kj = 0
 ⌣
a k = a k − a i daca a kj = 1
a k + a i ⌣
 daca a kj = −1

(b) pentru compunerea a două matrici cu formă specială.


Cele două matrici total unimodulare au formele speciale
 A a a 1 0 b
  şi respectiv   unde A este o matrice de dimensiune
 c 0 1 d d B
(m − 1) × (n − 2) , B este o matrice de dimensiune (n − 1) × (m − 2) , a este un
vector coloană de dimensiune m-1, c este un vector linie de dimensiune
n-2, b este un vector linie de dimensiune m-2 şi d este un vector coloană de
 A ab 
dimensiune n-1. Compunerea este definită ca matricea   , de
 cd B 
dimensiune (m + n − 2 ) × (m + n − 4 ) .

13
Pentru a introduce un alt tip de matrice cu rezultate bune în optimizarea
combinatorială să considerăm problemele de grupare/acoperire fracŃionară, probleme care
sub anumite aspecte pot fi considerate drept complementare.
Problema generală de grupare se defineşte prin:

(FP) {
max cx x ∈ R+n , Ax ≤ 1 }
iar cea de acoperire drept:

(FC) {
min cx x ∈ R+n , Ax ≥ 1 }
{ } {
având astfel domeniile poliedrale PFP = x ∈ R+n Ax ≤ 1 şi respectiv PFC = x ∈ R+n Ax ≥ 1 }
şi pentru ele putându-se asocia problemele duale:

(DFP) {
min y ⋅ 1 yA ≥ c, y ∈ R+m }
şi respectiv

(DFC) {
max y ⋅ 1 yA ≤ c, y ∈ R+m . }
La studiul optimalităŃii pentru aceste modele putem considera atât că A nu conŃine
coloane cu toate elementele egale cu 0, prin care se elimină nemărginirea pentru (FP) şi
(DFC) şi neadmisibilitatea pentru (FC) şi (DFP). De asemenea, putem presupune şi că
pentru orice j ∈ N = {1, 2, … , n} , cj>0, pentru că altfel dacă c j ≤ 0 atunci (FP) are în
soluŃia optimă xj=0, iar, pentru (FC), dacă cj<0 atunci problema este nemărginită, iar
pentru cj=0 putem considera că xj=1.
În aceste probleme se poate realiza şi o eliminare a restricŃiilor, operaŃie care se
poate face prin modificarea termenilor liberi. Astfel, pentru eliminarea unei restricŃii de
forma a j x ≥ b j putem pune bj=0 (suma unor numere pozitive este zero dacă toate
numerele sunt 0). În mod similar, pentru eliminarea restricŃiilor de forma a j x ≤ b j ,
n
considerăm orice valoare b j ≥ ∑ a ij (şi în acest caz folosim notaŃia b j = ∞ ).
i =1
În cadrul problemelor de optimizare combinatorială, răspunsul la întrebarea
relativă la existenŃa soluŃiilor optime întregi se rezumă, în cazul (FP) şi (FC), la două
subiecte şi anume dacă PFP (PFC) reprezintă un politop (domeniu poliedral) întreg şi dacă
sistemul de restricŃii Ax ≤ 1, x ≥ 0 ( Ax ≥ 1, x ≥ 0 ) este un sistem total întreg dual. Aşa
cum deja am văzut, dacă A este o matrice total unimodulară răspunsurile la aceste
întrebări este afirmativ.
Fie Mk, k ≥ 3 , familia de matrici de dimensiune k × k de elemente 0-1 pentru
care suma pe linii şi pe coloane este egală cu 2 şi care nu conŃin submatrici de forma

14
 1 1
  . Vom spune că o matrice cu elemente 0-1 este o matrice echilibrată dacă nu
 1 1
conŃine nici o submatrice din M2k+1, pentru orice k ≥ 1 . Vom spune că o matrice de
elemente 0-1 este total echilibrată dacă ea nu conŃine nici o submatrice din Mk, orice
k ≥ 3.
Facem observaŃia că o matrice A din Mk, k ≥ 3 , fără a conŃine submatrici din Ml,
3 ≤ l < k , corespunde în teoria grafurilor la matricile de incidenŃă nod-arc pentru un
ciclu. De asemenea, vom avea că matricile total unimodulare sunt cazuri particulare de
matrici echilibrate.
Principalele rezultate care se obŃin pentru matricile total echilibrate sunt date de:

Teoremă:
I { }
Dacă A este o matrice total echilibrată atunci x ∈ R+ Ax ≥ b este întreg şi
n

(DFC) are o soluŃie optimă întreagă pentru orice b ∈ B .


m

II { }
Dacă A este o matrice total echilibrată atunci x ∈ R+ Ax ≤ b este întreg şi
n

(DFP) are o soluŃie optimă întreagă pentru orice b ∈ {1, ∞} .


m

Fac observaŃia că matricile de tipul total echilibrate apar în practică în probleme


de localizare şi de acoperire mulŃimi.
Un caz particular de matrici total echilibrate, şi care nu conŃin submatrici de
1 1 
forma F =   se numesc matrici incluziune linii. Aceste matrici sunt importante în
1 0 
optimizarea combinatorială deoarece, dacă A este o astfel de matrice, atunci (DFC) şi
(FC) au o soluŃie optimă întreagă, care poate fi găsită prin algoritmi eficienŃi.

IV. RELAXARE LAGRANGEAN; DUALITATE

Problemele de optimizare combinatorială sunt cazuri particulare de probleme în


numere întregi de forma:
(IP) z IP = max{cx x ∈ S }
{
unde c, A şi b sunt cu elemente întregi şi S = x ∈ Z +n Ax ≤ b . }
IV.1. Relaxare

Determinarea lui zIP pentru o problemă (IP) este în general costisitoare şi atunci,
un mod de abordare mai bun este de a considera problema
z * = max{cx x ∈ conv(S )}
{ }
pentru care putem înlocui conv(S) cu P = x ∈ R+n Ax ≤ b , rezultanta fiind o problemă de
programare liniară cunoscută sub numele de relaxare a problemei (IP). Această problemă

15
permite obŃinerea unei margini superioare pentru zIP, deci o soluŃie zLP pentru problema
z = max{cx x ∈ P} pentru care z IP ≤ z LP .
Pentru determinarea condiŃiilor suficiente de optimalitate putem considera şi
{ }
problema z LP = min{ub u ∈ PD } unde PD = u ∈ R+m uA ≥ c , problemă cunoscută sub
numele de duala slabă a problemei (IP).
Aceste noŃiuni dau două moduri fundamentale de determinare a valorii optime zIP
şi a marginii superioare pentru zIP.
DefiniŃie. O relaxare a problemei (IP) este orice problemă de maximizare
(RIP) z R = max{z R ( x ) x ∈ S R }
care îndeplineşte condiŃiile
(RIP1) S ⊆ SR
(RIP2) cx ≤ z R ( x ) pentru x ∈ S

Pentru (IP) şi (RIP) este verificat următorul rezultat:


PropoziŃie 1. Dacă (RIP) nu este admisibilă atunci (IP) nu este admisibilă; Dacă
(IP) este admisibilă, atunci z IP ≤ z R .
DefiniŃie. Dacă pentru un ε > 0 fixat, x * ∈ S satisface inegalitatea cx * ≥ z IP − ε
vom spune că x* este o soluŃie ε-optimală pentru (IP).
Una din metodele de relaxare este de a împărŃi restricŃiile de definire a lui S în
condiŃii simple, uşor de manipulat, şi în condiŃii complicate. Relaxarea se obŃine prin
eliminarea condiŃiilor complicate din definirea lui S şi includerea lor în funcŃia obiectiv
astfel încât să fie satisfăcută condiŃia (RIP2). O astfel de abordare poartă numele de
relaxare Lagrangean.

IV.2. Dualitate

Un dezavantaj al utilizării relaxării este dat de faptul că, garantarea unei margini
superioare pentru zIP se face doar printr-o soluŃie optimă a problemei relaxate. Acest
dezavantaj poate fi eliminat prin utilizarea dualităŃii, deoarece problema duală se
defineşte astfel încât orice soluŃie admisibilă dual să conducă la o margine superioară
pentru zIP.
DefiniŃie. O problemă duală (slabă) pentru (IP) este orice problemă de minimizare
(DIP) z D = min{z D (u ) u ∈ S D }
care satisface condiŃia.
(DIP1) z D ≥ cx pentru toŃi x ∈ S şi u ∈ S D
În plus dacă este satisfăcută condiŃia
(DIP2) Dacă S ≠ ∅ şi zIP este mărginită superior atunci
( )
există u 0 ∈ S D şi x 0 ∈ S pentru care z D u 0 = cx 0
duala se numeşte duală tare a problemei (IP)

Pentru dualitatea (IP) avem următorul rezultat:

16
PropoziŃia 2. Dacă (DIP) este admisibilă atunci z IP ≤ z D . Dacă (DIP) are
valoarea obiectiv nemărginită atunci (IP) nu este admisibilă.
Prin rezolvarea dualei tari pentru (IP) găsim zIP deoarece zIP=zD, în timp ce
utilizarea dualei slabe pentru (IP) permite aproximarea superioară a valorii zIP. În acest
caz ∆ D = z D − z IP se numeşte valoarea absolută a spaŃiului dual.
În practică, duala slabă este mai uşor de construit, de xemplu, prin considerarea
dualei relaxării prin programare liniară a problemei (IP).
RelaŃia generală dintre dualitate şi relaxare este dată de următorul enunŃ:
PropoziŃia 3. Dacă o problemă este o duală a relaxării problemei (IP), atunci ea
este duală pentru (IP)

IV.3. Relaxare Lagrangean şi dualitate

Programul întreg (IP) dat mai sus poate fi rescris (prin evidenŃierea restricŃiilor
simple şi a celor complicate) sub forma:
(IP)  z IP = max cx
 1
 A x ≤ b ( mi restrictii complicate )
1

 2
 A x ≤ b ( n − mi restrictii simple )
2

x ∈ Z n
 +

Pe baza acestei forme, prin eliminarea restricŃiilor A1 x ≤ b1 obŃinem o problemă


cu n-m1 restricŃii uşor de manipulat şi astfel mai uşor de rezolvat în comparaŃie cu
problema iniŃială.
O modalitate mai complicată de lucru este de a considera problema (IP) sub
forma:
(IP(Q))  z = max cx
 IP
A x ≤ b
1 1


{
 x ∈ Q, unde Q = x ∈ Z + A x ≤ b
n 2
}2

Acum, prin analogie cu problemele de optimizare continuă cu restricŃii, pentru


orice λ ∈ R+m1 , putem considera problema:
(
(LRIP(λ )) z L (λ ) = max{z (λ, x ) x ∈ Q} unde z (λ, x ) = cx + λ b1 − A1 x )
Această formulare este cunoscută în literatura de specialitate drept relaxarea
Lagrangean pentru problema (IP).
În acest mod, excludem restricŃiile complicate, pe care însă, acum, le includem în
( )
funcŃia obiectiv prin intermediul unor termeni de penalitate λ b1 − A1 x . Deoarece λ ≥ 0 ,
nesatisfacerea condiŃiilor A x ≤ b face ca penalitatea să fie negativă şi astfel, din punct
1 1

de vedere intuitiv, aceste condiŃii vor fi satisfăcute pentru λ suficient de mare.


Deoarece (LRIP(λ)) este o relaxare a (IP), pentru orice λ ≥ 0 , rezultă că
z L (λ ) ≥ z IP . Dacă von considera că λ* este o soluŃie optimă pentru min z L (λ ) , atunci din
λ ≥0

familia infinită de relaxări (LRIP(λ ))λ ≥ 0 obŃinem valoarea zL(λ ) ca margine superioară.
*

17
Problema min z L (λ ) este numită duala Lagrangean pentru (IP) în raport cu
λ ≥0

restricŃiile A x ≤ b .
1 1

Există două moduri în care se poate rezolva problema (LRIP(λ)).


( )
În primul mod, putem privi z (λ, x ) = c − λA1 x + λb1 ca o funcŃie afină de x,
pentru λ fixat şi astfel, că putem determina zL(λ) prin rezolvarea programului liniar:
z L (λ ) = max{z (λ, x ) x ∈ conv(Q )}
unde putem presupune că mulŃimea conv(Q) este un domeniu poliedral raŃional.
În al doilea mod, considerăm că zL(λ) se determină prin maximizarea pe o
mulŃime de puncte discrete, adică
z L (λ ) = max
i
z λ, x i
x ∈Q
( )
( ) (
şi observăm că pentru xi fixat z λ, x i = cx i + λ b1 − A1 x i este o funcŃie afină de λ. )
Din punct de vedere formal, rezolvăm programul liniar:
{
z L (λ ) = min w w ≥ z λ, x i ( )}
care arată că zL(λ) este maximul unui număr finit de funcŃii afine, şi astfel este convex şi
liniar pe porŃiuni. În alte cuvinte, prin considerarea combinaŃiilor convexe de puncte din
Q obŃinem un punct x* din conv(Q) care satisface condiŃiile complicate şi pentru care
cx*=zL, adică
{
z L = max cx A1 x ≤ b1 , x ∈ conv(Q ) }
Pentru rezolvare vom considera mulŃimea punctelor de extrem din Q,
{ }
x ∈ R+n k ∈ K şi mulŃimea razelor de extrem din Q, r j ∈ R+n j ∈ J . Problema
k
{ }
considerată,
(
z L = min z L (λ ) = min max cx + λ b1 − A1 x
λ ≥0 λ ≥ 0 x∈conv (Q )
( ))
se poate scrie ca:
(
 z = min  max cx k + λ ( b1 − A1 x k ) 
 L λ ≥0  k∈K  )

( c − λ A ) r ≤ 0 pentru j ∈ J
1 j


λ ≥ 0

Ultima problemă se poate rescrie ca:
(PL)  z L = min η

η + λ ( A x − b ) ≥ cx pentru k ∈ K
1 k 1 k

 1 j
λ A r ≥ cr pentru j ∈ J
j

λ ≥ 0

problemă pentru care, prin dualitate, putem asocia şi programul:

18
(PLD)   j j 
 z L = max c  ∑ α x + ∑ β r 
k k

  k∈K j∈J 
 αk =1
 k∑
∈K

 1 j j 
A  ∑α x + ∑ β r  ≤ b
k k 1

  k∈K j∈J 

α k ≥ 0 pentru k ∈ K

 j
 β ≥ 0 pentru j ∈ J

Astfel zL se poate calcula folosind programele liniare (PL) şi (PLD). Deoarece:
( {
conv ( S ) = conv Q ∩ x ∈ R+n A1 x ≤ b1 }) ⊆ conv ( Q ) ∩ {x ∈ Rn
+ A1 x ≤ b1 }
avem că
{
z IP = max cx ≤ z L = max cx A1 x ≤ b1 , x ∈ conv(Q )
x∈S
}
Datorită incluziunii de mai sus, valoarea absolută a spaŃiului dual ∆ D = z L − z IP
depinde de mărimile relative pentru conv(S), conv(Q ) ∩ x ∈ R+n A1 x ≤ b1 { } şi c,
coeficienŃii funcŃiei obiectiv. Vom avea astfel, ca prim rezultat, că:
PropoziŃie 4. zIP=zL pentru toŃi c dacă şi numai dacă:
( { })
conv Q ∩ x ∈ R+n A1 x ≤ b1 = conv(Q ) ∩ x ∈ R+n A1 x ≤ b1 .{ }
În plus are loc şi:
{ }
PropoziŃia 5. z L = max cx Ax ≤ b, x ∈ R+n pentru toŃi c dacă punctele de extrem
{ }
din x ∈ R+n A 2 x ≤ b 2 sunt întregi.
Un rezultat deosebit de important este dat de următoarea teoremă:
Teoremă. zL este o soluŃie ε-optimală pentru problema (IP) ( z IP = z L − ε ) dacă şi
numai dacă există λ* ≥ 0 şi x* ∈ S pentru care ( )
λ* b1 − A1 x * ≤ δ1 ,
( ) ( )
z λ* , x * ≥ z LRIP λ* − δ 2 şi δ1 + δ 2 ≤ ε .
Dacă în plus considerăm că valoarea obsolută a spaŃiului dual este 0, punând
δ1 = δ 2 = ε = 0 , obŃinem drept consecinŃă rezultatul:
Corolar. zIP=zL dacă şi numai dacă există λ* ≥ 0 şi x * ∈ S pentru care
( ) ( ) (
λ* b1 − A1 x * = 0 şi z LRIP λ* = z λ* , x * . )
V. ALGORITMI DE RELAXARE; BRANCH-AND-BOUND

V.1. Algoritmul general de relaxare

Rezolvările algoritmice pentru problemele de optimizare în numere întregi îşi


propun să găsească o soluŃie optimă sau ε-optimală pentru problema de programare în
numere întregi (IP).

19
MulŃi algoritmi care lucrează cu duala problemei se bazează pe reducerea
sistematică a marginii superioare w* pentru funcŃia obiectiv, producând soluŃia optimă
x * ∈ S doar când w* = z IP . De acest tip sunt şi algoritmii bazaŃi pe relaxare. La fiecare
iteraŃie se rezolvă o relaxare a problemei (IP) iar dacă o soluŃie optimă a relaxării nu
produce un optim pentru (IP) se îmbunătăŃeşte relaxarea.
Un algoritm general bazat pe relaxarea problemei (IP) este:
ALGORITM 1 Relaxare generală
Pas 0: INIłIALIZARE: Fie t = 1 , w* = ∞ şi z * = −∞ . Se aleg S 1R , S ⊆ S R1 şi z 1R ( x ) ,
z 1R ( x ) ≥ cx pentru x ∈ S .
Pas 1: REZOLVARE RELAXARE: Se rezolvă problema relaxată.
(RIPt) {
z Rt = max z Rt ( x ) x ∈ S Rt }
t t
Fie x soluŃia problemei (RIP ).
Pas 2: TEST OPTIMALITATE: Dacă x t ∈ S şi z Rt = cx t ne oprim w* = cx t = z * iar xt
este soluŃia optimă a problemei (IP); altfel se continuă
Pas 3: ÎMBUNĂTĂłIRE RELAXARE: Se consideră w* = z Rt şi z * = cx t . Alegem
S Rt +1 ⊆ S Rt , S ⊆ S Rt +1 şi z Rt +1 ( x ) ≤ z Rt ( x ) , z Rt +1 ( x ) ≥ cx pentru x ∈ S astfel încât cel
puŃin una din relaŃii să fie strictă (deci S Rt +1 ≠ S Rt sau z Rt +1 ( x ) ≠ z Rt ( x ) ). Se
consideră t ← t + 1 şi se merge la Pas 1.
Se poate observa că în cazul acestui algoritm, pentru orice t avem x Rt +1 ≤ z Rt , însă
în practică, se preferă să considerăm că pentru orice t, z Rt ( x ) = cx şi astfel optimalitatea
este atinsă când se produce x t ∈ S . Într-un astfel de caz, în conformitate cu pasul 3 vom
avea că pentru orice t, S Rt +1 ⊂ S Rt , modul cel mai simplu de construcŃie pentru S Rt +1 fiind
de a considera S Rt +1 ⊆ S Rt \ x t . { }
V.2. Algoritmul de enumerare

Un alt tip de algoritm care utilizează relaxarea utilizează o abordare enumerativă.


{ }
k
Considerăm că S i i = 1,..., n este o împărŃire a lui S, adică S = ∪ S i (nu este obligatoriu
i =1

( )
ca S i =1,k să formeze o partiŃie , deci ca în plus ∀i, j = 1, k , i ≠ j , S i ∩ S j = ∅ ) În
i

această abordare, principalul rezultat folosit este dat de următorul enunŃ:


PropoziŃia 1. Fie programul liniar:
(IPi) i
z IP = max cx x ∈ S i { }
unde S i ( ) i =1, k este o împărŃire a lui S. Atunci z IP = max z IP
i
i =1, k

PropoziŃia 1 exprimă în optimizare principiul "divide et impera", adică, dacă este


dificil de rezolvat optimizarea în S, atunci poate fi posibilă rezolvarea problemei prin
soluŃionarea optimalităŃii pe spaŃii mai mici Si şi apoi reunirea rezultatelor..

20
În practică, divizarea se realizează recursiv putându-se forma o arborescenŃă în
care rădăcina este S, fiii rădăcinii reprezintă o împărŃire S1,S2,…,Sk iar dacă un nod este
( )
Si el are ca fii nodurile Si1,Si2,…,Sil, unde S ij j =1,l formează o împărŃire pentru Si.
Extremal, divizarea domeniului S poate fi privită ca o enumerare totală a
elementelor lui S. O astfel de abordare nu este însă benefică decât în cazul programelor
cu număr foarte mic de variabile şi din această cauză, în practică se caută un mod de
enumerare care să nu necesite împărŃirea mulŃimii iniŃiale într-un număr prea mare de
submulŃimi. Acest lucru poate fi făcut dacă dăm o modalitate prin care să putem stabili
când o subîmpărŃire a unei mulŃimi Si nu mai este necesară. Vom spune că "blocăm Si".
PropoziŃia 2. Arborele de enumerare poate fi blocat într-un nod corespunzător
lui Si dacă are loc una din următoarele condiŃii:
1. S i = ∅ ( ne admisibilitate);
2. se cunoaşte o soluŃie optimă pentru (IPi) (optimalitate);
3. z IPi
≤ z IP (dominanŃa valorii funcŃiei obiectiv).
Pentru a evita rezolvarea problemei (IPi) putem utiliza relaxarea sau dualitatea.
La folosirea relaxării, fie (RIPi) relaxarea pentru (IPi) cu S i ⊆ S Ri şi z Ri ( x ) ≥ cx
pentru x ∈ S i . Atunci, în locul propoziŃiei 2 se poate folosi următorul rezultat:
PropoziŃia 3. Arborele de enumerare poate fi blocat într-un nod corespunzător
lui Si dacă are loc una d in următoarele condiŃii:
1. (RIPi) nu este admisibilă;
2. O soluŃie optimă pentru (RIPi) satisface x Ri ∈ S i şi z Ri = cx Ri ;
3. z Ri ≤ z IP unde z IP este valoarea unei soluŃii admisibile pentru (IP).
La utilizarea dualei, fie (DIPI) duala (slabă) pentru (IPI). Atunci putem utiliza
următorul rezultat:
PropoziŃia 4. Arborele de enumerare poate fi blocat într-un nod corespunzător
i
lui S dacă are loc una din următoarele condiŃii:
1. Valoarea obiectiv pentru (DIPi) este nemărginită inferior;
2. (DIPi) are o soluŃie admisibilă cu valoarea mai mică sau egală cu z IP .
Făcând o paralelă între propoziŃiile 3 şi 4 vedem că înainte de a putea aplica
dominanŃa va trebui să rezolvăm efectiv (RIPi) sau să aplicăm dominanŃa în raport cu o
soluŃie admisibilă care nu este optimă. Pe de altă parte, (RIPi) poate conduce la o soluŃie
admisibilă pentru (IPi) care stabileşte sau îmbunătăŃeşte valoarea z IP .
Pe baza rezultatelor date mai sus se poate genera un algoritm de rezolvare prin
relaxare enumerativă care este numit frecvent Branch-and-Bound sau enumerare
implicită.
Pentru prezentarea unui astfel de algoritm general vom considera că L este o
colecŃie de programe întregi (IPi), fiecare de forma z IP
i
{ }
= max cx x ∈ S i cu S i ⊆ S şi că
la fiecare problemă din L se asociază o margine superioară z i ≥ z IP
i
.

21
ALGORITM 4 Algoritm general de tip Branch-and-Bound
Pas 0: INIłIALIZARE: L=(IP), S0=S, z 0 = ∞ şi z IP = −∞ .
Pas 1: TEST TERMINARE: Dacă L este vidă atunci ne oprim, soluŃia x0 care a produs
z IP = cx 0 este soluŃia optimă, altfel se continuă.
Pas 2: SELECTARE PROBLEMĂ ŞI RELAXARE: Se alege o problemă (IPi) din L şi
L←L\{(IPi)}. Se rezolvă relaxarea (RIPi) pentru problema (IPi). Fie z Ri valoarea
optimă a relaxării şi x Ri soluŃia optimă, dacă există, altfel (RIPi) nu este
admisibilă şi se merge la Pas 1 (are loc condiŃia 1 din propoziŃia 13).
Pas 3: BLOCARE:
a) Dacă rezolvarea (RIPi) se face
1. prin algoritm primar, dacă z Ri ≤ z IP se merge la Pas 1;
2. prin algoritm dual atunci se trece la Pas 1 imediat ce valoarea dualei
atinge sau scade sub z IP ;
b) Dacă z Ri ∉ S i se trce la Pas 4
c) Dacă z Ri ∈ S i şi cx Ri > z IP fie z IP ← cx Ri şi eliminăm din L toate
problemele pentru care z i ≤ z IP
Dacă z Ri = cx Ri se merge la Pas 1 altfel se merge la Pas 4.
Pas 4: DIVIZARE: Fie S ij ( ) j =1, k o împărŃire a lui Si. Pentru i=1,…,k se adaugă la L
problema (IPi) cu z ij = z Ri . În final se trece la Pas 1.

Aplicarea algoritmului de tip Branch-and-Bound impune discutarea unor


proprietăti cum ar fi tipurile de divizare, strategiile de dezvoltare a arborelui de
enumerare, finitudinea arborelui rezultat, etc.
În contextul utilizării relaxărilor la programarea liniară, în relaxarea iniŃială vom
0
considera S LP { }
= x ∈ R+n Ax ≤ b în loc de S şi de asemenea, în fiecare relaxare realizată
vom considera z R ( x ) = cx .
Un prim aspect pe care îl considerăm este cel al CRITERIULUI DE BLOCARE A
DIVIZĂRII. În contectul relaxărilor la programarea liniară avem avantajul aplicării directe
a condiŃiilor din propoziŃiile 3 şi 4.
Presupunem că în nodul i al arborelui de enumerare relaxarea liniară este:
(LPi) i
z LP {
= max cx x ∈ S LP
i
}
i
unde S LP {
= x ∈ R+n A i x ≤ b i }
Presupunând că (LPi) are o soluŃie optimă, pa care o notăm cu xi, condiŃiile de
blocare a divizării sunt:
1. S LPi
= ∅ (ne admisibilitate);
2. x i ∈ Z +n (optimalitate);
i
3. z LP ≤ z IP unde z IP este valoarea unei soluŃii cunoscute pentru (IP) (dominanŃa
valorică). Pentru această condiŃie putem utiliza şi una mai slabă de tipul
i
z LP ≤ z IP + ε , pentru o toleranŃă ε dată.

22
Un al doilea aspect important este legat de modul de ÎMPĂRłIRE realizat într-un
nod al arborelui de enumerare.
Datorită utilizării relaxării la programarea liniară, în fiecare nod divizarea se
realizează prin adăugarea de restricŃii liniare. Un mod natural de împărŃire este de a
considera S = S1 ∪ S 2 prin care {
S 1 = S ∩ x ∈ R+n dx ≤ d 0 şi }
{
S 2 = S ∩ x ∈ R+n dx ≥ d 0 + 1 } cu (d , d 0 ) ∈ Z n+1 . Astfel, dacă relaxarea liniară
{
max cx x ∈ R+n , Ax ≤ b } are soluŃia x 0, putem considera (d , d 0 ) astfel încât
d 0 < dx 0 < d 0 + 1 . Deoarece x 0 ∉ S 1 ∪ S 2 acest mod de divizare ne dă posibilitatea
i
rezolvării problemelor z LP { }
= max cx x ∈ S i pentru care z LP
i
< z LP
0
(pentru i=1,2).
În aplicaŃiile practice divizarea se face prin intermediul unor alegeri speciale
pentru (d , d 0 ) care în plus formează partiŃii ( S = S 1 ∪ S 2 şi S 1 ∩ S 2 = ∅ ). Două cazuri
speciale sunt dihotomiile:
(i) Se consideră
(ii) Pentru cazul în care problema conŃine o restricŃie generală de mărginire superioară
de forma
Dihotomiile de tipul (i) sunt cunoscute şi sub numele de dihotomii de variabile.
Pentru aceste dihotomii un rezultat important este dat de următorul enunŃ:
{ }
PropoziŃia 5. Dacă P = x ∈ R+n Ax ≤ b este un domeniu mărginit atunci un
arbore de enumerare dezvoltat pe baza dihotomiei de variabile va fi finit dacă în fiecare
nod i care necesită împărŃire pentru x ij neîntreg se alege o dihotomie de forma
(x ≤ [x ], x ≥ [x ] + 1). În particular, dacă ω = [max{x
j
i
j j
i
j j j }]
x ∈ P atunci nici un drum al
arborelui de enumerare nu poate conŃine mai mult de ∑ω
j∈N
j noduri.

Relativ la blocarea enumerării avem următorul rezultat:


PropoziŃia 6. Dacă în arborele de enumerare în nodul t cu restricŃiile St are loc
{ }
relaŃia max cx x ∈ S Rt > z IP atunci în nodul t enumerarea nu poate fi blocată.
O a treia problemă importantă pentru utilizarea algoritmului de tip Branch-and
Bound este legată de alegerea nodului prin care se CONTINUĂ EXAMINAREA
DETALIATĂ. Conform algoritmului prezentat, acest nod se alege din lista
subproblemelor active L (sau echivalent, din lista nodurilor unui arbore parŃial ne blocat
sau activ). Strategiile de alegere a nodului de continuare se pot împărŃi în două mari
clase:
(i) strategii apriorice - reguli care determină de la început ordinea de dezvoltare a
arborelui de enumerare;
(ii) Strategii adaptative - reguli prin care alegerea se face prin folosirea unor
informaŃii asupra stării nodurilor active (cum ar fi, de exemplu, mărginirea).
Dintre strategiile apriorice vom aminti: (i1) căutarea în profunzime şi (i2) căutarea
în nivel.
Căutarea în nivel (i2) consideră întâi toate nodurile unui nivel înainte de a trece la
nivelul următor. Această variantă este mai puŃin utilizată deoarece poate conduce la

23
creşterea exponenŃială a numărului de probleme din L chiar dacă la terminarea inspectării
unui nivel în L toate problemele rămase au dimensiunea redusă cu cel puŃin o variabilă.
Căutarea în profunzime (i1) se realizează prin utilizarea tehnicii backtracking. La
utilizarea acestei căutări, dacă nodul curent nu este blocat, atunci căutarea se continuă cu
unul dintre fiii săi. Dacă în schimb un nod este blocat se foloseşte tehnica backtracking
prin care se asigură întoarcerea de la nodul blocat, pe drumul spre rădăcină, până găsim
un nod pentru care nu am considerat în căutare toŃi fiii. Utilizarea acestei strategii are ca
avantaj obŃinerea imediată a relaxării liniare pentru un fiu din relaxarea pentru părinte,
prin adăugarea restricŃiilor de mărginire inferioară şi superioară, şi reoptimizarea. În plus,
experienŃa rezolvării problemelor de optimizare întreagă ne indică faptul că soluŃiile
admisibile se găsesc cel mai adesea la nodurile mai depărtate de rădăcină.
Dintre strategiile adaptative putem da ca exemplu: (ii1) cea mai bună mărginire
superioară, (ii2) cea mai bună estimare şi (ii3) îmbunătăŃirea rapidă.
Regula celei mai bune mărginiri superioare (ii1) consideră că, la blocarea unui
nod, se continuă cu cel care are cea mai largă margine superioară, adică din mulŃimea
nodurilor active din L se alege problema i care maximizează z i .
Regula celei mai bune estimări (ii2) indică alegerea unui nod care duce cel mai
probabil la soluŃia optimă. În alegere, chiar dacă optimalitatea nu poate fi demonstrată
imediat, vom obŃime cea mai mare valoare posibilă pentru z IP , lucru important pentru
blocările ulterioare de noduri. Pentru a aplica această regulă se realizează o estimare ẑ i
( )
pentru z i , zˆ i ≤ z i , şi se alege din L problema i care maximizează ẑ i .
Regula îmbunătăŃirii rapide (ii3) încearcă, prin utilizarea criteriului
zi − z
max i IPi
i∈L z − zˆ
să găsească rapid o soluŃie x̂ pentru care cxˆ > z IP , şi nu să încerce să determine o soluŃie
optimă, prin alegerea preferenŃială a nodurilor pentru care diferenŃa z i − zˆ i este mică,
fiind ales nodul i cu z i ≥ z IP şi nu nodul j cu z j ≤ z IP . Acest mod de alegere poate
deveni o opŃiune implicită odată ce se cunoaşte o soluŃie admisibilă.
O a patra problemă importantă pentru algoritmul Nranch-and-Bound este legată
de SELECłIA VARIABILEI DE DIVIZARE pentru cazul în care am ales deja un nod activ
i pentru care se obŃine xi, soluŃia relaxării liniare a problemei corespunzătoare nodului.
{
Alegerea variabilei de divizare este restricŃionată la N i = j ∈ N x ij ∉ Z , deci la }
i
variabilele care în soluŃia x nu au valori întregi.
O alegere posibilă se poate realiza prin specificarea unei ordini a variabilelor
considerate, ordine dată ca informaŃie de intrare la rezolvarea modelului (regula
priorităŃilor specificate utilizator).
O altă regulă, cunoscută ca regula degradărilor sau penalitătilor, încearcă o
estimare a diminuării valorii z i cauzată de cerinŃa ca xj să fie întreg. Dacă presupunem că
[ ]
x j = x ij = x ij + f ji şi f ji > 0 atunci în dividarea lui xj estimăm diminuarea valorilor
(
D −j i = p −j i f ji pentru fiul stâng şi D +j i = p +j i 1 − f ji ) pentru cel drept, unde coeficienŃii
(p −i
)
, p +j i pot fi specificaŃi iniŃial sau estimaŃi. Folosirea acestor valori conduce la o
j

alegere pe baza criteriului:

24
maxi min{D −j i , D +j i }
j∈N

Un caz particular se obŃine considerând (p −i


j )
, p +j i = (1,1) (deci D −j i = f ji şi
D +j i = 1 − f ji ), criteriul fiind cunoscut drept criteriul neadmisibilităŃii întregi.
Odată stabilită variabila de divizare xj se poate realiza şi o alegere a nodului de
continuare (fiul stâng dacă D −j i ≤ D +j i şi cel drept altfel), simultan putându-se calcula şi
valoarea ẑ i dacă se presupune că degradările pentru fiecare variabilă sunt independente.
Pentru ẑ i se realizează estimarea:
zˆ i = z LP
i
− D −j i − ∑ min Dk− i , Dk+ i { }
k ∈N i \ { j }

dacă se alege fiul stâng şi respectiv:


zˆ i = z LP
i
− D +j i − ∑ min{D −i
k , Dk+ i }
k ∈N i \ { j }

dacă se alege fiul drept.

V.3. Algoritmi heuristici

Algoritmii heuristici sau aproximativi reprezintă o alternativă la algoritmii exacŃi


ei oferind, într-un timp relativ scurt, o soluŃie bună dar nu neapărat optimă pentru
problemele de optimizare discretă. În funcŃie de calitatea cerută pentru rezolvarea unei
probleme, soluŃia dată de un astfel de algoritm poate fi considerată ca soluŃie finală sau
poate fi utilizată ca intrare pentru un algoritm exact.
În descrierea algoritmilor heuristici, într-o mare varietate de cazuri se pot aplica
două idei principale: utilizarea metodei Greedy şi căutarea locală (sau interschimbarea).

V.3.1. Algoritmi de tip Greedy

Algoritmii din această clasă se aplică frecvent la maximizarea funcŃiilor de


mulŃime. Astfel, putem considera o funcŃie reală v(Q) definită pe toate submulŃimile lui
N={1,2,…,n} şi să considerăm problema de optimizare max{v(Q ) Q ⊆ N }.
Ideea utilizată în algoritm este ca plecând de la o mulŃime Q i ⊆ N să adăugăm la
Qi un element din N \ Q i care produce cea mai mare creştere pentru valoarea funcŃiei v.
Această ideea se concretizează în următorul algoritm:

ALGORITM 6 Algoritm heuristic de tip Greedy pentru maximizarea unei funcŃii


de mulŃime
Pas 0: INIłIALIZARE: Q 0 = ∅ , t=1.
Pas 1: ALEGERE ALEMENT SUPLIMENTAR: Fie jt = arg maxt −1 v Q t −1 ∪ { j} .
j∈N \ Q
( )
Pas 2: ( ) (
TESTARE CREŞTERE: Dacă v Q t −1 ∪ { j} ≤ v Q t −1 ne oprim, Qt-1 este soluŃia)
greedy căutată, altfel se continuă.

25
Pas 3: DEZVOLTARE MULłIME: Q t ← Q t −1 ∪ { j} . Dacă Qt=N ne oprim, N este
soluŃia greedy căutată, altfel t ← t + 1 şi se reia de la Pas 1.

V.3.2. Algoritmi de tip căutare locală

Algoritmii din această clasă pleacă de la ideea de a considera o soluŃie admisibilă


dată şi de a încerca, printr-un număr limitat de schimbări, să se găsească o soluŃie
admisibilă mai bună.
Volumul de muncă din acest tip de algoritm va depinde în mod esenŃial de
valoarea aleasă pentru k iar în practică, pentru obŃinerea unor forme suficient de rapide
ale algoritmului se alege k ∈ {1,2,3} .
Pe baza ideilor prezentate, dând o valoare întreagă pozitivă k ≤ n şi considerând,
de exemplu,
 
N k (Q ) =  x ∈ B n ∑ z j − x j ≤ k  pentru z ∈ B n
 j∈N 
(pentru o problemă de optimizare 0-1), obŃinem următoarea formă a algoritmului:

ALGORITM 7 UN ALGORITM DE CĂUTARE LOCALĂ PRIN K


{
INTERSCHIMĂRI PENTRU max c( x ) x ∈ S ⊆ B n }
Pas 1: INIłIALIZARE: Se alege x1 ∈ S , t ← 1 .
Pas 2: ( )
TESTARE OPTIMALITATE: Dacă pentru orice x ∈ N k (x t ) ∩ S , c( x ) ≤ c x t ne
oprim, xt este soluŃia căutării locale, altfel se continuă.
Pas 3: ( ) ( )
ÎMBUNĂTĂłIRE SOLUłIE: Fie x t +1 ∈ N k (x t ) ∩ S pentru care c x t +1 > c x t .
t ← t + 1 şi se reia de la Pas 2.

Aşa cum ar părea normal, la pasul 3, alegerea lui xt+1 ar trebui făcută încât în acest
{ }
punct să obŃinem c(x t +1 ) = max c( x ) x ∈ N k (x t ) ∩ S , dar acest lucru ar conduce la
examinarea completă a mulŃimii N k (x t ) ∩ S . Din această cauză, aplicarea practică a
algoritmului de căutare locală se face prin comasarea paşilor 2 şi 3, care să permită
( )
oprirea iteraŃiei t la primul x pentru care c( x ) > c x t , iar oprirea să se realizeze doar când
în N k (x ) ∩ S nu există un astfel de punct.
t

VI. OPTIMIZARE PROCENTUALĂ

VI.1. Forma generală a modelelor procentuale

Prin intermediul acestor modele se urmăreşte optimizarea unei proprietăŃi pentru


un amestec cu păstrarea altora în anumite limite acceptabile. Cuantificarea proprietăŃii
pentru care se realizează optimizarea produce funcŃia obiectiv a modelului în timp ce
exprimările legate de menŃinerea unor caracteristici în anumite limite produc restricŃiile
modelului, cu excepŃia unei singure restricŃii, cea de sumă unitară.
Altfel, modelul se poate exprima prin

26
 opt cx
 A1 x ≤ b1

A x ≥ b
2 2
(1)
 1⋅ x =1

 xi ≥ 0

unde, c este vectorul de dimensiune n al coeficienŃilor funcŃiei obiectiv, funcŃie care


cuantifică proprietatea avută în vedere în procesul de optimizare; A1 x ≤ b1 şi A 2 x ≥ b 2
reprezintă sistemul de inecuaŃii prin care sunt exprimate alte proprietăŃi dorite pentru
amestec în anumite limite, A1 fiind o matrice cu m1 linii şi n coloane, A 2 o matrice cu
m 2 linii şi n coloane, b1 un vector de dimensiune m1 şi b 2 un vector de dimensiune m 2 ;
1 este un vector de dimensiune n cu toate componentele egale cu 1 cu ajutorul căruia se
exprimă condiŃia de sumă unitară. În plus, se consideră că toate valorile care intervin în
exprimarea modelului sunt nenegative, cele din funcŃia obiectiv şi din membrul drept al
inecuaŃiilor condiŃii fiind chiar pozitiv definite.
În forma extinsă acest model poate fi rescris sub forma:

 n

 opt ∑ c i xi
 n i =1

 a 1 x ≤ b1
∑ ij i j pentru j = 1,..., m1
 in=1
 (2)
∑ aij xi ≥ b j j = 1,..., m 2
2 2
pentru
 i =1 n
 ∑ xi = 1
 i =1
 xi ≥ 0 orice i = 1,..., n

unde, aşa cum am văzut mai sus pentru coeficienŃii funcŃiei obiectiv şi pentru valorile
matricilor A1 şi A 2 , şi pentru vectorii b1 şi b 2 sunt îndeplinite următoarele condiŃii:
- ci > 0 pentru orice i = 1,..., n ;
- a ij1 ≥ 0 pentru orice i = 1,..., n şi pentru orice j = 1,..., m1 ;
- a ij2 ≥ 0 pentru orice i = 1,..., n şi pentru orice j = 1,..., m 2 ;
- b1j > 0 pentru orice j = 1,..., m1 şi
- b 2j > 0 pentru orice j = 1,..., m 2 .

VI.2. ProprietăŃi directe pentru forma generală a programelor procentuale

Forma prezentată este în fapt una mult mai restrictivă decât cea vizibilă în
exprimările (1) sau (2), însă, condiŃionarea suplimentară este una implicită şi este legată
de intervenŃia condiŃiei de sumă unitară.

27
Proprietate 1. Dacă x este o soluŃie admisibilă pentru modelul (1), atunci pentru
orice i = 1,..., n avem xi ∈ [0,1] .
Proprietatea 1 ne spune că toate variabilele modelului sunt subunitare şi au suma
unitară de unde putem considera că ele reprezintă procente de alocare a unor resurse, de
unde şi numele pe care l-am adoptat pentru această clasă de modele.
Proprietatea ne mai spune şi că toate soluŃiile admisibile pentru modelul (1) se
găsesc în hipercubul unitate cu un vârf în originea axelor de coordonate şi cu n din laturi
pe cele n axe de coordonate ale spaŃiului R n pe care modelul este definit. Această
observaŃie ne asigură de faptul că, dacă mulŃimea soluŃiilor admisibile este nenulă atunci
este mărginită şi astfel, funcŃia obiectiv are optim finit.
AfirmaŃia făcută se poate rezuma în următorul enunŃ:
Proprietate 2. Dacă mulŃimea soluŃiilor admisibile pentru problema (1) este
nevidă, atunci problema are optim finit.

VI.3. Discretizarea formei generale pentru programele procentuale

Forma generală nu este întotdeauna utilă în rezolvarea modelelor propuse ca


modele procentuale. Acest lucru apare în special atunci când coeficienŃii implicaŃi în
matricile de restricŃii sunt relativ mici ca valoare. În astfel de cazuri erorile de aproximare
în rezolvarea problemelor cu ajutorul calculatoarelor electronice şi propagarea acestor
erori au ca efect apariŃia fenomenelor de neconvergentă în aplicarea algoritmilor de
calcul, intrând exact în zonele în care aceşti algoritmi au comportamente contradictorii.
Aceste comportamente pot părea paradoxale, în special în contextul în care,
pentru modelele procentuale pentru care existenŃa unei soluŃii admisibile asigură existenŃa
soluŃiilor optime. Ele pot fi înlăturate prin utilizarea unor procese de calcul foarte
sofisticate în care numerele reale să fie aproximate cu un număr suficient de zecimale
încât să se producă foarte greu fenomenul de apariŃie a zerourilor de aproximare.
O a doua modalitate de rezolvare a comportamentelor paradoxale pentru
algoritmii clasici de rezolvare a problemelor de programare liniară cu variabile continue
este de a realiza modificarea modelelor utilizate. Acest lucru este posibil în special şi
datorită faptului că, în practică, precizia finală reŃinută din aplicarea modelului este de
maxim 4 cifre semnificative (în general valori exprimate ca procente la sută care în
reprezentarea utilă aplicării modelului se dau cu cel mult 2 zecimale).
Programele de optimizare transformate se obŃin prin trecerea din domeniul
continuu într-un domeniu discret. Cum mulŃimea soluŃiilor admisibile pentru modelele
procentuale generale este una mărginită, acelaşi lucru se va întâmpla şi pentru modelele
obŃinute prin transformare şi care vor intra astfel în zona modelelor combinatoriale.
Facem această afirmaŃie deoarece, transformarea pe care o propunem este de a
trece de la variabile procentuale la variabile întregi, obŃinându-se astfel, în general
probleme de programare liniară întreagă. Cum variabilele modelului original sunt
mărginite, rezultă că şi variabilele din modelul obŃinut prin transformare trebuie să fie
mărginite şi astfel modelul de programare întreagă este de fapt un model de optimizare
combinatorială.

28
Modalitatea de transformare pe care o propunem este de multiplicare a fiecărei
relaŃii din modelul original prin puterea lui 10 care asigură precizia dorită şi
restricŃionarea suplimentară a variabilelor modelului la numere întregi după redefinire.
Dacă vom considera că precizia dorită pentru rezultatele aplicării modelului
procentual este de k cifre exacte. Atunci prima etapă în transformarea modelului (1) este
de a înmulŃi fiecare relaŃie prin α = 10 k şi reŃinerea acestei multiplicări în zina
variabilelor modelului. Se obŃine astfel formularea:
 n

 opt ∑ ci (αxi )
 n i =1

 a 1 (αx ) ≤ αb1 pentru j = 1,..., m1


∑ ij i j
 in=1
 (3)
∑ aij (αxi ) ≥ αb j pentru j = 1,..., m
2 2 2

 i =1 n
 ∑ (αxi ) = α,
 i =1
 xi ∈ [0,1] pentru i = 1,..., n
unde, am introdus ca explicită condiŃia de domeniu implicită rezultată pentru modelul (1)
din proprietatea 1.
A doua etapă a transformării realizează redenumirea variabilelor modelului,
înlocuindu-se αxi prin y i , pentru a se obŃine formularea:
 n

 opt ∑ ci y i
 n i =1

 a 1 y ≤ αb 1
∑ ij i j pentru j = 1,...,.m1
 in=1
 (4)
∑ aij y i ≥ αb j j = 1,..., m 2
2 2
pentru
 i =1 n
 ∑ yi = α
 i =1
 y i ∈ [0, α ] pentru i = 1,..., n

Se poate observa că modelul (4) se poate obŃine direct din modelul (2) prin
schimbarea numelui variabilelor, multiplicarea termenilor liberi din sistemul de restricŃii
şi înlocuirea condiŃiei de pozitivitate a variabilelor prin condiŃia de domeniu explicită
y i ∈ [0, α ] pentru i = 1,..., n .
Ultima etapă în transormarea modelului (2) este de a impune condiŃiile de
integralitate asupra variabilelor noului model, în acest mod obŃinându-se un model de
optimizare conbinatorială care se poate rezolva prin instrumentele specifice acestui tip de
optimizare. Modelul este definit în forma compactă prin:

29
 opt cy
 A1 y ≤ αb1

 A y ≥ αb
2 2
(5)
 1⋅ y = α

 y ∈ {0,1,..., α}n

VI.4. ProprietăŃi legate de discretizarea modelelor procentuale

Modelele (2) şi (4) pot fi considerate echivalente din punct de vedere al soluŃiilor
pentru că transformarea care a fost aplicată este de factură liniară. Acest lucru poate fi
rezumat în următorul rezultat:
Proprietate 3.
a) MulŃimea soluŃiilor admisibile pentru modelul (2) este vidă dacă şi numai dacă
mulŃimea soluŃiilor admisibile pentru modelul (4) este vidă.
b) MulŃimea soluŃiilor admisibile pentru modelul (2) este nevidă dacă şi numai dacă
mulŃimea soluŃiilor admisibile pentru modelul (4) este nevidă. În plus, dacă x este
soluŃie optimă pentru (2) şi dacă y este soluŃie optimă pentru (4), atunci are loc
1
relaŃia αv( x ) = w( y ) , αx este soluŃie optimă pentru (4) şi y este soluŃie optimă
α
pentru (2), unde w(y) este valoarea funcŃiei obiectiv pentru o soluŃie admisibilă y a
modelului (4).

VI.5. Monotonia funcŃiei obiectiv având coeficienŃii strict crescători

Considerăm în continuare un caz particular al modelelor de forma (5) şi anume


cele în care coeficienŃii funcŃiei obiectiv sunt strict descrescători.
Vectorii din domeniul de lucru, [0, α ] , îi putem ordona conform unei relaŃii de
n

ordine introdusă natural pentru şirurile de valori şi anume, ordinea lexicografică. Astfel,
vom spune că vectorii u şi v, (u1 ,..., u n ) , (v1 ,..., v n ) sunt astfel încât "u mai mic
(lexicografic) decât v", scris u ≺ v , dacă există i ∈ {1,..., n − 1} astfel încât u i < vi şi orice
j ∈ {1,..., i − 1} , u j = v j .
Cu aceste elemente putem da următoarea caracterizare a funcŃiei obiectiv:
PropoziŃie 1. Dacă x şi y sunt soluŃii admisibile pentru problema (5), x ≺ y ,
diferenŃa pe componenta care stabileşte relaŃia de ordine este unitară şi x şi y diferă doar
pe componentele i şi k, 1 ≤ i < k ≤ n , atunci f ( x) < f ( y ) .
Generalizarea propoziŃiei 1 conduce la următorul rezultat:
PropoziŃia 2. Dacă x şi y sunt soluŃii admisibile pentru problema (5) care are
coeficienŃii funcŃiei obiectiv strict descrescători şi x ≺ y , atunci f ( x) < f ( y ) .
ObservaŃie. Această propoziŃie statutează că în condiŃiile date funcŃia obiectiv
este monotonă.
O consecinŃă firească a propoziŃiei 2 este o posibilă mărginire a valorilor funcŃiei
obiectiv pentru problemele de programare procentuală.

30
PropoziŃia 3: Fie A mulŃimea soluŃiilor admisibile pentru o problemă de
programare procentuală, A ≠ ∅ , pentru care coeficienŃii funcŃiei obiectiv formează un
şir strict monoton şi x m , x M definite ca minim şi maxim a vectorilor din A relativ la
ordinea lexicografică dată mai sus. Atunci pentru orice x ∈ A , are lor relaŃia
( ) ( )
f x m ≤ f (x ) ≤ f x M .

VI.5. Modele de programare procentuală

În continuare ne propunem să prezentăm două modele care pot intra în clasa


programării procentuale, unul cu domenii uniforme şi unul general, cu domenii oarecare
pentru necunoscutele modelului.
Modelul cu variabile întregi nenegative, cu domenii mărginite identice pentru
toate variabilele (domenii uniforme), cu explicitarea condiŃiei de sumă constantă
reprezintă o primă generalizare a modelelor care fac parte din clasa optimizării
procentuale. În acelaşi timp ele prezintă o analogie cu modelele de tip rucsac, prin trecere
de la domeniu {0,1} la un domeniu {0,1,…,p} cu p număr natural fixat.
Modelul cu variabile întregi nenegative, cu domenii mărginite nu neapărat
identice pentru toate variabilele (domenii neuniforme), cu explicitarea condiŃiei de sumă
constantă reprezintă o primă generalizare a modelelor cu domenii uniforme.

VI.5.1. Modele întregi cu sumă constantă şi variabile cu domeniu


uniform

Model de optimizare combinatorială cu variabile uniforme şi condiŃie


explicită de sumă constantă

Considerăm în continuare un caz particular al modelelor de optimizare


combinatorială în care vom evidenŃia separat o condiŃie particulară cu egalitate şi în care
domeniile tuturor variabilelor sunt identice [BAS05a]. Această problemă este una
particulară de tipul rucsac general.
Considerăm că variabilele modelului sunt fiecare în domeniul {0,1,2,..., p}∈ N .
Modelul particular considerat este de forma
opt cx
 1
A x ≤ b
1

 2
A x ≥ b
2
(1)
1 ⋅ x = P

 xi ∈ {0,1,..., p}, i = 1,2,..., n
unde P ∈ N . După cum se poate observa acest model este similar ca formă cu modelul
(4), cu deosebirea că aici în locul condiŃiei de tip sumă unitară avem o condiŃie de sumă
constantă.
Din enunŃarea modelului este clar că se impune suplimentar condiŃia np ≥ P . Într-
adevăr, cum orice i , p ≥ xi , prin sumare membru cu membru avem

31
n n
np = ∑ p ≥ ∑ xi = P .
i =1 i −1
Astfel, dacă np ≥ P nu este îndeplinită, atunci problema (5) nu are soluŃii admisibile,
deci modelul considerat nu are soluŃii.
Datorită similitudinii modelului (1) cu modelul (5) prezentat în paragraful 3.6.3 şi
a transformărilor bijective care au dus la transformarea modelului (1) în modelul (4) în
paragraful mai sus menŃionat, rezultă că modelul (1) poate fi considerat la rândul său un
model de programare procentuală.
Modelul (1) este un caz particular de model rucsac general cu variabile uniforme,
având condiŃie explicită de sumă constantă. Putem trage astfel următoarea concluzie:
PropoziŃie: Clasa modelelor rucsac general cu variabile uniforme şi condiŃie
explicită de sumă constantă este subclasă a clasei modelelor procentuale.
În continuare, ca în cazul problemelor de programare procentuală putem considera
doar problemele în care coeficienŃii funcŃiei obiectiv sunt ordonaŃi. Acest lucru nu
restrânge generalitatea, deoarece orice problemă poate fi redusă la una având coeficienŃii
funcŃiei obiectiv ordonaŃi prin aplicarea unei permutări asupra variabilelor. De asemenea,
vom considera modelul în care optimul căutat este un maxim. Pentru minim se poate
proceda similar.

Caracterizări ale soluŃiilor pentru modelul rucsac general cu variabile


uniforme şi condiŃie explicită de sumă constantă

În continuare, deoarece p, P ∈ N ⊂ Z , putem determina q, r ∈ N astfel încât


P = pq + r şi condiŃia de sumă constantă şi fie scrisă sub forma 1 ⋅ x = pq + r , unde q şi
r , se determină pe baza proprietăŃilor de monotonie a vectorilor soluŃie admisibilă pentru
problemele de optimizare procentuală şi q reprezintă numărul valorilor xi egale cu p în
vectorii soluŃie admisibilă.
P
PropoziŃie. q ≤   , unde [•] desemnează partea întragă a unui număr.
 p
Fie t = 0 reprezentând numărul minim de valori xi egale cu p într-o soluŃie
admisibilă pentru problema (1)
(rel1) Dacă t valori xi sunt egale cu p , atunci restul valorilor ( n − t ) sunt cel
mult egale cu p − 1 şi astfel, prin înlocuire în modelul (1) se obŃine
max p (c1 + ... + ct ) + ct +1 xt +1 + ... + c n x n
 1
 A ( p,..., p, xt +1 ,..., x n ) ≤ b
T 1


 A2( p,..., p, xt +1 ,..., x n ) ≥ b
T 2
(2)
 pt + x + ... + x = P
 t +1 n

 xi ∈ {0,1,..., p − 1}, i = t + 1,..., n



care prin eliminarea constantelor poate fi redus la

32
max c y
 1
A y ≤ b
1

 2
A y ≥ b
2
(3)
1 ⋅ y = P

 yi ∈ {0,1,..., p − 1}, i = 1,..., n − t
unde y = ( y1 ,..., y n−t ) , c = (ct +1 ,..., c n ) , A 1 , A 2 se obŃin din A1 , respectiv A 2 , prin
t t
eliminarea primelor t coloane, P = P − pt , bi1 = bi1 − p ∑ a ij1 şi bi 2 = bi2 − p ∑ a ij2 .
j =1 j =1

Pentru îndeplinirea condiŃiilor de admisibilitate cu sumă constantă pentru (3)


avem acum (n − t )( p − 1) ≥ P , deci
n( p −1) + t ≥ P
Dacă această condiŃie nu este îndeplinită, atunci t se înlocuieşte cu t + 1 şi
raŃionamentul care a început la paragraful (rel1).
Dacă ultima condiŃie este îndeplinită, atunci s-a obŃinut un t astfel încât t ≤ q .
P
Cum din propoziŃia anterioară avem q ≤   , rezultă că procedeul descris mai sus pentru
 p
determinarea lui t se poate aplica doar de un numar finit de ori şi astfel constituie un
algoritm de determinare a lui q , care produce în plus o reducere a problemei prin
restrângerea domeniului variabilelor şi eventual scăderea numărului acestora.
ALGORITM Model cu domenii uniforme
Pas 1. Se determină o permutare σ ∈ S n astfel încât cσ(1) ≥ cσ (2 ) ≥ ... ≥ cσ (n ) . Prin
(
aplicarea permutării σ la variabilele modelului, fie d i1 = cσ (i ) , y l = y1l , y 2l ,..., y nl l ),
T

( )
y i1 = xσ (i ) , i = 1,2,..., n , n1 = n , E 1 = eij1 , eij1 = a iσ ( j ) , i = 1,2,..., m , j = 1,2,..., n ,
b1 = b , P 1 = P , Q 1 = Q şi l = 1 .
Pas 2. Se consideră modelul
 nl
min ∑ d i y i
l l

 i =1
 E l y l ≤ b l
 nl

∑ y i = P
l l

 i =1
{ }
 yil ∈ 0,1,..., Q l , i = 1,2,..., n l
 Pl 
şi fie d l =  l  .
Q 
(
Pas 3. Se generează y 0l = 0,...,0, Q l ,..., Q l )T
unde numărul valorilor Q l este egal cu d l ,
iar numărul valorilor zero este n l − d l .

33
Pas 4. Se verifică sistemul de restricŃii E l y l ≤ b l pentru y l = y 0l . Dacă sistemul de
restricŃii se verifică se trece la pasul 7, altfel se continuă.
Pas 5. Fie d l ← d l − 1 . Dacă d l ≠ 0 se trece la pasul 3, altfel se continuă.
Pas 6. Fie Q l ← Q l − 1 . Dacă Q l ≠ 0 se trece la pasul 2, altfel ne oprim (modelul nu are
soluŃii).
Pas 7. Fie n l +1 = n l − d l . Dacă n l +1 = 0 ne oprim (modelul nu are soluŃii), altfel se
continuă.
( )
Pas 8. Considerăm d l +1 = d1l ,..., d nl l +1 , y l +1 = y1l ,..., y nl l +1 ( ),
T
( )
E l +1 = eijl +1 , eijl +1 = eijl ,
nl
i = 1,2,..., m , j = 1,..., n l +1
, b l +1
( l +1
= b , b ,..., b
1
l +1
2 m ),
l +1 T
b
i
l +1
= b −Q
i
l l
∑e l
ij ,
j = n l +1 + 1

i = 1,2,..., m , P l +1 = P l − d l Q l , Q l +1 = Q l − 1 şi l ← l + 1 . Dacă Q l ≠ 0 se trece la


pasul 2, altfel se continuă.
( )
T
Pas 9. Se consideră x = 0,...,0, Q l −1 ,..., Q l −1 ,..., Q 1 ,..., Q 1 , unde numărul de zerouri este
egal cu n l iar numărul de valori Q j este n j , j = 1,..., l − 1 . Fie x 0 = x10 ,..., x n0 care ( )
−1
se obŃine aplicând σ la x , deci x = xσ −1 (i ) , i = 1,2,..., n . x este soluŃie optimă.
0
i
0

VI.5.2. Modele întregi cu sumă constantă şi variabile cu domeniu


oarecare

Considerăm acum modelul


opt cx
 1
A x ≤ b
1

 2
A x ≥ b
2
(4)
1 ⋅ x = P

 xi ∈ {0,1,..., pi } ⊂ ℕ, i = 1, 2,..., n
cu p1 , p2 ,..., pn oarecare. Dacă p1 = p2 = ... = pn = p , atunci avem modelul ( 1). Astfel,
putem considera că acest model este o generalizare a modelului (1). Considerăm că există
i, j ∈ {1, 2,..., n} , i ≠ j astfel încât pi ≠ p j .
Pentru simplificarea expunerii considerăm modelul cu forma
max cx
 Ax ≤ b

1 ⋅ x = P (5)

 xi ∈ {0,1,..., pi } ⊂ ℕ, i = 1, 2,..., n

făcând observaŃia, naturală de altfel, că sistemul (4) se poate aduce la această formă
 A1   b1 
considerând A =  2  , b =  2  şi în plus, dacă optimul este minim prin utilizarea
−A   −b 
relaŃiei intre minim şi maxim.

34
Acum putem considera o relaxare a modelului (5) prin suprimarea condiŃiei de
numere întregi asupra variabilelor modelului şi obŃinem
max cx
 Ax ≤ b

1 ⋅ x = P (6)

 xi ∈ [ 0, pi ] ⊂ ℝ, i = 1, 2,..., n

Din teoremele relative la relaxare avem că soluŃiile întregi ale modelului (5) sunt
soluŃii şi pentru (6).
Acum putem rescrie (6) şi sub forma
max cx
 Ax ≤ b

1 ⋅ x ≤ P
 (7)
 − 1 ⋅ x ≤ − P
 xi ≤ pi , i = 1, 2,..., n

 xi ≥ 0, i = 1, 2,..., n
şi considerând
 b 
 
 A   P 
   −P 
C =
1 1 ⋯ 1  şi d =  p 
 −1 −1 ⋯ −1  1
   p2 
 I n   
 ⋮ 
p 
 n
obŃinem pentru (7) forma prescurtată
max cx

Cx ≤ d (8)
 x ≥ 0, i = 1, 2,..., n
 i
Pentru modelul (8) putem asocia modelul dual
min du
 T
C u ≤ c (9)
u ≥ 0, i = 1, 2,..., n
 i
c.m.m.m.c { p1 , p2 ,..., pn }
Considerăm α i ∈ ℕ* , α i = , unde c.m.m.m.c semnifică
pi
cel mai mic multiplu comun şi inmulŃim linia i a sistemului de restricŃii prin α i
(echivalent cu a înmulŃi coloana i a matricii C prin α i şi elementul ci prin α i ). Pentru
modelul obŃinut asociem duala şi notând yi = α i xi rezultă

35
max cy
 Ay ≤ b

1 ⋅ y ≤ P
 (10)
 −1 ⋅ y ≤ − P
 yi ≤ β , i = 1, 2,..., n

 yi ≥ 0, i = 1, 2,..., n
unde β = c.m.m.m.c.{ p1 , p2 ,..., pn } . Folosind în sens invers rescrierile prin care am ajuns
de la (4) la (7) pentru modelul (10) obŃinem, în cazul general,
opt cx
 1
A x ≤ b
1

 2
A x ≥ b
2
(11)
1 ⋅ x = P

 xi ∈ {0,1,..., β } ⊂ ℕ, i = 1, 2,..., n
care este de aceeaşi formă cu (1) pentru care am dat o modalitate de rezolvare prin
reduceri succesive.
ConstrucŃiile de mai sus ne permit să dăm următorul enunŃ :
PropoziŃie. Pentru modelul (4) în care coeficienŃii funcŃiei obiectiv sunt
descrescători există j, 0 ≤ j ≤ n , astfel încât în soluŃia optimă să avem xi = pi pentru
orice 1 ≤ i ≤ j şi xi < pi dacă j < i ≤ n .
Această propoziŃie permite construirea unui algoritm de rezolvare pentru (4) prin
reduceri succesive la modele cu număr mai mic de variabile sau cu domenii mai reduse
pentru variabile, deoarece după aplicarea propoziŃiei pentru (4), fixarea necunoscutelor
deja determinate şi renumerotarea necunoscutelor rămase se obtine un model
opt f + c′z
 1
 A′ z ≤ b′
1

 2
 A′ z ≥ b′
2
(12)
1 ⋅ z = P′

 zi ∈ {0,1,..., pi′} ⊂ ℕ, i = 1, 2,..., n′
j
unde f = ∑ ci pi , c′ = ( c j +1 ,..., cn ) , z = ( x j +1 ,..., xn ) , A′1 , A′2 se obŃin respectiv din A1 , A2
i =1

 x1 
 
prin aliminarea primelor j coloane, b′ = b − A′′  ⋮  cu A′′K formată cu primele j
k k k

 xj 
 
j
coloane din A , k = 1, 2 , P′ = P − ∑ xi şi pi′ = p j +i − 1 .
k

i =1

36
ALGORITM 4 Model cudomenii neuniforme
Pas 1. Se determină o permutare σ ∈ S n astfel încât cσ(1) ≥ cσ (2 ) ≥ ... ≥ cσ (n ) . Prin
aplicarea permutării σ la variabilele modelului, fie d i1 = cσ (i ) , y l = y1l , y 2l ,..., y nl l ( ),
T

( )
y i1 = xσ (i ) , i = 1,2,..., n , n1 = n , E 1 = eij1 , eij1 = a iσ ( j ) , i = 1,2,..., m , j = 1,2,..., n ,
b1 = b , P 1 = P , Qi1 = Qi , i = 1,2,..., n şi l = 1 .
Pas 2. Se consideră modelul
 nl
min ∑ d i y i
l l

 i =1
 E l y l ≤ b l
 nl

∑ y i = P
l l

 i =1
{
 yil ∈ 0,1,..., Qil , i = 1,2,..., n l }
nl nl
l
şi fie d astfel încât ∑Q i
l
≤P< ∑Q i
l
.
i = n l − d l +1 i = nl − d l

(
Pas 3. Se generează y 0l = 0,...,0, Qnl l − d l +1 , Q l l
n −d l + 2
,..., Qnl l )
T
unde numărul valorilor zero
este n l − d l .
Pas 4. Se verifică sistemul de restricŃii E l y l ≤ b l pentru y l = y 0l . Dacă sistemul de
restricŃii se verifică se trece la pasul 7, altfel se continuă.
Pas 5. Fie d l ← d l − 1 . Dacă d l ≠ 0 se trece la pasul 3, altfel se continuă.
nl nl
Pas 6. Fie din nou d l
astfel încât ∑Q i
l
≤P< ∑Q i
l
şi Qil ← Qil − 1 pentru
i = n l − d l +1 i = nl − d l

i = n l − d l + 1,..., n l . Dacă există i, n − d + 1 ≤ i ≤ n astfel încât Qil ≠ 0 se trece


l l l

la pasul 2, altfel ne oprim (modelul nu are soluŃii).


Pas 7. Fie n l +1 = n l − d l . Dacă n l +1 = 0 ne oprim (modelul nu are soluŃii), altfel se
continuă.
( )
Pas 8. Considerăm d l +1 = d1l ,..., d nl l +1 , y l +1 = y1l ,..., y nl l +1 ( ), T
( )
E l +1 = eijl +1 , eijl +1 = eijl ,
nl
i = 1,2,..., m , j = 1,..., n l +1
, b l +1
( l +1
= b , b ,..., b
1
l +1
2
l +1 T
m ), b i
l +1
=b −i
l
∑Q e l l
j ij ,
j = n l +1 +1

nl
i = 1,2,..., m , P l +1
=P − l
∑Q l
j , Qil +1 = Qil − 1 pentru i = 1,..., n l +1 şi l ← l + 1 .
j = n l +1 +1

Dacă Q ≠ 0 se trece la pasul 2, altfel se continuă.


l

37
Pas 9. Se consideră (
x = 0,...,0, Qnl −l 1+1 ,..., Qnl −l −11 , Qnl −l −21 +1 ,..., Qnl −l −22 ,..., Qn12 +1 ,..., Qn11 ),
T
unde
( )
numărul de zerouri este egal cu n l . Fie x 0 = x10 ,..., x n0 care se obŃine aplicând σ −1
la x , deci x = xσ −1 (i ) , i = 1,2,..., n . x
0
i
0
este soluŃie optimă pentru modelul
considerat conform rezultatelor din paragraful 4.6.2.

Bibliografie
[1] S. Bârză, Principalele instrumente utilizate în formularea problemelor de
programare matematică bazată pe combinatorică (retrospectivă). Comunicare la
simpozionul ICEC-2002, octombrie 2002,
[2] S. Bârză, Modele cantitative pentru înlocuirea utilajelor, Teză de doctorat,
Noiembrie 2005
[3] G.L. Nemhauser, L.A. Wolsey, Integer and combinatorial optimization, John
Wiley & Sons Inc, New York, 1999.
[4] R.G. Parker, R.L. Rardin, Discrete Optimization, Academic Press, Boston, 1998
[5] D. Pisinger, Algorithms for Knapsack Problems, Ph.D. Thesis, February 1995

38