Sunteți pe pagina 1din 12

Programarea liniar

PROBLEMA CLASIC DE TRANSPORT


Problema clasic de transport face parte din clasa mult mai larg a problemelor modelate
prin reele de transport. O reea de transport modeleaz o situaie economic n care, dintr-un
anumit numr de puncte, numite surse, trebuie transportat o cantitate dintr-o anumit substan,
ntr-un alt numr de puncte, numite destinaii. Situaia extrem de general de mai sus poate fi apoi
concretizat ntr-un numr deosebit de mare de moduri, specificnd dac exist sau nu puncte
intermediare ntre surse i destinaii, modul n care se face transportul (care sunt rutele posibile,
costul transportului, limite minime i/sau maxime pentru cantitatea transportat pe fiecare rut,
timpul necesar transportului), scopurile urmrite etc. Din aceast cauz exist o multitudine de
probleme care implic reele de transport, dintre acestea putnd aminti:
1. Problema clasic de transport
2. Problema transferului
3. Problema drumului de cost minim
4. Problema fluxului maxim
5. Problema fluxului maxim de cost minim
6. Probleme de flux dinamic
7. Problema cuplajului maxim
8. Problema de afectare
9. Problema de ordonanare
10. Problema comis voiajorului
11. Problema arborelui de cost minim
n continuare o vom detalia pe prima dintre acestea.
Caracteristicile unei probleme de transport clasice sunt:
1. fiecare surs aprovizioneaz cel puin o destinaie i fiecare destinaie este aprovizionat de
la cel puin o surs;
2. pot exista perechi surs-destinaie ntre care nu se poate face transfer (rute blocate);
3. nu exist limitri n ceea ce privete cantitatea transportat pe fiecare rut;
4. se cunosc cantitile disponibile n fiecare surs i cantitile necesare n fiecare destinaie;
5. fiecrei rute i s-a asociat un cost care nu depinde de sensul de parcurgere.
Scopul problemei este gsirea acelor cantiti care trebuie transportate pe fiecare rut astfel
nct s se asigure necesarul fiecrei destinaii, n limitele cantitilor aflate la surse, cu costul
minim posibil.
Datele problemei sunt:
1.
2.
3.
4.
5.

m = numrul de surse (furnizori);


n = numrul de destinatari (consumatori);
{Ai, i = 1,...,m} = cantitile disponibile n fiecare surs;
{Bj, j = 1,...,n} = cantitile necesare la fiecare surs;
{cij, i = 1,...,m; j = 1,...,n} = costurile unitare pe fiecare rut (costul transportrii unei
uniti de msur de la sursa i la destinaia j).

Acestea au fost organizate ntr-un tabel ca cel de mai jos:

92

Bazele cercetrii operaionale


Destinaii
Surse
F1
F2

Fm

C2

Cn

c11 c12
c21 c22


cm1 cm2

}
}

}

c1n
c2n

cmn

B1

Bm

C1

B2

A1
A2

Am
disponibil
necesar

Dac notm cu xij cantitatea care va fi transportat de la sursa i la destinaia j atunci avem de
rezolvat problema:
m

min f

ij

x ij

i 1 j 1

n
i 1,..., m
x ij d A i
j1
m

j 1,..., n
x ij t B j
i 1

x ij t 0
i 1,..., m; j 1,..., n

care este un caz particular de problem de programare liniar.


ntr-o prim analiz, se observ imediat c problema nu are soluii admisibile dac
disponibilul total este mai mic dect cererea total. Matematic, afirmaia de mai sus este justificat
prin relaiile obinute prin adunarea primelor m restricii i apoi a ultimelor n:

disponibil total =

Ai t

i 1

Ai B j
m

x ij t

= cerere total

j 1

A t B
i 1

verific uor c soluia x ij

i 1 j 1

De asemenea, condiia ca

este i suficient, deoarece, n acest caz, se

j 1

este soluie admisibil.

i 1

n alt ordine de idei, chiar dac disponibilul total este mai mare dect cererea total, este
clar c se va transporta doar necesarul, deoarece transportarea unei cantiti mai mari dect
necesarul va duce la un cost suplimentar, n contrast cu scopul urmrit. Matematic, unei soluii n
care una din ultimele n restricii ar fi verificat strict, i corespunde o soluie n care am sczut
cantitatea suplimentar din valorile variabilelor implicate n restricie, care este de asemenea
admisibil (aceste variabile nu apar n alte restricii dintre ultimele n, iar primele m vor fi cu att
mai mult verificate dac xij scad) i care este evident mai bun, dnd un cost mai mic.
n concluzie, dac exist soluie optim, se va transport exact cantitatea cerut.
Totui, n practic se poate ntlni oricare din cele trei cazuri:
m

