Sunteți pe pagina 1din 36

Optimizare liniar

Problematica optimizrii

Dificulti de abordare i/sau rezolvare

Planul de nvmnt

(= 14 sptmni)

ANTON BTTORESCU
Cursul 1

Optimizare liniar
CURS = 2

ORE / SPTMN

SEMINAR = 2

ORE / SPTMN

FORMA DE EXAMINARE: verificare ! (scris)


2 subiecte de teorie:
enunuri cu demonstraii;
enunuri descriptive.

1 exerciiu de seminar (cu subpuncte)

Cursul 1

Coninutul
Teorema fundamental
a programrii liniare.
cursului:
Teoremele algoritmului simplex primal.
Algoritmul simplex. Formule de schimbarea bazei.
Determinarea unei baze primal admisibile. Metoda celor dou
faze.
Sisteme liniare de inegaliti. Lema Farka-Minkowski.
Dualitate n programarea liniar. Teoreme de dualitate.
Algoritmul simplex dual.
Problema transporturilor.
Postoptimizare i programare liniar parametric.
Programare liniar n numere ntregi.
Cursul 1

Bibliografie

A. tefnescu, C. Zidroiu, "Cercetri Operaionale",


Ed. Didactic i Pedagogic, Bucureti, 1981.

C. Zidroiu, Programare liniar", Ed. Tehnic, Bucureti, 1984.

A. Bttorescu, "Metode de optimizare liniar", Ed. Universitii


din Bucureti, 2003.

R.J. Vanderbei, Linear Programming: Foundations and


Extensions, Springer, New York, 2008.

V. Preda, M. Bad, "Culegere de probleme de cercetri


operaionale", Tipografia Universitii din Bucureti, 1978.

http://www.ilog.com/

http://www.maximalsoftware.com/

Cursul 1

Problema 1.
Un complex de locuine trebuie s cuprind cel puin 900 garsoniere,
2100 apartamente cu dou i 1400 apartamente cu trei camere.

Bloc tip A
4 mil

10
garsoniere

30
ap. 2 cam.

Bloc tip B
5 mil

40
ap. 3 cam.

30
garsoniere

50
ap. 2 cam.

20
ap. 3 cam.

S se stabileasc cte blocuri de fiecare fel trebuie construite


astfel nct cheltuielile de construcie s fie minime.

Cursul 1

Modelul matematic

Variabilele de decizie:

x = numrul de blocuri de tipul A


y = numrul de blocuri de tipul B

Funcia obiectiv:

Restriciile:
garsoniere:
ap. cu 2 camere:
ap. cu 3 camere:

Costul = 4 x + 5 y ;
trebuie minimizat !

10 x + 30 y >= 900 ;
30 x + 50 y >= 2100 ;
40 x + 20 y >= 1400 ;

Condiii implicite (naturale): x i y >= 0 i n plus, numere ntregi.

Cursul 1

Problema 2.
O secie a unei fabrici produce dou tipuri de aparate.
Pentru aceasta trebuie s comande zilnic piese din care s-ar putea face,
n combinaie, cel puin, 80 de aparate de primul tip sau 60 de
aparate de al doilea tip.
Capacitatea de montaj este de cel mult 100 de aparate pe zi din
ambele tipuri.
La vnzare sunt solicitate zilnic cel puin 40 de aparate de primul tip i
cel puin 20 de aparate de al doilea tip.
Pentru realizarea unui aparat de primul tip se cheltuiesc 200 , iar
pentru un aparat de al doilea tip, 400 .
S se stabileasc planul de producie zilnic care se realizeaz cu
minimum de cheltuieli.

Cursul 1

Modelul matematic

Variabilele de decizie:

x = numrul de aparate de primul tip


y = numrul de aparate de al doilea tip

Funcia obiectiv:

Restriciile:
comanda:
capacitate:
limita inferioar x:
limita inferioar y:

Costul = 200 x + 400 y ; s fie minim !

x/80 + y/60 >= 1 ;


x + y <= 100 ;
40 <= x ;
20 <= y ;

Condiii implicite (naturale): x i y s fie numere ntregi.

