Sunteți pe pagina 1din 52

Universitatea Politehnica din Bucureşti

Facultatea Transporturi

SCOALA DOCTORALA
TRANSPORTURI

Mat. Ec. Dr. DoinaCARP

București
2021
2
Cercetari operationale

STRUCTURA MODUL INSTRUIRE


CURS
1 • Noțiuni de programare liniară

CURS
• Programarea discretă
2

CURS
3 • Grafuri
3

Noțiuni de programare liniară

• Formularea problemelor de programare liniară;


• Mulțimi convexe determinate de inegalități liniare ;
• Interpretarea geometrică a problemelor de programare liniară;
• Problema clasica de transport si generalizari ale acesteia
• Metoda Simplex pentru rezolvarea problemelor de programare
liniară.
4

INCEPUTURI
Totul a început în anul 1947, când G B
Dantzig a pus bazele "metodei Simplex"
folosită anterior în rezolvarea
problemelor de planificare din US Air
Force, probleme care aveau o formă
liniară.
Din acest motiv, 1948 se considera a fi
anul primei structurări a ceea ce urma să
devină domeniul matematic al
Cercetarilor Operationale
5

INCEPUTURI IN TRANSPORTURI
T.C. KOOPMANS a realizat prima abordare a
transporturilor maritime prin metode matematice (cu
caracter tactico-militar).
Reducerea timpului de expunere a navelor aliate pericolului de
intalnire cu submarinele germane
devine problema economica a reducerii mersului navelor în balast.

Perioada Nr. publicatii Sursa: European Journal of


Operational Research (EOJR)

1950-1980 40 (Ronen, 1983)

1980-1990 40 (Ronen, 1993)

1990-2000 80 (Christiansen, et al. 2004)

2001-2011 130 (Christiansen, et al. 2014)


6

Problema de Programare Liniara (PPL)


• Problema generală de programare liniară constă în determinarea optimului
(minim sau maxim) al unei funcţii liniare, de mai multe variabile, care
satisfac şi un sistem de relaţii liniare numite restricţii.
)


………………………………………..
=
≥0, ≥0…… ≥0
OBSERVATII
1. Functia scop poate fi de tip maxim, respectiv
)
2. Restrictiile pot fi de orice tip, dupa cum s-a ilustrat.
7

TERMINOLOGIE
• O soluţie a problemei PPL este un ansamblu de n numere care
satisfac sistemul (1) de restricţii.
• Dacă este verificată şi condiţia (2) soluţia se va numi solutie
admisibilă.
• O soluţie admisibilă care realizează valoarea optimă a funcţiei
obiectiv se numeşte soluţie optimă a problemei (PPL).
8

DIFERITE FORME ALE PROBLEMEI DE PROGRAMARE


LINIARA
 min ( c x  ...  c x )
1 1 n n
 max
 a11 x1  ...  a1 n x n  b1 
FORMA 
( PL ) .......... .......... .......... ...

 (1)
GENERALA  a x  ...  a x  b
 m1 1

mn n m


 x1  0 , x 2  0 ,..., x n  0 (2)

 min ( c1 x1  ...  c n x n )
 max
 a11 x1  ...  a1 n x n  b1 
FORMA 
( PPL ) .......... .......... .......... ...

 (1)
CANONICA  a x  ...  a x  b
 m1 1

mn n m


 x1  0 , x 2  0 ,..., x n  0 (2)
9

FORMA CANONICA A (PPL)


• Forma canonica a (PPL) are doar restrictii concordante, adica
toate sunte de acelasi tip, respectiv:
min f(x) 
a11x1+ …+ a1nxn  b
……………………..
x1, x2…xn ≥ 0
sau
max f(x)
a11x1+ …+ a1nxn ≤ b

X1≥ 0, X2≥ 0…. Xn≥ 0
10

FORMA STANDARD A (PPL)


• Forma standard are toate restrictiile de tip egalitate.

 n

 max f  j  1 c j x j

 n