(1)

i 1

Ai !

j 1

93

Programarea liniar
m

(2)

Ai 

i 1

(3)

A B
i

i 1

j 1

j 1

n primul caz, problema are soluie optim, iar cantitatea n exces fa de cerere va rmne la
furnizori, fiind reprezentat de variabilele de abatere din primele m restricii. Aceste cantiti pot fi
privite ca nite cereri ale unui consumator fictiv i innd cont c, de fapt, aceste cantiti nu sunt
transportate nicieri, costurile unitare pe rutele care ar lega furnizorii de acest consumator sunt 0.
m

Adugnd acest consumator la tabel, cu cererea egal cu

Ai 

i 1

, vom obine o problem

j 1

de tipul (3).
Analog, n al treilea caz, chiar dac disponibilul este mai mic dect necesarul, nu nseamn
c nu se va mai transporta nimic, ci doar c unora dintre consumatori nu li se va satisface toat
cererea. Aceast cerere nesatisfcut poate fi privit ca disponibilul unui furnizor fictiv i innd
cont c, de fapt, aceast cantitate nu exist, costurile unitare pe rutele care ar lega consumatorii de
n

B A

acest furnizor sunt 0. Adugnd acest furnizor la tabel, cu disponibilul egal cu

j 1

, vom

i 1

obine o problem de tipul (3).


n concluzie, orice problem poate fi transformat ntr-o problem de tipul (3). Dei acest
caz este foarte rar n practic, el este cel mai simplu din punct de vedere matematic i va fi ales
pentru formalizarea problemei. O astfel de problem se numete problem de transport
echilibrat.
De asemenea, este uor de vzut c, pentru o problem de transport echilibrat, toate
soluiile admisibile verific toate restriciile cu egal. Astfel, dac mcar una din primele m restricii
ar fi verificat cu "<" atunci am avea prin nsumare:
m

A ! x t B
i

i 1

ij

i 1 j 1

, n contradicie cu

A B
i

i 1

j 1

j 1

iar dac mcar una din ultimele n restricii ar fi verificat cu ">" atunci am avea prin nsumare:
m

A t x ! B
i

i 1

ij

i 1 j 1

, n contradicie cu

j 1

A B
i

i 1

j 1

n concluzie, orice problem de transport este echivalent cu o problem de forma:

min f

ij

x ij

i 1 j 1

n
x ij A i
i 1,..., m
j 1
unde
m

j 1,..., n
x ij B j
i 1

x ij t 0
i 1,..., m; j 1,..., n

care este forma standard a problemei de transport.

94

i 1

Ai

B
j 1

Bazele cercetrii operaionale


Rezolvarea problemei de transport

Este evident c problema de transport la forma standard este o problem de programare


liniar la forma standard, dar, la fel de evident este i faptul c este o problem de programare care
devine foarte repede uria (un exemplu practic obinuit cu, de exemplu, 50 de furnizori i 50
consumatori, va duce la un tabel simplex de 100 u 2500, i sunt cazuri i cu mii de furnizori i
consumatori), motiv pentru care algoritmul simplex sub forma clasic nu este aplicabil. Cum s-a
vzut ns, exist i metode prin care se poate reduce mult volumul de calcule (vezi algoritmul
simplex revizuit). n plus, datele problemei de transport au o structur cu totul deosebit, n
matricea A a sistemului, toate componentele fiind 1 sau 0, din care 0 sunt mult mai muli. Din acest
motiv este natural s cutm un algoritm special pentru problema de transport care s se foloseasc
la maximum caracteristicile acesteia.
Pentru ilustrarea celor de mai vom scrie matricea A desfurat:
1

m linii 0

0
1
0
n linii 0

0

1
0

0
0
1
0

0

1
0

0
0
0
1

0











n coloane

1
0

0
0
0
0

1

0
1

0
1
0
0

0

0
1

0
0
1
0

0

0
1

0
0
0
1

0











0
0
1  0


0
1
0
1
0
0
0  0


1
0

n coloane

0
0

1
0
1
0

0

0
0

1
0
0
1

0











0
0

1
0
0
0

1

n coloane

