Sunteți pe pagina 1din 67

Matematici speciale

Capitolul 3

Programare neliniar
Conf. dr. ing. mat. Ovidiu Bljin

1. Mulimi i funcii convexe


2. Condiii necesare i/sau suficiente
de optimalitate
3. Programare ptratic
4. Programare convex cu restricii
liniare
5. Programare convex

MS - Cursul 4

Cap.3. Programare neliniar

O problem de programare matematic n


forma general const n a optimiza (minimizare sau
maximizare) o funcie real, de n variabile reale,
supus, sau nu, unui numr finit de restricii.
Fie X Rn i f: X R, g: X Rm, h: X Rk.
Modelul matematic al unei probleme de
optimizare cu restricii are forma:
min [max] f ( x)
g ( x) 0

h( x ) = 0
x X
MS - Cursul 4

Cap.3. Programare neliniar

(1)

unde f se numete funcia obiectiv, iar g i h sunt


restriciile problemei (1).
Definiie. Dac cel puin una din funciile f, gi (i =
1,..., m), hj (j = 1,..., k) este neliniar, atunci
problema (1) este de programare neliniar.

MS - Cursul 4

Cap.3. Programare neliniar

1. Mulimi i funcii convexe

MS - Cursul 4

Cap.3. Programare neliniar

Definiie. Fie vectorii x1, x2 Rn. Mulimea

[ x1, x 2 ] = x R n x = x1 + (1 ) x 2 , [0, 1]

se numete segment, cu extremitile x1 i x2.


Definiie. Mulimea X Rn se numete convex dac
x1, x2 X avem [x1, x2] X.
Observaie. Mulimea vid i spaiul Rn sunt
mulimi convexe.
Proprieti ale mulimilor convexe:
1) O mulime X Rn este convex dac i numai
dac orice combinaie convex
x = 1x1 + 2 x 2 + L + k x k X
MS - Cursul 4

Cap.3. Programare neliniar

n care x1,..., xk X, 1,..., k 0, cu 1 + L + k = 1.


2) Intersecia unei familii arbitrare de mulimi
convexe este o mulime convex.
Definiie. Fie f : X Rn R i x0 X. Funcia f
este convex n punctul x0 dac
(2)
f (x + (1 ) x 0 ) f ( x ) + (1 ) f ( x 0 )
0

x X, (0, 1), pentru care x + (1 ) x X .


Definiie. Funcia f este strict convex n punctul x0
dac inegalitatea din relaia (2) este strict (<).
Definiie. Funcia f este concav (strict concav) n
punctul x0 dac -f este convex (strict convex) n x0.
MS - Cursul 4

Cap.3. Programare neliniar

Observaii:
1) O funcie f este convex (concav) pe mulimea
X dac este convex (concav) n oricare punct al
mulimii X.
2) O funcie f care este simultan convex i
concav se numete afin. Ea satisface condiia:
f (x1 + (1 ) x 2 ) = f ( x1 ) + (1 ) f ( x 2 )

x1, x2 X, (0, 1), cu x + (1 ) x 0 X.


3) Orice funcie liniar este afin.
4) O funcie liniar nu este nici strict convex, nici
strict concav.
MS - Cursul 4

Cap.3. Programare neliniar

Definiie. Se numete gradient al funciei f : Rn R


vectorul derivatelor pariale ale funciei f:

f f
f
f = ,
,...,

xn
x1 x2

Definiie. Se numete matrice hessian asociat


funciei f : Rn R matricea derivatelor pariale de
ordinul doi ale funciei f:
2 f
Hf =
, i, j = 1,..., n
xi x j
MS - Cursul 4

Cap.3. Programare neliniar

Exemplu. Fie x0 = [1, 2, 3] T i funcia f : R3 R,


f(x1, x2, x3) = 2 x13 x2 x3 x2 x32 . S se calculeze f(x0) i
Hf(x0).
Soluie:
6 x12 x2 x3

f = 2 x13 x3 x32
2 x13 x2 2 x2 x3

36
f ( x ) = 3
8
0

