Sunteți pe pagina 1din 39

Programare liniara

An universitar 2015 - 2016

METODE DE OPTIMIZARE A PROCESELOR


DECIZIONALE
Conf. Dr. Cristinca FULGA
Academia de Studii Economice
Bucuresti, Romania

Programare liniara

Metode de Optimizare a Proceselor Decizionale

Programare liniara

Programare liniara

Forma generala a unei probleme de programare liniara


8
n
X
>
>
>
optim f (x) =
cj xj
>
>
>
>
j=1
>
>
n
>
X
>
>
>
aij xj bi ; i 2 f1; :::; lg
>
>
>
>
j=1
>
>
>
n
>
< X
aij xj = bi ; i 2 fl + 1; :::; pg
(PPL)
>
j=1
>
> X
n
>
>
>
>
aij xj bi ; i 2 fp + 1; :::; mg
>
>
>
>
j=1
>
>
> x
>
0; 8j cu 1 j k;
>
j
>
>
>
x
2
R;
8j cu k + 1 j s;
>
j
>
:
xj 0; 8j cu s + 1 j n:

Programare liniara

Forma generala a unei probleme de programare liniara

Matricea sistemului restrictiilor (numita si matricea tehnologica)


A = (aij )1 i m ;
1 j n

m = numar de restrictii,
n = numar de necunoscute.
Ipoteza: rangA = m < n:

Programare liniara

Forma canonica a unei probleme de programare liniara

Forma canonica a unui model de maxim


8
n
X
>
>
>
max
f
(x)
=
cj xj
>
>
>
<
j=1
n
X
>
aij xj bi ; i = 1; m
>
>
>
>
j=1
>
:
xj 0; j = 1; n

Programare liniara

Forma canonica a unei probleme de programare liniara

Forma canonica a unui model de minim


8
>
>
>
>
>
>
<
>
>
>
>
>
>
:

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 a unei probleme de 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

Forma standard a unei probleme de programare liniara

Transformarea problemei de programare liniara data in forma


generala in una din formele canonica sau standard se face astfel:
introducand variabile de compensare (pentru forma standard)
ex: 1) 2x1 3x2 + x3
2) 5x1 + x2 7x3

2 =) 2x1 3x2 + x3 + u = 2 , u
3 =) 5x1 + x2 7x3 u = 3 , u

0
0:

scriind ecare ecuatie ca 2 inecuatii de sens contrar (pentru una


dintre formele canonice).
ex: 2x1

3x2 + x3 = 4 ()

2x1
2x1

3x2 + x3
3x2 + x3

4
4

Programare liniara

Forma standard a unei probleme de programare liniara

pentru a obtine variabile nenegative


daca xi

0; se face substitutia xi =

xi cu xi
0

daca xi 2 R se face substitutia xi = xi

00

0
0

00

xi cu xj ; xi

o inecuatie cu
se inmulteste cu ( 1) si devine
forma canonica).

0:

(pentru

un model matematic de min se transforma in model de max


astfel:
min f (x) ()

max ( f (x)) :

Programare liniara

Solutiile unei PPL

Fie modelul matematic standard al unei PPL:


8
< opt f (x) = cT x
Ax = b
(PPL)
:
x 0
0
1
0
1
0
c1
x1
B
C
B
C
B
unde c = @ ... A 2 Rn ; x = @ ... A 2 Rn ; b = @
cn
xn

A = (aij )1

i m
1 j n

cu rangA = m < n:

1
b1
.. C 2 Rm ;
. A
bm

Programare liniara

Solutiile unei PPL

DEFINITIE X0 2 Rn s.n. solutie realizabila (solutie posibila sau


admisibila) a (PPL) daca veri ca sistemul restrictiilor
Ax = b
x 0:

Programare liniara

Solutiile unei PPL

DEFINITIE X0 2 Rn s.n. solutie de baza daca


veri ca Ax = b;

are cel mult m componente diferite de 0


si
coloanele matricei A ce corespund componentelor diferite de 0
sunt vectori liniari independenti.

Programare liniara

Solutiile unei PPL

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

Solutiile unei PPL

DEFINITIE Fie X1 ; X2 solutii realizabile ale (PPL).


Spunem ca X1 este mai buna decat X2 daca
pentru problema de minim: f (X1 )

f (X2 ) ;

pentru problema de maxim: f (X1 )

f (X2 ) :

DEFINITIE O solutie realizabila pentru care este atins optimul


functiei obiectiv s.n. solutie optima.

Programare liniara

Solutiile unei PPL

Notatie: < = multimea solutiilor realizabile ale (PPL) adusa la forma


standard
< = fx 2 Rn jAx = b; x 0 g

Programare liniara

Solutiile unei PPL

PROPRIETATE Multimea solutiilor realizabile < ale unei (PPL)


este multime convexa.
DEMONSTRATIE Fie x1 ; x2 2 < =)
Ax1 = b, x1

