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:

Problema clasic de transport
1. Problema transferului
2. Problema drumului de cost minim
3. Problema fluxului maxim
4. Problema fluxului maxim de cost minim
5. Probleme de flux dinamic
6. Problema cuplajului maxim
7. Problema de afectare
8. Problema de ordonanare
9. Problema comis voiajorului
10. 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. m = numrul de surse (furnizori);
2. n = numrul de destinatari (consumatori);
3. {A
i
, i = 1,...,m} = cantitile disponibile n fiecare surs;
4. {B
j
, j = 1,...,n} = cantitile necesare la fiecare surs;
5. {c
ij
, 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
Programarea liniar
Destinaii
Surse
C
1
C
2 C
n
F
1
c
11
c
12
c
1n
A
1
F
2
c
21
c
22
c
2n
A
2

F
m
c
m1
c
m2
c
mn
A
m
B
1
B
2 B
m
disponibil
necesar
Dac notm cu x
ij
cantitatea care va fi transportat de la sursa i la destinaia j atunci avem de
rezolvat problema:
( )

'


n 1,..., j m; 1,..., i 0 x
n 1,..., j B x
m 1,..., i A x
x c min
ij
j
m
1 i
ij
i
n
1 j
ij
m
1 i
n
1 j
ij ij
f
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 =



m
1 i
n
1 j
j
n
1 j
ij
m
1 i
i
B x A
= cerere total
De asemenea, condiia ca

n
1 j
j
m
1 i
i
B A
este i suficient, deoarece, n acest caz, se
verific uor c soluia

m
1 i
i
j i
ij
A
B A
x
este soluie admisibil.
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 x
ij
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:
(1)


>
n
1 j
j
m
1 i
i
B A
(2)


<
n
1 j
j
m
1 i
i
B A
(3)

n
1 j
j
m
1 i
i
B A
93
Bazele cercetrii operaionale
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.
Adugnd acest consumator la tabel, cu cererea egal cu

n
1 j
j
m
1 i
i
B A
, vom obine o problem 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
acest furnizor sunt 0. Adugnd acest furnizor la tabel, cu disponibilul egal cu

m
1 i
i
n
1 j
j
A B
, vom
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
1 i
n
1 j
j
n
1 j
ij
m
1 i
i
B x A
, n contradicie cu

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


>
m
1 i
n
1 j
j
n
1 j
ij
m
1 i
i
B x A
, n contradicie cu

n
1 j
j
m
1 i
i
B A
n concluzie, orice problem de transport este echivalent cu o problem de forma:
( )

'


n 1,..., j m; 1,..., i 0 x
n 1,..., j B x
m 1,..., i A x
x c min
ij
j
m
1 i
ij
i
n
1 j
ij
m
1 i
n
1 j
ij ij
f
unde

n
1 j
j
m
1 i
i
B A
care este forma standard a problemei de transport.
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 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
94
Programarea liniar
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 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0
1 1 1 1

Aceast matrice are m + n linii, m n 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:
( )
100
50 50 50 50
50 50 2

+

= 2% componente egale cu 1

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 ntr-
o problem de transport nu poate aprea dect varianta de optim finit, existnd ntotdeauna soluii
admisibile (aa cum s-a demonstrat mai sus) iar minimul 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 x
ij
cu
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 ntr-
un tabel asemntor celui n care sunt organizate datele problemei, fiecrei rute corespunzndu-i o
csu (i,j):
Destinaii
Surse
C
1
C
2 C
j C
n
F
1
A
1
95
m linii
n linii
n coloane
n coloane n coloane
m ori
ruta (i,j)
Bazele cercetrii operaionale
F
2
A
2

F
i
A
i

F
m
A
m
B
1
B
2 B
j B
m
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. Metoda nord vest;
2. Metoda minimului pe linii;
3. Metoda minimului pe coloane;
4. Metoda costului minim;
5. 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; ruta din colul stnga sus al tabelului
Metoda minimului pe linii ruta de cost minim de pe prima linie (dac
minimul este multiplu se ia prima din stnga)
Metoda minimului pe coloane ruta de cost minim de pe prima coloan (dac
minimul este multiplu se ia cea mai de sus)
Metoda costului minim ruta de cost minim din ntregul tabel (dac
minimul este multiplu se ia una la ntmplare)
Metoda diferenelor maxime 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
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 corespun-
ztor, 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,
96
Programarea liniar
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; cea mai apropiat ruta de ultima aleas dintre cele
neblocate nc;
Metoda minimului pe linii 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);
Metoda minimului pe coloane 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);
Metoda costului minim ruta de cost minim din ntregul tabel dintre cele
neblocate nc (dac minimul este multiplu se ia una
la ntmplare);
Metoda diferenelor maxime 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 F
i
o variabil u
i
i fiecrui consumator C
j
o variabil v
j
;
Pasul 2. Fiecrei rute (i,j) folosit n soluia actual i se asociaz ecuaia u
i
+ v
j
= c
ij
, rezultnd un
sistem cu m + n necunoscute (m de u
i
i n de v
j
) 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
= u
i
+ v
j
c
ij
pentru toate rutele care nu fac parte din soluie (ceilali
sunt 0, innd cont de felul cum au fost gsii u
i
, i = 1,...,m i v
j
, j = 1,...,n)
Pasul 5. Se analizeaz
ij
gsii.
dac toi sunt mai mici sau egali cu 0 soluia gsit este optim 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
97
Bazele cercetrii operaionale
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 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 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 s fie multiplu. Atunci, pe
toate rutele pe care se transporta 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 F
i
cantitatea
i
i s introducem un
consumator fictiv cu cererea egal cu +
2
+ ... +
m
, unde este o valoare foarte mic
(orict de mic este necesar). O alt variant este s adugm la fiecare furnizor F
i
cantitatea i i
s introducem un consumator fictiv cu cererea egal cu + 2 + ... + m , unde 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
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 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
i
(sau valoarea
i
ntr-o ordine dat
a valorilor). Dac, la un moment dat, prin anularea unui parametru introdus, soluia rmne
nedegenerat, acesta va fi anulat.
98
Programarea liniar
Exemplu: Presupunem c n rezolvarea problemei:
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
F1 2 4 5 3 7 8 9 3 5 7 3 8 1000
F1 3 5 6 7 5 4 3 5 5 6 3 6 700
F1 2 4 5 3 6 7 4 5 7 4 6 7 400
F1 3 4 2 6 8 4 6 7 4 7 8 3 900
F1 3 5 6 4 7 8 3 5 6 9 3 6 400
F1 2 4 6 3 7 8 9 4 6 2 4 2 400
F1 3 5 2 6 7 8 9 5 3 6 7 3 700
F1 9 4 5 3 6 2 7 8 9 4 7 5 400
F1 8 3 4 2 6 3 7 8 3 7 4 8 800
800 300 600 400 500 200 700 300 200 600 600 500
s-a ajuns la soluia de baz:
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
F1 200 500 200 900
F2 200 500 700
F3 300 500 800
F4 200 800 1000
F5 400 400
F6 100 300 400
F7 300 100 400
F8 100 300 400
F9 400 300 700
400 300 200 200 500 600 700 500 600 600 800 300
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 F
1
gsim consumatorii C
4
, C
5
i C
7
, pentru acetia furnizorii F
5
i F
8
,
pentru acetia noul consumator C
12
i am gsit prima grup:
consumatorii {C
4
, C
5
, C
7
, C
12
} se aprovizioneaz de la furnizorii {F
1
, F
5
, F
8
}
Apoi, pentru F
2
gsim consumatorii C
3
i C
10
, pentru acetia furnizorul F
7
, pentru acesta noul
consumator C
6
, pentru acesta noul furnizor F
3
, pentru acesta noul consumator C
8
i am gsit a doua
grup:
consumatorii {C
3
, C
6
, C
8
, C
10
} se aprovizioneaz de la furnizorii {F
2
, F
3
, F
7
}
A treia grup va fi, evident: {C
1
, C
2
, C
9
, C
11
} se aprovizioneaz de la furnizorii {F
4
, F
6
, F
9
}
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 F
5
i
consumatorul C
6
cantitatea suplimentar iar la furnizorul F
3
i consumatorul C
9
cantitatea
suplimentar , cu < de exemplu, obinnd problema perturbat:
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
F1 200 500 200 900
F2 200 500 700
F3 300 500 800+
F4 200 800 1000
F5 400 400+
F6 100 300 400
F7 300 100 400
F8 100 300 400
F9 400 300 700
99
Bazele cercetrii operaionale
400 300 200 200 500 600
+
700 500 600
+
600 800 300
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 L
l
, L
2
,..., L
n
trebuiesc executate ct mai repede. Acestea sunt efectuate
de persoanele (muncitorii) M
l
, M
2
,..., M
n
, fiecare putnd executa oricare din lucrrile date.
Cunoscnd timpul t
ij
de execuie al lucrrii L
i
de ctre muncitorul M
j
, scopul optimizrii este gsirea
acelui mod de repartizare a lucrrilor pe muncitori astfel nct timpul total de execuie al lucrrilor
s fie minim"
Pentru modelarea matematic a acestei probleme, cunoscut n literatura de specialitate sub
numele de "problema afectrii", se introduc variabilele bivalente:
x
ij
=