12 x1x2 x3 6 x12 x3
6 x12 x2
72 18 12

Hf = 6 x12 x3
0
2 x13 2 x3 Hf ( x 0 ) = 18 0 4
12 4 4
2 x2
6 x12 x2 2 x13 2 x3

MS - Cursul 4

Cap.3. Programare neliniar

10

Proprieti ale funciilor convexe (concave):


1) Orice punct de minim (maxim) local al unei
funcii convexe (concave) f pe o mulime convex i
nchis X este un punct de minim global.
2) Mulimea punctelor de minim (maxim) pe mulimea convex X pentru funcia convex (concav) f
este o mulime convex.
3) Dac funcia f este strict convex (concav) pe
mulimea convex X i are un punct de minim
(maxim), atunci acest punct este unic.
4) Dac funciile f1,..., fk sunt convexe (concave)
pe mulimea convex X, atunci funcia:
MS - Cursul 4

Cap.3. Programare neliniar

11

f = i fi , 1 ,..., k 0
i =1

este convex (concav) pe mulimea X.


5) Pentru mulimea X convex i funcia f continu
i convex (concav) are loc inegalitatea lui Jensen:
1
n
f (1x + L + n x ) [] 1 f ( x1 ) + L + n f ( xn )
1

x ,..., x X , 1,..., n 0 , cu 1 + L + n = 1 .
6) O funcie f de clas C2 pe mulimea deschis X
este convex (strict convex) dac i numai dac
matricea hesssian Hf este pozitiv semidefinit
(definit).
MS - Cursul 4

Cap.3. Programare neliniar

12

Propoziie. O matrice ptratic A M n n este


pozitiv definit (semidefinit) dac satisface una din
urmtoarele dou condiii:
1) Minorii principali ai matricei A sunt pozitivi
(nenegativi).
T
n
2) y R \ {0}, avem y HA y > [ ] 0 .
Exemplu. S se arate c funcia f : R2 R,
2
2
f(x1, x2) = x1 x1 + 2 x2 3x2 + 5 este strict convex.
Soluie: Se calculeaz
2 x1 1 ;
2 0
f =
Hf
=
0 4
4 x2 3
MS - Cursul 4

Cap.3. Programare neliniar

13

Funcia f este strict convex dac matricea


hessian Hf este pozitiv definit. ntr-adevr matricea
Hf este pozitiv definit deoarece:
- minorii principali sunt pozitivi:
1 = 2 = 2 > 0 ; 2 = 2 0 = 8 > 0
0 4
sau
- fie un vector oarecare y = [y1, y2] T [0, 0] T i se
calculeaz
y Hf y = [ y1
T

MS - Cursul 4

2 0 y1
2
2
=
+
y2 ]

2
4
y
y
1
2 >0

0 4 y2
Cap.3. Programare neliniar

14

2. Condiii necesare i/sau suficiente de


optimalitate

MS - Cursul 4

Cap.3. Programare neliniar

15

Fie problema general de minimizare cu


restricii, scris n forma vectorial:
min f ( x)
g ( x) 0

h( x ) = 0
x X

(3)

unde mulimea X Rn, funcia real f : X R, iar


funciile vectoriale g : X Rm, h : X Rk.

MS - Cursul 4

Cap.3. Programare neliniar

16

Mulimea soluiilor posibile (programelor) ale


problemei (3) se noteaz cu:
P = {x X g ( x) 0, h( x) = 0}

A rezolva problema revine la determinarea


punctelor de minim global ale funciei f pe X.
Definiie. O soluie posibil x* P a problemei (3)
este optim dac f(x*) f(x), x P.
Definiie. Se numete lagrangian (funcia lui
Lagrange) asociat problemei (3) funcia
L ( x, u , v ) = f ( x ) + u T g ( x ) + v T h ( x )

unde x X, u R m+ , v R .k
MS - Cursul 4

Cap.3. Programare neliniar

17

(x*,

u*,

v *)

x*

u*

Definiie. Punctul
cu
X,
k
*
R
v
este un punct a al funciei L dac
*

m
R+

