Laborator 06: Rezolvarea problemelor de optimizare a
transportului Obiective - Modalitile de analiz cu ajutorul instrumentului Solver - Utilizarea Solver pentru rezolvarea problemelor de minimizare, maximizare, programare liniar - Generarea rapoartelor de analiz 6.1. Concepte de baz Problemele complexe depind de mai multe variabile i din acest motiv analiza cu ajutorul instrumentului de analiz Goal Seek nu este adecvat. Modelele de simulare necesit intrri / ieiri multiple precum i restricii asupra unora dintre valorile de intrare sau asupra rezultatului. n aceste condiii, analiza unui rezultat prin modificarea valorilor din una sau mai multe celule se poate face utiliznd instrumentul Solver. 6.2. Solver Instrumentul Solver nu face parte din instalarea standard i din acest motiv nainte de a putea fi utilizat acesta trebuie instalat. Operaia de instalare implic parcurgerea etapelor: 1. Din meniul Tools se alege comanda Add-Ins ceea ce determin apariia casetei de dialog cu acelai nume. 2. Se selecteaz opiunea Solver Add-in. 3. Se selecteaz butonul [OK] iar ca efect Solver va aprea n meniul Tools.
Cu ajutorul Solver-ului se pot rezolva de probleme de programare liniar i neliniar precum probleme de maximizare, probleme de transport, probleme de amestec, probleme de minimizare a costurilor etc. Pentru utilizarea instrumentului Solver sunt necesare urmtoarele: 1. Se construiete foaia de calcul i se stabilesc celulele care conin variabilele de intrare i rezultatul. 2. Se selecteaz din meniul Tools comanda Solver ceea ce determin apariia casetei de dialog Solver Parameters (figura 6.1).
2 / 7 - SIM - Laborator 06
Figura 6.1. Caseta de dialog Solver Parameters
n caseta text Set Target Cell se specific celula care conine formula (aceast celul trebuie s conin o formul) cu rezultatul care trebuie analizat (funcia obiectiv). n seciunea Equal To se alege ce se urmrete pentru funcia obiectiv: Max dac trebuie maximizat, Min dac trebuie minimizat iar dac funcia obiectiv trebuie s ating o anumit valoare se selecteaz opiunea Value of iar n caseta text alturat se introduce valoarea respectiv. n caseta text By Changing Cells se vor specifica celulele sau domeniul de celule pe care Solver-ul le va modifica pentru a obine valoarea optim. n mod concret se precizeaz celulele care pot fi modificate astfel nct restriciile din problem sunt satisfcute i pn cnd celula, din caseta Set Target Cell, i atinge inta. Celulele ajustabile trebuie s se afle n relaie direct sau indirect (printr-o relaie matematic) cu celula int. Selectarea butonului [Guess] determin gsirea (ghicirea) tuturor celulelor fr formule la care se refer formula din caseta Set Target Cell i plaseaz referinele n zona By Changing Cells. Lista Subject to the Constraints va conine sau afieaz restriciile curente ale problemei. Pentru a aduga o restricie se selecteaz butonul [Add] iar pe ecran apare fereastra Add Constraint (figura 6.2) n care se pot introduce restriciile problemei.
Pentru a stabili o restricie: n caseta text Cell Reference se va specifica celula care conine formula pe care se bazeaz restricia Se alege din lista cu operatori operatorul dorit pentru restricii n caseta de text Constraint introduce valoarea restriciei ce trebuie respectat sau adresa celulei ce conine valoarea Selectarea butonului [Add] permite introducerea altor restricii Pentru a reveni n caseta de dialog anterioar, Solver Parameters, se selecteaz butonul [OK]. Restriciile introduse anterior vor fi afiate n lista Subject to the Constraints 3. Dup selectarea butonului Solve aplicaia va ncepe efectuarea calculelor pentru gsirea soluiilor optime. Dup gsirea unei soluii, pe ecran apare caseta de dialog Solver Results (figura 6.3).
Figura 6.3. Caseta de dialog Solver Results Dac se alege opiunea Keep Solver Solution, programul pstreaz n foaia de calcul soluia calculat iar dac se selecteaz opiunea Restore Original Values, se va reveni la valorile iniiale din foaia de calcul. Pentru sintetizarea rezultatelor gsite, instrumentul Solver permite elaborarea a trei tipuri de rapoarte: Answer - n care sunt prezentate valorile iniiale i finale pentru celula rezultat i celulele care conin variabilele de intrare Sensitivity - n care este prezentat o analiz de senzitivitate a variabilelor de intrare (modalitatea de variaie a rezultatului n funcie de modificrile variabilelor de intrare) Limits - se specific ntre ce limite pot varia limitele impuse n restricii, astfel nct rezultatul final s nu se modifice. Pentru a crea un raport se selecteaz tipul din lista Reports din caseta Solver Results. Pentru a selecta mai multe rapoarte din list acestea se selecteaz cu tasta <Ctrl> apsat. Programul va crea fiecare raport ntr-o foaie de calcul separat. 4 / 7 - SIM - Laborator 06
Rezumat Aceast lucrare prezint modalitile de lucru cu instrumentul de analiz Solver. Exerciii Exerciiul 1 O companie dispune de trei fabrici n localitile A, B, C. Produsele realizate n aceste fabrici sunt distribuite din localitile S i P. Compania analizeaz posibilitatea de amplasare a unui nou depozit n localitatea R. Analizele, anterior efectuate, au stabilit urmtoarele costuri de transport, prezentate n tabelul 6.1. Tabelul 6.1. Costuri de transport Fabrica Depozit S P R A 10 14 8 B 12 10 12 C 8 12 10
Capacitile de producie la fabricile din localitile A, B, C sunt de 20, 30 respectiv 40 uniti pe sptmn. Se estimeaz c depozitul din localitatea R va absolvi 20 de uniti pe sptmn iar cele din S i P, 40 respectiv 30 de uniti pe sptmn Se cere s se determine modul de distribuie a produselor la depozite astfel nct costurile de transport s fie minime. Petru rezolvarea problemei se fac urmtoarele notaii: x1 - numrul de produse transportate de la fabrica A la depozitul S x2 - numrul de produse transportate de la fabrica A la depozitul P x3 - numrul de produse transportate de la fabrica A la depozitul R x4 - numrul de produse transportate de la fabrica B la depozitul S x5 - numrul de produse transportate de la fabrica B la depozitul P x6 - numrul de produse transportate de la fabrica B la depozitul R x7 - numrul de produse transportate de la fabrica C la depozitul S x8 - numrul de produse transportate de la fabrica C la depozitul P x9 - numrul de produse transportate de la fabrica C la depozitul R Restriciile modelului sunt: 1. x1 + x2 + x3 <= 20 (producia din fabrica A s nu depeasc capacitatea de producie) 5 / 7 - SIM - Laborator 06
2. x4 + x5 + x6 <= 30 (producia din fabrica B sa nu depeasc capacitatea de producie) 3. x7 + x8 + x9 <= 40 (producia din fabrica C sa nu depeasc capacitatea de producie) 4. x1 + x4 + x7 >= 20 (numrul de produse transportate n depozitul A s fie mai mare dect cererea la depozitul respectiv) 5. x2 + x5 + x8 >= 40 (numrul de produse transportate n depozitul B s fie mai mare dect cererea la depozitul respectiv) 6. x5 + x6 + x9 >= 30 (numrul de produse transportate n depozitul C s fie mai mare dect cererea la depozitul respectiv)
Funcia obiectiv a modelului este minimizarea cheltuielilor de transport. Cheltuielile de transport sunt egale cu: 10 x1 + 14 x2 + 8 x3 + 12 x4 + 10 x5 + 12 x6 + 8 x7 + 12 x8 + 10 x9 Pentru rezolvarea problemei se introduc datele intr-o foaie de calcul astfel (figura 6.4):
Figura 6.4. Modul de rezolvare a problemei Celulele din domeniul C3:E5 vor conine variabilele modelului. La nceput aceste celule se vor completa cu date aleatoare (de exemplu, toate variabilele sunt egale cu 10). n urma rezolvrii problemei n aceste celule se va obine rezultatul. n celulele B3, B4, B5 se va calcula producia total realizat n fiecare fabric astfel: n B3 se va introduce formula =SUM(C3:E3) i aceasta se copiaz n celulele B4 i B5. n celulele C6, D6, i E6 se va calcula producia depozitat n fiecare depozit astfel: n celula C6 se va introduce formula =SUM(C3:C5) i apoi aceasta se va copia n celulele D6 i E6. Celulele B10, B11, B12 vor conine capacitile de producie la fabricile A, B i C, adic valorile 20, 30 i 40. 6 / 7 - SIM - Laborator 06
Celulele C13, D13, E13 vor conine capacitile celor trei depozite, adic valorile 20, 40 i 30. n domeniul C10:E12 se vor introduce cheltuielile de transport pe unitatea de produs de la fiecare fabric la fiecare depozit (n conformitate cu datele din tabelul 6.1). n celulele C15, D15, E15 se calculeaz cheltuielile de transport la fiecare depozit. n celula C15 se introduce formula =C3*C10+C4*C11+C5*C12 (numrul de produse transportate de la fabrica A la depozitul S * cheltuielile de transport + numrul de produse transportate de la fabrica B la depozitul S * cu cheltuielile de transport + numrul de produse transportate de la fabrica C la depozitul S * cheltuielile de transport.). Aceast formul se copiaz n celulele D15 i E15. n celula B15 se vor calcula cheltuielile cu transportul i n consecin n aceast celul se va introduce formula =SUM(C15:E15). Restriciile problemei pentru problema prezentat sunt: 1. B3 <= B10 (producia din fabrica A s nu depeasc capacitatea de producie) 2. B4 <= B11 (producia din fabrica B s nu depeasc capacitatea de producie) 3. B5 <= B12 (producia din fabrica c s nu depeasc capacitatea de producie) 4. C6 >= C13 (s nu existe rupere de stoc la depozitul S) 5. D6 >= D13 (s nu existe rupere de stoc la depozitul P) 6. E6 >= E13 (s nu existe rupere de stoc la depozitul R) 7. C3:E5 >= 0 (toate variabilele s fie numere pozitive) Dup ce foaia de calcul a fost configurat, din meniul Tools se selecteaz comanda Solver. Obiectivul problemei este minimizarea cheltuielilor totale de transport iar aceast valoare este calculat n celula B15. n consecin, n Set Target Cell se introduce B15. Funcia trebuie minimizat, i pentru acest lucru se va alege opiunea Min. Celulele care conin variabilele de intrare sunt n domeniu C3:E5, deci n zona By Changing Cells se specific domeniul C3:E5. n caseta Subject to the Constrains se introduc restriciile problemei: se selecteaz butonul [Add] n caseta Add constraints, n zona Cell Reference se specific celula B3 din lista cu operatori se selecteaz <= n caseta Constraint se specific celula B10 se selecteaz butonul [Add] n mod similar se introduc i celelalte restricii prezentate anterior. 7 / 7 - SIM - Laborator 06
Se selecteaz butonul Options, iar n caseta de dialog Solver Options se aleg opiunile Assume Linear Model i Assume Non Negative dup care se selecteaz butonul [OK]. n caseta de dialog Solver Parameters se selecteaz butonul [Solve]. n caseta Solver Results se selecteaz opiunea Keep Solver Solutions precum i cele trei rapoarte dup care se selecteaz butonul [OK]. Rezultatul obinut n urma analizei cu instrumentul Solver este: 20 de produse de la fabrica A la depozitul R, 30 de produse de la fabrica B la depozitul P, 20 de produse de la fabrica C la depozitul S, 10 de produse de la fabrica C la depozitul P 10 de produse de la fabrica C la depozitul R