Sunteți pe pagina 1din 36

Optimizare liniară

 Problematica optimizării

 Dificultăţi de abordare şi/sau rezolvare

 Planul de învăţământ (= 14 săptămâni)

ANTON BĂTĂTORESCU

Cursul 1 1
Optimizare liniară

CURS = 2 ORE / SĂPTĂMÂNĂ

SEMINAR = 2 ORE / SĂPTĂMÂNĂ

FORMA DE EXAMINARE: verificare ! (scris)

• 2 subiecte de teorie:
– enunţuri cu demonstraţii;
– enunţuri descriptive.

• 1 exerciţiu de seminar (cu subpuncte)

Cursul 1 2
Conţinutul
Teorema cursului:
fundamentală a programării liniare.
Teoremele algoritmului simplex primal.
Algoritmul simplex. Formule de schimbarea bazei.
Determinarea unei baze primal admisibile. Metoda celor două
faze.
Sisteme liniare de inegalităţi. 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 3
Bibliografie
 A. Ştefănescu, C. Zidăroiu, "Cercetări Operaţionale",
Ed. Didactică şi Pedagogică, Bucureşti, 1981.
 C. Zidăroiu, “Programare liniară", Ed. Tehnică, Bucureşti, 1984.
 A. Bătătorescu, "Metode de optimizare liniară", Ed. Universităţii
din Bucureşti, 2003.
 R.J. Vanderbei, ”Linear Programming: Foundations and
Extensions”, Springer, New York, 2008.
 V. Preda, M. Bad, "Culegere de probleme de cercetări
operaţionale", Tipografia Universităţii din Bucureşti, 1978.
 http://www.ilog.com/
 http://www.maximalsoftware.com/

Cursul 1 4
Problema 1.
Un complex de locuinţe trebuie să cuprindă cel puţin 900 garsoniere,
2100 apartamente cu două şi 1400 apartamente cu trei camere.

Bloc tip A Bloc tip B


4 mil € 5 mil €

10 30 40 30 50 20
garsoniere ap. 2 cam. ap. 3 cam. garsoniere ap. 2 cam. ap. 3 cam.

Să se stabilească câte blocuri de fiecare fel trebuie construite


astfel încât cheltuielile de construcţie să fie minime.

Cursul 1 5
Modelul matematic
 Variabilele de decizie:
 x = numărul de blocuri de tipul A
 y = numărul de blocuri de tipul B

 Funcţia obiectiv: Costul = 4 x + 5 y ;


trebuie minimizat !

 Restricţiile:
garsoniere: 10 x + 30 y >= 900 ;
ap. cu 2 camere: 30 x + 50 y >= 2100 ;
ap. cu 3 camere: 40 x + 20 y >= 1400 ;

 Condiţii implicite (naturale): x şi y >= 0 şi în plus, numere întregi.

Cursul 1 6
Problema 2.
O secţie a unei fabrici produce două tipuri de aparate.
Pentru aceasta trebuie să comande zilnic piese din care s-ar putea face,
în combinaţie, cel puţin, 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 vânzare sunt solicitate zilnic cel puţin 40 de aparate de primul tip şi
cel puţin 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 producţie zilnic care se realizează cu
minimum de cheltuieli.

Cursul 1 7
Modelul matematic
 Variabilele de decizie:
 x = numărul de aparate de primul tip
 y = numărul de aparate de al doilea tip

 Funcţia obiectiv: Costul = 200 x + 400 y ; să fie minim !

 Restricţiile:
comanda: x/80 + y/60 >= 1 ;
capacitate: x + y <= 100 ;
limita inferioară x: 40 <= x ;
limita inferioară y: 20 <= y ;

 Condiţii implicite (naturale): x şi y să fie numere întregi.

Cursul 1 8
Problema 3.
Se consideră un sistem comercial format din două uzine, patru depozite şi
şase clienţi.
Să se determine o distribuţie de cost minim a mărfurilor între uzine, depozite
şi clienţi cunoscând următoarele:

U2
C1
U1
C2

C3

D1
C4

D2
C5
D3
C6
D4

Cursul 1 9
Datele problemei:
 Capacitatea de producţie a uzinelor este: u1 = 150, u2 = 200;
 Capacitatea de stocare a depozitelor este: d1 = 70, d2 = 50, d3 = 100, d4 = 40;
 Cererea clienţilor este: c1=50, c2=10, c3=40, c4=35, c5=60, c6=20;
 Costul unitar de transport al mărfii 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 mărfii de la uzine la clienţi 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 mărfii de la depozite la clienţi 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
CERINŢE:

 Să se afle costul de transport al mărfurilor între:


 Uzine şi depozite:
 Uzine şi clienţi;
 Depozite şi clienţi.

 Capacitatea de producţie a fiecărei uzine să nu fie depăşită;

 Capacitatea de stocare a fiecărui depozit să nu fie depăşită;

 Cantitatea de marfă ce intră în fiecare depozit (de la uzine) să fie egală