L ( x , u , v ) L ( x , u , v ) L ( x, u , v )

pentru x X, u R m+ , v R k .
Teorem. Dac (x*, u*, v*) este un punct a al
funciei L, atunci x* este soluia optim a problemei
de programare neliniar (3).
Observaie: Teorema ofer condiii suficiente de
optimalitate n programarea neliniar.
Deoarece h( x) = 0 h( x) 0, h( x) 0 se va
MS - Cursul 4

Cap.3. Programare neliniar

18

considera problema (3) adus la forma canonic (cu


restricii inegaliti):
min f ( x)

(4)
g ( x) 0
x X

n plus, presupunem c X Rn este mulime


convex, iar f i g sunt funcii convexe, adic
problema (4) este de programare convex.
Mulimea programelor problemei (4)
P = {x X g ( x) 0}
este convex ca intersecie de mulimi convexe.

MS - Cursul 4

Cap.3. Programare neliniar

19

Teorem. (Slater) O condiie necesar pentru existena punctului a n programarea convex este s
existe x P astfel nct g(x) < 0.
Teorem. (Karlin) Condiia necesar i suficient ca
o soluie x* P a problemei (4) s fie optim este s
existe u* 0 astfel nct (x*, u*) s fie punct a al
T
funciei lui Lagrange L ( x, u ) = f ( x ) + u g ( x ) .
Teorem. (Kuhn-Tucker). Dac funciile convexe f
i g sunt i difereniabile n punctul x* X Rn,
atunci condiia necesar i suficient ca x* s fie
soluie optim a problemei (4) este s existe u* R m+
MS - Cursul 4

Cap.3. Programare neliniar

20

astfel nct

(u* )T g ( x* ) = 0

*
*
(5)

L
x
u
(
,
)=0
x

*
g
x
(
)0

Obs.: Relaiile (5) se numesc condiiile Kuhn-Tucker.

Exemplu. Se consider gestiunea unui stoc cu perioad fix i cerere constant, cu ruptur de stoc, relativ
la un produs, n condiiile ce urmeaz. Pe durata t0 =
360 zile este disponibil o cantitate N = 20000 buc. Se
va lansa o aceeai comand x, la perioade de timp
egale T. Costul de lansare a unei comenzi este cl = 100
MS - Cursul 4

Cap.3. Programare neliniar

21

u.m., iar costul de stocare a unei uniti de produs pe


unitatea de timp este cs = 1/3 u.m./buc. zi. Se admite
lipsa de stoc, costul de penalizare pentru lipsa unei
uniti de produs pe unitatea de timp fiind cp = 1/3
u.m./buc.zi. Fiecare comand lansat nu poate
depi 1000 buc.
S se determine nivelul optim al stocului y, al
comenzii x i al perioadei T astfel nct cheltuielile
totale s fie minime.
Soluie: Cheltuielile totale efectuate pentru o comand sunt date de suma dintre costul de lansare a comenzii, costul mediu al stocrii celor y buc. de produs
i costul mediu datorat lipsei produselor din stoc:
MS - Cursul 4

Cap.3. Programare neliniar

22

)
c
t
x
y
1 p 0

N cl 1 cs t0 y
+
+
f ( x, y ) =
2
2
x
x

2000000 60 y 2 60( x y ) 2
f ( x, y ) =
+
+
x
x
x

Restricia privind mrimea comenzii x este:


g ( x) = x 1000 0

Modelul problemei este de forma:


min f ( x, y )

g ( x) 0
x, y > 0

MS - Cursul 4

Cap.3. Programare neliniar

23

Lagrangianul este L = f(x, y) + ug(x), u 0.


Sistemul condiiilor Kuhn-Tucker se scrie:
L 60 x 2 120 y 2 2000000
=
+u =0

2
x
x
L 240 y 120 x
=0
y =
x

x 1000 0

u ( x 1000) = 0

Din ultima restricie rezult x0 = 1000 sau u0 = 0.


Dac x0 = 1000, atunci din a doua restricie rezult

1
y0 = x0 = 500.
2
MS - Cursul 4

