Cercetari operationale

36
Cursul 1 1 Problematica optimizării Dificultăţi de abordare şi/sau rezolvare Planul de învăţământ (= 14 săptămâni) Optimizare liniară ANTON BĂTĂTORESCU

description

Matematica

Transcript of Cercetari operationale

Page 1: Cercetari operationale

Cursul 1 1

Problematica optimizării

Dificultăţi de abordare şi/sau rezolvare

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

Optimizare liniară

ANTON BĂTĂTORESCU

Page 2: Cercetari operationale

Cursul 1 2

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)

Page 3: Cercetari operationale

Cursul 1 3

Conţinutul cursului:

Teorema 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.

Page 4: Cercetari operationale

Cursul 1 4

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/

Page 5: Cercetari operationale

Cursul 1 5

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.

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

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

Bloc tip A

4 mil €

Bloc tip B

5 mil €

10

garsoniere

30

ap. 2 cam.

40

ap. 3 cam.

30

garsoniere

50

ap. 2 cam.

20

ap. 3 cam.

Page 6: Cercetari operationale

Cursul 1 6

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.

Page 7: Cercetari operationale

Cursul 1 7

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.

Page 8: Cercetari operationale

Cursul 1 8

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.

Page 9: Cercetari operationale

Cursul 1 9

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:

C1

C2

C4

C5

C6

C3

U2

U1

D2

D1

D3

D4

Page 10: Cercetari operationale

Cursul 1 10

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

Page 11: Cercetari operationale

Cursul 1 11

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ă

Page 12: Cercetari operationale

Cursul 1 12

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

CPLEX LP, MIP, BAR, MIQP

XPRESS LP, MIP, BAR, MIQP

GUROBI LP, MIP

Lindo LP, MIP, BAR, NLP,

MIQP, MINLP

MOPS LP, MIP, BAR

FortMP LP, MIP, BAR, MIQP

Solver Supported Algorithms

CoinMP LP, MIP

GLPK LP, MIP, BAR

LPSolve LP, MIP

CONOPT LP, NLP

KNITRO LP, NLP

LGO NLP, Global

Page 13: Cercetari operationale

Cursul 1 13

Page 14: Cercetari operationale

Cursul 1 14

Page 15: Cercetari operationale

Cursul 1 15

Page 16: Cercetari operationale

Cursul 1 16

Page 17: Cercetari operationale

Cursul 1 17

Page 18: Cercetari operationale

Cursul 1 18

Page 19: Cercetari operationale

Cursul 1 19

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

Page 20: Cercetari operationale

Cursul 1 20

4 3 2: 0, 5.6 , 7 5 31 30f f x x x x x

Page 21: Cercetari operationale

Cursul 1 21

Exemplu – optimizare liniară

2 3 , unde min maxoptim x y optim

Cu îndeplinirea condiţiilor:

Să se determine:

4

8 2 3

5 3 15

2 10

2 16

x y

x y

x y

x y

x y

Page 22: Cercetari operationale

Cursul 1 22

Rezolvare grafică

107.552.50-2.5

10

7.5

5

2.5

0

-2.5

x

y

x

y

Page 23: Cercetari operationale

Cursul 1 23

Rezolvare grafică

107.552.50-2.5

10

7.5

5

2.5

0

-2.5

x

y

x

y

Page 24: Cercetari operationale

Cursul 1 24

Rezolvare grafică

107.552.50-2.5

10

7.5

5

2.5

0

-2.5

x

y

x

y

Page 25: Cercetari operationale

Cursul 1 25

Rezolvare grafică

107.552.50-2.5

10

7.5

5

2.5

0

-2.5

x

y

x

y

Page 26: Cercetari operationale

Cursul 1 26

Rezolvare grafică

107.552.50-2.5

10

7.5

5

2.5

0

-2.5

x

y

x

y

Page 27: Cercetari operationale

Cursul 1 27

Rezolvare grafică

Page 28: Cercetari operationale

Cursul 1 28

Rezolvare grafică

Page 29: Cercetari operationale

Cursul 1 29

Rezolvare grafică

Page 30: Cercetari operationale

Cursul 1 30

Notaţii şi câteva definiţii

Vom nota cu o matrice cu m linii şi n coloane: m nA

11 12 1

21 22 2

11

1 2

n

n

i mijj n

m m mn

a a a

a a aA a

a a a

, 1 ,1 ,ija i m j n unde,

Transpusa matricei A o vom nota cu .n mA f

Mulţimea matricelor de aceeaşi dimensiune formează un spaţiu

vectorial peste corpul numerelor reale.

1 11 1

, , , ,m n

i m i mij ij ijj n j n

A B A B a b B b

Page 31: Cercetari operationale

Cursul 1 31

Produsul matricelor: este matricea: ,m k k nA B

1

1 , 1, , .k

m n

ij il lj

l

i m j nA B C c a b

Determinantul unei matrice pătratice este numărul n nA

1 1 2 2det

n

n nA a a a

S

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

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

det 0,A

1 1

1 0 0

0 1 0

0 0 1

n n

nA A A A

I

Page 32: Cercetari operationale

Cursul 1 32

Un vector coloana este considerat ca fiind o matrice

iar transpusa acesteia este un vector linie.

nv 1,nv

1

2

1 2, , , , n

n

v

vv v v v v

v

f

Produsul scalar a doi vectori

1

, , .n

n

i i

i

x y x y x y y x

f f

pentru orice

pentru orice

1, ,

1,

i i

i

n

i

x y x y i n

x y x y i n y x

Definim relaţiile:

În particular, 0, 1, .n

ix x i n 0

Page 33: Cercetari operationale

Cursul 1 33

Sisteme de ecuaţii liniare

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

n n

n n

m m mn n m

a x a x a x b

a x a x a x bA x b

a x a x a x b

Fie: şi considerăm sistemul de ecuaţii liniare: ,m n mA b

nxunde reprezintă vectorul necunoscutelor.

Notăm:

1 2

1 2

, , , linia '' '' a matricei ;

, , , coloana '' '' a matricei .

i i i in

j

j j mj

A a a a i A

A a a a j A

f

1

, 1, .n

j

i i j

j

A x b A x b i m A x b

Page 34: Cercetari operationale

Cursul 1 34

Teorema Kronecker-Capelli :

Ecuaţii principale, respectiv variabile principale.

Ecuaţii secundare, respectiv variabile secundare.

Prin eliminarea ecuaţiilor secundare, considerăm:

Pentru m = n, avem soluţia unică:

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

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

o matrice de bază:

Restul coloanelor formează matricea R.

min ,rang A rang A b r m n

.rang A m n

1 .x A b

1 2 ... .mss sB A A A

Page 35: Cercetari operationale

Cursul 1 35

Partiţionarea matricei: .A B R

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

1 2, ,..., ,ms s sB

iar mulţimea de indici corespunzătoare coloanelor lui R cu

1,2,..., \ .nR B

Partiţionarea variabilei în care, , ,nx

x xx

B

R

1 2, ,...,

m

m

i s s six x x x x

B B

f

variabile de bază (principale)

n m

j jx x

R R variabile secundare

Page 36: Cercetari operationale

Cursul 1 36

1 1A x b B x R x b x B b B R x B R B R

Vectorul se numeşte soluţie a sistemului dacă nv .A v b

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.

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ă.

Pentru orice bază B, se poate obţine o soluţie de bază:

1B bvv

v

0

B B

R R