m ori
Aceast matrice are m + n linii, mn coloane i deci (m + n)mn componente din care doar
2mn sunt 1, restul fiind 0. O problema cu 50 furnizori i 50 consumatori va avea doar un procent de:
2 50 50
100 = 2% componente egale cu 1
50  50 50 50
Observnd c suma primelor m linii minus suma ultimelor n este 0, rezult c liniile matricii
sunt liniar dependente, deci rangul lui A este mai mic dect m + n. Se poate gsi ns un minor de
dimensiune m + n 1 cu determinantul diferit de 0 (cititorul l poate gsi singur), deci o baz a unei
probleme de transport are dimensiunea m+n1 i o soluie de baz are cel mult m+n1 componente
diferite de 0 (o soluie nedegenerat are deci m+n1 componente diferite de 0). Preferarea
soluiilor nedegenerate se face din acelai motiv ca i la algoritmul simplex i anume evitarea
ciclrii (la problema de transport este mult mai important acest aspect deoarece soluiile de baz ale
acesteia sunt, n general, puternic degenerate).
nainte de a da algoritmul pentru rezolvarea problemei de transport, trebuie remarcat c ntro problem de transport nu poate aprea dect varianta de optim finit, existnd ntotdeauna soluii
admisibile (aa cum s-a demonstrat mai sus) iar minimul f nu este posibil, innd cont c avem de
minimizat o funcie liniar cu toi coeficienii pozitivi pe o mulime de soluii cu toate
componentele pozitive.
Ca i n algoritmul simplex, rezolvarea problemei de transport se face n dou etape:
Etapa 1. Gsirea unei soluii iniiale de baz

Deoarece fiecare variabil corespunde unei rute (este cantitatea transportat pe aceast rut)
iar fiecare rut corespunde unei perechi furnizor-consumator, vom identifica fiecare variabil xij cu
95

Programarea liniar
ruta (i,j). A gsi o soluie de baz nedegenerat este echivalent cu a gsi cel mult m+n1 rute, din
cele mn posibile, pe care s transportm toat cantitatea disponibil. Rutele vor fi organizate ntrun tabel asemntor celui n care sunt organizate datele problemei, fiecrei rute corespunzndu-i o
csu (i,j):
Destinaii
C1
Surse
F1
F2

Fi

Fm
B1

C2 }

B2 }

Cj

Bj

Cn

Bm

ruta (i,j)

A1
A2

Ai

Am
disponibil
necesar

Spre deosebire de algoritmul simplex, gsirea unei soluii iniiale de baz nu este dificil. De
fapt, este att de uor de gsit o astfel de soluie, nct exist o multitudine de metode n acest scop,
care ncearc nu numai gsirea acesteia, ci chiar gsirea uneia ct mai bun. Vom expune dintre
acestea:
1.
2.
3.
4.
5.

Metoda nord vest;


Metoda minimului pe linii;
Metoda minimului pe coloane;
Metoda costului minim;
Metoda diferenelor maxime;

Cu toate c sunt foarte multe, toate metodele urmeaz o schem comun:


Pasul 1. Se alege o rut iniial dup o anumit regul. Aceast regul difer n funcie de metoda
folosit, fiind:

Metoda nord vest;


Metoda minimului pe linii

Metoda minimului pe coloane

Metoda costului minim

Metoda diferenelor maxime

ruta din colul stnga sus al tabelului


ruta de cost minim de pe prima linie (dac
minimul este multiplu se ia prima din stnga)
ruta de cost minim de pe prima coloan (dac
minimul este multiplu se ia cea mai de sus)
ruta de cost minim din ntregul tabel (dac
minimul este multiplu se ia una la ntmplare)
1. Pentru fiecare linie i fiecare coloan se
calculeaz diferena dintre cele mai mici dou
costuri ale rutelor acesteia (diferena poate fi
i 0 dac minimul este multiplu) i se gsete
maximul dintre aceste diferene;
2. Dintre toate rutele de pe liniile i coloanele
corespunztoare acestui maxim se alege ruta
de cost minim (dac minimul este multiplu se
ia una la ntmplare)

Pasul 2. Se transport pe aceast rut maximul posibil. Acest maxim este egal cu minimul dintre
cantitatea care mai e disponibil la furnizorul corespunztor acestei rute i cantitatea care
mai e necesar la consumatorul corespunztor rutei, n momentul alegerii acestei rute. Se
96

Bazele cercetrii operaionale


