Sunday, November 26, 2017

Optimizarea transporturilor

Optimizarea transporturilor a fost, este și va fi o problemă în care informatica are multe de spus. Optimizarea transporturilor a fost o provocare în anii de început ai informaticii pentru că la transportul:
- sfeclei de zahăr către fabricile de prelucrare se punea minimizarea cheltuielilor de transport;
- produselor petroliere prin conducte se punea scăderea costurilor contaminării;
- materialelor de construcție se punea problema rutelor optime prin alegerea de străzi;
- mărfurilor de același tip produse de fabrici prin plan cu costuri de transport minime.
În realitate a defini o problemă de transport înseamnă a specifica:
- sursele de unde pleacă produsele;
- numărul de tipuri de produse;
- cantitățile de produse pe fiecare tip;
- destinațiile pe tipuri de produse;
- tipurile de mijloace de transport;
- definirea de rute imposibile prin costuri infinite;
- costurile unitare de transport pe tip de produs și tipul  mijlocului de transport.
Ceea ce se învață la școală la Cercetări operaționale și era implementat prin programul TRANSPOR - numeci atât era permis la un moment dat să fie lungimea numelui de fișier cu text sursă, implementa un caz particular de problemă de transport definită prin:
- N sursede unde pleacă produsele;
- un singur tip de produse;
- cantitățile care pleacă de la surse;
- M destinații unde trebuie să ajungă produsele;
- un singur tip de mijloace de transport;
- cantitățile de la sursăt egale cu cantitățile de la destinație;
- definirea de rute imposibile prin costuri infinite;
- costurile unitare de transport.
Mi-a plăcut teza de doctorat elaborată de Dorina MOANȚĂ, coordonată de profesorul Eugen ȚIGĂNESCU, intitulată  Modelarea cibernetico-economica a sistemelor de transport, susținută în  ASE București, în anul 1998, care avea 194 pagini. Autoarea tezei Dorina MOANȚĂ, a mai publicat articolul SOME ASPECTS ON SOLVING A LINEAR FRACTIONAL TRANSPORTATION PROBLEM  în revista JAQM - Journal of Applied Quantitative Methods, vol.2, nr.3, 2007, pg. 343 -348. Tot ea a scris și o carte despre problema de transport tridimensională care mi-a fost oferită cu autograf și în care autoarea a făcut o generalizare care a introdus încă o dimensiune în problema de transport în afara dimensiunii cantităților și dimensiunii costurilor.
În vremurile de demult, pentru a optimiza trebuiau date:
- sursele și cantitățile totale;
- destinațiile și cantitățile totale;
- costurile unitare de transport de la o sursă la destinațiile reale.
Unde nu se specificau costuri se considerau costuri infinite și acolo nu se transporta nimic căci nu exista rută de transport. Produsul software afișea:
- costul minim de transport;
- cantitățile optime de transportat indicând sursa și destinația;
- unele date tehnice privind rulările efectuate.
Am lucrat cu produsul TRANSPOR de la calculatorul FELIX C-256 făcut în Franța ani în șir și chiar mi-a fost util, nu numai la disciplina de Programe aplicative unde am lucrat 1.000 de ani și am încheiat în 1992. Mulți programatori s-au dat în bărci redescoperind roata prin a scrie câte un program propriu să-ți rezolve problemele lor de transport cu iz local, de parcă algoritmul din cărți avea o implementare la Cuca Măcăii, alta la Oarja și cu totul alta la Chiajna sau Ghimpați. Ca exercițiu de programare merită încercat, dar nu mai mult de atât. Știind că se lucrează cu matrice rare și că acestea sunt foarte drăguțe dacă sunt reprezentate prin structuri dinamice, o aventură n-ar strica având o bibliotecă de funcții care traversează astfel de matrice cu așa reprezentări. Și dacă este bal, bal să fie, se vor face și calcule legate de volumul de prelucrări și de necesarul de memorie, ca tacâmul să fie complet.
Am o poveste cu o implementare proastă a problemei de transport care funcționează perfect dar fără reoptimizări.
Era vorba de transportul sfeclei de zahăr.
Se producea zahăr în Ț fabrici de ani de zile cu un anumit cost de transport.
Fiind transport cu tractoare și remorci și un singur tpodus, unuia i-a venit ideia să implementeze o optimizare, dar fiind superficial n-a ținut seama de o situație reală.
S-a obținut soluția optimă.
Au început transporturile. Din întâmplare s-au efectuat transporturile cu costuri unitare peste medie.  O fabrică de zahăr a avut probleme tehnologice și și-a întrerupt producția pentru o lună. Sfecla nu așteaptă și a fost preluată de alte fabrici numai că trasportul s-a făcutcu:
- tractorul până la vagoane de tren, încărcare, descărcare, ăncărcare;
- trenul, descărcare, încărcare în remorci;
- tractorul la fabrică, descărcare și pus pe banda transportoare.
Așa că soluția așa-zisă optimă prin realctualizare s-a dovedit catastrofală. Morala: înainte de optimizare simplistă trebuie analiză realistă, altfel totul se compromite.
Acum problema de transport este și mai importantă căci firmele de curierat rapid folosesc și problema ruceacului dar și rute optime.







(25 noiembrie 2017)

No comments:

Post a Comment