Documente Academic
Documente Profesional
Documente Cultură
Curs 4
Curs 4
Capitolul 3
Programare neliniar
Conf. dr. ing. mat. Ovidiu Bljin
MS - Cursul 4
h( x ) = 0
x X
MS - Cursul 4
(1)
MS - Cursul 4
MS - Cursul 4
[ x1, x 2 ] = x R n x = x1 + (1 ) x 2 , [0, 1]
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 )
f f
f
f = ,
,...,
xn
x1 x2
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
10
11
f = i fi , 1 ,..., k 0
i =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
12
13
MS - Cursul 4
2 0 y1
2
2
=
+
y2 ]
2
4
y
y
1
2 >0
0 4 y2
Cap.3. Programare neliniar
14
MS - Cursul 4
15
h( x ) = 0
x X
(3)
MS - Cursul 4
16
unde x X, u R m+ , v R .k
MS - Cursul 4
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
18
(4)
g ( x) 0
x X
MS - Cursul 4
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
20
astfel nct
(u* )T g ( x* ) = 0
*
*
(5)
L
x
u
(
,
)=0
x
*
g
x
(
)0
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
21
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
g ( x) 0
x, y > 0
MS - Cursul 4
23
2
x
x
L 240 y 120 x
=0
y =
x
x 1000 0
u ( x 1000) = 0
1
y0 = x0 = 500.
2
MS - Cursul 4
24
N
5
MS - Cursul 4
25
3. Programare ptratic
MS - Cursul 4
26
T
max [min] f ( x) = c x + 2 x Q x
Ax [=, ] b
x0
(6)
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
28
29
MS - Cursul 4
30
MS - Cursul 4
31
MS - Cursul 4
32
e , dac (e ) Q x + c 0
j
f =
0
j
j T
e , dac (e ) Q x + c < 0
(
(
MS - Cursul 4
)
)
33
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
35
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
36
6 1 = 23 > 0
1 4
1
1
1
4
(e ) Q x + c = [1 0]
= 4 < 0 f = e = 0
3
1 T
MS - Cursul 4
37
0
4
2
2
(e ) Q x + c = [0 1]
= 3 < 0 f = e =
3
1
2 T
1 0
Deci F =
T
Qx
A
u v Fz = c
+
x, y , u , v, z 0
MS - Cursul 4
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
39
MS - Cursul 4
40
MS - Cursul 4
41
MS - Cursul 4
42
Ax b
x0
(7)
43
44
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
46
xP
Pasul 4. Se calculeaz = ( ~x k x k )T f ( x k ) .
k
MS - Cursul 4
47
k
k
Se determin x k +1 = x k + k ( ~
x x ).
k k +1 i se revine la pasul 2.
MS - Cursul 4
48
x1 + 2 x2 5
4 x1 + x2 8
x,x 0
1 2
H( f ) =
0 6 x2
2
0 = 12 x 0
2
0 6 x2
Cap.3. Programare neliniar
49
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
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
51
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
x = x + 0 ( x x ) = + =
0 2 0 0
k = 0 +1 = 1
MS - Cursul 4
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
53
1
T
x
=
(1,
0)
iale.
Valoarea optim corespunztoare a funciei
obiectiv a problemei iniiale este f(x1) = -1.
MS - Cursul 4
54
5. Programare convex
MS - Cursul 4
55
g ( x) 0
(9)
P = x R n g ( x) 0
MS - Cursul 4
56
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
57
x
i numai dac
este soluie optim a problemei
f ( x )
(10).
gi ( x) 0, i = 1,..., m
unde: c Rn, gi : Rn R sunt funcii convexe,
difereniabile.
MS - Cursul 4
58
MS - Cursul 4
59
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
60
Pk +1 = Pk {x R n g l ( x k ) + ( x x k ) T g l ( x k ) 0}
MS - Cursul 4
61
62
2 0 =4>0
0 2
63
Fie k = 1. Fie P1 = { x R 2 0 x1 2, 0 x2 2}
MS - Cursul 4
64
MS - Cursul 4
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
66
problema iniial.
Valoarea optim a funciei obiectiv este f(x2) = 2.
MS - Cursul 4
67