transport n acest fel pentru ca s se foloseasc ct mai puine rute i deci s se obin o
soluie de baz.
Pasul 3. Dup folosirea unei rute este clar c fie se epuizeaz disponibilul furnizorului corespunztor, fie se asigur ntregul necesar al consumatorului corespunztor, fie ambele. Dac se
epuizeaz disponibilul furnizorului este clar c nici o rut care pleac de la acesta nu va
mai fi folosit i analog, dac se asigur ntregul necesar al consumatorului, nici o rut
spre acesta nu va mai fi folosit. Rutele care nu vor mai fi folosite se numesc rute blocate,
sunt cele nefolosite nc de pe linia sau /i coloana ultimei rute folosite i se evideniaz n
tabel prin haurarea acestora.
Pasul 4. Se alege urmtoarea rut, folosind regula:

Metoda nord vest;

Metoda minimului pe linii

Metoda minimului pe coloane

Metoda costului minim

Metoda diferenelor maxime

cea mai apropiat ruta de ultima aleas dintre cele


neblocate nc;
ruta de cost minim de pe prima linie pe care mai sunt
nc rute neblocate (dac minimul pe aceasta este
multiplu se ia prima din stnga);
ruta de cost minim de pe prima coloan pe care mai
sunt nc rute neblocate (dac minimul pe aceasta
este multiplu se ia cea mai de sus);
ruta de cost minim din ntregul tabel dintre cele
neblocate nc (dac minimul este multiplu se ia una
la ntmplare);
se repet procedeul de la pasul 1 pentru rutele
neblocate nc.

Pasul 5. Se reia algoritmul de la pasul 2 pn cnd nu mai rmne nici o rut nefolosit sau
neblocat.

Se observ c, dac prima metod este pur geometric, neinnd cont de costurile rutelor,
toate celelalte ncearc s micoreze ct mai mult costul ntregului transport. Cu toate c, statistic
vorbind, ultima metod este cea mai bun, ea dnd de foarte multe ori chiar soluia optim, totui i
existena celorlalte metode este justificat de faptul c sunt mai simplu de aplicat i exist cazuri n
care fiecare d soluia cea mai bun.

Etapa 2. Gsirea soluiei optime

Algoritmul care urmeaz reprezint algoritmul simplex pentru o problem de minim, aplicat
n cazul particular al problemei de transport.
Pasul 1. Se asociaz fiecrui furnizor Fi o variabil ui i fiecrui consumator Cj o variabil vj;
Pasul 2. Fiecrei rute (i,j) folosit n soluia actual i se asociaz ecuaia ui + vj = cij, rezultnd un
sistem cu m + n necunoscute (m de ui i n de vj) i m + n 1 ecuaii (egal cu rangul
matricii A);
Pasul 3. Se gsete o soluie particular a acestui sistem, egalnd una din necunoscute cu 0 (pe cea
care apare de cele mai multe ori);
Pasul 4. Se calculeaz toi 'ij = ui + vj cij pentru toate rutele care nu fac parte din soluie (ceilali
sunt 0, innd cont de felul cum au fost gsii ui, i = 1,...,m i vj, j = 1,...,n)
Pasul 5. Se analizeaz 'ij gsii.

97

Programarea liniar
 dac toi sunt mai mici sau egali cu 0 soluia gsit este optim o STOP
 dac exist 'ij strict pozitivi atunci soluia actual nu este optim i ruta
corespunztoare lui 'ij maxim va fi cea care intr n baz (dac maximul este multiplu
se ia una la ntmplare)
Pasul 6. Se construiete un circuit, pornind din aceast rut, trecnd doar prin rutele soluiei,
mergnd doar pe vertical sau orizontal i fiecare trecere de la o rut la alta fcndu-se
doar perpendicular pe trecerea anterioar. S-a demonstrat c exist un singur circuit cu
aceste proprieti i se poate demonstra uor c trece printr-un numr par de rute.
Pasul 7. ncepnd cu + din ruta care va intra n baz se noteaz alternativ cu "+" i "" rutele
circuitului;
Pasul 8. Se noteaz cu T minimul dintre cantitile transportate pe rutele notate cu "" i ruta
pentru care s-a obinut acest minim este cea care va iei din baz (cazul minimului
multiplu va fi analizat dup expunerea algoritmului);
Pasul 9. Se scade T din cantitile transportate pe rutele notate cu "" i se adaug la cele notate
cu "+", rutele care nu sunt pe circuit pstrndu-i valoarea;
Pasul 10. Se reia algoritmul de la pasul 2