0;

Ax2 = b, x2

0:

Scop: sa aratam ca 8 2 [0; 1] ; rezulta x1 + (1

) x2 2 <:

Programare liniara

Solutiile unei PPL

Fie

2 [0; 1]. Atunci


0 =)
1

0 =)

Ax1 = b;
x1 0
(1
(1

) Ax2 = (1
) x2 0

) b;

Programare liniara

Solutiile unei PPL

Adunand relatiile corespunzatoare, obtinem


Ax1 + (1
) Ax2 = b + (1
) b () A [ x1 + (1
b( + 1
) si deci
A [ x1 + (1
x1 + (1
ceea ce inseamna ca x1 + (1

) x2 ] = b;
) x2

) x2 2 <:

) x2 ] =

Programare liniara

Solutiile unei PPL

Vom studia relatia dintre solutiile realizabile de baza x 2 < si


vrfurile multimii <.
Demonstratia se bazeaza pe:
V vrf al < () nu se poate scrie ca o combinatie convexa de
elemente din <;

I punct interior al < () se poate scrie ca o combinatie convexa


de elemente din <:

Programare liniara

Solutiile unei PPL

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

Solutiile unei PPL

PROPRIETATE x solutie realizabila de baza =) x vrf al <:


def

DEM. Din ipoteza, x este solutie realizabila ()

Ax = b;
x 0:

Conform de nitiei, x solutie de baza inseamna


x veri ca Ax = b;
x are cel mult m componente diferite de 0
coloanele matricei A ce corespund componentelor diferite de 0
sunt vectori liniari independenti.

Programare liniara

Solutiile unei PPL

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

Solutiile unei PPL

Demonstram prin Reducere la Absurd (R.A.):


Presupunem prin R.A. ca x nu este varf al < ()
9y; z 2 Rn ; y 6= z;
9 2 (0; 1)

a.i. x = y + (1

) z:

Programare liniara

Solutiile unei PPL

pentru componentele nebazice j 2 f1; 2; :::; ng n fi1 ; :::; ik g se


stie ca xj = 0:

Dar

> 0; yj
(1

) > 0; zj

0 =) yj

0 =) (1

) zj

Rezulta ca, din ecare ecuatie xj = yj + (1


|{z}
0

va rezulta yj = zj = 0; 8j indice nebazic.

) zj

Programare liniara

Solutiile unei PPL


pentru componentele bazice i1 ; :::; ik , yij si zij pot
8j = 1; k:
Dar y; z 2 < =)

Ay = b;
=) A (y
Az = b

(y
() (yi1

z) = 0:

z)T A = 0 ()

zi1 ) ai1 + ::: + (yik

zik ) aik = 0:

Dar fai1 ; :::; aik g sunt vectori liniari independenti )


yij

6= 0;

zij = 0; 8j = 1; k:

Programare liniara

Solutiile unei PPL

Concluzie:
yj
yij

zj = 0; 8j indice nebazic

=) y = z

zij = 0; 8ij indice bazic

CONTRADICTIE cu ipoteza R.A. ) x este vrf al <:

Programare liniara

Solutiile unei PPL

PROPRIETATE Fie x varf al < =) x solutie realizabila de baza.

Programare liniara

