Upload
laurentziuss
View
1.314
Download
8
Tags:
Embed Size (px)
Citation preview
1
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) { }pn RyZxbGyAxhycx ++ ∈∈≤++ ,,max
unde nZ + este mulŃimea vectorilor întregi nenegativi de dimensiune n,
pR+ 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 nm× , G este o matrice pm× ş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
{ }bGyAxRyZxS nn ≤+∈∈= ++ ,
se numeşte regiune admisibilă iar ( ) Syx ∈, 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 hycxhycx +≥+ 00 pentru orice ( ) Syx ∈, 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ă ( ) Syx ∈, astfel încât
cx+hy>ω şi în acest caz vom putea folosi notaŃia ∞=0z . 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) { }nZxbAxcx +∈≤ ,max
2
Un alt caz special pentru (MIP), în care nu există variabile discrete, este reprezentat de clasica problemă de programare liniară dată sub forma:
(LP) { }pRybGyhy +∈≤ ,max
Î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 nZx +∈ se înlocuieşte prin nBx∈ , 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 NF ⊆ definim ( ) ∑ ∈=
Fj jcFc . Notăm cu F~ o
familie de submulŃimi ale lui N şi definim problema
(CP) { }FFFc~
)(max ∈
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
( )
∈=≤∑∑==
nn
n
jjj
n
jjj Bxxxxbxaxc ,,,,max 21
11
…
3
I.2. Problema asocierii Presupunem că există n persoane şi m locuri de muncă ( )mn ≥ . 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 Bxij ∈
care este 1 dacă persoana j ocupă locul de muncă i şi 0 altfel. Se obŃine astfel exprimarea :
∈≤= ∑∑∑∑=== =
mnm
iij
n
jij
m
i
n
jijij Bxxxxc ,1,1min
111 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ă:
( )
∈=+ −
><
−
= +=∑∑∑∑ 12
12
1 1
,2,,2,1,1max nn
ijij
ikki
n
i
n
ijijij Bxnixxxc …ρ
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, ABx∈ . CondiŃia ca fiecare oraş să fie vizitat exact o dată este formalizată prin intermediul condiŃiilor: SP-1
( ){ }1
,
=∑∈Ajii
ijx pentru Vj∈
şi
4
SP-2 ( ){ }
1,
=∑∈Ajij
ijx pentru Vi∈
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 VU ⊂ cu 22 −≤≤ VU
prin: SP-3
( ){ }1
\,,
≥∑∈∈∈ UVjUiAjiijx
sau echivalent prin: SP-3’
( ){ }1
,,
−≤∑∈∈∈
UxUjUiAji
ij
Folosind restricŃiile specificate, problema comis voiajorului se poate exprima formal prin:
( )
)∑∈
3-SPsau 3-(SP si 2-SP 1,-SP satisfacex minji, A
ijij xc .
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
{ }
∈∈
≥
=
JjSx
x
bAx
xc
jj
T
,
0
inf
(1)
unde , ( )m nA∈ ℝM , rangA=m, J este o submulŃime nevidă a mulŃimii { }n,...,1 , iar jS ,
Jj∈ , 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ă { }nJ ,...,1= 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
jS = ℤ pentru toŃi Jj∈ . Cu alte cuvinte, este suficient să considerăm problema
5
{ }inf
0
,
T
j
c x
Ax b
x
x j J
=
≥ ∈ ∈ ℤ
(2)
unde , ( )m nA∈ ℝM şi rangA=m.
Fie { }0, ≥== xbAxxP
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
{ }
≥
=
0
inf
x
bAx
xcT
(3)
Fie
{ }JjZxPxxP j ∈∈∈=′ ,,
mulŃimea soluŃiilor admisibile ale problemei (2). Lema 1. Dacă *x este soluŃie optimă a problemei (3) şi dacă Px ′∈* , 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 Px ′∈* . În acest caz, conform lemei precedente, rezultă că *x este soluŃie optimă a problemei (2) (STOP).
(b) Avem Px ′∉* . Î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ă
BR
∈−= ∑∈
ixyxxj
jBij
Bii ,
6
Dacă Bix ∈ℤ , B∈∀i , 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 B∈u astfel încât B
ux ∉ℤ . Să introducem notaŃiile â:
( ) 0uBu
Bu fxEx +=
şi ( ) uj
Buj
Buj fyEy += , R∈j
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
( )∑∈
−≤−Rj
ujuj fxf 0
Adăugând această restricŃie la problema (3), rezultă că urmează să rezolvam problema de optimizare liniară
{ }
( )
≥≥
−=+−
=
+
+∈∑
0,0
inf
1
01
n
unj
juj
T
xx
fxxf
bAx
xc
R
(4)
unde 1+nx 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
Bx şi 1+nx . Adăugând tabelului simplex corespunzător lui B pentru problema (3) o linie
suplimentară pentru variabila de bază 1+nx şi o coloană suplimentară corespunzătoare
aceleiaşi variabile obŃinem tabelul simplex pentru problema (4): V.B. V.V.B. …
jx … 1+nx
Bx Bx … Bjy … 0
1+nx 0uf− … ujf− … 1
Bz Bz … j
Bj cz − … 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 { }nJ ,...,1≠ . 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ă
BR
∈−= ∑∈
ixyxxj
jBij
Bii ,
7
Dacă ∅=J∩B sau dacă Bix ∈ℤ pentru otice Ji ∩B∈ , 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ă Ju ∩B∈ astfel încât B
ux ∉ℤ , să introducem notaŃiile
J\*RR =
{ }0,** >∈=+Bujyjj RR
şi
{ }0,** <∈=−Bujyjj RR
RestricŃia de secŃionare care se obŃine în acest caz are forma ( ) 0u
jjuj fxd −≤−∑
∈R
unde
( )
>∈−−
≤∈
∈−
∈
=
−
+
cazuri celelalteîn 0
,11
,1
00
0
0
*
0
0
*
uujuj
u
u
uujuj
Buj
u
u
Buj
ij
ffJjpentruff
fffJjpentruf
jpentruyf
fjpentruy
d
∩
∩
R
R
R
R
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ă Bix ∈ℤ , B∈∀i , 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 Bix ∉ℤ . Considerăm două probleme de programare
liniară obŃinute astfel:
8
- se elimină din funcŃia obiectiv toate variabilelor care în baza B au valori întregi :I variabila aleasă B
ix ;
- 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 Bix cu
( )BuE x şi respective ( ) 1B
uE x +
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 1x şi 2x . Se
alege kx pentru care { }1 2inf ,T k T Tc x c x c x= . Dacă kx are toate componentele întregi
atunci kx este soluŃie optimă pentru problema de optimizare liniară în numere întregi (2). Altfel se reia procedeul descris mai sus cu kx în loc de Bx .
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ă nRP ⊆ este un domeniu poliedral dacă P este o mulŃime de puncte
care satisfac un număr finit de inegalităŃi liniare, deci ( )bAxRxP n ≤∈= , unde (A, b)
este o matrice de dimensiune ( )1+× nm . Un domeniu poliedral este raŃional dacă există o matrice (A’, b’) de dimensiune
( )1' +× nm cu elementele raŃionale astfel încât { }'' bxARxP n ≤∈= .
Un domeniu poliedral nu este mărginit dacă există +∈ω R astfel încât
{ }njoricepentruxRxP jn ,,2,1 …=ω≤≤ω−∈⊆ . Un domeniu poliedral mărginit
este numit politop. O mulŃime de puncte x1, x2, …, xk din Rn se numec afin independente dacă
sistemul de ecuaŃii 01
=λ∑=
k
i
ii x şi 0
1
=λ∑=
k
ii 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 nRP ⊆ este complet
dimensionat dacă dim(P)=n; putem considera prin notaŃie că dacă ∅=P , atunci 1)dim( −=P .
Un punct Px∈ se numeşte punct scufundat al lui P dacă ii bxa < pentru toŃi
=∉Mi , unde { }P xoricepentru ,1 ∈=≤≤==i
i bxamiiM ( ( )ii ba , nu poate fi scris ca o
combinaŃie liniară de linii j pentru care ajx=bj pentru orice Px∈ , linii care formează o submatrice a lui (A, b) notată (A=, b=).
Un punct Px∈ se numeşte punct interior al lui P dacă pentru orice j=1, 2, …, m ajx<bj.
9
Relativ la noŃiunile de dimensionare şi punct interior, pot fi prezentate în acest moment două rezultate importante şi anume:
· Dacă nRP ⊆ 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 0π≤πx (notată şi ( )0, ππ ) spunem că este o inegalitate validă
pentru un domeniu poliedral P dacă ea este satisfăcută pentru orice Px∈ . Dacă ( )0, ππ
este o inegalitate validă pentru P, vom numi faŃă a lui P mulŃimea { }0π=π∈= xPxF . 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 jj bxa ≤ reprezentând Fj şi
{ }tibxaRxP iin ,,2,1, …=≤∈= .
b) Dacă dim(P)=n-k, k>0, atunci
{ }tkkkipentrubxakipentrubxaRxP ii
iin +++=≤==∈= ,,2,1,,,2,1 ……
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 Px∈ este un punct de extrem pentru P dacă nu există nici o pereche de
puncte 2121 ,, xxPxx ≠∈ pentru care 2
2
11
2
1 xxx += .
Fie { }00 ≤∈= ArRxP n , dacă { } ∅≠≤∈= bAxRxP n atunci { }0\0Pr∈ se
numeşte o rază pentru P. Un punct nRr∈ este o rază a lui P dacă şi numai dacă pentru
orice punct Px∈ are loc { }+∈λλ+=∈ RrxyRy n , . O rază r a lui P este numită rază
extremă dacă şi numai dacă nu există nici o pereche de raze { }0\, 021 Prr ∈ , 21 rr λ≠
pentru orice +∈λ R astfel încât 2
2
11
2
1 rrr += .
10
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ă { }+∈λλ Rr
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
∈≥µ∈≥λ=λµ+λ=∈= ∑∑ ∑∈∈ ∈
JjpentruKkpentrurxxRxP jkKk
kKk Jj
jj
kk
n 0,0,1, ,
unde { } Kkkx ∈ este mulŃimea punctelor de extrem ale lui P şi { } Jj
jr ∈ 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 ( )1+× nm şi un vector scurt nRx∈ sau o inegalitate dată printr-un vector
scurt ( ) 10, +∈ππ nR . Politopul pentru o instanŃă este { }bAxBxconvP n ≤∈= .
Considerănd problema admisibilităŃii mărginite inferior avem:
{ } { } ∅≠π≥π≤∈⇔∅≠π≥π∈ 00 , xbAxRxxRxP nn∩
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
CoNPNP ∩ .
11
Pentru problema apartenenŃei la familia politopurilor programării întregi 0-1
presupunem că { }joricepentruxbAxBRxx jnn 1,\ ≤≤∈∈ + , eliminând astfel cazurile
triviale când nBx∈ sau { }joricepentruxbAxRxx jn 1, ≤≤∈∉ + . Dacă dim(P)=n, orice
Px∈ 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 nj Bx ∈ˆ , j=1, 2, …, n+1. Pentru a doua etapă verificăm întâi dacă toŃi vectorii jx sunt în P (altfel este necesar să revenim la prima etapă) şi apoi considerăm sistemul liniar:
=λ
=λ
∑
∑+
=
+
=
1
ˆ
1
1
1
1n
ii
n
i
ii xx
Dacă acest sistem are o soluŃie 10 +∈λ nR atunci putem trage concluzia că Px∈ 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 { }bAxZxS n ≤∈= + pentru programele
întregi de forma { }Sxcx ∈max , unde (A, b) este o matrice de dimensiune ( )1+× nm cu
elemente întregi. În plus se consideră că se cunoaşte o descriere “frumoasă” pentru
conv(S), unele probleme având proprietatea că { }bAxRxSconv n ≤∈= +)( iar pentru
altele putându-se specifica o mulŃime explicită de restricŃii '' bxA ≤ şi astfel să avem { }'',)( bxAbAxRxSconv n ≤≤∈= . 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 nRP ⊆ 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 { }bAxRxP n ≤∈= cu rang(A)=n este întreg dacă şi numai dacă toate
punctele sale de extrem sunt întregi. Un sistem de inegaliŃăti liniare bAx ≤ este numit total întreg dual dacă pentru
orice c întreg astfel încât problema de programare liniară { }bAxcxzLP ≤= max peste
domeniul poliedral P este finită şi duala sa { }mRycyAyb +∈≤ ,min are o soluŃie optimă
întreagă. Folosind această noŃiune, avem că dacă bAx ≤ este total întreg dual şi b este
întreg atunci şi domeniul poliedral { }bAxRxP n ≤∈= este întreg.
Principalul rezultat de reprezentare a domeniilor poliedrale este dat de enunŃul:
12
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 nm× 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ă ( ) { }bAxRxbP n ≤∈= + este un domeniu poliedral întreg pentru orice mZb∈ pentru
care ( ) ∅≠bP . 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
( ) { } ∅≠≤≤≤≤∈= dxdbAxbRxddbbP n ','',,', 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 nm× ş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 nm× 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 mm× . 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Ńă ja
pentru unicul drum pj din T de la u la v, definită prin:
−=
altfel
inverssensnieparcurgepadac
directsensnieparcurgepadac
a ij
ij
ij
0
ˆ1
ˆ1⌣
⌣
13
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
ia , apoi pentru fiecare ik ≠ , linia k va avea forma ka , obŃinută prin aplicarea formulei:
−=+
=−
=
=
1
1
0
kjik
kjik
kjk
k
aadacaa
aadacaa
aadaca
a⌣
⌣
⌣
(b) pentru compunerea a două matrici cu formă specială.
Cele două matrici total unimodulare au formele speciale
10c
aaA şi respectiv
Bdd
b01 unde A este o matrice de dimensiune
( ) ( )21 −×− nm , B este o matrice de dimensiune ( ) ( )21 −×− mn , 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
dimensiune n-1. Compunerea este definită ca matricea
Bcd
abA, de
dimensiune ( ) ( )42 −+×−+ nmnm .
14
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) { }1,max ≤∈ + AxRxcx n
iar cea de acoperire drept:
(FC) { }1,min ≥∈ + AxRxcx n
având astfel domeniile poliedrale { }1≤∈= + AxRxP nFP şi respectiv { }1≥∈= + AxRxP n
FC
şi pentru ele putându-se asocia problemele duale:
(DFP) { }mRycyAy +∈≥⋅ ,1min
şi respectiv
(DFC) { }mRycyAy +∈≤⋅ ,1max .
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 { }nNj ,,2,1 …=∈ , cj>0, pentru că altfel dacă 0≤jc 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 j
j bxa ≥ putem pune bj=0 (suma unor numere pozitive este zero dacă toate
numerele sunt 0). În mod similar, pentru eliminarea restricŃiilor de forma jj bxa ≤ ,
considerăm orice valoare ∑=
≥n
iijj ab
1
(şi în acest caz folosim notaŃia ∞=jb ).
Î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 ( )0,10,1 ≥≥≥≤ xAxxAx 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, 3≥k , familia de matrici de dimensiune kk × de elemente 0-1 pentru care suma pe linii şi pe coloane este egală cu 2 şi care nu conŃin submatrici de forma
15
11
11. Vom spune că o matrice cu elemente 0-1 este o matrice echilibrată dacă nu
conŃine nici o submatrice din M2k+1, pentru orice 1≥k . Vom spune că o matrice de elemente 0-1 este total echilibrată dacă ea nu conŃine nici o submatrice din Mk, orice
3≥k . Facem observaŃia că o matrice A din Mk, 3≥k , fără a conŃine submatrici din Ml,
kl <≤3 , 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 { }bAxRx n ≥∈ + este întreg şi
(DFC) are o soluŃie optimă întreagă pentru orice mBb∈ .
II Dacă A este o matrice total echilibrată atunci { }bAxRx n ≤∈ + este întreg şi
(DFP) are o soluŃie optimă întreagă pentru orice { }mb ∞∈ ,1 . 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
forma
=
01
11F se numesc matrici incluziune linii. Aceste matrici sunt importante în
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) { }Sxcxz IP ∈= max
unde c, A şi b sunt cu elemente întregi şi { }bAxZxS n ≤∈= + .
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
( ){ }Sconvxcxz ∈= max*
pentru care putem înlocui conv(S) cu { }bAxRxP n ≤∈= + , rezultanta fiind o problemă de
programare liniară cunoscută sub numele de relaxare a problemei (IP). Această problemă
16
permite obŃinerea unei margini superioare pentru zIP, deci o soluŃie zLP pentru problema { }Pxcxz ∈= max pentru care LPIP zz ≤ .
Pentru determinarea condiŃiilor suficiente de optimalitate putem considera şi
problema { }DLP Puubz ∈= min unde { }cuARuP mD ≥∈= + , 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) ( ){ }RRR Sxxzz ∈= max
care îndeplineşte condiŃiile (RIP1) RSS ⊆
(RIP2) ( )xzcx R≤ pentru Sx∈ 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 RIP zz ≤ .
DefiniŃie. Dacă pentru un 0>ε fixat, Sx ∈* satisface inegalitatea ε−≥ IPzcx* 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) ( ){ }DDD Suuzz ∈= min
care satisface condiŃia. (DIP1) cxzD ≥ pentru toŃi Sx∈ şi DSu∈
În plus dacă este satisfăcută condiŃia (DIP2) Dacă ∅≠S şi zIP este mărginită superior atunci
există DSu ∈0 şi Sx ∈0 pentru care ( ) 00 cxuzD = duala se numeşte duală tare a problemei (IP) Pentru dualitatea (IP) avem următorul rezultat:
17
PropoziŃia 2. Dacă (DIP) este admisibilă atunci DIP zz ≤ . 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 IPDD zz −=∆ 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)
( )( )
1 1
2 2
max
restrictii complicate
restrictii simple
IP
i
i
n
z cx
A x b m
A x b n m
x Z+
=
≤
≤ − ∈
Pe baza acestei forme, prin eliminarea restricŃiilor 11 bxA ≤ 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))
{ }1 1
2 2
max
, unde
IP
n
z cx
A x b
x Q Q x Z A x b+
=
≤
∈ = ∈ ≤
Acum, prin analogie cu problemele de optimizare continuă cu restricŃii, pentru orice 1mR+∈λ , putem considera problema:
( )( )λLRIP ( ) ( ){ }QxxzzL ∈λ=λ ,max unde ( ) ( )xAbcxxz 11, −λ+=λ
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 ( )xAb 11 −λ . Deoarece 0≥λ ,
nesatisfacerea condiŃiilor 11 bxA ≤ face ca penalitatea să fie negativă şi astfel, din punct 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ă
( ) IPL zz ≥λ . Dacă von considera că λ* este o soluŃie optimă pentru ( )λ≥λ Lz0
min , atunci din
familia infinită de relaxări ( )( ) 0≥λλLRIP obŃinem valoarea zL(λ*) ca margine superioară.
18
Problema ( )λ≥λ Lz0
min este numită duala Lagrangean pentru (IP) în raport cu
restricŃiile 11 bxA ≤ . Există două moduri în care se poate rezolva problema (LRIP(λ)). În primul mod, putem privi ( ) ( ) 11, bxAcxz λ+λ−=λ ca o funcŃie afină de x, pentru λ fixat şi astfel, că putem determina zL(λ) prin rezolvarea programului liniar:
( ) ( ) ( ){ }QconvxxzzL ∈λ=λ ,max
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ă
( ) ( )iQix
L xzz ,max λ=λ∈
şi observăm că pentru xi fixat ( ) ( )iii xAbcxxz 11, −λ+=λ este o funcŃie afină de λ. Din punct de vedere formal, rezolvăm programul liniar:
( ) ( ){ }iL xzwwz ,min λ≥=λ
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ă
( ){ }QconvxbxAcxzL ∈≤= ,max 11
Pentru rezolvare vom considera mulŃimea punctelor de extrem din Q,
{ }KkRx nk ∈∈ + şi mulŃimea razelor de extrem din Q, { }JjRr nj ∈∈ + . Problema
considerată, ( )
( )( )( )xAbcxzz
QconvxLL
11
00maxminmin −λ+=λ=∈≥λ≥λ
se poate scrie ca: ( )( )
( )
1 1
0
1
min max
0 pentru
0
k kL
k K
j
z cx b A x
c A r j J
λλ
λ
λ
≥ ∈
= + −
− ≤ ∈
≥
Ultima problemă se poate rescrie ca: (PL)
( )1 1
1
min
pentru
pentru
0
L
k k
j j
z
A x b cx k K
A r cr j J
η
η λ
λλ
=
+ − ≥ ∈
≥ ∈ ≥
problemă pentru care, prin dualitate, putem asocia şi programul:
19
(PLD)
1 1
max
1
0 pentru
0 pentru
k k j jL
k K j J
k
k K
k k j j
k K j J
k
j
z c x r
A x r b
k K
j J
α β
α
α β
α
β
∈ ∈
∈
∈ ∈
= +
=
+ ≤
≥ ∈
≥ ∈
∑ ∑
∑
∑ ∑
Astfel zL se poate calcula folosind programele liniare (PL) şi (PLD). Deoarece:
( ) { }( ) ( ) { }1 1 1 1n nconv S conv Q x R A x b conv Q x R A x b+ += ∈ ≤ ⊆ ∈ ≤∩ ∩
avem că
( ){ }QconvxbxAcxzcxz LSx
IP ∈≤=≤=∈
,maxmax 11
Datorită incluziunii de mai sus, valoarea absolută a spaŃiului dual IPLD zz −=∆
depinde de mărimile relative pentru conv(S), ( ) { }11 bxARxQconv n ≤∈ +∩ ş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ă:
{ }( ) ( ) { }1111 bxARxQconvbxARxQconv nn ≤∈=≤∈ ++ ∩∩ .
În plus are loc şi:
PropoziŃia 5. { }nL RxbAxcxz +∈≤= ,max pentru toŃi c dacă punctele de extrem
din { }22 bxARx n ≤∈ + sunt întregi.
Un rezultat deosebit de important este dat de următoarea teoremă: Teoremă. zL este o soluŃie ε-optimală pentru problema (IP) ( )ε−= LIP zz dacă şi
numai dacă există 0* ≥λ şi Sx ∈* pentru care ( ) 1*11* δ≤−λ xAb ,
( ) ( ) 2*** , δ−λ≥λ LRIPzxz şi ε≤δ+δ 21 .
Dacă în plus considerăm că valoarea obsolută a spaŃiului dual este 0, punând 021 =ε=δ=δ , obŃinem drept consecinŃă rezultatul:
Corolar. zIP=zL dacă şi numai dacă există 0* ≥λ şi Sx ∈* pentru care ( ) 0*11* =−λ xAb şi ( ) ( )*** , xzzLRIP λ=λ .
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).
20
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ă
Sx ∈* doar când IPzw =* . 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 1=t , ∞=*w şi −∞=*z . Se aleg 1
RS , 1RSS ⊆ şi ( )xzR
1 ,
( ) cxxzR ≥1 pentru Sx∈ . Pas 1: REZOLVARE RELAXARE: Se rezolvă problema relaxată.
(RIPt) ( ){ }tRtR
tR Sxxzz ∈= max
Fie xt soluŃia problemei (RIPt). Pas 2: TEST OPTIMALITATE: Dacă Sx t ∈ şi tt
R cxz = ne oprim ** zcxw t == iar xt este soluŃia optimă a problemei (IP); altfel se continuă
Pas 3: ÎMBUNĂTĂłIRE RELAXARE: Se consideră tRzw =* şi tcxz =* . Alegem
tR
tR SS ⊆+1 , 1+⊆ t
RSS şi ( ) ( )xzxz tR
tR ≤+1 , ( ) cxxz t
R ≥+1 pentru Sx∈ astfel încât cel
puŃin una din relaŃii să fie strictă (deci tR
tR SS ≠+1 sau ( ) ( )xzxz t
RtR ≠+1 ). Se
consideră 1+← tt şi se merge la Pas 1. Se poate observa că în cazul acestui algoritm, pentru orice t avem t
RtR zx ≤+1 , însă
în practică, se preferă să considerăm că pentru orice t, ( ) cxxz tR = şi astfel optimalitatea
este atinsă când se produce Sx t ∈ . Într-un astfel de caz, în conformitate cu pasul 3 vom avea că pentru orice t, t
RtR SS ⊂+1 , modul cel mai simplu de construcŃie pentru 1+t
RS fiind
de a considera { }ttR
tR xSS \1 ⊆+ .
V.2. Algoritmul de enumerare
Un alt tip de algoritm care utilizează relaxarea utilizează o abordare enumerativă.
Considerăm că { }niS i ,...,1= este o împărŃire a lui S, adică ∪k
i
iSS1=
= (nu este obligatoriu
ca ( ) kiiS ,1= să formeze o partiŃie , deci ca în plus kji ,1, =∀ , ji ≠ , ∅=ji SS ∩ ) În
această abordare, principalul rezultat folosit este dat de următorul enunŃ: PropoziŃia 1. Fie programul liniar:
(IPi) { }iiIP Sxcxz ∈= max
unde ( ) kiiS ,1= este o împărŃire a lui S. Atunci i
IPki
IP zz,1
max=
=
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..
21
Î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 ( ) lj
ijS ,1= 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. ∅=iS ( ne admisibilitate); 2. se cunoaşte o soluŃie optimă pentru (IPi) (optimalitate); 3. IP
iIP zz ≤ (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 i
Ri SS ⊆ şi ( ) cxxz i
R ≥
pentru iSx∈ . 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 i
iR Sx ∈ şi i
RiR cxz = ;
3. IPiR zz ≤ unde IPz 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
lui Si 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 IPz . 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 IPz . 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 { }iiIP Sxcxz ∈= max cu SS i ⊆ şi că
la fiecare problemă din L se asociază o margine superioară iIP
i zz ≥ .
22
ALGORITM 4 Algoritm general de tip Branch-and-Bound Pas 0: INIłIALIZARE: L=(IP), S0=S, ∞=0z şi −∞=IPz . Pas 1: TEST TERMINARE: Dacă L este vidă atunci ne oprim, soluŃia x0 care a produs
0cxz IP = 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 iRz valoarea
optimă a relaxării şi iRx soluŃia optimă, dacă există, altfel (RIP
i) 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ă IP
iR zz ≤ se merge la Pas 1;
2. prin algoritm dual atunci se trece la Pas 1 imediat ce valoarea dualei atinge sau scade sub IPz ;
b) Dacă iiR Sz ∉ se trce la Pas 4
c) Dacă iiR Sz ∈ şi IP
iR zcx > fie i
RIP cxz ← şi eliminăm din L toate
problemele pentru care IPi zz ≤
Dacă iR
iR cxz = se merge la Pas 1 altfel se merge la Pas 4.
Pas 4: DIVIZARE: Fie ( ) kjijS ,1= o împărŃire a lui Si. Pentru i=1,…,k se adaugă la L
problema (IPi) cu iR
ij zz = . Î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
considera { }bAxRxS nLP ≤∈= +0 în loc de S şi de asemenea, în fiecare relaxare realizată
vom considera ( ) cxxzR = . 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
LPiLP Sxcxz ∈= max unde { }iini
LP bxARxS ≤∈= +
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. ∅=i
LPS (ne admisibilitate);
2. ni Zx +∈ (optimalitate);
3. IPiLP zz ≤ unde IPz este valoarea unei soluŃii cunoscute pentru (IP) (dominanŃa valorică). Pentru această condiŃie putem utiliza şi una mai slabă de tipul
ε+≤ IPiLP zz , pentru o toleranŃă ε dată.
23
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 21 SSS ∪= prin care { }01 ddxRxSS n ≤∈= +∩ şi
{ }102 +≥∈= + ddxRxSS n
∩ cu ( ) 10,
+∈ nZdd . Astfel, dacă relaxarea liniară
{ }bAxRxcx n ≤∈ + ,max are soluŃia x0, putem considera ( )0,dd astfel încât
100
0 +<< ddxd . Deoarece 210 SSx ∪∉ acest mod de divizare ne dă posibilitatea
rezolvării problemelor { }iiLP Sxcxz ∈= max pentru care 0
LPiLP zz < (pentru i=1,2).
În aplicaŃiile practice divizarea se face prin intermediul unor alegeri speciale pentru ( )0,dd care în plus formează partiŃii ( 21 SSS ∪= şi ∅=21 SS ∩ ). 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ă { }bAxRxP n ≤∈= + 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 i
jx neîntreg se alege o dihotomie de forma
[ ] [ ]( )1, +≥≤ ijj
ijj xxxx . În particular, dacă { }[ ]Pxx jj ∈=ω max atunci nici un drum al
arborelui de enumerare nu poate conŃine mai mult de ∑∈
ωNj
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 { } IPtR zSxcx >∈max 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
24
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ă iz .
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 IPz , lucru important pentru
blocările ulterioare de noduri. Pentru a aplica această regulă se realizează o estimare iz pentru iz , ( )ii zz ≤ˆ , şi se alege din L problema i care maximizează iz . Regula îmbunătăŃirii rapide (ii3) încearcă, prin utilizarea criteriului
iiIP
i
i zz
zz
ˆmax
−
−∈L
să găsească rapid o soluŃie x pentru care IPzxc >ˆ , şi nu să încerce să determine o soluŃie
optimă, prin alegerea preferenŃială a nodurilor pentru care diferenŃa ii zz ˆ− este mică, fiind ales nodul i cu IP
i zz ≥ şi nu nodul j cu IPj zz ≤ . 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 { }ZxNjN ij
i ∉∈= , deci la
variabilele care în soluŃia xi 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 iz cauzată de cerinŃa ca xj să fie întreg. Dacă presupunem că
[ ] ij
ij
ijj fxxx +== şi 0>i
jf atunci în dividarea lui xj estimăm diminuarea valorilor ij
ij
ij fpD −− = pentru fiul stâng şi ( )iji
ji
j fpD −= ++ 1 pentru cel drept, unde coeficienŃii
( )ijij pp +− , pot fi specificaŃi iniŃial sau estimaŃi. Folosirea acestor valori conduce la o
alegere pe baza criteriului:
25
{ }ijijiNj
DD +−
∈,minmax
Un caz particular se obŃine considerând ( ) ( )1,1, =+− ij
ij pp (deci i
ji
j fD =− şi ij
ij fD −=+ 1 ), 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ă i
ji
j DD +− ≤ şi cel drept altfel), simultan putându-se calcula şi
valoarea iz dacă se presupune că degradările pentru fiecare variabilă sunt independente. Pentru iz se realizează estimarea:
{ }{ }
∑∈
+−− −−=jiNk
ik
ik
ij
iLP
i DDDzz\
,minˆ
dacă se alege fiul stâng şi respectiv: { }
{ }∑
∈
+−+ −−=jiNk
ik
ik
ij
iLP
i DDDzz\
,minˆ
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 ( ){ }NQQv ⊆max .
Ideea utilizată în algoritm este ca plecând de la o mulŃime NQ i ⊆ să adăugăm la
Qi un element din iQN \ 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: ∅=0Q , t=1.
Pas 1: ALEGERE ALEMENT SUPLIMENTAR: Fie { }( )jQvj t
tQNjt ∪
1
1\maxarg −
−∈= .
Pas 2: TESTARE CREŞTERE: Dacă { }( ) ( )11 −− ≤ tt QvjQv ∪ ne oprim, Qt-1 este soluŃia greedy căutată, altfel se continuă.
26
Pas 3: DEZVOLTARE MULłIME: { }jQQ tt∪
1−← . Dacă Qt=N ne oprim, N este soluŃia greedy căutată, altfel 1+← tt ş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 { }3,2,1∈k . Pe baza ideilor prezentate, dând o valoare întreagă pozitivă nk ≤ şi considerând, de exemplu,
( )
≤−∈= ∑∈
kxzBxQNNj
jjn
k pentru nBz∈
(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 ( ){ }nBSxxc ⊆∈max
Pas 1: INIłIALIZARE: Se alege Sx ∈1 , 1←t . Pas 2: TESTARE OPTIMALITATE: Dacă pentru orice ( ) SxNx t
k ∩∈ , ( ) ( )txcxc ≤ ne
oprim, xt este soluŃia căutării locale, altfel se continuă. Pas 3: ÎMBUNĂTĂłIRE SOLUłIE: Fie ( ) SxNx t
kt
∩∈+1 pentru care ( ) ( )tt xcxc >+1 .
1+← tt ş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 ( ) ( ) ( ){ }SxNxxcxc tk
t∩∈=+ max1 , dar acest lucru ar conduce la
examinarea completă a mulŃimii ( ) SxN tk ∩ . 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 ( ) ( )txcxc > , iar oprirea să se realizeze doar când
în ( ) SxN tk ∩ nu există un astfel de punct.
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
27
≥
=⋅
≥
≤
0
1
22
11
ix
x
bxA
bxA
cxopt
1111
(1)
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; 11 bxA ≤ şi 22 bxA ≥ reprezintă sistemul de inecuaŃii prin care sunt exprimate alte proprietăŃi dorite pentru amestec în anumite limite, 1A fiind o matrice cu 1m linii şi n coloane, 2A o matrice cu
2m linii şi n coloane, 1b un vector de dimensiune 1m şi 2b un vector de dimensiune 2m ; 1111 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:
=≥
=
=≥
=≤
∑
∑
∑
∑
=
=
=
=
nioricex
x
mjpentrubxa
mjpentrubxa
xcopt
i
n
ii
j
n
iiij
j
n
iiij
n
iii
,...,10
1
,...,1
,...,1
1
22
1
2
11
1
1
1
(2)
unde, aşa cum am văzut mai sus pentru coeficienŃii funcŃiei obiectiv şi pentru valorile matricilor 1A şi 2A , şi pentru vectorii 1b şi 2b sunt îndeplinite următoarele condiŃii: - 0>ic pentru orice ni ,...,1= ;
- 01 ≥ija pentru orice ni ,...,1= şi pentru orice 1,...,1 mj = ;
- 02 ≥ija pentru orice ni ,...,1= şi pentru orice 2,...,1 mj = ;
- 01 >jb pentru orice 1,...,1 mj = şi
- 02 >jb pentru orice 2,...,1 mj = .
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ă.
28
Proprietate 1. Dacă x este o soluŃie admisibilă pentru modelul (1), atunci pentru
orice ni ,...,1= avem [ ]1,0∈ix .
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 nR 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ă.
29
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 k10=α şi reŃinerea acestei multiplicări în zina variabilelor modelului. Se obŃine astfel formularea:
( )
( )
( )
( )[ ]
=∈
α=α
=α≥α
=α≤α
α
∑
∑
∑
∑
=
=
=
=
nipentrux
x
mjpentrubxa
mjpentrubxa
xcopt
i
n
ii
j
n
iiij
j
n
iiij
n
iii
,...,11,0
,
,...,1
,...,1
1
22
1
2
11
1
1
1
(3)
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 ixα prin iy , pentru a se obŃine formularea:
[ ]
=α∈
α=
=α≥
=α≤
∑
∑
∑
∑
=
=
=
=
nipentruy
y
mjpentrubya
mjpentrubya
ycopt
i
n
ii
j
n
iiij
j
n
iiij
n
iii
,...,1,0
,...,1
,...,.1
1
22
1
2
11
1
1
1
(4)
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ă
[ ]α∈ ,0iy pentru ni ,...,1= .
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:
30
{ }
α∈
α=⋅
α≥
α≤
ny
y
byA
byA
cyopt
,...,1,0
22
11
1111
(5)
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
relaŃia )()( ywxv =α , xα este soluŃie optimă pentru (4) şi yα1 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, [ ]nα,0 , îi putem ordona conform unei relaŃii de ordine introdusă natural pentru şirurile de valori şi anume, ordinea lexicografică. Astfel, vom spune că vectorii u şi v, ( )nuu ,...,1 , ( )nvv ,...,1 sunt astfel încât "u mai mic
(lexicografic) decât v", scris vu ≺ , dacă există { }1,...,1 −∈ ni astfel încât ii vu < şi orice
{ }1,...,1 −∈ ij , jj vu = .
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), yx ≺ ,
diferenŃa pe componenta care stabileşte relaŃia de ordine este unitară şi x şi y diferă doar pe componentele i şi k, nki ≤<≤1 , atunci )()( yfxf < . 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 yx ≺ , atunci )()( yfxf < . 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ă.
31
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 mx , Mx definite ca minim şi maxim a vectorilor din A relativ la ordinea lexicografică dată mai sus. Atunci pentru orice Ax∈ , are lor relaŃia
( ) ( ) ( )Mm xfxfxf ≤≤ .
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 { } Np ∈,...,2,1,0 . Modelul particular considerat este de forma
{ }
=∈
=⋅
≥
≤
nipx
Px
bxA
bxA
cxopt
i ,...,2,1,,...,1,0
22
11
1111
(1)
unde NP∈ . 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 Pnp ≥ . Într-
adevăr, cum orice i , ixp ≥ , prin sumare membru cu membru avem
32
Pxpnpn
ii
n
i
=≥= ∑∑−= 11
.
Astfel, dacă Pnp ≥ 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 ZNPp ⊂∈, , putem determina Nrq ∈, astfel încât
rpqP += şi condiŃia de sumă constantă şi fie scrisă sub forma rpqx +=⋅1 , 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 ix egale cu p în
vectorii soluŃie admisibilă.
PropoziŃie.
≤
p
Pq , unde [ ]• desemnează partea întragă a unui număr.
Fie 0=t reprezentând numărul minim de valori ix egale cu p într-o soluŃie
admisibilă pentru problema (1) (rel1) Dacă t valori ix sunt egale cu p , atunci restul valorilor ( tn − ) sunt cel
mult egale cu 1−p şi astfel, prin înlocuire în modelul (1) se obŃine
( )( )( )
{ }
+=−∈
=+++
≥
≤
+++++
+
+
+
++
ntipx
Pxxpt
bxxppA
bxxppA
xcxcccp
i
nt
Tnt
Tnt
nnttt
,...,1,1,...,1,0
...
,...,,,...,2
,...,,,...,
......max
1
21
11
1
111
(2)
care prin eliminarea constantelor poate fi redus la
33
{ }
−=−∈
=⋅
≥
≤
tnipy
Py
byA
byA
yc
i ,...,1,1,...,1,0
max
22
11
1
(3)
unde ( )tnyyy −= ,...,1 , ( )nt ccc ,...,1+= , 21 , AA se obŃin din 1A , respectiv 2A , prin
eliminarea primelor t coloane, ptPP −= , ∑=
−=t
jijii apbb
1
111 şi ∑=
−=t
jijii apbb
1
222 .
Pentru îndeplinirea condiŃiilor de admisibilitate cu sumă constantă pentru (3) avem acum ( )( ) Pptn ≥−− 1 , deci
( ) Ptpn ≥+−1 Dacă această condiŃie nu este îndeplinită, atunci t se înlocuieşte cu 1+t ş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 qt ≤ .
Cum din propoziŃia anterioară avem
≤
p
Pq , rezultă că procedeul descris mai sus pentru
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 nS∈σ astfel încât ( ) ( ) ( )nccc σσσ ≥≥≥ ...21 . Prin
aplicarea permutării σ la variabilele modelului, fie ( )ii cd σ=1 , ( )Tlln
lll yyyy ,...,, 21= ,
( )ii xy σ=1 , ni ,...,2,1= , nn =1 , ( )11ijeE = , ( )jiij ae σ=1 , mi ,...,2,1= , nj ,...,2,1= ,
bb =1 , PP =1 , QQ =1 şi 1=l . Pas 2. Se consideră modelul
{ }
=∈
=
≤
∑
∑
=
=
llli
l
ln
i
li
lll
ln
i
li
li
niQy
Py
byE
yd
,...,2,1,,...,1,0
min
1
1
şi fie
=
l
ll
Q
Pd .
Pas 3. Se generează ( )Tlll QQy ,...,,0,...,00 = unde numărul valorilor lQ este egal cu ld ,
iar numărul valorilor zero este ll dn − .
34
Pas 4. Se verifică sistemul de restricŃii lll byE ≤ pentru ll yy 0= . Dacă sistemul de
restricŃii se verifică se trece la pasul 7, altfel se continuă. Pas 5. Fie 1−← ll dd . Dacă 0≠ld se trece la pasul 3, altfel se continuă. Pas 6. Fie 1−← ll QQ . Dacă 0≠lQ se trece la pasul 2, altfel ne oprim (modelul nu are
soluŃii). Pas 7. Fie lll dnn −=+1 . Dacă 01 =+ln ne oprim (modelul nu are soluŃii), altfel se
continuă.
Pas 8. Considerăm ( )lln
ll ddd 111 ,..., ++ = , ( )Tl
ln
ll yyy 111 ,..., ++ = , ( )11 ++ = l
ijl eE , l
ijlij ee =+1 ,
mi ,...,2,1= , 1,...,1 += lnj , ( )Tlm
lll bbbb 112
11
1 ,...,, ++++ = , ∑++=
+ −=ln
lnj
lij
lli
li eQbb
11
1 ,
mi ,...,2,1= , llll QdPP −=+1 , 11 −=+ ll QQ şi 1+← ll . Dacă 0≠lQ se trece la pasul 2, altfel se continuă.
Pas 9. Se consideră ( )Tll QQQQx 1111 ,...,,...,,...,,0,...,0 −−= , unde numărul de zerouri este
egal cu ln iar numărul de valori jQ este jn , 1,...,1 −= lj . Fie ( )001
0 ,..., nxxx = care
se obŃine aplicând 1−σ la x , deci ( )ii xx 1
0−σ
= , ni ,...,2,1= . 0x este soluŃie optimă.
VI.5.2. Modele întregi cu sumă constantă şi variabile cu domeniu
oarecare Considerăm acum modelul
{ }
1 1
2 2
0,1,..., , 1,2,...,i i
opt cx
A x b
A x b
x P
x p i n
≤
≥ ⋅ = ∈ ⊂ =
1
ℕ
(4)
cu 1 2, ,..., np p p oarecare. Dacă 1 2 ... np p p p= = = = , atunci avem modelul ( 1). Astfel,
putem considera că acest model este o generalizare a modelului (1). Considerăm că există
{ }, 1, 2,...,i j n∈ , i j≠ astfel încât i jp p≠ .
Pentru simplificarea expunerii considerăm modelul cu forma
{ }
max
0,1,..., , 1,2,...,i i
cx
Ax b
x P
x p i n
≤ ⋅ = ∈ ⊂ =
1
ℕ
(5)
făcând observaŃia, naturală de altfel, că sistemul (4) se poate aduce la această formă
considerând 1
2
AA
A
=
− ,
1
2
bb
b
=
− şi în plus, dacă optimul este minim prin utilizarea
relaŃiei intre minim şi maxim.
35
Acum putem considera o relaxare a modelului (5) prin suprimarea condiŃiei de numere întregi asupra variabilelor modelului şi obŃinem
[ ]
max
0, , 1, 2,...,i i
cx
Ax b
x P
x p i n
≤ ⋅ = ∈ ⊂ =
1
ℝ
(6)
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
1
, 1, 2,...,
0, 1,2,...,i i
i
cx
Ax b
x P
x P
x p i n
x i n
≤ ⋅ ≤− ⋅ ≤ − ≤ =
≥ =
1 (7)
şi considerând
1 1 1
1 1 1
n
A
C
I
= − − −
⋯
⋯ şi 1
2
n
b
P
P
d p
p
p
−
=
⋮
obŃinem pentru (7) forma prescurtată
max
0, 1, 2,...,i
cx
Cx d
x i n
≤ ≥ =
(8)
Pentru modelul (8) putem asocia modelul dual
min
0, 1, 2,...,
T
i
du
C u c
u i n
≤ ≥ =
(9)
Considerăm *iα ∈ℕ ,
{ }1 2. . . . , ,..., ni
i
c mmm c p p p
pα = , unde c.m.m.m.c semnifică
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 ic prin iα ). Pentru modelul obŃinut asociem duala şi notând i i iy xα= rezultă
36
max
1
, 1, 2,...,
0, 1, 2,...,i
i
cy
Ay b
y P
y P
y i n
y i n
β
≤ ⋅ ≤− ⋅ ≤ − ≤ =
≥ =
1 (10)
unde { }1 2. . . . . , ,..., nc mmmc p p pβ = . Folosind în sens invers rescrierile prin care am ajuns
de la (4) la (7) pentru modelul (10) obŃinem, în cazul general,
{ }
1 1
2 2
0,1,..., , 1, 2,...,i
opt cx
A x b
A x b
x P
x i nβ
≤
≥ ⋅ = ∈ ⊂ =
1
ℕ
(11)
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 i ix p= pentru
orice 1 i j≤ ≤ şi i ix p< 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
{ }
1 1
2 2
0,1,..., , 1, 2,...,i i
opt f c z
A z b
A z b
z P
z p i n
′+ ′ ′≤ ′ ′≥ ′⋅ =
′ ′ ∈ ⊂ =
1
ℕ
(12)
unde 1
j
i ii
f c p=
=∑ , ( )1,...,j nc c c+′ = , ( )1,...,j nz x x+= , 1 2,A A′ ′ se obŃin respectiv din 1 2,A A
prin aliminarea primelor j coloane, 1
k k k
j
x
b b A
x
′ ′′= −
⋮ cu KA′′ formată cu primele j
coloane din kA , 1,2k = , 1
j
ii
P P x=
′ = −∑ şi 1i j ip p +′ = − .
37
ALGORITM 4 Model cudomenii neuniforme Pas 1. Se determină o permutare nS∈σ astfel încât ( ) ( ) ( )nccc σσσ ≥≥≥ ...21 . Prin
aplicarea permutării σ la variabilele modelului, fie ( )ii cd σ=1 , ( )Tlln
lll yyyy ,...,, 21= ,
( )ii xy σ=1 , ni ,...,2,1= , nn =1 , ( )11ijeE = , ( )jiij ae σ=1 , mi ,...,2,1= , nj ,...,2,1= ,
bb =1 , PP =1 , ii QQ =1 , ni ,...,2,1= şi 1=l .
Pas 2. Se consideră modelul
{ }
=∈
=
≤
∑
∑
=
=
lli
li
l
ln
i
li
lll
ln
i
li
li
niQy
Py
byE
yd
,...,2,1,,...,1,0
min
1
1
şi fie ld astfel încât ∑∑−=+−=
<≤ln
ldlni
li
ln
ldlni
li QPQ1
.
Pas 3. Se generează ( )Tlln
lldln
lldln
l QQQy ,...,,,0,...,0210 +−+−
= unde numărul valorilor zero
este ll dn − . Pas 4. Se verifică sistemul de restricŃii lll byE ≤ pentru ll yy 0= . Dacă sistemul de
restricŃii se verifică se trece la pasul 7, altfel se continuă. Pas 5. Fie 1−← ll dd . Dacă 0≠ld se trece la pasul 3, altfel se continuă.
Pas 6. Fie din nou ld astfel încât ∑∑−=+−=
<≤ln
ldlni
li
ln
ldlni
li QPQ1
şi 1−← li
li QQ pentru
lll ndni ,...,1+−= . Dacă există i, lll nidn ≤≤+− 1 astfel încât 0≠liQ se trece
la pasul 2, altfel ne oprim (modelul nu are soluŃii). Pas 7. Fie lll dnn −=+1 . Dacă 01 =+ln ne oprim (modelul nu are soluŃii), altfel se
continuă.
Pas 8. Considerăm ( )lln
ll ddd 111 ,..., ++ = , ( )Tl
ln
ll yyy 111 ,..., ++ = , ( )11 ++ = l
ijl eE , l
ijlij ee =+1 ,
mi ,...,2,1= , 1,...,1 += lnj , ( )Tlm
lll bbbb 112
11
1 ,...,, ++++ = , ∑++=
+ −=ln
lnj
lij
lj
li
li eQbb
11
1 ,
mi ,...,2,1= , ∑++=
+ −=ln
lnj
lj
ll QPP11
1 , 11 −=+ li
li QQ pentru 1,...,1 += lni şi 1+← ll .
Dacă 0≠lQ se trece la pasul 2, altfel se continuă.
38
Pas 9. Se consideră ( )Tnn
lln
lln
lln
lln
QQQQQQx 11
1
1222
2
1111
1
1,...,,...,,...,,,...,,0,...,0
+
−−
−
+−−−
−
+= , unde
numărul de zerouri este egal cu ln . Fie ( )001
0 ,..., nxxx = care se obŃine aplicând 1−σ
la x , deci ( )ii xx 1
0−σ
= , ni ,...,2,1= . 0x 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