Cap.3. Programare neliniar

24

Din prima restricie rezult u0 = -28 < 0, fals. Deci


u0 = 0.
Din primele dou restricii (pentru x > 0) rezult:
100
200
15 buc.
x0 =
15 buc.; y0 =
3
3
Deci ((x0, y0)T, u0) este punct a.
Aadar (x0, y0)T este program optim al problemei
considerate.
Perioada optim de lansare a comenzilor este:
x0 t0 6
T0 =
=
15 zile

N
5
MS - Cursul 4

Cap.3. Programare neliniar

25

3. Programare ptratic

MS - Cursul 4

Cap.3. Programare neliniar

26

O problem de programare ptratic const n


optimizarea (maximizarea sau minimizarea) unei
funcii obiectiv ptratice cu restricii liniare:
1 T

T
max [min] f ( x) = c x + 2 x Q x

Ax [=, ] b
x0

(6)

unde: A M m n; b Rm; c Rn; Q este o matrice


simetric; f este o funcie convex dac este minimizat sau concav dac este maximizat.
MS - Cursul 4

Cap.3. Programare neliniar

27

Observaii:
T
x
1) Funcia Qx se numete form ptratic.
2) Condiia ca matricea Q s fie simetric nu re1 T
T
strnge generalitatea deoarece x Qx = x ( Q + Q T ) x ,
2
x Rn.
3) Forma ptratic x T Qx este convex (strict convex) dac i numai dac matricea Q este semipozitiv
(pozitiv) definit.
4) Matricea Q semipozitiv definit este pozitiv definit dac i numai dac este nesingular.
5) Dac forma ptratic x T Qx este pozitiv definit,
atunci problema (6) de minimizare are o soluie
optim unic. Dac forma ptratic este semipozitiv
MS - Cursul 4

Cap.3. Programare neliniar

28

definit, atunci problema (6) de minimizare poate


avea mai multe soluii optime.
Pentru rezolvarea problemei (6) se poate aplica
metoda elaborat de P. Wolfe, care utilizeaz, n
esen, o versiune uor modificat a algoritmului
simplex. Cele dou variante ale metodei - forma
scurt i forma lung - se bazeaz pe condiiile
de optimalitate Kuhn-Tucker, care permit scrierea
restriciilor unei probleme auxiliare de programare
liniar, pornind de la restriciile problemei iniiale de
programare ptratic (cf. tab. urmtor).
Vom studia doar varianta forma scurt a
metodei lui Wolfe.
MS - Cursul 4

Cap.3. Programare neliniar

29

MS - Cursul 4

Cap.3. Programare neliniar

30

MS - Cursul 4

Cap.3. Programare neliniar

31

n care F este o matrice ptratic n n, a crei form


este precizat n enunul algoritmului.
Algoritmul lui Wolfe se bazeaz pe algoritmul
simplex, dar cu o anumit modificare la criteriul de
intrare n baz.

MS - Cursul 4

Cap.3. Programare neliniar

32

 Algoritmul lui Wolfe forma scurt:


Pasul 1. Se testeaz dac mulimea programelor
(soluiilor admisibile) ale problemei iniiale
P = {x R n Ax [=, ] b, x 0}
este nevid.
Dac P = , atunci STOP; altfel, fie o soluie
0
de baz x .
Pasul 2. Se determin matricea ptratic F de dimensiune n n, F = ( f 1 , f 2 ,..., f n ) , a crei coloan oarecare este:
0
j
j T

e , dac (e ) Q x + c 0
j
f =
0
j
j T
e , dac (e ) Q x + c < 0

(
(

MS - Cursul 4

Cap.3. Programare neliniar

)
)

33

unde e j = [0 ... 0 1 0 ...0]T , unica component nenul


fiind pe poziia j.
Pasul 3. Se construiete problema de programare
liniar auxiliar cu funcia obiectiv min ( z1 + z2 + ... + zn )
i restriciile (*).
Se rezolv aceast problem cu algoritmul simplex
primal, dar cu urmtoarea modificare: variabilele xj
i vj (j = 1,..., n), respectiv, yi i ui (i = 1,..., m) sunt
complementare (restricia (**)), adic:
- dac xj este variabil bazic, atunci vj nu poate intra
n baz;
- dac vj este variabil bazic, atunci xj nu poate intra
MS - Cursul 4

