Sunteți pe pagina 1din 11

Probleme de transport

Unitatea de învăţare nr. 14


Probleme de transport.

Cuprins Pagina

Obiectivele unităţii de învăţare nr. 14 2


14.1 Probleme de transport 2
14.2 Lucrare de laborator 9
Lucrare de verificare – unitatea de învăţare nr. 14 10
Răspunsuri şi comentarii la întrebările din testele de autoevaluare 11
Bibliografie – unitatea de învăţare nr. 14 11

1
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

OBIECTIVELE unităţii de învăţare nr. 14


Principalele obiective ale Unităţii de învăţare nr. 14 sunt:

• Aplicarea algoritmului rezolvării problemelor de transport


• Transpunerea enunţului unei probleme practice în modelul
matematic necesar aplicării algoritmului problemei de transport

14.1 Probleme de transport

Problema de transport reprezintă un caz particular de model de programare liniară şi datorită


formei sale particulare, rezolvarea acesteia se face cu algoritmi specifici.
Presupunem că un produs este disponibil în m puncte (depozite, porturi, producători)
A1 , A2 ,..., Am în cantităţile a1 , a2 ,..., am unităţi de produs. Acest produs este cerut în alte n puncte
(consumatori, magazine) B1 , B2 ,..., Bn în cantităţile b1 , b2 ,..., bn unităţi de produs. Se cunosc costurile
unitare de transport de la fiecare centru producător la fiecare centru consumator în funcţie de distanţe,
mijloace de transport. Se notează cu cij costul unitar de transport de la Ai la B j .
Se pune problema să determinăm un plan de transport de la centrele producătoare la centrele
consumatoare astfel încât cantităţile necesare în centrele consumatoare să fie asigurate în cea mai mare
măsură, iar cheltuielile totale de transport să fie minime.

Bj B1 B2 .... Bn disponibil
Ai
A1 c11 c12 .... c1n a1
A2 c21 c22 .... c2n a2
: : : : : :
Am cm1 cm 2 .... cmn am
necesar b1 b2 .... bn

În condiţiile problemei ai > 0, b j > 0, cij ≥ 0 pot apărea situaţiile:


m n
1) Dacă ∑ ai = ∑ b j atunci spunem că problema este echilibrată;
=i 1 =j 1
m n
2) Dacă ∑ ai > ∑ b j , adică disponibilul este mai mare decât cererea, se adaugă o coloană, adică
=i 1 =j 1

un centru fictiv de consum Bn +1 , care să absoarbă diferenţa, iar toate costurile unitare de
transport pentru acest centru sunt nule.

2
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

m n
3) Dacă ∑ ai < ∑ b j , adică cererea totală este mai mare decât disponibilul, se adaugă o linie,
=i 1 =j 1

adică un depozit fictiv Am +1 , având diferenţă de resursă, iar toate costurile unitare de transport
de la acest depozit sunt nule.

Obiectivul problemei este minimizarea cheltuielilor totale de transport şi a penalităţilor plătite


consumatorilor.
Vom nota cu xij cantitatea de produs ce se transportă din depozitul Ai spre consumatorul B j .
Pentru calcularea cheltuielilor totale de transport, trebuie făcută suma produselor dintre cantităţile xij
expediate de la sursa Ai la destinaţia B j şi costurile unitare de transport cij .
Modelul matematic al problemei de transport echilibrate este:
 m n

 min( ∑∑ cij xij )


 =i 1 =j 1

 n
 ∑= xij a= i, i 1, m
(1)  j =1 ,
 m
 ∑= xij b= j, j 1, n
 i =1

 xij ≥ 0, i= 1, m, j= 1, n
şi este caracterizat de următoarele:
- este un model de programare liniară cu m+n restricţii şi m*n variabile;
m n
- numai m+n-1 restricţii sunt liniar independente datorită relaţiei ∑ ai = ∑ b j ceea ce înseamnă
=i 1 =j 1