Aa cum s-a vzut mai sus, se poate ca la pasul 8 minimul T s fie multiplu. Atunci, pe toate
rutele pe care se transporta T nu se va mai transporta nimic, adic vor disprea din soluie. Cum n
soluie a intrat doar o singur rut rezult c noua soluie este degenerat. Cum existena acestui tip
de soluii poate duce la ciclarea algoritmului, au fost imaginate mai multe metode de evitare, toate
bazndu-se pe modificarea datelor iniiale, n aa fel nct, pe parcursul algoritmului, s nu mai
avem nici o soluie degenerat. Aceast modificare (perturbare) poate fi fcut chiar de la nceputul
rezolvrii, nct problema s nu mai aib nici o soluie degenerat, fie doar atunci cnd apare o
soluie degenerat, eliminnd perturbaia imediat ce nu mai e necesar. Pentru a vedea cum trebuie
s arate o astfel de modificare, dm urmtoarea teorem care caracterizeaz existena soluiilor
degenerate:
Teorem. O problem de transport are soluii degenerate dac i numai dac exist o
submulime strict i nevid a furnizorilor i o submulime strict i nevid a consumatorilor astfel
nct suma disponibilurilor furnizorilor din prima submulime este egal cu suma cererilor
consumatorilor din a doua.
Lem. Soluia este degenerat de k ori dac i numai dac mulimea furnizorilor i a
consumatorilor se pot partiiona n k submulimi )1, )2, ..., )k i :1, :2 ,..., :k astfel nct
consumatorii din fiecare clas :i se aprovizioneaz numai de la furnizorii din clasa )i.

n concluzie, dac vrem s dispar toate soluiile degenerate, trebuie modificate


disponibilurile i cererile n aa fel nct s nu mai poat exista varianta din teorem. Una din
metodele posibile este s adugm la fiecare furnizor Fi cantitatea Hi i s introducem un consumator
fictiv cu cererea egal cu H + H2 + ... + Hm, unde H este o valoare foarte mic (orict de mic este
necesar). O alt variant este s adugm la fiecare furnizor Fi cantitatea iH i s introducem un
consumator fictiv cu cererea egal cu H + 2H + ... + mH, unde H este de asemenea o valoare foarte
mic (orict de mic este necesar). Se pot gsi, evident, i altele variante.
Aceast metod este foarte bun n cazul rulrii problemei pe calculator, dar, n cazul
rezolvrii cu creionul pe hrtie, este, evident, greoaie.
n acest caz vom folosi varianta n care introducem perturbaia doar cnd este nevoie (adic
cnd apare o soluie degenerat). Aceast situaie poate aprea fie chiar la soluia iniial, n urma
aplicrii uneia din metodele de gsire ale unei soluii iniiale, fie la pasul 8 din a doua etap dac T
98

Bazele cercetrii operaionale


se obine pentru mai multe rute. Rmne de vzut doar cum trebuie fcut aceast perturbare.
Conform teoremei de mai sus rezult c mulimea furnizorilor i a consumatorilor se pot
partiiona n k submulimi )1, )2, ..., )k i :1, :2 ,..., :k astfel nct consumatorii unei clase :i se
aprovizioneaz numai de la furnizorii din clasa )i i reciproc. Pentru fiecare indice i d k1 vom
alege o rut care corespunde unui furnizor din )i i unui consumator din :i+1 i vom aduga la
furnizorul i consumatorul corespunztori acesteia cantitatea Hi (sau valoarea Hi ntr-o ordine dat a
valorilor). Dac, la un moment dat, prin anularea unui parametru introdus, soluia rmne
nedegenerat, acesta va fi anulat.
Exemplu: Presupunem c n rezolvarea problemei:
F1
F1
F1
F1
F1
F1
F1
F1
F1

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12


2
4
5
3
7
8
9
3
5
7
3
8
3
5
6
7
5
4
3
5
5
6
3
6
2
4
5
3
6
7
4
5
7
4
6
7
3
4
2
6
8
4
6
7
4
7
8
3
3
5
6
4
7
8
3
5
6
9
3
6
2
4
6
3
7
8
9
4
6
2
4
2
3
5
2
6
7
8
9
5
3
6
7
3
9
4
5
3
6
2
7
8
9
4
7
5
8
3
4
2
6
3
7
8
3
7
4
8
800 300 600 400 500 200 700 300 200 600 600 500