'

contrar caz n 0
M ui muncitorul a repartizat este lucrarea L daca 1
j i
Condiiile ca fiecare lucrare s fie repartizat unui muncitor precum i condiia ca fiecare
muncitor s primeasc o lucrare se traduc prin restriciile:
100
Programarea liniar

'

n j 1 1 x
n i 1 1 x
m
1 i
ij
n
1 j
ij
n care variabilele x
ij
satisfac cerina special:
x
ij
{0,1}
Obiectivul urmrit minimizarea timpului total de execuie conduce la urmtoarea funcie
obiectiv:
(min) f =

n
1 i
n
1 j
ij ij
x t
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) P
1
, P
2
, ..., P
n
care pot fi
realizate pe oricare din utilajele (grupele de utilaje) U
l
,U
2
,...,U
m
. Se cunosc urmtoarele date:
cantitile N
1
, N
2
,...,N
n
din reperele date, care trebuie produse ntr-o anumit
perioad;
fondurile de timp disponibil F
1
, F
2
,...,F
m
ale utilajelor, n perioada respectiv;
cantitatea P
ij
din reperul P
j
ce poate fi produs pe utilajul U
i
ntr-o anumit perioad
de timp;
costul c
ij
al realizrii unei uniti specifice din reperul P
j
pe utilajul U
i
.
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:
( )