Cap.3. Programare neliniar

34

n baz;
- dac yi este variabil bazic, atunci ui nu poate intra
n baz;
- dac ui este variabil bazic, atunci yi nu poate intra
n baz.
Valorile x j (j = 1,..., n) din soluia optim a
problemei auxiliare reprezint soluia optim a
problemei iniiale de programare ptratic.

MS - Cursul 4

Cap.3. Programare neliniar

35

Exemplu. S se rezolve problema:


[min] f = 3 x12 + 2 x22 x1 x2 4 x1 3 x2

x1 + 2 x2 5

2 x1 + 3 x2 9
x,x 0
1 2

Soluie. Avem
x1
1
2
5

x = A = 2 3 b = 9


x2
H( f ) = Q = 6 1
1 4

c = 4 Q = 6 1
3
1 4

MS - Cursul 4

Cap.3. Programare neliniar

36

Minorii principali sunt:


6 =6>0

6 1 = 23 > 0
1 4

Deci funcia f este strict convex i, pentru


rezolvarea problemei, se poate aplica algoritmul lui
Wolfe forma scurt.
Mulimea programelor problemei este:
P = {x R 2 x1 + 2 x2 5, 2 x1 + 3x2 9, x1 0, x2 0}
0

Fie x = [0 0]T P , o soluie de baz.


Se construiete matricea F = ( f 1 , f 2 ) , dup determinarea celor dou coloane:

1
1
1
4

(e ) Q x + c = [1 0]
= 4 < 0 f = e = 0

3

1 T

MS - Cursul 4

Cap.3. Programare neliniar

37

0
4

2
2

(e ) Q x + c = [0 1]
= 3 < 0 f = e =
3

1
2 T

1 0
Deci F =

Se construiete problema de programare liniar


auxiliar:
min ( z1 + z2 )
Ax + y = b

T
Qx
A
u v Fz = c
+

x, y , u , v, z 0

MS - Cursul 4

Cap.3. Programare neliniar

38

min ( z1 + z2 )
x + 2x + y
=5
2
1
1
2 x1 + 3 x2
+ y2
=9

+ u1 + 2u2 v1
+ z1
=4
6 x1 x2
x1 + 4 x2
+ 2u1 + 3u2
v2
+ z2 = 3

x1 , x2 , y1 , y2 , u1 , u2 , v1 , v2 , z1 , z2 0

Pentru rezolvarea acestei probleme se aplic


algoritmul simplex, cu respectarea restriciei suplimentare de intrare n baz din algoritmul lui Wolfe.
n partea inferioar a tabelelor simplex sunt
marcate cu asterisc (*) coloanele variabilelor care nu
pot intra n baz la iteraia respectiv.
MS - Cursul 4

Cap.3. Programare neliniar

39

MS - Cursul 4

Cap.3. Programare neliniar

40

Tabelul de mai sus conine soluia optim a


problemei auxiliare.
Soluia optim a problemei iniiale de programare
ptratic este: x1 = 19/23, x2 = 22/23.
Valoarea optim corespunztoare a funciei
obiectiv este fmin = f(x1, x2) = -71/23.

MS - Cursul 4

Cap.3. Programare neliniar

41

4. Programare convex cu restricii


liniare

MS - Cursul 4

Cap.3. Programare neliniar

42

Fie problema de programare neliniar convex


cu restricii liniare:
min f ( x)

Ax b
x0

(7)

unde f este o funcie convex, difereniabil.


Mulimea soluiilor posibile (programelor) ale
problemei (7) se noteaz cu:
P = {x Rn | Ax b, x 0}
MS - Cursul 4

Cap.3. Programare neliniar

43

Teorem (Test de optimalitate). Fie x0 P (P ).