1000
700
400
900
400
400
700
400
800

s-a ajuns la soluia de baz:


C1
F1
F2
F3
F4
F5
F6
F7
F8
F9

C2

C3

C4 C5
200 500

C6

C7
200

C8

C9

C10

C11

C12

900
700
300
500
800
200
800
1000
400
400
100
300
400
300
100
400
100
300 400
400
300
700
400 300 200 200 500 600 700 500 600 600 800 300
200

500

care este dublu degenerat. Aceasta nseamn c mulimea furnizorilor i consumatorilor pot fi
partiionate fiecare n trei grupe. Pentru a le gsi vom porni de la un furnizor, vom gsi
consumatorii care se aprovizioneaz de la acesta, apoi furnizorii care aprovizioneaz aceti
consumatori i tot aa pn vom gsi prima grup din fiecare (furnizori i consumatori). Pentru cei
rmai din fiecare vom continua procedeul pn vom gsi toate grupele.
n cazul nostru pentru F1 gsim consumatorii C4, C5 i C7, pentru acetia furnizorii F5 i F8,
pentru acetia noul consumator C12 i am gsit prima grup:
 consumatorii {C4, C5, C7, C12} se aprovizioneaz de la furnizorii {F1, F5, F8}
Apoi, pentru F2 gsim consumatorii C3 i C10, pentru acetia furnizorul F7, pentru acesta
noul consumator C6, pentru acesta noul furnizor F3, pentru acesta noul consumator C8 i am gsit a
doua grup:
 consumatorii {C3, C6, C8, C10} se aprovizioneaz de la furnizorii {F2, F3, F7}
A treia grup va fi, evident: {C1, C2, C9, C11} se aprovizioneaz de la furnizorii {F4, F6, F9}
Conform regulii de perturbare, vom alege o rut corespunztoare unui furnizor din prima
grup i unui consumator din a doua, de exemplu (5,6) i o rut corespunztoare unui furnizor din a
doua grup i unui consumator din a treia, de exemplu (3,9) i vom aduga la furnizorul F5 i
consumatorul C6 cantitatea suplimentar D iar la furnizorul F3 i consumatorul C9 cantitatea
suplimentar E, cu D < E de exemplu, obinnd problema perturbat:
99

Programarea liniar
C1
F1
F2
F3
F4
F5
F6
F7
F8
F9

C2

C3

C4 C5
200 500

C6

C7
200

C8

C9

C10

C11

C12

900
700
300
500 E
800+E
200
800
1000
400+D
D 400
100
300
400
300
100
400
100
300 400
400
300
700
400 300 200 200 500 600 700 500 600 600 800 300
+D
+E
200

500

care nu mai este degenerat.


Rmne ca exerciiu verificarea faptului dac aceast soluie este optim i dac nu, s se
gseasc soluia de baz succesoare.
Variante ale problemei de transport

Exist o gam foarte larg de fenomene economice care pot fi reprezentate prin modele de
programare liniar de tip transport sau foarte asemntoare cu acestea. Prezentm n continuare
cteva dintre acestea
1. Cu rute blocate

n anumite cazuri pot exista situaii n care anumite rute ntre furnizori i consumatori nu pot
fi folosite, cel puin temporar. Rezolvarea acestor probleme se face cu un model de transport
obinuit, n care rutelor interzise li se asociaz costuri unitare de transport foarte mari n raport cu
costurile rutelor utilizabile. Prin aceste costuri de penalizare foarte mari, algoritmul de optimizare
este "constrns" s ocoleasc rutele interzise.
2. Cu puncte intermediare

Exist situaii n care aprovizionarea consumatorilor nu se face direct de la furnizori ci prin


intermediul unor centre intermediare. De exemplu, cea mai mare parte a bunurilor produse pentru
consumul populaiei sunt mai nti colectate n mari depozite i apoi distribuite centrelor de
desfacere. Problema de optimizare cost n minimizarea cheltuielilor de transport de la furnizori la
centrele intermediare la care se adaug costul transportului de la aceste centre la consumatorii finali.
n anumite condiii aceast problem este echivalent cu dou probleme de transport
obinuite.
3. Problema afectrii