Cursul 1

Problema 3.
Se consider un sistem comercial format din dou uzine, patru depozite i
ase clieni.
S se determine o distribuie de cost minim a mrfurilor ntre uzine, depozite
i clieni cunoscnd urmtoarele:
U2

C1

U1
C2

C3

D1

C4
D2

C5
D3
D4

Cursul 1

C6

Datele problemei:
Capacitatea de producie a uzinelor este: u1 = 150, u2 = 200;
Capacitatea de stocare a depozitelor este: d1 = 70, d2 = 50, d3 = 100, d4 = 40;
Cererea clienilor este: c1=50, c2=10, c3=40, c4=35, c5=60, c6=20;
Costul unitar de transport al mrfii de la uzine la depozite este:
u1, d1, 0.5,
u2, d2, 0.3,
u1, d2, 0.5,
u2, d3, 0.5,
u1, d3, 1.0,
u2, d4, 0.2,
u1, d4, 0.2
Costul unitar de transport al mrfii de la uzine la clieni este:
u1, c1, 1.0,
u1, c3, 1.5,
u1, c4, 2.0,
u1, c6, 1.0,
u2, c1, 2.0
Costul unitar de transport al mrfii de la depozite la clieni este:
d1, c2, 1.5,
d2, c1, 1.0,
d3, c2, 1.5,
d4, c3, 0.2,
d1, c3, 0.5,
d2, c2, 0.5,
d3, c3, 2.0,
d4, c4, 1.5,
d1, c4, 1.5,
d2, c3, 0.5,
d3, c5, 0.5,
d4, c5, 0.5,
d1, c6, 1.0,
d2, c4, 1.0,
d3, c6, 1.5,
d4, c6, 1.5,
d2, c5, 0.5
Cursul 1

10

CERINE:
S se afle costul de transport al mrfurilor ntre:
Uzine i depozite:
Uzine i clieni;
Depozite i clieni.
Capacitatea de producie a fiecrei uzine s nu fie depit;
Capacitatea de stocare a fiecrui depozit s nu fie depit;
Cantitatea de marf ce intr n fiecare depozit (de la uzine) s fie egal
cu cea trimis ctre clieni;
Cantitatea solicitat de fiecare client s fie exact satisfcut.

Modelarea matematic

Cursul 1

11

MPL (Mathematical Programming Language) este un sistem de


programare care permite descrierea ntr-un mod simplu i eficient a
unor modele de optimizare complicate.
Programele realizate n MPL pot fi rezolvate cu diferite produse
software de optimizare (solver):
Solver

Supported Algorithms

Solver

Supported Algorithms

CPLEX

LP, MIP, BAR, MIQP

CoinMP

LP, MIP

XPRESS

LP, MIP, BAR, MIQP

GLPK

LP, MIP, BAR

GUROBI

LP, MIP

LPSolve

LP, MIP

Lindo

LP, MIP, BAR, NLP,


MIQP, MINLP

CONOPT

LP, NLP

MOPS

LP, MIP, BAR

KNITRO

LP, NLP

FortMP

LP, MIP, BAR, MIQP

LGO

NLP, Global

Cursul 1

12

Cursul 1

13

Cursul 1

14

Cursul 1

15

Cursul 1

16

Cursul 1

17

Cursul 1

18

Exemplu optimizare
f : R R, f x x 2 x 1 x 3 x 5 x 7 x 5 x 31x 30
neliniar
4

Cursul 1

19

f : 0, 5.6 R,

f x x 4 7 x 3 5 x 2 31x 30

Cursul 1

20

Exemplu optimizare
liniar
S se determine:
optim 2 x 3 y ,

unde optim min max

Cu ndeplinirea condiiilor:

x y 4
8 x 2 y 3
5 x 3 y 15
x 2 y 10
2 x y 16
Cursul 1

21

Rezolvare grafic

Cursul 1

22

Rezolvare grafic

Cursul 1

23

Rezolvare grafic

Cursul 1

24

Rezolvare grafic

Cursul 1

25

Rezolvare grafic

Cursul 1

26

Rezolvare grafic