că o soluţie admisibilă de bază a problemei conţine cel mult m+n-1 componente strict pozitive.
De aici, o soluţie admisibilă care conţine exact m+n-1 componente strict pozitive se numeşte
nedegenerată, iar în cazul în care conţine mai puţin de m+n-1, degenerată.
- sistemul de restricţii este compatibil adică totdeauna există cel puţin o soluţie admisibilă, de
ai b j
=
exemplu: xij m
= , i 1,=
m , j 1, n ;
∑ ai
i =1

- problema de transport admite soluţie optimă finită deoarece xij ≤ min{ai , b j } .

Rezolvarea problemei de transport are următoarele etape:


- determinarea unei soluţii admisibile de bază iniţială;
- testarea optimalităţii unei soluţii;
- îmbunătăţirea soluţiei.

Metode de determinare a unei soluţii admisibile de bază: Au la bază aceleaşi principii dar diferă
prin modul de alegere a ordinii în care se atribuie valori pozitive variabilelor x pq din bază.
Presupunem ca am ales x pq . I se atribuie valoarea x pq = min {a p , bq } . Avem trei cazuri:

3
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

1) a p < bq , deci x pq = a p şi toate celelalte variabile din linia p vor lua valoarea zero. Se înlocuieşte bq
cu b=
'
q bq − a p şi se alege altă variabilă de bază din tabela redusă (fără linia p).
2) a p > bq , deci x pq = bq şi toate celelalte variabile din coloana q vor lua valoarea zero. Se înlocuieşte
a p cu a=
'
p a p − bq şi se scoate din calcule coloana q.
3) a p = bq şi tabela se reduce la alegere cu linia p sau coloana q. Dacă de exemplu se suprimă linia p,
atunci bq devine zero. Se obţine o soluţie degenerată de bază.
Soluţia determinată cu ajutorul algoritmului expus este o soluţie de bază. Componentele nebazice
nu se completează în tabel cu zero, căsuţele corespunzătoare rămânând libere, pentru a nu se confunda
componentele nebazice cu eventualele componente bazice nule. Metoda generală este particularizată
prin fixarea unei reguli de alegere a variabilelor care intră în bază.
Metoda colţului de nord-vest: Regula după care se decide intrarea în bază a variabilelor este că la
fiecare pas al algoritmului intra în bază variabila situată în căsuţa din colţul de N-V al tabelei. Metoda
nu ţine seama de costurile unitare de transport, ci numai de cantităţile disponibile şi necesare.

Metoda elementului minim pe matrice: La fiecare pas al algoritmului intra în bază variabila x pq dacă
c pq = min {cij } . Rezultă de cele mai multe ori soluţii iniţiale mai bune, cu costuri totale de transport
i, j

mai mici, decât cele obţinute prin metoda colţului de N-V. Dacă la un moment dat există două sau mai
multe căsuţe cărora le corespunde acelaşi cost unitar minim de transport, o vom completa pe aceea
pentru care cantitatea ce urmează a fi transportată este mai mare.

Metoda elementului minim pe coloană: Începând cu prima coloană intră în bază variabila x p1 dacă
c p1 = min {ci1} până se satisface întreaga cerere a primului centru consumator. Se trece la coloana a
i

doua. Din coloana j intră în bază variabila x pj pentru care c pj = min {cij } .
i

Metoda distributiv-modificată de obţinere a soluţiei optime: Conform teoremei fundamentale a


dualităţii, o soluţie X a problemei de transport (1) va fi optimă odată cu soluţia modelului dual
corespunzător ei. Primelor m restricţii din problema primală le ataşăm variabilele duale ui , i = 1, m şi
următoarelor n restricţii variabilele duale v j , i = 1, n . Variabilele duale sunt oarecare pentru că ele
corespund unor ecuaţii în problema primală. Modelul dual se scrie sub forma:
 m n

 sup( ∑ a u
i i + ∑ bjv j )