Exist probleme de programare operativ care pot fi reprezentate prin modele liniare de tipul
problemei de transport. Un exemplu des ntlnit este urmtoarea problem concret de programare
operativ a produciei:
"Un numr de lucrri Ll, L2,..., Ln trebuiesc executate ct mai repede. Acestea sunt efectuate
de persoanele (muncitorii) Ml, M2,..., Mn, fiecare putnd executa oricare din lucrrile date.
Cunoscnd timpul tij de execuie al lucrrii Li de ctre muncitorul Mj, scopul optimizrii este gsirea
acelui mod de repartizare a lucrrilor pe muncitori astfel nct timpul total de execuie al lucrrilor
s fie minim"

100

Bazele cercetrii operaionale


Pentru modelarea matematic a acestei probleme, cunoscut n literatura de specialitate sub
numele de "problema afectrii", se introduc variabilele bivalente:

1 daca lucrarea L i este repartizata muncitorului M j


xij =
0 n caz contrar
Condiiile ca fiecare lucrare s fie repartizat unui muncitor precum i condiia ca fiecare
muncitor s primeasc o lucrare se traduc prin restriciile:
n
x ij
j 1
m
x
ij

i 1

1 1d i d n

1 1d jd n

n care variabilele xij satisfac cerina special:


xij {0,1}
Obiectivul urmrit minimizarea timpului total de execuie conduce la urmtoarea funcie
obiectiv:
n

(min) f =

ij

x ij

i 1 j 1

Modelul rezultat difer de modelul problemei de transport echilibrate prin condiia impus
variabilelor de a fi doar 0 sau 1 (variabile bivalente). Totui rezolvarea sa se poate face cu
algoritmul de la problema de transport, ns ea este greoaie, datorit faptului c soluiile de baz ale
acestei probleme sunt puternic degenerate. Exist metode mai eficiente de abordare a problemei
afectrii, bazate pe teoria grafurilor.
4. Problema ncrcrii utilajelor

Fcnd parte din acelai cadru al programrii operative a produciei, problema ncrcrii
utilajelor (punctelor de lucru) ocup a poziie central. Aceast problem poate fi formulat astfel:
"ntr-o secie a unei uniti economice se produc reperele (bunurile) P1, P2, ..., Pn care pot fi
realizate pe oricare din utilajele (grupele de utilaje) Ul,U2,...,Um. Se cunosc urmtoarele date:
 cantitile N1, N2,...,Nn din reperele date, care trebuie produse ntr-o anumit perioad;
 fondurile de timp disponibil F1, F2,...,Fm ale utilajelor, n perioada respectiv;
 cantitatea Pij din reperul Pj ce poate fi produs pe utilajul Ui ntr-o anumit perioad de
timp;
 costul cij al realizrii unei uniti specifice din reperul Pj pe utilajul Ui.
Se dorete gsirea acelui mod de repartizare a sarcinilor de producie pe utilaje astfel nct
costul realizrii cantitilor planificate s fie minim."
Modelul matematic asociat acestei probleme este:

101

Programarea liniar

min f

ij

x ij

i 1 j 1

n 1
x ij d Fi

j 1 Pij
m

x ij N j
i 1

x ij t 0

1d i d m

1d jd n

unde xij reprezint cantitatea de repere Pj ce urmeaz a fi realizat pe utilajul Ui. Modelul este
asemntor modelului problemei de transport, pentru rezolvare putndu-se folosi algoritmul de la
problema clasic de transport, cu unele modificri dictate de prezena "ponderilor" Pij.
5. Problema de transport a lui Koopmans

Aceast problem este, istoricete vorbind, anterioar problemei clasice de transport i de ea


s-a ocupat pentru prima oar T. C. Koopmans.
Problema se refer la la transportul materialelor de rzboi, efectuate n perioada celui de-al
doilea rzboi mondial, din S.U.A. n Anglia i retur. ntruct cantitile de produse transportate n
cele dou sensuri erau diferite, navele circulau de multe ori goale sau incomplet ncrcate. Avnd n
vedere i faptul c transporturile pe mare ale aliailor se aflau sub ameninarea submarinelor i a
aviaiei germane se punea problema asigurrii unei asemenea utilizri a mijloacelor de transport
nct s se reduc la minimum capacitatea de transport neutilizat (msurat n tone-kilometri) i,
implicit, s se reduc pierderile de nave.
Dei problema de transport a lui Koopmans a avut un caracter tactico-militar, ea poate fi
considerat - dup cum a fcut mai trziu nsui Koopmans - i ca o problem economic.
Economic vorbind, reducerea capacitii de transport neutilizate a navelor mrete rentabilitatea
transporturilor maritime. Firete c am putea aplica o soluie optim a acestei probleme pe plan
mondial numai n cazul n care ar exista o form oarecare de administrate internional a navelor i
de dirijare a transporturilor maritime. Totui, se poate vedea c modelul lui Koopmans poate s-i
gseasc aplicarea nu numai la transportul maritim, ci i n transportul feroviar, n cel auto, precum
i n alte domenii similare.
Matematic, aceast problem se poate formula astfel:
"Fie n porturi din care se expediaz i n care sosesc ncrcturi. Notm cu wi un volum dat
de mrfuri expediate (exprimate, de pild, n tone), iar cu pi - un volum dat de mrfuri care se aduc
n decursul unei anumite perioade n portul i (i = 1, 2,..., n). Se cunosc distanele sij dintre porturi
(exprimate, de pild, n kilometri), acestea fiind date n matricea:

S = s 21

s n1

s 12
0

s n2

 s 1n
 s 2n

 
 0

Dac xij reprezint volumul efectiv de mrfuri care urmeaz s fie transportate din portul i n
portul j, iar yij - capacitatea de ncrcare a vaselor care circul din portul i in portul j date, de
asemenea, sub forma unor matrici:

102

Bazele cercetrii operaionale


0

X = x 21

x n1

x 12
0

x n2

 x 1n
 x 2n

 
 0

Y = y 21

y n1

y 12
0

y n2

 y 1n
 y 2n

 
 0

atunci necunoscutele problemei sunt mrimile yij (i,j = 1, 2,..., n), adic capacitile de ncrcare a
navelor ce vor fi trimise din portul i n portul j.
Funcia obiectiv f va stabili mrimea "transporturilor goale", adic mrimea tonajului
neutilizat al navelor. Mrimea tonajului neutilizat pe traseul dintre portul i i portul j va fi (yij xij),
deci mrimea capacitii de transport neutilizate pe toate traseele (n tone kilometri) va reprezenta:
n

f=

s y
ij

ij

 x ij

i 1 j 1

Problema examinat const n a gsi minimul acestei funcii


Condiiile auxiliare pe care trebuie s le satisfac necunoscutele yij pot fi notate sub forma
urmtoarelor ecuaii:
n
y ij w i 1 d i d n
j1
n

y ij p j 1 d j d n

i1

Primele n ecuaii arat c tonajul total al navelor trimise dintr-un port oarecare i n toate
celelalte porturi trebuie s fie egal cu wi iar ultimele n c tonajul total al navelor sosite ntr-un port
oarecare j din toate celelalte porturi trebuie s fie egal cu pj.
Trebuie menionat c - ntocmai ca n problema de transport - dintre cele n + n ecuaii de
echilibru, numai (2n - 1) ecuaii sunt independente. Aceasta se explic prin faptul c
n

w p
i

i 1

, adic tonajul total al navelor care pleac din toate porturile este egal cu tonajul

j 1

total al navelor care sosesc n toate porturile. ntruct problema are (n2 n) necunoscute yjj (i,j = l,
2,...,n), dar exist 2n 1 ecuaii de echilibru independente, numrul gradelor de libertate (numrul
variabilelor secundare) va fi (n2 n) (2n 1) = n2 3n + 1.
n afar de relaiile de echilibru exist i condiiile de nenegativitate:
yij t xij t 0
condiia yij t xij nseamn c tonajul vaselor care pleac din portul i spre portul j trebuie s fie mai
mare sau egal cu cantitatea de mrfuri care urmeaz a fi transportat pe acest traseu."
Aceasta este formularea matematic a modelului lui Koopmans. Din aceast formulare se
vede c modelul lui Koopmans este o problem de programare liniar, deoarece att funcia
obiectiv, ct i ecuaiile de echilibru sunt relaii liniare n raport cu necunoscutele yij. Aceast
problem poate fi uor transformat ntr-un model de programare neliniar dac, de pild, n locul
distanei sij ntre porturi, introducem cheltuielile de transport cu meniunea c aceste cheltuieli nu
cresc direct proporional, ci mai lent dect distanele. Aceasta problem poate fi uor nlocuit
printr-o problem dual, lund ca funcie obiectiv rentabilitatea total a tuturor transporturilor pe
plan mondial. n acest caz, problema de minimizare a tonajului neutilizat al navelor ar fi nlocuit
printr-o problem de maximizare a rentabilitii totale a transporturilor.
103