Documente Academic
Documente Profesional
Documente Cultură
Programare liniara
Programare liniara
Programare liniara
Programare liniara
m = numar de restrictii,
n = numar de necunoscute.
Ipoteza: rangA = m < n:
Programare liniara
Programare liniara
min f (x) =
n
X
n
X
cj xj
j=1
aij xj
bi ; i = 1; m
j=1
xj
0; j = 1; n
Programare liniara
Forma standard
8
>
>
>
>
>
>
<
>
>
>
>
>
>
:
opt f (x) =
n
X
n
X
cj xj
j=1
aij xj = bi ; i = 1; m
j=1
xj
0; j = 1; n
Programare liniara
2 =) 2x1 3x2 + x3 + u = 2 , u
3 =) 5x1 + x2 7x3 u = 3 , u
0
0:
3x2 + x3 = 4 ()
2x1
2x1
3x2 + x3
3x2 + x3
4
4
Programare liniara
0; se face substitutia xi =
xi cu xi
0
00
0
0
00
xi cu xj ; xi
o inecuatie cu
se inmulteste cu ( 1) si devine
forma canonica).
0:
(pentru
max ( f (x)) :
Programare liniara
A = (aij )1
i m
1 j n
cu rangA = m < n:
1
b1
.. C 2 Rm ;
. A
bm
Programare liniara
Programare liniara
Programare liniara
DEFINITIE
Daca solutia de baza X0 are exact m componente diferite de 0
atunci s.n. solutie nedegenerata.
Daca are mai putin de m componente diferite de 0 s.n.
degenerata.
Programare liniara
f (X2 ) ;
f (X2 ) :
Programare liniara
Programare liniara
0;
Ax2 = b, x2
0:
) x2 2 <:
Programare liniara
Fie
0 =)
Ax1 = b;
x1 0
(1
(1
) Ax2 = (1
) x2 0
) b;
Programare liniara
) x2 ] = b;
) x2
) x2 2 <:
) x2 ] =
Programare liniara
Programare liniara
OBSERVATIE
Cum un sistem cu m linii si n coloane are cel mult Cnm solutii de baza
=) < va avea cel mult Cnm varfuri.
Programare liniara
Ax = b;
x 0:
Programare liniara
Fie xi1 ; :::; xik componentele nenule ale solutiei de baza x; unde
k m:
Fie ai1 ; :::; aik coloanele ce corespund componentelor nenule;
fai1 ; :::; aik g sunt vectori liniari independenti.
Programare liniara
a.i. x = y + (1
) z:
Programare liniara
Dar
> 0; yj
(1
) > 0; zj
0 =) yj
0 =) (1
) zj
) zj
Programare liniara
Ay = b;
=) A (y
Az = b
(y
() (yi1
z) = 0:
z)T A = 0 ()
zik ) aik = 0:
6= 0;
zij = 0; 8j = 1; k:
Programare liniara
Concluzie:
yj
yij
zj = 0; 8j indice nebazic
=) y = z
Programare liniara
Programare liniara
EXEMPLU
8
max f (x) = 2x1 + 5x2
>
>
<
x1 + 2x2 2
3x1 + x2 3
>
>
:
x1 ; x2 0
Programare liniara
x1 = 0
si
x2 = 1
max f (x) = f (x ) = 5:
x2<
Programare liniara
Fie
(PPL)
opt f (x) = cT x
;
x2<
0g :
Programare liniara
Cazuri posibile:
1
Programare liniara
1 x1
+ ::: +
l xl
; unde
1 ; :::;
0;
l
X
i=1
cu
f xgen = opt f (x) :
x2<
= 1;
Programare liniara
F1
F2
Elemente
A
3
2
nutritionale
B
7
2
(unitati=kg)
C
3
6
Cost(RON=kg)
10
4
Programare liniara
Programare liniara
Notatii:
x = nr. de kg din F1 ce urmeaza a
y = nr. de kg din F2 ce urmeaza a
cumparate
cumparate
60
pentru B, 7x + 2y
84
pentru C, 3x + 6y
72:
Programare liniara
Programare liniara
Programare liniara
Programare liniara
Etapele rezolvarii gra ce a problemelor de programare liniara
1) Se reprezinta gra c ecare restrictie in parte.
1a) Pentru restrictiile de tip egalitate ax + by = c: se traseaza dreapta
corespunzatoare in sistemul de axe xOy.
1b) Pentru restrictiile de tip inegalitate ax + by
c sau ax + by
c:
Programare liniara
Programare liniara
gradf = @
@f
@x
@f
@y
A=
2 R, in
Programare liniara
Programare liniara
Gradientul gradf indica directia de crestere a functiei obiectiv
f (x; y) = x + y: Pentru rezolvarea modelului, ne intereseaza
directia in care trebuie deplasata dreapta
x+ y=
a.i. sa e obtinuta o cat mai buna valoare pentru functia obiectiv, i.e.
o cat mai mare valoare pentru problemele de maxim (deplasarea
se face pe directia gradientului)
respectiv,
o cat mai mica valoare pentru problemele de minim (deplasarea
se face pe directia opusa directiei gradientului).
Programare liniara
Programare liniara
Se obisnuieste ca dreapta de ecuatie x + y =
sa e numita