=i 1 =j 1
 ui + v j ≤ cij
(2) 
 i 1,=
= m , j 1, n

 ui , v j oarecare

4
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

Introducând variabilele ecart de compensare, pentru a transforma inegalităţile în egalităţi, în cele m*n
restricţii ale dualei şi presupunând că X este o soluţie admisibilă de bază nedegenerată a modelului
primal, atunci din teorema ecarturilor complementare, variabilele ecart din modelul dual ce corespund
variabilelor strict pozitive din modelul primal, trebuie să fie nule, deci variabilele duale verifică
sistemul de ecuaţii: ui + v j = cij . Acesta este un sistem nedeterminat de m+n-1 ecuaţii cu m+n
necunoscute, care se rezolvă atribuind unei variabile o valoare arbitrară după care rezolvarea
sistemului va conduce la soluţia modelului dual.

Criteriul de introducere a unui vector în bază: A introduce un vector în bază înseamnă a face o căsuţă
care este liberă în vechea soluţie admisibilă de bază să devină căsuţă ocupată în noua soluţie admisibilă
de bază, îmbunătăţită.

Criteriul de eliminare a unui vector din bază: Se scrie mai întâi în matricea ce conţinea vechea soluţie,
o valoare θ (nedeterminată) în căsuţa ce urmează a fi ocupată, apoi pornind din aceasta căsuţa se
determină un circuit ale cărui vârfuri se află numai în căsuţe ocupate şi care merge alternativ pe linii şi
coloane. Vârfurile se marchează cu +,-,+,-,...începând cu căsuţa în care am trecut θ , indiferent de
sensul de parcurgere ales. Se determină valoarea lui θ ca fiind egală cu cea mai mică valoare marcată
cu -, pentru ca noua soluţie să aibă tot componente nenegative. Valoarea θ se adună la toate
componentele soluţiei marcate cu + şi se scade din toate componentele marcate cu -, celelalte
componente rămânând neschimbate. Componenta care a devenit zero iese din bază. Se obţine o nouă
soluţie admisibilă de bază, mai bună decât precedenta.

Exemplu:
B1 B2 B3 B4
A1 8 3 5 2 10
A2 4 1 6 7 15
A3 1 9 4 3 25
5 10 20 15 50

1) Se observă că adunând valorile de pe ultima linie şi de pe ultima coloană obţinem acelaşi


rezultat 50, ceea ce înseamnă că problema este echilibrată.
2) Se determină o soluţie iniţială de bază prin metoda colţului de N-V, astfel: colţul situat în N-V
este completat cu min(5,10)=5. Pe prima coloană, jos, se scade valoarea 5 şi rămâne 0 ,celelalte
căsuţe rămân necompletate, iar pe prima linie rămâne 5. Următorul colţ de N-V este pe linia 1
şi coloana 2 şi vom alege min(10,5)=5 şi aşa mai departe până se ajunge la ultima căsuţă de pe
linia 3 şi coloana 4 cu aceeaşi valoare de completat, şi anume, 15.

5 5 10 5 0
5 10 15 10 0
10 15 25 15 0

5
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

5 10 20 15 50
0 5 10 0
0 0

Putem calcula la acest moment costul pentru cazul soluţiei iniţiale de bază:
CI = 5 ⋅ 8 + 5 ⋅ 3 + 5 ⋅1 + 10 ⋅ 6 + 10 ⋅ 4 + 15 ⋅ 3 = 205
3) Se rezolvă sistemul liniar ui + v j =
cij pentru căsuţele ocupate, dând uneia dintre variabile o
valoare arbitrară, de obicei se consideră u1 = 0 şi se determină celelalte.

v1 v2 v3 v4 u1 + v1 =
u1 + v2 =
u1 5 5 10 u2 + v2 =
u2 5 10 15 u2 + v3 =
u3 10 15 25 u3 + v3 =
5 10 20 15 50 u3 + v4 =