Dac f(x0) = 0, atunci x0 este soluie optim a
problemei (7).
Dem. Deoarece f este funcie convex i difereniabil
f ( x) f ( x 0 ) ( x x 0 )T f ( x 0 ) , x P.
Dar f(x0) = 0 f ( x) f ( x 0 ) 0 , x P x0 este
soluie optim a problemei (7).

Teorem (Test de optimalitate). Fie x0 P (P ),


cu f(x0) 0. Fie ~
x soluia optim a problemei de
programare liniar
(8)
min (xTf (x0) | x P)
Dac ( ~
x x 0 ) T f ( x 0 ) = 0 , atunci x0 este soluia
optim a problemei (7).
MS - Cursul 4

Cap.3. Programare neliniar

44

Dem. Deoarece f este funcie convex i difereniabil f ( x) f ( x 0 ) ( x x 0 )T f ( x 0 ) =


T
0
0 T
0
= x f ( x ) ( x ) f ( x ) =
T
0
T
0
~
= x f ( x ) ( x ) f ( x ) , x P.
T
0
T
0
~
Dar cf. problemei (8): x f ( x ) x f ( x )

Deci, f ( x ) f ( x 0 ) 0 , x P x0 este soluie


optim a problemei (7).

Teorem (Regula de mbuntire a soluiei). Fie x0


x soluie optim a
P (P ), cu f(x0) 0. Fie ~
x x 0 ) T f ( x 0 ) < 0 , atunci
problemei (8). Dac ( ~
(~
(0, 1]
exist x P , de forma x = x 0 +
x x0 ) ,
astfel nct f ( x) < f ( x 0 ) .
MS - Cursul 4

Cap.3. Programare neliniar

45

Observaii:
(~
1) Relaia x = x 0 +
x x 0 ) interpretat vectorial
justific denumirea metodei direciilor admisibile.
2) Teorema precedent permite deplasarea din
punctul x0 care nu este optim pentru problema (7)
ctre un alt punct mai bun dect x0.
3) Teoremele anterioare fundamenteaz din punct
de vedere teoretic metoda direciilor admisibile,
elaborat de M.Frank i P. Wolfe.

MS - Cursul 4

Cap.3. Programare neliniar

46

 Algoritmul metodei direciilor admisibile:


Pasul 1. Se testeaz dac mulimea P este nevid.
Dac P = , atunci STOP; altfel, fie k = 0 i xk P.
Pasul 2. Se calculeaz f ( x k ) .
Dac f ( x k ) = 0, atunci xk este soluie optim,
STOP; altfel se trece la pasul 3.
Pasul 3. Se determin ~
x k soluia optim a problemei
de programare liniar auxiliar:
min ( x T f ( x k ))

xP
Pasul 4. Se calculeaz = ( ~x k x k )T f ( x k ) .
k

MS - Cursul 4

Cap.3. Programare neliniar

47

Dac k = 0, atunci xk este soluie optim, STOP;