cu cea trimisă către clienţi;

 Cantitatea solicitată de fiecare client să fie exact satisfăcută.

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
LP, MIP, BAR, NLP,
Lindo CONOPT LP, NLP
MIQP, MINLP
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 neliniară
f : R  R, f  x    x  2  x  1 x  3  x  5   x 4  7 x 3  5 x 2  31x  30

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 condiţiilor:
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
Notaţii şi câteva definiţii
Vom nota cu A  R mn o matrice cu m linii şi n coloane:
 a11 a12  a1n 
 
a a  a
A   21 22 2n 
  aij 1i  m
    1 j  n
 
a a
 m1 m 2  amn 
unde, aij  R, 1  i  m, 1  j  n,
nm
Transpusa matricei A o vom nota A R . f

cu
Mulţimea matricelor de aceeaşi dimensiune formează un spaţiu
vectorial peste corpul numerelor reale.

A, B  R mn ,   R,  A  B   aij  bij 1i  m ,  B   bij 1i  m


1 j  n 1 j  n

Cursul 1 30
Produsul matricelor: A  R mk , B  R k n este matricea:
k
A  B  C  R mn , cij  ail blj , 1  i  m , 1  j  n.
l 1

Determinantul unei matrice pătratice A  R nn este numărul


det A  

   a    a     a   
Sn
1 1 2 2 n n

Dacă det A  0, matricea A se numeşte nesingulară, iar în acest


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

1 0  0
 
1 1  0 1  0
A  A  A  A  In   R nn
   
 
0 0  1

Cursul 1 31
Un vector coloana v  R este considerat ca fiind o matrice v  R ,
n n1

iar transpusa acesteia este un vector linie.


 v1 
 
 v2 
v , v f   v1 , v2 , , vn 
 
 
 vn 
n
Produsul scalar a doi vectori x, y  R n , x f  y  xi yi  y f  x .
i 1
Definim relaţiile:
x  y  xi  yi pentru orice i  1, n,
x  y  xi  yi pentru orice i  1, n  y  x  R n

În particular, x  0  R  xi  0, i  1, n.
n

Cursul 1 32
Sisteme de ecuaţii liniare
Fie: A  R mn , b  R m şi considerăm sistemul de ecuaţii liniare:
 a11 x1  a12 x2    a1n xn  b1
 a x  a x   a x  b
 21 1 22 2 2n n 2
A x  b  
     
am1 x1  am 2 x2    amn xn  bm

unde x  R reprezintă vectorul necunoscutelor.


n

Notăm: Ai   ai1 , ai 2 , , ain  linia ''i '' a matricei A;


A   a1 j , a2 j , , amj  coloana ''j '' a matricei A.
j f

n
A x  b  Ai  x  bi , i  1, m   x j  b.
A j

j 1

Cursul 1 33
 Teorema Kronecker-Capelli : rang  A   rang  Ab   r  min m, n

 Ecuaţii principale, respectiv variabile principale.

 Ecuaţii secundare, respectiv variabile secundare.

 Prin eliminarea ecuaţiilor secundare, considerăm: rang  A   m  n.


1
 Pentru m = n, avem soluţia unică: x  A  b.

 Pentru m < n, avem o infinitate de soluţii.

Există m coloane liniar independente ale matricei A, care formează

o matrice de bază: B  A 
s1 s2
A ... A sm
. 
Restul coloanelor formează matricea R.

Cursul 1 34
Partiţionarea matricei: A   B R  .

Notăm mulţimea de indici corespunzătoare coloanelor lui B cu


B  s1 , s2 ,..., sm ,
iar mulţimea de indici corespunzătoare coloanelor lui R cu
R  1, 2,..., n \ B .

 xB 
Partiţionarea variabilei x  R , x    ,
n
în care,
 xR 

 
f
xB   xi iB  xs1 , xs2 ,..., xsm  Rm variabile de bază (principale)

xR   x j   R nm variabile secundare


jR

Cursul 1 35
A x  b  B  xB  R  xR  b  xB  B 1  b  B 1  R  xR

Vectorul v  R se numeşte soluţie a sistemului dacă A  v  b.


n

O soluţie a sistemului este numită soluţie de bază, dacă


componentele ei diferite de zero corespund unor coloane liniar
independente ale matricei A.
Pentru orice bază B, se poate obţine o soluţie de bază:
 vB    B  b  B 
1

v  

 vR   0R 

Deoarece rang(A) = m, cel mult m componente ale unei soluţii de
bază pot fi nenule. Dacă soluţia de bază are exact m componente
nenule, ea se numeşte nedegenerată; în caz contrar ea se numeşte
degenerată.

Cursul 1 36

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