4) Pentru variabilele nebazice, căsuţe neocupate, se calculează diferenţele ui + v j − cij . Dacă aceste
diferenţe sunt toate ≤ 0 , atunci soluţia obţinută este optimă şi problema s-a terminat. Dacă nu,
se determină cea mai mare valoare obţinută la calculul acestor diferenţe şi acolo unde a fost
găsită se va trece în tabel +.
u1 + v3 − c13 = 0 + 8 − 5 = 3
u1 + v4 − c14 =5 ⇒ x14
u2 + v1 − c21 =
2
u2 + v4 − c24 =−2
u3 + v1 − c31 =
2
u3 + v2 − c32 =−10
Deci, pe poziţia (1,4) se trece + şi de aici se începe formarea circuitului, x14 va fi noua variabilă de
bază şi prin construcţia circuitului vom vedea care valoare iese din bază.

v1 v2 v3 v4

u1 5 5 + 10
u2 5 10 15
u3 10 15 25
5 10 20 15 50

5) Pornind de la căsuţa marcată cu + şi mergând pe linii şi coloane obţinem elementele care


formează circuitul:+,5,5,10,10,15 şi marcăm valorile alternând semnele
+,-,+,-,+....
6
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

5 5- +
5+ 10-
10+ 15-

6) Pentru celulele marcate cu – se determină


cea mai mică valoare trecută în aceste căsuţe, adică min(5,10,15)=5 şi astfel se obţine θ = 5 .
7) Noua soluţie de bază se obţine scăzând θ din cantităţile căsuţelor marcate cu – şi adunând θ la
cantităţile căsuţelor notate cu + şi avem noul tabel:

5 5
10 5
15 10

Putem calcula acum costul CII = 5 ⋅ 8 + 5 ⋅ 2 + 10 ⋅1 + 5 ⋅ 6 + 15 ⋅ 4 + 10 ⋅ 3 = 180 care se observă ca este


mai mic decât costul pentru soluţia iniţială de bază.
8) Se reia algoritmul de la pasul 3 pentru noua soluţie:
3’) Se rezolvă sistemul:
u1 + v1 =8 u1 =0 ⇒ v1 =8
u1 + v4 =
2 v4 = 2
u2 + v2 =
1 u3 = 1

u2 + v3 =
6 v3 = 3
u3 + v3 =
4 u2 = 3
u3 + v4 =
3 v2 = −2
4’) Se calculează diferenţele:
u1 + v2 − c12 =−5
u1 + v3 − c13 =−2
u2 + v1 − c21 =
7
u2 + v4 − c24 =−2 5 5
10 5
u3 + v1 − c31 =8 ⇒ x31
+ 15 10
u3 + v2 − c32 =−10

x31 intră în bază

5- 5+
10 5

7
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

5’) Circuitul +,5,5,10 + 15 10-

6’) θ min(5,10)
= = 5.

7’) Noua soluţie:

10
CIII = 10 ⋅ 2 + 10 ⋅1 + 5 ⋅ 6 + 5 ⋅1 + 15 ⋅ 4 + 5 ⋅ 3 = 140
10 5
5 15 5

8’) Repetăm algoritmul:


3’’) Rezolvăm sistemul:
u1 + v4 =
2 u1 =0 ⇒ v4 =2
u2 + v2 =
1 v2 = −2
u2 + v3 =
6 u2 = 3

u3 + v1 =
1 v1 = 0
u3 + v3 =
4 v3 = 3
u3 + v4 =
3 u3 = 1
u1 + v1 − c11 =−8 < 0
u1 + v2 − c12 =−5 < 0
u1 + v3 − c13 =−2 < 0
4’’) Se calculează diferenţele:
u2 + v1 − c21 =−1 < 0
u2 + v4 − c24 =−8 < 0
u3 + v2 − c32 =−10 < 0
Se observa că toate diferenţele sunt negative, atunci putem spune că ultimul cost este costul optim, deci
CIII = 140 şi se obţine pentru:

8
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

x14 = 10
x22 = 10
x23 = 5
x31 = 5
x33 = 15
x34 = 5

14.2 Lucrare de laborator

Să se rezolve problema de transport:

B1 B2 B3 Disponibil
F1 6 8 3 60
F2 4 5 1 40
F3 2 7 9 100
Necesar 70 80 50

Notăm cu xij cantitatea de marfă din căsuţa (i, j ) . Atunci problema se transformă în:
min (6 x11 + 8 x12 + 3 x13 + 4 x21 + 5 x22 + x23 + 2 x31 + 7 x32 + 9 x33 )

 x11 + x12 + x13 ≤ 60
 x21 + x22 + x23 ≤ 40

 x31 + x32 + x33 ≤ 100

 x11 + x21 + x31 = 70
 x12 + x22 + x32 = 80

 x13 + x23 + x33 = 50
x ≥ 0
 ij
f = [6 8 3 4 5 1 2 7 9]
1 1 1 0 0 0 0 0 0  60 
   
0 0 0 1 1 1 0 0 0  40 
0 0 0 0 0 0 1 1 1 100 
A= ; b= .
1 0 0 1 0 0 1 0 0  70 
   
0 1 0 0 1 0 0 1 0  80 
0 1   50 
 0 1 0 0 1 0 0  
Astfel problema devine problemă de programare liniară. Soluţia este:
X: 10 50
40
70 30

f min = 780u.m.

9
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

Să se rezolve problemele de transport:

a) B1 B2 B3 B4 Disponibil
F1 7 3 5 8 30
F2 1 4 6 7 60
F3 2 6 1 5 50
F4 5 9 7 4 80
Necesar 30 55 70 60

b)
B1 B2 B3 B4 Disponibil
F1 6 5 4 9 35
F2 4 3 7 5 50
F3 2 6 7 5 55
F4 4 6 3 8 70
Necesar 25 70 90 85

De reţinut!
Paşii necesari aplicării algoritmului de rezolvare a problemelor de transport.

Test de autoevaluare
Să se rezolve problema:
B1 B2 B3 Disponibil
F1 4 1 3 60
F2 2 5 6 40
F3 1 7 4 100
Necesar 70 20 50

Lucrare de verificare la Unitatea de învăţare nr. 14


Să se rezolve problema:
B1 B2 B3 Disponibil
F1 3 8 3 60
F2 4 5 6 40
F3 9 7 4 60
Necesar 60 80 50

10
METODE NUMERICE – Curs şi aplicaţii
Probleme de transport

Răspunsuri şi comentarii la întrebările din testele de


autoevaluare
X: 20 40
40 f min = 250u.m.
70 10 20

Concluzii

Concurenţa din ce în ce mai dură care îşi face simţită prezenţa în toate
domeniile activităţii economice impune sistemelor de conducere o analiză cu
instrumente ştiinţifice a tuturor alternativelor existente, căutând acea variantă
de acţiune care să conducă la o activitate economică eficientă. Pe această linie
se înscrie şi activitatea din domeniul transporturilor, care are ca obiect de studiu
circulaţia mărfurilor şi ca obiectiv principal, accelerarea vitezei de circulaţie a
mărfurilor şi reducerea la maximum a cheltuielilor de transport, transbordare,
descărcare.

Bibliografie

1. Constantinescu Eliodor, Mihai Bogdan, Matlab. Caiet de laborator, Editura


Crizon, Constanţa, 2008
2. Pelican Elena, Analiză numerică. Complemente, exerciţii şi probleme.
Programe de calcul, Editura MatrixRom, Bucureşti, 2006

11
METODE NUMERICE – Curs şi aplicaţii