Cursul 1

27

Rezolvare grafic

Cursul 1

28

Rezolvare grafic

Cursul 1

29

Notaii i cteva definiii


Vom nota cu A Rmn o matrice cu m linii i n coloane:

a11

a21

a12

a22

am1 am 2 L

a1n

a2 n
aij 1i m
M
1 j n

amn

unde, aij R, 1 i m, 1 j n,

Transpusa matricei A o vom nota cu A R


f

n m

Mulimea matricelor de aceeai dimensiune formeaz un spaiu


vectorial peste corpul numerelor reale.

A, B Rmn , R,

A B aij bij 1i m , B bij 1i m


1 j n

Cursul 1

1 j n

30

Produsul matricelor:

A Rmk , B Rk n este matricea:


k

A B C Rmn , cij ail blj ,


l 1

A Rnn este numrul

Determinantul unei matrice ptratice

det A

Sn

1 1

1 i m , 1 j n.

a2 2 L an n

Dac det A 0, matricea A se numete nesingular, iar n acest


caz, exist o unic matrice A-1 numit matrice invers:

A A1 A1 A I n

0
M

0
Cursul 1

0 L
1 L
M O
0 L

0
Rnn

1
31

n1
Un vector coloana v R este considerat ca fiind o matrice v R ,
n

iar transpusa acesteia este un vector linie.

v1

v2

v
,
M


vn

v f v1 , v2 ,L , vn
n

Produsul scalar a doi vectori

x, y Rn , x f y xi yi y x .
i 1

Definim relaiile:

x y xi yi pentru orice i 1, n,
x y xi yi pentru orice i 1, n y x Rn
n
n particular, x 0 R

xi 0, i 1, n.
Cursul 1

32

Fie:

Sisteme de ecuaii
i considerm sistemul de ecuaii liniare:
A R , b R liniare
mn

A x b

a11 x1 a12 x2 L a1n xn b1


a x a x L a x b
21 1 22 2
2n n
2

M
M
M
M M
am1 x1 am 2 x2 L amn xn bm

n
unde x R reprezint vectorul necunoscutelor.

Notm:

Ai ai1 , ai 2 ,L , ain linia ''i '' a matricei A;


A a1 j , a2 j ,L , amj
j

A x b

coloana ''j '' a matricei A.

Ai x bi , i 1, m

j
A
x j b.
j 1

Cursul 1

33

b r min m, n
Teorema Kronecker-Capelli : rang A rang AM

Ecuaii principale, respectiv variabile principale.

Ecuaii secundare, respectiv variabile secundare.

Prin eliminarea ecuaiilor secundare, considerm: rang A m n.

1
x

A
b.
Pentru m = n, avem soluia unic:

Pentru m < n, avem o infinitate de soluii.


Exist m coloane liniar independente ale matricei A, care formeaz

sm
s1 s2
B

A
A
...
A
.
o matrice de baz:

Restul coloanelor formeaz matricea R.


Cursul 1

34

Partiionarea matricei:

A B MR .

Notm mulimea de indici corespunztoare coloanelor lui

B s1 , s2 ,..., sm ,

iar mulimea de indici corespunztoare coloanelor lui

B cu

R cu

R 1, 2,..., n \ B.
xB
Partiionarea variabilei x R , x ,
xR
n

xB xi iB xs1 , xs2 ,..., xsm

xR x j

jR

n care,

Rm

variabile de baz (principale)

Rn m

variabile secundare

Cursul 1

35

A x b

B xB R xR

xB

B
1 b B1 R xR

Vectorul v R se numete soluie a sistemului dac A v b.


n

O soluie a sistemului este numit soluie de baz, dac


componentele ei diferite de zero corespund unor coloane liniar
independente ale matricei A.
Pentru orice baz

B, se poate obine o soluie de baz:


B 1 b
vB
B
v

0
vR

Deoarece rang(A) = m, cel mult m componente ale unei soluii de


baz pot fi nenule. Dac soluia de baz are exact m componente
nenule, ea se numete nedegenerat; n caz contrar ea se numete
degenerat.
Cursul 1

36