|
Problemele de transport apar frecvent in situatiile in care trebuie planificat modul de distribuire al bunurilor de la producatori la consumatori. Obiectivul obisnuit al acestor probleme este minimizarea costurilor de transport. Modelele de transport sunt o variatie a problemelor de programare liniara si presupun urmatoarele:
Obiectivul este minimizarea costurior totale de transport.
Costurile de transport sunt functii liniare in raport cu numarul de unitati transportate.
Cererea si oferta sunt exprimate in unitati omogene.
Costurile de transport pe unitate nu variaza cu cantitatea transportata.
Pentru a ilustra modul in care se pot rezolva problemele de transport prezentam urmatorul exemplu:
O companie dispune de trei fabrici si patru centre de distributie. Fabricile sunt plasate in Cluj, Bacau si Craiova. Capacitatile de productie ale fabricilor sunt:
Fabrica
Capacitate de productie (unitati)
5000
Bacau
6000
Craiova
2500
Total:
13.500
Centrele de distributie sunt plasate in Deva, Iasi, Bucuresti, Brasov. Cererea pentru produsele companiei in aceste centre este:
Centre de distributie
Cerere (unitati)
6000
Iasi
4000
Bucuresti
2000
Brasov
1500
Total:
13.500
Managementul ar dori sa determine cantitatea care ar trebui transportata de la fiecare fabrica la fiecare centru de distributie astfel incat costurile de transport sa fie minime.
Figura II.2.1 prezinta graficul cu cele 12 rute posibile. Un astfel de graf este numit graf de retea. Cercurile reprezinta nodurile retelei. Liniile care unesc nodurile se numesc arcuri. Fiecare punct de plecare si sosire este reprezentat printr-un nod, iar fiecare ruta posibila este reprezentata printr-un arc. In dreptul fiecarui nod este trecuta valoarea ofertei (pentru capacitatile de productie) sau a cererii (pentru centrele de distributie). Sensul de deplasare este indicat prin sageti. Costurile unitare de transport pentru fiecare ruta sunt prezentate in tabelul II.2.1 si pe fiecare arc din figura II.2.1.
Destinatie
Origine
1. Deva
2. Iasi
3. Bucuresti
4. Brasov
1. Cluj
3
2
7
6
2. Bacau
7
5
2
3
3. Craiova
2
5
4
5
Tabelul II.2.1 Costurile unitare de transport pe fiecare ruta
Figura II.2.1 Graful de retea atasat problemei
Pentru a rezolva problema de transport putem folosi programarea liniara. Vom utiliza variabile de decizie cu doi indici, primul indice indica nodul origine, al doilea nodul destinatie. Astfel xij indica numarul de unitati transportate de la fabrica i la centrul de distributie j.
Costul unitatilor transportate din Cluj este 3*x112*x127*x136*x14
Costul unitatilor transportate din Bacau este 7*x215*x222*x233*x24
Costul unitatilor transportate din Craiova este 2*x315*x324*x335*x34
Suma acestor costuri este costul total de transport, valoare care trebuie minimizata, deci functia obiectiv este:
Min (3*x112*x127*x136*x147*x215*x222*x233*x242*x315*x324*x335*x34)
In problemele de transport apar restrictii deoarece fiecare fabrica are o capacitate de productie limitata si fiecare centru de distributie are o anumita cerere. Fabrica din Cluj are o capacitate de productie de 5000 unitati. Numarul total de unitati transportate din fabrica de la Cluj este x11x12x13x14, deci restrictia asociata acestei fabrici este:
x11x12x13x14 5000
In mod similar pentru celelalte fabrici avem:
x21x22x23x24 6000 - pentru fabrica de la Bacau.
x31x32x33x34 2500 - pentru fabrica de la Craiova.
In cele patru centre de distributie, restrictia va fi data de faptul ca cererea la centrul respectiv trebuie sa fie egala cu cantitatile transportate aici.
x11x21x31x41 6000 - cererea la Deva
x12x22x32x42 4000 - cererea la Iasi
x13x23x33x43 2000 - cererea la Bucuresti
x14x24x34x44 1500 - cererea la Brasov
Combinand functia obiectiv cu restrictiile obtinem modelul pentru problema de transport:
Min (3*x112*x127*x136*x147*x215*x222*x233*x242*x315*x324*x335*x34)
x11x12x13x14 5000
x21x22x23x24 6000
x31x32x33x34 2500
x11x21x31x41 6000
x12x22x32x42 4000
x13x23x33x43 2000
x14x24x34x44 1500
xij 0, i1,2,3; j1,2,3,4
Foaia de calcul folosita pentru rezolvarea problemei este prezentata in figura II.2.2.
Figura II.2.2 Foaia de calcul atasata problemei
Datele problemei sunt introduse in domeniul A1:F8. Costurile de transport sunt continute in domaniul B5:E7, capacitatile de productie (oferta) in F5:F7, iar cererea din centrele de distributie in celulele B8:E8.
Elementele cheie care trebuie introduse in Excel sunt variabilele de decizie, functia obiectiv, partea stanga si partea dreapta a restrictiilor.
Variabilele de decizie
Celulele B17:E19 contin variabilele de decizie. Initial toate variabilele de decizie au valoarea 0.
Functia obiectiv
Pentru a calcula costul total, in celula C13 a fost introdusa formula SUMPRODUCT(B5:E7,B17:E19).
Partea stanga a restrictiilor
Celulele F17:F19 contin formulele pentru partea stanga a restrictiilor asociate capacitatilor de productie, iar celulele B20:E20 contin formulele pentru partea stanga a restrictiilor asociate cererii din centrele de distributie. Formulele utilizate sunt:
Celula F17: SUM(B17:E17). Se copieaza F17 in F18:F19.
Celula B20: SUM(B17:B19). Se copieaza B20 in C20:E20.
Partea dreapta a restrictiilor
Celulele H17:H19 contin partea dreapta a restrictiilor asociate capacitatilor de productie, iar celulele B22:E22 contin partea dreapta a restrictiilor asociate cererii din centrele de distributie. Aceste valori sunt introduse deja in datele initiale ale problemei, deci se vor utiliza formulele:
Se rezolva problema utilizand Solver-ul. Caseta de dialog Solver Parameters se completeaza ca in figura II.2.3. Optiunile selectate sunt Assume Linear Model si Assume Non-Negative.
Figura II.2.3 Caseta de dialog Solver
Solutia optima arata ca costul minim de transport este de 39500 u.m., iar in domeniul B17:E19 sunt afisate cantitatile care trebuie transportate pe fiecare ruta. Valoarea 0 indica ca pe ruta respectiva nu se transporta nimic.
In multe cazuri oferta totala nu este egala cu cererea totala. Daca oferta totala depaseste cererea totala nu este necesara nici o modificare in problema de programare liniara. Excesul de oferta va aparea ca o abatere in solutia problemei, iar aceste abateri pot fi interpretate ca oferta neutilizata sau cantitati netransportate.
Daca oferta totala este mai mica decat cererea totala modelul de programare liniara a problemei de transport nu are o solutie fezabila. Pentru rezolvarea problemei se creeaza o oferta fictiva astfel incat excesul de cerere sa fie satisfacut si se atribuie costurilor de transport din acest punct valoarea 0. In acest mod problema de programare liniara va avea solutie.
In unele probleme obiectivul este gasirea unei solutii care maximizeaza venitul sau profitul. Utilizand venitul sau profitul unitar in coeficientii functiei obiectiv, se va rezolva o problema de maximizare in locul uneia de minimizare. Modificarile nu afecteaza restrictiile.
Stabilirea unei rute de la fiecare nod origine la fiecare nod destinatie nu este intotdeauna posibila. Pentru a rezolva aceste situatii se elimina din graful de retea arcele respective, iar din modelul de programare liniara variabilele de decizie corespunzatoare. Pentru a face cat mai putine modificari in foaia de calcul, pentru aceste rute se stabilesc costuri foarte mari, astfel incat pe aceste rute se vor efectua transporuri doar daca nu exista alte solutii fezabile.
Pentru rutele cu capacitati limitate se introduc restrictii suplimentare. De exemplu, daca mijloacele de transport pe ruta Craiova Deva nu pot transporta mai mult de 1000 de unitati se va introduce restrictia x13 1000.
Modelul general de programare liniara al unei probleme de transport cu m puncte de origine si n puncte de destinatie este:
unde:
xij numarul de unitati transportate de la originea i la destinatia j
cij costul unitar de transport din originea i la destinatia j
si oferta sau capacitatea din originea i
dj cererea la destinatia j