132 15 15MB
Romanian Pages 449 [445] Year 1971
C. ZIDAROIU S. S BURLAN
ILEANA NADEJDE C. BERGTHALLER
PROBLEME DE CERCETARE OPERATIONALA ' ··PROGRAM.ARE MATEMAT.IcA··
oooeeo:
ooeeeo ee9oeo ooeoee oeoeoe
ooeeeb·
EDITURA
ACADEMIEI
REPUBLICII
SOCIALISTE
ROMANIA
BUCURE~TI, 1971
--------------
....~_ .. · ...: : ~ - ~ - -
-~
-··
.
P'
!
I. I· ~-
Coperta d.1a _: _VANO.A MI_HUhEAC
PRE
FATA
Programarea matematica este o disciplina 1tiinlifica a carei dezvoltare impet'Uoasa a f ost determinata de nevoia de a f'Undamenta deciziile pe ,,informaliirationament' '. Informatia este f'Urnizata de o larga gama de date statistice. Rationament'Ul se bazeaza, intr-un n'Umar mereu crescind de domenii, pe modele matematice a caror rezolvare este incredintata ma,inilor de calc'Ul. I nteres'Ul pentru C'Unoa,terea aprof'Undata a con=str'Uirii fi rezolvarii modelelor· matematice este sprijinit in tara noastra atU prin p'Ublicarea 'Un'Ui n'Umar important de lucrari, cU fi prin includerea acestor teme in programele de invatamint. M ulte din l'Ucrarile de programare matematica aparute in Zimba romdna n'U au f ost insotite de 'Un numar de ea;emple suficient de mare pentru a se putea da o mai larga dezvoltare aplicii,r# metodelor ea;puse. De aceea lucrarea de fata i1i prop'Une sa umple acest gol prin prezentarea de probleme de programare, unele rezolvate altele propuse spre rezolvare. Fiecare capitol va contine o prezenta1·e s'Uccinta a definiliilor fi nota-1iilor f owsite, f orm'Ulele Ji algoritmele 'Utilizate. 0 simpla privire as'Upra cuprins'Ul'Ui informeaza cititor'Ul ca nu au Jost atacate in Zucrarea de fata decit o parte din capitolele programarii matematice. .A'Utorii au considerat util ca fiecare paragraf sii,. contureze teoretic tema tratata fi sa precizeze terminologia f olosita. Oredem ca in acest f el asig'Uram cititorul'Ui posibilitatea de a-§i r-egrupa informatiile anterioare fi de a utiliza lucrarea excluzind ambiguita#le•. Speram ca studiul problemelor tratate va contribui la f ormarea celor chemati sa discearna decizii optime in multimea decizii'lor posibile. AUTORII
TABLA DE MATERII
Pag.
Problems of Oferational research (Linear programming) (Contents) . . . . . . . . . . . . . . . . .
11
Capitolul 1. PROGRAMARE LINIARA
§ 1. Probleme de transport. Generalizari (11 ea n a Na de j de) • 1.1. 1.2. 1.3. 1.4. 1.5. 1.6.
Probleme standard de transport • .• • . . . . Generalizari ale problemei transporturilor . . Problcmc de transport cu capacitaii limitate Probleme de transport cu centre intermediare . Probleme multidimensionale de transport . . . Generalizllri ale problemei multidimcnsionalc de transport . . . . . . . . . . . . . . . . 1. 7. Probleme de transport cu functia obiectiv hiperbolica 1.8.- Problemc de transport cu capacltati limitate ~i functia obiectiv hiperbolica . . . . • 1.9. Probleme rezolvate ~i propuse Bibliografie . . . . . . . . . . .
§ 2. Metode simplex in programarea liniara (C. B e r g t h a I I e r) • •
15 15 20 22 24 26 27 30 32 3469
70
2.1. Algoritmul simplex . . . . 2.2. Algoritmul simplex revizuit 2.3. Dualitate . . . . . . . . 2.4. Algoritmul simplex dual . . 2.5. Algorilmul primal-dual 2.6. Probleme rezolvate ~i probleme propose . . Bibliografie . . . . • . . . . . ·• • . . . .
70 87 92: 97 105112: 164
,1 programare parametrlca
(tr e·a n a Na de j de)
165-
Consideratii generale Variatia vectorului b Variatia vectorului e Modificarea unui vector-coloana al matricei A . Modificarea unui vector-llnie al matricei A . . . . . Adaugarea unor restrictil suplimentare • • . Adaugarea unor variabile suplimentare • Probleme rezolvate ~i probleme propose • • .
165 166 171 1791 185• 185• 188 190
§ 3. Reoptlmlzare 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3. 7. 3.8.
Pag.
§ 4. Algoritmul de descompunere Dantzig-Wolfe (C. Z i d a r o i u) • 4.1. Prellminarii • . . . • . • • • • . . . • • 4.2. Utllizarea algoritmului simplex revizuit • . 4.3. Cazul optimului infinit lntr-o subproblema 4.4. Algoritmul . . • . . . • . . • • . . . . 4.5. Exemplu numeric . . . . . . . . . . . 4.6. Probleme rezolvate ,1 probleme propuse . . Bibliografie . . . . . . . • . . . . . . • .
200 200 202 207 209 210 220 226
Capitolul 2. PROGRAMAREA DISCRETA ~
S. Programarea liniara in numere intregi (C. B e r g h t a I I e r)
•
5.1. Preliminarii • . . . . 5.2. Algoritmul discret . . 5.3. Algoritmul ciclic 5.4. Algoritmul mixt . . • • . 5.5. Algoritmul aditiv . 5.6. Probleme rezolvate ,1 probleme propuse . . Bibliografie • . • • • . . . . . • . . •
i
227 232 241 249 254 271
309
6. Probleme combinatoriale (S. F. S b u r I an) . • • • . • · • •
6.1. Problema • . . . . • • 6.2. Principiul B.B. . . . . . . • . . • . 6.3. Algoritmul lui Little 6.4. Alti algoritmi de tip B.B 6.5. Algoritmul lui H. H. Greenberg 6.6. Probleme propuse Bibliografie . . • . • . • . • . . .
227
311 311
3i2
314
. . . ...
327
341 347 350
Capitolul 3. PROGRAMARE STOHASTICA -§ 7. Probleme de repartliie (C. B e r g t h a I I e r)
• • • •
353
7.1. Determinarea functiei de repartitie a optimului 7.2. Metode aproximative pentru determinarea functfei de repartitie ~i a principalelor ei caracteristici Bibliografie . . . . . . . . . • . • • • . . . . . • •
353
§ 8. Programe stohastice permanent realizabile (11 e a n a N a d e j d e)
387
8.1. Soluiit permanent realizabile 8.2. Descrlerea multimii solutiilor clteva cazuri particulare . .8.3. Functionale preferentiale • .
. . . • • . . . . . • • permanent realizabile 1n . . • . • . • • . . • • • • • . • •
372 386
387 388 389
8.4. Probleme de rise minim . . . • . . . . 8.5. Probleme rezolvate ~i probleme propose • . § 9. Programare stchastici in doui stadli (11 ea n a Na de j de) • 9.1. Functia de pierderi • . • • .
9.2. 9.3. 9.4. 9.5.
Solutii realizabile • . • • • . . Programe convexe echivalente . . • • . 0 proprietate a solutiei optime . Probleme rezolvate ~i probleme propuse .
§ 10. Programe stohastice cu restrictll probabilistice (II ea n a Na de j de) . • • • . • . 10.1. Tipuri de programe stohastice cu restrictii probabillstice . . . . • . . • . . . . . . • . . . . . 10.2. Echivalentul determinist al unei clase de programe liniare cu restrictii probabilistice • . . . . . . . . . 10.3. Programe stohastice cu restrictii probabilistice conditionate . . . . . . . . . • . . . . 10.4. Probleme rezolvate ~i problcme propuse Blbliografie • • • . • . • . . . • • . . .
391 393408408-
410• 413417 418-
425, 425,
427 430,
432: 448,
CONTENTS
Page
Chapter 1. LINEAR PROGRAMMING
§ 1. Transportation Problems. Generalizations (11 e an a .N ad e j d e) 1.1. 1.2. 1.3. 1.4. 1.5.
The standard transportation problems • • • . • Generalizations of the transportation problems • • • Bounded transportation problems • • . • • • • • Transportation problems with intermediary centres . Multi-dimensional transportation problems • • . • •
1.6. Generalizations of multi-dimensional problems •••..
§ 2. Simplex Method in Linear Programming (C. 8 e r g t h a I I e r)
2.1. The simplex algorithm 2.2. The re'\lised simplex algorithm . 2.3. Duality . . . . . . . • . 2.4. The dual simplex algorithm 2.5. The primal-dual algorithm . 2.6. Problems Bihliography . . . . . . . • .
§ 3. Reoptlmlzation and Parametric Programming (11 ea n a Na de j de) General considerations The variation of the The variation of the The modification of a The modification of a Additional restrictions Additional variables Problems . . . . •
1520 22 24 26
transportation
1.7. Transportation problems with hyperbolic objective function 1.8. Transportation problems with bounded variables and hyperbolic objective-function 1.9. Problems • • . • • • Bibliography • . . . . • . . .
3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3. 7. 3.8.
15-
• • • • • . vector b vector c column-vector of ~ matrix A • row-vector of a matrix A .
27 30
3~ 34 69'
70 701 87" 92: 971
105112. 164
165165 166 171
179 185185188 190
/
Pago
§ 4. Dantzlg-Wolfe's Decomposition Aliorithm (C. Z id
a r o i u)
•
200 200 202 207 209 210 220 226
4.1. Preliminaries . • . . . • • . . . . • • 4.2. Using the revised simplex algorithm • • 4.3. Infinite optimum case in a subproblem . 4.4. The algorithm 4.5. Numerical example 4.6. Problems Bibliography . . . • . .
Chapter 2. DISCRETE PROGRAMMING § 5. Linear Programming with Integer Variables (C. B e r g t h a I I e r)
5.1. Preliminaries . . • . • 5.2. The discrete algorithm 5.3. The cyclic algorithm 5.4. The mixed algorithm . 5.5. The additive algorithm. 5.6. Problems Bibliography . • . . • • .
.
227 227 232 241 249 254 271 309
• • . . . . • • • •
311
§ 6. Combinatorial Problems (S. F. Sb u r I an) •••
6.1. The problem . • • . . . . • • • • . 6.2. The branch and bound principle • • . . 6.3. Little's algorithm • • • . . • . • • . . 6.4. Other algorithms of the branch and bound type . 6.5. Greenberg's algorithm • . 6.6. Problems Bibliography . . • . • . •
311 312 314 327 341 347 350
Chapter 3. STOCHASTIC PROGRAMMING § 7. Repartition Problems (C.
B e r g t h a I I e r) . . . .
7.1. Determination of repartition function . • . . 7.2. Approximate methods for determination of the repartition :function and its main characteristics. Bibliography. . . . . . . . . . • • • . • • . . • • • • § 8. Stochastic permanent realizable programs (11 ea n a N ad e j d e).
8.1. Permanent realizable solutions • . . . • . 8.2. Description of the set of all permanent solutions in some particular cases. 8.3. Preferentially functionals • . • . • • • •
• • • . . realisable • • • • • • • • • •
353 353 372 386 387 387 388 389
Pap
8.4. The minimum risk problems. • . 8.5. Problems. • . • . • • • . § 9. Two-stage Stochastic Programming (11 ea n a N ad e j d e) . •
9.1. 9.2. 9.3. 9.4. 9.5.
The loss-function Realisable solutions. Equivalent convex programs . . • • • . A property of the optimal solution Problems. • . • . . • . • . . • . • .
§ 10. Chance-Constrained Programming (11 ea n a Na de j de)
10.1. Models of chance-constrained programs . • . . • • • 10.2. The deterministic equivalent for a class of chanceconstrained linear programs. • . . • . • • . • . . 10.3. Conditional chance-constrained stochastic programs. 10.4. Problems. . Bibliography. . . . . . • • • • • • • . • • • . . • • •
391 393
408 408
410 413 417
418 425 425 427 430 432
448
PROGRAMARE LINIARA CAPITOLUL 1
§ 1. Probleme de transport. Generalizari
1.1. PROBLEME STANDARD DE TRANSPORT
Problema standard de transport consta in alegerea modului in care se poate asigura aprovizionarea a n consumatori cu o anumita marfa depozitata in m centre daca : a) se cunosc cantitatile de ma1·fa solicitate de fiecare consumator vi cele de care dispune fiecare depozit ; b) totalul cererilor este egal cu totalul disponibilitaWor ; c) marfa se expediaza direct consumatorului; d) costul transportului este proporfional cu cantitatea de marfa expediata. Soiuiia problemei este optima daca asigura aprovizionarea consumatorilor cu minimum de cheltuieli de transport. Problema transporturilor a fost enunfata in forma standard de F. L. Hitchcock in 1941 ~i rezolvata printr-o metoda care nu utilizeaza proprieta1;ile speciale ale problemei decit in determinarea soluiiei iniiiale. !n 1947 T.C. Koopmans publica o lucrare care contine importante imbunatatiri ale metodei de rezolvare, incit problemele standard de transport sint tratate sub denumirea de problema Hithcock-Koopmans. Pentru formularea matematica a problemei de transport vom folosi urmatoarele notatii:
a, , i e M
=
b, , j e N
= {1, ... , n}
{1, ... , m} - cantitatea de marfa disponibila in depozitul i;
c,,, i e M, j .a N
a:,,, i e N
j eN
-
cantitatea de marfa ceruta de consumatorul j; costul transportului unei unitati de marfa de la depozitul · i la consumatorul j ; cantitatea de marfa expediata de depozitul i consumatorului j.
/
/
PROGRAMARE LINIARA ,,.
16
/
/
I
Cu aceste nota~ii, modelul problemei standard de tra3¥J~~rt este (1.1)
ieltl, ~
= b,,
jeN,
ieM,
jeN,
x,,
(1.2)
ieM
x,,:>,O
(1.3)
cu conditia
t
iSM
a,=
t
b,.
(1.4)
JEN
Restric~iile problemei de transport (1.1) ~i (1.2) pot fi scrise sub forma matriceala astfel : Mx =D,
unde M este o matrice de dimensiuni (m+n).(mm) ale carei elemente sint 0 sau 1, x un vector cu m.n componente x,,, i e M, j e N ~i D un vector cu m+n componente a, , i e M ; b,, j e N. Matricea M are urmatoarea structura :
... 1 1 0 ... 0 ... 0 1 1 ... 1 .......... .......... 0 0 ... 0 0 0 ... 0 1 0 ... 0 1 0 ... 0 0 1 ... 0 0 1 ... 0 .......... ......... _o 0 ... 1 0 0 ... 1
-1
1 0 0
M=
"'E-
m.n
0 0 0 0
. ..
...
00
. ......... 1 1 . .. 1 1 0 . .. 0 0 1 . .. 0
........
0
0 .. . 1
-+
·Oondi~ia (1.4) face ca rangul matricei M sa fie m+n-1.
i
! i
1
,
1r
PROBLEME DE TRANSPORT, GENERALIZARI
Problemele standard de transport se pot rezolva, folosind tabele;.; de forma urmatoare : Tabela standard X11
Zin
X11
Cu X21
C111
Cu
Zmt
Xm1
bi
Ua
a_m
Xmn Cmn
Um
b,,
ba V1
Can
Cmt
Cm1
U1
a2
Zan
%99
Cn
al C1n
V,i
Vs
Numerele u,, i e M ~i 'V1 , j e N sint multiplicatorii simplex sau vari-abilele d.in duala, problemei transporturilor:
max { ~ a, u,
+ ~ b, 'V
1 }·
Conform cu definitia data in § 2.1, numim solulie nedegenerata de baza.: a problemei de transport un vector x• (xt,) i e M, j e N, cu {m+n-1), componente nenule. 0 solulifi de baza este degenerata daca vectorul x are.. mai putin de (m+n-1) componente nenule. Rezolvarea problemei de transport cere cunoa~terea unor metode· . pentru: determinarea unei solutii de baza, - testarea optimalita~ii unei solutii l}i - imbunatatirea unei solutii. Metode de determ.inare a unei solutii de bazi. 1n general, pentrudeterminarea unei solu~ii de baza se utilizeaza prezem,area conditiilor (1.1),, l}i (1.2) sub forma data de tabela standard. Se aJege ca variabila din baz~. S -
C, 877
/
18
PROGRAMARE LINIARA
un xn oarecare ~i i se atribuie valoarea maxima compatibila cu ecuaviile (1.1} ~i 1.2), deci
Se pot prezenta trei cazuri ~i anume : - cazul 1 : a11 < b11 , deci x»ri = ·a" , ~i •toate celelalte variabile din linia p, vo1· lua valoarea zero; atunci se ~terge din tabela 1 linia p, se inlocuie~te b11 prin b; = b11 - ap ~i se alege alta variabila de baza din tabela redusa, care con iine ('m -1) linii ~i n coloari.e ; - cazul 2 : b11 > ap, deci _xp11 = b11 , ~i atunci tabela se reduce, ~tergind coloana q. tn tabela rndusa, ap se inlocuie~te prin a~ = a11 - b11 ; - cazul 3: ap = b11 ~i tabela se reduce, ~tergind fie linia p, fie coloana q. Daca tabela redusa nu mai contine linia p, se inlocuie~te b11 prin bll + e:, incit b; = e:; daca se ~terge coloana q, atunci = e:, e: fiind o marime pozitiva oricit de mica, care, dupa determinarea solutiei, se inlocuie~te cu zero. 1n cazul 3 se obtine o solutie degenerata de baza. Se demonstreaza ca solutia determinata cu ajutorul a1goritmului expus este o solutie de baza. Metoda gene1·ala de determinare a solutiei de baza poate fi particularizata prin fixarea_ unei reguli de alegere a variabilelor care intra in baza. Printre aceste metode, cele mai cunoscute sint metoda coltului nord-vest, metoda elementului minim ~i metoda diferentei maxime. · Metoda 'ltnghiului nord-vest. Regula dupa care se decide intrarea in· baza a variabilelor este urmatoa:rea: la fiecare pas al aplicarii algoritmului intra in baza variabila situata in celula din coltul nord-vest al tabelei. Aceasta metoda este folosita pentru gasirea solutiei initiale a problemei 1.1. M etoda elementul'll,i minim. La fie care pas k al a plicarii algoritmului intra in baza variabile Xpq daca
a;
01111
= min (ii)
{c,,},
i ~i j apartinind multimilor de indici Mk, respectiv N"' din pasul k. Un exemplu de aplicare a metodei elementului minim il constituie determinarea soluiiei initiale a problemei 1.2. M etoda diferentei maxime. Pentru alegerea variabilei care intra. in baza se determina pentru fiecare linie ~i coloana costul minim :
c,1:
=
min (c,,, j e N) I
~i c,,
= min i
(c,,, i e M},
PROBLEME DE TRANSPORT. GENERALIZARI
19
apoi se ~leg costurile : c,,
= min
(c,,, j e N - {k}) ~i er,
.
;
= min
'
(c,,, i e M - {t}),
~i se ~alculeaza diferentele «, ~i ~, :
pentru toyi i e M ~i j e N. Se alege diferenya maxima, fixind astfel linia sau coloana in care se situeaza variabila care va intra m'baza. Daca, de e:xemplu, diferenya maxima se gase~te pe linia p, va intra in baza variabila corespunzatoare costului minim din linia p. Daca max («, ~,) nu este determinat, adica · max
(Xf
=
(XU
= ~II= max
'
~J'
1
intra in baza variabila care corespunde celui mai mic cost din linia u iji coloana v. 1n problema 1.3, soluyia iniyiala s-a determinat prin metoda diferentei maxime: Metoda unghiului nord-vest este cea mai u~oara de aplicat, dar prezinta dezavantajul de a conduce adeseori la o soluyie care difera de .soluyia· optima mai ·mult decit cele obyinute prin metoda elementului minim sau a diferenyei maxime. · Calculul multiplicatorilor simplex. M~ltiplicatorii simplex u, ~i v, se calculeaza rezolv.ind sistemul de ecuayii. c,,
=
u,
+ v,
pentru toyi
x,, e B,
(1.5)
unde B reprezinta multimea variabilelor din baza. Sistemul (1.5) conyine (m+n-1) ecuayii ~i (m+n) necunoscute, incit se poate atribui unei necunoscute o valoare arbitrara. Calculele se simplifica daca se atribuie valoarea zero multiplicatorului simplex asociat liniei sau coloanei in care se gasesc cele mai multe variabile de baza. Criteriui de optimalitate. Din modul in care s-au calculat multiplicatorii simplex, rezulta ca numerele c0 = c" - (u, + v,), numite oosturi comparative, sint nule pentru toate variabilele din baza. Solut,ia, fi* = (xt,) asociata bazei B este optima daca este satisfacuta condiyia
(1.6)
.
"20
PROGRAMARE LINIARA
Algoritm pentru determinarea unei solutii imbunititite. Daca, -exista costuri comparative c,, negative, se determina
cpq = min {c,, < O}.
(1.7)
(ii)
Pasul 1. Se atribnie variabilei
a;N
o valoare pozitiva, nedeter-
minata.
Pasul 2. Se construieijte un cicln avtnd primnl virf in celula (p, q)
.a tabelei ~i celelalte vhfuri situate nnmai in celnle a caror variabile aparjin
·bazei. Marimea 6 se scade din toate valorile asociate virfurilor pare ale -0iclnlui ~i se adnna tntnror valorilor din virfnrile impare. Pasul 3. Se determina marimea 6, atribnindu-i o valoare egala cu -0ea mai mica dintre valorile variabilelor de baza situate in vhfurile pare. Folosind aceasta valoare, se determina solujia modificata. Se demonstreaza ca ciclul corespunzator oricarei va.riabile care nu aparjine bazei este unic determinat. Observaiia 1. Daca in dona sau in mai mnlte dintre vhfurile pare ale ciclului format pentru modificarea unei solnjii V'alorile variabilelor din baza sint egale ~i mai mici decit toate valorile variabilelor din celelalte -virfuri pare, solujia modificata conjine mai pujin de (m+n-1) valori .nenule. Pentru ca solutia objinuta sa nu fie o solujie degenerata de baza, vom considera ca numai nna dintre variabilele care se annleaza iese din baza,, celelalte raminind in baza cu valori nnle (vezi problema 1.1). Este :foarte important ca in fiecare iterajie sa dispunem de o solujie de baza, Jn. caz contrar multiplicatorii simplex neputind fi caJculaji cu formulele (1.5).
Observaiia 2. Daca pentru o solnjie optima exista costuri comparative nule corespunzatoare unor variabile care nu aparjin bazei, problema admite mai multe solutii optime. Observafia 3. Daca x• este o solujie realizabila de baza a problemei de transport ~i x solujia objinnta din x• prin intrarea in baza, a variabilei a;", xelatia dintre valorile funcjiei obiectiv pentru aceste solujii este P(i)
unde P (x)
= I: I: c., a;,1 ~i ,eM feN
=
P(x*)
+ 6 c»
11 ,
8 este valoarea atribuita variabilei ror,11 •
1.2. GENERALIZARI ALE PROBLEMEI TRANSPORTURILOR
Problemele de transport generalizate se obtin din problema standard inlocuind sau grupnl de ecuatii (1.1) sau grupul (1.2) prin inegalitaji. Modelul
'E fEN
a:,1
=
a, , i e M,
{1.8)
PROBLEME DE TRANSPORT. GENERALtZARI
t a:,, < b, '
j EN,
iEM
21
(1.9)
jeN,
min ~
~
iEM
_iEN
c,, a:,, ·
(1.10)
oorespunde unei probleme generalizate de transport. Din punct de vedere economic, acest model corespunde cazului in care cererea totals, este mai mare decit disponibilul total, adica
b,>
~ JEN
~a,. iEM
Modelul (1.8)-(1.10) se aduce la forma standard, adaugind variabilele de abatere*) a:m+t, 1 >O, j e N, in membrul sting al inegalita~ilor (1.9). Aceste variabile pot f1 interpretate ca fiind cantita~i de marfa expediate de un producator fictiv caruia i se atribuie un disponibil am+i egal cu excedentul cererii fa~a de produc~ie, deci am+l
=
~ b, JEN
ta,.
;eM
Costurile cm+t,,, j e N asociate variabilelor a:m+l , pot fi nule sau egale cu penalizarile platite consumatorilor in cazul nesatisfacerii cererii. Obiectivul problemei devine astfel determinarea solu~iei pentru care cheltuielile de transport lji penalizarile sint minime. Problema 1.4. este un exemplu de problema de transport cu cereri excedentare. Modelul ~
a:,,< a., ie M,
(1.11)
1EN
~
a:.,
=
b,, j e N,
iEM
a:,, > o, i E .M, j
E
N
(1.12) (1.13)
*) Alte denumirl: variabile ecart, variabile de egalizare, r,ariabile de compensare.
22
PROGRAMARE LINIARA
corespunde unei probleme de transport in care totalul disponibilitaWor depa~e~te cererea totala, adica
a,>
~
~ b,. JEN
ie.V
1n acest caz se revine la forma standard a problemei de transport, adaugind in membrul sting al inegalitatilor (1.11) variabilele de abatere x, n+1, i e M. Aceste variabile pot fi interpretate ca fiind cantitati solicitat'e de consumatorul fictiv n +1 sau cantitati neexpediate din disponibilul producatorilor. Cererea consumatorului fictiv este bn +1
=
~
a, - ~ b, • iEN
ie,\l
Costurile c, n+H i E lt[, corespunzatoare variabilelor x, n+l, pot fi nule sau egale cu cheltuielile de depozitare a unei unitati de marfa la producatorul i e M. Un exemplu de problema de transport in cazul ,,supraproductiei" este problema 1.3. 1.3. PROBLEME DE TRANSPORT CU CAPACll'ATI LIMITATE ·
Fie rxi, cantitatca maxima dintr-un anumit produs care poate fi transportata pe ruta (ij). Modelul problemei de transport constrinsa sa respecte limitarea capacitatii rutelor este ~
x,1 =a,,
ieM,
= b,'
jeN,
(1.14}
jEN
~ xiJ ;eM 0~
x,, ~ rx, 1 , min~ iEM
Problema (1.14)-(1.17) condi.~iile , a, > O, b1 > o,
(1.15}
ieM, jeN, ~
;eN
c,, x,,.
(1.17}
admite solutii «,,
(1.16}
> o,
~
a,
leM.
daca
=
~ b,,
;eN
sint
satisfacute (1.18)
PROBLEME
DE
TRANSPORT. GENERALIZARI
'£ rt.., > b,
23
(1.19)
j EN,
iEM
'£ rt.,,> rt.,
(1.20)
i E M.
iEN
Determinarea unei solutii realizabile de baza. Pentru rezolvarea problemei de transport cu capacitavi !imitate se folosesc tabele de aceeaiji forrria cu cele utilizate in problemele standard de. transport, dar in fiecare celula a tabelei se inregistreaza ~i ~,,, cantitatea maxima de produse care poate fi transportata pe ruta (ij). Pentru determinarea solutiei iniViale se alege cpq = min c,, iji se atribuie variabilei xpq valoarea maxima compati
bila cu restrictiile, deci
Daca r,.i:a < ap ~i r,.Jl(l < b", variabila nu este considerata variabila de ba.za. Daca «pq = ap < bq sau (I.Pfl = bq < ap' x,,,q este variabila de' baza. De asemenea x,,," apartine bazei daca min (ap, b", r,.P") este ap sau b,,. Vectorul x* o.eterminat prin acest a1goritm nu constituie totdeauna o solutie. Se poate intimpla ca unele disponibilitati sa nu fie complet epuizate ~i unele cereri sa nu fie integral satisfacute din cauza conditiilor x,, < rt..,Daca sint satisfacute conditiile ll.18)-(1.20), p:roblema admite solutii. 0 solutie realizabila de baza se poate determina prin modificarea vectoru* Pentru expunerea modului in care trebuie modificat x, * sa admitem lui x. ca in depozitul k a ramas neexpediata o cantitate de marfa K ~i ca in punctele de consum 71, ~i l mai sint necesare cantitatile H i,i L. · Deoarece ~ a,=~ b,, vom avea H+L = K. aij)(l
iEM
*
ieN
Algoritmul pentru transformarea vectorului x intr-o soh1tie realizabila de baza consta din : - pasul 1: se completeaza linia k cu o celula in care variabila este :x1: 0 = K ~i coloanele k ~i l cu cite o celula cu x 0 " = H, Xo,, = L. Se inlocuiesc costu:rile c0 prin du = 0 iji se atribuie celulelor adaugate costurile d" 0 '
=
1, d0 " = 1, d0 1 = 1 ; - p~ul 2 : se' calculeaza multiplicatorii simplex din sistamul de
ecuaiii 'Uk
u, + v, = d,,
=
1,
VA
pentru
=
1,
x,, e B,
v,
= 1, i =I= k,
j
=I= k,l ;
PROGRAMARE L1NIARA
24
- pasul 3: se cauta solutia pentru care suma a
=
a:.t,o
+ a:0.11 + mo,,
este minimiL Daca min a=f=O, problema (1.14)-(1.17) nu are solutii realizabile,, deci nu sint satisfacute conditiile (1.18)-(1.20). Daca min a= 0, solutia,. care s-a determinat este o solutie realizabila de baza pentru problema. (1.14)-(1.17). Revenim la problema initiala, ~tergind din tabela celulele: adaugate ~i inlocuind d,, prin c,, . Criteriul de optima.litate~ Fie x solutia realizabila de baza obtinuta. 1n pasul 3. Se calculeaza multiplicatorii simplex din sistemul
pentru toti (ij) e B ~i costurile comparative
Solutia este optima daca :
cu= 0
pentru to-t;i 0
< a::, < «., ,
pentru to-t;i
a:;, =
pentru toti
a::, = «,, ,
0,
(1.21)
adica daca toate costurile comparative asociate variabilelor cu valori nule sint nenegd.tive, iar cele asociate variabilelor care nu apartin bazei ~i au valori egale cu capacitatea maxima a rutei sint nepozitive. Problemele 1.5 ~i 1.6 sint exemple de organizare optima a transporturilor in cazurile in care unele rute au capacitati !imitate. 0 alta metoda. de optimizare a transporturilor cu capacitati limitate, care va fi expusa ulterior, se bazeaza pe transformarea problemei intr-o problema cu trei indici [3). 1.4. PROBLEME DE TRANSPORT CU CENTRE INTERMEDIARE
Sub acest titlu se trateaza problemele in care marfurile produse in unitatile P~, i = 1, ... , m sint transportate in depozitele Dk, k = 1, ... , p, care au sarcina de a satisface cererile consumatorilor B,, j = 1, ... , n. Depozitele Dk sint numite ,,centre intermediare". Problema consta in deter-
25
PROBLEME DE TRANSPORT. GENERALIZARI
minarea planului de transporturi de la producator la depozite ~i ·de la depo2ite la consu.matori astfel incit cheltuielile de transport necesare aprovi2ionarii consumatorilor sa fie minime. Pentru formularea problemei folosim urmatoarele nota~ii: a,, ieM
= {l, ... , m}
produciia in P, ;
d1:, keP= {1, ...p)
=
capacitatea depozitului D1:;
a;,1:, ieM, keP
cererea consu~atorului B, ; cantitatea transportata din P, in D,.;
y "' , k e P, j e N
cantitatea transportata din D" in B, •.
b,, jeN
{1, ... ,n}
Cu aceste nota~ii problema se aerie
'E
a;,1:
= a, , i e M,
(1.22) ·
kEP
'E a;,1: = d1: ,
(1.23)
k e P,
iEM
'E 'Y'l:i = d,i:,
(1.24)
'ke P,
IEN
'E
y l:J
iEP
=
b, ' j
E
(1.25)
N'
a;,1: ~ O, '!/ "' > 0 i e M,
k e P,
j e N
(1.26)
dace, s-au notat cu c,1: ~i g", costurile de transport ale unei unitaii de produs respectiv din P, in D1: i,i din D1: in B,. Problema are soluiii daca sint satisfacute cona.iiiile
a,> o,
d1:
> O,
b,
> O, (EM 'E a, = kEP °E d1: = °E b, • iEN
(1.27)
26
PROGRAMARE LINIARA
Yariabilele a:u ~i '!11:, sint independente, incit problema de transport cu centre intermediare se nescompune in doua probleme succesive: min
~
~
cu x,~ pe mul~imea
solu~iilor nenegative a sistemului
iEM kEP
(1. 22)-(1.23);
min
~
~
o,
j
=
1, ... , n,
se vel'ifica cu u~urinia ca fiecare variabila figureaza cu coeficientul 1 numai in doua dintre restrictiile problemei, deci s-a ajuns la o problema clasica de transport. Introducerea unei restrictii de limitare a marit numarul variabilelor de la mn la mn + 2. Generaliztnd rezultatul pentru r restrictii de limitare, problema echivalenta de transport va contine mn + 2 r variabile. Sa admitem acum ca problema implica o limitare a unei sume partiale de variabile din linia intli lji o lim.itare a unei sume partiale de variabile dintr-o coloana, sa zicem, de exemplu, coloana t, 1 < t < n. Fie P = fiu i 2, ••• , i,,} o submultime proprie f1i nevida de indici din multimea M = (1, ... , m}. Limitarile sumelor de variabile sint atunci k
~ a:JJ
=
«,
k
< n, ·
1-=l
Propunem cititorilor
sa verifice ca problema de transport cu aceste
limitari este echivalenta cu problema a carui model este a:1,0
+
k
~ a:11
=
a.,
1=1 n
'!h,o
+ i=k+l ~ a:1, = au ,s
~ 1=1
xii
= a,;
i
= 2, .•. ,
m,
58
PROGRAMARE LINIABA
a.,o,,
'!lo,,
+
~ a:.,
iEM-P
na
~
(1),1
=
b,,
=
b,;
=
«,
j
= 1, ... , n;
j =/= t,
i•l
(1)1,0
+ '!i10
j = O, •.. , n,
i = O, ... , m, ;
'!Jo,,~ O,
'!h,o~ O,
~i ca in acest mod transport.
a,
fost transformata intr-o problema standard de
1.10. Productia de griu a 8 gospodarii agricole dintr-o regiune se depozitea.za in 3 silozuri care vor alimenta doua mori. Se cere planul de repartizare a produciiei gospodariilor in silozuri ~i planul de aprovizionare a morilor astfel incit costul total al transporturilor intregii produciii de griu la mori sa fie minim. Bolu#e. Datele numerice ale problemei sint cele din tabelele 1.27 ~i 1.28. Tabtla l.!7
~ .
G1
G2
I G, I G, I
s,
I
ICapaclt. slloz11ri
Ga
In mii t.
3
10
5
8
--
S2
Sa
6
5
4
4
2
2,5
6
I
Produse, In mii t.
Gs·
3
4
I
I
3
2
3,5
3
7,5
I
PROBLEME DE TBIANSPORT. GEN]!m.ALIZA:RI
59
Tabela 1.28
I
I~
S1
l
I
-5 -'4- -7 6
M1 Ms
10
Capacitate
Capacitate mori
Sa
S2
7
15,5
4
10
7,5
8
sildz
Patratele ha~urate in tabela 1.27 arata ca produc~ia unor gospodarii nu poate fi transportata in anumite silozuri. De exemplu gospodariile 6 7 ~i 6 8 nu pot expedia grin in silozul 8 1• Nnmerele inscrise in patratele tabelelor 1.27 ~i 1.28 reprezinta costul transportului a 1 000 t de la o sursa la o destina't;ie, unitatea monetara fiind 10 000 de lei. Fie a;,,, i = 1, ... , 8 ; j = l, 2, 3 variabilele care reprezinta cantitaine transportate din G, in B, ~i 'Y,a:, j = 1,2,3; k = 1,2 variabilele care reprezinta cantitaiile transportate din B, in MJ:. Modelul problemei este de forma (1.22)-(1.26), condiiiile ll.27) sint bldeplinite ~i soluvia se obvine rezolvind cele dona probleme de transport ale caror date sint continute in tabelele 1.27 f}i 1.28. Costurile asociate variabilelor care trebuie sa ia valori nule in solutie fiindca transporturile pe acele rute nu sint ingaduite se noteaza cu M, M fiind un numar pozitiv; arbitrar de mare. Solutia optima a problemei de transport gospoda1·ii-silozuri este data in tabela 1.29, costul cotespunzator fiind 0 1 = 31,5. Tabela 1.29
I
I
G1
I
Ga M
4
5
81
I
Ga
G,
Ss
--
I
3
M 1,5
I
G1
Gs
5,5
10
2
6
M
M
5
M
M
5
1
3,5
0,5
4
5
6
4
-8
4
2
M
I
3
0,5
Sa
Ge
3,5
1,5
3
G5 2,5
2
-3
I
2
2,5
3
4 6
3
3,5
7,5 2
3·
--
--
60
PROGRAMARE LINIARA
Solutia optima a problemei de transport silozuri-mori se obiine foarte u~or, costul minim fiind 0 2 = 125. Costul minim de transport al intregii produciii de griu la mori este O = 0 1 + 0 2 = 216,5.
1.11. Fiind data problema de transport cu datele din tabela 1.30, se cere sa se reformuleze ca o problema tridimensionala ti sa se rezolve. Solulie. Tabela 1.30 contine o problema de transport cu capacitlti limitate avind 15 necunoscute, pe care le notam cu a:11 i = I, 2, 3; Tabtla
Al Bi
Ba Ba
a,
120
I
A' a
I
Aa
I
A,
A&
I
150 -·
~~
6
5
8
!GO -
~
~
~
7
10
6
6
5
~
~
10
,~
~
7
3
2
~
60
20
_,
--·
-I 10 3
~
~
5
9
100
80
I
1.ao bi
150
-100
-50
40
j = 1, ... , 5. Problema tridimensionala, echivalenta cu a,ceasta are 30 de necunoscute 'U;,t, i = 1, 2, 3; j = 1, ... , 5; k = 1, 2. Folosind modelnl (1.45)-(1.48), vom avea
unde «u sint numerele inscrise in coltul din dreapta sus al fiecarui patrat din tabela. 1.30.
Calculam .A,, 2 =
S
5
I;
«i, - a, ~i B 2 .•
= l;
,~1
.A 1,2
=
70 ;
A 2, 2
=
B 2,1
= 60 ;
B 2,2
= 80 ;
40 ;
«i, -- b, ~i gasim
1-1
.A3 , 2 = :20 ;
B 2 ,3
A 4 ,2
=
40 ;
..4.5 , 2 = 20,
= 50.
Condiiiile (1.49) sint verificate, incit problema ad.mite solutii. Pentm determinarea solutiei iniiiale folosim tabela 1.32.
61!
PROBLEME DE TRANSPORT. GENEBALlZAR.t
Tabela Yn1 = 20
Yns= 0 lu
= 20
Ysn
= 60 e., = 60
Yan
Au=20 A11
=
70
YJSJ = 50-8 Y,sa = 0+6 e, 3 = So
Yu,= 20 Yua = 30 e13 = SO
Yu.,= 8 y 11, 2 = 10-6 e,a = 10
B 11 15o Bu =60
Yasi U222
y231 Ym
= 10
Yu,= 80 Yua e16 = 80
Yu.,= 10
B 11 = 100 B 22 = 80
C23
= ,10 e89 = 10
IAs,=
=
10
Ya.,
Ysr.i
= 30-6
20-6 e83 = 40
Yatt
!°3'2
= 0+8
y832
=
An= 40
= 10 ea.= 10
I
I Aat = 80 . A = 20
60
Yu. 2 = 10 ~2,. = 20
= 20+6
Ysa,
Yan Ym
= 10 ta,= 10
Ya11
=
Y,21 = 60 Y, 21 = 20 e, 2 = 80
= 10 ta= 10
Y?JI
1.ar
32
A.,= 100 A.s= 40
I
I
=
BJa 50 B13 =50
~=30 I
I
A.,= 40
Aaa=20
I
Solu1Ja se gise~te astfel : Yw
= min
lnlocuim e11 prin B11 prin B11 = B11 y 112
Um Bu, Bu)
~1
-
= min
= min
(20, 150, 20)
= 611 - 20 = 0 ; .A11 = 130 apoi se ia
prin .A11
20
(.A117
B 21 eti)
= min
(70, 60, 0)
= 20.
= ..4 11 -
20
=0
l)i
= 0.
Trecind in patratul aJaturat avem Y121
= min
inclt .A~= o,
B11 =
(..4..21, B11, 6i2)
70,
e;2 = 20
= min
(60, 130, 80)
= 60,
~i
. Continuind in acela~i fel, se obiine solu~ia iniiia,Ia, care coniine mn.p -(ni - 1) (n - 1) (p - 1) = 5.3.2. - 4:.2.1 = 30 - 8 = 22 de variabile de baza. Pentrn caJculul multiplicato:rilor simplex se construieec tabele bidimensionale corespumitoare indicilor k = 1,2, in care ee inregistreaza. soluiia fi valorile c,n· Sistemul de unita~i din care se calculeazi multiplicatorii simplex este
c,,. = u,
1
+ 1' + w,, 1,
pentru
a:,,a e B.
Acest sistem coniine 31 de necunoscute ~i 22 de ecuaiii, deei se pot atribui. vaJori arbitrare unui numir de 9 multiplicatori, care, aJefi convenabil,.
PROGRAMARE LINIARA
62
tnlesnesc calculul celorlalti. Pentru problema de care ne ocupam, tabelele -0u ajutorul carora se calculeaza numerele u,1:, v,. 0 sint tabela 1.32 _pentru k = 1 ~i tabela 1.33 pentru k = 2.
w,,
~,
Tabela 1.32
u11 = 2
:
v11 =0·
y111
U21
I
= 20
= 6
I
U51
I
Yiu= 20 C1 41=8
= 11
Y151
1-s1
W41 =0
W51=0 C1111=3
£'1121
Y~ 1=10
W22=0 Cs21=10
w89 =7 c1:u=6
Yau=80 w42 =4 Csu=6
u·,2=0
W31
lJau
Yau=20
w23 =0 c321 =7
W33=0 C331=3
Yau VJa=-2 wl3=0ca11 =10
Uu= 8
I
= 0 C131=5
Y211
VJs=-6 w12 =0c111 =7
= 5
y131 = 50
y121 = 60
Wu=0C1 u=2 Wai= 0 Cu11 = 6
~,
U31
Yan
y251 =10
l-11
C351=5
L'a.u=30
w43 =0 c,.1 =5
w 6a=0 Ca,1=9
Tabela 1.33 U13=0
'V
U22=0
I
I
I
Uaz=O
u0 =0
U112=0
I
Y11a=O
y128 =20
Yl32=0
Yu2=30
y 152 =10
V11=0
Wu=0Cu 2=0
Wu=O C122=0
W31=0 CJ32=0
W41=0 C142=0
ll'111=0 C152=0
Ym=60
Uaaa=10
Vas=O
W12=0C212=0
W211=0 C:122=0
Y2a2 1-71 ll'32=7 C2a2=0
W42=4 C942=0
Ya12=10
Yaas=10
y332 =20
Yau=10
Ya52=0
W13=0 Cs12=0
W33=0 Ca22=0
w83 =0 c332 =0
Wu=O cau=0
w, 3 =0 C:152=0
V23=0
Yscs
1-4I
Yssa=lO W52=0 C252=0
Costurile din tabela 1.33 stnt egale cu zero, deoarece coeficientii -variabilelor '!h, 2 in functia obiectiv si.nt nuli. Reamintim ca aceste va:riabile reprezinta capacitaWe de transport nefolosite. 1n acest exemplu s-a 1uat Folosind aceste valori, din tabela 1.11-.80 -1 se calculeaza
= 0111 U21 = C121 -
'Un
'Ua1
=
U41
= C141
C131 -
-
Vu -
Wu
= 2;
V13
=
C331 -
U31 -
W33
= -- 2,
Vu -
'W21
=
6;
U51
= Cast -
'V13 -
W53
= 11,
Vu -
W31
5;
V12
=
C251 -
U51 -
W52 . - -
Vu -
W41
= =
8;
W42= C241 -
'll41 -
V12
-
4,
W32= C231 -
U:u -
V12
-
7.
6,
PROBLEME DE TRANSPORT. GENERALIZARI
63-
Deoarece a,m folosit toate variabilele din baza, nu se mai pot caJcula,. valorile celorlalvi multiplicatori din aceasti tabela. Trecem la tabela 1.32,. in care, pe lingi valorile nule atribuite multiplicatorilor Wm W 1m w81, W4uw62, w 88, w85 iji 1'2i, se mai cunosc acum w42 = 4 ~i w 89 = 7, incit, utilizind costurile asociate variabilelor din bazi, se caJ.culeaza, "12
= "22 = ·ua2 = u,2 = 0 ;
1'23
= 0.
Folosind valoarea, lui v28 iji costurile asociate variabilelor din baza,. situate pe linia, a treia, gasim t013
= W23 =
W43
=
0 ~i
'U52
=
0.
Cunoscind valoarea lui u52 iji folosind variabila din baza 'J/2r,2, gasim cu a,jutorul caruia se calculeaza w12 = w22 = O. Cu aceasta s-a incheiat calculul multiplicatorilor simplex iji se. pot calcula costurile comparative. Pe tabelele 1.32; 1.33 s-au tnregistrat. numai costurile comparative negat_ive care pot fi folosite pentru im.bunatavirea soluviei. Deoarece c151 are cea ma,i mica valoare, va intra in baza, y161• Oiclurile necesare modificarii soluviei sint inscrise in tabela 1.31. Studiind aceste cicluri, se observa ca variabila y151 intra in baza. cu valoarea 8 = 10. Costul asociat soiuiiei initiale este 0 0 = 1 730. Dupa modificarea. solu-(iiei, acest cost va scadea cu valoarea 8 jc1511 = 80, in.cit costul asociat soluviei obtinute dupa prima iteratie este 0 1 = 1650. Aceasti solutieeste inregistrati in tabela 1.34, in care nu s-au mai trecut denu.mirile variabilelor ~i ale constantelor. -v22
= o,
Tabela 1.U 60
20
soi
-
60
ool
10
to7
-
-
10
roi 20 70
10
soi
10- 8
80
-
30
+8
10
+8
-
10
40{
"io7
so I
60
80
100
40
20
80
40
:
i
20- 8 10
Toi 40
\
100
10- 8
20!
soi
10- 8
60
101 -
+8
10
150
30
sol wi
10
20
20
0
20[
40
50
+8
50 ! i
20
Controlul corectitudinii solutiei se face verificina. ca suma valorilorpe fiecare linie este egali -cu B1ci, adica 20
+ 60 + 40 + 20 + 10 = 150 ;
20
+ 10 + 30 = 60
etc.
•64
PROGRAMARE LINIARA
.Suma, valorilor din fiecare coloani trebuie sa fie egala cu .Am adica 20 = 20; 60 + 10 = 70 etc. Suma vaJorilor din fiecare celula a tabelei sa fie -ega,lit cu adica 20 + 0 = 20 ; 60 + 20 = 80 etc. Pentru a testa opti• malitatea solutiei se calculeazit multiplicatorii simplex. 1n tabelele 1.35 ,i 1.36 folosite in acest scop s-au marcat prin asterisc variabilele din bazit, -oeoarece numai poziiia lor intereseaza in calculul multiplicatorilor.
e,,,
k
~I
2
I
Vil
•
0
Tabela 1.16
=
1
6
I
5
•
I
•
•
0
2 0
6 0
0
7 0
10 7
•
-2
7 0
10 0
• 3
•
• 6 4
6 0
1-
•
lo
11
8 -8
5 0
-6
I
8
5
•
11
3 0
5,0
9
Tabela 1.36
:~I .
0
V:si
!
•
0 t
I
•
0
t
0
•
•
•
0 4 0
0
• 0
•
•
0
0 -8
_, 1-41
l- 11 0
I
0
0 0
0 7
• 0 0
I
0
0 0
•
•
0
i
I
0 0
0 !
0
0 0
0
i
I
0
0
• 0
1n colful din stinga al fiecarei celule sint inscrise valorile multipli•catorilor ~i in col~l din dreapta sint inscrise costurile. Se constata ca solutia nu este optima ,i ca poate fi imbunatatita atribu.ind valoarea 8 variabilei y 282 , deoarece c 232 = -1. Din ciclurile inscrise in tabela, 1.34 .se gaseE}te 8 = 10. Valoarea funciiei obiectiv pentru soiuiia astfel modificatit este 0 2 = 0 1 + 8c 232 = 1650-70 = 1580. Testind optimalitatea ;golutiei obtinute, pe care o .notam prin 8 2, se constata ca mai existi cosiiuri comparative negative, iji anume c341 = - 1 ; c242 = - 4. Dupa o noua iteratie, variabila y 242 intra in baza cu valoarea 0 ~i se obtine solutia ,88 , care difera de 8 2 numai prin poziiia unei variabile din baza cu valoare .nuli. Singnrul cost comparativ negativ asociat solut,iei 8 3 este cffl = - 1 ~i y 841 intra in baza, cu valoarea 10. Astfel se obtine soluiia 8 4 , care este
w,,
PROBLEME DE TRANSPORT. GENERALIZAR.t
optima. Costul asociat acestei solutii este 0 4
=
-10
= 02
1570.
65
+ 8 c341 =
1 580 -
Tabela 1.8'1
20
50
60
-
20
0
-
-
160
20
50
,◄O
1100
40
80
50
0
180
70
10
10
60 100
0
110
10
20
20
10 30
10
-
80
10
-
150
40
-
60
-
10
10
20
40
20
Interpretarea soiuiiei optime inscrisa in tabela 1.37 este urmatoarea: consumatorii a1 ~i a 2 sin.t aprovizionaii cu intreaga cantitate solicitata de depozitul 01 ; capacitatea rutei (1.1) este folosita integral, iar din capacitatea rutei (1.2) ramin nefolosite 20 de unitaii etc. Se propune rezolvarea acestei probleme (Si prin metoda specifica problemelor de transport cu capacitaii !imitate, scopul urmarit fiind compararea acestor doua posibilitaii de rezolvare din punctul de vedere a cantitaiii de munca cer1:1ta. 1.12. Sa se rezolve problema de transport cu funciia obiectiv
~i datele cuprinse in tabela 1.38, in care numaru.l inscris in coltul din dreapta jos a celulei (ij) este ~i eel din stinga jos este
a,,.
c,,
Tab~la 1.38
200
I
25 15
6
1 13
10 10
15 100
14
5
8
10
6
15
9
15
12
30
5
3
4
8
7
5
9
10
8
12
7
4
6
6
300 400
180 5 -
c.
877
I
150
I
250
I
420
66
PROGRAMARE LlNIARA
Vom determina solu'(iia ini'(;ia,la, prin metoda unghiului NV. 1n tabela 1.39, care coniine aceasta solu'(iie, s-au inregistrat ~i multiplicatorii simplex u0 asociaii solu'(iiei.
u:, v,, v;
Tabela 1.39
I
I
I
I
200
l
1~
7 13 15 1 _6_ _ 8········••· ······106- 6
10 10
15
14
15
15
5
10
8
6
30 12
5
30
250 3
20
180
b;
v' -4 I
150
I 211
v;
12
8
10
6
I
250
I 31
5
4
7
7
3
0
Q
400 6
1 -1
420 5
81,
4
10
300 5
7
8
4
4 100
9
400 9
I u, I u;
Qi
180- 6······ ·····20+ 6
-
Costurile comparative corespunzatoare variabilelor care nu apar'(iin bazei sint, pentru x1,3 , c1, 3 = - 2 ; d1, 3 = -1. Pentru concizie le vom scrie astfel : X1,s ( X3,1
2, - 1);
(9, 8);
x],4 x4,1
(6, - 7);
(-10, 12);
X2,1 ( x 4,2
23, 15);
X2,a
no, 2);
x4 , 3
{O, - 1); (-
X2,4
(3, -1)
3, 2).
Soluiia poate fi imbunata'(iita daca exista
Deoarece P (x*) ~i Q (x*) sint numere pozitive, A,, este pozitiv &ca c,, > 0 o, valoarea acestei diferente pentru Xi 4, x2 3 care o notam cu x avem ' ·
i,i d, 1 < incit nu vom calcula i,i x2, 4 • Pentru solu'(iia ini'(iiala, pe
P (x6 ) = 10 230 ; Q (x6 )
. = 5 870(- 2) -
A13
0
,
=
5 870 ;
10 230 (- 1)
0
R (x ) ·
=-
1023 =- ~ 1,72, 587
21 970;
PROBLEME DE TRANSPORT. GENERALIZARI
A2•1
67
= - 288 460,
min A0 = ~211 deci a:21 intra in baza. Din tabela 1.39 se constata ca valoarea maxima care se poate atribui acestei variabile este 8 = 100. Solutia x1 obtinuta din x0 este inregistrata in tabela 1.40. Tabela 1.40
80- 8---- ---···120
!
6
25 15
I
+8
!
7 13
10 10
15
a;
ui
I u;
200
4 10 --:----l--1-----i-----•-----•100 j 100 1±_ _ _ 5 8 i 10 6 15 9 15 -16 18 -
30- 8···-·· ....•.. 250
~
30 5
•••••·· ······20+ 8
s
3 4
7
300
__ s 1_ _ _ _ _1_10 _ 1
+8······· ····················-- ----i-----400-8 1
10 8
8
150
180
b1
12 7 250
I Vj
v'
J
~
3
5
= P (x8 ) R (x1 ):::::: 1,07.
Avem P (x1 )
= 7 370;
4 6 .
I
-
-1
420 5
=
7 930; Q (x1 )
-1 -
7
2 300
0
400 6
8
4
-
=
Q (x8 )
+ 1 500 =
Pentru a resta optimalitatea solutiei x1 s-au calculat multiplica.torii
simplex corespunzatori solu~iei i,i costurile comparative, pe care, aija cum am convenit, le scriem sub forma
a:3 ,1(9, 16) ;
a:4 ,3 ( -5, 4).
Dlferentele Ai, sint pozitive pentru variabilele x14 ; a:2 2 ; a:2 3 ; a:2 1• Oalcu• lind A,, pentru celelalte va.riabile care nu apartin bazei, gase~te dife• renta minima corespunzatoare variabilei a:4 1 iji din ciclul figurat in
se
I
68
PROGRAMARE LINIARA
tabela 1.40 se constata ca a,41 de ciclu, se gase~te wlutia x2 ':
= 8 = 30. Facind modificarile_ indicate Tabela 1.41
I
I
·1
I
50-8·----- ········ 150········· -----·+8 I
i 25 15 --;-6
10 10
7 13
15
100
i
15 9 15 250- 8·--·-· ·••··-50+8
5
8
10
6
12 i 30 ~~8-··-·
5
3
4
8
8
12
7
4
14
--i 9
150
I 01
0
!
5
9
~
250
I
:-18
6
25
-6
5
-14
100 300 400 10
6
-4
-6
9
420
I
6-----21
200
I u, I u:
9 ~
--···370-8
10 180
7
a,
-
-3
Pentru soluiia x2 avem P(x2 ) = 7570; Q(x2 ) = 7 790; R{x2 ) = 0,9. ln tabelele 1.42 ~i 1.43 sint inscrise solutia x3 ~i soiuiia optima x4• Tabela 1.42
I
I 50
150 25 15
6
I
I 10 10
7 13
15
100 5
8
10
6
12
30
5
3
4
8
12
15 9 15 200-8·-·· ·-·---100 + 8 :
10
I
180
I
0
0
!__8 -7- :!I
200 11
150
I
b-~1 -4
4
7
6
250
-19
300 9
-
14
10
400 6
10
-
420 -1
-6
5
5
8········-· --·--320-8
80
b;
I u, I u:
100
14
9
a,
-4 -3
-
9
PROBLEME DE TRANSPORT. GENERAJ..IZARI
69
Tabela 1.43
I 150 25 15
6
I
I
I 50 7 13
15
15
15
8
10
6
9
300 30
5
3
6
10 8
12 150
120 4
7
5 --
-1
1 --
0
--
400 6
6
-5 300
5
7
200
180
b;
8
4
80 9
6 100
5
12
I u, I "~
200 10 10
100 14
a,
0
420
250
-v;
v'I
10 9
1 9
4 7
6 6
--
Se lasa cititorului ·sarcina de a verifica optimalitatea solut;iei x4 ~i de a calcula valoarea funct;iei obiectiv pentru aceasta soluiie.
BIBLIOGRAFIE 1. DANTZIG G.B., Linear Programming and Extensions. Princeton-University Press, New York 1963. 2. GAss S., Linear Programming. Methods and Applications. McGraw-Hill Book Co., New York, 1958. 3.HALEY K.B., The multi-index problem. Opns. Resch., 11, a, 368-379, (1963). 4. HALEY K.B., The Solid Transportation Problems. Opns. Resch., 10, 4, 448-463 (1962). 5. KANTI SWARUP, Some Properties of Fractional Programming. Chaires du Centre d'Etudes de Recherche Operationelle, 9, 2, 82-86, (1967). 6. KANTI SwARuP, Duality for Transportation Problem in Fractional Programming. Chaires du Centre d'Etudes de Recherche Op~rationelle, 10, 1, 46-54, (1968). 7. KANTI SWARUP Linear Fractional Functionals Programming. Opns. Resch., 13, 1029-1036, (1965). 8. l{ANTI SwARuP, Some Aspects in Linear Fractional Functionals Programming. Australian Journal of Statistics, 7, 90 (1965). 9. 0RDEN A., The Transschipment Problem. Manag. Sci., 2, 276-285, (1965). 10. SCHELL E., Distribution of Product by Several Properties. Proceedings of the Second Symposium in Linear Programming, vol. 2, 1955. 11. SURCH CHANDRA, The Capacited Transportation Problem in Linear Fractional Functionals Programming. J. Ops. Resch. Soc. of Japon, 10 1, § 2, (1967). 12. WILLIAMS K.B. K.B. HALEY, A Practical Application of Linear Programming in the Mining Industry. Ops. Resch. Quart., 10 131-138, (1959).
§. 2 Metode slmplex in programarea liniara
0 problema de programare linia:ra consta in minimizarea sau ma .. ximizarea unei funo~ii lin.iare de mai multe variabile, aceste variabile fiind supuse la o serie de restriotii liniare. Numeroase probleme avind un continut economic, fizic sau mate .. matic se pot exprima ca probleme de programare matematica. Exista mai multe metode pentru rezolvarea problemelor de programare matematica, cea mai cunoscuta fiind algoritmul simplex, elaborat de G. B. Dantzig [4]. ln paragra.ful de faia vom expune citeva metode de rezolvare a problemelor de programare linia1a, metode ce se bazeaza pe algoritmul simplex,. descris in 2 .1. tn continuare este prezentat algoritmul ,simplex revizuit. Problemelor de dualitate le este destinat 2.3. Doi algoritmi care utilizeaza proprietatile dualitatii vor fi expu~i in 2.4 ~i 2.5. Ace~tia 'Sint algoritmul simplex-dual ~l algoritmul primal-dual. · 2.1. ALGORITMUL SIMPLEX Definitii §i notatii. Sub forma matriceala, o problema de programare liniara generala se scrie astfel :
(2.1)
(2.2) (2.3)
Conditiile (2.1) reprezinta restrictiile impuse variabilelor; ele pot fi inegalitati de ambele sensuri sau egalitati. Relatiile (2.2) reprezinta restrictii de semn. Le vom numi condifii de nenegativitate, deoarece eel mai adesea nu este prezenta decit conditia X1 ~ 0. Funotia (2.3), care trebuie optimizata (minimizata sau maximizata), o vom numi f uncJie obieotiv (alte denumiri : functie economica sau functie de eficienta). ·
METODE SIMPLEX 1N ~ROGRAMAREA LINIARA
71
Un vector x = [x1 , x 2 , x3 ] care satisface re8trictiile (2.1) se va numi solulie (alte denumiri: solutie inadmisibila, solutie nerealizabila). Daca x satisface ~i restrictiile (2. 2), atunci ll vom numi ro ra ~ numiri : sol 1e e · · w, · ·· • . n program care realizeaza optimul functieiobiectiv n vomnumisoluJie optima sauprogram optim. _ Pen~ru ~~oblepra de programare liniara yom folosi prescurtarea, ,,problema PL . / ·· Spunem ca o problema PL are forma standard daca toate restric'(;iile sint egalitaii, iar variabilele sint nenegative. 0 problema sub forma, standard se scrie deci Ax= b, x~O,
min (sau max) e' x. 0 problema PL are forma canonica daca se scrie Ax~b x~O
min e'x
Ax:5:h,
sau
x~O,
max e'x.
Spunem ca· o restrictie a unei probleme PL este concrdanta daca este o ine a · ate " d se cere minimizarea fu 1e1 o inega; ·· aximizata. Cu aceasta defini re, o problema PL va avea forma canonica aca oate restric'(;iile sint concordante, iar variabilele sint nenegative. Se poate trece de la o forma a problemei la alta cu ajutorul urmatoarelor transformari echivalente : a) sensul nnei inegalitati se inverseaza prin inmultire cu -1; b) o inegc11itate a' x ~ b se transforma intr-o egalitate p'x + al = b ~i o conditie de nenegativitate al~ 0 prin introducerea variabilei de egalizare al (variabila ..if' se mai mu:he~te variabila ecart, variabila de abatere sau "t'ariabila ae compensare); c) in mod analog, o inegalitate a'x < b se transforma in egalitatea a'x + aJ° = b, adaugind ~i conditia de nenegativitate x' ~ O; d) o egalitate a'x = b este echivalenta ·cu doua inegaJita'(;i de sens contrar : a'x ~ b ~i a'x ~ b ; e) o V'ariabila ~ < O se trans · ila nenega,tiva ·· substitu'(;ia w' = - m; , f) o variabila m de semn-,oarecare se poate inlocui cu doua varia~ bile nenegative w' ~i w'{ legate prin reiaiia m = w' - m" ;
PROGRAMARE LINIARA
g) avind in vedere relatia min/(x) xex
= -
max ( -f(x) xex
Deoarece variabila a:3 nu are restric~ii de semn, o vom inlocui, cu diferen~a a dona variabile pozitive : a:3 = a:4 - a:5 • Pentru ca problem.a, sa aiba forma standard, toate restric~iile trebuie sa fie egalitati ; de aceea in restriciiile 2,3 ~i 4 vom introduce variabilele de eg2.lizare a:6 , w7 , x 8 • Forma standard· va- fi
= 4,
Pentru a aduce problema la forma canonica vom transforma prima egalitate in doua inegalita~i, iar apoi toate inegalita~ile::;:;de transformam in inegalitati < pentru ca problem.a, este de maximizare. Ca ~i inainte, w3 trebuie in.locuit cu diferen~a w4 -a:5 •
METODE SIMPLEX lN PROGRAMAREA LINIARA
73
Se obtine astfel forma canonica ~4, ~
-4,
Bazele algoritmului simplex. Sa consideram o problema PL sub forma standard :
Ax =h x~O, min c'x.
(2.4)
Se poate presupune ca liniile matricei A sint liniar independente, deoarece in caz contrar o parte din ecuatii se dednc din celelalte §i atunci pot fi eliminate: Vom mai presupune ca matricea A este de dimensiuni m x n ; atunci be Rm, iar rang A= m. Vom nota cu «, liniile matricei A(i =; 1,2,... ,m) ~i cu a'tcoloanele (j == 1,2 ... ,n). , ·· Definitiile care urmeaza au sens numai pentru o problema sub forma standard. · Spunem ca o solutie x a problemei (2.4) este Bolu#e de bazlJ, daca, vectorii a, corespunzatori componentelor nenule ale acestei soluvii sint liniari independen~i. , . Deoarece rang A ::::;:: m; nu _pot exista mai n;iult de m vectori a, liniar indepe:aden~i, deci o solutie de baza are eel mult m componente diferite de zero. Daca o solu i e baza are exact m co te nen ci -~ol . se nnme e 6 enerat • act ins a. 0 so U le de had, are mai pu~in de m e men e n e, ea nume~te soiuJie dit lJ'iizct deu.g•~at4.. Fie B matricea formata de coloanele a, ale unei solutii de baza_nedegenerate. Matricea B este o matrice patiatica (de ordinul m), nesingulara.
74
PROGRAMARE LINIARA
Vom numi baza orice matrice patratica, nesingnlara de ordinul m, extrasa din matricea A. Daca B este O baza, atunci X = [x 8 , x8 "], unde iB = n- 1 b, x8 = O constituie o solutie .de baza a problemei (2.4); intr-adevar, componentele nenule ale vectorului x se pot gasi doar printre componentele lui x8 , iar vectorii a1 corespunzatori elementelor nenule ale lui x, fiind coloane ale matricil B, sint liniar independenti. Baza B se nume~te a{l,misibila daca solutia corespunzatoare ei este chiar un program, deci daca x8 = n- 1 b ~ 0. I~portanta notiunii de baza introdusa mai sus rezulta din urmatoarele doua teoreme : a) Daca problema (2.4) are un program, atu'nci are c-3l pulin un program de baza. b) Daca problema (2.4) are un program optim, atunci are ri un program optim de baza. Rezulta de aici ca pentru a gasi programul optim este suficient sa examinam numai programele de baza ~i sa-1 alegem pe eel mai convenabil dintre ele. Algoritmul simplex efectueaza tocmai o astfel de explorare a programelor de baza i,i permite de fiecare data sa se stabileasca daca ·s-a obtinut baza optima sau daca trebuie examinata o alta baza. tn ultimul caz se indica ~i noua baza care trebuie examinata. Pentru a vedea cum functioneaza acest algoritm, sa presupunem ca clispunem de o baza admisibila B ~i sa notam cu I indicii variabilelor din baza, iar cu J pe cei ai variabilelor secundare (adica ai variabilelor care nu fac parte din baza). Daca partit,ionam matricea A sub forma A = (B, B), (B reprezentind matricea formata de vectorii a, j e J) ~i vectorii x = [x8 , x 8 ], c = [e8 , e8 ], restrictiile problemei (2.4) se vor aerie
Bx8
+Rx8 =b
sau, inmul~ind cu B- 1, x8
= u- 1 b ~ u-1 Rx8 •
Notind cu y, vectorul B- 1 _a, ~i cu x8 pe B- 1 b, restrictiile devin
(2.5) Daca toti x,, j e Jiau valoarea zero, rezulta x8 = i 8 = u-1 b, adica tocmai programnl corespunzator bazei B. Atunci cind w, iau o, se determina z,: - c,:
=
k din condi~ia
max {z, - o,}. ;eJ
(2.9)
Vectorul a1: se introduce in It-~za. Etapa 2. Daca '!J,1:~0 pentru toti i e I, problema are optim infinit. Daca exista '!Jo: > o, se determina Z din relatia .
-B
x, . --mm
y,.,
,1t1;,:>&
. x, . {-B} '!Jo,
(2.10)
\
METODE SIMPLEX IN PROGRAMAREA LINIARA
77
Vectorul a, se elimina, din baza. Etapa 3~ Se calculeaza, cantitatile ~i z; - c, corespunzatoare noii baze conform formulelor (2~8) iji se reia algoritmul de la etapa 1. Obserivatii. a) Algoritmul simplex se poate aplica iji problemelor PL in care se cere maximizarea functiei obiectiv. Pentru aceasta nu trebuie modificata decit etapa 1, care se inlocuie~te cu etapa 1': daca z, - c, ~ O pentru toti j e J, programul actual este optim ; .in caz contrar, se determina k din condi~ia
xr·, y:,
Z,: -
01;
= min {z, ieJ
- c,}.
b) Uneori, prin abuz de limbaj, in loc de a spune ca vectorul a, se introduce sau se elimina din baza, vom spune ca variabila (1)1 se introduce sau se elimina din baza. c) Criteriul de intrare in .baza (2.9) rezulta din u.rmatoarele considerente. La introducerea unei variabile (1)1 in baza, functia obiectiv scade cu vaJoarea (z1 - c,) !IJ1 • Daca vom introduce in baza variabilele pentru care (z, - c,) (1), este maxim, ne putem a~tepta ca numarul iteratiilor sa fie mai mic. Calculul lui max (z1 - c,) !IJ1 este relativ complicat ~i de aceea se prefera criteriul mai simplu max (z, - c1). De altfel, in baza se poate introduce orice va,riabila x, pentru care z, - c1 > O. Programul optim se oht;ine Qi de aceasta data, dar de obicei este necesar un numar mai mare de iteratii. d) Daca y,1; ~ 0 pentru toti i e I, o solutie x.) pentru care lim c' x-> = >.➔ oo = - 00 este u.rmatoarea: !IJl).) = AY,1: daca i EI, (I)~).)= A ~i (1)? 1 = 0 daoa j e {k}. . e) Veotorii y, oorespunzatori variabilelor din baza sint tocmai ectorii-unitate e, , iar cantitat;ile z, - c, corespunzatoare acestor variaile sint c8 e, - c, = O.
J
J"
xr -
Organizarea calculelor. De obicei pentru aplicarea algoritmului se utilizeaza tabele aimple(I). Acestea sint nif)te tabele obi~nu.ite, avind m +1 linii Qi n + 1 coloane. Fiecarei baze i se ataf)eaza o ast . tabela. ln 1 prima linie a t~.~_in,sc:ri:u c.Q~P~~fil!.tiu - 8 \ c,. Prima---coloana contunr_s_o1u:t;· un e azei respectrve-.. - .= B- 1b. ln celelalte coloane se tree vectorii y, = a, = ,2, ... ,n). La intersectia primei linii cu prima coloana, se gaseijte valoarea functiei obiectiv : z = c8 • B- 1 b. ln afara tabelei, la stinga s~ tree variabilele care fao parte din b~r~speotiva,- iar~ la prima iteratie a,Ja:bui de eJe ~-EJi -~ficientifcu care apar in func~1a obfectiv. Deasupra primei 1iiiii se noteaza. variabilele corespunzatoare fiecarei coloane. Vezi tabela 2.1. Pentru efectuarea unei iteraW trebuie facuta o schimbare de baza in conformitate cu formulele (2.8). Aceasta implica trecerea de la o tabela, simplex la alta. D'9Ani1: este variabila care intra in baza, iar ro, este varia-
78
PROGRAMARE LINIARA
Tabela 2.1
z ~B
I
Zi-C1
Zz-ca
...
z;-c;
...
Za-Cn
l/1
l/2
...
Yi
. ..
Ya
~ila care parase~te baza, pe 'J/,i il vom numi pivot, linia l va. fi linie-pivot, 1ar coloana k coloana-pivot. Cu aceste definitii ~i avind in vedere formulel~ 9,.. - . (2.8), noua tabela simplex se obtine din cea IJ - - - - - - - - , 911 veche in felul urma,tor: toate elementele din I I linia pivotulu.i se impart la pivot ; toate ele1 1 mentele din coloana pivotulu.i, afara de pivot, I I devin O ; toate celelaJte elemente se transforma I1 . I dupa regula dreptunghiului. Aceasta regula este 0 --::·,-- - - - - , yrmatoaa-ea : ne imagina,m un dreptunghi in care Ykj • " ~ gkl,!/~a dintre dfagonale une~te elementul '!h, ce / ~ trebuie transformat cu pivotul 'J/1:, {fig. 2.1). / F,s, 2·1. · Noua valoare y',, se obtine scazind din '!h, .citul dintre produsul elementelor ce se gasesc in celelalte douit virftiri ale dreptunghiului ~i pivot :
Prima linie ~i prima coloana a tabelei se 'transforma dupa _aceea~i regula. · · E(l)emplu [ 9]. Sa se rezolve problema PL
79
METOt>E SIMPLEX tN PROGRAMAREA LINIARA
Etapa"-Q. Pentru a aplica algoritmul simplex, vom aduce mai intli problema la forma standard. ln acest scop introducem variabilele de ega,lizare a:3 , a:4 ~i m5 • Rezulta, problema
~
mi, m2 , ••• , m6 ~ O,
· Trebuie sa, gasim o baza. admisibila. a problemei. 0 astfel de bazi este cea formata din coloanele 8 3 , 8 4 , 8 5 :
___ .
..,
--·--------
-
B
= (8 3 ,
8 47 8 5)
~o (o o)
=
0
1 0
Baza B este chiar matricea-unitate, deci
u- = b = [4,18, 6]; Y, = u-8 ~ =1 8,; z, = (0, o, 0) a, - o, == - o,; z = c • u- b = o. 1b
0 • 1
1
!l-1 = B r! ~i.. i 8 = o, = 8B. ,r- 8, - ", = , •
Cunosctnd toate aceste date, putem forma tabela simplex iniyia la.. Tabela
0 ·······'····-2
i
I
-1
0
0
0
.1
1
0
0
...!1
0
1
0
0
0
1
~-····-· .....Lil--·-····· 18
3 I
1
6
1-···········
s.s
:
2
tn prima coloana am scris vectorul i 8 = [4,18, 6] ; in celelalte coloane s-au trecut vectorii y, = a,, de exemplu y1 = 8 1 = (1, 3, - 1] etc. Cantita.vile m, - c, = - o, se ga.sesc in prima linie a tabelei. Itera,lia 1, etapa 1. Deoarece exista. z1 - c, < 0 (din tabela2.2 rezulta Zi - Ci= -2, Zz - C2 = -1), baza iniviala nu este optima (problema
80
PROGRAMARE LINIARA
noastra, este de maxim). Dupa, cum rezulta, din prima linie a tabelei 2.2, min (z, - c,} este -2 ~i se atinge pentru k = l. IteraJia 1, etapa 2. Determinam pe Zfacind rapoartele dintre elemen• tele coloanei x8 ~i cele ale coloanei a:1 {pentru y il > O} : min{_!_, 1
18 3
} = _!, 1
deci Z= 3. Variabila x1 se introduce in baza in locul variabilei x3 • Pivotul este y31 = 1 ; in tabela 2.2 el este incercuit. IteraJia 1, etapa 3. Construim noua tabela simplex. Linia pivotului se imparte la pivot. Cum pivotul are valoarea 1, linia ramine neschimbata. Toate elementele din coloana pivotului (afara, de pivot) se inlocuiesc cu 0. Celelalte elemente se transforma dupa regula dreptunghiului. De exemplu, valoarea lui z devine (in tabela 2.2 a fost trasat punctat dreptunghiul respectiv} 0 -
4(-2) 1
=
8.
1n mod analog, celelalte elemente din linia z, - c, devin (-1) (-2) -1----=-3· 1 '
0-(-2}
1-(-2} 0----=2; 1
O - - - - =0 etc. 1
1n acel~~i fel se transforma ~i elementele din celelalte linii. De exemplu in locul Jui y52 = 2 vom scrie: I
_
'J/r,2 -
2
-
( -1) ( -1) _ 1
------- -
1
•
tn c~le din urma se. obiine tabela 2.3 Tabela 2.3
I
0
-3
2,
0
4
1
-1
1
0
0
6
0
I 21
-3
1
0
10
0
1
1
0
1
8
..
0
METODE SIMPLEX lN PBOGRAMAREA LINIABA
81!.
Itera{,ia''2, etapa 1. Programul actual nu este optim, deoarece exista.
z, - o, < 0; min {z, - o,) se atinge pentru k = 2, deci variabila m2 intra.
fu baza.
.·.
10 Iterafia 2, ~apa 2. min {~, } = ~, 21 2
deci Z = 4. Variabila
X4-
paraseijte baza. ltera{,ia 2, etapa 3. Dupa un pivotaj in jurul elementului y42 se obtine: tabela 2.4. _ Tabela 2.4
17
I
0
0
5 --
--23
2
7
1
0
--21
--
3
0
1
--32
-
7
0
0
-
5
2
0
1
0
2
1 0
2
- --1
1
2
Iteratia 3. Nici noul program nu este optim. 1n baza se introduce.
variabila x3 ~i se elimina x5 • Dupa pivotajul in jurul lui y53
= ~ se 2
tabela 2.5.
obtine:
Tabela 2.6
24
42 Xi
5
X9
-365
%a
-
14 5
x,
X5
Xi
Xz
X3
0
0
0
1
1
0
0
-52
-15
0
1
0
-1
-35
0
0
1
--52
-
5
1
2
5
c, ~ 0 pentru toti j, baza actuala. 42 este optima. Deci programul optim al problemei noastre este Xi = - • Itera{,ia 4, etapa 1. Deoarece z1
-
5
G - e. 177
,
/
82
a:2
PROGRAMARE
36 14 = -, a:3 = - , 5
5
a:4
= o, a:5 = 0
LINIARA
{x4 ~i a:5 au valoarea O, deoarece sint
variabile secundare). · Interpretare geom.etrica. Pentru problema examinata mai sus se poate da o interpretare geometrica simpla in spaiiu1 R 2 • tn planul x1 Ox2, mulinnea punctelor {xi, a:2 ) care satisfac restrictia x1 - x 2 s 4 constituie unul dintre semiplanele determinate de dreapta D : a:1 --:- x2 = 4, ~i anume semiplanul care contine originea. Celelalte doua restricW determina alte doua semiplane. Muliimea programelor problemei va fi formata din muliimea punc: telor din primul cadran {x1 ~0, x2 ~0) care se aflala intersectia celor tre1 semiplane. Aceasta mnltime este poligonul OABOD {fig. 2.2). Functfa obiectiv este 2x1 + x 2 • Ecuaiia 2x1 + x 2 = z reprezinta o familie de drepte paralele intre ele. ln figura 2.2 au fost reprezentate ~
\
\ C("42 ,3-6.)\ 5 5
\
~
\ ~
\
,~ ,uJ
\~ \ \
\
\
\
\
0(0,0) \
\
\A(4,0) \
.
x,
\ Fig. 2.2.
punctat citeva dintre aceste drepte. Pentru z = z2 , functia obiectiv ia, va,Iori mai mari decit pentru z = Zi, iar pentru z = z3 valori ~i mai mari. Insa, dupa cum se vede din figura, nu exista nici un program care sa dea, functiei obiectiv valoarea z3 ( dreapta 2x1 + x 2 = z3 nu intersectea,za poligonul O.ABOD). Cea mai mare valoare pe care o poate lua z pentru puncte din poligonul O.A.BOD se obtine atunci cin.d dreapta 2x1 + x 2 = z trece prin punctul 0. Valoarea lui z in acest caz este 2. 42/5 + 36/5 = 24. Cind am aplicat algoritmul simplex, drept baza ini'~iala am luat baza B = (83, 8 4, 8 5). Variabilele x1 f}i x 2 sint variabile secundare, deci au va,loarea O; reiese cane-am gasit in v:irful O (O,O) al poligonului O.A.BOD, iar valoarea functiei obiectiv era z = O. Dupa aceea variabila a:1 a, intrat in baza, f}i am obtinut programul x1 = 4, x2 = O. Geometric aceasta inseamna ca din virfnl O ne-am deplasat pina in virful .A.(4,0) de-a lungul muchiei
,_ METODE SIMPLEX JN PROGRAMAREA LINIARA
83
0..4.. ln continuare, din vtrful .A. am ajuns in virful B, mergind pe muchia .AB (variabila- :v3 a pastrat tot valoarea o, deci ne gasea,m pe dreapta D1 ). De aici am ajuns in virful optim O, urmind muchia BO. VaJoarea functiei obiectiv a crescut succesiv de la, 0 la 8, apoi la 17 (in vtrful B) f)i, in sfirf)it, la, vaJoarea maxima 24. Acest lucru este valabil f)i in cazul general: fiecaret baze admisibile a problemei adusa la, forma, standard ii corespunde un virf al tronsonului solutiilor. Fiecare iteratie simplex reprezintit o deplasare de Ia, un virf aJ tronsonului, pe o muchie, pina la un alt virf, care confera func'(iiei obiectiv o va,loare ,,mai buna". Degenerare §i ciclare. ·Rezolvind o problema PL cu algoritmul simplex, s-ar putea intimpla urmatoarea situatie : la, o anumitit iterat;ie se introduce in baza o variabila ro1: f)i parase~te baza o variabila :v;: , la iterat;ia urmatoare se introduce variabila :vk f)i parasef)te baza, variabila ro1:, iar Ia, itera'(iia a treia variabila ror reintra in baza in locul variabilei :v~. ln acest fel ajungem la tabela simplex de la care am pornit; urmea?,it sa eliminam pe :v~' din baza ~i sa-1 introducem pe :v1: etc. Procesul acesta poate continua astfel la infinit. 1ntr-un astfel de caz spunem ca problema, cicleaza.
Cind este posibilit ciclarea, Y Dupa, cum am vazu.t intr-o problema, de minim, la, introducerea, variabilei ro'I: in ba,za funct;ia obiectiv scade cu vaJoarea (z1: - c1:):v'I: (intr-o problema de maxim cre~te cu aceasta valoare). 1n cazul de mai sus, z ,,a scazut" succesiv cu (z1: - c1:) :v1:, (z~ - ck) a:i, (z,c' - c,J :vk'. Deoarece am revenit la baza de la care am plecat, deci la aceea~i vaJoare a lui z, toate cele trei cantitati trebuie sa fie nule. Cum z11 - c1: este nenul, deoarece corespunde unei variabile care intra in baza, rezulta a:1: = O ~i la fel a:~= 1r;: ~ 0. Ciclarea poate aparea deci numai in caz de degenerare. Acest fenomen se produce in cazul cind in formula (2.10) minimul nu este unic. . tn problemele practice nu s-a observat fenomenul de ciclare, dar teoretic e:xistit posibilitatea, lui ti deci trebuie gasita o caJe de a-1 evita. Un procedeu de acest fel · consta in a evita, degenerarea, programelor de baza (iji atunci nu va, mai fi posibila nici ciclarea). In acest scop ,,se perturba" vectorul b, ada.ugind cantitatile 1 1 convenabil aJese, foarte mici in raport cu ceilaJt;i coeficien'(ii ai problemei [3 ]. Prin aceasta, programul optim se modifica ,,foarte pu'(iin" ti nu se mai obtin programe degenerate. Regula, pra,ctici la care se ajunge in acest fel stabile~te ce trebuie fa.cut in cazul cind minimul in formula, (2.10) nu este unic iji consta in urmatoarele: se renumeroteaza variabilele astfel incit baza initiala sa fie formata din coloanele (a17 aa, ••• , a,.).Daci la o anumita iteraiie minimul dat de (2.10) nu este unic, sa notam cu 10 multimea, indicilor pentru care se reaJizeaza, acest minim ; se calculeaza apoi
min{'!Ju}• iElo '!Ji•
-84
PROGRAMARE LINIARA
Daca acest minim este unic, variabila respectiva se elimina din baza, ; daca minimul nu este unic, fie 11 muliimea indicilor pentru care se .a.tinge acest nou minim. · Se calculeaza in continuare
:f1i, in caz ca minimul nu este unic, se determina multimea 12 etc. Avem 10 ::J 1 1 ::J 12 -::J •••• In cele din uxma se obtine o multime care contine un .singur indice ; variabila respectiva va fi eliminata din bazar. Determinarea bazei initiale. Daca restrictiile problemei se pot aduce la forma Ax~ b cu b o, atunci variabilele de egalizare vor genera o
>
baza initiala, care este chiar matricea-unitate de ordinul m. In cazul general putem utiliza uxmatoarea metoda, numita a celor ,doua faze. Toate restrictiile .probl~mei se transforma in egalitati Ax= b,
(2.11)
:astfel ca b ~ 0 (daca exista b, < o, restrictia respectiva se tnmulteite cu -1). La fiecare dintre ecuatiile problemei se adauga cite o 'Variabila .artificiallt : ~ i
a,, + = b, (1)1
(1)~
:aau, sub forma matriceala, Ax+ Ix"= b.
(2.12)
Restrictiile (2.12) ii (2.11) vor fi echivalente daca ro: = 0 pentru toti i. Vom putea obtine ca toate variabilele artificiale sa devina, nu.le, :rezolvind problema PL Ax+ lx5 = b, x, x"~ 0. min;=~a;~ ..
(2.13)
In aceasta problema, functia obiectiv corespunde unui vector = 1,2, •••, n ii egale cu 1 pentru indicii asociati variabilelor artificiale; t se va scrie f$i t = y' [x, x0 ]. Pentru rezolvarea problemei (2.13) dispunem de o baza initiala, .care este chiar matricea-unitate I ataf$ata variabilelor artificiale. Canti-y e E11+" ale carui componente sint nu.le pentru j
METODE SIMPLEX tN PROGRAMAREA LINIARA
85
t1iine xB, y,, t, - y, se obtin imediat, deoarece 1-1 = I; x 8 = h, y, = a, ~i ~, -':(1 = .:E a0 _pentru j = 1, 2, .•. , n. . - · i Daca min t = o, atunci toate variabilele artificiale sint nule, caoi aft~ 0. In acest caz, baza optima a problemei (2.13) constituie o baza inifiala a problemei (2.4). Fie x• un program al problemei (2.4); atunci (x•, xa = O) constituie un program optim al problemei (2.13), deoarece ?;: = :E (I): = 0. Prin urmare, daca, rezolvind problema (2.13) obtinem min ~ > o, aceasta tnseamna, ca, problema (2.4) nu are programe. Pentru rezolvarea problemei (2.4) vom proceda deci in doua faze: in prima faza rezolvam problema (2.13); daca min ~ > o, problema (2.4) nu are solutii; daca min t = o, baza optima, a problemei (2.13) va fi o baza init;iala, pentru problema 2.4. In faza a doua se rezolva problema (2.4) pentru care dispunem de o baza initiala. Observa#i. ~a) In tabelele simplex ale primei faze vom adauga o linie ~i pentru z1 - 01 , astfel ca la inceputul fazei a doua aceste cantita.'(;i sint deja calculate. . · b) Daca in problema, (2.4) exista variabile care a.par doar intr-una din restric~ii, aceste variabile pot fi incluse in baza ini~iala, ; in acest caz la ecuatiile respective nu se mai adauga. variabile artificiale. 2) Daca mint= o, dar in baza optima a primei faze mai apar variabile artificiale (cu valoarea zero), care nu pot fi eliminate {deoarece to~i '!Ju= O), atunci raiigul lui A este mai mic ca m. 1n aceasta, situatie, liniile in care apar variabile artificiale vor fi neglijate. E(l)emplu. ""Sa, se rezolve urma,toarea problema, PL:
=
+ 2a:2 +
(/)1
ai1 ,
max (lOa:1
2(/)3
X2 , -
7:112
(/)3
+ a:, = 12, + 3a;, = 16, a:4 ~ 0,
X3 ,
+ 2a;3
1,
-
:114) •
Bolutie. Vom utiliza metoda celor doua, faze. Introducem variabilele artificiale ::u5, :116, a;.1, obtinind astfel problema,: a11
~ ,
+ 2tv + a, 2(1)2 + :113 + 3Q?4 3
= 12,
4
a, 2 , ••• , lD7 ~
1,
+(I),= 16, 0.
PROGRAMARE LINIARA
86
ln prima faza va trebui sa minimizam
iar fu a dona sa maximizam.
Va,riabilele artificiale formeaza o baza de plecare. Tabloul simplex initial est~ dat in tabela 2.6. Dupa cum se vede, in afara de linia z, - c,= - c, el mai contine inca o linie in care sint trecute cantitatile t, - r, corespunzatoare lui t. Ele se obiin _adunind componentele vectorilor _y,, deoarece coeficientii variabilelor artificia.le in expresia lui t sint 1. Celelalte elemente ale tabelei sint tocmai coloanele matricei A, termenul liber b 1Ji vectorul - c. ln dreptul variabilelor s-au specificat ~i coeficientii cu care apar in functia obiectiv a fazei intii. Prima faza, consta in minimizarea lui ~ ; in baza se poate introduce una dintre 'Variabilele x1 sau a14 pentru care se reaJizeaza max (t, - r,). 1: Tabela 2.6 0
0
0
0
1
1
1
O·
0
0
o.
0
0
.
~
29 z
0
1 12 16
I I
4,/ -10
m
I
-1-' 0
4✓ I
0
2
7
-2
1
-2
-1
0
2
2
1
0./ 1 3
I
1
0
0
0
1 . 0
0'" 1
0
Vom alege variabila x 1 • Deoarece min
(_!_' 3
12) = _!_ ' 1 3
se a.tinge pentru Z= 5, varia.bila. a:5 va. parasi ba.za.. Dupa un pivota.j in = 3 se obiine tabela. 2.7. Coloa,na, 'Us nu ne ma,i intereseaza, deoarece· variabila. a:5, odata elimina.ta din baz_a, nu va mai fi reintrodusa niciodata.. Dupa doua iteratii in care se introduc in ba.za succesiv variabilele a:4 1Ji a:3 l}i se elimmA (1)7 1Ji a:6 se obtine t = 0 ti t, - r, = O pentru toti j. t:;;tergem aceasta linie ti obtinem astfel ta.bela 2.8. Cu aceasta, faza intli s-a terminat. Variabilele artificiale au fost elijurul elementului y51
(
J cl
METODE SIMPLEX tN PROGRAMAREA LINIARA
81 Tabela S.1
-833
I I
10
-3
z
~
1
-
0
-13
1
35 --
0
3 16
~{
0
3, .,/
--23 /.!:~ ~
\_j
0
I
I
10
-3
_t,
4
\C
·1
0
0
16 -3
1
0
0
--13
0
0
0
-7
1
1
0
1s·1
0
1
3 1
Tabela S.8
-287 18
I
25
-
.
.,....
~
,;
I .--, ~I"
I
Xa
/,it,1f
....
·z,
,Joef
/'l
18 19
dJ
6
-77 18
0
--13
0
0
1
--3
0
0
0
0
1
0
0
1:1
0
1
2
,,,
It
minate ~i dispunem acum de o tabela, simplex a, problemei initiaJe, in care varia,bilele °'1., a:3 f}i ro4 genereaza, o baza,. Aceasta baza, nu este optima, deoarece
1
Zz- C2
= - 3
0). Dupa aceea se determina variabila care parase~te baza din conditia ca ~i noua baza sa fie admisibila. Pivotul 'Y," este pozitiv. La fiecare iteratie, valorile functiei obiectiv descresc pina se atinge solutia optima. Pentru algoritmul simplex dual baza initiala este dual admisibila, dar nu ~i admisibila (altfel ar fi optima). Mai intii se gase~te variabila care se elimina din baza a:, (pentru x, nu este satisfacuta conditia de nenegativitate a solutiei). Dupa aceea se cauta variabila care trebuie introdusa, in baza, astfel ca ~i noua baza sa fie dual admisibila. Pivotu.l Yu: este negativ, iar la fiecare iteratie valorile functiei obiectiv cresc pina la atingerea solutiei optime. Enuntul algoritm,ului sim,plex dual: Etapa 0. Se aduce problema pl la forma standard iji se determina o baza initiala dual admisibila. Se calculeaza z, - c,, x8 ~i y,. Etapa 1. Daca ?t, ~ O pentru toti i e I, baza actuala este optima. Daca exista ?t, < o, se determina Z din conditia ?t, = min {?t, }.
Variabila m, parase~te baza. Etapa 2. Daca y,, ~ 0 pentru toti j e J, problema nu admite programe. Daca. exista < o, se determina k din conditia
y,,
z" - c" _ min . z, - c,
y,,.
1 • o. 877
11111; < o
Y,,
(2.17)
98
PROGRAMARE LlNIARA
Variabila f!J11 intra in baza. Etapa 3. Vectorul a, din baza se inlocuieijte cu vectorul a 11 ; in acest scop se pot aplica, formulele de transformare (2.8). Detemdnarea bazei initiale. De obicei aJgoritmul simplex dual se aplica atunci cind dispunem de o baza dual admisibila, sau o putem obtine uijor. Daca dorim totll.lji sa aplicam algoritmul simplex dual iji cind nu dispunem de o astfel de baza, atunci putem proceda astfel : determinam mai intli o baza a problemei; nu este necesa,r ca aceasta, baza sa, fie ad.misibila. sau dual admisibila. Putem capata o astfel de baza transformind toate restric~iile problemei m inegalita;(;i ~ (pentru problemele practice, cea mai mare pa.rte a restrictiilor se prezinta sub forma de inegalita"t;i). Variabilele de egalizare vor genera atunci o baza a. problemei. Daca aceasta baza, nu este dual realizabila, se adauga restri O: ~
JI:; - C; > 0
x, o. Putem obtine imediat ca aceasta baza sa devina dual admisibila, inlocuind
10$
METODE SIMPLEX IN PROGR.AMAREA LlNIARA
pe $i cu fCi= 1-a:1 (cind acest lucru nu este posibil, se procedeaza la, introdueerea, unei restric~ii artificiale ~ m, o, x0 nu mai este un program pentru problema, (2.20). tn acest caz, fie v 0 programul optimal dualei problemei (2.20); v 0 se obtine pe linia t, - y,, in dreptul coloanelor corespunzatoare variabilelor artificiale (de aceea aceste coloane vor fi pastrate in tabelele simplex chiar daca variabilele artificiale respective sint eliminate din baza). Vom avea a~ v 0 ~ 0 pentru j a: J 0 (pentru j e J 0 putem avea, a~ v0 > 0). Daca, . 6o = mm i/a; v > O 0
{
a,u , 0 - c, } - ---~ ' a; v0
(2.21)
se arata imediat ca
este -~ program dual. Notam
,i
vom rezolva problema, (2.20) cu• o condit;ie suplimentara corespunzatoare: nu vor fi introdrrse in baza variabilele aJ1 cu j e J 1 • Pentru aceasta noua, problema, drept baza, ini1;iala va, servi baza optima a, iteraviei precedente. Daca min ~= 0, programul optim x1al problemei (2.20) este ~i programul optim al problemei (2.4), deoarece impreuna cu u1 verifica teorema ecarturilor complementare. Daca min t > o, se determina v1 §i se construie§te n2 etc. Daca a; v 0 ~ 0 pentru toti j e J 0, formulele (2.21) i§i pierd sensul. 1n acest caz se demonstreaza, ca problema, (2.4) nu are solutie. Pentru a,plicarea algoritmului trebuie sa cunoa§tem o solutie n° a, problemei duale. Spre deosebire de algoritmul simplex dual, u 0 nu trebuie .sa fie o solu'\iie duala, ,,de baza," §i de aceea se poate obtine mai U§Or. De exemplu, daca, c z o, un program dual initial va fi u 0 =0. Daca c ~ o, putem obtine, ca §i in cazul algoritmului simplex dual, un program dual, introducind restrictia artificiala %
+ ilc;~< o (I),= M.
Atunci un program dual initial va fi u8
= min ( c, ) u~ = i
O, i e .M.
METODE SIMPLEX !N PROGRAMAREA LINIARA
107
Enuntul algoritm,ului prim.al-dual. Etapa 0. Se aduce problema, I& forma, standard (2.4) se determina, un .program dual initial u 0• Etapa 1. Fie J 0 = {j Ia; u0 < c, }. Se rezolva problema (2.20) -cu algoritmul simplex obi~nuit, avind in vedere ca varia;bilele x, , j e J sa nu fie introduse in baza la nici o iteratie. Daca min ?;: = o, x0 este programul optim cautat. Daca min ?;: > o, fie v 0 programul optim al dualei acestei probleme.
Etapa. 2. Daca a; v0 ~ 0 pentru to'(;i j e J 0, problemadatanu are solu'(iie. In caz, contrar, fie . 80
• a,u ' 0 -c, . } = rmn - -------• { 0 1,❖c~o
a;v
. Etapa 3. Calculam un nou program dual u 1 = u0 + 80 v 0 iji reluam algoritmul de la etapa 1, utilizind baza · optima din itera'(;ia precedenta. drept baza initiala. Observatii. a) Pentru aplicarea algoritmului la probleme de maximizare in relatia (2.21), ca.re da pe· 80 , se inlocuie~te minimul cu maximum, iar inegaJita,(iile din defini'(;ia lui J O ~i schimba sensul. b) Spre deosebire de algoritmul simplex obi~nuit, chiar daca unele din variabilele de structurli, ale problemei (2.4) pot servi la formarea unei baze initiale, aceasta trebuie sa fie constituita in intregime din variabile artificiale. Se poate admite ca o variabila de structura x, sa intre in baza initiala doar daca a; u0 = c1 (astfel, n-ar fi satisfacuta teorema ecarturi-· lor complementare). Organizarea ealculelor. Pentru efectuarea calculelor se pot utiliza. tabele simplex cu m + 2 linii ~i n + 1 coloane, ca ~i in cazul metodei celor doua faze. Lucrul cu aceste tabele in cadrul algoritmului primal dual va. prezenta, insa anumite particularitati. Astfel, prima linie a tabelei va. cont;ine pe a; u, - c,·, iar a doua,. pe t, ~i nu pe t:, - y,. tn tabela simplex. initiaila, linia a; u,-c, poate lipsi; tabela urmatoare va con'(;ine cantita;(;ile a; u - c, calculate pentru baza ini'(iiala. Vom obtine valoarea lui 8 calculind rapoartele (cu semn schimbat) dintre elementele situate in primele doua linii : - (a; u - c,)/t, pentru. t.,>O. Fie
a:u -- 01: - -=
ta
• { Illlll 'C;J>O
a~ u -. c, } =
t.,
a.
Variabila a,'/: se introduce in baza, iar variabila a,, care pa.raseijte: baza se determinA cu criteriul. uzual al metodei simplex.
PROGRAMARE LINIARA
108
Vom transforma tabela folosind regu.la dreptunghiului, cu pivotu.l 'Y,1:, in afara de linia a; u - c,. Aceasta se va transforma tot cu regu.la dreptunghiului, dar ca pivot se utilizeaza elementul ~.1:• Emempl'!J,. Sa se rezolve problema
utilizind algoritmul primal dual. Etapa 0. Vom aduce problema la .forma standard, introducind variabilele de egalizare m4 , m0 , m6 , m7 • Pentru a obtine un program dual initial vom ada.uga restrictia, artificia,la,
Obvinem astfel problema
=
20,
-
4,
-
5,
=M,
.
.
min ( -m1
-
3~2
-
2t.u3 )
(ordinea unor ecuavii a fost modificata). Deoarece min { o,} = - 3, programul dual iniiial este u 0 = [O,o,o,o, -3] (componenta u8 apare in dreptu.1 restricviei artificia,le). Calculam
METODE SIMPLEX lN PROGRAM.AREA LINIARA
109
produsele a; u 0 : a~ u0 = [0,o,0,0,1]. [0,o,o,o, - 3] = - 3; a~ u0 =[7,5,2, 1,1]. [0,o,o,o, -3] = - 3; a~u0 = a~u0 = - 3; a~ u0 = a~ u0 = a; u0 = = a;u0 = O. Rezulta J 0 = {j Ia; u0 < c,} = {0,1,3 }. Pentru ob~inerea bazei iniiiaie, adaugam variabile artificiale in u.ltimele trei ecuatH (spre deosebire de x8 iji x 1 , x0 nu poate intra in baza, inivia.Ia, deoarece a~ u 0 < Co = 0). Putem scrie astfel tabela 2.23: Tabela 2.23
l;j 9+M
I
1
4
4
1
-1
-1
0
0
1
1
1
z,
20
0
7
8
-3
0
0
1
0
0
0
0
:e7
28
0
5
4
3
0
0
0
1
0
0
0
Zs
4
0
2
1
0
-1
0
0
o
I
1
0
0
z9
5
0
1
121
0
0
-1
0
o
I
o
1
0
M
1
1
1
1
0
0
0
O
I
O
0
1
Zi.o
Itera#a I, etapa 1. Aplicam algoritmul simplex pentru mm1m1zarea lui -~ = a:8 + x9 + xw Deoarece ~2 = 4 > 0 f}i {2} a: { 0,1,3 }= J 0 , variabila a:2 intra, in baza. Din baza poate fi eliminata fie a:6 , fie a:9 • Eliminind, de exemplu pe a:9 , ob~inem tabela 2.24. Deoarece acu.m 0 f}i {5} a: J 0 , introducem variabila a,0 in baza. Dupa o noua, iterat;ie gasim tabela, 2.25. Tabela 2.24
2
0
1
0
0
3
0
-3
18
0
3
0
3
3 2
5
2 5 ~o M-2
0
0
1
s 2
1 2
1 2
-1
1
0
0
1
-1
1
01.!J,
1
0
0
-4
0
0
0
1
0
-2
0
0
0
-1
1
0
0
0
1
0
2 1 2
1 -2
1 2
0
o I
1
0
0
0
0
0
0
1 2
1 2
1 2
0 0
1
PROGRAMARE LlNIARA
110
Tabela S.26 I
-3M' -3 M-11
0
-1
-45
0
-7*4
-4
0
--
-32
0
0
-'98
0
0
-87
1
1
-18
0
1
0
I
18
0 0
-23 5
-2
5
M-2
I
-2
3
3
4
0
0
0
-1
0
--
0
1
1
4
-41
--2 --
0
I
0
0
-3
0
I I
1
0
1
0
-1
0
0
0
0
1
0
0
0
0
0
0
0
1
;
0
1
-92
0
I:1
-1
0
0
0
-81
0
0
0
--81
0
--83 11
-8
0
1
8
I
I 1
0
I
I I I I I
I I
De data aceasta t, < 0 pentru toti j e J 0 • Abia acum adaugam ~i linia care contine cantitatile a; u 0 - c, : a~ u0 - c0 = - 3, a~ u0 - Ci= - 3-(-1) = - 2 etc. In dreptul bazei initiaJe (x6 , x7, x 8 , x9, tc10) apare tocmai vectorul u 0 = [0,0,o,o, - 3]. In coloana lui i 8 vom trece pe z = b' u0 = (20, 28, 4, 5, M) u 0 = - 3M. lteratia 1, etapa 2. Calculam pe 80 efectuind raportu.l elementelor din primele dona linii (pentrn t, > 0) :
ltera,Jia 1, etapa 3. Pentrn a obtine pe u1, transformam prima linie a tabelei 2.25, utilizind drept pivot pe ?;8 = ..!__ Se obiine astfel prima 4
linie a tabelei 2.26. lterajia 2, etapa 1. Multimea J1 se obtine cant.ind elementele negative din prima linie a tabelei 2.26. Gasim J 1 = (0,I,4,6). Variabila m3 intra .in baza, deoarece in tabela final.a, a iteratiei 1 avem
ta =.!_ > 4
0.
Dupit o transformare simplex se obtine tabela 2.26, in care prima linie a fost deja completata la iteratia precedenta.
METOtil!! SIMPLEX lN PROGRAMAREA LINIARA
111 Tabela S.S6
--47
_17M+41_17 - ~ 7 7 7
0
0
-4
0
0
-
M-8
I
1
0
11• 3
0
--71
0
-31
0
I
3
0
3
0
0
-2
1
0
0
0
0
-12
0
0
1121
0
1
1
4
0
3
0
1
--38
0
--13
0
4
0
2
1
0
-1
0
0
0
11
M-8
-4
1
1
-3
0
0
0
I I
-3
0
I I I
-47
0
11 -3
0
2
1
-1
0
0
0
0
0
0
0
0
1
I -12 I 8 I 3 I 1 I I 11
-
I
17 -7
--3
I tera,ia 2 etapa 2. Ca,lcula,m pe 61 :
81
=
min (
¥ • ~ , ~ )= ~ , 1
11
a
1
11
3
3
Iteraiia 2, etapa 3. Dupa, o iteratie in jurul lui
t 4 = 11 3
obvinem
prima linie a tabelei 2.27. Vectorul u2 poate fi citit in dreptul coloanelor ba,zei initiale (a16 , (1}1 , (J}s, (J}e, X10 ) : u2 = [ - 1 , O, 4 , O, - 17] · 7 7 7 Itera#a 3, etapa 1. Tabela 2.27 se obvine dupa, introducerea lui a14 in baza ~i eliminarea Iui (1}7 :
Itera4ia 3, etapa 2: 82
. ( ~~ t1 )=
= mm
-1-'
1
25. 11
36
Iteralia 3, etapa 3. Transforn:iind prim.a linie cu pivotul to 25 -vom glsi u3 = , o, o, o]•
[-_!_, - 36 36
= 1,
PROGRAMARELINIARA
112
Tabela 2.2'1
_25M + 201- 25 _ 21 11 11 11
0
0
0 --
1•-:
0
0
0
3
0
1
0
0
0
0
-1
0
0
M-8
I
4
0
4
0
1 3
1 1
2lJ-8
~o
3
I 01
1
0
25
0
0 --
0
0
0
1
0
1
0
-1
0
1
0
-1
0
0
0
0
0
0
0
0
0
0
1
11
1
12 1
0
1
0
0 --
1
0
0
0
0
0
0
0
9
..!._ I 12
11
J
2 I
gl
1
1 I
12
12 I I
..!._
_11,
36
36 I
ltera#a 4, etapa 1. Dupa, introducerea lui a:0 in baza iji eliminarea lu.i a:10 gasim min~= 0. Programul optim care se obtine dupa transformarea simplex este acela~i cu eel din tabela 2.27: a: 2 = x3 = 4, x6 = 3, Xi= x4 = a:5 = o, iar valoarea optima a functiei obiectiv este z = 25M + 20 25 . =- - - - + (M -8)= - 20. Un program dual opt1m este u3 • 11
11
2.6. PROBLEME REZOLVATE ~I PROBLEME PROPUSE
2.1. Sa se xezolve problema
METODE SIMPLEX lN PROGRAMAREA LlNIARA
Solu#a 1. Vom aplica algoritmul simplex. tn acest scop inmultim,. prima restricvie cu -1 (pentru a, obvine b1~0) ~i introducem variabila de egaJizare x 6 • Variabila x5 poate face parte din baza initiala, deoarece apare intr-o singura restrictie. Adaugam variabilele artificiale (1)7 ~i (1)8 la. primele doua ecuaW ~i obtinem astfel baza initiala B0 = (a 7, a 8, a 5 ) = I .. In prima, faza va trebui sa minimizam suma variabilelor artificiale ~ = = x7 + xt:1. Tabloul simplex initial este redat in tabela 2.28. Tabela 2.28
b
0
0
0
0
0
0
1
1
-2
0
6
-2
-3
0
0
0
X5
Xs
X7
Xs
X1
X2
X3
x,
6
-4
-2
0
-1
0
0
3 -12
-1
0
0
0
0
t,-'Y,
26
3
z,-c,
0
-4
0
X7
6
-2
1 0 0-3
%9
20 0
1
X5
121
-1
1
0
-1
1
0
5
4
-3
-3
-1
2
1
0 1
0
2
0 0
0
0
1
Deasupra variabilelor Xi, ••• , x 8 ~i in dreptul variabilelor din baza. au fost trecuti ~i coeficienW corespunzatori celor doua functii obiectiv z = - 2x1 + 6x3 - 2x 4 - 3x5 ~i ~ = (1)7 + x8• In acest fel primele doua. linii ale tabelei se completeaza mai u~or, de exemplu: z = c8 b = 0.6 +
+ 0.20 + (-3) 8
. 0 = 0; ~
-Ci= o. (-2) - O = 1. ( -2) 1. 5
=C
a1
+
= y8 .b =
1.6
+ 0-5 + (-3). 2 + 0. 2 = 3 etc.
+ 1.20 + 0.0 = (-2) = - 4;
26; Z1 - Ci= =y8 a1 -
~1-Y1
1n prima faza trebuie introdusa in baza variabila x 2 (deoarece, max(~, -y,) = ~2 -y2 =6>0) ~i eliminata din baza variabila m;, intrucit
. (~,j
mm 1-'j 2
>0
'Y'
. (6
=IDID
- . 20) -
2
4
= 3 = X7 -·
1'72
Dupa efectuarea acestei iteravii obtinem tabela 2.29. lnlocuind aici pe x 8 cu mi, capatam tabela 2.30, care ne furnizeaza o soluyie de baza. a problemei initiale (~ = 0). Continuam cu faza a doua, introducind in baza variabila x 6• Se obtine tabela 2.31 : Acum este suficient un pivotaj in jurul lui y 54 = _!_ pentru a obiine: 4
programul optim : x1 = o, x 2 = 20, x3 = O,x4 = 20, a:5 = 0 ~i z = - 40 .. Solujia 2. .Aplicam algoritmul simplex revizuit. Ca ~i mai sus, introducem variabila de egalizare ro6 ~i variabilele artificiale (1) 7 ~i a:8 • Baza. 8 -
e. 877
PROGRAMARE LINIARA
114
Tabela 2.29 Xi
Xz
X3
x,
-1
-5
Xe
X5
X9
2
0
8
9
0
-9
-1
0
21 5 ---2 2
0
X2
3
-1
1
--12
-12
0
--12
0
X9
8
191
0
-1
0
2
1
1
--
3
X5
0
1
3
-5 3
2
2
0 3
0
2
1 2
0
Tabela 2.30
1-:1 Xs
-359 8
Xi
X5
9
-199
X1
Xz
X3
191 18
x, 55 18
X5
Xs
31 18
0
0
----
0
0
1
·--
---
0
1
0
1 5 ---9 9
0
l!I
0
0
1
--1318
11
18
1
18
29
37
18
18
5 18
Tabela 2.31 X1
-15
Xa
5
Xe
4
X5
5
I-731 5 4 9
2
-134
Xa
0
X3
x,
39
5
4
4
X5
Xe
0
0
1
3 3 ---4 4
0
0
0
1 5 ---2 2
0
1
1
0
0
-54
1:r
initiala este B0 = (a 7, a 8, a 5 ) = I, astfel ca putem scrie tabela, simplex :revizuita iniiial (tabela 2.32).
METODE SIMPLEX lN PROGRAMAREA LINlARA
tn. linia intti se gase~te vectorul (O, y 8 B- 1) aceasta linie cu matricea ,,extinsa"
(~)= vom gasi
~, - Y,
=
(0,1,1,0). 1nmultind
-2
0
6
-2
-3
0
-2
2
-1
1
0
-1
5
4
-3
-3
0
0
2
-1
2
1
1
1
=
115-
(3,6,-4,-2, 0,-1). Tabela 2.32 X7
Xe
X5
'iB
1
1
0
26
6
-1
0
o.
-3
0
3
0 0 0
1
0
0
6
121
0 0
1
0
20
0
1
0
I
I
0
Y2
4 -1
Deoarece max (t, - y,) = t 2 - y 2 = 6, vectorul x 2 intra in baza.. 1nmul1iind matricea, din tabela 2.32 cu vectorul [c2, a 2 ] = [0,2,4, - 1] obvinem pe Y2• Cum min (6/2,20/4) = 6/2, variabila X7 parase~te ba,za.. Dupe, o iteraiie simplex obtinem tabela 2.33 : Tabela 2.33
0
-1
Xe
1--;
1
0
8
9
0
-3
-9
-1
-1
0
-12
0
0
3
0
-2
1
0
8
j9I
0
1
3
1
0
1
-2
PROGRAMARE LINIARA
116
Facind produsul dintre prima linie a tabelei ~i matricea A, gasim Dupa introducerea lui ro1 in baza, calculam pe y1 facind produsul dintre matricea din tabela 2.33 ~i coloana [Ci, a1 ] a matricei extinse. Din baza trebuie eliminat ros, dupa care faza intii este terminata {min ~ = 0). Din tabela 2.34 care se obt;ine se ajunge la programul optim rol = o,ro2 = 20, $3 = o, $4 = 20, $5 = o, z = -40 dupa dona iteravii.
?:, -
r, = {9,0,-1,-5,0,2).
Tabela 2.34
Ya
31
1
73
-1
-18
-9
-3
--9
31
0
-185
-19
0
35 9
5 -18
0
2 -9
-91
0
-89
I:1
13
1
-
0
18
--9
1
19 9
18
13 18
Solutia 3. · Pentru rezolvarea problemei intrebuintam algoritmu.l simplex dual. ln scopul obt;inerii unei baze initiale transformam cea de-a dona restrict;ie in dona egalitat;i de sens contrar :
~i introducem variabilele de egalizare ro6 , ro7, x8 • Completam astfel tabela 2.35.
Deoarece z2 - c2 = 3> 0, baza B0 = [a6 , a7 , a8 , a5 ] nu este dual :realizabila. Vom adauga restrictia ro2 + x 9 = M; dupa introducerea lui .x2 in baza in locul lui ro8, se oh(iine o baza dual realizabila (tabela 2.36). Variabila ro7 este negativa. Elimi.nind-o din baza iji introducind in
(
~chimb pe x4 deoarece min .se obtine tabela 2.37.
1111
(,
o, gasim min (- uoa, ~j >0
-c,) =min(~' 1
_!_) = ±-. 3
~J
3
4 Variabila x 4 intra in baza in locul variabilei x 0• Tabela 2.41 se transforma cu pivotul y54 = _!_, in afara de prima linie, pentru care pivotul 4
este ~4 = ~- Capatam astfel tabela 2.42. Variabila Xo intra in baza ~i 4
gasim imediat programul optim : x 2 = x4 = 20, z = - 40. Tabela 2.42
5 -5M+20 -3 3
-4
--233
0
I 0
0
0
I
I I
0
1 4 5 -3 3 3
I
M-20
I
1*
-12
0
-5
0
0
0
-1
I
20
0
11
1
3
0
54
0
37
0
12
20
0
13
0
111 -12
0
5 -5
:M-20
-3
I I
0
0
3 10
1
4
0
0
-3
0
1
I
-4
1
0
1
3
0
I -1
3
10
0
0
1
4
0
0
-1
-4
1
I
I I
I
2.2. Sa se rezolve problema precedenta in cazul in care ultima res-
triciie se inlocuie~te cu 2x1
x2
-
+ 2x3 + _!_x4 + x5
= 0.
2
Solutia 1. Procedind ca ~i in exerciiiuI 1, se obtine o tabela simplex initiala, care difera de tabela 2.28 doar prin coloana lui x 4 • .A.stfel, in loc
de [ -2, -1,1,-3,1], In noua. ta.belil. vom a.vea, [-2, ~, 1,-3, ~} De a.semenea., In tabelele urmil.toare, coloa,na, lui w4 devine succesiv[ -5, - 1,
_!_, -:--5,1] in loc de[- 5, - .!_, 2
2
-~, 9
14 9
.!..., -5, ~] 2
2
] in loc de [- ~~' - _!_, - ~-
3 5 1]
- -" - - 4' 2' 4
18
18
9
(tabela 2.29), [37 18
14 9
, _ _!_,
] din tabela 2.39 ~i [
[5 - -3 - -5, -l] (m tabela 2.31).
in loc de -
A
4'
4'
2
4
18
11 4
,
METODE SIMPLEX lN PROGRAMABEA Ll'NIARA
121
Deoarece in aceasta ultima tabela z4 -c4>0, dar y, 4~0 pentru toti i e I, problema are optim infinit. Solufia 2. Vom rezolva problema data cu algoritmul simplex revizuit. Observam ca, pentru noile date, tabelele 2.32-2.34 nu se modifica. 1n schimb, dupa, efectuarea iterat;iei curente se obtine tabela 2.43, in care z4 - c4 >0, y, 4 ~ o, (V) i e l, deci problema are optim infinit. Tabela 2.43
-1
0
0
0
--43
-3
-1
0
0
--3
-1
0
-12
0
4
--52
1
5
- -21
5
4
0
-114
-15
4
1
-
4
Solutia 3. Aplicam algoritmul simplex-dual. Nici acum baza B0 = [a 6 , a 7, a 8 , a6 ] nu este dual realizabila, deoarece c80 B0 1 A=[0,0,0,-3]A= l-6,3,-6, - : • -3] ;at; [-2,0,6,-2,-3]
= c'.
De data aceasta restrictia artificiala este X2
+ X4 + = M. X9
In tabelele 2.35 ~i 2.36 se modifica coloana lui x4 : in loc de [ -1, -1,-3,3,1,0] voID avea [
~ , -1,-3,3, ~ ,
1] • respectiv [ - : , 1,-7,7,
: , 1]- Deoarece x7 0,
problema este insolubila,. Tabela 2.48
0
0
1
I I
0
0
0
1
0
0
0
1
0
0
0
-1
6 I -106 -5 5
I
0 2 -5 4 -5
1
-
5
0
1
I
-35 2
14 -5
-225 -845
-175
-45
1:1 Tabela 2.49
X2
X1
X3
X4
X5
Xe
X7
Xs
-121
-4
-15
-12
-1
0
0
0
0
Xe
6
2
-2
1
-1
0
1
0
0
X7
20
5
4
-3
-3
0
0
1
0
Xs
-20
1-s1
-4
3
3
0
0
0
1
Xs
4
2
5
2
1
1
0
0
0
· SoZuiia 3. Aplicam algoritmul simplex-dual. Transformind restrictia cu semnul egal ( =) in doua inegalitati ~i adaugind variabilele de egalizare x 6 , x 7, x 8 , obtinem baza initiala B 0 = (a6 , a7 , a8 , a5 ). B0 este dual reaJizabila, astfel ca nu mai trebuie introdusa nici o restricvie suplimentara. 1n tabela 2. 49 este redata tabela simplex dual iniviala. Variabila x 8 trebuie eliminata din baza, deoarece are o valoare negativa. Dupa efectuarea iterayiei corespunzatoare se obtine tabela 2.50. 1n noua tabela, variabila x5 are o valoare negativa ~i ar trebui eliminata din baza, insa toyi coeficientu din linia lui x5 sint nenegativi. Rezulta ca problema nu are programe. Solutia 4. Sa rezolvam problema data ~i cu algoritmul primal dual. Dupa ce aducem problema la forma sta.ndard §i introducem variabile
METODE SIMPLEX 1N PROGBAMAREA LINIARA
125
Tabela 2.S0 X2
Xi
4
I
0
Xe
-2
0
x.,
0
0
Xi
X5
59
4
1
-4
0
5
x,
Xa
72 17 ---5 5
Xg
Xe
x.,
0
0
0
--25
-115
-51
0
1
0
0
0
0
0
0
1
4
3
3
16
11
5
5
--185
---5 5
5
-175
0
0
0
1
0
0
Xe
4
5
1
1
·--5 2
5
artific.iale in :primele doua ecuatii, se observa ca u = [O,o, - 3] constituie. un program dual. !ntr-adevar, u A = [-6,-15,-6,-3,-3,0] ~ [ -2,. 0,6,-2,-3,0] = c. Egalitatea se realizeaza pentru j = 5,6 deci J 0 = {1,2, 3,4}. Baza iniviala va fi B0 = (a 71 a 8,a5 ). Putem forma astfel tabela, 2.51 .. 0
0
Tabela 2.51 X2
Xi
x,
X3
X5
Xe
0
0
I
x.,
Xe
0
0
1
1
-121
-4
?:1
26
3*
6
-4
-2
0
-1 I l
x.,
6
-2
2
-1
1
0
-1 I
1
0
I
0
1
0
0
I
-15
-12
-1
I I
I I
X9
20
5
4
-3
-3
0
0
X5
4
I 21
5
2
1
1
0
I J
I
Observam ca ~,~ O pentru j e J 0, astfel ca :putem trece la etapa urmatoare .. Adaugam o liriie care va coniine cantitaine u0A-c = [O,O, - 3]. A-c = = [-4,-5,-12,-1,0,0] ~i determinam · . {
~! -
0
u a, - c, }
~,
=
. { 4 15} mm 3' 6
4
= 3.
Variabila m1 se introduce in baza. Dupa un pivotaj in jurul lui y51 =Z (prima linie· se transforma cu pivotul c;1 = 3), se obiine tabela ·2.52;• 1n aceasta tabela, t;,~O pentru to'tii j, dar c;; = 20 > O. Rezulta ca :problema nu are solu'tiie.
126
PROGRAMARE LINIARA
Tabela 2.Sl X1
-683
0
l
20
0
x,\
10
0
f
I
Xs
-7
--32 i
Xa
10
0
--2
X1
2
1
-52
17
X3
X,a
52 --113 -3
-7 1
-8
1
X5
0
--72 --32 2
1
11
5
-12
-21
--2 ---2
x6
x.,
··-3
4
-34
-4
-1
1
1
-1
1
0
0
0
1
0
0
0
Xs
3
2.4. Sa se gaseasca (9]
1n conditiile
Solulie. Vom aplica algoritmul simplex (metoda celor doua faze). Dupa introducerea variabilelor artificiale x6 , x 1 , x8 la restriciia intii, a doua l}i a patra se obtine tabela 2.53. tn prima faza trebuie sa minimizam pe l: = x 6 + x7 + x 8 • Dupa introducerea lui a:1 in baza se obtine tabela 2.54. tntrucit ~,-y, ~ O pentru toti j, prima faza s-a incheiat. Observam ·tnsa ca mai exista variabile artificiale in baza (x7 ESi a:8 ). Pentru a obtine o solutie de baza a problemei initiale, ele trebuie sa fie eliminate din baza. Putem sa-1 eliroinam, de exemplu, pe x7 alegind drept pivot orice element nenul din linia sa. Daca il luam pe '/ha = - 2 drept pivot, se obtine tabela 2.55.
METODE SIMPLEX 1N PROGRAM.AREA LllNIAiRA
127
Tabela 2,63 X1
,j-'YJ
I
5
X2
l'3
Xa
Xi;
X4
X7
Xs
5
1
3
-2
0
0
0
0
1-2
1
2
-1
0
0
0
0
1
1
0
0
1
0
0
I
z;-c;
-1
XG
1
I1 I
X7
1
1
-1
0
1
0
0
1
0
X5
1
1
2
0
0
1
0
0
0
Xs
3
3,
1
2
1
0
0
0
1
X1
X2
l'3
r,
X5
Xa
0
-4
-2
-2
0
0
3
4
-1
0
1
Tabela 2.64
0
1
I I
X1
Xe
-5
0
0
2
0
0
I X1
1
1
X1
0
0
X5
0
0
1
0
-2
0
Xe
1-21
1
0
0
1
0
0
-1
1
0
-1
1
0
-1
0
1
-1
0
0
-3
0
1
-1
0
1
Dupa cum se vede in aceasta tabela, variabila x 8 nu mai poate fi eliminata din baza, deoarece toate elementele din linia sa sint nule. Aceasta inseamna ca restriciia corespunzatoare lui x8 este o consecinia a celorlalte restricin, astfel ca in continua.re va fi neglijata. La iteraiia, urmatoare se introduce in baza x3 fi!i se obtine astfel tabela 2.56, iar de aici dupa un singur pivotaj capatam programul optim X1
=
X2
=
0,
X3
=
X4
=
X5
= 1, Z= -2.
2.5. Sa se rezolve problema [1]:
+ -14
X1
X2
+ -21 013
W4 -
X4 -
Xa
8:»5 -
12a}5
-
1 2
-
Xa
+ Xe
+ 9 X 1 = 0, + 3X7 = 0, =
1,
PROGRAMARE LINIARA
128
> 0,
Xi, .•• , X 7
: a:4
min ( -
+ 20
~
x. -
+ 6a:,) ·
X.
Tabela 2.55 X1
X2
1
0
0
X1
1
1
0
Xz
0
0
1
X5
0
0
0
Xs
0
0
0
X3
X5
X9
-21
0
0
-12
0
0
0
0
1
0
0
1
X4
5
2 1
2
l~I -1
2
3
1
2
2
0
0
Tabela 2.56 X1
Xa
X3
X4
X5
1
0
-5
0
3
0
X1
1
1
-1
0
I1 I
0
X3
0
0
2
1
-1
0
X5
Ii
0
3
0
-1
1
Holu#e. Variabilele Xu a:2, a:3 constituie o baza, astfel ca se poate .scrie imediat tabela simplex iniiiaia (tabela 2.57): Variabila a:4 se introduce in baza .. Deoarece . (-£iR ) mm t1i,>O
y, 4
=
. ( -0 , -0 ) mm 1 1
= O,
(2.22)
.4 2
din baza poate fi eliminat fie x17 fie x 2 • !I eliminam, de exemplu, pe x1 ~i ob~inem astfel tabela 2.58. Urmeaza sa-1 introducem in baza pe x6• Dupa
129
Mm"ODE SJJMPLEX IN PROGRAMABIEA LENIARA
Tabela 2.51
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
I
-20
-12
-6
-8
-1
9
-12
-12
---12
3
0
0
-43
I:1
1
0
Tabela 2.58
0
I
x,
Xz
¾
x,
-3
0
0
0
4
-27
-33
-4
36
Xi
X5
x,
0
4
0
0
1
-32
Xs
0
-2
1
0
0
141
X3
1
0
0
1
0
0
3
X7
-15
2
1
0
efectuarea acestei iteraiii se introduce in baza a:6 in locul lui a:4 sau a:6 • Elimimnd din baza, de exemplu, pe a:41 iar la iteratiile urmatoare pe a:5 '}i :i:6 (in baza vor intra m7 , respectiv a:1 ), se obtine tabela 2.59. Introducerea lui a:2 in baza ne va conduce acum chiar la tabela 2.57, de la care am plecat. Tabela 2.59
0
9 -
o. 377
I
X3
x,
2
0
-47
-3
0
X1
Xz
0
X1
0
1
X7
0
0
X3
1
0
I: I 0
X5
Xe
X7
-44
--1
0
--i4
28
-21
0
0
-61
-4
--
1
1
0
0
1
0
2
1
6
• 'PROGRA~ ·: Lil-ttJ\~- · : ·
· · ,.. · . . . ·
130
1n continuare ·se va obtine tabela 2.58 etc . .Acest exemplu de problema, care cicleaz.a se datore~te. lui Beale.. Pentru evita,,rea ciclarii va trebui sa folosin;l metoda descrisa in § 2.1. Deoarece-in formula--(-2;;22) minimul nu este tJ?].ic, vom .calcula--(in tabela 2.57) pentru i e 1 0 = {1,2} rapoartele dintre el~mentele coloanelor ~1 ;~i a:4 : ,
: • {1 '!/14 = mm -1 ,
0} = 0.
. {'-!/u} mm fElo
T .
..
-
1
2
Minimum se atinge pentr:u i = 2, de~i la prima iteratie trebuie eliminata din baza variabila m2 ~i nu lei· Se obtine astfel tabela 2.60, din care, dupa, o iteratie, se gase~te-programul optim Z=
5 -
--1
-4 i
Xz
X1
0
Xj
I
I
--23
0
IJ
0
0
.i
1·
x, 0
0
0
:---2
2
0
1
-24
·O
1,
o:
0
1
~:
Xo.
X7
i
l
o:r ' ...
xii
0
2
1
0
X3
Thbela 2.60. .
-2
21 -45 -2 3
15
4
2
-1
6
11 I
0
---r--
:.::
;
··:-.,
.•
..
I••.;.; .. , ••J-
•
2.6. Sa se calculeze
max (-4a:1
-
3x2
+ 2a:3),
cu restri~tnle
+ 27~ - 5a:3~l, X1 4aJ2 + 2a:a~3, -4a:1· - 5X2 + X3s;0, 23X1_
-22a:; - 31a:~+ 7a:3s;2. ·:.;
METODE SJ114Fl,EX. !Ni -PROGRAMA.REA LINlARA
~ Soluiie. Variabilele de egalizare a:4 , a:5 , ma, (1)7 constituie o baza initiala. La prima, iteratie, a:6 este m.locuit in baza cu a:3 • Rezultatul acestei inlocuiri eEte redat in tabela 2.61. ·
Xz
X3
x,
-7
0
0
0
2
X1
0
I
-4
:r,
1
::3
2
0
1
0
:ro
9
6
0
0
1
5 2'
Qi
3
X3
0
-4
·-5
1
0
0
1=
O! ':
6
141
I
X7
2
_,.
l
0
0
0
Urmeaza sa introducem pe a:2 in baza. Deoarece
Oi 1\
1
.:: : din baza se elimina una ·dintre variab-ilele w4, .~5 sau w7 (deci 1 0={4,5,7}). Pentru a evita posibilitatca de cicla.re trebuie stabilit exact care din aceste variabile parase~te baza. 1n acest scop calculam rapoartele dintre coloanele lui a:4 ~i a:2 , a:4 fiind prima componenta a bazei initiale
~J'.o'-•
.',:.:
;
:' :
. (Yu) = min. (-12 , -06 , .-.40) = o.
mm ~~ Yo
l\finimul se a tinge pentru i = 5 ~i 7 deci 11 = {5, 7}. A doua componenta a bazei ini~iale a fost a:5 , de aceea vom calcula rapoartele dintre coloana lui a:5 ~i coloana lui a:2 pentru i e I 1 : : . : . . (Yi5.,) , 1111n. • ( ---:-1 , -. 0 ) = 0.~·· :µim: '!h2 •' . . . 6 : 4 .
: .iEI1
... . .
De data aceasta minimum este unic §'i se atinge pentru i.i= :7. Varia-
bAA p7 este.,(¥3a.~a,,re parase~t~.paza.::Dupij ptyotaj- se obiine._tabela 2.62 .
. ijj .acwn :e~ist.it d,Qi ,;ca_ndidati'' la eliminafea _din: baza:
(1)4 ~i a:5• Criteriul pentrµ eyitarea, Qi~la:ri:i, indica :P~stra~ea l:µi. a:4 .ip baza.. Dupij inca ..dona
iteraW se gi1S~~te proiral'nul o:iiliim
a:1 ·.:.:._ O,i2; •·
!,ilia :.:. . :
-·~i z ·:
!t;
182
PROGRAMARE LJNIARA
Tabela 2.62
41 -4
-132
0
0
0
0
0
0
0
0
1
0
1 -172 ·-2
0
0
0
0
0
1
l~I
--s
-27
I
-47
2
-52
-
e
1
0
0
31 -4
-54
-1
-32
1
0
0
0
--47
-14
2
7
2
2.7. Sa se rezolve problema,
utilizm.d aJgoritmul simplex dual. 8olu1ie. Algoritmul simplex dual nu este eel mai indicat pentru rezolvarea problemei, intrucit nu dispunem de o baza initiaJa, iar restriciiile smt egalitaii. Deoarece problema cere tocmai aplicarea acestui algoritm, vom cauta sa determinam o baza iniiiala procedind prin incercki. ·
:METODE SIMPLEX lN PROGRAMAMA LllNllARA
133
Coloanele a11 a2 , a3 nu pot forma o baza,, deoarece determinantul 63 17
-3 -3
0
1-24
17 42
-2 -2
17
este nul. Pentru coloanele au a 2 , a4 se obiine un determinant nenul (egal cu 2). Vom utiliza drept baza iniiiala baza B determinata de aceste trei coloane. Inversa ei este 5
-2 -1
u-1 =
2
1
3 1-2
1
0--
3 2
1nmultim Cla stinga) restriciiile problemei eu u- 1 ~i obtinem tabela, simplex dual iniiial (tabela 2.63) Tabela 2.63
57 -2 111
8 :r1
1
0
%2
:r,
12 x,
0
0
0
0
1
0
-173
0
6 Xa
2 :ro
0 %7
17 --72 --72 -2
-252
13 -92 -2
8
%1
-
1
Xa
--692
0
1
24 -17
0
--72
-52
-132
12 :r,
--732
0
0
0
1
--25
-92
1
2
I
:I
· ·=PROGID\.MA:RE LINIARA·
134
Dupa cum se: vede baza, B este' dual-realizabila, astfel ca nu mai este necesara introducerea unei restrictii artificiale. La prima iteratie se elimina din baza variabila a:4 , care este negativa, ~i se inlocuie~te cu a:7 deoarece
min{
'Jj 41
11d (de exemplu pe segmentul [x•, x••]) astfel ca xfn> - 2xin> > 0 ~i lim (xfn> - 2x~n>) = 0. Pentru acest ~ir de programc, n➔ oo
1
~~ (xf"> _
2
xt>)
=
+ oo,
deci problema data are optim infinit.
2.11. Sa se calculeze 1 min-------6x1 + 11 X3 + 8 X4
cu restrictiile
METODE SIMPLEX· lN PROGRAM.AREA L1'NIARA
139
Bolulie. Pentru problema PL
= X1,• .. . , X5 ~
x:
48,
0,
x:
m:
z•
= a:: = = O, = 16, = 0 ; max (6m1 + . t . +... • 119 x •• =m•• = 0, 2 4 +11m3 +8 x4 ), cu aceIea~1 res r1cvn, se atmge pent ru m••1 =--,
programul optim este
9
194 . t 2848 R ezuIta ca nu exista programe pentru care 3 = - - ~1 cs e - - . 0 9 1 functia obiectiv sa ia, valori negative ~i deci min - - - - - - - - (6m1 + llm3 + 8x4 ) 1 9 - max (6x1 + llx3 ) + 8x4 ) - 2848
a:••
w
•
•
2.12. Sa se rezolve problema [22] X3 ~
0,
4a;2
~
0,
a:2
~
o,
a11
-
W1 -
min ( I X1
+ W2 -
+ I - X1 + W3 + 2 I + + I - X2 + a;3 - 2 I).
2I
I X1
-
2
X2
+ X3 I +
Bolueie. Functia obiectiv nu este liniara, insa este u~or de echivalat cu urma toarea problema :
I X1 + X2
-
I X1
-
2X2
+ X3 I ~ X5,
I m1
-
2m2
+ Xa I ~ Xs,
2
I~
X4,
PROGRAMARE LINIARA
140
Restriot;iile acestei probleme se pot scrie imediat ca restrict;ii liniare. De exemplu, in loo de Ia:1 + a:2 - 2 l~a:, vom avea doua inegalitat;i : a:1 + a:2 - 2:;;a:, iji a:1 + a:2 -2~- a:4 etc. Programul optim este :vi= 2 2 · 8 · · ... a f uncv1e1 +· . ob.1ect·1vest e = -, a:2 = -, a:3 = - - , 1a,r vaIoarea, mm1ma 5 5 5 16
Z=-•
5
2.13. Sa se calculeze [22] z
= min max X
i
(c1x - 1, c2x
+ 2,
c 3 x),
ijtiind ca x e R 3 satisface restrictiile
S0Zu1ie. Problema data este echivalenta cu urmatoarea, problema
PL:
=
Programul optim este a:1
= 2, a:2 =.10,
x3
=
4,
~2, ~i a:,
= z = 16.
\
\
M.ETODE SI!MPI&X tN, PBOGRAHA:.REA LJNIA.RA
141
2.U. Sa, se rezolve- problema
Solujie. Pentru rezolvarea acestei probleme vom aplioa un algoritm compus, constind dintr-o combinat,ie intre a,lgoritmul simplex ~i algoritmul dual. 1n acest scop aduoem problema la forma standard, introduoind variabilele de egalizare a:5, a:6 , a:1 , a:8• Se obtine astfel tabela initiala (tabela 2.69) Tabela 2.69
x., 0
-1
-2
1
-3
0
0
0
0
5
2
4
1
-2
1
0
0
0
-2
-1
3
4
-1
0
1
0
0
19
6
-1
2
5
0
0
1
0
-5
4
0
l-61
-1
0
0
0
1
Baza initiala nu este admisibila {iji nici dual admisibila), deci pentru a aplica algoritmul simplex ar trebui sa introducem variabilele artificiale a:9 ~i a:10 in ecuatia a- doua ~i a patra. Coloanele acestor variabile ar fi egale ~i de semn contrar cu cele ale variabilelor m6, respectiv m8 • Aceasta egalitate se va mentine ~i la iteratiile urmatoare, caci tabela asociata unei iteratu se obtine, in fond, inmultind inversa bazei u- 1 , cu matricea problemei A. Rezulta ca, din moment ce se cunosc coloanele y6 ~i y 8 corespunzatoare variabilelor de egalizare m6 ~i a:8 , se cunosc ~i coloanele corespunzatoare variabilelor artificiale: y9 = -y6 , y10 = -y 8 • De aceea variabilele artificiale nici nu mai trebuie introduse in baza. Practic, omiterea variabilelor artificiale se traduce prin modificarea regulii de eliminare din bad, {2.10) in felul urmator:
•
1'42
• C
Se determina l 1 ~i l 2 din condit;iile -n
~= Y1,k
·:r .....
PROG:RAMARE 'LIN!A:RA ..
min :,:xp~o.vik >O
.·
.. . {i~} Yik
'
~i a:poi l din condit,~a
-a}
a~,,
{2.23)
-.•·
'!/rsk
Variabila x, se elimina din baziL
!n exemplul nostru, va.riabila a-3 se introduce in ba,za-, dcc.i k = 3.
Variabila care parase~te baza se determina calculind min {xr/Yi1:} pentru 0 ~i Y,1c > 0 sau xP < 0 ~i Y,1: < 0 :
mP >
Variabila x 8 parasc~te baza. La iterat;ia urmatoare m8 se reintroduce 1n h,az~ i~ Iocul va,riabilei m5 ~i se obt,ine astfel tabela 2. 70. Dupa cum rezulta Tabela 2.70 X1
'
Xa
x,
X5
X5
X7
0
0
0 1
Xs
-6
0
-1
-1
16
24
0
-13
6
0
0
-9
~13
0
7
1-41
1
0
2
-9
0
9
-2
0
1
:o
2
4
1
-2
1
1
0
0
-5
-3
X'6
25 -22
:rl7
9
X3
5
is
X2
0
din tabela s-a obt,inut o baza dual admisibila, iar in continua.re se poate
H,plica algoritmul simplex dual. Progra.mul optim se obtine dupa doua •
4-••
1tera"II: a:1
=
a:2
= O,
a:3
3 = -,
10
m4
= 16 -, 5
z
= 93 -. 10
2.15. Am rezolvat problema precedenta plecind de la o baza care nu era admisibila ~i nici dual.admisibila. Am aplicat mai intii algoritmul simplex cu o u~oara modificare (formulele (2.23)) pina la obt,inerea unei baze dual admisibile. Dupa aceea _am continuat cu algoritmul simplex dual pina la obt,inerea programului optim.
\
"""'
~\
"-M~DE SIMPLEX tN PROGRAMAREA LINIARA
"',
!1:4.3
'--...._
· Sa se rezolve ace~~i .problema aplicind · algoritmul .simplex dual (cu modificarile necesare) ·p1na la obtinerea unei baze admisibile ~i .apo:i continuind cu algoritmul simplex. Cum variaza valoarea functiei obieotiv !, : . Solueie. Modificarile privesc criteriul de intrare in baza ; · functia obiectiv mai intii va cre~te, iar .,apoi va scadea pina la atingerea :valorii
.
.
opt rme: z
93
'-
= -·
"'--
10
.
2. 18. Sa se a.rate' ca un vector SOOS . din baza "intr~o iteratie a algoritmului simplex' ri1f poate intra in baza la iteratia urmatoare. ·. _ _ Solulie. Se v~ observa semnul lui z, - c,. · 2.17. Un vector care a intrat in baza in cursu.1.-aplicarii algori'.t"mului ~implex poate f_i eliminat din baza, la iteratia urmatoaref. !n_ ce caz raspunsu.1 este afirrriativ ,. . . . . Solulie. Raspunsul este afirmativ atunci cind variabila introd~~it in baza nu asigura cea mai mare variatie a f~ctiei obiectiv. 2.18. Care este raspunsul la cele doua probleme ·anterioare in cazul aplicarii algoritmului siinplex duaU. . . . _ · _. - .. _ · So_zueie. Rasplll\S aFrmativ la problema 2.16_ ~i negativ Ia 2.:1•7_•. :
se
2.19. Sa arate ca, daca multimea· pi;ogramelor optime ale unei probleme PL este marginita ~i nevida, atunci orice program· optim este o combinatie convexa a programelor optime de baza~ . Solulie. Se poate ·folosi faptul ca multiinea programefor optime constituie un poliedru, deoarece ~stc marginita iji se obtine ca o intersectie a hiperplanelor ~a,,x1 = b; (i = 1, ... , m) ~i c'x = z,
2.20. Sa se arate ca orice program de baza poate fi un program optim pentru un vector c ales in mod convenabil. Cite componente ale vectorului c pot fi alese in mod arbitrar Y _ . Solulie. Pot fi fixate in mod arbitrar m componente ale lui c·. Oelelalte n - m vor fi determinate din_ conditiile z, - o, ~ O (pentru probleme de minim) sau z, - c, ~ 0 (pentru probleme de maxim). . . 2.21. Fiind data problema ma,x {c'x I Ax = b, x ~ O}, sa se arate ca daca matricea A se · poate scrie sub forma ·
A.=(;~: ... ;J, O O •• . At
atunci problema data se -poate descompunea in 'k subprobleme. Solufie. Se va, partiiiona in mod corespunzator ~i vectorii 11 ~i c. •
•
•
•
I
PROGRAMARE LINIARA
144
2.22. Sa se arate ca duala unci probleme duale este problema primala. Solutie. Se va urmari coresponden~a, dintre perechile de probleme duale. De exemplu, unei variabile nenegative din problema primala (P) ii corespunde o restrictie concordanta in problema duala (D). Aoestei restrictii ii corespunde in duala lui (D) o variabila nenegativa etc. 2.23. Daca problema {P') se obtine din problema (P) printr-un ~ir de transformari echivalente (§ 2.1), atunci duala (D') a lui (P') se obtine din duala (D) a p1·oblemei (P) de asemenea printr-un ~ir de transformari echivalente. Bolulie. Se va observa ca prin dualitate fiecarei transformari echivalente ii corespunde o transforma1·e echivalenta. De exemplu, transformarii unei egalitaii in doua inegalitat,i de sens contrar corespunde prin dualitate scrierii unei variabile oarecare ca diferent;a a dona variabile nenegative etc. 2.24. Sa se transpuna teoremele de dualitate pentru probleme avind forma canonica. Sa se arate in prealabil ca duala uneiprobleme sub forma canonica este tot o problema sub forma canonica. BoluJie. Pentru transpunerea teoremelor de dualitate se poate aduce problem.a, de la forma canonica la forma standard, iar apoi duala problemei sub forma standard se va aduce la forma canonici. Se va observa ca teoremele de dualitate nu se modifica. 2.25. Sa se demonstreze ca, daca programul optim. al unei probleme este degenerat, iar programul optim al problemei duale nu este degenerat, atunci problema duala admite programe multiple. Bolu#e. Se poate presupnne ca problema primala are forma standard. Se va observa ca, m condi~iile date, exista mai multe baze optime care conduc fa programe duale diferite. 2.26. Sa se scrie duala problemei
2x1
-
X1 2X1
Xu
+ 3x3 - m4 = 5, X2 + 2a;4 ~ 3,
4x2
+ a: + 3a; 3
4
~
1,
x2 , x4 2 O, x3 oarecare.
Bolutie. Daca notam cu Ui, u 2 ~i u 3 variabilele duale, problema duala este, cf. § 2.3,
"ME'IX>I>E SIMPLEX lN PROGRAMAREA L1NlARA
Ui oarecare, 'u2 ~ O,
145-
u8 ~ O,
2.27. Sa se scrie dualele urmatoarelor probleme PL:
2.28. Sa se scrie duala problemei PL cu variabile marginite: n
~ i=l
a,,
(I),
=
b0 i
=
1, . .. ,
1n,
2.29. Sa se arate ca urmatoarele doua probleme PL fo1·meaza u111 cuplu de p1·obleme duale: n
~ i-1 10 - o. 877
(1)1
= 1,
°' •··,. · · : ·, '' PaOGRA"MARE LINIARA
146
m
~ ai, , ... 1
a;,2
o, max M.
min N, m
Sa se arate ca M .
'
u.~M,
~~
ai, u, x, ~ N ~i
ca
max M
= ~in N_.
i-1
·2.30. Sa se rezolve probleina PL
Solu#&. Pentru obtinerea programului optim nu vom rezolva problema data, ci duala ei. Acest lucru este avantajos, deoarece duala are numai doua restrictii, pe cind problema primala arc cinci restrictfi ~i ~a.-pte:variabile {incluzind variabilele de egalizare). Dupa citeva transformari, problema duala devine
- 18
ff1
+ O,lu2 +
- 16
'U1
+ o,2u2 + 30u3 -
u3
-
14u4
u,
+ ·
u5
~
1,
+ o',05tt5 ~ 3,
.
..
Tabela simplex finala {cu patru zeci.maJ.e) este redata in tabela 2. 71. ln dreptul variabilelor :de egalizare u6 ~i u1 gasim programul optim al problemei ini~iale cu semn schiinbat: a;1 = 5,9265, .·a:11 = 1,4695 {semnul
METODE SIMPLEX. J:N :P'.ROGRA'MA:.REA. LJNIARA
:,.': ,.· ·;. :_ "·1·:.
. .. ;
'••
~
'
,•
ul'l
0,9015:
-
I-
Tabela 2:'11 U3
u,
u·s
-3,1135
0
-84,3407
0
0,4374
0,0065
1
-
0,0100
0
0,0017
-0,0334
17,5626
0,0935
0
-13,9900;
1
-1,0017
0,0334
10,3339 .. , -126,7454 0,0985;
.
u2
U1
U3
f4-7
Us·
U7
-5,9265 -1,4691
trebuie schimat deoarece in tabela, initiala ~6 -~i •u 7 corespund opusei unei matrice-unitat~). Valoarea funct;ici obiectiv este z = 10,3339. 2.31. Tab¢la 2. 72 contine solut;ia optim~ a unci prqbleme de maxim .. Sa se gaseasca o alta solut;ie optima (de baza) : a acestei pro bleme ~i sa se determine programul optim pentru care x 6 = 6. Tabela 2.1a-
84
I
11
0
0
·O
0
0
1
7
-1
1
O·
1
1
0
0
1
3
1
-2
0
0
0
-1
3
5
0
0
-1
0
0
1
-1
-1
8
2
0
2
0
1
0
2
4
12 6
'
Solutie. x1 = m1 = x8 = O, X 2 =8, x3 =1, a;4 = 11, a;5 = x 6 = 6. Se va inlocui-in baza x5 cu m3 ~i se va cauta o combinatie convexa a celor doua progr~me optime.
2.32. Pentru o problema PL de minim, conditia z deatina necesara Y, Sa se considere problema 3X1
+ 2x
2 -
-5X1 -
3a;2
-3X1 -
X2
Xi,
a;2 ,
mm (m1 -
2a; 3 ~ 1,
+ 27 ma ~ 1, + 23 X3 ~ 2,
X3 ~
a,, -
0,
~ ms)-
c,~o cste intot-
148
PROGRAMARE LINIARA
Solulie. tn cazul unor programe degenerate, condi~ia nu este necesara. Pentru exemplul de mai sus, dupa o iteratie se obtine tabela 2. 73, Tabela 2.'18
-8
I
X1
Xa
x,
2
0
0
-2
0
-3
1
0
3 2
0
2
0 1
1
1
-1
1
0
2
Xa
-112
Xi;
0
I1 I
0
X3
5
-3
0
3
2
x,
Xi;
x,
care s-ar pirea ca nu contine soluvia optima, deoarece Z1 - 01 = 2 > 0. tnsa, dupa, introducerea lui a:1 in baza, se constata ca '}i programul din tabela 2. 73 este optim, intrucit confera functiei obiectiv aceea~i valoare. 2.33. Sa se rezolve urmatoarele )robleme PL, utilizind metoda. grafica: a)
s;; 9'
+ 5a:2 ~ 35 ' 3a:1 + aJ2 6 ,
. · :2.48. [8]. ,.
··,
3 :.V1
·,.
i2~ 2, m1~ O;
min (10 :.v1
·
+ 30 :.V2) •
·
· Sol~#~-: Se. poate utiliza_ metoda gr~fica : x1 =
2 . 200 3 , = 2, z = 7 . X2
Sa se rezolye problemele PL 2.49.
. . X1
X1
.2
0~
X1 ~
+
~
fl:2: -
+ 2 X2 +
X1 -
X2- -
2; - 1~ ••
x, ~ 6 , :.V3
< ;J..2 ,
X3
> 2 :,
X2 ~
1; 2~
f.Vs ~
I
5,
•
a;~+ x 2 + 4 a:3 ) . transformarile 'Ui = Xu u 2 = td2 + 1,1 max (3
Solttfie. ' Se fac u3 = x3 - 2 EJi se aplica aJgoritmul lui Wagner. Valoarea maxima a functiei obiectiv este z = 17. ; · ·· ·· ; ' : 2.50.
X1 +.a:2 -:- f.Vs
' . ~.
. : . . ~-
fl:1
+ X2 -
X1 -
X2 -
+ $4 ~- 12,.
a;3 -
~s
X4
2· 2 ,
+ fl:4 ~
i.'
3,
X4 . ~ _ 0;,· (
'
min (a:1
-
m2
+ 2 x3 + x4) .
Solutie. Pentru ca toate variabilele· sa fie nenegative· se· fac substitut,iile m1 = m5 - m6 , . m2 = x7 - x8 , . Xa- =. x9 ---:- a:i_ 0 ; m5 , ~ 6 , ••• , x10 2 0. Optimul este z = .:. .:. . oo • · · · .
'
2.51. [8]. 0 ma~ina care lucreaza 25 de ore pe saptamma produce trei articole: Pi, P 2 iji P 3 • Beneficiul intreprinderii este 4 lei pe bucata pentru Pu 12 lei bucata pentru P 2 EJi 3 lei pe bucata pentru P 3 • 1ntr~o ori ma~ina poate realiza 50 !bucati din articolul P 1 ., 25 din P 2 ~i 75 din P 3 • Cererea sapta.minala nu depa~~te .1 000 de bucati pentru articolul P 1 ,
160
PROGRAMARE LINIARA
-500 pentru P 2 ~i 1 500 pentru P 3 • Cum trebuie repartizata product,1a -celor trei articole pentru ca intreprinderea sa-~i asigure un beneficiu maxim Y. Solufie. Beneficiul maxim este de 11 500 de lei.
2.52. [22 ]. 1n compunerea unui anumit produs intra doua repere -diferite, ~i anume doua buci~i din primul reper ~i o bucata din al doilea. Aceste repere pot fi executate pe cinci tipuri de ma~ini, conform tabelei 2. 79. 1n aceasta tabela sint trecute ,i numarul maijinilor disponibile din .fiecare tip. Se cere sa se determine cite ma~ini trebuie sa lucreze reperul 1 ~i cite reperul 2 pentru ca numarul produselor sa fie maxim. Tabela 2.79 Capacitatea mai,inii
Numar de
Tipul de mQJini
mafini disponibile
(buc./zi) Reper 1
I
Reper 2
1
5
100
15
2
3
400
200
3
40
20
2,5
4
9
200
50
5
2
600
250
= 1, 2, ... , 5 ; numarul ma~inilor de tip i care vor realiza repere de tip j, se ohiine urmatorul model: Solujie. Daca notam cu z numarul produselor ~i cu a:i, (i
j
= 1, 2)
max z, (100 :Vu
+ 400 f»21 + 20a: 31 + 200 X41 + 600 X51) 2
+ 200 + 2,5 + 50 + 250 Xu + X12 = 5 X21 + X22 = 3 X31 + X3i =
15 X12
:X:22
:X:32
7
z, x,, 2
~z
W42
X52 ,
7
0.
Valoarea maxima a lui z este 1250 de produse. Sa se rezolve urmatoarele probleme :
>
' Z,
40 7
161
METODE SIMPLEX IN PROGRAMARAE LINIAR!
2.53. [8].
3 lV1
-
lV1, ••• ,
8 olutie. ~
lV5
= =
3, -12,
x6 2 0 ,
2861
= -- . 9
+ X2 + X3 + f.V4 ~ 15 , 7 lV1 + 5 lV2 + 3 f.V3 + 2 lV4 ~ 1 , 3 X1 + 5 X2 + 10 X3 + 15 X4 ~ 1 ,
2.54. [8].
lV1
2.55.
+ 2 X5 2 - 2 , + 4 f.V4 + 2 X5 ~ 10 , -
lV1
=
Solujie,. Variabila a:3 va intra in baza init;iala. Programul optim este 5, X2 = X 3 = '1:4 == X5 = 0 ~
2.56. [19].
6
c. 877
2
X1 -
2 X1 11
X4
-
1 3
-
X2
+
X2 -
lV3 -
X3
+
X4
+
lV5
lV4
+ -21
lV5
+ 2 % = 4, =
3,
.
162
PROGRAMARE LINIARA
a,1 '
min
• • • ' a,e (a,1
~0'
+ 2 a,2 + a,4 + a,6 -
5 a,e)
•
=
4,
Solufie. Problema nu are optim finit.
2.57. [10].
+ X3 + a,4 =1' 2 X1 + X2 + 2 a:3 + X5 = 7 , X1 -
X2
a,1, • • •, X5
max (5 X1 SoluJie.
-
2 0,
X2
+ X3 -
10 X4
-
7 X5).
28 z=-. 3
2.58. [8]. . 0,01 0,02 0,02
0,03
+ a,2 + X3) + 0,03 {X4 + X5 + Xs) ~ 850, X1 + 0,05 a,4 ~ 700, X1 + 0,05 X5 ~ 100, X1 + 0,08 a:6 ~ 900,
(X1
X1, ... , Xe
max 0,40 X1
2 0,
+ 0,28 "'2 + 0,32 X3 + o,72 X4 + 0,64 X5 + 0,60 % •
Solufie. Se recomanda schimbarea scarii variabilelor. Programul
optim este z
=
25 000.
= 35 000,
a,1
2.59. [14].
= 5 000,
x3 =
30 000,
a,4 =
+ 3 aJ3 - 3:4 + 2 X5 ~ 10, 2 X2 + 3 aJ4 - X5 ~ 6 , 3 a,1 + 4 3:2 + 3:3 + 2 X4 + a,5 ~ 25 , X1 -
a)i ,
X2
••• , X0 ~
max (x1 Solujie. z
a,2
= 15.
+ 2 x2 -
0,
x3
+ 4 a,
4 -
3 a:5 ).
a:6
=Xe=
O,
163
METODE SlMPLEX: lN PROGRAMA.REA LL"'llAR!
+ 2 a:a ~ 41 , 2 a:1 + 3 a:2 + :Va ~ 1 , X1 + 3 X2 - 4 :Vs ~ 18 ,
2.60.
5 a:1
-
-
a:2
a:1 ~
O, 0 ~
min (4 a:1 - 9 a:2
SoluJie. Programul optim· este 2.61. [17].
a:2 ~
+ a:a) • a:1
= ~, 5
=
4,
a:3
= 2. .
X1
2 a:2
-
a:3 -
4 a:4
aJi' •.. ' aJ5 ~ 0 ' min (a:1 + a:2 + :Vs + a:4
=-
a:2
+ 3 :V2 + aJs + :V5 = 5' a:1 a:2 + 3 ms + 2 a:, + 2 a:5 = 15 '
-
-
SoluJie. z
4, 0 ~ a:8 ~ 2 ,
-
~
a:5 )
0 ,·
•
5.
+ 2 a:2 + a:3 = 2' 3 a:1 + a:2 + a:, = 3 '
2.62.
a:1
4
:V1
+ 3 X2 + :Vs + X4 = 5 ,
a:1 ' ••• '
max 2 a:1
a:, ~ 0 '
+ 3 a:2 •
3
X2
2.63.
a:1 -
3
aJ1 -
= -5 •
+ 6 a:s + 10 a:4 2 :V2 + 13 aJ3 + 26 aJ4 a:2
6 a:5 11 :V5
-
+ 5 a:7 = 3, 15 Xs + 13-a, = 10, 8 a:6
7
+ 15 aJ3 + 33 aJ4 - 11 aJ0 - 16 Xa + 17 a:7 = 14, a:1 + 2 a:2 - 11 a:3 a:4 + 12 a:5 + 18 a:6 + a:7 = 5 ' :V1 + :V2 7 :V3 + 9 :V5 + 9 a:6 - 4 a:7 = 5 ,
4 aJ1
X1 '
-
2 aJ2
••• '
X-z
~0'
max (a:1 + a:2 - a:3 + 3 w4 + 2 a:6). Solulie. Programul optim este a:1 = 4, a:2
=
1.
PROGRAMARE LINIARA
164
BIBLIOGRAFIE 1. BEALE, E.M.L.,, Cycling in the dual simplex algorithm, Nav. Res. Log. Qu., 2, 4 (1955). 2. BERGTHALLER, C., On the duality theorem of linear programming. Rev. Roum Math. Pures et Appl, 12, S (1957). 3. CHARNES, Optimality and degeneracy in linear programming, Econometrica, 20, 2 (1952). 4. DANZIG, G.B., Maximization of a linear function of variables subject to linear inequalities. Cap. 21 1n [15]. 5. DANZIG, G.B., Composite simplex-duql simplex algorithm, I, RM-1274, RAND-Corp. (1954). 6. DANTZIG, G.B., Recent Advances in Linear Programming, Man. Sci., 2, 2 (1956). 7. DANTZIG, G.B., Linear Programming and Extension, Princeton Univ. Press, New York, 1963. 8. DESBAZBILLE, G., Exercices et probMmes de recherche op4rationelle. Dunod, Paris, 1964. 9, DRAG0111nmscu, M., MALITA, M. Programare patratict1. Edit. i;tiinpficii, Bucurei,ti, 1968. 10. GASS, S.I., Linear programming: methods and application, McGraw-Hill, New York, 1958. 11. GRAVES, R.L., WoLFE, Ph. (editori), Recent advances in mathematical programming, Mc Graw-Hill, New York, 1963. 12. HADLEY, G., Linear Programming, Addison-Wesley Puhl. Co., New York, 1959. 13. IOo.nHH, A, B., roJimT.ERH E. 8aiJa'4U u MemoaN J&rmeimoeo npoepaMMUp08aHWJ. Ha~. CoeeTcHoe Pa~o, Momma, 1961. 14. IOo,nHH, ;n;. B., ronmTE:0'.H, E. r.; Jluneunoe npoepaMMuposanue. Haµ,. Cl)ua.-MaT., MocHBa, 1963. 15. KooPMANs, T.C. (editor), Activity analysis of production and allocation. J. Willey, New York, 1951. 16. LEMKE, C.E., The dual method of solving the linear programming problem. Nav. Res. Log. Qu., 1, l (1954). 17. MIHoc, Gh., NlDEJDE, I., Programare matemalicd. Vol. I. Edit. i;tiintifica, Bucurei;ti, 1966. 18. ORCHARD-HAYS, W., A composite simple algorithm. II. RM-1275, RAND-Co~p. (1954). 19. SIMONNARD, M., Programation lln4aire, Dunod, Paris, 1962. 20. ViwDA, S., Mathematical Programming, Addison-Wesley, Puhl. Co., Londra, 1961. 21. WAGNER, H. M., The dual simplex algorithm for bounded variables, Nav. Res. Log. Qu .. 5, 3 (1958). 22. 3YXOBli'lJRHR, H., AB'AEEBA, JI. H., J]UH,ei1,Hoe u 8blny1Moe npoepa.AMiuposanue. Haµ;. ,,Hay-Ha", Momma, 1964.
r. ;
c.
§ 3. Reoptlmlzare 11 programare paramefrica
Sa. admitem ca, dupa, ce s-a rezolvat o problema de programare liniara, se modifica unele din datele problemei. Se pune intrebarea daca solutia de care dispunem este optima iji pentru problema modificata, iji, in caz contrar, cum se poate rezolva noua proble~a,, u~ilizind solutia pro~ blemei ini'tiiale. Aceste preocupari constituie -tema. ,,reoptimizarii" sau ,,postoptimizarii" in programarea liniara. Obiectul programa,rii parametrice este studiul variatiei solutiei optime in problemele PL in care unii dintre coeficientii modelului depind de un1µ sau de mai multi parametri. tn acest paragraf se trateaza reoptimizarea iji pa.rametrizarea peD;tru cazurile in care se modifica sau sint func~ liniare de un parametru una dintre cantitatile: - vectorul b ; - vectorul e ; - un vector-colo.ana, al matricii A ; - un vector-linie al matricii A. tn problemele de·reoptimizare se vor mai trata cazurile de modificare a numarului restriciiilor ~i a numarului variabilelor problemei~ 3.1. CONSIDERATII GENERALE
Fie data o problema, de programare liniara in forma standard Ax =b,
(3.1)
x~O, min (max) ex.
Daca Beste o baza, formata, din veotorii matricei A, attmoi x8
= B- 1b
(3.2)
este o solutie admisibila (reaJizabila) daoi vectorul B- 1b are toate componentele nenegative ; x8 este o solutie dual realizabila daca, toate cantita,'(iile
z, - o, = e8 B- 1 a, - o,.
(3.3)
shat negative sau nule in problemele de minim (iji pozitive sau nule in problemele de maxim).
166
PROGRAMARE LINIARA
Din formulele (3.2) iji (3.3) rezulta urmatoarele : a) modificarea vectorului b mqdifica solutia i 8 asociata unei baze B incit i 8 poate deveni o solut;ie neadmisibila cind se modifica b. Oriteriile de optimalitate (3.3) sint invariante in raport cub, incit i 8 ramine o solutie dual realizabila cind se modifica vectorul b ; b) solutia i 8 asociata unei baze Beste invarianta in raport cu vectorul c, dar criteriile de optimalitate a solutiei se modifica o data cu c. Deducem ca pentru modificari ale vectorului c o solutie realizabila de ba.za i 8 iiji pastreaza aceasta proprietate, dar poate sit nu mai fie optima. 3.2. VARIATIA VECTORULUI b
Sa admitem ca i 8 este solutia optima a problemei (3.1). Dupar ce dispunem de aceasta solutie se cere inlocuirea vectorului b prin b + 8b. Cunoscind baza B, se calculeaza vectorul x~
=
u- 1 (b
+ ab) = B- 11, + B-1 ab =
x8
+ u- 1 ab.
(3.4)
Se pot ivi urmatoarele situatii : a) vectorul i}s are toate componentele nenegative. In acest caz, ii ~i:tte solutia optima a problemei modificate, deoarece, aija cums-a aratat mai sus, criteriile de optimalitate a solutiei nu depind de vectorul b ; b) vectorul ~ are componente negative. In acest caz, ~ este o soluyie dual realizabila pentru problema modificata. Solutia optima se calculeaza folosind algoritmul simplex dual. Sa admitem acum ca vectorul b este funct;ie liniara de un parametru A, deci (3.5)
iji ca se cunoaijte solutia optima u, problemei pentru o valoare particulara A = Ao a parametrului. Se observa cu uijurinta ca totdeauna se poate considera A0 = 0. Fie B baza asociata solut;iei optime a problemei particulare, I mult;imea indicilor vectorilor matricei A care apartin bazei B ~i J complementara acestei mult;imi fat;a de mult;imea N a indicilor vectorilor matricei A. tn problem.a generala avem x~.>
=
+ A b.
(3.6)
Folosind notatia -co, _ u-1 b101 ,• Xa -
x-111 _ R
-
B-1 b ,
(3.7)
se poate scrie
(3.8)
REOPTIMIZARE
ex
167
PROGRAMARE PARAMETRICA
Solutia (3.8) este o solutie optima pentru vaJorile parametrului ). pentru care x8 are toate componentele nenegative, deci daca sint satisfacute conditiile (3.9)
Deoarece am ad.Inis ca, B este baza optima, pentru >. = o, inseamna ca xf0 > sint nenegativi pentru toti i e I. Condi(;iile (3.9) sint satisfacute pentru vaJorile parametrului >. e_ [~, i], unde
I _I "'=
max [ - x~o> ] daca i! 1> >0 pentru eel putin un s
e I,
(3.10)
x11> -
daca x~1>< O pentru toti s
00
min [- ::::] daca x!1>
A=
e
I;
< O pentru eel putin un s e I,
(3.11)
,
+ 00
daca x!1 > >pentru toti s e I. · Sa, presupunem ca,.. e (-00, +oo) iji ca eel putin una dintre marginile intervalului [~, i] de optimaJitate [a solutiei asociate bazei Beste finita, de exemplu i. Pen:tru a determina solutia optima, a, problemei pentru A > 3: se observa ca, pentru 11. = ~ se anuleaza,: a) fie componenta x, a solutiei daca, minimul dat de (3.10) este unic XO 1:ti '· ., egal cu - -(1)'
x,
x, e 11 cl daca, m.inimul din (3.10) se obtine pentru componentele x,, s e 11 cI ale vectorului iB. Pentru A = f +e, e >0, arbitrar de mic, eel pu'(;in o componenta. a solutiei i 8 ~ + e) devine negativa., dar solutia ra.mine dual realizabili;. Schimbarea bazei se face folosind algoritmul simplex-dual. Se poate intimpla, ca patru 11. > 3: problema sa, nu adJnita, solutie. Daca exista insa solutie optima, atunci se determina, un nou interval [f, i] de variatie a parametrului "-, unde noua solutie este optima. Marginile intervalelor de optimalitate a unei solutii (de exemplu ~, I, ~, ... ) se numesc valori critice· ale parametrului. VaJorile critice formeaza un ijir crescator. Ereemple. Pentru problema b) fie toate componentele
y,- c}0 >+ 11. (c~1 >y1
(c:> -
+ 11. eg>)y, -
c~11 )
= z}0 >-
(e< 0> + 11. c~1>), =
e}01
+ 11.
(z~1> -
ej1 1)
sau, folosind notat;iile f.l t'IJ -
zll) I
eU> I
,
avem
z1
-
c1 =
rt. 1
+ 11. ~r
(3.14)
Fie J mult;imea indicilor vectorilor matricei A care nu aparfin bazei B. Se pot considera urma,toarele cazuri pentru problema (3.13): l} O pentru tot;i j e J. Atunci Beste o baza, optima pentru 11.=0
a.,>
~i pentru valorile parametrului 11. care satisfac sistemul de inegalitaiti rt.,
+ A ~, > o, j E J;
(3.15)
2) existai «. < 0 pentru o submultime ·de indici s e J 1 c J f)i toate componentele i e I sint nenegative. Atunci problema nu are optim _finit pentru 11. = o. Daca sistemul de inegalitat;i
y,.,
rt.•
+ rt.~• > 0,
8 E
Ji,
($.16)
nu este compatibil sau daca, un ~. = O, problema nu are optim finit pentru nici o valoare a parametrului 11.. Daca, sistemul (3.16) este compatibil, fie 11.0 cea mai mica valoare a parametrului care satisface sistemul. Problema nu are optim finit pentru A< A0 ~i B este baza, optima, pentru 11. = i.0 •
173
REOPTIMIZARE e1 PROGRA.MARE PARAMETRICA
Sa, admitem ca B este o baza optima, pentru A= O, deci ca «,>O, y el. Din (3.15) rezulta ca, Beste baza optima, pentru toate valorile parametrului "' e [~, ~ ], unde
A=
P1 > o
-
A=
.!!i]
l ~~[ ; : ] l max [-
(3.17)
~.1
oo
+ oo
daca ~,
~
0 pentru tot;i j
e J,
(3.18) daca ~, > O pentru tot;i j e J.
_ Valorile ~ ~i X sint valori critice ale parametru.lui "'· Daca intervalul nu acopera intreg intervalul de vari~'(iie a parametrului ~ va trebui caut~ta baza optima pentru "' O arbitrar de mic, ace~sta diferenta devine negativa. B nu mai este o baza optima pentru "' = "A+ e:. Se pot continua iteratiile daca, vectorul y1: = u-1a. are eel pu~n o componenta pozitiva iji se obt;ine o noua baza, optima pentru valorile parametrului A e [X, ~]. Folosind acela~i procedeu, se determina o succesiune de baze optime ~i de valori critice. Acestea, formeaza un ~ir strict crescator care imparte mul'(iim.ea valorilor parametrului in submul'(iimi carora le corespunde o baza optima, in timp ce valorilor critice Ii se asociaza, doua baze optime. Daca min se ob'(iine pentru o submul'(iime J 1 de indici din J,
[-.!!:t.]
P1 A difera in general prin mai multi vectori.
PROGRAMARE LINIARA
174
ExempZuZ 1. Sa, se rezolve problema
+ 3y -
ma,x (- x
2z),
cu condiiiile
x - 2y
+
z > 3,
+ 'JJ - Z = 1, x + y + 2 z < B, X > 0, 'JI> 0, Z > 0,
2
X
a,poi sa se reoptimizeze soiuiia, pentru c (-2, 3, -1). Daca dorim sa utilizam tehnica reoptimizarii pentru modifictuea. vectorului b, se scrie duala problemei propuse:
+ 7 v + B w),
min (3 u
su condiiiile
u+2v+ w>-l, -2u + v + w> 3, 'U -
+ 2 W > -2,
V
u, < O, v oarecare, w > 0.
Pentru a putea, folosi metoda simplex in rezolvarea, acestei probleme, vom face schimbarile de variabile
Se ajunge a,stfel la modelul min (- 3 'U1
+ 7 V1 -
7 V2
+ 8 w + M 112),
cu condiiiile 'U1 -
2 'U1
+
2 V1
+ 2 V2 -
+
Vi -
V2
Vi -
V2 -
'U1 'YJ1
> o, > o,
Vi "IJ2
(11 2 este variabila artificiala).
W
+ 1J1 +
W
+
2W
> o, > o,
-
"IJ2
'V2 1}3
>0 >0
w 1}4
1}3
> o, >0
'YJ4
=
1,
=
3,
= 2,
175
REOPTIMIZARE ~I PROGRAMARE PABAMETRICA
Solutia optima se obtine dupa doua itera1iii ,i este redata in tabela 3.4. Tabela 3.4
~__::__ ca I +
0
7)3
z, -
7
,
8 21
-7
0
M
0
0
83
711
7)2
7)3
7)4,
-15 1
--15 -1 -5
--145
14 -5
0
0
-51 1
--53
_!__M 0
--51
3
5
22 17 --5 5
0
Solutia problemei primale este ro
-25
-15 --52
-35 --52
1-
-25
C,
8
I
0 22
1
5
,
8 21
81
-7 -51
I
81
7
,
b
!Baza
-3
-3
5
= 17, 'JI=.!.., z = o, iar variabila de
5 5 egalizare asociata ultimei inegalitati din sistemul de restrictii este egala 22 cu . Dupa modificarea vectorului c, solut;ia, problemei duale in baza 5
(a;, a~1, '1J8) este
(!,5 - .!.,5 - .!), deci nu este admisibila. 5
Folosind algoritmul simplex-dual, se obtine solut;ia u1 = w
11 , v1 = !, 7 7
= .!. . Ce solut;ie are problema primalai
7 B(IJempl'lil 2. Produc'(iia, pieselor .A, B, 0 se planifica in scopul obtinerii
beneficiului maxim, tin.ind seama de datele din tabela 3.5. Tabela
Plese
I
I maximl I
Cerere
minimi
.d.
20
B C
0 70
Ore disponlbile
200 100 180
Ore necesare per unitate de produs S:2 S:3 S:4
S:1
I
I
I
0,10
0,06
0 ·,
3
z~"o7 -c~"o7 =--11+150, 200 100
1
= -11 - _ 15 > 0, 40 20
-deci nici aceasta nu este optima pentru problema modificata; 8 2 m.locu. "m b azi'.11 x +· opt·rma.. ..m care a: = -475 , a: = 575 ·1e~te pe 8 3 ~1• se ob+· vme soI uvia - , 2 1 3 9 'incit beneficiul este maxim daca se planifica productia de piese .A la nivelul 5 · B Ia mV'e · 1u1 57 . 0 Ia mve . 1uI cereru .. mi. ·20 + -4375 , de p1ese - ijl. d e p1ese 9 .nime de 70 de unitati. Ba:emplul 3. Vom relua problema din exemplul anterior, unde bene·ficiile smt funciu liniare de un parametru i.. care poate lua valori intr-un ·interval dat. Fie Ci = 10 + 2 i.. ; c2 = 12 + A; c3 = 15 - i... Se cer solutiile •optime pentru i.. e [ -2,6]. Vom calcula diferentele z1 - c, in baza primei iteratii din tabela 3.6 . .Avem
Zi;7
-
6i;7
=-
-
5 (12 6
+ i..) -
1 -(12 12
+ i..) -
5
4
(12
(10
+ 2 i..) = - -7
+ i..) + 15 -
6
0
i..,
1 =l+-1, 12
A- 0
= - 49
A.
REOPTIMIZARE $1 PROGRAMARE PARAMETRICA
179'
Pin condi'(iiile z1 - c, > 0 pentru indicii j care nu a,pa,r~in vectorilor bazei, rezulta ca solu'(iia asociata bazei (8 2 ~ 2 ~ 3 ~ 4 ~ 5 - ~ 6 8 3) este optima pentru AE [ -2,0]. Pentru :,.. > 0 devin negative diferent;ele Za 1 - C:i:1 fi!i zi;1 - c:;1 • S3 verifica cu u~urint;a ca pentru :,.. > 0 nu sint satisfacute condi'(iiile de optimalitate pentru nici una, dintre bazele coniinute in tabela 3.6. Pentru ba,za, (81 ~ 2 ~, ~ 4 ~ 5 ~ 6 8 3) avem Zn
73 = - 25 A,•
-Cz 2
2
incit vectorul (81
~2
~1 ~4 ~s
Z11_ -
82
trebuie sa intre in baza inlocuind pe
8 3•
Pentru ba,za,.
~s a2) avem C:e
""ll
4
z,,'ol -c,-'ol =1--A·, 25
ll
= 27 -73 A ·,
z1;s - ci;.
7
= 108 '.A.,
deci aceasta baza este optima pentru toate valorile pozitive ale parametrului. 1n rezumat, pentru Ae [-2,0] piesele produse peste minimul impus 175 sint B ~i C, soluiia optima fiind x1 = O a:: 2 = ; a::3 = 110; pentru 3
.
Ae [0,6] se produc peste minimul necesar piesele .A ,i B. 3.4. MODIFICAREA UNUI VECTOR-COLOANA AL MATRICEI A
Considerindu-se cunoscuta, solu(iia optima a unei probleme de programare liniara, se cere sa se rezolve problema in care un vector a, al matricei A a fost modificat. Vom considera cazul in care a, nu aparyine bazei optime B ~i ca,zul in care 8, face parte din B. a) V ectoruZ a, e B. Pentru verificarea optimalitat;ii soluyiei xa asociate bazei B, este suficient sa, se recalculeze diferenta z, - c, corespunzatoare vectorului a,. Fie a,+ 3a, = a; vectorul modificat ~i z, - c, = e8 W- 18, -:c,. Pentru a; avem
z,1
_
C, --
CBB-1 ( a,
+ 08,) _ C, -~
z,
_ c, + CBB-1 (~08,) .
Daca z: - c, satisface criteriul de optimalitate al problemei, solu'(iia, x8 ramine optima. In caz contrar se continua itera'(iiile, introducind vectorul a: in baza. Generalizarea problemei pentru cazul in care se modifica, un numar oarecare de vectori care nu apar~in bazei optime este imediata. b) VectoruZ a, e B. Componentele vectorului a;= a,+ 8a, in baza B sint ,
Yi,
(.l
,
= tJ' a,
(3.19)
PROGRAMARE LINlARA
t80
,daca. ~, este linia i din B- 1• Vectorul a; poate inlocui in B pea, daca ~i numai daca
y;, = ~, a~ =I= O.
(3.20)
-Sa admitem ca, aceasta condi(;ie nu este indeplinita. tn acest caz nu se poate folosi baza B pentru reoptimizarea solutiei ~i problema, poate fi rezolvata -pornind de la iteratia, anterioara, intra,rii in baza, a vectorului a,. Daca, y;, =I= O, veotorul a, poate fi inloouit in B prin a;. Fie B' baza :a,stfel formata. Pentru caloulul solutiei asociate bazei B' ~i pentru verifi-0area optimaJitatii acestei baze trebuie ounosouta inversa matricei B'. Reamintim modul in care se calouleaza inversa unei matrice oind .se cunoa~te inversa altei matrioe care difera de aceasta printr-u.n singa.r ·vector. Fie data matricea de dimensiuni m x n, A (au ..• , a,, ... an), a oarei :inversa A - 1 este ounosouta, ~i matricea A• (au .•• , b,, . .. an), ob'(;inuta, din A inlocuind vectorul a, prin b,. Inversa matricei A* este da,ta, de formufa. (3.2J.J
,mde E~~> este matricea-unitate n xn in care vectorul unitar de ordinul r -este inlocuit prin vectorul
- ( - '!Ji Y• 11,
'_
1/2 11,
,... , _Yr-1 ' 1/ r
1 '!Jr
'_
1lr+1
11,
,... , _
11n) '!Ir
(3.22)
~i Y =(Yu• .. , 11,.) = A- 1 b,.
.Dispuntnd de inversa, bazei B', se poate caloula i 8 ' iji linia z, - c, a -ta,belei simplex. Se pot prezenta urmatoarele cazuri : 1) vectorul iB' are toate componentele nenegative ~i criteriile de op-tim sint indeplinite. Solu1fa optima, a problemei modifica,te este atu.nci i 8 '; · 2) vectorul i 8 ' este nenegativ, dar nu sint satisfacute condi'(iiile de -optimalitate ale solu(;iei. tn acest caz se continua iteratiile pina se ob'(iine solutia optima sau dovada ca problema, nu are optim finit; 3) vectorul i 8 ' are componente negative, dar criteriile de optim sint satisfaoute. tn acest caz dispunem de o solutie dual-realizabila, ~i reoptimizarea se obtine folosind algorimul simplex-dual. 4) veotorul i 8 ' are componente nega,tive ~i nu sint verificate criteriile -de optim. tn acest caz se poate relua rezolvarea problemei de la itera'(iia anterioara intrarii in baza a vectorului a,. Sa, consideram acum cazul in care vectorul-coloana a, al matricei A -este functie liniara de un parametru, adica. a,
= a~1> + ya!,2>,
(3.23)
REOPTIMIZARE $I PROGRAMARE PARAMETRICA
181
a~1> ~i a~2 > fiind vectori cu componente constante. Vom considera cazurile
in care vectorul parametrizat apartine sau nu bazei optime Ba problemei in care a, = a~l). Da,ca, a, nu apartine bazei B, se calculeaza,
1n problemele de minim, condit;ia de optimalitate a bazei Beste z, --- c,~ O. Deoarece Beste baza optima cind a,= a~1 >, avem c8
B- 1 a~1 > - c, ~ O.
Condit;ia de optima,litate a bazei B pentru problema, de minim in care vectorul a, este parametriza,t va fi satisfacuta pentru 0 ~ A~ ~
~
CBB-1
(1)
a, - c, a,(2)
{3.25)
sn-1
C
S-a determinat astfel o valoare critica, a parametrului i-. c8 B- 1 at11 - c, i-.1 = - ---------'-. csu-1 a~2) Pentru 11. > A1 avem z,. - c, > o, deci se continua iterat;iile pentru determinarea bazei optime. Daca a, apart;ine bazei optime B a problemei in care 11. = o, adica a, = a~11 , pentru A =I= 0 se poate ca : a) matricea B {A) obt;inuta din B inlocuind vectorul a~11 prin a~1 > + i-.at2 ' sa nu mai fie o baza ; b) solutia asociata bazei B (11.) sa, nu fie realizabila ; o) sa, nu fie satisfacute condit;iile de optimalitate pentru B {A). In fieoare dintre aceste situat;ii se poate determina valoarea, critica a parametrului i-. sau se arata ca nu exista o astfel de valoare. Expresia vectorului a, = a~1 > + A a~2 > in baza B este y, = B- 1 {a~1 > + i-. a~2 >) = B- 1 a~11
+ '.A B-
1
a~2 >.
Deoarece a< 1> apart;ine bazei B, produsul B- 1 a~1 > este un vector unitar. Sa presupunem ca, elementul 1 se gise~te pe linia Z; atunci, daca se noteaza cu I mult;imea indicilor vectorilor in baza B ~i cu ~" i e I, linia i din u- 1, se poate scrie pentru
i EI, i
=I= z,
Yi,= 1 + A~z 8~21 • Matricea B {i-.) obt;inuta, inlocuind in B veotoru.1 a~11 prin a~1> + i-. a~21 este nesingulara, deoi poate fi o baza, daca, iji num.ai daca, Yi,=/= O.
PROGRAMARE LINIARA
182
Cind ~1 a~2 = o, condiiia este indeplinita, pentru toate valorile parametrului i ; dac~ ~, a~2 > =I= o, atunci >
1
A=--~, a~2>
este o valoare critica,. Daca, B p. ) este o matrice nesingulara, inversa ei se poate calcula folosind B- 1 , deoarece B 0,) difera, de B printr-un singur vector. Dispunind de [B (i)]- 1 , se calculeaza,
~i valorile critice ale parametrului se determina, din condiiiile de nenegativitate a componentelor soluiiei. Conditiile de optimalitate ale bazei BP,,) conduc la determinarea valorilor parametrului pentru care soluiia inceteaza, sa, mai fie optima. Exemplul 1. Sa, admitem ca, in problema, din exemplul 2 {§3.3) necesarul de timp pentru :Qrelucrarea unei piese .A se modifica dupa ce s-a gasit soiuiia optima. In modelul problemei, aceste marimi constituie primele patru componente ale vectorului a1 • In problema din exemplul 2 s-a lucrat cu vectorul 31
(0,10; 0,06; 0,18; 0,13; 1; 0; 0).
1n problema modificata, a1 se mlocuie~te prin a~
a; (0,12 ; 0,06; 0,15; 0,13; 1; 0; 0). Se cere sa se verifice daca soluvia asociata bazei B (a2 , t 2, ta, t~u t 5, ta, a3) (tabela 3.6.) este optima ~i dupa modificarea survenita. Se observa ca a1 nu apariine bazei B. Se calculeaza
n- 1 a~= (1, 1, 15, 3, 1,
-1, 0)
z; - Ci = cB B- 1 a; - c~ = 12 - 10 = 2. De aici rezulta ca B ramine baza optima. Exemplul 2. In problema din exemplul 2 se modifica, timpul de prelucrare atit al piesei .A, cit ~i al piesei B. Vectorul a1 se inlocuie~te cu at, care are componentele din exemplul de mai sus, §i a 2 se inlocuie~te prin a;.
a; [0,10; 0,04;
0; 0,10; 0; 1; 0).
Se cerceteaza optimalitatea bazei B (a 2,
t 2, ta, t 4 , t 6, ta, a8 ).
REOPTIMIZARE $I PROGRAMARE PARAMETRICA
Calculam componentele vectorului a; in baza B. Avem y2
1 1 . 5 o = B -1 82* = (65 ' - 6 ' o' 3 ' ' 6' o)
Vectorul 22 poate fi inlocuit in baza de 2;, deoarece 2�.2 in baza B este nenul (intereseaza aceasta componenta, deoarece vectorul 82 are ele mentul 1 pe linia intli). Calculam inversa bazei B• obtinuta., inlocuind in B pe 82 prin a;. Pentru aceasta scriem vectorul y•, dat de formula (3.22), 6 1 1 Y2• = (- , - , O, -2, O, - - , 0 ) 5 5 5
�i (B*)- 1 cu formula (3.21). Avem
1
6 1 (B*)-1 =
0
-2
5-
12
5
4
5
1
1
0
1
5
1
0
--1
1
1
1
0
(B•)-1=
0 -1 0
--101 0
3
2 1
-3 1
1
0
1
1 10
--2
9 2
4
12
1
0
-7
1
0
1
11 4
1
12
-7
7
1
0 1 1
t
--
--184
PROGRAMARE LINIARA
Solutia. a.socia.ta ba,zei B• este (1)*
(70, 980, 2080, 1400, 180, 30, 110).
Trebuie verifica.ta optimalitatea acestei solutii, calcullnd vectorul a~ in baza B• ~i verificmd daca diferenta z~ - Cz1 este pozitiva,. Avem (B*)- 1
at = (~, ~ , 15, 1, 1, 5
e8 (B*)- 1 8! -
5
Cz1
=
~
12 .
- ~, 5
o)
- 10 > 0
D
deci B• este baza opti.ma a problemei studiate. Exemplul 3. In problema din exemplul 2 (§ 3.3), timpul necesar producerii unei piese A depinde de materialul utilizat. Aceastai dependeniai se poate exprima cu ajutorul unui parametru A, mclt vectorul 8 1 din modelul problemei este ·
. al* (0,10
- 0,02 A; 0,06
+ 0,03 )q 0,18; 0,13 -
0,01 A; 1; 0; 0),
cu A e [ -2,2]. Se cer valorile critice ~i bazele optime pe intervalul de variaiie a, parametrului. Dispunem de solutia optimai pentru A= 0. Calculam a!* in baza, B (a2, t2, ta, t4, ~5, ~6, 8 3) f}i diferenta z~•- Ow1 ; avem
y~; = B- 1 8!* = (.!_6 (5-A); .!_6 (11-13 A); 18; ~3 (7 +A); 1; _!_(-5+A); o), 6 z~• -
Cz
1
=
e8 1B- 1
ar• -
Oz
1
= 12 6 (5-A) -10 = -
2 A.
zr• -
Baza B ramine optima pentru AE (-2,0); daca A> o, ~1 < o, deci pentru determinarea solu~iei optime vectorul a~• intra in bazai. Calculind componentele vectorulu.i y1 = n- 1 a~•pentru A = 0, se stabile~te ca inlocuie~te in baza pe 8 2. Se ob~ine soluiia
8r•
X
1
t _ 4
-
_
350 .
-
5- A'
~
.
_ 20 (630 - 31 A) . 2
50 (357 - 105 11.) • 3 (5 -
A)
'
3 (5 - 11.)
-
~
'
_ 10 (55 -18 11.) • 5-A '
s-
t _ 20 (205 -104 A) 5-A
s-
~6
=
100;
•
' a:3
= 110.
REOPTIMIZARE l?I PROGRAMARE PARAMETRICA
185
Din conditiile de nenegativitate a componentelor solu'(iiei rezulta ca aceasta baza conduce la solutii admisibile pentru i. e [0 ; 1,97]. Calculind diferentele z, - c, pentru vectorii care nu apartin bazei, avem Za1
-
Ca:.
=
12 i. 5
_ A;
Solu'(iia este optima cind aceste marimi sint nenegative, deci pentru [0 ; 5]. 1n concluzie, baza formata de vectorii (a;•, ~2, ~ 3 , ~ 4, ~s, ~6, a3) este optima pentru i. e [0 ; 1,97]. Pentru ). > 1,97 devine negativ ~3, solu(iia nu mai este admisibila ~i se poate gasi o noua baza optima pentru intervalul [1,97 ;2] folosind algoritmul simplex-dual. ). e
3.5. MODIFICAREA UNUI VECTOR-LINIE AL MATRICEI A
Nu ne vom opri asupra acestui aspect, deoarece modificarea unui veotor-linie in problema initiala se reduce la modificarea unui vector-coloana in problema duala. Desigur, este posibila ~i o tratare direota, dar rezultatele ce se obtin sint analoge cu cele din§ 3.4. 3.6. ADAUGAREA UNOR RESTRICTII SUPLIMENTARE
tn cele oe urmeaza se va trata problema reoptimizarii solu'(iiei unei probleme de programare liniara in cazul in care se adauga sistemului de restrictii un numar de noi relatii intre variabilele problemei initiale. Sa admitem case cunoa~te baza optima a problemei ~
a,, x/ + a:nH = l, ;
1, ... , m; N
i
=
j
= 1, ... , n
= {l, ... , n},
(3.26)
iEN
x, > O max (min)
~ ;eN
c, x,,
+ m, (3.27)
careia i se adauga dupa rezolvare relatiile (3.28) 0 solu'(iie de baza a problemei de programare liniara cu restrictiile (3.26) ~i (3.28) se poate obtine eliminind din rela'(iiile adaugate variabilele
186
PROGRAMARE LINIARA
care apar'(;in bazei optime a problemei ini'(;iale ~i atribuind valoarea zero variabilelor care nu apartin acestei baze. Obtinem X,.+m+.P
= bm+JI ;
P
=
1, • , • 1•.
(3.29)
Vectorul x• avind primele m componente egale cu ale solutiei optime a problemei (3.26) - (3.27) ~i ultimele r componente date de (3.29) este o solu'(;ie de baza. Daca bm+.P; p =I, ... , r sint nenegativi ~i a:n+m+p; p =I, ... , r sint variabilele de abatere, vectorul x• construit a~a cum s-a aratat mai sus este o solu'(;ie optima pentru problema cu restricW suplimentare. 1ntr-adevar, in conditiile stipulate, x• este o solu'(;ie admisibila, iar diferen'(;ele z, - c, nu se modifica, deoarece variabilele xn+m+" care au intrat in baza au coeficien'(;i nuli in func'(;ia obiectiv. Daca bm+s, ; p = I, ... , r sint nenegativi, dar eel putin una dintre restric'(;iile adaugate este o ecuatie sau o inegalitate cu semnul >, baza include variabile cu coeficienti de penalizare in func'(;ia obiectiv. 1n acest caz se continua itera'(;iile pentru excluderea acestor variabile din baza. Daca eel pu'(;in una dintre marimile bn+m+s, este negativa, solutia este neadmisibila, dar daca este dual realizabila optimizarea solu'(;iei se ob'(;ine prin algoritmul simplex dual. Inversa bazei completate cu variabilele a:n+m+:i se ob'(;ine cu u~urin'(;a daca se cunoa~te inversa n- 1 a bazei optime Ba problemei ini'(;iale. lntradevar, noua baza este B
0
----------· ······-·········------·
ii=
«m+1
1
o... 0
«m+2
0
1. .. 0
OCm+r
0
o... 1
-[--:+:·-}
intrucit, folosind parti'(;ionarea matricei, ob'(;inem (3.30)
Exemplu. Fiind data problema
187
REOPTIMIZARE l?I PROGRAMARE PARAMETRICA
x,
~
0 j
min (2 x1 a,
.., . soIuv1e +." opt·im~ X care1 este ro1
=
-
= 1, 2, 3, x2
+ 3 ms),
6 1 +." t· . . 7 , = 7 , s~ se gaseasca so uvm op rma
16 x 2
X
...
...
daca, sistemul de restrictii se completeaza cu condi~ia
Vom transforma restrictia adaugata in ecuatie, adunind in membrul sting variabila de egalizare "/Js, careia i se atribuie coeficientul O in functia obiectiv. Avem
+." • ... ·+.· l P ent ru soIuvia optima a probleme1..m1via e avem "/Js = 2 +16 - - -6
Vectorul cu componentele a:1
= 16 - ,. x2 = -6 ,
"/Ja
= 24 - · 7 7 7 24 . = - este solutia optima 7
7 7 a problemei cu restrictia suplimentara. Sa admitem acum ca restrictia care se adauga este -:- :.V1
+ X2 + 4 :.V3 > 2.
1n acest caz, inegalitatea se transforma in ecua~ia
Variabila "/Ja are coeficientul Min functia obiectiv ~i ~2 coefici~ntul 24 16 nul. Vectorul x1 = , a:2 = !?.. , "/Ja = nu este o solutie optima. 7 7 7 Calculam inversa bazei formata de vectorii (mu a:2 , "Ila), cunoscind inversa bazei optime a problemei ini~iale,
~i utilizind formula ( 3.30).
188
PROGRAMARE LINIARA
(!, - : ) ~i
Avem « = (- 1,1), tncit -«B- 1 =
jj-1
=
-27
-17
0
1
-37
0
2 -7
1
7
3 7
Componentele vectorului a,3 in baza :ii (a,u
36
Zz. -
C~a
.
a,2, "Ila)
sint
10.
= 1,M - 1'
Vectorul a,3 inlocuie~te in baza pe "Ila• Se obiine solu~ia a,1 = 2, a,2 = .! , 3
care se verifica cu u~urin~a ca este optima.
3.7. ADAUGAREA UNOR VARIABILE SUPLIMENTARE
Sa admitem ca intr-o problema de programare liniara pentru care se cunoa~te soluiia optima se adauga matricei A de dimensiuni m x n vectorii-coloana an+J>, p = I, ... , 1-. Se cere sa se verifice daca soluila optima i 8 a problemei initiale este optima ~i pentru noua problema. Pentru aceasta se vor calcula expresiile vectorilor an+si ; p = 1, ... , r in baza optima B a problemei initiale ~i difereniele Zan 2> - On+si; p = 1, ... , ,,.. Daca toate aceste diferenie satisfac criteriul di optimalitate, vectorul i 8 este solu~ie optima ~i pentru problema noua; in caz contrar se continua itera~iile.
REOPTIMlZAREA i;:il PROGRAMARE PARMETRICA
189'
E(l)emplu *. Soiuiia. optima a, problemei de progra,mare liniara 0,01 W~
+ 0,01 + 0,01 + 0,03 + 0,03 a: + 0,03 < 850, < 700, + 0,05 a, 0).
(4:.3)
Vom presupune temporar ci toate muiiimile B, sint marginite, adica sint poliedre convexe *). Notam prin x'', 1 < i < 81 punctele extreme (vir-
•> Cazul contrar va fl analizat mai jos (vezi 4.3).
20:2.
ALGORITMUL DE DESCOMPUNERE DANTZIG-WOLFE
furile) poliedrului convex 81, 1- a., ~ OJ ::;:: {3,5}, deoarece in liniile 1 ~i 4 (unde yl < 0) numai variabilele ·x E1
= {j l'j =/: 6,
y}
3 ~i a:6 au coeficientii nenegativi tr~xi~bila x 6 nu se ia in consideratie,-·-intrucit {6} e 0 1 ). Rezulta · · . .' ' ., N1 =·N·"-._ (01UE1) = {1,~,4h.
Etap_a 2. ~ntru~it
~ ai-:.:· =
;eN1
~ a;
;eN1
·
"1~
+~+au= 0 -13 -3· =_-1_6~yf, ·· .
= au +,' a42 +. a~ = -
+ Q· -
9
9
=· - . 18 ~ Yl,
testul se verifica : 4
v½ =
= (- 2· .Analog,
17)-
.
~ (yf - a,1)- :;::
,"31
.
+ (9 + 1)- + (1 + 15)- + (- 9 +· 9)- = -
vl = -:-- 12, vi··
0.
19•
268
.0
Solu\ia curenl:i
N
•
,lo =.0 %0
=
ilitate in virful J 1 nu se verifica: ·· · ~ aij
= tii"'i = 0 ~ -
2
= y} •
f_eN.1 -
, • ., •
••
/'
.
'
•
•
L •
~ ., . : •• •••
! ::•
a.
,•.
'
· Etapa 3'. Virful generato:r; a1 lui ·Ji _este . .J~-.::~e r~intoarceni )a, etap_a, 2, btlocuirid' ·de· data aceasta ·pe a cn ·o · (iii41c~re·· =a + 1 · 4 r~Jllllle; ·\~ continuare nemodificat). . · · ·· , ' : ;· Obsei'vitm·ca· {j I Zo z•c:f)}··~· '{ii 0.
292
PROGRAMAREA DISCRETA
Sa aratam ca, daca problema PLT are programe, atunci are optim infinit. :Intr-adevar, daca x0 este un program in numere intregi, atunci ~i Xo + tr va fi program in numere intregi pentru orice t, multiplu comun al numitorilor componentelor lui r. 1n plus, lim e' (x0 + tr) = + oo, t➔ ao
deci problema PLT are optim infinit. Pentru a afla in care dintre cele doua cazuri ne aflam, va fi su.ficient sa vedem daca problema ad.mite eel puyin un program in numere intregi (in caz afirmativ va avea optim infinit). Pentru aceasta vom modifica functia obiectiv; astfel incit pentru problema adusa la forma secundara toti p, sa fie lexicografic pozitivi. .Atunci se va putea aplica oricare dintre algoritmii descri~i ~i, daca noua problema PLT admite un program optim, problema PLT initiala are programe. Problema 5.8 ne permite astfel sa dam raspuns in cazul cind, dorind . sa aplicam algoritmul ciclic (sau mixt), constatam ca problema PL are optim infinit. 5.9. Sa sea.rate ca, daca o problema PL are optim finit, dar multimea programelor optime este nemarginita, atunci problema PLT corespunzatoare sau nu are o solutie sau are optim finit, dar mulyimea programelor optime (in numere intregi) este nemarginita. Sol'U#e. Aceasta problema arata ce se intimpla cind metoda descrisa atunci e:ind s-a dat soluyia problemei 5.7 nu este aplicabila (mult;imea progra;melor optime este nemarginita). Demonstratia ceruta de aceasta problema se face asemanator cu cea data la rezolvarea problemei_ 5.8 : daca multimea programelor optime este nemarginita, exista io astfel ca Zia - c,, = o, '!lilo ~ o, (V) i EI etc. Singura, deosebire consta in faptul ca de data aceasta e' r = O.
5.1O. Sa se calculeze max
(2X1
+ X2 -
3X3 -
X4
+ X5),
cu restric~iile aJi -
2x1
+ 3X2 +
Xa -
2X4 -
+ 7X2 -
Xa -
X4 -
f.V1 -
9X2
+
'-V3
+
X4
~
10,
X5 ~
5,
X5
+ 2X5 ~ -
8,
mu m2, ••• ,m5 fiind intregi nenegative. Bol'U#e. Sa aplicam eJgoritmul ciclic. Rezolvind in prealabil problema PL, obtinem tabela simplex 5.58, in care Z.i - c4 < 0 ~i Y4 :::;: O, deci problema PL are optim infinit.
PROGRAMARE LINIAM 1N NUMERE 1NTRE
293·
Tabela · 6.68 :z:s
51
I
22
7
0
0
12
0
0
4
1
0 1
11
0
-7
1
-2
1
0
-14
-7
8
11
-4
. 13
3 1 5
0
-3
2
8
0
3
-1 -1
-31
4
3
Conform problemei 5.8, problema noastra sau are optim infinit sau nu are solu~ie. Deoarece problema ad.mite programe in numere intregi (de exemplu x1 = 11, x 2 = 7, x5 = 22), problema PLT are optim infinit. 5.11.
Sa se rezolve problema max (3a:1
+ 2a:
3a:i_ -
a:2 -
2a:2 6a:1
x3),
2 -
+ 4a:
-
$3
~
X3
> 1,
2,
5a:3 ~ 8,
2 -
x17 x 2 , x3 fiind intregi· nenegative. ·' Bolu#e. Nu putem aplica aJgorit111:ul. discret, deoarece nu cunoa~tem vaJoarea lui M. Sa aplicam aJgoritmul ciclic. Rezolvind problema PL, observam ca are optim infinit (tabela 5.59). Tabela 6.69
7
0
0
1
0
2
0
1
1
0
0
2 5
6 1
I
- 23
0
1 3
--61
0
-2
0
1 -2
0
0
2
3
1
3
-2 1 2 1
-1
Prin urmare, conform problemei 5.8, problema PLT are optim infinit sau nu are solutie. Ca sa, vedem daca ad.mite eel pu~in un program
/
294
PROGRA'MAREA DISCRETA
intreg, sa inlocuim functia obiectiv initiala cu alta funcjie obiectiv. De exemplu, daca luam Wo
= (- W3) + (-
W4)
+ (- W5),
toti vectorii pJ din forma secundara vor fi lexicografic pozitivi (tabela 5.60) ~i aplicarea Tabela 6.60
:to
0
1
I
1
5
1
1
1 1
6
-2
-3
-6
1
- 21
0
-2
~-1
0 -1
0 1
0 0 0
0 0 -1 3
-6
--12
2 0 0
5
0
2 2 3
1
1-:1
algoritmului ciclic a devenit posibila. Dupa o serie de iteraW se obtine tabela 5.61 in care p 50 < O, dar p 51 ::2:: 0 pentru j eJ. Prin urmare, problema n?.ast1·a ,µu· admite programe in~regt . : · 'Tabelci S.61'
-2
2
5
2
0
-1
1
1
1
2
2
-1
5
1
1
2
2
2
0
0
3
-1 1
10
2
0
1
0
5
2 ..
1
0
2
- 2·1
...
I
1
5
9
-10
2
-2 0
'295
PROGRAM.ARE. LINi'AR.A. iN M'UMERE lNTREGI
- 5A2· Sa se gasea,sca max {w3 . $Q}1 -
6QJ1 a:i, ••• ,
Q}2 -
+ QJ4 + te5),
«:3 -
2QJ2 -
X3
+ 4x2 -
5x3
= 2,
Q}4 -
Q}li
= 1,
+ x6 = 8,
w6 fiind intregi, nenegative, utiliztnd algoritmul discret.
Solu1ie. Este vorba de problema care a, fost rezolva,ta, cu ajutorul
ciclic m exerciiiu.1 precedent. .Am vazut atunci ca aceasta problema nu are solut;ie. · . . lncercind sa aplicam algoritinul discret, obt;inem dupa trei iteratii tabela, 5.62 .. Daca vom continua, se va -observa, ca putem face oricit de multe iteratii fara ca aJgoritmul sa se opreasca. De aici se poate trage concluzia ca algoritmul discret nu este convergent in ·cazul cind problema nu admite progra,me in _numere intregi. Tabela 6.62
-3
2
I
1 1 1
-1
-1 0 3
-2
-1
l-11
0 -1 1 1
1
1
0 -1 0 1
0 0
-2
..:..1 1 1
4
-5
0
0
Finkelstein [9] a aratat ca in anumite condit;ii este suficienta o mica modificare .a algoritmului discret pentru a asigura convergenta lui ~i in cazul cind problema PLT nu are programe. 5.13. Sa se rezolve problema
x1 3QJ1 - «:1
- 3x2 + 5x3 6QJ5 + 12x8 - x7 < 9, + QJ2 - 3w3 + 2x4 + w5 - 6a:6 ::;;;: + 4x2 + a:3 - 5w4 - 6w5 + a:6 + 3w7 ~ 5, . 3:V2 «:3 + 2W4 + 7W0 + 2a-;6 + 17:V7::;;;: 5,
tVi, ••• ,
min (5w1
x7
=
O sau 1,
+ 18w2 + 3x3 + 6a:4 +
5w6 +-13a:6 + 2a:7).
4,
J?ROG~E~ J)ISCRETA
-296
Solulie. Se aplica. algoritmul aditiv. Sint necesare ~ase·iteratii.- Solutia este m2 = m6 = 1, a:1 = m3 = a:4 = a:6 = m7 = O. Ca,lculele sint continute in tabela 5.63. Tabela 6.63 s
Solutia curenUi
I
0
...
0
C8 = {3, 6}
J,.
=
{3}
Z1 =3,
z•(t) =
Cl= {3,6}
2
J2
= {3.6}
z2
= 16
4
= {3,6,5}
~
=
21
z•(3)
=
+ co
= {3,6,5}
J,
= {6} =
13
z•(4)
=
I
3
I
5
- 5-
-4
4
-1
-1
_
-3
6
- 3- - 4-10 ------ -------8 -
2 5
5
-1
-5
-6
--3 -10 -17 -7 - - - -- -- - - -2
-5
--2 -
4
- 9- --3 -
- - - - --4- - - - -
C3
%4
2
__.. --3 --- -4 - 4- --1 - 6+ co - - - - - - -6 - - - -8 6 --8 - -·-- - - - - - -
= {3,6,5}
J3
I
-9
7
3
1
-- -- ------ -3
z•(2) = + co C2
I
9
z•(0) = +co
:i
I
i
v'i
..
Jo= 0 %0 :::::;:
I
Na
0
2 7
-- -- -------3 - -2- - 4- 3 -10 -- -- ---- -- -~
I
+ oo
2
0
c, = {3,6,2,5}
5
-4
7
-13
-5 6
Js J8
= {6, 2}
= {6, 5}
z11 = 18 z•(~)=31
cfl =
{3,
s, 2, 5}
z•(5)
= 31
-4 -11
-2 Program
- 3- -1- -10- --4-- - - - - - - - - - .0
297
PROGRAMARE LlNIARA lN "NUMERE tNTREGI
s.u.·, Si. se
rezdl~e problema
+ 2X2 + X3 + 17"1_ + + X3 7(1)1
I
-
$
3 ~
26,
"'
= 66, x~ = 10,
-
8(1)~
5x2
=
2(1)4
2$5
x, -
"1., (l)a, m, mtregi, max (2Xi
+ 5(1) + ma)• __ 2
8olutie. Se va ;utiliza algoritmul mi;xt. Dup.a rezolvarea problemei PL se obiine tabela 5.64 Tabela S.64
162
7
I
57
7
--57 ..
16
7 20
13
r
7 '-
--7 2
7
-17
37
12
7
7
6
7 30 7 0
-1
0
0
0
-1
-, 1-s~I 2
- 72
Adaugam, conform algoritmului mixt; restriciia Xe= -
2 2 4 ---(-X4)--(-.~), · 7 7 35 ..
, -b . . , ul . dupacareo vinemprogram opt1mx1
5 2
= 3, X2 =-,
X3
=
X4·=
5 o, X5 = -·
2 5-1.5. Sa se rez.9,lve problema de la exerci~iul precedent, cu condi~ia,.. oa, toate ._va,riabilele, .sa fie intregi. 8olu#e~·-vom ;a,plica aJgoritmul ciclic. La tabela, 5.64, care se obiine dupa rezolvarea, problemei PL, va trebui sa adaugam ecua~ia,
--
"
Xe
2
2
7
7
,
5
~
= - - - -(- X4)·- - ( - X5) 7
298
J?ROGRAMAREA DISCRETA
(aceasta ecuatie difera, de cea care s-a obtinut cu algoritJI1ul. mb:t) •. Dupa citeva iteratH se obtine tabela 5.65, din care rezulta ca proble~a nu are solutie (p 30 < O, Pa,~ o, j e J). Tabela 6,65
-x1
-Xs
,! •t, .. ,..
'.
..
"·,,· .·J.
~
-2
3
1
--
17
:to
15
%1
3
-· 2
. %9
2
1
0
9
5·
Xa
-1
x,
1
x·II
0
2
1
2
-2
-
3 2
-12
2
-3
2
5.16. Sa se re~olve problema, i
-
3X1
x1
+
2QJ2
+
+ ~Q!2 -
+ 7a,6~ - 1, m3 _+ 5x4 + · x5 + 2x6 ~ 2, X3_- 211!4 -
+
X5
+
2x1 8~2 - 3x3 x 4 - 2m5 mu x 27 ••• , m6 = 0 sa,u 1,
min (2X1
-
3m2 -
5Xa
+ m4 -
6X5
+ 3x
~ 7,
6
+ Xs)•
Solulie. Se fac transformarile m2 = 1 - u 2, m3 = 1 - 'U:3, x 5 = 1 - u 5 , dupe, care se aplica, algq~itm~ aditiv. Programul optim este x1 = 1, ~2 =
=
0, a,3
=
1,
X4
=
0,
X5 :_.' 1;° Xe==
0.·
. .
~
. . .. .
. .. -··
5.17. Sa se gaseasca. min .(3x1
2~1 3m1
· -~ 4a;_
+ 5x2 + 7x3 + -
_3x 2
+ 2x2 +
+ · ·a:c-
2a;_
+
. ,
m3
-
+ 12m5 + 14x6 .+
8~4
-
10x4
+
..
.
+
X4 - . , ..(l)f>' ·
X•r·+·2x8),
m5 .--:-: 6x6 ,::-:7 ~a,7 2x6 x7
a:a ; · · ··· _;_ 5a:5 ·- 1·•
+-a:3 x11 ••• , w8 = 0 sau ~~- t--$ 2
6m4
w~-+ 6x7
.. _,./
+ • 7a:6 --:- '
. x6
+
w8 ~
'""."".
~ -
4,. 1,
~ ~
8, :+2~7 .~.-:a:a~~ •. 5, , ..•
i
r.f-.2$8 ~
..
6, .
1. Solulie. Problema nu are ·programe. Sint necesare opt iteratii.
'
PROGRAMARE LINIARA 1N· NUMERE lNTREGI
299
5. 18. Sa. se rezolve problema, 3a:1 - 20:1
9
+2a:2 + 3a:3 -
4a:4
+33m ~ 27,
+ 5a:2 + 2X3 + 6a:4 -
5
2Ba:, < 20;
Solufie. 0 metoda pentr_u rezolva.rea, a.cestei probleme cons ta in a, atribui lui a:3, a:4 iji a:5 va.lorile O iji 1 in toa.te modurile posibile. Se obtin opt probleme PL; rezolvind toa.te aceste probleme, progra.mul 1optim va, fi eel pentru ca.re functia. obiectiv ia, cea mai mare va.loare. Da.ca insa numarul varia.bilelor care iau va.lorile O sau 1 este n:ia.i mare, numa.rul problemelor PL creijte foarte mult ~i a.tunci va, trebui sa aplicam o alta metoda. Aceasta metoda. consta in reducerea, problemei ini"(iia,le la o problema PLM prin adaugarea restrictilor
a:3, a:4 , a:5 fiind intregi nenegative. Se rezolva, ·in primul rind problema, PL obtinindu-se tabela 5.66. . d ap1·1carea, a,lgor1·tmulm. m~x . t , ga,s1m " . programul op t·1m: a: = 31 , Cont mum 1 A
a,2
=
$3
=
o,
3
$4
= 1,
$5
= 0.
5.19.. Din ni~te tevi cu lungimea, de 9 m trebuie taiate 80 de tevi cu lungimea, de 2 m, 40 de tevi cu lungimea, de 2,5 m f}i 30 de tevi cu lungimea, de 3,5 m. Cum trebuie sa procedam pentru ca. numaru.l tevilor folosite sa,. fie cit mai mic ! Solulie. Exista. ma,i multe posibilita.ti de a, obtine dintr-o tea.va de 9 m ievi de 2,2,5 iji 3;5 m .. De.exemplU,::B0.:POSi.te -obtine 4 tevi "~-2 ..m ~i un de~eu de 1 m sau 3 tevi de· 2 m., o_teava, · d~ 2,5 ni ~i un de~eu de 0,5 m etc. Aceste variante sint enumerate in tabela, 5.67. . Sa notam cu a:, numa,ru.I de "(ievi cu lungimea, de 9 m care sint taiate dupa varia,nta, i. Atunci se vor ob"(iine . 0
tevi cu lungimea, de 2 m (4a:i, se vor ob"(iine din tevile taiate dupa. varianta., 3a:2 din cele taia,t,e dupa, va.ria.nta, 2 etc·.) Vom cere ca numaru.l de tevi cu lungimi de 2 m sa. satisfaca necesaru.l de 80 buc., deci 4tvi, + 3a:2 + + 2a:3 + 2a:4 + a:6 + a:8 > 80. · · · ·
·aoo
PROGRAMAREA DISCRETA
Tabela S.66
-Xs
-X1
799
33
I
'
1 11
V ~Xg
V
~Xa
-Xi
13
34
33
11
23 33
158
33
.0
-1
0
0
0
0
0
0
-1
0
0
0
0
0
0
-1
0
·O
1
0 1
0
0 1
0 1 33
1 4 33 0
.31 ,33 0 1330
11
33
u
0
0
0 50 11 1
0 1
0
0
0
-1
2
-33
1 -11
1
11
-33
4 -33
2 -33
--1
-33
6
0 2 33
11
33 0 221
0
1
31 -33
2
33
I I 1 ·-1 1
-1 28 33 0
86 - 33 0
1
11
4 -33
_ Tabela ,6.67
I
Varlanta bucltl de 2,0 m
1
2
3
4
5
4
3
2
2
1
6
7
8
1
0
0
2
..
bucA tL de 2,5 m
0
1
2
0
.1
0
3
buca\i de 3,5 m
0
0
0
1
1
2
0
~-
1,0
0,5
0
1,5
· 1,0
·o
· 1,5
0,5
d~euri
ln mod asemitnator se scriu ~i celelalte condi~ii. NlµIlarvJ, totai de t;evi- cu lungimea..de 9 m. va.fi-.-a:1- +. _a:2 .+ ... a:8,. ;d_ec~ va..trebui sit re.zolvam problem~.: . . r. 4a:1
+ 3a.i + 2a: + 2a: + a: + 2
3
4
W4
aJi, a:2
min (a:i,
••• ,
5
a:6
·
·::2:: 80,
+ tl:5 + 2~e-
a:8 intregi · nenegative,
+ t»2 + t»a + W4 + a:,;·+ t»a +· t»1 ..+ a.ls)-
·.
PROGRAMARE LINIARA tN NUMERE INTREGJ
301
Variabilele o:11 a:~u ••• , a:8 trebuie sa fie intregi, deoarece nu putem admite, .de exemplu ca 2, 73 tevi cu lungimea de 9 m sa fie taiate dupa varianta 1, iar 5,3 dupa varianta 2. Rezolvind problema PLT demaisus, gasimprogramul optim: a:1 = 8, ms = 1, ms = 15, m4 = :.V5 = 0, me = 15, m,, = 3, lCs = 0, adica, 8 tevi trebuie taiate dupa varianta 1,1 dupa varianta 2, 15 dupa varianta 3 etc. Numarul minim de tevi necesare este de 42.
5.20. 0 intreprindere de construcvii trebuie sa realizeze un complex de locuinve insumind (eel puvin) 900 de garsoniere, 2 100 apartamente cu doua camere ~i 1 400 de apartamente cu trei camere. Se preconizeaza doua tipuri de blocuri : primul tip cuprinde 40 de apartamente cu trei camere, 30 de apartamente cu doua camere f)i 10 garsoniere iji costa 4 000 000 de lei, iar al doilea tip este format din 20 de apartamente cu trei ca.mere, 50 de apa,rtamente de dona camere ~i 30 de garsoniere, avind costul de 5 000 000 de lei. Sa se stabileasca cite blocuri de fiecare fel trebuie construite astfel incit cheltuielile de constructie sa fie minime. SoZ'Ufie. Sa notam cu a:1 numarul blocurilor din primul tip ~i cu a:1 al celor de tipul al, doilea. Se obvine modelul a:1
+ 3a:2 ~
90,
a:11 m2 intregi nenegative.
Programul optim este a:1
= 20,
m2
= 30.
5.21. Un institut de proiectari dispune de proiectele a ijase obiective economice, a caror construcvie dureazi eel mu.It trei ani. In tabela 5.68 sint date investitiile cerute de fiecare proiect in fiecare an, fondul total Tabela 6.68
Anul
Obiectivul
I
1 2 3
1
I
2
I
s
I
4
I
5 5
r-
Fondul total 6 - de investitii
5 0
1 3 4
2,5 3,5 2,5
3 4,5 0
4·
5
5,5 2 6
3
4
4,5
5.
.7
8
2
Beneficlul
estimat
10 9
12
'
30~
PROGRAMA'REA DISCRETA
de investitii in anul respectiv, precum ~i beneficiile estimate pe care le vor .aduce cele ~ase obiective. Ce proiecte se recomanda sa fie traduse in viata pentru ca beneficiul estimat sa fie maxim Y BoluJie. Sa introducem variabilele ro., definite· astfel : ·
m '
= ·{ 1
daca, ol,iectivul. i se realizeaza, .· O daca obiectivul i nu se realizeza.
Beneficiul va fi atunci 3ro1
+ 4x2 + 4,5x3 + 5x + 7;v5 + 8x6 4
fi!i el trebuie maximizat. Pentru a nu depa~i fondul total de· investit;ii din primul an va ·trebu.i ca · 2X1
+ X2 + 2,5:.Va + 3X4 + 5X5. + ~,5a;6 ~ 10
~i alte doua restrictii analoge pentru anul al doilea .f}i al. treilea. Se obiine o problema cu variabile bivalente, programul optim fiind X1
=
X2
=
X3
=
X5
=
0,
x 4·
=
Xs
= 1.
Se vor construi deci obiectivele 4 ~i 6_5.22. Sa se gaseasca
cu restrictiile
Xi+ 2X2~ 9 ~i astfel incit. sa fie indeplip.ite condiiiile -
X1
+ 3X2 >
4
~2~
6,
sau 2a,1 2a,1
+X
2 ~
6.
Bolu#e. 0 metoda simpla consta, in a rezolva sepa,rat doua probleme PL : una cu restriciiile Xi + 2x2 ~ 9 ; - x1 + 3x2 > 4 ~i alta cu restrictiile mi + 2x2 ~ 9 ; 2mi - x2 ~ 6 iji 2mi + x2 ~ 6. Acest lucru nu mai -este recomandabil atunci cind numarul problemelor PL care apar este
PROGRAMARE LINIARA: 1N ·NUMERE !NTREGI
303
mare. Se poate insa utiliza o alta, metoda, ·care reduce problema data la problema PLM. Pentru aceasta sa transformim toate restrictiile problemei in inegalitati ~ ~i sa, trecem termenul liber in membru.l sting : a1i - 3a,2 + 4s o, 2a,1 - a,2 - 6 ~ 0; 2a:i_ - a:2 +6~ 0. Deoarece a:i_ +2a12 ~ 9, vom avea a:i ~ 9, a:2 ~ 5 (astfel de- limitiri se pot obtine intotdeauna, in problemele practice) i,i deci a1i - 3a,2 + 4 ~ 13; 2a1i - a:2 - 6 ~ 12; -2a:i_ - a:2 + 6s 6. Aceste restrictii sint verificate de orice pereche (a:i_, a:2 ) pentru care a:i., a,2~ o, a,1 + 2a:2 s 9. Daca in locul inegalitatii a:1 - 3a:2 + + 4 < 13 vom scrie · ·:: -0
aJ1 - 3~2 _+ 4 ~ 13a:a, atunci pentrµ. a:3 = _O se obtine tocmai restrictia - a:i pen~_a:3 = 1 nu se obtine nici o eondiiie no~a. In mod analog, daca a,4 = o, restrictiile
+ 3a,2~ 4, ·pe cind ...
2a11 - $2 - 6 ~ 12a,4' - 2a:1 - a, 2 + 6 ~ ·6a:4 se reduc la restricviile 2a;l - aJ2 ~ 6, 2~1 + a:2 ~ 6, pe cind pentru X4 = 1 ele sint satisfacute automat. lntrucit eel putin unul dintre eele doua grupe de restrictii trebuie satisfacut, va trebui ca eel putin una dintre variabilele a:3 sau a:4 sa ia;' valoarea zero. Putem serie acest lueru sub forma
.
'
aJ3
r+ X4 ~ 1.
1ntr-adeva,r deoareee a:3 ~i a,4 iau doar valorile O sau 1 "i a,3 + a:4 :?: 1, eel J>Utin una din ele trebuie sa, fie zero. ·. Din cele de mai sus rezulta ca problema data se poate scrie sub forma unei probleme PLM astfel : ,. •.: · m1
+ 2w
s9,
2
mi - 3tD2 - 13a;~ ' :
~-4,
-12a,,~6; -
~w4 ~- --:· 6 1 . ~1·
a:u a:2 :?:
max (a:i
+-~
o,
a:3,
a,4
= '
= o,
sau 1,
2).
Programul optim; al acestei proble~e este a:1 IJJ4,
= 1.
e
·
•
.
.
•,
.
= O,
a:2
= ~, 3
tea
= o,
PROGRAMAREA DISCRETA
304
5.23.
Sa
se rezolve problema -
+ 3:2:;; 3, 3X1 + 2X2 :;;- 24, 2X1 + 33:2 :;;;; 29, X1
Xi,
max (9Xi
x 2 intregi nenegative,
+ 7a:2).
Solujie. Metoda cea mai simpla consta in aplicarea algorftmului discret. Trebuie introdusa restrictia x1 + a:2 ~ M, dar valoarea lui M se deduce din restrictiile problemei (de exemplu M = 13). Programul optim este Xi= 6, a: 2 = 3.
5.24.
Sa
se rezolve problema 1 11 7 +X3 + - X4 + - X5 8 6 8
17 =,
3 5 13 a:2 +-xa +-a:4 + -X5
9 = --, 2
3:1
8
2
8
6
1 4 5 13 -a:a +-x4 + -X5 + Xs = - , 2
a:1, a:2,
3
••• ,
2
3
a:6 intregi, nenegative,
max (15x3 + 4a:4 + 37 x5 ). SoluJie. Programul optim este a:1 = x2 = a:6 = O, a:3 = x4 = x5 = 1. Problema, difera foarte putin de cea rezolvata ca exemplu pentru algoritmul ciclic (5.3): b2 a, crescut cu o unitate. tn schimb, progra- mele optime difera mult (daca am trata aceste probleme ca probleme PL obi~nuite, varia~e ar fi mai mici: ca problema PL, z0 = 130 atit in 5.3, cit ~i acum; ca problema PLT, z0 a fost 4 in 5.3 iar acum este 56). 5.25. Sa, se rezolve
1 -
8
$3
+ 11 --6 a:, + -87 a1I ;S;; 17 6
t
PROGRAMARE LINIARA lN. NUMERE lNTREGI
3 8
l»3
+ -2
a:,
+ 13 -8 a:5 ~
1 2
$3
+ -34
a:,
+ -52 a"5 ~ H-3 '
-
-
Xa,
5
9 2
-
305
'
x 4 , x6 intregi nenegative.
Solulie. Programul optim esttJ a:4 = 8~ m4 diferenta fata de problema, precedenta Y
= a:5 =
0. Cum se explica.
5.26. Sa se gaseasca
max (2a::1
m2
-
+ 5m3 ),
in conditiile t»1
·+ 2a::a -
0,8a;1 -
X2
2Xi,
a1i, a:2,
a:3
a:3
~ 6,
+ 2Xa s; 7, -
$3~
5,
fiind intregi nenegative.
Solujie. Programul optim este x1 = 5, x 2 = 1, x3 = 2. Daca se aplica algoritmul discret, M se poate obtine din restrictiile: problemei. 5.27. Sa se rezolve problema,
~21,
1
- 3ml - 4
a12
+ -27
iDa~ 30,
a:1 , x 2 , a:3 fiind intregi nenegatiYe. Bolujie. Se poate aplica, ·a1goritmul mixt. Programul optim este: iDt
=
0,
20 - c. 877
X2
=
12,
X3
=
0.
I
PROGRAMAREA. DISCRETA
306
5.28. Sa se gaseassa
tn condiyiile
max (Sa:1
lOa:2
-
2a:1 ~- 5a,2 . + 2Xs
+ a:3),
+. 33:4 ~ 4,
, ..
.a:u ••. , x" fiind intregi nenegative. BoZuJie. a:1 = a:3 = 1, a:2 = a:4 = O este prograni.ul optim. 5.29. Sa se rezolve· ·problema
-
1 a,1 2·
-
+
aJ3 ~
4a:2 '
..
25,
aJ1 ~ 3, aJ2 ~ 8, W3 ~ 4,
x1 , a:2 , a:3 intregi nenegati".e, m3'.X (2a:1 .
5
+ 3aJ2. - 4· aJ3}•
5.30. Sa, se gaseasca,
max ( - 8Xi +:lla:2 Xi -.
a,2
+
40
13X1 - -
3
. 3:2 -
+ 9a,
8 ).
2a:3 ~ 10, 153:3 ~ ,,
· 1 :, :
8, ·,
29 37 7 - - a,1+- a,2 +.16a:a ~ - , · 2 2 3
'_;i
PROGRAMARE LINIARA
0 ~ lVt :o:;;;: 8 ; 0 ~
tN NUMERE lNTREGI
X2 ~
307
3 ; 0 ~ ·Xa ~ 4;
a:i , ~, a:3 intregi.· ·
5.31. Sa se calculeze
+ 37 a: + 4x ~ 78, 92a:1 + 74X2 + 8X3 ~ 564, .. 76a: + 34a:2 + 10iv ~ 433,
- 32x1
2
3
3
1
\
a1i, a:2 , a:3 intregi n~negative. Bolutie. Programul optim este a:1
=
a:2
= 3,
a:3
= 8.
5.32. Sa se afle .
+. X7. .=. 39 _, 2 -2X7 ~
10~,\
:-:;;;: 433,
IIJ5
=
Bolutie. Programul optim este a1i 31 . a,6 = 0, X7 = - • 4
=
X2
= 3,
X3
=
4,
=
11,
= 8,
X4
= 1,
·308
PROGRAMAREA DISCRETA
5.33. Sa se gaseascai [1]
+ 7 DJ2 + 10DJ3 + 3DJ4 + a:5), =-2, - mi + 3m2 - 5x3 - DJ4 + 4DJ5 + 'Yi 2DJ1 - 6x2 + 3DJ3 + 2a,4 - 2a,5 = o, +Ya DJ2 - 2DJa + DJ4 + DJ5 + 'Ya =-1,
min
(5DJ1
Xi, .•• ,
DJ5
Bolu#e. Programul optim este
=
0 sau 1, Yu y 2, y3 ~ 0.
a,2
=
= 1,
DJ3
m1
=
a,4
=
a:6
= O.
5.34. Si se calculeze
min
(2X1
+ 5a,2 + 7aJ3 +
+ 2a,2 + -40J1 + a;2 3a,1
X3 -
+ 120J5 + 14Xa + +
lOX4
DJ3
-
a,a
+ DJ4 - DJs + 7a,s -
20J1 DJs+
6X4
DJ1, a,2, ••• , ms
= 0 sau
2a,s -
50Js -
Xs
a,s
(C7
+ 2Xs), ~-1,
DJ1
+ 60J1 ~-3!' + 2a:1 - DJs ~ 5, + 2DJs~ 8,
1.
Bolujie. Programul optim este x 4
= X3 =DJs= 0.
=
a,5
=
m6
=
DJ7
5.35. Sa se afle
min (5a,1 - X2), - Xi+ 3x2 ~6, 3DJ1 DJu x 2
Bolu#e. Xi
a,2 ~
9,
intregi nenega,tive.
= O, x2 = 2. Se poate rezolva grafic.
5.38. Sa se rezolve problema
+ 3a,z - DJ3 ~ 5, 2X1 - 4a,2 + X3 ~ 8, Xi - 2m + 2DJ ~ 24, X1
2
3
=
1, m1
=
x2
=
PROGRAMARE LINIARA tN NUMERE lNTREGI
309
:vi, a:2 , ms intregi nenegative,
min (16a:1 - 2m2 - a:s)8olufie.· Programul optim este :vi = 5, a:2 = 2, a:3 = 6. 5.37.
Sa se rezolve problems,
1 3:»i - - a:2 3
+ 2ms ~ 8,
a:1 , a:2, m3 intregi nenegative,
max (2a:1 + 3a:2 - m3 ), utilizind algoritmii discret, ciclic iji mixt. 8olufie. Cu aJgoritmul discret sint necesare opt iteratii, cu aJgoritmult ciclic tot opt iteraW, iar cu aJgoritmul mixt tase iteratii (incluzindule iji pe cele simplex). Programul optim este m1 = 2, a:2 =ms= 0. 5.38. Datele unui proiect prevad trei tipuri de armaturi : 500 buc. cu lu.ngimea de 8,00 m, 800 buc. cu lungimea, 5,25 m ti 450 buc. cu lungimea, de 2.50 m. ~a,ntierul are otel beton sub forma de a,rmaturi-bare cu lungimea de 14 m. Cum trebuie taiate barele pentru ca, lungim.ea, totaJi a de,eurilor sa fie minima, Y 8oluJie. tn total sint cinci variante. Problema, admite mai multe progra,me optime. Lungimea minima a de,eurilor este de 615 m.
BIBLIOGRAFIE t. 2.
3,
4. 5. 6. 7,
E., Programarea liniara cu variabile bivalente. Studli de statistica, 3 (1964). E., Un algorilhme additif pour resolution des programmes lineaires en variables bivalents. Comptes Rendus Acad. Sci., 258, 15 (1964). BALA!}, E., Extension de l'algorithme additif a la programmation en nombres entiers et a la programmation nonlineaire. Comptes Rendus Acad. Sci., 258, 21 (1964). BALA!}, E., An additive algorithm for solving linear programs with zero-one variables. Op. Res., 13, 4 (1965). BALAf}, E., Discrete programming by the fillrer method. Op. Res., 16, 6 (1967). BBALB, E. M., Survey of integer programming. Op. Res. Quart., 16, 2 (1965). DALTON, R.E., LLBWBLLYN, R.W., An extension of the Gomory mixed-integer algorithm to mixed-discrete variables. Manag. Sci., 12, 7 (1966), BALAfJ, BALAfJ,
810
PROGRAMAREA DISCRETA
8. DANTZIG, G.B., Note· on solving linear programs in integers. Naval Res. Log. Quart.,. 6, 1 (1959). 9. Cl>HHREJlbIDTEliH, 10. IO., 0 no.tiHocmb,o l.fe.tl,01'1.tC./U1HHOM a.,ieopum.Me ro.,uopu./Ipo6.n,eA,b1, Ru6epHemunu, 21, MocKeA, HayRa 1969. 10. FoRTET, R., Applications de l'algebre de Baole en Recherche Operationnelle.. Revue Fran~aise de Res. Op., 4, 14 (1960). 11. FREE:MAN, R.J., Computational experience with a ,,Balasian" integer programming algorithm. Op. Res., 14, 6 (1966). 12. GEOFFRION, A. M., Integer programming by implicit enumeration and Balas'method. SIAM.. Rev. 9, 2 (1967). 13. GoMORY, R.E., Outline of an algorithm for integer solution to linear programs. Bull. Amer.. Math. Soc., 64, 5 (1958). 14. GoMORY, R.E., An algorithm for integer solutions to linear programs. Princeton-IBM Mathematics Research Project, Tehnical Report, 1 (1958); vezi ~i [17). 15. Gol'tlORY, R.E., An algorithm for. the mixed integer problem. RAND-Corp., P-1885 (1960) .. 16. GoMORY, R.E., An all-integer programming algorithm, tn [19). 17. GRAvas, R.L., WoLF:E;, Ph. (editori), Recent advances in Mathematical Programming. McGraw-Hill Book Go., New York, 1963. 18. ROPBYT, A. A., Cl>HHIIBJibWTERH, IO, IO., l(uc~penmoe npoepaM.uupoBaH,ue. MoCJma,. uayRa, 1969. 19. MUTH, J.F., THOl'tlPSON, G.L., WINTER P.R., (editori), Industrial Scheduling. New Jersey~ Prentince-Hall, 1963.
·
·
1
§ 6. Problerne cornblnatorlale
./,//
./
6.1'. PROBLEMA Prin problema combinatoriala se int;elege o problema in care se a.tribuie valori numerice discrete unei mult;imi finite de variabile V care trebuie sa satisfaca. un sistem de restrictil �i sa minimizeze (sau sa maxi mizeze) o funct;ie obiectiv Z. Pentru solut;ionarea unor astfel de probleme s-au propus nume. roase metode, printre care cele · mai importante sint metodele de tip ,,Branch and Bound"*>. Aceste metode sint suficient de flexibile pentru a conduce la rezolvarea problemelor practice din cele mai diferite domenii, cum ar fi alegerea rutelor pentru vehicule, planificarea product;iei, con stituirea orarelor, incarcarea avioanelor, proiectarea circuitelor electronice, programarea in numere intregi etc. Pentru precizarea problemei l}i pentru descrierea unui algoritm · cle tip B.B., vom da in cele ce u.rmeaza citeva definiW. �i notat;ii. . RestricWle unei probleme combinatoriale pot fi implicite sau expli -Oite! Vom numi restric#i implicite restrict;iile satisfacute automat din modul de construct;ie al algoritmului (de exemplu variabilele mult;imii V iau valori intregi). Prin restric-Jii explicite vom int;elege sis.temul de restrict;ii .ale problemei ( ecuat;iile sau inecuat;iile care trebuie satisfacute de· valorile · variabilelor). Se nume�te soluJie orice mult;ime de valori numerice discrete atri buite V'ariabilelor din mult;imea V care satisface toate restrict;iile impli -cite. Solu;ia admisibila este o solut;ie; care satisface �i restrict;iile explicite. Notam cu s o solut;ie a problemei combinatoriale �i cu O mult;imea tuturor solut;iilor admisibile ale problemei combinatoriale. . Observa;ie. Mult;imea Ova fi ordonata de funct;ia obiectiv Z, in sen sulcafiecare elements En confera o valoare z(s) funct;iei obiectiv Z �i mul-t;imea. acestor yalori, {z(s)}, este o mult;ime ord9nata. ,.De obicei e,ementele s1 e O l}i valorile asociate z(s,)' nu sint cunos ,cute, dar sint definite mtr-un mod care permite generarea lor. . . . . Cele spuse mai sus ne permit sa clefinim p;roblema combinatorial.a :in felul urmator•. Fiind data o mult;ime finita
(6.1) ordonata de o funct;ie
Z :O➔R, •l Branch and Bound (pe scurt .,ramificli �i mil.rglne�te".
B. B.)
,{6,2)
denull\ire consacratii care sc traduce prln
' PROGRAMAREA: DISCRETA
31"2 ·
sa se gaseasca un element, numit element optimal, s~ e
n astfel incit (6.3)
Problemele de maxim se reduc la probleme de minim, ~ d seama de urmatoarea identitate evidenta : max Z(V)
= - min
[-Z(V)].
(6.4)
Dificultatea unei probleme combinatoriale consta in faptul ca, -datorita numarului mare de solutii, gasirea solutiei optime (elementul optimal) comporta un calcul laborios, adeseori chiar imposibil de realizat. 6.2. PRINCIPIUL B. B.
Principiul B. B. poate fi aplicat la problemele combinatoriale daca sint satisfacute urmatoarele conditii: a) Se poate gasi o supermultime finita Ta lui n:
= {ti,,t2,
T
~i o extensie Cf a lui
••• ,
t,} ::::>
n
(6.5)
·z : Cf/: T
~
R,
(6.6)
adica o functie Cf prin care se asociaza fiecarui t, e T un numar real {u~or calculabil) v(t,), astfel incit
t,
E ,Q =)
'V{t,)
= z(t,).
(6.7)
De obicei se ia drept T multimea solutiilor problemei combinatoriale, care, evident, contine ca submultime pe n, muliimea solutiilor admisibile. · b) Se poate defini o regula de ramificare ci>, care, daca se aplica unei submuliimi oarecare T" c T avind eel putin doua elemente, genereazaa o familie de submultimi : cm (T1')
= {Tt,T:, ... , T!},
(6.8)
astfel incit f
u Tf = T" ,-1
{t,h},
{6.9)
PROBLEME COMBINATORIALE
313
unde ..t, este elementul optimal al submultimii T", definit de h
w" = 'D(t,h) =min {'D_(t,) it, e T"}. ·
(6.10),
Daoa submultimile-Tf obtinute prinregula, de ramifioare ~ din sub-t mult;imea T" c T sint ~i disjuncte : . {6.11)
t,,.
atunci elementul opt~al al sub~~ltimii T" apartine unei submult,imi T!aCT7' ~i relaiia _(6.9) devine (6.9') c) T, ~ ~i I> sint astfel incit w.,,, poate fi calculat (qor) pentru fiecare submuliime The T oht;inuta prin regula de ramificate I>, adica, fiecare mult;ime· T" nU poate fi (u~or) marginita. • Prin ramificarea lui Th vom .intelege aplicarea regulii " submultimii · T" ~i prin mdrginirea lui Th -determinarea marginii inferioare wh, definita in (16.10). 0 submu,lt;iine Th generate, de regula $ se va numi acti'Da daca ·nu a fost inca selectata pentru ramificare. · . Cu aceste definit;ii se poate enunt;a urmatoarea teorema datorata Jui E. Bala~ [1] : TEOREMl. Procesul format din etapele (1), (2) ~i (3) date mai jos se termini/, dupil, ·un numii,r finit de iteratii : 1) .A.legem submullimea .ThcT, definita de
w! = min
{w"I Th e..4.},
(6.12)
unde A este familia submullimilor active The T {la start, familia .A conline un singur element, fi anume mullimea T, adicll, .A.= {T}). Dacit w! = v (t;>,- cu en, atunci am te1·minat, intrucit t; este elementul optimal al lui 0. Daca t; EE. n fi multimea • T,. aleasa are numai un singur element, !Ji anume pe t~ atunci repetam (1). Dael, t; EE n, dar mulfimea • T" mai are Ji alte eleme-nte in afara de t;, atunci mergem la (2). 2) Ramificam ,.T1'. 3) M 11,rginim tofi • T1 e "(• T") revenim la (1). Demonstra#e. Am vaznt mai sus ca un element t, e Tse abandoneaza daci. este unicul element al unei submultimi ThcT~idacat; EE n. Se alege pentru ramificare acea submult;ime cu elementul optimal care satisface (6.12) ~i oricare ar fit, e T cu v(t,)1 = .,;, :c,5 =- «>. b) Reducerel matrlcel asoclate. c) Matrlcea redwm C(Y) coresvunzitoare nodulul Y ""(5, 6) Qi elemi;in!ele O Ii. ;).
=>
4-
3
2
3
5
13
00
2
6
-5
5
3
~,
8
-----1-7
/~
i{·')i_j.., ; //
5
3
4
4
5
6
0
7
00
_1_8_1_7 _ _ 0-
O'
0-
00
c) 6
b)
Tabela 6.6
Pormarea matrlcel asociate nodalal Y - (3,5). a) Qaairea o:1.1>ete1or secventel cu mal Putin d~ 6 elemente : :P 1 . . 2, f's ... 8, 91 "" 4, 911 = 6 9 OQ' 111 1 .. Cu OG'sr,a = 0 00 • b) Reducerea m'ltrlcei asociate, c) Mat,ricea redusA C(Y). Y = (3,5) ei elementele 8 (i, ;1. 6
,=
2 4
3
5
4
00
7
6
0
00
-7
6
0
oo
c)
6
b)
oo
4m 3
2
5
3
=
PROBLE~ COMBINATORIALE
323
. Pasul 10. Se reconstituie caracteristicile nodului X = (1,4), adica matrtcea, ata~ata, ~i marginea ~erioara (recalcularea marginil inf~rioar~) . .· .: PeAt!ll aceasta vom .(?onsidera mat~ice~ init,iala O(c,,) ~i yom, calc~a
=
g
t c,,,
(i.i).EY
unde V este mult,imea perechilor· de ora~e implicate in rutele din X = = (1,4). 1n cazul nostru g = 0, pentni ca nu avem nici o pereche de ora~e, deja implicate in rutele nodului (1,4) ~adica V = ). 1n cazul general pentru fiecare (i,j) e V se :taie din matricea init,iala 0(0) linia i ~i coloana j ~i se atrf'->~ie valoarea oo eleµientelor 01111 , care ar forma subcircuite inainte de parcurgerea celor n ora~e. 1n exemplul considerat nu avem astfel de situat,ii, dechiu vom face nici una dintre aceste operat,ii. Se citesc apoi perechile de ora~e (k, Z) carora leeste interzis sa apara in rutele lui X ~i se marcheaza·aceasta interdict,ie,Iuindu-se c,1:=00. tn cazul nostru, singura pereche de ora~e in aceasta situat,ie este (1,4), deci, se ia
.
~=~
·_
.
Matricea asociata nodului X = (1,4) se ·obt,ine reducind matricea obt,inuta mai sus, iar marginea inferioara se recalculeaza dupa relat,ia w(X) = g + h = 0 + 58 = 58, unde h este suma constantelor de 1·educere (6.15) . .Aceasta margine inferioara poate diferi de marginea calculata anterior ~i pentru acestmotiv pe ea o vom considera pentru calculele urmatoare. Conform procedurii descrise de schema logica din figura 6.1, se reiau calculele incepindu-se cu pasul 3. Vom gasi (tabela 6.7) doua noduri Y = (6,3) ~i Y = (6,3) cu marginile w(6,3) = 67 ~i respectiV' w(6,3) = 63. Tabela 6.7 Beeonstrulrea caraderisliellor nodului Y ...
IT:4>.
a) Formarea matricei aso::la~e. b) Reducerea matrlcel.
4
3
2
iI
5
6
2
4
5
6
4
0
29
24
1
00
27
43
:0
30
26
-26 I
7
00
16
1
30
25
-1
I- - - - -- - - - - -2
3
-Mt" 00
2
1
00
CX)
- - - - -- -·- -- - 3
20
1:i
35
:0
5
a
0
- - - - -- -- -- -.... ~
4
21
16
co
25
18
18
-16 4
15
13
-- -- --
7T 0
00
- - - - -- -- -- - 5
46
1"2
27
. .
48
00
5
- - - - -- -- - -..- 6
23 5
l
5
I
5
9 a)
5
co
-5
5 5
2
43 .
41
-6
h)
2
2
- L I2
,_-_
____ I co
I·
o
.
324
PROGRAMAREA DISCRETA
· Sintem acum in situaiia descrisa de pasul 7, ~i anumc de a alege nodul cu cea mai mica margine inferioara. Gasim doua noduri (6,3) ~i {3,6) care au aceea~i margine inferioara W(X) = 63. Pentru ramificarea urma• a) GllslrM 11ecvenfelor cu mat puJlo de 6 ele;nente. b) Forma.rea matrlcel asoclate. C) Beduoerea matrlcel,
1 1
,.._
-
1-
2
3
4
5
6
..... -
...--
co
.,,... _,_
...... .,
~-.....
-...
n ...
-
-,.
-
,-
2l
..... -----
.... --
-
25
c;,
18
CIC _.J.6-"
- -.,.-
..... --
--
- - -t
6
.,....tW-:
-
,_ ,5
3
-" --- -....--
1-
4
2
2S
I
5
.
.....
-·
00
~
u
- ...
~
i)
I
a}
2
3
4~-25
~
~
...f,-
,.,
01>
68-5
2
3
4
00
0
6
0
00
c)
b)
Am ajuns la o matrice O{X) de tip 2 x 2. 1n acest caz avem : Pa1ii ll'fi 12. Daca matricea O(X) este de tip 2 x2, atunci vom avea numai doua perechi de ora~e admisibile care completeaza un circuit. Pentru aceste doua perechi, = o, fiindca matricea O{X) este sub forma redusa, deci costul intregului circuit este z = w( Y), unde Y este ultimul nod. Daca z < z0 , inseamna ca circuitul gasit este eel mai bun ~i il citim din arbore (fig. 6.2). 1n cazul exemplului considerat, dupa cum se vede din figura 6.2, eel mai bun circuit este
c,,
1 - 4 - 3 - 5 - 6 - 2 - I,
co~tul rutei fiind z0 = 63. Din . expunerea de mai sus se pot desprinde urmatoarele caracteristici ale · algoritmului : - fiecare iteraiie mic~oreaza dimensiunile matriceii ; - limita inferioara asociata nodului care contine o pereche de ora~e ncincluse in circuit se calculeaza din niatricea redusa ;
326
. ~ROGR4MA.REA. PISC.RET).l :
- blocarea circuitelor prin introducerea elementelor , de . valoare oo in matrice inlatura posibilitatea formarii s-q.pcircuitelor-;. •:· • ·. . : · - ramificarea ~e face din nodurile cu. cea inai mici, lirmta inferi~ oara.. Observatii asupra algoritmului. .a) Dezavantajele algoritmului sint urma toarele : .~-. numar:ul nodU:rilor ~xpl◊rate ·· cre~tEf° :f~arte 'mult .Qiµ4_ 11:umarul n cre~te; . - numarul nodurilor create pentru determinarea linei solutii optime ~ste. mai m._are· cin.4 w(O), limita inferioara asociata p~~mului nod,. este niai departata de va,loarea limitei inferioare asocfata rutei optime ; ·· · - la diverse modalita~i de reducere amatricei (constantele de 1·educe1·e se scad mai intii pe linii ~i apoi pe: coloane sau, invers, mai intii pe coloane ~i apoi pe linii sau dupa modul aratat. in pasul 10), valoarea limitei inferioare·, w(X) asociata nodului X poate diferi. De aceea, ~ practica, pentru calcularea limitei inferioare a · nodului initial ·se reduce matricea in ambele noduri, linie-coloana ~i coloana-linie, luindu-se limita inferioara cea mai mare. Pentru celelalte noduri se pastreaza :q.na dintre aceste modalitati de calcul, iar atunci cind e cazul se folose~te metoda ciescrisa in pasul 10 ; · - nu; define~te in ·mod unic cuplul care trebuie inclus in circuit, in sensul ca in pasul 3, cind se alege perechea (k, Z) ca-fiind aceea pentru care 8 (k, Z) = max 8 (i,, j), putem avea dona sau. mai multe astfel de p~rechi: · · · 8(r, l)
=
6(p, q)
= max ,.;
8 (i, j).
1n acest caz, pentru alegerea nodului care ~e ramifica ~e· proce deaza dupa una dintre m·matoarele ·.doua modalitafi: . ,.,•·. - se calculeaza: ... 6' (r, Z)
=
8 (1·, t)
+ min {min c,J, min ci I
6'(p,q)
~i se va alege perechea
= ('1·,
6(p, q)
·'
1\,
·•
+ min {min Ci,;,· min
8'(p, q);
~
i ."
~ ~•
.·.'
.~ ~; :
!
•
•
.
> l \ •.
- se calculeaza liniitele w{i,, j,) pentru· to~t~ .. p~r~~~ile : (i,,:: j,), apartinind muiiimii U pentru care max 8 (i, j) = 8 ~i., j,~ .; : :~ · .. -~~
PROBLEME COMBINATORIALE
I:
327
~i se a1ege perechea (k, Zj pentru care w (k, l)
=
min w li,, j,). Ci,,ie>eu
b)· .Algoritmul lui Little poate fi aplicat fara modifica-ri iji in· cazul cind matricea O. = [Cl,1] este simetrica. Numarul solutiilo;r in acest caz este 1/2 (n___:1) ! deoarece o ruta oarecare confera functiei obiectiv aceea~ va,loare in~erent de senSll). m care este parcursa. Daca matricea este simetrica, o data ce pereche.a (k, l) este inclusa in ruta se ia c,1: = oo. .Aceasta modificare a a1goritmului ne conduce Ja o reducere importanta a nunia:rului de noduri care trebuie explorate pentru determinarea solu~iei optime. . . : De asemenea algoritmul lui Little poate fi aplicat §i problemelor combinatoriale in care matricea initiala O(D.) are §i alte elemente oo in afara de c_. = oo. 6.4. AL Tl ALGORITMI DE TIP BB
.Alta categol'ie de algoritmi de tip BB este formata din algoritmii care permit rezolvarea problemelor combinatoriale in care se cauta succesiunea optima an-activitatipem obiecte, satisfacmdu-se anumite conditii specifice problemelor studiate (de exemplu pla.nificarea lucrului pe ma~ini, constituirea orarelor, incarcarea avioanelor etc.). Numarul solutiilor posibile in astfel de probleme este, in general, (n tr, dintre care una sau mai multe pot fi optime. B. Roy [13] demonstreaza ca in toate solutiile optime ordinea activita-tilor pe primele doua obiecte M 1 §i M 2 este identica cu ordinea activitatiJor pe ultimele doua obiecte M m-i §i Mm• Prin aceasta, numarul solutiilor care trebuie studiate se reduce la (n !)m- 2 deci, daca m = 3, avem numai n ! solutii, iar succesiunea activitatllor este aceea§i pe toate obiectele. Ca,zul particu1a.r a n activitati care se executa pe trei obiecte se inti1ne§te foarte des in literatma,, propunindu-se mai mulii algo1·itmi de tip BB. Ace~tia se deosebesc intre ei numai in ceea ce prive~te calculul limitelor inferioare, fiind astfel susceptibili la o sinteza pe care o vom prezenta mai departe. 1) Ramificarea de la un nod la noi noduri. N odul initial n 1·eprezinta multimea celor n ! permutari ce se pot face cu numerele 1, 2, . .m, indicii activitatilor Su S 2 , ••• , Sn. Un mod inte1mediar N1: reprezinta multimea tuturor permutarilor partiale a indicilor 1, 2, .. ·., n, adica permuta,rile in care primii l: < n indici sint specificati intr-o anumita ordine. Din acest nod inte1mcdiar N"k se creea.za, prin ramifica-rea (n-k) noi noduri obtinute prin specificarea celui de-al {k + 1)-lea indice aJ permutarii dintre cei (n - k) indici a caror pozit,ie nu :fusese spe cificata anterior. Prin acest
328
PROGRAMAREA DISCRETA.
procedeu de ramificare se obiine un arbore cu un numar maxim de noduri, egal cu · · ·. · · 1 +n + n(n -1) + ••• n!.
+
2) Determinarea marginilor inferioare Fie N 1: noclul care rcprezinta muliimea permutarilor indicil01· 1, 2, ... , n in care primele k locuri sint ocu·pate de o permutare data Ik a acestor indici. Notam cu A (Ii:), B (Ii:) ~i Otl,J timpul necesar obiectelor A, B ~i O pentru a termina ultima din cele 7c activitaii incluse in Ii:. Ma,i notam cu b, ~i timpul de adaptare al obiectelor .A, B ~i O pentru a executa activitatea S, iar prin 11:, mult,imea celor (n-k) indici care nu figureaza in I1:. Cu aceste notat,ii se asociaza 1:1-odului N1: ma1·ginea infe1foa1·a, definita prin
a,,
c,
(6.21) a.1 " , ~ I1:,
iji y I1: sint definit,i in diferit,i aJgoritmi astfel :
algoritmul lui Z . .A~ Lomnicki [9] : rx. 11:
= A (I1:) + ~- ai + mi_!}. (b, + c~), iEI!'
iEI1:
(6.22)
- algoritmul lui E. lgnall fi L. Schrage [6] inlocuie~te in (6.22) pe B (1,:) prin ma.x [B (I,..), A (I,;)+ ~ b~], iEf1:
0(1,J prin max [O (l,J, B(l,.J + m!n iEI1:
b,, A (1.1:) +
(6.23)
m,!n la,+ b,)], iEI1:
- algoritmul lui G. B. McMahon fi P. G. Burton [10] define~te
~r1: Yr 1:
=
B(l.1:f+ m~x [b,
= C (I,.) +
iEI1:
~ ci.
iE'f1:
+ c1 + 4
kEI,: k=t=i
min {b.1:, cc)],
(6.24)
PROBLEME COMBJNATORIALE
329
P~erenta dint"i·e cele trei modui-i de ca.Jcul al limitei inferioare asociate nodului Nk este ca in anumite probleme ultimele doua dau o limita inferioara mai ma.re, care in aceste probleme permite o explorare mai rapida a nodurilor. Cu toate acestea, a.legerea unuia sau a altuia dintre algoritmii enuntati mai sus se face numa,i practic, funct,ie de pro blema pe care o avem de rezolvat. 3. Alegerea nodului pentru noile ramifieari. Dupa ce s-au calculat limitele tuturor nodurilor create int1·-o operatic de ramificare se continua ramificarea, din acel nod intermediar care are cea mai mica limita inferioa1 a. 4 Reeunoatterea unui nod care conµne numai solutii neadmisibile sau neoptimale. Toate solutiile problemei sint admisibile, deci n T. Un nod care contine solutii neoptimale are marginea inferioara mai mare decit cea mai mica margi!~~ inferioara obtinuta pina in acel moment.
=
5. Recunoatterea unuj nod final eare confine o solutie optimaUi. Este u~or de yazut ca toate cele (n-k) noduri obtinute dintr-un nod intermedia1· N" ~u ma,1ginile inferioare in relat,ia (6.25)
fata de margin(a inferioa1a a nodului generator. Atunci, in virtutea acestei observatii, uii nod final contine solutia optima daca marginea inferioara asociata lui este mai mica sau eel mult egala cu a tuturor nodurilor intermediare. E. IgnaIJ, in [6], afhma ca numarnl nodmilor cxplorate pentru deteimina1ea rn1utiei optime poate ii esential redus, tinind seama de nodurile dominante. Vom spune ca nodul N,, domina nodul NL d·1ca Ir ~i Lr, sint doua permutari difel'itc ale acelora~i r indici din mult,imca indicilor I, 2, ... , k pentrn cai c sint satisiacute e:tergem no· durile domlnante
n - numarul activit. A - matricea 3 x n T +- M; s: 1,2, ... , n
Hamific nodurile N,,
3.
DA
Calculam limitele infcrloare. TabelAm nodurile cu cea mai mica
5.
Jimitll inferioara, ordonate dupll k (nr. activ. stabilite). Lista con iine i noduri. 6.
NU
10.
7.
NU 9. 8.
Retinem cele I no-
duri care
T +- w(N
satlsfac
~> 1---------conditille 6 fi 7 (adicA k
=n
fi w(N~)-:i 7')
Fig. 6.3. - Schema logica penlru algoritmi de tip pentru planific1rea a n activita~i pe m = 3 obiecte
E(J)emplul Z. Produsele Si, 8 2, ••• ,86 se realizeaza fiecare prin executarea a trei operaW pe ma~inile A, B. 0. S3 care suooesiunea in care aoeste trei ma~ini trebuie folosite pentru realizarea celor ~ase produse astfel ca: - fieoare din produsele S17 8 2 , • •• ,86 , considerate ca ~ase sa.rcini, necesita utilizarea ma~inilor .A, B, iji O intr-o ordine determina,ta ; - timpul de pregittire al ma~in.ii Al B sau 0) care a executat ~aroina 8 0 1.~i. O,
pentru orice realizare eu e !l. A doua categorie de probleme o constituie problemele de decizie (JU, incertitudine, sau, mai pe scurt, probleme cu incertitudine. ln cadrul acestei categorii de 1n·obleme se poate cere ca programul x sa verifice restricWle doar cu o ,1numita probabilitate data dinainte sau se introduo penalizari pentru restrictiile care nu sint verificate. De~i problemele cu solutii permanent admisibile pot fi privite ca un caz particular al problemelor cu incertitudine (de exemplu fixind probabili tatile de satisfacere a restrictiilor egale cu unitatea sau alegind penalizari infinite), o astfel de tratare nu este recomandabila, intrucit fiecare dintre cele doua categorii de probleme utilizeaza metode proprii iji au mijloace diferite de rezolvare. Primul paragraf al acestui capitol este destinat problemelor de repartitie. Urmatorul paragraf se ocupa de rezolvarea problemelor de programare stohastica pe multimea solutiilor permanent realizabile, iar obiectivul c3lorlalte doua paragrafe ii constituie programarea stohastica in dona stadii ~i cu restrictii in probabilitate. Aceste trei paragrafe pot fi privite ca tratind problemele de decizie in programarea stohastica~
"i
••
, 1· ·
§ ·7 · Probleme de repartlfiEi
7.1. ~ETERM~NAREA FUNCTIEI DE R~PAR"flTIE A OPTIMULUI
Determinarea exacta a, functiei de repartitie, de~i posibila din punct de vedere teoretic, conduce, ohia,r pentru probleme de dimensiuni mici;. la, un volum mare de c~cule. Exista; desigur, iji unele oazuri particulare in care repartitia lui z (ea>) se ob"(iine cu un numar relativ redus de calcule. tn para,gra,ful de fata vom exa,mina, citeva cazuri de acest fel, dar mai intii vom studia problem.a, generala. Metoda descricrii complete. Metoda, descrierii complete este o metoda generaJa pentru·. ca,Iculul repartitiei .funcjiei obiectiv, care se poate aplica chiar daca coeficien"(iii problemei de programare stohastica au repartijii discrete sau discontinue. Sa consideram problema de programare stohastici Ax= b, (7.1)
· X
2: 0,
.z
= min c'x,
in care .A este O matrice m X n, b E Rm, CE R~, iar (.A, b, c) : n~Rm"+m+n este o yariabila ale~toare. Fie ;a un numar real. Func"(iia de repartitie a lui z() in punctul a reprezinta probabilitatea ca z() sa ia, valori mai mici decit a: F(a)
=
P ( I - oo ) > - oo). Sit notitm cu E evenimentul : · ·· E
= (~ I ra,ng
A()
= rang
(A(), b())}.
Daca e E, problema (7.1) nu are solu"(iie, deci
·· · EC {oo Iz() = 23 - o. 377
+ oo).
)X I A(), x 2 O}.
= min {c'(Ct>)X IA( IZ(6l}
< a}n B, n B,,) etc.
Sa calculam acum
Daca z(6l} = + oo, problema (7.3) nu are programe ~i deci pentru nici o va,loare a lui l = 1,2, ... , s, B, nu formeaza o baza admisibila. Prin urmare PBn1 {6> I Z(6l} =
+
00
p
(u [(6> I IB,(6>) I 1-1
= O}
u.
(7.8)
357
PROBLEME DE REPARTITJE
Daca .i(6>) = -oo, problema are optim infinit, deci exista o baza admisibila B, ~i un indice j, pentru care, cu notatiile uzuale, z, - c,> 0, y, ~ 0. Rezulta. Pzn"';. (6> IZ(6>)
=-
oo)
=p
(u u
{ 11 B,() I =I= o, B,- 1(c.>)b(c.>)2
1=1 ;=1
~ O, e•1 (ru) u,- 1 (ru) a, (ru) > e, (ru),
Bi~'(ru) a1(ru) ) se obtine deci din formula F(a) = P { Iz(c.>)
< a}
•
= ~ P { Iz(c.>)
< a, B,} = ~•
1-1
b(eu) 2
o,
P {eu I B,- 1 ().
1-1
c 8 '() Br\) B,() ~ c8 1(), c 8 l(c.>) B•- 1() b(c.>)
0,
sint variabile aleatoare independente cu densitaine de
= -. 1-
pentruxe [-1,1],
' 2
pentru y e ( - oo,O ],
f11(Y)-= e11 fi;(z)
4,
= ·_!_ e-I=-1I
pentru ze(-oo, +oo).
2
Sa se calculeze cu. o ·aproximaiie de eel mult 0,03 probabilitatea ca maximum sa fie mai mic decit 15. Solutie. Vom aplica metoda descrierii incomplete : (+ao
M~
(oe>
40
= o,_ M'YJ = Lao yd1\(y) = LOC) yeu dy = - 1, Jtl~ = J-ao zd.Fi;(z) = 1.
Dupa introducerea variabilelor de egalizare, problema deterministica,
corespunzatoare valorilor medii este
+ Xs
=
6,
=
18,
=
4,
= 14,
375;
lui
Baza optima a acestei probleme este B1 = (au a 2, a3, :ii5); Inversa·
Bi (pentru matricea iniVial~) es·te
=I_·l~
u-1 1
4 .4
-1
0
3
2
0
-2
_.(~+7)'
D-lb~0=9 [ {1J + 11) 3 _ . (~1.l ~ 2 . ' ~'
0
.3~ +.13
-5
4
3
0
I
, (1 - 511) ] ~
+ 11~ + 3~ + 29) 2
2
o.
-
.
2 B,_ este dual-admisibila dacli. c8 •.Bt 1 8 1 > cu., adicii. ( ; l;) , (3 l; ; 2 ),:;;;, L (~,O).
+
Deoarece ~ll + 11~ 3l.l + 29 :2= O ➔ 11 ~ - 11 (caci babilitatea ca Bi sa fie baza optim3! este
P(B1)
= ~ ~)
e11da1 dy
~
= P{
r
+ 111; + .31J + 29::;,. o, :
~.
a,
-
3
IA(t2 ) ~ A(CJ>} ~ A(tj}, b(t1 ) ~ b(CJ>)·~ b(t2 ), c(t1 ) ~ c(CJ>) c(t 2}), pe care-I vom nota E(t1 , t 2 ), implica evenimentul {CJ> Iz (ti)~ z((,)) ~z(t2 )). ' . Prin urmar~ ... ... -. ·..f..•..
,.:
;,,
379
(7.25)
sa
Obtinem astfel o aproximare (prin lipsa) :a probabilitatii ca ·z (6>) ia valori in intervalul [z(t1 ), z{t 2 )].
tn unele cazuri, calculul '1>robabilitatii evenimentului E(ti, t 2 ) se poate face u~or. De ~xemplu, Iosifescu ~i Theodorescu [8], [9] stabi1esc urmatoarea expresie pentru cazul cind toate elementele aleatoare ;aint. independente ~i au repartitfi normale :
k fiind numarul componentelor aleatoare in tripletul (A, b, c) (k m n), iar (t) functia de repartitie normala.
+ +
~
mn +
· Daca variabilele sint dependente, dar au totu~i repartitii normale, ). Deoarece in afa,ra, de ~1 celelalte variabile nu sint ...marginite, .. vom cauta ni~te intervale in care aceste variabile sa ia valori cu o prob8rbilitate.foarte aproape de 1. Din tabele se obtine, de exemplu, ca o variabila aleatoare normala &>t(m, a) ia valori in intervalul [m - 4a, m + 4a] cu o probabilitate mai m~e de 0,9999. Deoarece 4 In 10 C:t. 9,21, 111 va, Ina valori in intervalul [O; 9, 21] de asemenea cu o probabilitate de 0,9999. Vom avea, prin urmare, - 4
~
a:is = - ~2
~
4;
· PROBLEME DE REPARTr.(.'IE
- 65
.ta-115> dad,
15 18,
(14-a - 117)} - A(2a-21) = e-si - e 6 daca, a> 18 ti O in caz 5 contrar. Functia de repartiiie a lui z(Ci>) se obtine acum imediat; derivind apoi tn. raport cu a gasi.m densitatea lui .z(Ci>).
P {27
.a
6 da
18
=
8
==
2A A (GO
(GO
_
A(1t-8)
Sa oalculam ~i z(l!Jb). Deoarece E'tJ1 = La, ydPTJ, (y) = 7 Je ye 7 dy= 1 3 2 1 . = 6 + A' iar E'tJa = - • + 9. =-= 2 fl E1J1 ~ 3E1Jz,.
3
2 3
rezulta, z(Eb)
=
5E1J1
+ 13E'1Jz = 14
25 - o. 377
8A + 5. 2A
386
PROGRAM.ARE STOHASTICA
Inegalita.tea. (7.27) se verifica acum imedia,t caci E.z(6>) ~ ~(Eb) tnseamni lli.
+ 4 + e-s). 21
~ ei:e
Si.
+5
21
inegalitatea. adevarata pentru orice
it.
sa.u 31
+ e-s>. :2: I,
> 0.
BIBLIOGRAFIE 1.BABBAR, M. M. Distribution of solution of a set of linear equations (with application to linear programming). Journal of the American Statistical Association, 60, 854-869 (1955). 2.BBBBANU, B. Problema stochastica a tramporlului, I-II. Comunichile Acad. R. P. R., 13, 4 (1963). 3. BBRBANu, B. On ,tochastic linear programming, I, Distributions problem, A single random r,ariable. Rev. Roum. Math. Pures et Appl., 8, 4 (1963). 4. BBREANu, B:, Asupra distribuliei optimului tn programarea liniard sloeasticif. Analele Univ. Bue., MatematicA-mecanlcA, U, !l (1965). 5. BERBANU, B., On stochastic linear programming, the Laplace Transformation of the optimum and application. J. Math. Anal. Appl, 15, a (1966). 6.CotmTJLLOT, M., Contribution ci la theorie de la programmation lineaire et de la programmation stochastique. these, Paris, 1963. 7. FoRTBT, R., Probl!mes lineaires stochastiques, mathematique des programmes konomiques. Paris, 1964, p. 109-126. 8.Ios1mscu M, THBonoRESCu, R., Sur la programmation lineaire. Comptes Rendus Acad. Sci., 2158, S3 (1963). 9. losIFESCu, M, THBoDORBSCU, R., Asupra programdrii liniare stochastice. ComunicArile Acad. R. P. R. 12, a (1962), 10. MADANSKY, A., Inequalities for stochastic linear programming problems. Manag. Sci., 8, 2 (1960). 11. MANGAS.ARIAN, O. L., ROSEN, J. B., Inequalities for stochastic nonlinear programming problems. Op. Res., 12. I (1964). 12. M1uoc, Gh., NXD&TDB, I., Programare, 111atematica. vol. II, Bucuretti, Edit. i,tilntiflca, 1967. 13. PlmKOPA, A., On the probability distribution of the Optimum of random linear program. J. SIAM of Control, 4, 1 (1965). 14. TALACKO, T. V., On stochastic linear inequalities. TrabaJos de Estadlstica, 10, 89-112 1959. 15. TlTNBR, G., .A. note on stothastic linear programming. Econometrica, 28, 2 (1960). 16. VAJDA, S., Inequalities in stochastic linear programming. Bull. Inst. International de Statistlque, 36, 357-363 (1958). 17. VAJDA, S., Mathematical Programming. Londra, Addison-Weseley, 1961. 18. WAGNBR, H. M., On the distributions of solutions in linear programming problems. Journal of the American Statistical Association, 53, 161-163, 1955. 19. WILLIAMS, A. C., Apro:dmation formulas for stochastic linear programming, J. SIAM on Appl. Math., 14, 668-677 (1966). 20. Z!cKov!, z., Stochastic:ke linedrni programovdni. Ekonomlcko-Matematicky Obzor, 3, 8 (1967).
§ 8. Programe stohasflce permanent reallzablle
Si considerim problema,
max ex,
(8.1)
cu condi1;iile (8.2)
x>O,
in care unele sau toate componentele matricei A iji ale vectorilor b iji e sint varia,bile aleatoare. Sa admitem ca se cere sa se ia, o decizie inainte de a, cunoa,te valorile pe care le iau va,ria,bilele aJeatoare. Dael vectorul c este constant, decizia x care maximeaza funo'(iia, ex se poa,te alege din mul~ea
vectorilor x, a, cAror probabilitate de a satisface restric'(iiile este eel putin ega.li cu O vaJoa,re data ct adica Xe!, unde &
={xix~> O, P (Ax. ct pentru orice (A, b) posibil}.
(8.3)
Daci dt,oizia x trebuie sa satisfaci restrictiile (8.2) pentru orioe realizare a, cuplului (A, b) atunoi x e 8, unde 8
=c.>EO n {xlx>O,
A(c-,)x.)},
(8.4)
8 se numefte muljimea, aoluliilor permanent realizabile. Ne vom ooupa, in primul rind de descrierea mulvimii solu'(iiilor permanent realizabile ti apoi vom discuta modificirile funo'(iiei obieotiv tn cazul in care vectorul c este aleator. 8.1. SOLUTII PERMANENT REALIZABILE
Pentru o valoare data
a,
cuplului (A, b) multimea
8(1..
•>
= {x I x > 0 ,
Ax . o,
Ax ~ b·} .
(8.7)
E U4or de arita,t ci s• este o submultime ai multimii solutiilor permanent reaJizabile 8 ~i cA B• 8 da,ca, (i) componentele vectorului h shit va,ria,bile aJea,toare independente a,u (ii) b• apa,rtine multimii vaJorilor pe ca,re le poa,te lua, vectorol aleator b, cu aJte cuvinte este o valoa,re ,,posibila" a veetorului b. Dael, este satisficuti una, dintre conditiile (i) sa,u (ii) atunci optimul functiei obiectiv pe multimea 8* este identie cu optimul pe 8. In ca,z contra.r solutia problemei pe multimea, s• este o deoizie suboptimiJ, permanent realizabila. ·--· CazuZ 2. Cuplul (A, b) ia, un nu.mar finit de vaJori (A''' b''>), r = = 1, ... , s. In acest caz multimea, solu(;iilor permanent reaJizabile este
=
f