'


0 x
n j 1 N x
m i 1 F x
P
1
x c min
ij
j
m
1 i
ij
i
n
1 j
ij
ij
m
1 i
n
1 j
ij ij
f
101
Bazele cercetrii operaionale
unde x
ij
reprezint cantitatea de repere P
j
ce urmeaz a fi realizat pe utilajul U
i
. 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" P
ij
.
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 w
i
un volum dat
de mrfuri expediate (exprimate, de pild, n tone), iar cu p
i
- un volum dat de mrfuri care se aduc
n decursul unei anumite perioade n portul i (i = 1, 2,..., n). Se cunosc distanele s
ij
dintre porturi
(exprimate, de pild, n kilometri), acestea fiind date n matricea:
S =

,
`

.
|
0 s s
s 0 s
s s 0
n2 n1
2n 21
1n 12

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

,
`

.
|
0 x x
x 0 x
x x 0
n2 n1
2n 21
1n 12

Y =

,
`

.
|
0 y y
y 0 y
y y 0
n2 n1
2n 21
1n 12

atunci necunoscutele problemei sunt mrimile y


ij
(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 (y
ij
x
ij
),
deci mrimea capacitii de transport neutilizate pe toate traseele (n tone kilometri) va reprezenta:
102
Programarea liniar
f =
( )



n
1 i
n
1 j
ij ij ij
x y s
Problema examinat const n a gsi minimul acestei funcii
Condiiile auxiliare pe care trebuie s le satisfac necunoscutele y
ij
pot fi notate sub forma
urmtoarelor ecuaii:

'

n j 1 p y
n i 1 w y
j
n
1 i
ij
i
n
1 j
ij
Primele n ecuaii arat c tonajul total al navelor trimise dintr-un port oarecare i n toate
celelalte porturi trebuie s fie egal cu w
i
iar ultimele n c tonajul total al navelor sosite ntr-un port
oarecare j din toate celelalte porturi trebuie s fie egal cu p
j
.
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
1 j
j
n
1 i
i
p w
, adic tonajul total al navelor care pleac din toate porturile este egal cu tonajul
total al navelor care sosesc n toate porturile. ntruct problema are (n
2
n) necunoscute y
jj
(i,j = l,
2,...,n), dar exist 2n 1 ecuaii de echilibru independente, numrul gradelor de libertate (numrul
variabilelor secundare) va fi (n
2
n) (2n 1) = n
2
3n + 1.
n afar de relaiile de echilibru exist i condiiile de nenegativitate:
y
ij
x
ij
0
condiia y
ij
x
ij
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 y
ij
. Aceast
problem poate fi uor transformat ntr-un model de programare neliniar dac, de pild, n locul
distanei s
ij
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