altfel se trece la pasul 5.
Pasul 5. Fie k (0, 1] , k = min { k , 1} , unde k este
soluie a ecuaiei algebrice:
(~
x k x k )) = 0
x k x k )T f ( x k + k ( ~

k
k
Se determin x k +1 = x k + k ( ~
x x ).
k k +1 i se revine la pasul 2.

MS - Cursul 4

Cap.3. Programare neliniar

48

Exemplu. S se rezolve problema de programare


neliniar:
min f = x12 + x23 2 x1 + 3 x2

x1 + 2 x2 5

4 x1 + x2 8
x,x 0
1 2

Soluie. Matricea hessian ataat funciei obiectiv f


2
0

H( f ) =
0 6 x2

are minorii principali:


2 =2>0
MS - Cursul 4

2
0 = 12 x 0
2
0 6 x2
Cap.3. Programare neliniar

49

deci funcia obiectiv f este convex.


Mulimea programelor problemei este:

P = {x R 2 x1 + 2 x2 5, 4 x1 + x2 8, x1 , x2 0}
Pentru rezolvarea problemei se poate aplica metoda
direciilor admisibile.
Iteraia 1.
Fie k = 0. O soluie admisibil a problemei este
.x 0 = (0, 0) T P .
Deoarece f ( x 0 ) = ( 2, 3) T (0, 0) , x0 nu verific
criteriul de optimalitate.
Se construiete problema de PL auxiliar:
MS - Cursul 4

Cap.3. Programare neliniar

50

min ( x , x ) 2
min x f ( x )

1 2 3

xP
x P
min (2 x1 + 3x2 )
x + 2x 5
1
2
(*)

4 x1 + x2 8
x1 , x2 0
T

Se rezolv problema (*) cu algoritmul simplex sau


0
metoda grafic i se obine soluia optim ~
x = (2, 0)T
2
0
0 T
0
~
0 = ( x x ) f ( x ) = (2, 0) = 4 0
3
MS - Cursul 4

Cap.3. Programare neliniar

51

x0 nu este soluie optim a problemei iniiale.


0
0 T
0
0
0
~

Se rezolv ecuaia: ( ~
x x ) f ( x + 0 ( x x )) = 0
2 0

0
2

=0
(2, 0) f + 0 = 0 (2, 0) f
0
0
0

4 0 2
= 0 0 = 1/2.
(2, 0)

0 = min { 0 , 1} = 1/2

O nou soluie admisibil a problemei iniiale este:


1 2 1
0
1
0
0
0
~

x = x + 0 ( x x ) = + =
0 2 0 0
k = 0 +1 = 1
MS - Cursul 4

Cap.3. Programare neliniar

52

Iteraia a 2-a.
f ( x1 ) = (0, 3) T (0, 0) x1 nu verific criteriul

de optimalitate.
Se construiete problema de programare liniar
auxiliar:
min (3 x2 )
T
1
min x f ( x )
x + 2x 5

1
2
x

(**)

4 x1 + x2 8
x1 , x2 0
1
~
Soluia optim a problemei (**) este x = (0, 0)T.

0
1
1 T
1
~
1 = ( x x ) f ( x ) = (1, 0) = 0
3
MS - Cursul 4

Cap.3. Programare neliniar

53

1
T
x
=
(1,
0)

este soluia optim a problemei ini-

iale.
Valoarea optim corespunztoare a funciei
obiectiv a problemei iniiale este f(x1) = -1.

MS - Cursul 4

Cap.3. Programare neliniar

54

5. Programare convex

MS - Cursul 4

Cap.3. Programare neliniar

55

Fie problema de programare neliniar convex:


min f ( x)

g ( x) 0

(9)

unde f : Rn R, g: Rn Rm, f, g funcii convexe,


difereniabile.
Mulimea soluiilor posibile (programelor) ale
problemei (9) se noteaz:

P = x R n g ( x) 0
MS - Cursul 4

Cap.3. Programare neliniar

56

Se consider problema de programare neliniar:


[min] = x0
g ( x) 0

f ( x) x 0
0

x Rn, x R
0

(10)

Funcia obiectiv :
R, x = x0
0
este o funcie liniar, deci convex.
Restriciile problemei (10) sunt funcii convexe
i difereniabile.
Deci, problema (10) este o problem de programare convex.

Rn+1

MS - Cursul 4

Cap.3. Programare neliniar

57

Teorem. x este soluie optim a problemei (9) dac

x
i numai dac
este soluie optim a problemei
f ( x )

(10).

Obs: Teorema arat echivalena problemei iniiale (9)


cu problema (10), care este un program neliniar
convex cu funcia obiectiv liniar. De aceea, n
continuare vom considera problema (10) n forma:
min c T x
(11)

gi ( x) 0, i = 1,..., m
unde: c Rn, gi : Rn R sunt funcii convexe,
difereniabile.
MS - Cursul 4

Cap.3. Programare neliniar

58

Mulimea programelor (soluiilor admisibile)


ale problemei (11) este mulimea P.
Metoda planului de seciune, elaborat de J. E.
Kelley, pentru rezolvarea problemei (9), are la baz
ideea ca la fiecare iteraie k s se rezolve o problem
de programare liniar, cu funcia obiectiv cTx i
restricii liniare care s determine un tronson convex
Pk ce include mulimea P.
Se numete tronson intersecia unui numr finit
de semispaii i eventual hiperplane.

MS - Cursul 4

Cap.3. Programare neliniar

59

 Algoritmul metodei planului de seciune:


Pasul 1. Fie k = 1.
Pasul 2. Se construiete problema de programare
liniar auxiliar:
min c T x
(12)

x Pk , Pk P
Se rezolv problema (12) i fie xk soluia optim.
Pasul 3. Se calculeaz gl ( x k ) = max { gi ( x k ), i = 1,..., m }
k
k
Pasul 4. a) Dac gl ( x ) 0 x P xk este
soluie optim pentru problema (9), STOP.
k
b) Dac gl ( x ) > 0, atunci se construiete tronsonul
MS - Cursul 4

