Documente Academic
Documente Profesional
Documente Cultură
I. INTRODUCERE
(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.
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
m n n m
mn
min ∑∑ cij xij ∑ x ij = 1, ∑ x ij ≤ 1, x ∈ B .
i =1 j =1 j =1 i =1
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.
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
SP-3 ∑x
{(i , j )∈A i∈U ,
ij
j∈V \U }
≥1
SP-3’ ∑x
{(i , j )∈A i∈U ,
ij
j∈U }
≤ U −1
min ∑ cij xij x satisface SP - 1, SP - 2 si (SP - 3 sau SP - 3) .
(i, j)∈A
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ă.
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
x ≥ 0, x ≥ 0
n +1
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.
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ă.
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.
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
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.
{ } {
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ă.
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ă.
⌣
ak daca a kj = 0
⌣
a k = a k − a i daca a kj = 1
a k + a i ⌣
daca a kj = −1
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
II { }
Dacă A este o matrice total echilibrată atunci x ∈ R+ Ax ≤ b este întreg şi
n
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
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)
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)
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
+
{
x ∈ Q, unde Q = x ∈ Z + A x ≤ b
n 2
}2
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
λ ≥ 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
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
( )
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
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.
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.
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
24
maxi min{D −j i , D +j i }
j∈N
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.
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
26
opt cx
A1 x ≤ b1
A x ≥ b
2 2
(1)
1⋅ x =1
xi ≥ 0
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 .
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.
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
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
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).
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 .
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.
A2( p,..., p, xt +1 ,..., x n ) ≥ b
T 2
(2)
pt + x + ... + x = P
t +1 n
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
( )
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
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
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
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