Documente Academic
Documente Profesional
Documente Cultură
(1) aT x = :
1
Mulţimea vectorilor x care veri…c¼ a relaţia aT x sau aT x formeaz¼a
2
un semispaţiu. În < semispaţiile sunt semiplanele de…nite de inecuaţiile:
a1 x1 + a2 x2 respectiv a1 x1 + a2 x2 :
Funcţii convexe
Fie X <n o mulţime convex¼ a. Funcţia f : X ! <m este convex¼a
a şi nevid¼
1 2
pe X dac¼
a pentru 8x ; x 2 X şi 8t 2 [0; 1] are loc inegalitatea
2
Funcţia f este explicit cvasiconvex¼a pe X dac¼ a pentru 8x1 ; x2 2 X (f (x1 ) 6=
2
f (x )) şi 8t 2 (0; 1) inegalitatea (3) este strict¼ a.
Orice funcţie convex¼ a este cvasiconvex¼ a şi explicit cvasiconvex¼
a. Funcţia f
se numeşte concav¼a, strict concav¼a, explicit cvasiconcav¼a pe X, dac¼ a ( f ) este
respectiv convex¼ a, strict convex¼ a, explicit cvasiconvex¼ a pe X.
Funcţia f este liniar¼a dac¼ a este atât convex¼ a cât şi concav¼
a. Mulţimea
funcţiilor convexe este închis¼ a faţ¼
a de adunarea şi înmulţirea cu scalari pozitivi.
3
Rezult¼
a c¼
a funcţia f este cresc¼
atoare în raport cu x1 şi x3 şi descresc¼
atoare în
atatea punctului x0 :
raport cu x2 ; în vecin¼
a f 2 C 2 (X); atunci:
Dac¼
@ 2 f (x0 )
Hf (x0 ) = r2 f (x0 ) = ; i; j = 1; :::; n;
@xi @xj
Demonstraţie.
Fie x 2 X un punct de minim local al funcţiei f . Rezult¼ a c¼
a exist¼
a">0
astfel încât 8x 2 X \ S(x ; ") s¼ a avem f (x ) 6 f (x), unde S(x ; ") este sfera
deschis¼a de centru x şi raz¼
a ": Presupunem prin absurd c¼ a ar exista x 2 X punct
de minim global al lui f deci f (x) < f (x ): Pentru orice 2 (0; 1); deoarece X
este convex¼ a rezult¼a x = x + (1 )x 2 X: Dac¼ a alegem < "= kx x k ;
avem x x = k x + (1 )x x k = j j kx x k < ", adic¼ ax 2X\
S(x ; ") şi deci f (x ) > f (x ): Pe de alt¼
a parte, din faptul c¼ a f este explicit
cvasiconvex¼ a pe X rezult¼ a f (x ) < max(f (x); f (x )) = f (x ): Contradicţie.
Conform acestei propoziţii, determinarea minimului global al unei funcţii
(cvasi) convexe pe o mulţime convex¼a se reduce la determinarea unui minim
local.
4
Propoziţia 4
Fie X <n o mulţime convex¼a, f : X ! <m o funcţie convex¼a, iar g :
k
X ! < o funcţie liniar¼a. Dac¼a sistemul
8
< f (x) < 0
g(x) = 0
:
x2X
5
0 1 0 1 0 1
a11 a12 :::a1n x1 b1
B a21 a22 :::a2n C B x2 C B b2 C
A=B C; x = B
B ..
C B
C; b = B ..
C
C
@ :::::::::::::::::::::: A @ A @ A
. .
am1 am2 :::amn xn bm
Mulţimea soluţiilor unui sistem de inecuaţii liniare este o submulţime convex¼
a
din <n .
Rezultatul fundamental în problema existenţei soluţiilor pentru sistemele de
inegalit¼
aţi liniare este cunoscut sub numele de Lema Farkas-Minkowski.
Lema 1 (Farkas-Minkowski)
Dintre sistemele liniare
Ax = b
(4)
x>0
şi
AT u > 0
(5) ;
bT u < 0
Observaţii
1. În enunţul lemei Farkas-Minkowski sistemul (5) poate … înlocuit cu sistemul
AT u 6 0
bT u > 0
2. O formulare echivalent¼
a: o condiţie necesar¼
a şi su…cient¼
a ca sistemul
Ax = b; x > 0
s¼
a …e compatibil este ca
AT u > 0 ) bT u > 0:
Exist¼
a de asemenea cel puţin 30 de leme de tip Farkas-Minkowski .
Forma general¼
a a unei probleme de programare liniar¼
a
O problem¼
a de programare liniar¼ a const¼ a în optimizarea (minimizarea sau
maximizarea) unei funcţii liniare cu condiţii liniare (egalit¼
aţi sau inegalit¼
aţi). Se
caut¼
a extremul unei funcţii liniare de n variabile
z = c1 x1 + c2 x2 ::: + cn xn
6
8
> a11 x1 + a12 x2 + ::: + a1n xn b1
>
> >
>
< a21 x1 + a22 x2 + ::: + a2n xn b2
>
>
> :::::::::::::::::::::::::::::::::::::::::::::::::::::
>
>
: am1 x1 + am2 x2 + ::: + amn xn bm
>
7
CURSUL 2
Teorema fundamental¼
a a program¼
arii liniare
Algoritmul simplex primal
Programarea liniar¼
a este un instrument puternic de rezolvare a unor prob-
leme reale din cele mai diverse domenii. Creşterea puterii de calcul şi a capac-
it¼aţii de memorare a calculatoarelor i-a încurajat pe analişti s¼
a descrie cât mai
detaliat fenomenele studiate, obţinând modele matematice de dimensiuni foarte
mari.
Metoda simplex, propus¼ a de Dantzig a constituit metoda de baz¼ a pentru
rezolvarea problemelor de programare liniar¼ a, pân¼
a în 1984 când a ap¼ arut o nou¼
a
direcţie de cercetare: metodele de punct interior s-au dovedit a … mai e…ciente
pentru rezolvarea problemelor de mari dimensiuni şi au fost aplicate cu succes
şi în rezolvarea problemelor de optimizare neliniar¼ a.. Algoritmul lui Narendra
Karmarkar a determinat o ”revoluţie” în domeniul program¼ arii matematice.
Consider¼
am forma standard a problemei de programare liniar¼
a:
8
< inf(cT x)
(1) Ax = b
:
x 0
Mulţimea
P = fx 2 <n =Ax = b; x 0g
se numeşte mulţimea programelor sau soluţiilor admisibile. P este o mulţime
convex¼ a. Intr-adev¼ ar dac¼ a P = ; sau card(P ) = 1 este evident. Altfel, …e
x1 ; x2 2 P; x1 6= x2 :Atunci
x = x1 + (1 ) x2 2 P; unde 2 [0; 1] ; deoarece x 0 şi
1
Ax = Ax + (1 ) Ax2 = b + (1 ) b = b.
O soluţie admisibil¼
a x 2 P este soluţie optim¼a a problemei (1) dac¼a este
punct de minim global al funcţiei obiectiv z = cT x pe mulţimea programelor P
adic¼
a
cT x cT x; (8) x 2 P:
Fie sistemul de m ecuaţii liniare cu n necunoscute
(2) Ax = b
1
Matricea format¼ a cu coloanele lui A care nu sunt în B va … notat¼
a cu R iar
R = f1; :::; ng n B:
Not¼am cu xR vectorul format cu componentele lui x care nu se a‡a¼ în xB :
Componentele lui xB se numesc variabile de baz¼a iar componentele lui xR vari-
abile secundare. Sistemul (2) devine BxB + RxR = b de unde se obţine forma
explicit¼a :
(3) xB = B 1
b B 1
RxR :
xB = B 1
b
(4)
xR = 0 :
Aceast¼
a soluţie de baz¼
a corespunde bazei B format¼ a cu m coloane linear inde-
pendente ale lui A.
Se asociaz¼
a în acest mod la …ecare baz¼
a o soluţie de baz¼a.
Teorema fundamental¼
a a program¼
arii liniare (Kantorovici).
a) Dac¼a problema de programare liniar¼a (1) are o soluţie, atunci are o soluţie
de baz¼a.
b) Dac¼a problema de programare (1) are o soluţie optim¼a, atunci are o soluţie
de baz¼a optim¼a.
Demonstraţie.
a) Fie x un program al problemei (1). Not¼ am cu p num¼ arul componentelor
nenule ale vectorului x. F¼
ar¼
a a restrânge generalitatea putem presupune c¼
a cele
p componente diferite de zero sunt chiar pe primele p poziţii, adic¼
a
T
x = (x1 :::xp 0:::0) :
(5) y1 a1 + ::: + yp ap = 0:
2
Not¼
am cu
y = (y1 :::yp 0:::0) ; y 6= 0:
Atunci din (5) rezult¼
a Ay = 0.
Pentru orice num¼ ar real ; x + y este soluţie a sistemului de ecuaţii (2):
A (x + y) = Ax + Ay = b:
xi + yi 0; i = 1; p:
Not¼
am
I1 = fi =1 i n; yi > 0g
şi
I2 = fi =1 i n; yi < 0g :
De…nim (
xi
max yi ; daca I1 6= ;
1 = i2I1
1 ; daca I1 = ;
(
xi
min yi ; daca I2 6= ;
2 = i2I2
+1 ; daca I2 = ;:
Pentru 2 [ 1 ; 2 ] avem x + y 0: Putem alege acum 0 2 [ 1 ; 2 ]
astfel încât vectorul x + 0 y s¼ a aib¼
a cel mult p 1 componente nenule. Intr-
adev¼ar, putem lua 0 = 1 dac¼ a 2 = +1 sau 0 = 2 dac¼ a 1= 1
( 1 şi 2 nu pot … ambele in…nite).
Coloanele corespunz¼ atoare componentelor diferite de zero (în num¼ ar de cel
mult p 1) ale programului x + 0 y pot … sau liniar independente (cazul (i)
studiat mai sus), sau liniar dependente. In ultima situaţie se reia raţionamentul
de la cazul (ii); într-un num¼ar …nit de paşi vom ajunge la cazul (i) şi vom obţine
deci un program de baz¼ a.
b) Fie x un program optim care are primele p componente diferite de zero.
Pentru p = 0 rezultatul se obţine imediat. Dac¼
a p > 0 avem dou¼
a cazuri:
i) Vectorii a1 ; :::; ap sunt liniar independenţi. Rezult¼
a c¼
a x este soluţie optim¼
a
de baz¼a.
ii) Vectorii a1 ; :::; ap sunt liniar dependenţi. Rezult¼a c¼
a exist¼
a un vector
T
y = (y1 ; :::; yp 0; :::; 0)
3
cT x cT (x + y) = cT x + cT y =) cT y 0; (8) 2[ 1; 2] :
Teorema 1.
Soluţiile admisibile de baz¼a ale unei probleme de programare
liniar¼a - şi numai acestea - reprezint¼a vârfurile mulţimii convexe a tuturor
soluţiilor admisibile.
(6) xB = B 1
b B 1
RxR :
4
Fie B = fj1 ; :::; jm g şi R = f1; :::; ng n B:
Dac¼ am B 1 b = xB şi B 1 aj = yjB ; 1
a not¼ j n; (6) devine:
X
(7) xB = xB yjB xj ;
j2R
iar pe componente:
X
(8) xB B
i = xi
B
yij xj ; i 2 B:
j2R
Soluţia de baz¼
a corespunz¼
atoare bazei B este dat¼
a de:
xB = xB
(9)
xR = 0:
Aceast¼
a soluţie de baz¼
a este un program dac¼
a
1
(10) B b 0:
Observ¼ a z B reprezint¼
am c¼ a valoarea funcţiei obiectiv pentru soluţia de baz¼
a
xB = xB ; xR = 0:
5
simplex. Este util s¼ aturi de coloana xB vectorul cB ; iar al¼
a scriem al¼ aturi de
lista variabilelor xj ; 1 j n; coe…cienţii cj ; 1 j n; din funcţia obiectiv.
c1 cj cn
V:B: V:V:B: x1 ... xj ... xn
cB xB x = B 1b y1B ::: yjB = B 1 aj ... ynB
zjB cj =
z z = cTB xB z1B c1 ::: ... znB cn
cTB yjB cj
In cele ce urmeaz¼
a consider¼
am problema de minim sub forma standard:
8
< inf (cT x)
(12) Ax = b :
:
x 0:
Teorema 2.
Fie B o baz¼a primal admisibil¼a. Dac¼a
Teorema 3.
Fie B o baz¼a primal admisibil¼a. Dac¼a exist¼a k 2 R astfel încât s¼a avem:
zkB ck > 0
şi
ykB 0;
Teorema 4.
Fie B o baz¼a primal admisibil¼a. Dac¼a exist¼a k 2 R astfel încât s¼a avem :
zkB ck > 0
şi
ykB 0
6
şi dac¼a r 2 B se determin¼a din condiţia :
xB
i xB
r
(14) min B
= B
;
B >0
i=yik yik yrk
Algoritmul simplex.
Pasul 0. Se determin¼ a o baz¼
a primal admisibil¼a B, se calculeaz¼
a
xB ,z B ; yjB ; zjB cj ; 1 j n şi se trece la pasul 1.
a zjB cj
Pasul 1. Dac¼ 0 pentru orice j2 R; STOP: xB = xB ; xR = 0
este program optim. Dac¼ a j2 R pentru care zjB cj > 0; se determin¼
a exist¼ a
B
mulţimea R+ = j 2 R=zj cj > 0 şi se trece la pasul 2.
Pasul 2. Dac¼ a exist¼ a avem yB
a j2 R+ astfel încât s¼ j 0; STOP:
problema are optim in…nit.
Dac¼a pentru orice j2 R+ avem yB j 0; determin¼am k 2 R+ folosind criteriul
de intrare în baz¼a :
7
Observaţii
1. Criteriile de intrare în baz¼ a (15) respectiv (16) asigur¼a o convergenţ¼ a mai
rapid¼
a a algoritmului. Intr-adev¼ ar din (11) se vede c¼
a valoarea funcţiei obiectiv
scade , respectiv creşte cu o cantitate cât mai mare în valoare absolut¼ a.
2. Pentru j2 B avem
j
yjB = B 1 j
a = ej = (0:::1:::0)T :
8
CURSUL 3
Dualitatea în programarea liniar¼ a Rezolvarea
simultan¼ a a unui cuplu de probleme duale.Analiza
sensibilit¼
aţii
Dualitatea ocup¼ a în programarea liniar¼ a un loc important, atât din punct de
vedere teoretic, cât şi din punct de vedere practic. Oric¼
arei probleme de progra-
mare liniar¼
a îi corespunde o alt¼a problem¼a de progamare liniar¼a numit¼
a duala sa.
S¼
a consider¼
am o problem¼
a de programare liniar¼
a în forma general¼
a:
8
>
> inf c1T x1 + c2T x2 + c3T x3
>
>
< A11 x1 + A12 x2 + A13 x3 b1
(1) A21 x1 + A22 x2 + A23 x3 = b2
>
>
> A31 x1 + A32 x2 + A33 x3 b3
>
: 1
x 0; x2 oarecare, x3 0
Problema iniţial¼
a se va numi problem¼a primal¼a. Duala se obţine din primal¼
a în
modul urm¼ator:
a) Termenii liberi din problema primal¼ a devin coe…cienţi ai funcţiei obiectiv
în problema dual¼ a.
b) Coe…cienţii funcţiei obiectiv din problema primal¼ a devin termeni liberi în
problema dual¼ a.
c) O problem¼ a de maximizare (minimizare) se transform¼ a într-o problem¼ a
de minimizare (maximizare).
d) Matricea coe…cienţilor sistemului de restricţii este transpusa matricei co-
e…cienţilor sistemului de restricţii primare.
e) Variabilele duale (primale) asociate unor restricţii primale (duale) con-
cordante sunt supuse condiţiei de nenegativitate.
f) Variabilele duale (primale) asociate unor restricţii primale (duale) necon-
cordante sunt supuse condiţiei de nepozitivitate.
g) Variabilele duale (primale) asociate unor restricţii primale (duale) care
sunt ecuaţii nu sunt supuse nici unei condiţii privind semnul.
Duala unei probleme de programare liniar¼
a în forma standard
1
8
< inf cT x
(3) Ax = b
:
x 0
Cuplul de probleme (5) şi (6) este numit şi cuplul dual simetric. Studiul propri-
et¼ aţilor de dualitate se face pe acest cuplu datorit¼
a simetriei sale.
Fie
P = fx 2 <n =Ax b; x 0g
mulţimea programelor problemei primale (1:7:5)
şi
D = u 2 <m =AT u c; u 0
mulţimea programelor problemei duale (1:7:6).
Lema 1
Dac¼a x 2 P şi u 2 D atunci c T x bT u:
Demonstraţie. Deoarece
Ax b şi u 0
rezult¼
a
uT Ax uT b:
Analog, deoarece
AT u c şi x 0
rezult¼
a
xT AT u xT c:
Dar
uT Ax = xT AT u; uT b = bT u
şi
xT c = cT x:
2
Lema 2
Dac¼a x 2 P; u 2 D şi c T x = bT u atunci x este soluţie optim¼a a proble-
mei primale (5) iar u este soluţie optim¼a a problemei duale (6).
Demonstraţie
Presupunem prin absurd c¼ a x nu este soluţie optim¼a a problemei primale
(5). Rezult¼
a c¼ a x 2 P astfel încât cT x < cT x = bT u ,ceea ce contrazice
a exist¼
lema 1.
Analog se arat¼
a c¼
a u 2 D este soluţie optim¼ a a problemei duale.
Teorema 2
Dac¼a L este o matrice antisimetric¼a (LT = L); atunci sistemul de inegal-
it¼aţi liniare
Lx > 0
x>0
are cel puţin o soluţie x astfel încât
Lx + x > 0:
Teorema fundamental¼
a a dualit¼
aţii
Fiind dat cuplul de probleme dual
simetrice (5) şi (6) una şi numai una din a…rmaţiile urm¼atoare este adev¼arat¼a:
a) Ambele probleme au soluţii admisibile. În acest caz, ambele probleme au
soluţii optime şi valorile optime ale funcţiilor obiectiv în cele dou¼a probleme sunt
egale.
b) Una dintre probleme are soluţii admisibile, iar cealalt¼a nu are . În acest
caz,
problema care are soluţii admisibile are optim in…nit.
c) Nici una dintre probleme nu are soluţii admisibile.
Demonstraţie
S¼
a consider¼
am matricea de ordinul m + n + 1
0 1
0 AT c
L=@ A 0 b A:
cT bT 0
a LT =
L este antisimetric¼ L :Sistemul
Lz 0
z 0
3
are o soluţie z 2 <m+n+1 pentru care avem în plus Lz + z > 0: Cu alte cuvinte
a x 2 <n ; u 2 <m şi y 2 < astfel încât sunt satisf¼
exist¼ acute condiţiile:
8
>
> AT u + cy 0
<
Ax by 0
(7)
>
> cT x + bT u 0
:
x 0; u 0; y 0
şi
8
< x AT u + cy > 0
(8) Ax + u by > 0 :
:
cT x + bT u + y > 0
Deoarece y 0; sunt posibile dou¼
a cazuri: y > 0 şi y = 0:
Dac¼
a y > 0; s¼
a not¼
am
1 1
x = x; u = u:
y y
Atunci, din primele dou¼
a condiţii din (7) şi din condiţiile de nenegativitate,
1 1
Ax = Ax by = b
y y
şi rezult¼
a c¼
a x 2 P: De asemenea
1 T 1
AT u = A u cy = c
y y
şi deci u 2 D:
Ca urmare P 6= ; şi D 6= ;, adic¼
a situaţia a) din enunţul teoremei.
Vom ar¼ ata c¼
a x este o soluţie optim¼
a pentru problema primal¼ a, iar u este
soluţie optim¼
a pentru problema dual¼ a. Într-adev¼
ar, din a treia relaţie din (7)
rezult¼a imediat c¼
a
cT x bT u :
Conform lemei 1 este adev¼
arat¼
a şi inegalitatea contrar¼
a
cT x bT u :
Rezult¼
a atunci
cT x = bT u
şi deci, conform lemei 2; x şi u sunt soluţii optime în cele dou¼
a probleme duale.
Dac¼ a y = 0, vom ar¼ ata mai întâi c¼a nu putem avea în acest caz P 6= ; şi
D 6= ;: Intr-adev¼ ar dac¼a ar exista x0 2 P şi u0 2 D; şi dac¼ a ţinem seam¼ a de
condiţiile de nenegativitate şi de prima relaţie din (7); am obţine pe de o parte
T T
(9) bT u Ax0 u = x0 AT u 0;
4
iar pe de alt¼
a parte, dac¼
a se ţine seam¼
a şi de a doua condiţie din (7), rezult¼
a
T T
(10) cT x AT u0 x = u0 (Ax) 0:
cT x < 0 cT x < bT u 0 :
Dac¼ am cu x ( ) = x0 + x; se veri…c¼
a not¼ a uşor c¼
a
x ( ) 2 P pentru orice 0:
Deoarece
lim cT x ( ) = lim cT x0 + cT x = 1;
!1 !1
a inf cT x=x 2 P =
rezult¼ 1; adic¼
a problema primal¼
a are optim in…nit.
Teorema slab¼
a a ecarturilor complementare
Condiţia necesar¼a şi su…cient¼a ca x 2 P şi u 2 D s¼a …e soluţii optime în
cele dou¼a probleme duale (5) şi (6) este s¼a …e îndeplinite condiţiile:
T
(11) (u ) (Ax b) = 0
T
(12) (x ) c AT u = 0:
Demonstraţie
Pentru necesitate, presupunem x 2 P şi u 2 D programe optime.
Din teorema fundamental¼ a a dualit¼ a cT x = bT u şi deci obţinem :
aţii rezult¼
T T
(u ) (Ax b) + (x ) c AT u =0
Cum cei doi termeni ai sumei din membrul stâng al egalit¼ aţii obţinute sunt
nenegativi, …ecare termen este nul şi rezult¼ a (11) şi (12). Pentru su…cienţ¼ a, dac¼
a
se adun¼ a cele dou¼ aţi (11) şi (12) se obţine cT x = bT u şi deci x este
a egalit¼
soluţie optim¼ a a problemei primale,iar u este soluţie optim¼ a a problemei duale,
conform lemei 2:
Semni…caţia relaţiei (12) este urm¼ atoarea: dac¼ a variabila primal¼ a xi este strict
mai mare ca zero, atunci variabila ecart corespunz¼ atoare din modelul dual tre-
buie s¼a …e nul¼ a astfel încât produsul s¼ a …e nul. Relaţia (11) are o semni…caţie
analog¼ a.
5
Rezolvarea simultan¼
a a unui cuplu de probleme duale
Fie cuplul de probleme duale (3) şi (4) şi presupunem rang(A) = m < n.
O baz¼a B format¼ a cu m coloane liniar independente ale lui A se numeşte primal
admisibil¼a dac¼a B 1b 0; adic¼
a dac¼ a soluţia de baz¼a corespunz¼ atoare xB =
1
B b este un program al problemei primale (3). Epitetul “primal” cap¼ at¼
a un
sens clar în acest moment.
Baza B format¼ a cu m coloane liniar independente ale matricii A se numeşte
dual admisibil¼a pentru problema (3) dac¼ a sunt satisf¼
acute condiţiile:
zjB cj 0; 1 j n:
Dac¼
a B este dual admisibil¼ a atunci uTB = cTB :B 1
este o soluţie a problemei
duale (4). Intr-adev¼
ar, pentru orice j, 1 j n;
uTB aj = cTB B 1 j
a = zjB cj :
z B = cTB xB = cTB B 1
b = uTB b:
(uTB )i = cTB :B 1
i
= cTB :B 1 i
e = ziB = ziB ci + ci = 4i + ci ;
unde am notat cu 4i num¼ arul de pe ultima linie din dreptul vectorului unitar
ei din baza iniţial¼
a. Rezolvând una din cele dou¼ a probleme ale unui cuplu de
probleme duale se obţine o soluţie optim¼ a şi pentru cealalt¼
a. Se alege pentru
rezolvare problema cu mai puţine restricţii sau care are o baz¼ a iniţial¼
a unitate.
Observaţie
Din tabelul simplex corespunz¼ ator bazei B se pot extrage coloanele inversei
B 1 ; din dreptul variabilelor de baz¼a iniţiale (când baza iniţial¼
a este matricea
unitate). Într-adev¼ ar
yiB = B 1 i
a =B 1 i
e:
Analiza sensibilit¼
aţii
Analiza sensibilit¼aţii înseamn¼
a determinarea unui interval de variaţie pentru
una dintre datele problemei sau pentru o variabil¼
a a problemei care s¼
a aib¼a pro-
prietatea c¼
a baza optim¼ a r¼
amâne neschimbat¼
a. Este important s¼ a cunoaştem
6
dac¼a o soluţie optim¼
a este stabil¼a. Dac¼ a o mic¼a modi…care a datelor numerice
ale
problemei implic¼ a modi…c¼ari importante ale soluţiei optime, atunci datele nu-
merice trebuie determinate cât mai exact.
Se pune problema determin¼ arii unui interval de variaţie pentru una din datele
problemei cu proprietatea c¼ a baza optim¼ a r¼
amâne aceeaşi. S¼ a stabilim sensibil-
itatea programului optim corespunz¼ ator unei baze optime B, faţ¼ a de h i
0 00
modi…c¼arile componentei bi a vectorului b. Vom determina un interval bi ; bi
de variaţie pentru bi pentru care B r¼ amâne optim¼ a.
Presupunem c¼ a b devine
T
i
b + ei ; 2 <; ei = 0; :::; 1; :::; 0 :
Atunci
1 i
B b + ei = B 1
b+ B 1 i
e = xB + ;
i 1
unde este coloana de rang i a lui B : Se rezolv¼
a sistemul de m inecuaţii:
i
xB + 0:
h 0 00
i 0 0 00 00
Se obţine un interval ; : Atunci bi = bi + şi bi = bi + :
00 00
Not¼am cu hb0 = bi + 0 ei şi b = b + ei :Valoarea funcţiei obiectiv variaz¼
a în
0 00
intervalul z ; z unde:
0 0 0
i
z = cTB B 1
b = zB + cTB
00 00 00
b = z B + cTB i :
z = cTB B 1
h 0 00 i
S¼
a determin¼ am acum un interval ck ; ck pentru componenta ck ; pentru care
baza B r¼ amâne optim¼ a.
Presupunem c¼ a c devine c + ek ; 2 <:
Dac¼ a, deci k 2 R; diferenţa zkB ck devine zkB ck
a variabila xk este secundar¼ :
B
Punând condiţia zk ck 0; rezult¼
a zkB ck şi deci valoarea minim¼ a
a lui pentru care B r¼ amâne optim¼ a este 0 = zkB ck deci intervalul c¼ autat
B
de variaţie a lui ck este zk ; +1 : Valoarea funcţiei obiectiv r¼amâne constant¼ a
zB :
T
Pentru k 2 B, diferenţele zjB cj devin zjB cj + ekB yjB unde ekB este
format cu componentele lui ek corespunz¼ atoare variabilelor de baz¼a. Se rezolv¼
a
sistemul de inecuaţii:
T
zjB cj + ekB yjB 0:
7
h 0 00
i h 0 00 i
Se obţine 2 ; şi atunci intervalul de variaţie pentru ck este ck ; ck;
0 0 00 00
unde ck = ck +
h şiick = ck + : Domeniul de variaţie pentru valoarea funcţiei
0 00
obiectiv este z ; z cu
0 0 00 00
z = zB + xB B
k şi z = z + xB
k:
8
Cursul 4
MATLAB. Optimization Toolbox
Optimization Toolbox este o colecţie de rutine (funcţii) de optimizare care
extind mediul MATLAB:
fminunc, fminsearch - minimizarea neliniar¼ a f¼
ar¼
a restricţii;
fmincon,fminimax, fseminf - minimizarea neliniar¼ a cu restricţii,
probleme minimax şi probleme de minimizare semi…nit¼ a;
linprog, quadprog - programarea liniar¼ a şi p¼
atratic¼
a;
lsqlin, , lsqnonneg - problema în sensul celor mai mici p¼ atrate
liniar¼
a, cu restricţii;
lsqnonlin - problema în sensul celor mai mici p¼ atrate neliniar¼ a;
fsolve, fzero - rezolvarea sistemelor de ecuaţii neliniare;
-probleme cu matrice rare şi de dimensiuni mari.
Rutinele sunt …şiere MATLAB M-…les şi implementeaz¼ a diverşi algoritmi de
optimizare specializaţi. Codul MATLAB al acestora este furnizat de comand
type function_name
linprog
Rezolv¼
a probleme de programare liniar¼
a de forma:
min x f ’*x
cu restricţiile
A*x <= b
Aeq*x = beq
lb <= x <= ub,
unde f, x, b, beq, lb şi ub sunt vectori şi A şi Aeq sunt matrice.
Sintaxa
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
[x,fval] = linprog(...)
[x,fval,exit‡ag] = linprog(...)
[x,fval,exit‡ag,output] = linprog(...)
[x,fval,exit‡ag,output,lambda] = linprog(...)
Descriere linprog
x = linprog(f,A,b)
rezolv¼
a problema:
min x f ’*x
cu restricţiile
A*x <= b.
x = linprog(f,A,b,Aeq,beq)
1
rezolv¼
a problema de mai sus, cu restrcţii suplimentare ecuaţii liniare de
forma:
Aeq*x = beq.
Dac¼a nu exist¼
a inecuaţii se ia A=[] şi b=[] .
x = linprog(f,A,b,Aeq,beq,lb,ub)
Componentele soluţiei x trebuie s¼ a veri…ce lb <= x <= ub. Dac¼
a nu exist¼
a
restricţii ecuaţii se ia Aeq=[] and beq=[] .
x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
se precizeaz¼a aproximaţia iniţial¼
a x0 atunci când algoritmul folosit este
medium-scale (opţiunea LargeScale este setat¼ a pe ’o¤ ’ folosind optimset). Al-
goritmul large-scale (care se alege implicit) şi algoritmul simplex ignor¼
a orice
punct iniţial.
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
minimizeaz¼a cu opţiunile de optimizare speci…cate în structura options care
se seteaz¼
a cu optimset.
[x,fval] = linprog(...)
returneaz¼ a valoarea minim¼
a a funcţiei obiectiv în soluţia optim¼
a x:
fval = f ’*x.
[x,lambda,exit‡ag] = linprog(...)
returneaz¼ a o valoare exit‡ag care arat¼ a condiţiile în care se termin¼
a exe-
cuţia programului ( exit‡ag =1 algoritmul converge la o soluţie x ; exit‡ag =0
- num¼ arul de iteraţii dep¼
aşeşte parametrul implicit MaxIter ; exit‡ag = -2 - nu
a fost g¼asit nici un punct admisibil; exit‡ag = -3 -problema este nem¼ arginit¼
a;
exit‡ag = -5 -problemele primal¼ a şi dual¼a nu au soluţii admisibile; exit‡ag =
-7- direcţia de c¼
autare devine prea mic¼ a..).
[x,lambda,exit‡ag,output] = linprog(...)
returneaz¼a o structur¼ a output care conţine informaţii despre optimizare:
num¼
arul de iteraţii, algoritmul folosit..
[x,fval,exit‡ag,output,lambda] = linprog(...)
returneaz¼ a o structur¼
a lambda care conţine multiplicatorii Lagrange în soluţia
x (separat pe tipuri de restricţii).
quadprog
Rezolv¼
a probleme de programare p¼
atratic¼
a de forma:
minx (1/2*x’*H*x + f ’*x)
cu restricţiile
A*x <= b
Aeq*x = beq
unde H, A şi Aeq sunt matrice şi f, b, beq, lb, ub şi x sunt vectori.
Syntaxa
x = quadprog(H,f,A,b)
2
x = quadprog(H,f,A,b,Aeq,beq)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
[x,fval] = quadprog(...)
[x,fval,exit‡ag] = quadprog(...)
[x,fval,exit‡ag,output] = quadprog(...)
[x,fval,exit‡ag,output,lambda] = quadprog(...)
Descriere
x = quadprog(H,f,A,b)
returneaz¼ a un vector x care minimizeaz¼
a 1/2*x’*H*x + f ’*x cu restricţiile
inegalit¼
aţi liniare A*x <= b.
x = quadprog(H,f,A,b,Aeq,beq)
rezolv¼
a problema precedent¼
a cu restricţiile suplimentare ecuaţii liniare Aeq*x
= beq.
x = quadprog(H,f,A,b,Aeq,beq,lb,ub)
Componentele soluţiei optime x, trebuie s¼
a satisfac¼
a restricţiile de tip interval
lb <= x <= ub.
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
precizeaz¼
a aproximaţia iniţial¼
a x0.
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
minimizare cu opţiuni de optimizare speci…cate în structura options.
Pentru a seta aceste opţiuni se foloseşte comanda optimset .
[x,fval] = quadprog(...)
returneaz¼ a valoarea funcţiei obiectiv în x :
fval = 0.5*x’*H*x + f ’*x.
[x,fval,exit‡ag] = quadprog(...)
returneaz¼ a o valoare exit‡ag care arat¼ a condiţiile în care se termin¼
a execuţia
programului quadprog ( exit‡ag =1 algoritmul converge la o soluţie x ; exit‡ag
=3 - modi…c¼ arile valorii funcţiei obiectiv mai mici decât toleranţa speci…cat¼ a,
exit‡ag =4 - a fost g¼ asit un minim local, exit‡ag =0 - num¼ arul de iteraţii
dep¼aşeşte parametrul implicit MaxIter ; exit‡ag = -2 - nu a fost g¼ asit nici un
punct admisibil; exit‡ag = -3 -problema este nem¼ arginit¼ a; exit‡ag = -4 - direcţia
de c¼autare curent¼ a nu a fost descendent¼ a, exit‡ag = -5 -problemele primal¼ a şi
dual¼a nu au soluţii admisibile; exit‡ag = -7- direcţia de c¼ autare devine prea
mic¼a..).
[x,fval,exit‡ag,output] = quadprog(...)
returneaz¼ a o structur¼ a output care conţine informaţii despre optimizare:
num¼
arul de iteraţii, algoritmul folosit..
[x,fval,exit‡ag,output,lambda] = quadprog(...)
3
returneaz¼
a o structur¼a lambda care conţine multiplicatorii Lagrange în soluţia
x (separat pe tipuri de restricţii).
fmincon
se caut¼ a minimumul unei funcţii scalare cu mai multe variabile şi mai multe
restricţii, plecând de la o estimare iniţial¼
a x0 :
minx f(x)
cu restricţiile:
A x <= b
Aeq x = beq
lb <= x <= ub
c(x) <= 0
ceq(x)= 0,
unde x, b, beq, lb şi ub sunt vectori, A şi Aeq sunt matrice, c(x) şi ceq(x)
sunt funcţii vectoriale şi f(x) este o funcţie scalar¼a. f(x), c(x) şi ceq(x) pot …
neliniare.
Sintaxa
x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,beq)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval] = fmincon(...)
[x,fval,exit‡ag] = fmincon(...)
[x,fval,exit‡ag,output] = fmincon(...)
[x,fval,exit‡ag,output,lambda] = fmincon(...)
[x,fval,exit‡ag,output,lambda,grad] = fmincon(...)
[x,fval,exit‡ag,output,lambda,grad,hessian] = fmincon(...)
Apelând rutina sub forma:
x = fmincon(fun,x0,A,b)
se porneşte de la aproximaţia iniţial¼ a x0 şi se caut¼
a minimumul x al funcţiei
descrise în fun cu restricţiile inegalit¼
aţi liniare
A*x <= b.
x = fmincon(fun,x0,A,b,Aeq,beq)
minimizeaz¼ a fun cu ecuaţiile liniare Aeq*x = beq dar şi A*x <= b. Dac¼
a nu
exist¼
a inecuaţii liniare se ia A=[] şi b=[].
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
Componentele soluţiei trebuie s¼ a veri…ce lb <= x <= ub. Dac¼
a nu exist¼
a
restricţii egalit¼
aţi liniare se ia Aeq=[] şi beq=[] .
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
4
minimizeaz¼a fun cu restricţiile inecuaţii neliniare c(x) <= 0 şi ecuaţii neliniare
ceq(x)= 0. Dac¼ a nu exist¼
a margini pentru variabile se ia lb=[] şi/sau ub=[]. c(x)
şi ceq(x) sunt de…nite în nonlcon.
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
minimizeaz¼ a funcţia cu opţiunile de optimizare speci…cate în structura op-
tions. Pentru a seta aceste opţiuni se foloseşte optimset . Dac¼ a nu exist¼
a
restricţii neliniare se ia nonlcon = [] .
[x,fval] = fmincon(...)
fval returneaz¼a valoarea funcţiei obiectiv fun în soluţia optim¼
a x.
[x,fval,exit‡ag] = fmincon(...)
returneaz¼ a o valoare exit‡ag care descrie modul cum se termin¼
a execuţia
funcţiei fmincon.
[x,fval,exit‡ag,output] = fmincon(...)
returneaz¼ a o structur¼
a output cu informaţii despre optimizare.
[x,fval,exit‡ag,output,lambda] = fmincon(...)
returneaz¼ a o structur¼
a lambda care conţine multiplicatorii Lagrange pentru
soluţia x.
[x,fval,exit‡ag,output,lambda,grad] = fmincon(...)
returneaz¼ a valoarea gradientului funcţiei fun în soluţia x.
[x,fval,exit‡ag,output,lambda,grad,hessian] = fmincon(...)
returneaz¼ a valoarea matricei Hessian calculat¼
a în soluţia x.
fun –funcţia care trebuie minimizat¼ a, accept¼
a un vector x şi returneaz¼
a un
scalar f, funcţia obiectiv evaluat¼
a în x.
x = fmincon(@myfun,x0,A,b)
unde myfun este o funcţie MATLAB:
function f = myfun(x)
f = ... % Calculeaz¼a valoarea funcţiei în x
Dac¼a gradientul funcţiei poate … calculat şi opţiunea GradObj este “on”
adic¼a
options = optimset(’GradObj’,’on’)
atunci funcţia fun trebuie s¼a returneze, în afar¼
a de parametrul f, în al doilea
argument de ieşire, valoarea gradientului g, în x.
Gradientul g este format din derivatele parţiale ale lui f în x. Componenta
i a lui g este derivata parţial¼
a a lui f în raport cu componenta i a lui x.
Dac¼ a matricea hessian¼ a poate … calculat¼
a şi opţiunea Hessian este “on”adic¼
a
options = optimset(’Hessian’,’on’)
atunci funcţia fun trebuie s¼ a returneze în al treilea argument de ieşire, o
matrice simetric¼ a, Hessianul în x.
Matricea Hessian¼ a H conţine valorile derivatelor parţiale de ordinul doi ale
funcţiei f în x, adic¼
a componenta (i,j) a lui H este derivata de ordin doi a lui f
calculat¼a dupa x i şi x j .
5
Funcţia nonlcon calculeaz¼ a restricţiile inegalit¼
aţi neliniare c(x)<= 0 şi re-
stricţiile ecuaţii neliniare ceq(x) = 0. Ea accept¼ a la intrare un vector x şi re-
turneaz¼ a doi vectori c şi ceq.
.x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon)
unde mycon este o funcţie MATLAB:
[c,ceq] = mycon(x)
c = ... % calculeaz¼a inegalit¼aţile neliniare în x
ceq = ... % calculeaz¼a egalit¼aţile neliniare în x
fminimax
Rezolv¼
a problema minimax
Sintaxa
x = fminimax(fun,x0)
x = fminimax(fun,x0,A,b)
x = fminimax(fun,x0,A,b,Aeq,beq)
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub)
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval] = fminimax(...)
[x,fval,maxfval] = fminimax(...)
[x,fval,maxfval,exit‡ag] = fminimax(...)
[x,fval,maxfval,exit‡ag,output] = fminimax(...)
[x,fval,maxfval,exit‡ag,output,lambda] = fminimax(...)
Descriere
fminimax minimizeaz¼ a valorile maxime ale unor funcţii de mai multe vari-
abile, pornind de la o estimare iniţial¼ a. În unele cazuri valorile trebuie s¼
a veri…ce
şi restricţii liniare sau neliniare.
x = fminimax(fun,x0)
porneşte de la aproximaţia iniţial¼
a x0 şi g¼
aseşte o soluţie minimax x a funcţi-
ilor de…nite în fun.
x = fminimax(fun,x0,A,b)
6
rezolv¼
a problema minimax cu restricţiile inegalit¼
aţi liniare
A*x <= b.
x = fminimax(fun,x,A,b,Aeq,beq)
rezolv¼
a problema minimax cu restricţiile suplimentare egalit¼
aţi liniare
Aeq*x = beq.
Dac¼a nu exist¼
a inegalit¼
aţi se ia
A=[]
b=[].
x = fminimax(fun,x,A,b,Aeq,beq,lb,ub)
Componentele soluţiei optime x, trebuie s¼
a satisfac¼
a restricţiile de tip interval
lb <= x <= ub.
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
minimizeaz¼a fun cu restricţiile inecuaţii neliniare c(x) <= 0 şi ecuaţii neliniare
ceq(x)= 0. Dac¼ a nu exist¼
a margini pentru variabile se ia lb=[] şi/sau ub=[]. c(x)
şi ceq(x) sunt de…nite în nonlcon.
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
minimizare cu opţiuni de optimizare speci…cate în structura options.
Pentru a seta aceste opţiuni se foloseşte comanda optimset.
[x,fval] = fminimax(...)
fval returneaz¼a valoarea funcţiei obiectiv fun în soluţia optim¼
a x.
[x,fval,maxfval] = fminimax(...)
returneaz¼a valorile maxime ale funcţiilor în soluţia x
maxfval = max{fun(x)}.
[x,fval,maxfval,exit‡ag] = fminimax(...)
returneaz¼a o valoare exit‡ag care arat¼ a condiţiile în care se termin¼
a execuţia
programului fminimax ( exit‡ag =1 algoritmul converge la o soluţie x ; , exit‡ag
=0 - num¼ arul de iteraţii dep¼
aşeşte parametrul implicit MaxIter ; exit‡ag = 4-
direcţia de c¼
autare devine prea mic¼ a..). ..
[x,fval,maxfval,exit‡ag,output] = fminimax(...)
returneaz¼a o structur¼a output cu informaţii despre optimizare: num¼
arul de
iteraţii, num¼
arul de evalu¼ari ale funcţiilor, algoritmul folosit...
[x,fval,maxfval,exit‡ag,output,lambda] = fminimax(...)
returneaz¼a o structur¼ a lambda care conţine multiplicatorii Lagrange pentru
soluţia x (separaţi pe tipuri de restricţii).
fun este o funcţie vectorial¼
a F de…nit¼ a pentru orice vector x
x = fminimax(@myfun,x0)
unde myfun este o funcţie MATLAB
function F = myfun(x)
F = ... % Calculeaz¼a valorile funcţiei în x
fminimax poate minimiza valorile absolute maxime ale componentelor vec-
torului F(x) (i.e., min{max abs{F(x)} } ), setând opţiunea MinAbsMax cu
7
optimset. Se pot lua valorile absolute numai pentru o parte dintre maximele
funcţiilor, care trebuie aşezate pe primele poziţii .
nonlcon este rutina care calculeaz¼ a inegalit¼
aţile neliniare c(x) <= 0 şi egal-
it¼
aţile neliniare ceq(x) = 0. Rutina are parametrul de intrare un vector x şi
parametri de ieşire doi vectori c şi ceq.
x = fminimax(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon)
unde mycon este o funcţie MATLAB
function [c,ceq] = mycon(x)
c = ... % Calculeaz¼a inegalit¼aţile neliniare în x
ceq = ... % Calculeaz¼a inegalit¼aţile neliniare în x
8
Cursul 5
Metode de punct interior
Algoritmul de scalare a…n¼
a primal
Metoda simplex, propus¼ a de Dantzig a constituit metoda de baz¼ a pentru re-
zolvarea problemelor de programare liniar¼ a pân¼a în 1984, când a ap¼ arut o nou¼ a
direcţie de cercetare: metodele de punct interior s-au dovedit a … mai e…ciente
pentru rezolvarea problemelor de mari dimensiuni . Num¼ arul de iteraţii al al-
goritmului simplex poate creşte exponenţial odat¼ a cu dimensiunea problemei.
Algoritmul lui Narendra Karmarkar, publicat în articolul A new polynomial
time algorithm for linear programming a determinat o ”revoluţie” în domeniul
program¼ arii matematice.
Metodele de punct interior au fost aplicate şi în rezolvarea problemelor de
optimizare neliniar¼ a. Ele se clasi…c¼
a în metode de urm¼arire a traiectoriei, metode
de scalare a…n¼a şi metode omogene auto-duale. În cele ce urmeaz¼ a vom aborda
numai metoda de scalare a…na.
Metoda simplex permite explorarea sistematic¼ a a vârfurilor poliedrului re-
stricţiilor, trecând de la vârful curent la altul adiacent care este ”cel puţin
la fel de bun” ca cel precedent (îmbun¼ at¼
aţeşte sau p¼astreaz¼a valoarea funcţiei
obiectiv). Când o astfel de trecere nu mai este posibil¼ a, algoritmul se opreşte
obţinându-se soluţia optim¼ a exact¼a, dup¼ a un num¼ ar …nit de paşi. Este de aseme-
nea posibil ca toate punctele unei feţe a poliedrului s¼ a …e optime.
Metodele de punct interior sunt metode iterative care, pornind de la un punct
iniţial calculeaz¼
a un şir de iteraţii aparţinând interiorului poliedrului restricţiilor
care converge c¼ atre soluţia optim¼ a. În cele mai multe cazuri practice, o soluţie
aproximativ¼ a (cu o eroare de 10 8 ) este perfect acceptabil¼ a.
În …gur¼
a se vede deosebirea dintre algoritmul simplex şi algoritmii de punct
interior. Principiul algoritmului simplex const¼
a în parcurgerea unui drum de-a
1
lungul muchiilor poliedrului restricţiilor problemei, evaluând valoarea funcţiei
obiectiv în vârfurile acestui poliedru, pân¼a când se obţine un vârf din care funcţia
obiectiv nu se mai poate îmbun¼ at¼
aţi.
Spre deosebire de acest mod de abordare, metodele de punct interior pro-
cedeaz¼a la determinarea unui drum prin interiorul poliedrului restricţiilor şi
parcurgerea acestuia pân¼ a la identi…carea vârfului optim. În cazul când toate
punctele unei feţe sunt optime, metodele de punct interior converg spre interi-
orul acelei feţe în timp ce metoda simplex se termin¼ a într-un vârf al ei.
Pentru probleme mai mari, algoritmul de punct interior execut¼ a mult mai
puţine iteraţii decât algoritmul simplex.
Metode de scalare a…n¼
a
Metodele de scalare a…n¼ a au fost propuse pentru prima dat¼ a de I. Dikin
(1967), dar lucrarea lui a r¼
amas mult timp necunoscut¼ a. O variant¼a a acestora
apare în 1984 în lucrarea lui Karmakar care a trezit un interes deosebit, de
atunci ap¼arând mai mult de 3000 de articole despre metodele de punct interior.
Algoritmii de scalare a…n¼ a sunt în esenţ¼
a algoritmi de gradient proiectat. Ei
folosesc o transformare liniar-a…n¼
a T (x) = Qx + y de…nit¼ a pentru orice x 2 <n ;
unde Q este o matrice n n; nesingular¼ a şi y un vector n dimensional. Dac¼ a
y = 0; atunci avem o transformare linar¼a. În metodele de scalare a…n¼a variabilele
problemei sunt scalate cu o matrice diagonal¼ a.
S¼
a consider¼am urm¼atoarea problem¼ a de programare liniar¼ a
8
< min cT x
(1) Ax = b
:
x 0;
unde x 2 <n ; b 2 <m şi A 2 Mm n , rang (A) = m < n: Presupunem c¼ a
domeniul de admisibilitate al problemei (1) este m¼
arginit cu interiorul nevid,
adic¼
a
P + = fx 2 <n =Ax = b; x > 0g =
6 ;:
Metodele de scalare a…n¼ a sunt metode iterative care, pornind de la un punct
iniţial, calculeaz¼
a un şir de iteraţii aparţinând interiorului domeniului de admis-
ibilitate al problemei, care converge c¼ atre soluţia optim¼
a.
Fie xk > 0 un punct interior astfel încât
(2) Axk = b:
Trebuie s¼
a g¼
asim un alt punct admisibil interior de forma
xk+1 = xk + 4xk
care s¼
a îmbun¼
at¼
aţesc¼
a valoarea funcţiei obiectiv adic¼
a
Axk+1 = b
xk+1 > 0
cT xk+1 cT xk :
2
Utilizând (2) avem:
Axk+1 = A (xk + 4xk ) = Axk +A4xk = b+A4xk = b:
Rezult¼
a:
(3) A4xk = 0;
adic¼
a 4xk trebuie s¼a aparţin¼
a spaţiului nul al matricii A. Reamintim c¼
a spaţiul
nul al matricei A se de…neşte astfel:
N (A) = fy 2 <n =Ay = 0g :
De asemenea :
cT xk+1 = cT (xk + 4xk ) =
T T T
c xk + c 4xk c xk :
Rezult¼
a
(4) cT 4xk 0;
adic¼a produsul scalar al direcţiei de deplasare 4xk cu vectorul c din funcţia
obiectiv trebuie s¼ a …e negativ. Se ştie c¼
a cea mai pronunţat¼ a creştere a valorii
funcţiei obiectiv este pe direcţia dat¼
a de gradientul acesteia. Considerând gra-
dientul c cu semn schimbat obţinem o direcţie c; de-a lungul c¼ areia funcţia
obiectiv descreşte. Dar, este foarte posibil ca aceast¼ a direcţie s¼
a nu menţin¼ a
admisibilitatea (adic¼ a s¼
a nu aparţin¼a spaţiului nul al matricei A). De aceea
se adopt¼ a ca direcţie de deplasare proiecţia gradientului cu semn schimbat pe
spaţiul nul al lui A. Proiecţia unui vector x pe N (A) este punctul din N (A)
care se a‡a¼ la cea mai mic¼ a distanţ¼
a (în sens euclidian) de x.
Un operator de proiecţie pe spaţiul nul al lui A (de rang plin) este matricea
n n - simetric¼ a de…nit¼a astfel:
(5) PA = In AT (AAT ) 1
A:
Acest operator de proiecţie are urm¼
atoarele propriet¼
aţi:
APA = 0
PA = PAT (simetrie)
PA2 = PA (idempotenţ¼
a).
(6) 4xk = PA c:
Aceasta veri…c¼
a condiţiile (3) şi (4) : Într-adev¼
ar,
A4xk = APA c = 0
şi
3
cT 4xk = cT pA c = cT p2A c = (pA c)T pA c =
2
kpA ck 0:
Urmând direcţia de deplasare 4xk vom vedea c¼ a progresul care poate … f¼
acut
la aceast¼
a iteraţie c¼
atre soluţia optim¼
a depinde de poziţia punctului de plecare
xk în interiorul poliedrului mulţimii soluţiilor admisibile. Dac¼
a punctul xk este
apropiat de o faţ¼a a acestuia nu se poate executa o deplasare substanţial¼a c¼
atre
optim, deoarece atingem frontiera domeniului de admisibilitate.
Poliedrul din …gur¼ a reprezint¼ a domeniul de admisibilitate al unui program
liniar. Din punctul wk care se a‡a¼ la distanţe aproximativ egale de feţele
poliedrului (este centrat), se poate executa o deplasare semni…cativ¼ a c¼
atre op-
timul x ; dar din xk nu este posibil¼ a o astfel de deplasare deoarece atingem
frontiera.
Strategia metodei este urm¼ atoarea: se consider¼a iteraţia curent¼ a xk din in-
teriorul poliedrului restricţiilor. Se transform¼ a spaţiul restricţiilor astfel încât
s¼
a se plaseze iteraţia curent¼ a în centrul poliedrului din care apoi s¼ a se execute
o deplasare în direcţia descendent¼ a obţinând astfel un nou punct interior lâng¼ a
frontiera poliedrului. Din acest nou punct se procedeaz¼ a ca mai sus pân¼ a când
optimul este atins cu o precizie dorit¼ a. În continuare vom de…ni algoritmul
de scalare a…n¼ a primal şi o variant¼ a a acestuia pentru restricţii inegalit¼ aţi cu
partiţionarea restricţiilor şi apoi algoritmul de scalare a…n¼ a dual.
Algoritmul de scalare a…n¼
a primal
Algoritmul de scalare a…n¼ a primal procedeaz¼ a astfel: se scaleaz¼
a variabilele
problemei astfel încât punctul curent admisibil s¼ a se a‡e departe de feţele
poliedrului, la egal¼
a distanţ¼
a de acestea, se calculeaz¼ a direcţia de deplasare ca
…ind gradientul proiectat cu semn schimbat pentru problema scalat¼ a, dup¼
a care
se transform¼ a aceast¼
a direcţie înapoi în spaţiul problemei originale. Operaţia
de scalare se face cu ajutorul unei matrice diagonale Xk ; care are pe diagonal¼ a
componentele iteraţiei curente xk : Avem
4
Xk 1 xk = e;
unde e este vectorul cu toate componentele egale cu unu, adic¼
a vectorul vectorul
scalat are toate componentele egal dep¼artate de feţele poliedrului. Deoarece
iteraţia curent¼
a xk are toate componentele strict pozitive rezult¼
a c¼
a matricea
de scalare Xk este inversabil¼
a.
Considerând transformarea de variabile
x = Xk w
din (1) se obţine problema scalat¼
a echivalent¼
a:
8
< min(Xk c)T w
(7) AXk w = b
:
w 0:
Operatorul de proiecţie (5) pentru problema scalat¼
a este
Xk c AT (AXk2 AT ) 1 AXk2 c :
Utilizând notaţia
(8) uk = (AXk2 AT ) 1
AXk2 c;
direcţia de deplasare 4wk devine:
4wk = Xk (c AT uk ):
Transformând-o înapoi în spaţiul problemei originale obţinem
5
Formula (9) de calculul direcţiei de deplasare conţine vectorul uk de…nit în
(8): Pentru determinarea acestuia se rezolv¼ a sistemul liniar
cT xk bT uk
":
1 + jcT xk j
Direcţia de deplasare 4xk veri…c¼a (3) adic¼
a noua iteraţie
xk+1 = xk + 4xk veri…c¼ a sistemul Ax = b; oricât de departe ne deplas¼ am
în aceast¼
a direcţie. Pentru ca xk+1 s¼a veri…ce şi condiţiile de nenegativitate
consider¼
am
xk+1 = xk + 4xk ;
unde este m¼ arimea pasului de deplasare. Pentru determinarea acestuia re-
zolv¼
am sistemul
xik + 4xik 0; 1 i n;
unde xik şi 4xik sunt componentele vectorilor xk şi respectiv 4xk : Rezult¼
a
xik
= min :
i
i=4xk <0 4xik
Dar cel puţin una dintre aceste componente se anuleaz¼ a, adic¼a xk+1 2= P +:
Pentru ca xk+1 s¼a r¼
amân¼ a în interiorul poliedrului se ia o fracţie a m¼arimii
pasului :
6
(12) xk+1 = xk + 4xk ;
unde 0 < < 1: În practic¼
a se ia 2 [0:95; 0:995] :
Algoritmul de scalare a…n¼a primal
Pasul 0. Se consider¼ a un punct iniţial din interiorul mulţimii soluţiilor ad-
misibile x0 2 P + : Se ia k = 0:
Pasul 1. Se de…neşte matricea diagonal¼
a de scalare
4xk = Xk2 (c AT uk ):
Pasul 4. Se determin¼
a lungimea pasului de deplasare de-a lungul direcţiei
4xk :
xik
= min :
i
i=4xk <0 4xik
Pasul 5. Se calculeaz¼
a noua iteraţie
xk+1 = xk + 4xk ;
unde 0 < < 1:
Pasul 6. Se testeaz¼
a criteriul de oprire al iteraţiilor, adic¼
a dac¼
a
cT xk bT uk
";
1 + jcT xk j
7
Cursul 6
Condiţii de extremum în programarea neliniar¼ a.
Soluţia optim¼a şi punctul şa al lagrangeanului
1
T
Fie x =(x1 ; x2 ; :::; xn ) o soluţie optim¼
a (local¼
a sau global¼
a) a problemei:
Vom face mai întâi raţionamentul pentru o funcţie cu dou¼ a variabile şi o singur¼
a
leg¼
atur¼
a: f (x1 ; x2 ) şi leg¼
atura g (x1 ; x2 ) = 0: Fie x = (x1 ; x2 ) un punct de
extrem condiţionat al funcţiei f (x1 ; x2 ) : Avem
g (x1 ; x2 ) = 0:
Presupunem îndeplinite condiţiile teoremei de existenţ¼ a a funcţiilor implicite.
Rezult¼a c¼
a într-o vecin¼ atate a punctului x2 ; exist¼
a o funcţie x1 = ' (x2 ) astfel
încât g (' (x2 ) ; x2 ) = 0 oricare ar … x2 din vecin¼
atatea lui x2 : Funcţia f (x1 ; x2 )
devine o funcţie de o singur¼ a variabil¼
a pe care o not¼ am:
Deoarece x2 este un punct de extrem pentru funcţia h (x2 ) avem, aplicând for-
mula de derivare a funcţiei compuse:
@f (x ) 0 @f (x )
(3) h0 (x2 ) = :' (x2 ) + = 0:
@x1 @x2
Din derivarea lui g se obţine:
@g@g 0
+ @x @x1 :'
2
= 0:
Aceast¼
a relaţie trebuie s¼
a …e veri…cat¼
a în x obţinându-se:
@g
@x2 (x )
'0 (x2 ) = @g(x )
:
@x1
@f (x )
!
@g (x ) @x1 @f (x )
: @g(x )
+ = 0:
@x2 @x2
@x1
O relaţie asem¼an¼
atoare are loc şi între derivatele parţiale în raport cu x1 : Într-
adev¼
ar relaţia
@f (x )
!
@f (x ) @g (x ) @x1
+ @g(x )
=0
@x1 @x1
@x1
este evident¼a.
În concluzie, punctul x ; de extrem condiţionat, trebuie s¼
a veri…ce urm¼
atorul
sistem de ecuaţii:
2
8
@f (x )
>
< @x1 + @g(x )
@x1 = 0
@f (x )
> @x2 + @g(x )
@x2 = 0
:
g (x1 ; x2 ) = 0;
unde am f¼
acut notaţia !
@f (x )
@x1
= @g(x ) :
@x1
Se observ¼ a c¼
a aceste trei ecuaţii ale sistemului rezult¼ a din anularea celor trei
derivate parţiale de ordinul întâi ale urm¼ atoarei funcţii:
Rezult¼ a c¼
a punctele de extrem ale funcţiei f (x1 ; x2 ) cu leg¼atura g (x1 ; x2 ) = 0
se pot g¼asi cercetând punctele staţionare ale funcţiei L.
S¼a analiz¼
am acum cazul general: presupunem c¼ a f şi gi i = 1; m au derivate
parţiale în raport cu variabilele xj ; j = 1; n; continue şi …e D (x) matricea ale
c¼
arei elemente sunt
@gi
dij = (x) ; i = 1; m; j = 1; n :
@xj
m
X @gi @f
(4) i (x ) + (x ) = 0; k = 1; 2; :::; m:
i=1
@xk @xk
Xm
@f @gi
(x ) + i (x ) = 0; j = m + 1; :::; n:
@xj i=1
@xj
în care i sunt soluţiile sitemului de ecuaţii (4) şi se numesc multiplicatorii lui
Lagrange .
3
Consider¼
am funcţia:
m
X
L (x; ) = f (x) + i gi (x) ;
i=1
numit¼
a funcţia lui Lagrange (lagranjean).
Se observ¼
a c¼
a
@L @f P
m
@gi
@xj = @xj + i @xj ; j = 1; 2; :::; n
i=1
@L
@ i = gi ; i = 1; 2; :::; m:
Deci dac¼a x este o soluţie optim¼a a problemei (2) şi sunt satisf¼acute ipotezele
suplimentare de mai sus, atunci exist¼a un vector =( 1 ; 2 ; :::; m ) 2 <m astfel
încât:
(
@L
@xj (x ; ) = 0; j = 1; 2; :::; n
@L
@ i (x ; ) = 0; i = 1; 2; :::; m:
Soluţia optim¼
a şi punctul şa al lagrangeanului
Fie X0 <n ; f : X0 ! <; a : X0 ! <m ; b : X0 ! <k :
Consider¼
am problema:
(6) inf (f (x))
x2X
unde
X = fx=x 2 X0 ; a(x) 6 0; b(x) = 0g
c¼
areia îi asociem funcţia lui Lagrange (lagrangean)
4
pentru orice x 2 X0 ; u 2 <m k
+ şi v 2 < :
Urm¼atoarea teorem¼ a d¼
a condiţii su…ciente de optimalitate în programarea
neliniar¼
a:
Teorema 1
Dac¼a (x ; u ; v ) este un punct şa al lagrangeanului L, atunci x este punct
de minim global al lui f pe X (soluţie optim¼a a problemei de programare neliniar¼a
(6))
Demonstraţie
Prima inegalitate din (8) se scrie astfel:
adic¼
a
sau
f (x ) 6 f (x) + (u )T a (x) + (v )T b (x) :
Pentru x 2 X; avem b (x) = 0 şi a (x) 6 0 adic¼
a f (x ) 6 f (x):
În (6) ecuaţiile b (x) = 0 pot … înlocuite cu inecuaţiile
Putem astfel s¼
a consider¼
am problema:
5
unde X0 <n ; f : X0 ! <; a : X0 ! <m şi
X = fx=x 2 X0 ; a (x) 6 0g :
De…nim lagrangeanul:
m
X
(12) L(x; u) = f (x) + uT a (x) = f (x) + ui ai (x); x 2 X0 ; u 2 <m
+:
i=1
adic¼
a L(x; u ) are un minim pe X0 în x ; iar L(x ; u) are un maxim în u pentru
u > 0:
Pentru obţinerea de condiţii necesare de optimalitate vom introduce ipoteze
suplimentare: X0 mulţime convex¼ a, f şi a funcţii convexe şi mulţimea X s¼
a
veri…ce una din urm¼ atoarele condiţii echivalente:
a) condiţia de regularitate a lui Slater :
exist¼
a x 2 X0 astfel încât a(x) < 0;
b) condiţia de regularitate a lui Karlin:
a u 2 <m
nu exist¼ + f0g astfel încât uT a (x) > 0 pentru orice x 2 X0 ;
c) condiţia de regularitate strict¼a :
a x1 ; x2 2 X cu x1 6= x2 şi a este strict convex¼
exist¼ a în x1 :
Observaţie:
Condiţia a) este o condiţie de nedegenerare a domeniului de optimizare,
adic¼
a X are cel puţin un punct interior x:
Teorema 2
Fie X0 <n convex¼a, f : X0 ! < convex¼a şi a : X0 ! <m
o funcţie vectorial¼a convex¼a. Presupunem c¼a X îndeplineşte una din condiţiile
de regularitate a), b) sau c).
Dac¼a x 2 X este o soluţie optim¼a a problemei de programare neliniar¼a (11),
atunci exist¼a u 2 <m + astfel încât (x ; u ) s¼
a …e punct şa al lagrangeanului L
de…nit de (12):
Observaţii
-pentru demonstraţie se aplic¼
a teorema de separare a mulţimilor convexe;
6
-teorema 2 nu este adev¼ arat¼
a f¼
ar¼
a condiţia de nedegenerare impus¼ a într-o
form¼a sau alta.
Exemplu
m = n = 1;
a(x) = x2
f (x) = x:
Singura soluţie admisibil¼
a este x = 0; care este şi optim¼
a, dar lagrangeanul
L(x; u) = x + ux2 nu are nici un punct şa.
7
Cursul 7
Condiţiile de optimalitate Kuhn-Tucker.
Elemente de programare p¼ atratic¼
a
Fie problema de programare neliniar¼
a:
X = fx=x 2 X0 ; a (x) 6 0g :
Restricţiile corespunz¼
atoare indicilor i 2 M (x) se numesc restricţii active în x ,
iar celelalte se numesc restricţii inactive în x.
Teorema 1
Fie X0 <n o mulţime deschis¼a, f : X0 ! < şi a : X0 ! <m funcţii
diferenţiabile şi convexe în x 2 X0 :
Dac¼a exist¼a u 2 <m + astfel încât:
(x x )T rai (x ) 6 ai (x) ai (x ) 6 0; x 2 X; i 2 M (x ):
1
f (x) f (x ) > (x x )T rf (x ) > 0
deci
f (x) > f (x ); (8)x 2 X;
adic¼
a x este punct de minim global al lui f pe X:
Teorema 2
Fie X 0 <n o mulţime deschis¼a, x o soluţie optim¼a a problemei (1), f şi a
diferenţiabile în x : Atunci exist¼a multiplicatorii Lagrange-Fritz John u 2 <m +
şi u0 2 <+ astfel încât
8 0
< rx LT(x ; u ; u0 ) = 0
>
(5) (u ) a(xP) = 0
>
: u0 + ui > 0;
i2M2 (x )
unde n o
M2 (x ) = M (x ) M1 (x ) şi M1 (x ) = i=i 2 M (x ); ai este concav a ^in x :
Demonstraţie. Consider¼
am sistemul de inegalit¼
aţi liniare:
8 T
< z rf (x ) 6 1
z T rai (x ) 6 1; i 2 M2 (x )
: T
z rai (x ) 6 0; i 2 M1 (x ):
2
P
rx L0 (x ; u ; u0 ) = u0 rf (x )+(u )T ra(x ) = u0 rf (x )+ ui rai (x )+
i2M (x )
P
+ ui rai (x ) = 0:
i2M
= (x )
Am folosit prima relaţie din sistem şi din nou c¼ a ui = 0 pentru i 2
= M (x ):
Teorema 3
Fie X0 <n o mulţime deschis¼a, x o soluţie optim¼a a problemei (1), f şi
a diferenţiabile în x : Presupunem de asemenea c¼a este îndeplinit¼a urm¼atoarea
condiţie de regularitate a restricţiilor datorat¼a lui K. J.Arrow, L.Hurwicz şi
H.Uzawa (A.H.U):
Sistemul de inecuaţii liniare
z T rai (x ) > 0; i 2 M1 (x )
(A:H:U:)
z T rai (x ) > 0; i 2 M2 (x )
rx L(x ; u ) = 0
(7)
(u )T a(x ) = 0:
Observaţie
Condiţia A.H.U. este îndeplinit¼ a pentru orice problem¼ a de programare
neliniar¼
a cu restricţii liniare pentru c¼ a M1 (x ) = M (x ) şi M2 (x ) = ; iar
sistemul de inecuaţii (A.H.U) are soluţie z = 0:
De asemenea dac¼ a funcţiile ai ; i 2 M (x ) sunt convexe şi este satisf¼
acut¼
a condiţia
de regularitate a lui Slater, atunci este satisf¼acut¼a şi condiţia A.H.U. Într-adev¼
ar,
pentru i 2 M (x ); convexitatea lui ai implic¼ a:
3
Rezultatele de mai sus pot … reunite într-un singur rezultat şi anume: pentru
ca x 2 X0 s¼ a …e soluţie a problemei (1) este necesar şi su…cient s¼ a existe
u 2 <m astfel încât s¼
a …e satisf¼
acute urm¼ atoarele condiţii Kuhn-Tucker:
8
>
> a(x ) 6 0
<
rx L(x ; u ) = 0
(8)
>
> (u )T a(x ) = 0
:
u >0
Observaţii
1 Se veri…c¼
a de asemenea şi condiţiile de ecart:
(x )T rx L(x ; u ) = 0
2. Pentru necesitate se presupune în plus, c¼ a mulţimea X din (1) satisface
în x condiţiile de regularitate a restricţiilor (A.H.U.), iar pentru su…cienţ¼
a, se
presupune c¼a a şi f sunt convexe în x :
unde
X = f(x; y)=(x; y) 2 X0 ; a(x; y) 6 0; d(x; y) = 0; x > 0g :
Pentru a obţine o condiţie necesar¼
a şi su…cient¼
a ca (x ; y ) s¼
a …e soluţie optim¼
a
scriem restricţiile astfel:
a(x; y) 6 0; d(x; y) 6 0; d(x; y) 6 0; x 6 0:
Not¼am cu u; u0 ; u00 şi w multiplicatorii Lagrange asociaţi celor patru grupuri de
restricţii:
L(x; y; u; u0 ; u00 ; w) = f (x; y) + uT a(x; y) + (u0 u00 )T d(x; y) + wT ( x):
am u0
Not¼ u00 = v şi
L0 (x; y; u; v) = f (x; y) + uT a(x; y) + v T d(x; y); u 2 <m k
+;v 2 < :
Rezult¼
a
L(x; y; u; u0 ; u00 ; w) = L0 (x; y; u; v) xT w;
unde u > 0; w > 0 şi v oarecare.Avem:
rx L = rx L0 w
ry L = ry L0 :
4
Din condiţiile Kuhn-Tucker rezult¼ a c¼
a o condiţie necesar¼a şi su…cient¼
a ca
(x ; y ) 2 X0 s¼a …e soluţie optim¼ a a problemei de programare neliniar¼ a (9) este
a existe u 2 <m
s¼ + ; v 2 < k
astfel încât s¼
a …e satisf¼a cute condiţiile:
8 8
>
> a(x ; y ) 6 0 >
> u >0
< <
d(x ; y ) = 0 v oarecare
(10)
>
> x >0 >
> rx L0 (x ; y ; u ; v ) > 0
: :
y oarecare ry L0 (x ; y ; u ; v ) = 0
(u )T a(x ) = 0
(x )T rx L0 (x ; y ; u ; v ) = 0:
Elemente de programarea p¼
atratic¼
a. Adaptarea metodei simplex la
condiţiile
Kuhn-Tucker (P.Wolfe)
Programarea p¼atratic¼
a ocup¼
a un loc intermediar între programarea liniar¼
a şi
programarea convex¼a.
Fie problema:
(11) inf (f (x))
x2X
unde
1
f (x) = cT x + xT Cx; c 2 <n
2
C este o matrice simetric¼
a, pozitiv de…nit¼
a şi
Restricţiile problemei sunt liniare iar funcţia obiectiv este suma unei funcţionale
liniare cu o form¼ a p¼atratic¼
a. Problema (11) se numeşte problem¼a de programare
p¼atratic¼a.
În cazul în care matricea C nu este simetric¼ a se înlocuieşte cu matricea
c +c
B = (bij )16i;j6n unde bij = bji = ij 2 ji :
Se poate veri…ca imediat c¼ a: xT Cx = xT Bx:
Dac¼ a C este pozitiv de…nit¼ a g(x) = xT Cx
a, (adic¼ 0 pentru orice x 2 <n )
1
atunci f (x) este convex¼ a. Într-adev¼ ar g( x + (1 )x2 ) = g(x1 ) + (1
2
2
)g(x ) + ( )(x 1 2 T
x ) C(x 1 2
x ): Observând c¼a 2 < 0 pentru orice
1 2 T 1 2
0 < < 1 şi (x x ) C(x x ) 0 rezult¼ a c¼
a g(x) este convex¼ a. Proprietatea
este adev¼ arat¼
a şi pentru f:
Not¼ am
d(x) = b Ax
L0 (x; v) = f (x) + v T d(x); v 2 <m :
5
Se observ¼
a c¼
a problema (11) este un caz particular al problemei (9).
Rezult¼
a c¼
a o condiţie necesar¼ a ca x s¼
a şi su…cient¼ a …e optim¼
a este s¼
a existe
v 2 <m astfel încât:
d(x) = 0 v oarecare
(x)T rx L0 (x; v) = 0:
x>0 rx L0 (x; v) > 0
Ţinând seam¼
a de expresia lui f , obţinem:
Ax = b v oarecare
(12)
x>0 c + Cx AT v > 0
x(c + Cx AT v) = 0:
c + Cx AT v y = 0:
Condiţiile (12) sunt formate din relaţii de gradul întâi şi unele relaţii care nu
mai sunt de gradul întâi, ele neputând constitui restricţiile unei probleme de
programare liniar¼ a. Putem îns¼ a s¼
a reţinem dintre condiţiile Kuhn-Tucker (12)
pe cele de gradul întâi pentru folosirea metodei simplex, urmând ca celelalte s¼ a
constituie o îngr¼adire la criteriul de intrare în baz¼ a.
Vectorul v …ind oarecare se face substituţia v = v 1 v 2 ; v 1 ; v 2 > 0:
Dac¼a sistemul de gradul întâi nu are soluţie de baz¼ a iniţial¼
a introducem vari-
abilele arti…ciale şi consider¼
am drept funcţie obiectiv suma variabilelor arti…ciale
care trebuie minimizat¼ a.
Dup¼ a terminarea primei faze, se caut¼ a celelalte soluţii admisibile de baz¼ a, f¼
ar¼
aa
avea o funcţie obiectiv. Se modi…c¼ a criteriul de intrare în baz¼ a astfel încât pentru
…ecare i = 1; n ,xi şi yi nu pot … simultan nenule, deci nu pot … simultan în baz¼ a.
y = Ax b
v = c + Cx AT u
6
condiţiile necesare şi su…ciente de optimalitate devin:
8
< Ax y = b
Cx AT u v = c
:
x 0; u 0; v 0; y 0
şi
uT y = 0; (x)T v = 0
Rezult¼a un sistem de m+n ecuaţii liniare cu 2m+2n variabile. Variabilele yi au
semni…caţia de variabile ecart în problema primal¼ a, iar vj sunt variabile ecart
în problema dual¼ a. Condiţiile xj vj = 0 şi ui yi = 0 arat¼
a c¼
a ne intereseaz¼
a doar
acele programe ale acestui sistem care au cel mult m + n componente nenule,
adic¼
a doar pogramele de baz¼ a.
7
Cursul 8
Metoda direcţiilor admisibile. Algoritmul de
secţionare prin hiperplane (J.E. Kelley). Duala
în sens Wolfe
Metoda direcţiilor admisibile (M. Frank şi P. Wolfe)
Fie problema de programare convex¼
a cu restricţii liniare
8
< min f (x)
(1) Ax b
:
x 0
X = fx 2 <n =Ax b; x 0g
este nevid¼
a.
Metoda direcţiilor admisibile const¼
a în evoluţia pas cu pas c¼
atre soluţia optim¼a,
plecând de la un punct arbitrar ales x1 ; folosind în acest scop o relaţie iterativ¼
a
de forma:
xk+1 = xk + ku
k
2X
unde uk 2 <n este un vector care caracterizeaz¼ a direcţia , iar k 2 <; pasul
de deplasare. Se consider¼ a vectorul uk determin¼
a c¼ a o direcţie admisibil¼a din
punctul xk ; dac¼
a utilizând un pas su…cient de mic, o deplasare în direcţia dat¼a
de uk r¼
amâne în domeniul admisibil X.
Metoda direcţiilor admisibile este deci un proces iterativ prin care se genereaz¼
a
un şir
xk X; cu f xk+1 < f xk ; k = 1; :::
astfel încât
lim f xk = minf (x) :
k!1 x2X
x = xk + uk = 2 < \ X:
1
Ipoteza m¼arginirii :
xT (5f (y)) este m¼arginit¼
a inferior pe X oricare ar … y 2 X:
Teorema 1 (Testul de optimalitate)
Presupunem X 6= ; şi xk 2 X: Dac¼a xk este o soluţie optim¼a a problemei
de programare liniar¼a:
(2) minxT 5f xk
x2X
şi
T
(3) xk xk 5 f xk 0
Demonstraţie
Din (3) şi din proprietatea de optimalitate a lui xk rezult¼
a
T T T
(4) 5f xk xk 5f xk xk 5f xk x; (8) x 2 X
sau
T
x xk 5 f xk 0; (8) x 2 X:
Pe de alt¼
a parte din convexitatea lui f avem
T
(5) f (x) f xk x xk 5 f xk ; (8) x 2 <n
Rezult¼
a
f (x) f xk ; (8) x 2 X
a xk este soluţie optim¼
adic¼ a.
Corolarul 1
Dac¼a x k este soluţia optim¼a a problemei (2) atunci este şi soluţie optim¼a a
problemei (1). Într-adev¼ ar pentru xk = xk relaţia (3) este veri…cat¼a.
Teorema 2 (îmbun¼
at¼
aţirea soluţiei)
Fie x k 2 X şi xk soluţie optim¼a a problemei (2).
Dac¼a
T
(6) xk xk 5 f xk < 0
atunci exist¼a x k+1 2 X de forma
x k+1 = xk + k xk xk ; k 2 [0; 1]
2
astfel încât f xk+1 < f xk :
Demonstraţie
am uk = xk
Not¼ xk : Funcţia ' ( ) = f xk + uk este convex¼
a pe [0; 1] şi
k T
'0 ( ) = u 5 f xk + uk este cresc¼
atoare pe [0; 1] :
În plus folosind (6) rezult¼
a:
T
'0 (0) = uk 5 f xk < 0:
Avem dou¼
a cazuri:
T
(i) '0 (1) 0 ) uk 5 f xk 0 ) '0 ( ) 0 oricare ar … 2 [0; 1] şi
deci ' îşi atinge minimul pe [0; 1] în = 1:
Punând xk+1 = xk rezult¼ a f xk+1 < f xk :
(ii) '0 (1) > 0 rezult¼
a c¼ a k 2 (0; 1) astfel încât '0 ( k ) = 0;
a exist¼
k+1
k este punct de minim al lui ' pe [0; 1] şi punând x = xk + k uk deducem
k+1 k
c¼
af x <f x :
funcţiei:
'k ( ) = f xk + uk pe [0; 1) :
k T
4) Dac¼a u 5 f xk 0, STOP, xk este soluţie optim¼
a. Altfel k := k + 1
, go to 2.
Algoritmul de secţionare prin hiperplane (J.E. Kelley)
Algoritmul lui Kelley reduce rezolvarea problemei de programare convex¼
a la o
succesiune de probleme de programare liniar¼a.
Fie problema de programare convex¼ a:
unde
X = fx 2 <n =gj (x) 6 0; j 2 J1 ; hj (x) 6 0; j 2 J2 g
f; gj 2 C 1 funcţii convexe şi hj funcţii liniare. O parte din restricţii sunt
convexe, restul sunt restricţii liniare.
3
Procedeul general de construcţie a unui algoritm de secţionare
prin hiperplane
Metoda const¼ a în construirea unui şir descresc¼
ator de tronsoane convexe prin
secţionarea succesiv¼
a a acestora cu hiperplane.
Se consider¼ a tronsonul convex Xlin al punctelor x 2 <n care veri…c¼
a re-
stricţiile liniare.
Xlin = fx 2 <n =hj (x) 6 0; j 2 J2 g :
Dac¼a Xlin 6= ;; …e x0 2 Xlin :
Secţion¼
am acest tronson convex ad¼
augând restricţiile liniare
gj (x0 ) + (x x0 )T rgj (x0 ) 6 0; j 2 J1
obţinându-se tronsonul convex
inf (f (x)):
x2X0
X0 X1 ::: Xk ::: X
4
Acesta este procedeul general de construcţie a unui algoritm de secţionare prin
hiperplane.
Observaţie
În cazul în care funcţia f nu este liniar¼
a se poate înlocui problema (7) cu
problema echivalent¼a (8):
Algoritmul J. E. Kelley
Se construiesc recursiv şirurile
xk ; fXk g ; k = 0; 1:::
Dac¼
a Xk 1 = ;; STOP. Altfel, se rezolv¼
a problema de programare liniar¼
a:
inf (f (x))
x2Xk 1
Xk = x 2 Xk k
1 =gi (x ) + (x xk )T rgi (xk ) 6 0 ;
unde indicele i 2 J1 este cel (cele) pentru care se atinge
5
Rezult¼
a c¼
a x 2 X0 :
Presupunem relaţia adev¼
arat¼
a pentru k = 1; 2; :::; k 1 şi x 2 Xk 1:
Din nou avem:
Rezult¼
a x 2 Xk : Cum Xk 1 Xk X rezult¼
a
f (xk 1
) 6 f (xk ) 6 inf ff (x)=x 2 Xg
Propozitia 1
Fie X <n ; Y <m şi f : X ! <; g : Y ! <: Dac¼a problema de
programare (10) este duala problemei (9) atunci:
1) Dac¼a x 2 X; y 2 Y şi f (x ) = g (y ) atunci x este soluţie optim¼a
pentru (9), iar y este soluţie optim¼a pentru (10).
2) Dac¼a una dintre cele dou¼a probleme are optim in…nit, atunci cealalt¼a nu
are soluţii.
6
Demonstraţie
Deoarece X 6= ; şi Y 6= ; din condiţia a) a de…niţiei rezult¼
a
În particular
inf f (x)
(11)
ai (x) 0; i = 1; m;
m
X
L (x; ) = f (x) + i ai (x) ; x 2 X0 ; i 2 <+; i = 1; m:
i=1
Propoziţia 2
Fie X 0 <n o mulţime deschis¼a şi convex¼a
f : X 0 ! <; ai : X0 ! <; i = 1; m funcţii convexe şi diferenţiabile pe X0 :
Dac¼a x 2 X şi (x0 ; ) 2 Y atunci f (x) L (x0 ; ) :
Demonstraţie.
7
Xm X m
@f @ai 0 @f @ai 0
(x0 ; ) 2 Y ) (x0 ) + i (x ) = 0 ) (x0 ) = ( i) (x ) :
@xj i=1
@xj @xj i=1
@xj
n
X @f
f (x) f (x0 ) xj x0j (x0 )
j=1
@xj
n
X
0 @ai 0
ai (x) ai (x ) xj x0j (x ) ; :i = 1; m:
j=1
@xj
P
m
Pentru x 2 X ) ai (x) 0; i = 1; m ) i ai (x) 0: Atunci
i=1
n
X m
X m
X m
X
@ai 0
f (x) f (x0 ) xj x0j ( i) (x ) i (ai (x0 ) ai (x)) i ai (x0 ) :
j=1 i=1
@xj i=1 i=1
Rezult¼
a
m
X
f (x) f (x0 ) + i ai (x0 ) :
i=1
@L (x ; )
= 0; j = 1; n
@xj
i ai (x ) = 0; i = 1; m:
m
X
L (x ; ) = f (x ) + i ai (x ) = f (x ) :
i=1
8
L (x; ) f (x ) = L (x ; ) pentru orice (x; ) 2 Y; adic¼ a (x ; ) este
soluţie optim¼
a a W-dualei.
De asemenea a reieşit c¼
a valorile funcţiilor obiectiv sunt egale.
9
Cursul 9
Jocuri matriceale. Strategiile mixte ca soluţii
ale problemelor de optimizare liniar¼a
Teoria jocurilor studiaz¼ a situaţiile con‡ictuale sau de competiţie, în
care acţioneaz¼ a dou¼ a sau mai multe p¼ arţi, cu scopuri contrarii. Situaţiile con-
‡ictuale, de cele mai multe ori cu caracter economic (concurenţa , vânz¼ arile
la licitaţie, etc.) sunt situaţii în care acţioneaz¼ a mai mulţi factori ”raţionali”,
…ecare urm¼ arind un anumit scop, independenţi în alegerea deciziilor proprii, dar
dependenţi prin rezultate. Rezultatul oric¼ arei decizii luate de una dintre p¼ arţi,
depinde de modul de acţiune pe care-l adopt¼ a partea advers¼ a. Aceast¼ a situaţie
a fost formalizat¼ a de c¼ atre matematicianul John von Neumann şi economistul
Oskar Morgenstern, în conceptul matematic de joc in lucrarea “The Theory of
Games and Economic Behaviour ”. Aceştia au de…nit jocul ca “orice interacţi-
une între diverşi agenţi, guvernat¼ a de un set de reguli speci…ce care stabilesc
mut¼ arile posibile ale …ecarui participant şi câştigurile pentru …ecare combinaţie
de mut¼ ari”. Aceast¼ a descriere se poate aplica aproape oric¼ arui fenomen social.
Teoria jocurilor este utilizat¼ a in diverse domenii, de la biologie şi
psihologie, la sociologie şi …lozo…e, precum şi în cazurile în care o activitate
intr¼a în con‡ict cu caracterul întâmpl¼ ator al unor fenomene naturale.
În anul 2005 Robert J. Aumann şi Thomas C. Schelling au câştigat
premiul Nobel în economie pentru “Contributions to Game Theory: Analyses of
Con‡ict and Cooperation”. Este pentru a doua oar¼ a in istoria premiului Nobel
cand acesta este câştigat de cercet¼ atori ai teoriei jocului, dup¼ a ce in 1994 au fost
desemnaţi câştig¼ atori americanii John C. Harsanyi si John F. Nash şi germanul
Reinhard Selten, ale c¼ aror cercet¼ari au fost extrem de utile pieţelor …nanciare şi
au permis analiza echilibrului in teoria jocurilor non-cooperative.
Teoriile lui Aumann le continu¼ a pe cele ale lui John Nash ( erou al celebrului
…lm A beautiful mind ). Aumann a introdus ins¼ a repetiţia in…nit¼a a unui acelaşi
joc, f¼acând posibil¼ a astfel g¼
asirea unei soluţii în contextul unor relaţii pe termen
lung şi nu doar în cazul unei singure interacţiuni. Lucr¼ arile celor doi şi-au g¼ asit
aplicaţii remarcabile şi în înţelegerea modului în care se formeaz¼ a şi opereaz¼ a
grupurile de interes comercial, dar şi tratatele comerciale internationale şi chiar
grupurile de crim¼ a organizat¼a. Teoria jocurilor repetate a devenit cadrul comun
de analiz¼ a a cooper¼ arilor pe termen lung în ştiinţele sociale, a fost utilizat¼ a în
ştiinţe politice, etic¼
a şi …lozo…e. În …nal, teoria jocurilor a atras recent atenţia
informaticienilor datorit¼ a utiliz¼
arii sale în inteligenţa arti…cial¼ a şi cibernetic¼ a..
Joc - o situaţie în care acţioneaz¼
a o mulţime N = f1; 2; :::; pg de elemente
raţionale numite juc¼atori care în mod succesiv şi independent aleg câte o decizie
(efectueaz¼a o ”mutare”) dintr-o mulţime dat¼ a de alternative. Fiecare juc¼ ator
primeşte o recompens¼ a (”câştig”) care depinde de întreaga desf¼aşurare a jocului,
deci de ansamblul acţiunilor tuturor juc¼ atorilor. Se presupune c¼ a juc¼
atorii au
capacitatea de a analiza variantele, de a evalua riscurile şi a încerca s¼ a le reduc¼
a
pentru a obţinePun câştig cât mai mare posibil.
Not¼
am cu i ; i 2 N mulţimea strategiilor pure ale juc¼ atorului i din care
1
P P p P
acesta alege o decizie i 2 i şi cu = i; produsul lor cartezian.
i=1
Mulţimea = f i gi2N este partida realizat¼a. Câştigul obţinut de juc¼ atorul
i este ui ( ) :
Sistemul
P i
= i ; u i2N
se numeşte joc în form¼a normal¼a de p persoane.
Jocul se numeşte joc cu sum¼a nul¼a dac¼ a:
P
u1 ( )+u2 ( )+....+up ( ) = 0; (8)P2 P :
este joc …nit dac¼ a toate mulţimile strategiilor pure 1 ; :::; p sunt …nite.
Un joc …nit P de dou¼ a persoaneP se mai numeşte joc bimatricial deoarece, pre-
supunând 1 = f& 1 ; :::; & m g şi 2 = f 1 ; :::; n g forma sa normal¼ a se reduce la
dou¼ a matrice (de tip m n) : A = (aij ) şi B = (bij ) unde aij = u1 (& i ; j ) ; i =
1; :::; m; j = 1; :::; n şi bij = u2 (& i ; j ) ; i = 1; :::; m; j = 1; :::; n:
Un joc de dou¼ a persoane …nit şi cu sum¼ a nul¼ a (deci cu A + B = 0)
m X
X n
f1 (x; y)
u = aij xi yj = xT Ay
i=1 j=1
m X
X n
f2 (x; y)
u = bij xi yj = xT By:
i=1 j=1
Jocul
n o
e= Pf ; uei
i
i2N
se numeşte extensia aleatoare a jocului .
2
Jocuri matriceale
Într-un joc matriceal particip¼a doi juc¼ atori (I; II), cu interese
opuse , …ecare dispunând de un num¼ ar …nit de strategii. Dac¼ a juc¼
atorul I are m
strategii şi juc¼atorul II; n strategii atunci sunt posibile m n situaţii. Funcţia
de câştig a primului juc¼ ator pe mulţimea de situaţii este dat¼
a de o matrice m n;
A = (aij ) :
Pentru juc¼ atorul II matricea de câştig difer¼
a doar prin semn. Dac¼ a juc¼
atorul
I alege strategia i iar juc¼ atorul II strategia j, câştigul juc¼atorului I este egal
cu aij iar cel al juc¼ atorului II este egal cu -aij :
Teoria jocurilor matriceale porneşte de la supoziţia c¼ a juc¼atorul I se str¼
a-
duieşte s¼a-şi asigure un câştig garantat cât mai mare, iar juc¼atorul II, o pierdere
garantat¼a cât mai mic¼a. Este un principiu de comportare caracterizat prin pru-
denţ¼
a şi dorinţa de securitate împotriva celor mai proaste situaţii.
Dac¼a juc¼ atorul I alege strategia i, atunci oricare ar … strategia j aleas¼ a de
juc¼
atorul II, câştigul minim (sigur) pe care-l poate obţine (în situaţia cea mai
nefavorabil¼ a) este:
i = min aij :
1 j n
j = max aij
1 i m
Strategia pur¼
a astfel determinat¼
a se numeşte strategia minmax. Strategiile
maxmin şi minmax sunt atractive prin aceea c¼
a ofer¼
a securitate. Este adev¼
arat¼
a
relaţia vI vII adic¼
a:
3
valoarea jocului. Deci situaţia cea mai favorabil¼
a în acelaşi timp pentru ambii
juc¼
atori este aceea când se pot folosi anumite strategii i0 ; j0 pentru care
adic¼
a juc¼
atorul I s¼
a poat¼a primi valoarea v, iar juc¼ atorul II s¼a-l împiedice s¼a
primeasc¼a mai mult de v. Situaţia (i0 ; j0 ) este o situaţie de echilibru, nici un-
uia dintre juc¼
atori nu-i convine s¼
a-şi schimbe strategia, dac¼ a adversarul nu-şi
schimb¼a optiunea. Egalitatea (1) se realizeaz¼ a dac¼a şi numai dac¼ a matricea A
are un element şa adic¼
a un element ai0 j0 care este cel mai mic în linia sa şi cel
mai mare pe coloana sa.
Teorema 1.
Condiţia necesar¼a şi su…cient¼a ca
max minaij = min maxaij
i j j i
este ca s¼a existe un punct (i0 ; j0 ) 2 f1; :::; mg f1; :::; ng astfel încât aij0 ai0 j0 ai0 j
oricare ar … i 2 f1; :::; mg şi j 2 f1; :::; ng :
Observaţie
Dac¼
a matricea nu are un element şa, ca de exemplu matricea
1 1
1 1
atunci vI < vII iar situaţia determinat¼
a de strategiile de maxmin şi de minmax
nu este o situaţie de echilibru. Asemenea strategii nu pot … recomandate drept
optime. Astfel de jocuri (care nu au soluţii în strategii pure) sunt îns¼
a cel mai
des întâlnite; de aceea a fost necesar¼
a l¼
argirea clasei deciziilor admisibile de la
strategii pure la strategii mixte.
Strategii mixte
Când partidele se repet¼ a, juc¼
atorii pot alege strategii pure cu anumite frecvenţe
sau probabilit¼aţi şi atunci se spune c¼ a utilizeaz¼
a o strategie mixt¼a. O strategie
mixt¼a (sau strategie aleatoare) a juc¼ atorului I este o probabilitate pe mulţimea
sa de strategii pure
X = f 1 ; :::; m g. Mulţimea strategiilor sale mixte este:
e= P
m
X x 2 <m =x 0; xk = 1 :
k=1
T
Componenta xk a strategiei mixte x = (x1 ; :::; xk ; :::; xm ) reprezint¼
a probabili-
k
tatea ca juc¼
atorul I s¼
a foloseasc¼
a strategia pur¼
a k: Strategia mixt¼
a (0; :::; 1; :::; 0)
4
care const¼
a în alegerea sigur¼
a a strategiei pure k se poate identi…ca cu k deci
e
X X:Analog, mulţimea strategiilor mixte pentru juc¼
atorul II este:
P
n
Ye = y 2 <m =y 0; yk = 1 :
k=1
T T
Fie x = (x1 ; :::; xm ) o strategie mixt¼
a pentru juc¼atorul I şi y = (y1 ; :::; yn )
o strategie mixt¼ a pentru al doilea juc¼ator.Câştigul mediu al juc¼ atorului I este
m X
X n
(1) F (x; y) = aij xi yj = xT Ay
i=1 j=1
se numesc strategii mixte optime, (x0 ; y 0 ) este soluţia jocului, iar v = F (x0 ; y 0 )
este valoarea jocului.
Jocul matriceal
(aij + k)i=1;m ; k 2 <;
j=1;n
are aceeasi mulţime de strategii optime, valoarea jocului …ind îns¼ a v + k: Astfel
putem s¼ a-l lu¼am pe k su…cient de mare ca matricea s¼ a aib¼
a toate elementele
pozitive şi valoarea jocului diferit¼
a de zero.
Strategiile optime x0 şi y 0 şi valoarea v a unui joc a c¼
arui matrice este
A = (aij )m;n sunt soluţii ale urm¼ atoarelor sisteme de inegalit¼
aţi:
8 P
m
>
>
> v6 aij x0i ; j = 1; n
< i=1
(3) P
m
>
> x0i = 1
>
: i=1
x0i 0; i = 1; m
şi
8
> P
n
>
> v aij yj0 ; i = 1; m
>
< j=1
(4) P
n
>
> yj0 = 1
>
> j=1
:
yj0 0; j = 1; n:
Sistemele (3) şi (4) se obţin luând în (2)
5
T j T
i
x= 0; :::; 1; :::; 0 ; i = 1; m şi y = 0; :::; 1; :::; 0 ; j = 1; n:
Sistemul (3) se interpreteaz¼ a astfel: împotriva tuturor strategiilor pure ale juc¼ a-
torului II, strategia mixt¼ a x0 a juc¼atorului I s¼a dea un câştig de cel puţin v.
Analog se interpreteaz¼ a sistemul (4).
Utilizarea unei strategii mixte înseamn¼ a aplicarea unui mecanism aleator pentru
alegerea unei strategii pure; pentru juc¼ atorul I un asemenea mecanism trebuie
s¼
a aib¼
a m st¼ ari, starea i având probabilitatea xi . De exemplu, strategia mixt¼ a
x = 52 ; 35 pe X = f1; 2g înseamn¼ a alegerea strategiei 1 cu probabilitatea 25 şi a
strategiei 2 cu probabilitatea 35 astfel: se amestec¼ a 2 bile albe şi 3 bile negre, se
extrage apoi la întâmplare una dintre ele şi se alege strategia pur¼ a 1, dac¼a bila
extras¼a este alb¼a şi respectiv 2 dac¼ a aceasta este neagr¼ a.
Dac¼a în sistemul de inegalit¼ aţi (3) se consider¼
a primele n restricţii cu
egalitate, se obţine sistemul de ecuaţii
8 m
> P
>
> aij x0i = v; j = 1; n
<
i=1
>
> P
m
>
: x0i = 1:
i=1
Interpretarea dualit¼
aţii în termeni de teoria jocurilor
G. Dantzig demonstreaz¼ a leg¼
atura care exist¼
a între problemele de progra-
mare liniar¼a şi jocurile matriciale. El arat¼
a c¼a orice problem¼ a de programare
liniar¼
a poate constitui un joc matricial cu sum¼ a nul¼
a între doi parteneri, iar orice
astfel de joc se poate transforma într-o problem¼ a de programare liniar¼ a. Re-
zolvarea unui joc matricial se poate reduce la rezolvarea unui cuplu de probleme
duale de programare liniar¼ a.
Problema juc¼atorului I
T
S¼a se g¼ a vectorul x0 = x01 ; x02 ; :::; x0m
aseasc¼ şi num¼arul vI satisf¼
acând
condiţia ca împotriva tuturor strategiilor pure (şi prin urmare şi a celor mixte)
ale juc¼ a x0 a juc¼
atorului II, strategia mixt¼ atorului I s¼ a dea un câştig de cel
puţin vI care trebuie maximizat:
8
> max(vI )
>
> Pm
>
>
< aij x0i + vI 0; j = 1; n
i=1
(5) P
m
>
> 0
> i=1xi = 1
>
>
:
x0i 0; i = 1; m:
6
Problema juc¼atorului II
T
S¼
a se g¼ a vectorul y 0 = y10 ; :::; yn0
aseasc¼ şi num¼
arul vII ; satisf¼
acând condiţi-
ile:
8
>
> min(vII )
>
> Pn
>
> aij yj0 vII 0; i = 1; m
<
j=1
(6) Pn
>
> yj0 = 1
>
>
>
> j=1
: 0
yj 0; j = 1; n:
Se veri…c¼
a uşor c¼
a problemele (5) şi (6) formeaz¼
a un cuplu de probleme duale.
Ambele au soluţii admisibile, de exemplu pentru (5)
1
x0i = ; i = 1; m; vI = minaij
m i;j
8 Pm
>
> min xi
>
< i=1
(7) Pm
>
> aij xi 1; j = 1; n
> i=1
:
xi 0; i = 1; m:
1 0
Analog, punând yj = vII yj ; j = 1; n se obţine:
8
> Pn
>
> max yj
>
< j=1
(8) Pn
>
> aij yj 1; i = 1; m
>
>
: j=1
yj 0; j = 1; n:
Dac¼a (x1 ; :::; xm ) şi (y 1 ; :::; y n ) sunt soluţiile optime ale problemelor liniare duale
(7) şi (8) atunci valoarea v a jocului se obţine din:
m n
1 X X
= xi = yj ;
v i=1 j=1
7
x0 = (vx1 ; :::; vxm ) şi y 0 = (vy 1 ; :::; vy n ).
Observaţii
1. Strategia aleatoare x0 îi garanteaz¼a juc¼
atorului I un câştig mediu v şi el
poate … oprit prin strategia y 0 s¼a obţin¼
a mai mult. Dac¼ a juc¼atorul I alege o
alt¼
a strategie, el risc¼
a.
2. Componentele strategiei optime y 0 sunt nule pentru acele strategii pure j
pentru care:
a1j x01 + a2j x02 + ::: + amj x0m > v
pentru a-l împiedica pe primul juc¼ator s¼
a câştige mai mult decât valoarea v.
Analog, componentele strategiei optime x0 sunt nule pentru acele strategii pure
i pentru care:
ai1 y10 + ai2 y20 + ::: + ain yn0 < v
pentru a-l împiedica pe juc¼ atorul II s¼ a piard¼
a mai puţin decât valoarea jocului
v. Într-adev¼ar, dac¼a aplic¼am teorema slab¼ a a ecarturilor complementare cuplu-
lui de probleme duale (5) şi (6) rezult¼ a c¼
a variabila dual¼a asociat¼
a unei restricţii
primale care este veri…cat¼ a strict, trebuie s¼
a …e nul¼a. Analog, variabila primal¼ a
asociat¼a unei restricţii duale care este veri…cat¼a strict, trebuie s¼
a …e nul¼
a.
8
Cursul 10
Introducere în teoria aştept¼
arii
Teoria aştept¼ arii (a …relor de aşteptare, a cozilor) studiaz¼ a caracteristi-
cile sistemelor ce pot produce fenomene de aşteptare, datorit¼ a solicit¼
arii unui
anumit serviciu de c¼ atre un num¼ ar de ”clienţi” ale c¼aror sosiri au un caracter
aleator. Scopul acestui studiu este de a crea o baz¼ a teoretic¼ a pentru adoptarea
deciziilor capabile s¼a înl¼
ature fenomenul de aşteptare sau s¼ a-l limiteze la un nivel
acceptabil.
Fie un sistem în care se execut¼ a o anumit¼ a activitate sau se efectueaz¼ a un
anumit serviciu. Obiectele asupra c¼ arora se execut¼ a activitatea sau serviciul
respectiv se numesc clienţi iar sistemul se numeşte sistem de servire. O instalatie
care nu poate deservi decât un singur client (în acelaşi timp) se numeşte staţie
de servire. În cazul în care clienţii sosesc prea des, ei trebuie s¼ a aştepte pân¼a
când devine disponibil¼ a o staţie de servire sau s¼a renunte la serviciul respectiv;
dac¼ a sosesc prea rar, staţiile de servire au de aşteptat. Clienţii care aşteapt¼ a
sau staţiile de servire neocupate formeaz¼ a un …r de aşteptare (coad¼ a). Regulile
dup¼ a care se dispun în aşteptare clienţii , ordinea în care aceştia sunt serviţi, se
numeşte disciplina …rului de aşteptare. Ea poate urma regula ”primul venit -
primul servit” -(First In First Out)- sau cu anumite priorit¼ aţi.
O problem¼ a de teoria aştept¼ arii apare atunci când exist¼ a anumite costuri
asociate atât timpului de aşteptare al clienţilor cât şi staţiilor de servire neocu-
pate şi exist¼a posibilitatea controlului asupra intensit¼ aţii sosirii clienţilor sau
asupra num¼ arului de staţii de servire astfel încât s¼ a se minimizeze suma cos-
turilor. Astfel de probleme apar în managementul sistemelor de comunicaţii
şi de transport, în transporturile aeriene când aeronavele aşteapt¼ a aprobarea
de aterizare de la turnul de control, în b¼ anci, servicii de s¼ an¼ atate, sisteme de
operare, dar şi în dirijarea şi controlul funcţion¼ arii în timp real a reţelelor de
calculatoare.
Sistemul analizat poate … unul în funcţiune dar care nu are performanţe
satisf¼ac¼
atoare, în acest caz se pune problema de a decide ce trebuie modi…cat
pentru a creşte performanţele. În alte situaţii poate … cazul unor sisteme a‡ate
în faza de proiectare pentru care trebuie stabilite caracteristicile astfel încât s¼ a
ating¼ a performanţele dorite.
Elemente tipice ale modelelor teoriei aştept¼
arii.
Caracteristicile modelelor.
Sosirile clienţilor în sistem şi durata serviciului au un caracter aleator. Vom
considera urm¼ atoarele m¼ arimi aleatoare:
-num¼arul de clienţi care intr¼a în sistem într-o perioad¼a de timp dat¼a;
-intervalul de timp dintre dou¼a sosiri consecutive;
-durata de servire a unui client.
În practic¼
a, legile de probabilitate ale acestor variabile aleatoare se determin¼
a
prin prelucrarea datelor statistice.
1
Elementele necunoscute ale unui sistem de aşteptare sunt:
- timpul de aşteptare al unui client;
-timpul de neocupare al staţiilor;
- num¼arul de clienţi existenţi în …rul de aşteptare;
-num¼arul de clienţi existenţi în sistem.
Toate sunt variabile aleatoare şi se urm¼ areşte determinarea repartiţiilor lor sau
m¼acar a unor valori medii.
Num¼ arul sosirilor înregistrate într-un interval de lungime t este deseori o vari-
abil¼a aleatoare cu distribuţie Poisson, adic¼ a probabilitatea de a avea k sosiri
într-un interval de lungime t este:
k
( t)
pk (t) = e t ; k = 0; 1; :::; > 0:
k!
S¼
a vedem în ce condiţii apare aceast¼ a situaţie. Fie pk (t0 ; t) probabilitatea de a
avea k intr¼
ari în sistem în intervalul (t0 ; t0 + t) ; t0 0: Presupunem c¼ a pk (t0 ; t)
satisface condiţiile:
a) pk (t0 ; t) nu depinde de t0 (ci numai de k şi de lungimea t a intervalului
de timp)
pk (t0 ; t) = pk (t) :
Sosirile sunt independente între ele şi totodat¼
a independente de data observ¼
arii.
b) Probabilitatea ca s¼a soseasc¼a doi sau mai multi clienţi într-un interval de
timp foarte mic este neglijabil¼ a faţ¼
a de lungimea intervalului, sau altfel spus,
este practic imposibil s¼
a înregistr¼
am dou¼ a sau mai multe sosiri simultane (clienţii
sosesc individual):
p>1 (h) = o (h) ;
a lim o(h)
unde prin o (h) am notat o funcţie de h (h > 0) cu proprietatea c¼ h = 0.
h!0
c) Probabilitatea înregistr¼
arii unei singure sosiri în intervalul de timp (t; t + h)
este practic, pentru intervale foarte mici, proporţional¼ a cu lungimea intervalului
:
0
p1 (h) = h + o (h) :
Dac¼ a sunt îndeplinite condiţiile a), b), c) atunci probabilitatea de a avea cel
puţin o sosire într-un interval de lungime h este:
2
Teorema 1
În condiţiile a), b), c) pentru orice t 0 avem :
k
( t) t
pk (t) = e ; k = 0; 1; 2; :::; > 0:
k!
k
pk =
e ; k = 0; 1; :::; > 0:
k!
Valoarea medie a num¼arului de sosiri în sistem în unitatea de timp este:
1
X k 1
X k 1
k: e = e = :e :e = :
k! (k 1)!
k=1 k=1
F (t) = p ( t) = 1 p ( > t) :
Dac¼a durata dintre dou¼ a apariţii consecutive de evenimente rare este mai mare
decât t înseamn¼a c¼
a în intervalul de lungime t nu are loc nici un eveniment, adic¼
a:
t
p ( > t) = p0 (t) = e :
Rezult¼
a:
t
F (t) = 1 e ;
care este chiar funcţia de repartiţie a unei variabile aleatoare exponenţiale de
parametru : Valoarea medie a unei variabile aleatoare exponenţiale de para-
metru este 1 :
Exemplu
Presupunem c¼a durata de livrare a unei comenzi este o variabil¼a aleatoare
cu distribuţie exponenţial¼a negativ¼a cu media de 10 zile. Care este probabilitatea
ca livrarea s¼a dureze mai mult de 21 zile?
Rezolvare:
3
Durata medie 1 = 10:
Rezult¼
a = 0:1:
0:1 21
p ( > 21) = e = 0:122456:
Vom nota cu m num¼ arul elementelor populaţiei din care pot proveni clienţii
(mulţimea surs¼a ) în sistemul de aşteptare. Mulţimile formate dintr-un num¼ ar
mare de clienţi se consider¼a in…nite deoarece apar unele simpli…c¼ ari din punct
de vedere matematic.
Num¼ arul de clienţi din …rul de aşteptare şi num¼
arul de clienţi existenţi în
sistem (în aşteptare sau în curs de servire) sunt variabile aleatoare pe care le
not¼am cu # respectiv n. M¼ arimile n şi # pot depinde de timp: n = n (t) şi
# = # (t) ; …ind procese stochastice discrete reprezentând num¼ arul de clienţi
existenţi în sistem (respectiv în …rul de aşteptare) la momentul t. Analog, vom
nota cu = (t) num¼ arul staţiilor neocupate la momentul t.
Cunoaşterea repartiţiei procesului n (t) permite determinarea multor carac-
teristici ale modelelor de aşteptare. Fie pk = pk (t) probabilitatea s¼
a existe k
unit¼aţi (clienţi) în sistem la momentul t. Distribuţia lui n este:
1
X
0 1 2 m
n: ; pk = 1:
p0 p1 p2 pm
k=0
O caracteristic¼
a a procesului n (t) este c¼
a variaţia valorilor sale pe intervale mici
de timp, nu este mare, ea …ind determinat¼ a de intr¼ arile şi ieşirile din sistem.
Valoarea medie a num¼arului de unit¼aţi din sistem este:
m
X
n= kpk :
k=0
Dac¼a not¼
am cu s num¼
arul staţiilor de servire, atunci distribuţia variabilei aleatoare
# este:
0 1
1 2 m s 0
#:@ Ps A:
ps+1 ps+2 pm pk
k=o
m
Xs m
X
#= kps+k = (k s) pk :
k=1 k=s+1
4
Valoarea medie a num¼arului de staţii neocupate este:
s
X
= pk (s k) :
k=0
Exemplu
Durata de servire a unui client este o variabil¼a aleatoare cu distribuţie expo-
nenţial¼a negativ¼a cu media de 12 minute. Care este probabilitatea ca num¼arul
de serviri într-o or¼a s¼a …e egal cu 2?
Rezolvare:
Consider¼am unitatea de timp ora. Durata medie de servire este 1 = 15 ore:
Rezult¼a c¼
a num¼arul mediu de serviri intr-o or¼
a este = 5:Num¼arul de serviri
intr-o or¼
a, atunci când avem …r de aşteptare este poissonian de parametru =
5:Probabilitatea de a avea k serviri în unitatea de timp este:
k
pk =
e ; k = 0; 1; :::
k!
Probabilitatea ca num¼
arul de serviri într-o or¼
a s¼a …e egal cu 2 este
52 5
p2 = e = 0; 08:
2!
5
Presupunem c¼
a intensitatea sosirilor nu dep¼
aşeşte intensitatea serviciilor
pk (t + h) pk (t) o (h)
= ( + ) pk (t) + pk+1 (t) + pk 1 (t) +
h h
şi f¼
acând h ! 0 :
0
pk (t) = ( + ) pk (t) + pk+1 (t) + pk 1 (t) ; k 1:
6
p0 (t + h) = p0 (t) (1 h o1 (h))+p1 (t) ( h + o2 (h)) (1 h o1 (h))+o3 (h) :
Rezult¼a: 0
p0 (t) = p0 (t) + p1 (t) :
Vom rezolva sistemul format din ecuaţiile diferenţiale pentru cazul staţionar
pentru care probabilit¼ aţile pk (t) nu depind de t. Acest lucru se întâmpl¼
a dup¼
a
ce sistemul se stabilizeaz¼ a.
0
Dac¼a pk (t) = pk ; 8 k 0 atunci pk (t) = 0; 8 k 0 şi sistemul devine:
p0 = p1
( + ) pk = p k 1 + pk+1 ; k 1:
Din prima ecuaţie rezult¼ a p1 = p0 = p0 : Luând k = 1 în a doua ecuaţie
a p2 = 2 p0 şi din aproape în aproape:
rezult¼
k
pk = p0 (k 1):
pk = (1 ) k (k 0) :
Cu ajutorul acestor probabilit¼
aţi se pot determina caracteristicile modelului în
cazul staţionar.
Valoarea medie a num¼arului de clienţi a‡aţi în sistem este:
P
1 P
1 P
1
n= kpk = (1 ) k k 1
= (1 ) dd k
=
k=0 k=1 k=1
= (1 ) dd 1 = (1 ) : (1 1 )2 = (1 ) :
Valoarea medie a num¼arului de clienţi a‡aţi în …rul de aşteptare:
1
X 1
X 1
X 2
#= (k 1) pk = kpk pk = (1 p0 ) = :
1 1
k=1 k=0 k=1
Probabilitatea ca num¼
arul clienţilor din sistem s¼
a nu dep¼
aşeasc¼
a un num¼
ar dat
k:
k
X k
X k+1
j 1 k+1
p (n k) = pj = (1 ) = (1 ) =1 :
j=0 j=0
1
Probabilitaea s¼a avem cel puţin un client în sistem se obţine din probabilitatea
ca num¼arul clienţilor din sistem s¼
a …e mai mare decât un num¼ ar dat k:
7
k+1 k+1
p (n > k) = 1 p (n k) = 1 1 = :
Pentru k = 0,
p (n > 0) = :
Densitatea de repartiţie a timpului de aşteptare ts al unui client (din mo-
mentul sosirii în sistem pân¼
a în momentul ieşirii din sistem) este:
( )t
( )e ; t>0
f (t) =
0 ; t 0;
adic¼
a durata de aşteptare a unui client este o variabil¼
a aleatoare exponenţial¼
a
de parametru : Valoarea medie a timpului de aşteptare în sistem este:
1
ts = :
Este veri…cat¼
a relaţia:
ts = n :
Durata de servire …ind exponenţial¼a de parametru ;
a durata medie de servire 1 :
rezult¼
Valoarea medie a timpului de aşteptare în …rul de aşteptare este:
1 1 # n
tf = = = = :
( )
8
Cursul 11
Modele de aşteptare cu sosiri Poisson
şi timp de servire exponenţial
Procese de naştere şi moarte
Modelele matematice de aşteptare se pot studia cu ajutorul proceselor de
naştere şi moarte, f¼ acând analogie cu variaţia volumului populaţiilor biologice
care depinde de natalitate(intr¼ ari) şi mortalitate(ieşiri).
În unele cazuri se poate presupune c¼ a probabilitatea înregistr¼ arii unei noi
sosiri sau a unei ieşiri în intervalul (t; t + h) este h + o (h) şi respectiv h +
o (h) ; adic¼a ea nu depinde de num¼ arul de clienţi existenţi în sistem la momentul
t. În practic¼ a îns¼
a, trebuie ţinut seama de acest lucru. De exemplu s-a constatat
c¼
a pe m¼ asur¼a ce num¼ arul clienţilor din sistem creşte intensitatea sosirilor scade
deoarece unii clienţi renunţ¼ a s¼
a stea la o coad¼ a prea lung¼ a. De asemenea când
num¼ arul elementelor colectivit¼ aţii din care pot proveni clienţii este …nit.
Se presupune c¼ a sosirile satisfac condiţiile a) şi b) din cursul 10 şi proprietatea
0
c ) probabilitatea înregistr¼
arii unei sosiri în intervalul (t; t + h) ştiind c¼
a în
sistem exist¼
a k clienţi la momentul t este
kh + o (h) ; k 0;
adic¼
a intensitatea sosirilor depinde de num¼
arul de clienţi existenţi deja în sistem.
kh + o (h) ; k 1:
F¼
acând acelaşi raţionament ca la modelul anterior obţinem sistemul de ecuaţii
diferenţiale ale unui proces de naştere şi moarte:
0
p0 (t) = 0 p0
(t) + 1 p1 (t)
0
pk (t) = ( k + k ) pk (t) + k 1 pk 1 (t) + k+1 pk+1 (t) ; k 1;
0 p0 = 1 p1
( k + k ) pk = k 1 pk 1 + k+1 pk+1 ; k 1:
Rezult¼
a:
0 0 1 0 1 ::: k 1
p1 = :p0 ; p2 = p0 ; :::; pk = p0 :
1 1 2 1 2 :::: k
1
P
1
Din condiţia pk = 1; se obţine p0 .
k=0
P
1
0 1 ::: k 1
Dac¼
a S1 = < 1; atunci
1 2 :::: k
k=1
1
p0 = :
1 + S1
Observaţie
Pentru k = ; k 0 şi k = ,k 1 se obţine modelul de aşteptare cu o
staţie, sosiri Poisson, timp de servire exponenţial .
Model de aşteptare cu populaţia din care provin clienţii - …nit¼
a
Clienţii provin dintr-o populaţie …nit¼ a cu m elemente. Exist¼ a S staţii de
servire paralele. Dac¼ a toate staţiile de servire sunt ocupate, clientul trebuie s¼a
aştepte pân¼ a ce una din ele se elibereaz¼a. Clienţii sosesc independent unul faţ¼
a
de altul.
Dac¼a în sistem sunt k unit¼ aţi, atunci în afara sistemului au r¼ amas m
k. Intensitatea sosirilor k sau servirilor k depinde de num¼ arul k de clienţi
existenţi deja în sistem. Modelul este un caz particular al proceselor de naştere
şi moarte în care:
(m k) ; 0 k<m
=
k
0; k > m:
k = ; 1 k m;
Probabilitatea p0 se calculeaz¼
a din egalitatea
P
m
pk = 1:
k=0
Dac¼
a avem S staţii de servire cu 1 < S < m atunci se ia
8
< k ; 1 k<S
k = S ; S k m
:
0; k > m:
În acest caz probabilit¼
aţile pk ; (0 k m) ; ca în sistem s¼
a existe k unit¼
aţi
se determin¼a cu formulele
2
k k
Cm p0 pentru 1 k < S
pk = k! k k
S!S kS :Cm p0 pentru S k m
p0= 1 :
SP 1 m
k + S S P Ak k
k=0
ck
m S!
k=1
m (S)
m
X
#= (k S) pk
k=S+1
P
m
n= kpk :
k=0
De asemenea, num¼arul mediu de staţii ocupate:
S
X1 m
X
s0 = kpk + S pk
k=1 k=S
şi timpul mediu cumulat de lenevire al staţiilor care este egal cu durata medie
cât un client st¼
a în afara sistemului, înmulţit¼
a cu num¼arul mediu de staţii care
lenevesc:
1
te = (S so ) :
k = ;k 1
şi
3
; k = 0; 1; :::; N 1
k =
0; k N:
Rezult¼
a
k
p0 ; 0 k N
pk =
0; k > N;
unde = şi
P
N P
N N +1
p k = 1 = p0 k
= p0 1 1 )
k=0 k=0
1
p0 = N +1
:
1
k = ; k = 0; 1; 2:::
k ; 1 k S
k =
S ; k > S:
4
Atunci, pentru k S; avem
k
0 1 ::: k 1
pk = p0 = k :p0
1 2 :::: k k!
P
1
Probabilitatea p0 se determin¼
a din condiţia pk = 1: De asemenea vom
k=0
presupune
S < 1:
Rezult¼
a:
1
p0 = SP1
;
k S
k! + S!(1
k=0 S )
unde
= :
Valoarea medie a num¼arului de clienţi din …r este:
P
1
SS
P
1 k
S S+1
P
1 k
#= (k S) pk = p0 S! k Sk S! Sk
:
k=S k=S k=S
SS
P
1
k 1 S S+1 ( )
S
# = p0 S! k( ) S! : 1
k=S
P
1
k 1 d
P
1
k d ( )S S( )S 1
S( )S +( )S
k( ) = d ( ) = d : 1 = (1 )2
k=S k=S
S
SS ( )
S+1 S+1
1 :( )
#= S! (1 :p
)2 0
= (S 1)! : (S )2
:p0 = (S 1)!(S )2
:p0 :
M¼
arimea reprezint¼
a aici intensitatea de tra…c a sistemului .
Deci
S
:
n= 2 :p0 + :
(S 1)! (S )
5
Durata medie de timp pe care un client îl petrece în sistem este tf la care se
adaug¼
a durata medie a unui serviciu adic¼
a:
1
ts = tf + :
1
X S
p (n S) = pk = :p0 :
k=S
S! 1 S
6
Cursul 12
Simularea …relor de aşteptare
Modelele unor sisteme de aşteptare sunt studiate analitic, adic¼ a se pot de-
duce formule matematice ale caracteristicilor sistemului. Pentru alte modele de
aşteptare mai complicate nu exist¼ a soluţii analitice. De exemplu, când sistemul
de aşteptare are un num¼ ar mare de staţii de servire, cu o topologie complex¼ a,
când repartiţiile timpilor de sosire şi/sau de servire sunt de un tip complicat
(gamma, Weibull, 2 ; amestec¼ ari de repartiţii) sau când exist¼ a priorit¼
aţi.
Pentru astfel de situaţii se recomand¼ a simularea digital¼a. În informatic¼ a,
termenul a fost introdus de John von Neumann. Când în evoluţia unor sisteme
intervin şi elemente aleatoare, studiul comport¼ arii lor în timp se poate face cu
ajutorul calculatoarelor. Pentru aceasta, sistemului real i se asociaz¼ a un model
de simulare care este folosit apoi pentru a produce, prin intermediul calculatoru-
lui, succesiunea cronologic¼a de st¼
ari prin care va trece sistemul, considerându-se
dat¼a starea sa iniţial¼
a.
Simularea digital¼ a se poate folosi cu succes la proiectarea sistemelor de
aşteptare, f¼acând experienţe pe model cu diferiţi parametri de intrare. La con-
struirea unui model de simulare, partea cea mai di…cil¼ a este procedeul de ”a
mişca”sistemul în timp astfel încât s¼ a nu se ajung¼a la situaţia în care diferitele
elemente ale sistemului s¼ a parcurg¼ a intervale diferite de timp. De aceea este
necesar¼ a introducerea în modelul de simulare a unei variabile numit¼ a ceasul
simul¼arii care s¼a m¼asoare scurgerea timpului real în care se simuleaz¼ a sistemul,
cu scopul de a menţine ordinea corect¼ a în timp a evenimentelor. Aceast¼ a vari-
abil¼a ia la început valoarea zero, apoi este crescut¼ a la …ecare pas al procesului
de simulare. Validarea algoritmului de simulare se face comparând rezultatele
simul¼ arii cu cele analitice, obţinute în anumite cazuri particulare.
În mediul Matlab, în Statistics Toolbox exist¼a generatori pentru 20 de tipuri
de variabile aleatoare: exponenţiale negative (exprnd), Poisson (poissrnd) ,de
tip gamma (gamrnd) şi beta (betarnd), normale (normrnd), binomial¼a (binornd)
, 2 (chi2rnd), etc.
Toţi aceşti generatori folosesc generatorul de numere pseudoaleatoare (de dis-
tribuţie uniform¼a ) random. Codul acestor rutine (funcţii) Matlab se poate tip¼
ari
cu comanda
type_ function_ name ,
se poate redenumi şi modi…ca pentru o aplicaţie proprie.
Leg¼atura dintre distribuţia uniform¼ a şi alte distribuţii continui este dat¼
a de
teorema lui Hincin:
Dac¼a F este funcţia de repartiţie a unei variabile aleatoare continue X atunci
F ( X) este uniform¼a pe [0,1], adic¼a F ( X)=U sau F 1 ( U)=X .
Consecinţ¼a
Dac¼a obţinem valorile de selecţie U 1 , U 2 ; :::;U n ale lui U , atunci putem
obţine valorile de selecţie X 1; X 2 ; :::;X n ale lui X cu formula
1
X i =F 1 ( U i ), i=1,...,n
(metoda invers¼a pentru generarea unei variabile aleatoare continue).
Se poate astfel simula orice variabil¼a aleatoare X dac¼ a se cunoaşte funcţia
sa de repartiţie F şi se poate calcula uşor şi f¼
ar¼ a F 1 :De
a erori funcţia invers¼
exemplu pentru o variabil¼ a aleatoare exponenţial¼ a de parametru se poate
folosi formula:
1
X=- ln U :
Metoda invers¼
a pentru simularea unei variabile aleatoare discrete
Fie X o variabil¼
a aleatoare discret¼
a:
m
X
a1 a2 a3 am
X : ; pk = 1:
p1 p2 p3 pm
k=1
U :=random
i :=1; while U > C(i) do i :=i+1;
X := ai
Simularea unui sistem de aşteptare cu o staţie
Vom folosi urm¼ atoarele notaţii:
- intervalul de timp (aleator) dintre dou¼
a sosiri consecutive;
- durata (aleatoare) a unui serviciu;
tf - timpul de aşteptare al unui client oarecare în …rul de aşteptare;
tl - timpul de neocupare (lenevire) a staţiei de servire de la terminarea unui
serviciu la începerea altui serviciu;
ttf - timpul total de aşteptare al tuturor clienţilor;
ttl - timpul total de neocupare (lenevire) al staţiei de serviciu;
N - num¼ arul total de servicii simulate;
2
I - contor care num¼
ar¼
a serviciile.
Repartiţiile variabilelor aleatoare şi se presupun cunoscute iar para-
metrii lor sunt date de intrare, împreun¼a cu num¼ arul total de servicii simulate
N . Celelalte sunt variabile aleatoare de ieşire şi cu ajutorul lor se pot calcula
urm¼atoarele valori medii:
-durata medie de aşteptare a unui client:
ttf
tf = ;
N
-durata medie de lenevire a staţiei:
ttl
tl = :
N
Presupunem c¼ a pentru variabilele aleatoare şi dispunem de subrutine de
generare care pot … apelate de programul de simulare.
În …g. 1, în primul bloc se fac iniţializ¼ arile şi se citesc valorile parametrilor
repartiţiilor variabilelor aleatoare şi : Blocul (2) simuleaz¼ a venirea unui client.
Blocul (3) calculeaz¼ a timpul de venire ajustat. Apoi în blocul (4) se genereaz¼ a
un serviciu (m¼ arindu-se contorul I cu o unitate). Aceast¼ a durat¼a de serviciu se
compar¼ a cu timpul de sosire ajustat, în blocul (5). Dac¼ a > atunci staţia de
serviciu este ocupat¼ a, astfel încât în blocul (6), se ia timpul de lenevire al staţiei
nul, se calculeaz¼ a timpul de aşteptare al clientului care urmeaz¼ a s¼
a …e servit
primul şi se adun¼ a acest timp, la timpul total de aşteptare. Dac¼ a dimpotriv¼ a
; staţia este neocupat¼ a şi atunci în blocul (7) se ia timpul de aşteptare al
clientului ce va … servit primul, egal cu zero, se determin¼ a timpul de lenevire al
staţiei şi se adun¼ a acest timp la timpul total de lenevire. În blocul (8) se decide
dac¼ a simularea se termin¼ a sau nu, iar în blocul (9) se calculeaz¼ a parametrii de
ieşire.
Simularea unui sistem de aşteptare cu priorit¼
aţi
Modelele în care disciplina de servire se stabileşte dup¼ a criterii care nu iau
în considerare ordinea intr¼ arii clienţilor în sistem, se numesc modele cu pri-
oritate.Clienţii sunt împ¼ arţiţi în clase de priorit¼ aţi. În cadrul aceleiaşi clase
clienţii sunt serviţi în ordinea FIFO ("primul sosit-primul servit"). Clienţii pot
sosi în sistem dup¼ a aceeaşi repartiţie sau dup¼ a repartiţii ale timpului între sosiri
diferite.
Presupunem c¼ a avem dou¼ a clase: prioritatea 1 este mai puternic¼ a decât
prioritatea 2. Se cunosc probabilit¼ aţile p1 şi p2 cu care sosesc cele dou¼ a tipuri
de clienţi. Presupunem c¼ a timpul de intersosire i al clienţilor de prioritate i are
repartiţia Fi (x); i = 1; 2:Atunci timpul de intersosire al clienţilor (amestecaţi)
este o compunere discret¼ a a celor dou¼ a variabile 1 şi 2 adic¼ a funcţia sa de
repartiţie este de forma:
F (x) = p1 F1 (x)+p2 F2 (x); unde p1 + p2 = 1:
3
Amestecarea discret¼
a poate … interpretat¼
a astfel:
= i cu probabilitatea pi ; i = 1; 2:
Simularea timpului de intersosire se face astfel:
Generaz¼a un indice i cu repartiţia discret¼a:
1 2
I: ; p1 + p2 = 1:
p1 p2
Genereaz¼a i având funcţia de repartiţie Fi (x);
:= i .
Presupunem c¼ a dispunem de metode de generare a variabilelor i .
Schema logic¼ a din …gura 1 se modi…c¼ a astfel: la generarea lui în blocul 2
clientul se aşeaz¼
a în coada Q1 sau Q2 corespunz¼ atoare priorit¼
aţii. În blocul 4
se simuleaz¼ a timpul de servire conform priorit¼aţii celei mai mari dac¼ a Q1 este
nevid¼a sau priorit¼ aţii mai mici dac¼
a Q1 este vid¼ a. Se pot calcula timpii de
aşteptare în funcţie de priorit¼
aţi.
4
5
Figure 1:
ms = 0; mp(j) = 0;
sds(j) = ttf (j) = ttl(j) = 0; 1 j S:
6
Start
(1)
Citşte parametrii de intrare:
ms=0, mp(j)=0, 1 ≤ j ≤ S
sds(j)=ttf(j)=ttl(j)=0
(2)
I=S
(3)
Do j=1, S
(4)
Generează τ(j)
mp(j) = τ(j)
sds(j) = sds(j)+τ(j)
A
(5)
mpmin=min{mp(j)}
1≤ j ≤ S
mpmin=mp(l)
(6)
I=I+1
(7)
Calculează
I>N Da şi listează
rezultatele
Nu (8)
Generează θ
ms=ms+ θ Stop
dif=ms-mpmin
(9)
<0 >0
dif
(10) (11)
tf=-dif tl=dif
ttf(l)=ttf(l)+tf ttl(l)=ttl(l)+tl
Generează τ(l)
sds(l) = sds(l)+τ(l)
7
mp(l)=mpmin+ τ(l)
Figura 1