Cap.3. Programare neliniar

60

Pk +1 = Pk {x R n g l ( x k ) + ( x x k ) T g l ( x k ) 0}

Fie k k + 1 i se revine la pasul 2 al algoritmului.


Observaie: Aplicarea algoritmului precedent implic
operaia de nlturare, treptat, a unor tronsoane
mpreun cu valorile optime corespunztoare
fiecruia. Aceste tronsoane definesc planele de
seciune.

MS - Cursul 4

Cap.3. Programare neliniar

61

Exemplu. S se rezolve problema de programare


neliniar:
min ( x1 + 3x2 )
2
2
x1 + x2 4
x1 + x2 2

Soluie. Funcia obiectiv f : R2 R, f(x) = x1 + 3x2


este o funcie liniar, deci difereniabil i convex.
Restriciile problemei sunt determinate de funciile:
2
2
2
g
(
x
)
=
x
+
x
g1 : R R, 1
1
2 4 ( 0)
g2 : R2 R, g 2 ( x) = 2 x1 x2 ( 0)
Matricea hessian a funciei g1 : H( g1 ) = 2 0
0 2
MS - Cursul 4

Cap.3. Programare neliniar

62

are minorii principali:


2 =2>0

2 0 =4>0
0 2

deci funcia g1 este strict convex.


Funcia g2 fiind liniar este convex. g1, g2 sunt
funcii difereniabile.
Prin urmare, pentru rezolvarea problemei se poate
aplica metoda planului de seciune.
Iteraia 1
Mulimea programelor problemei
P = { x R 2 x12 + x22 4, x1 + x2 2}
este reprezentat haurat n figura urmtoare:
MS - Cursul 4

Cap.3. Programare neliniar

63

Fie k = 1. Fie P1 = { x R 2 0 x1 2, 0 x2 2}
MS - Cursul 4

Cap.3. Programare neliniar

64

Fie problema de programare liniar auxiliar:


min ( x1 + 3 x2 )
x P
1

Se rezolv aceast problem cu algoritmul simplex


sau pe cale grafic i se obine soluia optim:
x1 = (0, 0)T.
Se calculeaz:
max {g1(x1) , g2(x1)} = max {-4, 2}= g2(x1) = 2 > 0
Deci x1 nu este soluie optim pentru problema
iniial.
Avem g 2 ( x) = 1

MS - Cursul 4

Cap.3. Programare neliniar

65

1 T

g 2 ( x ) + ( x x ) g 2 ( x ) 0 x1 + x2 2

Atunci P2 = P1 {x R 2 x1 + x2 2}
Iteraia a 2-a
k = 1+1 = 2. Se rezolv problema de programare
liniar auxiliar:

min ( x1 + 3 x2 )
x P
2

i se obine soluia ei optim x2 = (2, 0)T.


Avem max {g1(x2) , g2(x2)} = 0.
Rezult c x2 = (2, 0)T este soluia optim pentru
MS - Cursul 4

Cap.3. Programare neliniar

66

problema iniial.
Valoarea optim a funciei obiectiv este f(x2) = 2.

MS - Cursul 4

Cap.3. Programare neliniar

67

S-ar putea să vă placă și