( PL ' )   a ij x j  b i , i  1, m
 j1
 x  0, j  1, n
 j

11

FORMA MATRICEALA A (PPL)


• max f(x)=CX
• min f(x)=CX
AX ≤ b
AX 
X 0 a11…a1n
X 0
unde AϵMmxn A= ……….
x1 am1…amn
XϵMnx1 X=…..
xn

b ϵM1xm b=(b1,…bm)
c ϵ M1xn c=(c1,…cn)
12

PROBLEMA lui KOOPMANS


Matricea S a distanţelor sij dintre
Fie i = 1, 2... n şi
porturile i şi j, (în kilometri)
-n porturi din care se expediază şi în
S=
care sosesc mărfuri,
-wi capacitatea în tdw a navelor
expediate din portul i ( i=1,…n) ,
-pj capacitatea în tdw a navelor care
Matricea X a cantităţilor transportate din ajung în decursul unei anumite
porturile i în porturile j (în tone) perioade în portul j (j = 1, 2... n),
-xij cantitaţile de marfuri transportate
X=
din porturile i în porturile j,
-yij capacităţile de transport ale
navelor ce navigă între porturile i şi j
şi matricea Y a capacităţilor de încărcare
- yij- xij reprezintă tonajul neutilizat .
a navelor ce navigă între porturile i şi j
(tdw)
Y=
13

PROBLEMA lui KOOPMANS

- necunoscutele problemei: yij (i, j = 1, 2,..., n),


- funcţia obiectiv f va stabili mărimea "transporturilor goale” sau capacitatea de transport
neutilizată pe toate rutele
f(yij) =

min f(yij) =
14

Algoritmul SIMPLEX
• Algoritmul SIMPLEX se aplica problemelor aduse la forma standard.
 n

 max f   cjxj
 j 1

 n
( PPL) aij x j  bi , i  1, m
 j 1
 x  0, j  1, n
 j


Daca se noteaza coloanele matricei A cu Pj atunci AX=x1P1+…xnPn


O soluţie x(x1,...xn)se numeşte soluţie de bază când coordonatele ei
nenule se înmulţesc cu coloanele Pj liniar independente ale matricei
A.
Daca soluţia este și admisibilă, atunci se va numi soluţie admisibilă de
bază.
15

Algoritmul SIMPLEX
• Propoziţie: Orice problemă (PPL) compatibilă posedă o clasă
de soluţii admisibile particulare B cu proprietăţile:
1.B este finită
2.Dacă P are o soluţie optimă, cel puţin una din ele este în B.

• Metoda SIMPLEX elaborată de G.B.Danzig dă un procedeu


iterativ de cercetare a soluţiilor admisibile de bază ale
problemei .
16

Convexitate
17

D mulțimea soluțiilor admisibile in


spatiul n dimensional
18

• Presupunem că x (x1,...xn) are pe x1, x2, …xm coordonate nenule,


atunci vectorii P1, P2, …Pm sunt liniari independenţi şi
B=(P1, P2, …Pm) se numeşte baza asociată soluţiei (este unică
pentru o soluţie nedegenerată şi neunică pentru una
degenerată deoarece se poate completa cu coloane ale lui A).
• Variabilele x1, x2, …xm se numesc variabile bazice iar xm+1,
x2+m, …xn se numesc variabile secundare.
• Deci x  ( x1 ,..., xm ,0,...,0)

• Dacă x are m componente nenule se numeşte soluţie


nedegenerată.
• Dacă are mai mult de m componente nenule se numeşte
soluţie degenerată.
19

Tabel primar
• Primul tabel Simplex

VB (variabile de VVB (valoarea Coloane matricei A


baza) variabilelor de
baza) P1 P2.. Pm Pm+1…Pn

P1 1 0……0 …
P2 0 1 0 a1,m1 a1,n
… … …. …. …………….
Pm 0 0 1 ….
am,m1 a m ,n
20

• Conventie: i va desemna o variabila bazică,


• j va desemna o variabilă secundară.
x1  ... a 1m1xm1 ... a 1n xn  b1

 x2  ... a 2m1xm1 ...a 2nxn  b2

 ..........
..........
..........
..........
..........
..........
......

 xm  a mm1xm1 ...a mn xn  bn
m
z j   ci a ij m 1  j  n 21
i 1

m n m n n
f ( x)  c1 x1  ...  c n x n   ci xi   c j x j   ci (bi   a ij x j )  c x j j 
i 1 j  m 1 i 1 j  m 1 j  m 1
m n m
  ci b i   ( ci a ij  c j ) x j
i 1 j  m 1 i 1

m m

• Dar c b  f (x)
i1
i i iar, notand z j  ci aij m 1  j  n
i1

n
f (x)  f (x) (zj cj )xj
jm1


22

• TEOREME
• 1.x  ( x1 ,... xn ) este solutie optima daca 0 ≤ zj-cj j=1,...n
Daca exista zj-cj <0 se va cauta o solutie mai buna (se va face o
schimbare de baza,adica se va trece in alt varf al poliedrului de solutii)
• 2.Coloana care va intra in baza este Pk pentru care
zk-ck = min( zj-cj ) pentru toate zj-cj <0
Daca zk-ck <0 si a ik  0 pentru orice i ,PROBLEMA ARE OPTIM
INFINIT STOP
bi br
Daca exista a ik  0 din baza va iesi coloana Pr pentru care   min 
a 0 a
ik
ik ark

La intersectia liniei r si a coloanei k se va afla elementul ark numit PIVOT AL


TRANSFORMARII
23

TABEL SIMPLEX, FORMA FINALA


• SIMPLEX
CB VB VVB C1 C2.. Cm…. Cn
P1 P2.. Pm….. Pn

C1 P1 b1 1 0….. 0… a1n
… …. ….. 0 1 0 a2n
0 0 0
… … …
Cm Pm bm 0 0….. 1 amn
f(x) z1 z2 ... zm zn zi
z1-c1 ……………………… zn-cn zi-ci
24

Matlab LP Function linprog


• Example >> f = [-5; -4; -6];
• Find x that minimizes >> A = [1 -1 1
f(x) = –5x1 – 4x2 –6x3, 324
subject to 3 2 0];
x1 – x2 + x3 ≤ 20 >> b = [20; 42; 30];
3x1 + 2x2 + 4x3 ≤ 42 >> lb = zeros(3,1);
3x1 + 2x2 ≤ 30 >> x = linprog(f,A,b,[],[],lb);
0 ≤ x1, 0 ≤ x2, 0 ≤ x3. >> Optimization terminated.
>> x
x=
0.0000
15.0000
3.0000
25

EXEMPLU
Max (2x-y+4z)
x+6y-z ≤ 8
-2x-y+5z≥ -10/(-1)
y+7z ≤ 6
x,y,z ≥0

Max (2x-y+4z)
x+6y-z ≤ 8
2x+y-5z ≤ 10
y+7z ≤ 6
x,y,z ≥0
26

Max (2x-y+4z)
x+6y-z+t = 8
2x+y-5z+u = 10
y+7z+v = 6
x,y,z , t, u,v ≥0

c=(2 -1 4 0 0 0) 1 6 -1 1 0 0
A= 2 1 -5 0 1 0
0 1 7 0 0 1

b= (8, 10, 6)
27

• Solutie: x=0, y=0, z=0,t=8, u=10,v=6


• min (-4, -1)=-4
CB VB VVB 2 -1 4 0 0 0
P1 P2 P3 P4 P5 P6

0 P4 (t) 8 1 6 -1 1 0 0

0 P5 (u ) 10 2 1 -5 0 1 0

0 P6 (v) 6 0 1 77 0 0 1 6/7

f 0 0 0 0 0 0 0 zj

-2 1 -4 0 0 0 Zj-cj
28

PIVOTARE
CB VB VVB 2 -1 4 0 0 0
P1 P2 P3 P4 P5 P6
0 P4 (t) 62/7 1 43/7 0 1 0 1/7 9/11
0 P5 (u) 100/7 2 12/7 0 0 1 5/7
4 P3 (z) 6/7 02 1/7 1 0 0 1/7 36/70
f 24/7 0 4/7 4 0 0 4/7 zj
-2 11/7 0 0 0 4/7 Zj-cj

Valoarea functiei a crescut de la zero la 24/7


Criteriul de optimalitate nu este indeplinit deoarece Z1-C1=-2<0,
deci P1 va intra in baza
Din baza va iesi P5 deoarece min ( 62/7, 100/14)= 50/7
Pivotul noii transformari va fi a21=2
Se reia pivotarea.
29

DUALITATE IN PROGRAMAREA LINIARA


• Unei probleme PPL i se asociază o alta problema PPL numita
duala ei astfel:
PRIMALA DUALA

Functia scop de maxim Functia scop de minim


de minim de maxim
Variabilelor li se asociază restricţii -concordante daca variabila este
si reciproc, restrictiilor li se nenegativa
asociază variabile nenegative (la -discordante daca variabila este
concordante), negative (la negativa
discordante), numere reale la -egalitate daca variabila este orice
egalitati numar real

Coeficientii functiei scop Termenii liberi


Termenii liberi Coeficientii functiei scop
30

APLICATIE
PRIMALA DUALA
Max (3x+7y-z) Min (4u +4u +5u )
1 2 3

x+y+z≤ 4 u +6u ≥3
1 3

y+2z=4 u +u ≥7
1 2

6x+3z ≥5 u +2u +3u ≥ -1


1 2 3

x,y,z ≥0 u ≥0 , u ϵR , u ≤0
1 2 3
31

DUALITATE
In timpul unei diete, o persoana trebuie sa consume patru
elemente nutritive A,B, C, D.
Acestea se gasesc in doua combinatii M si N, cu diferite
compozitii care au preturile de 10 lei/kg pentru M si 4
lei/kg pentru N.

Pe zi, consumul:
de elementul A trebuie sa fie de cel putin 0,4 kg,
de elementul B de cel putin 0,6 kg,
de elementul C de cel putin 2 kg si
de elementul D de cel putin 1,7 kg.
32

SINTEZA DATELOR
Elemente Combinatii Cantitati
nutritive M N prescrise

A 0,1 0 0,4
B 0 0,1 0,6
C 0,1 0,2 2
D 0,2 0,1 1,7
Costuri 10 4
33

Problema Primala
• Fie X1 cantitatea din combinatia M cumparata
X2 cantitatea din combinatia N cumparata.
Functia cost f(X1, X2)=10X1+4X2
• Min f(X , X )=10X +4X
1 2 1 2

Restrictiile sunt:
0,1X ≥ 0,41 adica X ≥ 4 1

0,1X ≥ 0,62 X ≥6 2

0,1X + 0,2 X ≥ 2
1 2 X + 2X ≥ 20
1 2

0,2 X + 0,1 X ≥ 1,7


1 2 2 X + X ≥ 17 1 2

X X ≥0
1, 2
34

Solutia grafica: P(4,9) cu costul


f(4,9)=10*4+4*9=76 lei/zi
Cantitatile A si D sunt in cantitatile necesare, iar la
B exista un excedent de 0,3 kg si la C un excedent
de 0,2.
35

X1+2X2=20
(4,9)
X2

X2=6

2X1+X2=17 X1

X1=4
36

Problema duala
• Un concurent al vanzatorului combinatiilor
M si N vinde elementele A,B,C,D ca atare. El
vrea sa stie cu ce pret sa vanda produsele
astfel ca beneficiul sau sa fie maxim.
unde U = pret kg A,
1

U = pret kg B,
2

U = pret kg C,
3

U = pret kg D.
4

Max g(U , U ,U , U )=0,4U + 0,6U +2 U +1,7 U


1 2 3 4 1 2 3 4
37

• El nu vrea sa vinda cu preturi mai mari decat concurentul lui, deci isi
impune urmatoarele restrictii:
• max g(U , U ,U , U )=0,4U + 0,6U +2 U +1,7 U
1 2 3 4 1 2 3 4

0,1U + 0,1U +0,2 U ≤ 10


1 3 4

0,1U + 0,2U +0,1 U ≤ 4


2 3 4

U ,U , U , U ≥ 0
1 2 3 4
38

max g=76 min f=76


pentru U =20
1

U= 0
2

U= 0
3

U =40 4

• Semnificatia unui program dual, in cazurile economice


concrete aproape totdeuna dualul are o semnificatie
economica artificiala.
• Programul si dualul lui formeaza un joc de strategie cu suma
zero si doar rareori corespunde unei realitati economice.
39

MODELE MATEMATICE SPECIFICE TRANSPORTULUI MARITIM


40

MODELUL PROBLEMEI DE TRANSPORT TRIDIMENSIONALE (l=1)


Fig 1.1: Distribuţia spaţială a costurilor pentru problema de transport cu 3 indici 41

Distribuţia spaţială a costurilor pentru problema de transport cu 3 indici


Fig 1.1: Distribuţia spaţială a costurilor pentru problema de transport cu 3 indici 42
Instrumente matematice şi economice pentru
managementul cantitativ al problemelor de Doina-Eufrosina CARP
transport

Problema clasica de transport

Surse D1 D2 .... Dm Ofertă

destinaţii

S1 c11 c12 ... c1m E1

S2 c21 c22 ... c2m E2

... ... ... ... ... ...

Sn cn1 cn2 ... Cnm En

Cerere C1 C2 ... Cm
43

TERMINOLOGIE
• La intersectia liniei i si a coloanei j se afla ruta (i,j)
• Problema de transport se numeste degenerata daca numarul de ecuatii
este m+n-1 si degenerata in caz contrar.
• Daca cererea este egala cu oferta, problema de transport este echilibrata,
adica daca c1+c2+…cm = e1+e2+…en .
• Algoritmul de rezolvare se poate aplica doar problemei echilibrate.
44

Echilibrarea problemei de transport

1. Daca c1+c2+…cm > e1+e2+…en se adauga o sursa virtuala care are existentul
en+1 definit astfel:
c1+c2+…cm - e1+e2+…en =en+1 .
Problema se echilibreaza si se rezolva, iar cantitatile alocate de la noua sursa au
semnificatia de cantitati care raman neacoperite sau cereri nesatisfacute.

2. Daca c1+c2+…cm < e1+e2+…en se adauga o sursa virtuala care are cererea cm+1
definit astfel:
cm+1= e1+e2+…en – (c1+c2+…cm )
Problema se echilibreaza se rezolva, iar cantitatile alocate noii destinatii au
semnificatia de cantitati care raman nedistribuite
45

ALGORITMUL PROBLEMEI DE TRANSPORT


Pas 0. Verificare echilibrarii problemei.
Pas 1: Se obtine o solutie de pornire cu una din metodele:
• Coltului de NV
• Costului minim
• Etc
• Principiul de alocare: rutei (i,j) i se aloca valoare min
(e ,c ), iar rutele de pe coloana (linia) acestui minim se
i j

blocheaza si nu vor mai face parte din solutie.


• Coloana (linia) care nu a dat valoarea minima se
actualizeaza cu valoarea: max (e ,c )- min (e ,c ).
i j i j
46

• Pas 2: Testarea optimalitatii solutiei


-Se ataseaza fiecarei linii o variabila notata cu u si fiecarei
i

coloane o variabila v si se rezolva sistemul de ecuatii


j

liniare u + v c atasate doar rutelor care fac parte din


i j = ij

solutie, asadar va avea m+n necunoscute si m+n-1


ecuatii.
-Cu solutiile gasite pentru u si v se calculeaza Δ = u v -c
i j ij i+ j ij

pentru toate rutele care nu fac parte din solutia testata.


TEST: Daca oricare Δ ≤0 solutia este optima . STOP
ij ,

Daca exista Δ >0 solutia nu este optima si ea se va


ij ,

schimba
47

Pas 3. Generarea unei solutii mai bune

Ruta (i0,j0) pentru care are loc max Δij pentru Δij>0 va intra in solutie.
Pentru a sti ce ruta va parasi soluția se genereaza un contur poligonal
care incepe cu aceasta ruta (i0,j0), coteste in unghiuri drepte numai
in rute ocupate (care fac parte din solutia testata) si se termina tot
in (i0,j0).
Se marcheaza cu (+) sau (-) colturile poligonului alternand , incepand
cu (+) pentru ruta de pornire (i0,j0).
Se determina valoarea Θ = minimul cantitatilor din colturile marcate
cu (-).Daca nu este unic, se aplica regula de perturbare
In rutele marcate cu (+) se aduna cantitatea Θ iar din colturile marcate
cu (-) se scade cantitatea Θ.
Ruta care da valoarea Θ primeste asadar zero, adica iese din solutie si
in solutie intra (i0,j0) cu cantitatea alocata egala cu Θ.
Cu noua solutie se reia pasul 2.
48

Exemplu numeric
• PAS 0-Echilibrare: 10+20+40+30+40=140
• 15+25+45+55=140
Destinatii D1 D2 D3 D4 D5 oferte
/
Surse
S1 3 2 5 6 4 15

S2 7 4 3 5 9 25

S3 2 3 2 3 6 45

S4 7 6 5 3 6 55

cereri 10 20 40 30 40
49

Metoda Colt NV
• Solutie initiala : X11=10 X12=5 X22=15 X23=10 X33=30 X34 = 15
X44=15 X45=40 celelalte Xij=0
C1=10x3+5x2 + 15x4+ 3x10+ 30x2+3x15+3x15+40x6 =520

Destin D1 D2 D3 D4 D5 oferte
atii/
Surse
S1 10 5 - - - 15 5

S2 - 15 10 - - 25 -

S3 - - 30 15 - 45 15

S4 - - - 15 40 55

cereri 10 20 15 40 30 30 15 40
50

Ui+Vj=Cij pentru rute din solutie


V1 V2 V3 V4
U1+V1=3 U1=0 V1=3 D1 D2 D3 D4 D5
U1+V2=2 U2=2 V2=2
U2+V2=4 U3=1 V3=1 U1 S1 3 * 2 * 5 6 4
U2+V3=3 U4 =1 V4=2 U2 S2 7 4 * 3 * 5 9
U3+V3=2 V5=5 U3 S3 2 3 2 * 3 * 6
U3+V4=3
U4+V4=3 U4 S4 7 6 5 3 * 6 *
U4+V5=6
51

Δij= ui + vj - cij pentru rute din afara


solutiei
V1 V2 V3 V4 V5
3 2 1 2 5
Δ13= u1 + v3 - c13=0+!-5=-4<0
D1 D2 D3 D4 D5
Δ14=0+2-6=-4<0
Δ15=0+5-4=1>0 U1=0 S1 3 *- 2+ * 5 6 4
Δ21=2+3-7=-2<0
Δ24=2+2-5=-1<0 U2=2 S2 7 4 -* 3 * 5 9
Δ25=2+5-9=-2<0 +
Δ31=1+3-2=2>0
U3=1 S3 2 + 3 2 * 3 6
Δ32=1+2-3=0
- *
Δ35=1+5-6=0
Δ41=1+3-7=-3<0
Δ42=1+2-6=-3<0 U4=1 S4 7 6 5 3 6 *
Δ43=1+1-5=-2<0 *
Max(1,2)=2 deci ruta (3,1)
intra in solutie
52

V1 V2 V3 V4 V5
Min(30,15, 10)=10 3 2 1 2 5
D1 D2 D3 D4 D5
Solutia noua este: U1=0 S1 - 15 - - -
X12=15
X22=5 U2=2 S2 - 5 20 - -
X23=20
X31=10
U3=1 S3 10 - 20 15
X33=20
X34=15
X44=15 U4=1 S4 15 40
X45=40 iar ceilalti Xij=0
Iar costul afferent ei este 500.
Se va testa optimalitatea noii
solutii.

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