Solutiile unei PPL

EXEMPLU

8
max f (x) = 2x1 + 5x2
>
>
<
x1 + 2x2 2
3x1 + x2 3
>
>
:
x1 ; x2 0

Programare liniara

Solutiile unei PPL


Vrfuri:
O(0; 0) =) f (0; 0) = 0
A(0; 1) =) f (0; 1) = 5
B(1; 0) =) f (1; 0) = 2
C( 45 ; 35 ) =) f 54 ; 35 = 23
5
max 0; 5; 2; 23
=5
5
) solutia optima x = (x1 ; x2 ) unde

x1 = 0
si
x2 = 1

max f (x) = f (x ) = 5:
x2<

Programare liniara

Solutiile unei PPL

Fie
(PPL)

opt f (x) = cT x
;
x2<

unde < = fx 2 Rn jAx = b; x

0g :

Programare liniara

Solutiile unei PPL

Cazuri posibile:
1

< = ; =) (PPL) nu are solutie.

< 6= ; =) (PPL) are solutie.

Programare liniara

Solutiile unei PPL


2.1. f nemarginita pe <; in acest caz, se poate construi un sir
(xn )n < pentru care f (xn ) ! +1 sau 1 =) (PPL) are
optim in nit.
2.2. f marginita pe < =) (PPL) are optim nit.
(i) optim unic x cu f (x ) = opt f (x) ;
x2<

(ii) optim multiplu x1 ; :::; xl cu f (x1 ) = ::: = f (xl ) = opt f (x) : In


x2<

acest caz, 8 combinatie convexa de x1 ; :::; xl este de asemenea


solutie optima a (PPL) i.e.
xgen =

1 x1

+ ::: +

l xl

; unde

1 ; :::;

0;

l
X
i=1

cu
f xgen = opt f (x) :
x2<

= 1;

Programare liniara

Rezolvarea gra ca a problemelor de programare liniara


EXEMPLU Pentru a asigura hrana animalelor din ferma sa, un
fermier poate cumpara doua tipuri de alimente: F1 si F2 . Pentru a le
asigura o dieta corecta, fermierul a calculat ca este nevoie zilnic de
60, 84 si 72 de unitati din elementele nutritionale notate A; B; C.
Continutul de elemente nutritionale si costul ecarui kilogram ale
celor doua tipuri de alimente sunt date in tabel:

F1
F2

Elemente
A
3
2

nutritionale
B
7
2

(unitati=kg)
C
3
6

Sa se determine planul optim de achizitii.

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

Functia obiectiv: functia cost total f (x; y) = 10x + 4y


Restrictiile modelului relative la ecare dintre elementele
nutritionale A; B; C:
pentru A, 3x + 2y

60

pentru B, 7x + 2y

84

pentru C, 3x + 6y

72:

Programare liniara

Programare liniara

Modelul matematic asociat problemei este:


8
min f (x; y) = 10x + 4y
>
>
>
>
3x + 2y 60
<
7x + 2y 84
>
>
3x + 6y 72
>
>
:
x; y 0:

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:

(i) inegalitatii i se asociaza ecuatia corespunzatoare ax + by = c si se


traseaza dreapta de ecuatie ax + by = c in sistemul de axe xOy;
(ii) se determina semi-planul corespunzator restrictiei in forma initiala
( sub forma de inegalitate).

Programare liniara

Programare liniara

2) Se determina multimea solutiilor admisibile < ca intersectie a


tuturor semi-planelor corespunzatoare restrictiilor modelului.
3) Pentru functia obiectiv f (x; y) = x + y:
3a) Se traseaza dreapta de ecuatie x + y = , unde
sistemul de axe xOy;
3b) Se calculeaza gradientul functiei obiectiv:
0

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

dreapta de isocost daca modelul este de minimizare a costului,


respectiv,
dreapta de isopro t daca modelul este de maximizare a
pro tului.

Pre xul "iso" indica faptul ca de-a lungul dreptei y = x + y;


valoarea x + y este constanta (si anume, este egala cu in scrierea
x + y = ).

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