EuroOffice Optimalizáló (Solver) 1. oldal
EuroOffice Optimalizáló (Solver) Az EuroOffice Optimalizáló egy OpenOffice.org bővítmény, ami gyors algoritmusokat kínál lineáris programozási és szállítási feladatok megoldására.
Szimplex módszer A szimplex módszer lineáris programozási feladatokat tud megoldani. Ezekben a feladatokban egy nem-negatív valós változókon értelmezett lineáris függvény (a célfüggvény) minimumát vagy maximumát keressük, miközben a függvény változói lineáris egyenlőtlenségek egy halmazának is meg kell, hogy feleljenek. A lineáris módszer használatához válassza az Eszközök menü EuroOffice Optimalizáló almenüjének Szimplex pontját. A megjelenő ablakban megadhatja a célfüggvény együtthatóit tartalmazó tartományt, a változó cellák tartományát, valamint a korlátozó feltételeket leíró tartományt. Amennyiben a párbeszédablak megnyitása előtt már kijelölt cellákat, a választott tartomány kerül az változó cellák mezőjébe ("Ezeket változtatva"). Ne feledje, hogy a változó cellák értékei a folyamat során felülíródnak! Ha a célfüggvénynek N darab változója van, a cél- és a változótartomány is N cella széles, és 1 sor magasságú lesz. Az egyenlőtlenségeket leíró tartomány N+2 cella széles és minden sor egy-egy egyenlőtlenséget ír le. Minden sor első N cellája egy a változó cellákon értelmezett elsőfokú polinom együtthatóit tartalmazza. Jobbról a második cella a reláció jelét tartalmazza. Ez lehet "<=", ">=", "=" vagy "==", a két utolsó ugyanúgy egyenlőséget jelöl. A jobb szélső cella egy konstanst (vagy egy a változó cellákat nem érintő képletet) tartalmaz.
Kvadratikus eljárás Az EuroOffice Optimalizáló ingyenes változata a kvadratikus eljárást nem tartalmazza. Csak a Professzionális változatban érhető el. A kvadratikus eljárás másodrendű optimalizálási feladatok megoldására használható. A feladat nagyon hasonlít a lineáris programozási feladathoz azzal a különbséggel, hogy a célfüggvény másodfokú is lehet. Itt egy nem-negatív valós változókon értelmezett másodfokú függvény (a célfüggvény) minimumát keressük, miközben a függvény változói lineáris egyenlőtlenségek egy halmazának is meg kell, hogy feleljenek. A kvadratikus módszer használatához válassza az Eszközök menü EuroOffice Optimalizáló almenüjének Kvadratikus eljárás pontját. A megjelenő ablakban megadhatja a célfüggvény első-, másodrendő és konstans együtthatóit tartalmazó tartományokat, a változó cellák tartományát, valamint a korlátozó feltételeket leíró tartományt. Amennyiben a párbeszédablak megnyitása előtt már kijelölt cellákat, a választott tartomány kerül az változó cellák mezőjébe. Ne feledje, hogy a változó cellák értékei a folyamat során felülíródnak! Ha N változója van a célfüggvénynek, a célfüggvény kvadratikus részét leíró tartomány N cella széles és N cella magas, a lineáris részt leíró tartomány N cella széles és 1 cella magas, a konstans részt pedig egyetlen cella írja le. A változó cellák tartománya N cella széles és 1 cella magas. Az egyenlőtlenségeket leíró tartomány N+2 cella széles és minden MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 2. oldal
sor egy-egy egyenlőtlenséget ír le. Minden sor első N cellája egy a változó cellákon értelmezett elsőfokú polinom együtthatóit tartalmazza. Jobbról a második cella a reláció jelét tartalmazza. A kvadratikus eljárás esetében ez csak "<=" lehet. A jobb szélső cella egy konstanst (vagy egy a változó cellákat nem érintő képletet) tartalmaz.
Nem-lineáris eljárás Az EuroOffice Optimalizáló ingyenes változata a nem-lineáris eljárást nem tartalmazza, ez csak a Professzionális változatban érhető el. A nem-lineáris eljárás nem-lineáris optimalizálási feladatok megoldására is használható. A feladat nagyon hasonlít a lineáris programozási feladathoz azzal a különbséggel, hogy a célfüggvény tetszőleges függvény lehet. Itt egy nem-negatív valós változókon értelmezett függvény (a célfüggvény) minimumát vagy maximumát keressük, miközben a függvény változói lineáris egyenlőtlenségek egy halmazának is meg kell, hogy feleljenek. A nem-lineáris módszer használatához válassza az Eszközök menü EuroOffice Optimalizáló almenüjének Nem-lineáris eljárás pontját. A megjelenő ablakban megadhatja a célfüggvényt (mint rendes, működő képletet) tartalmazó cellát, a változó cellák tartományát, valamint a korlátozó feltételeket leíró tartományt. Amennyiben a párbeszédablak megnyitása előtt már kijelölt cellákat, a választott tartomány kerül az változó cellák mezőjébe. Ne feledje, hogy a változó cellák értékei a folyamat során felülíródnak! A célfüggvény egy "=" jellel kezdődő, rendes OpenOffice.org képlet, mely a változó cellák változásaira reagál. Az OpenOffice.org-ban elérhető összes függvény használható, de ne feledjük, hogy az eljárás csak olyan folytonos függvényeken működik jól, melyek az argumentumok változásának hatására viszonylag egyenletesen változtatják értéküket (nem lépcsősen és nem kaotikusan). Ha N változója van a célfüggvénynek, a változó cellák tartománya N cella széles és 1 cella magas. A kezdeti értékek tartománya szintén N cella széles, és 1 cella magas. Mivel az algoritmus futásakor ezek lesznek az kiinduló értékek, ezért az egyenlőtlenségeket teljesíteniük kell. Ha a célfüggvénynek több lokális optimuma van, a helyes működéshez a kezdeti értékeket a globális optimum közelében igyekezzünk megválasztani. Egyszeri optimalizálás esetén választhatja ugyanazokat a cellákat változó celláknak és kezdeti értékeknek, de folyamatos optimalizálás esetén kezdeti értékek külön tartományban kell, hogy legyenek. Az egyenlőtlenségeket leíró tartomány N+2 cella széles és minden sor egy-egy egyenlőtlenséget ír le. Minden sor első N cellája egy a változó cellákon értelmezett elsőfokú polinom együtthatóit tartalmazza. Jobbról a második cella a reláció jelét tartalmazza. Ez lehet "<=", ">=", "=" vagy "==", a két utolsó ugyanúgy egyenlőséget jelöl. A jobb szélső cella egy konstanst (vagy egy a változó cellákat nem érintő képletet) tartalmaz.
Magyar módszer Az EuroOffice Optimalizáló ingyenes változata a magyar módszert nem tartalmazza. Csak a Professzionális változatban érhető el. A magyar módszer egy polinomidejű kombinatorikus optimalizáló eljárás a szállítási feladat megoldására. Az EuroOffice Optimalizálóval a következő jellegű feladatok oldhatók meg:
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 3. oldal
Vegyük a termelők és fogyasztók egy-egy csoportját. Minden termelő adott mennyiséget termel és minden fogyasztó adott mennyiséget fogyasztana. A termelők és fogyasztók száma természetesen eltérhet, a megtermelt és elfogyasztott termékek száma azonban biztos, hogy megegyezik. Egy költségfüggvény minden termelő-fogyasztó párhoz megadja egy darab termék elszállításának költségét. A feladat megoldásai olyan függvények, melyek megadják, hogy melyik termelőtől melyik fogyasztóhoz hány terméket szállítsunk úgy, hogy minden termelőtől elszállítunk minden terméket és minden fogyasztó pontosan annyi terméket kap, amennyit szeretne. A legalacsonyabb költségű ilyen függvényt keressük. (Ezek a függvények termelő-fogyasztó párokhoz számokat rendelnek, és az EuroOffice Professzionális Optimalizáló egy táblázatban fogja megjeleníteni a legalacsonyabb költségűt.) A magyar módszer használatához válasszuk az Eszközök menü EuroOffice Optimalizáló almenü Magyar módszer pontját. A megjelenő párbeszédablakban megadhatjuk a feladatot leíró tartományt, a megoldás helyét és az optimum helyét. Amennyiben a párbeszédablak megnyitása előtt már kijelöltünk cellákat, a választott tartomány kerül a feladat leírásának mezőjébe. Ha nem jelöltünk ki tartományt, a program megvizsgálja a kurzor környékén található cellákat és megpróbálja automatikusan megtalálni a feladatot leíró tartományt. A megoldás és az optimum helyéül megadott cellák tartalmát felül fogja írni a program! T termelő és F fogyasztó esetén a feladatot leíró tartomány T+1 cella magas és F+1 cella széles. (Nem kell figyelnie rá, hogy melyiket helyezi el vízszintesen és melyiket függőlegesen, mert a feladat szimmetrikus, de a súgóban ezt az elrendezést használjuk.) Az első sor első celláját figyelmen kívül hagyjuk. Az első sor többi cellájában azok a termékmennyiségek találhatók, amiket az egyes fogyasztók el akarnak fogyasztani. Az első oszlop többi cellájában azok a termékmennyiségek találhatók, amiket az termelők termelnek. A táblázat többi része a szállítás költségfüggvényét tartalmazza. Ha egy termelő és egy fogyasztó között a szállítás nem oldható meg, szám helyett a megfelelő cellába X-et kell írni. A megoldás helyéül egy T cella magas és F cella széles tartományt kell megadnunk. Ebbe a tartományba kerül a minimális költségű megoldás. A harmadik sor negyedik cellája például azt fogja megadni, hogy a harmadik termelőtől a negyedik fogyasztóhoz hány terméket kell szállítanunk. Ha nem vagyunk kíváncsiak a részletes megoldásra, csak a minimális költségre, adjunk meg egy cellát az optimum helyének, és itt a minimális költség fog megjelenni. Megadhatjuk mind a megoldás helyét, mind az optimum helyét, de egyiket el is hagyhatjuk.
Folyamatos optimalizáló Ha mindent beállítottunk, lehetőség van a feladat egyszeri megoldására vagy folyamatos optimalizálásra. A változó cellák mindkét esetben megváltoznak, de amennyiben a folyamatos optimalizálást választjuk, a célfüggvény együtthatóit és a korlátozó feltételek tartományát a program folyamatosan figyeli, és minden változás hatására újra elvégzi az optimalizációt és frissíti a változó cellákat. Ez különösen hasznos, ha gyorsan meg akarunk vizsgálni több különböző problémát. Ha a számolótáblát elmentjük, a folyamatos optimalizálókat vele mentjük, és ha egy olyan OpenOffice.org alkalmazásban töltjük be a fájlt, melyre telepítették az EuroOffice Optimalizáló bővítményt, a folyamatos optimalizáló újra működésbe fog lépni. MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 4. oldal
Ha egy folyamatos optimalizáló változó cellái vannak kiválasztva, amikor megnyitjuk az Optimalizáló párbeszédablakát, az optimalizáló értékei betöltődnek az ablak mezőibe. Ha folyamatos optimalizálót akarunk létrehozni olyan változó cellákon, amikhez már tartozik folyamatos optimalizáló, az EuroOffice Optimalizáló rá fog kérdezni, hogy felül kívánjuk-e írni az optimalizálót.
Optimalizálók kezelése Az EuroOffice Optimalizálók párbeszédablakban listázhatjuk, módosíthatjuk, és törölhetjük a folyamatos optimalizálókat. Arra is használhatjuk ezt az ablakot, hogy egy már létező optimalizálóból kiindulva készítsünk egy új, hasonló optimalizálót. Ehhez nyissunk meg szerkesztésre egy létező optimalizálót, állítsuk át, amit szeretnénk (a változótartományt, illetve magyar módszer esetén a feladatot leíró tartományt, mindenképpen meg kell változtatnunk), majd kattintsunk az OK gombra. Úgy is megnyithatunk egy folyamatos optimalizálót, hogy kiválasztjuk a változó celláinak tartományát (illetve magyar módszernél a feladatot leíró tartományt) és megnyitjuk a megfelelő párbeszédablakot. Törölni viszont nem tudunk így folyamatos optimalizálót.
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 5. oldal
Példafeladat 1 - Termelés optimalizálása Egy üzemben nadrágot, szoknyát és zakót szeretnénk gyártani. Három alapanyag áll rendelkezésre: 800 m szövet, 2600 db gomb és 1400 tekercs cérna. A késztermékek eladási ára nadrág esetén 40 euró, a szoknya esetében 30 Euró, a zakóé pedig 90. Miből mennyit kell gyártani, hogy a legnagyobb bevételt érjük el? Az anyagszükségletet lásd a táblázatban: Nadrág (x) Szoknya (y)
Zakó (z)
Alapanyagok
Szövet
1,2
0,8
2,4
800 méter
Gomb
4
2
7
2600 darab
Cérna
2
1
4
1400 tekercs
Eladási ár
40
30
90
maximum?
1. Készítsük el a matematikai modellt: Modell Szövet
1.2 x + 0.8 y + 2.4 z ≤ 800
Gomb 4.0 x + 2.0 y + 7.0 z ≤ 2600 Cérna 2.0 x + 1.0 y + 4.0 z ≤ 1400 Nyereség 40 x + 30 y + 90 z → max
2. Az EuroOffice (vagy az OpenOffice.org) Calcban készítsük el a következő táblázatot:
A sárga hátterű cellák az EuroOffice Optimalizálónak megadott, tetszés szerinti kezdőértékeket tartalmazzák.
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 6. oldal
3. Az Eszközök menüben válasszunk ki az EuroOffice Optimalizáló alatt egy eljárást. Jelen esetben válasszuk a Szimplex módszert.
4. Először azt dönthetjük el, hogy maximalizálni, vagy minimalizálni szeretnénk. Válasszuk a maximalizálást, mivel nyereségünket maximalizálni szeretnénk.
5. Válasszuk ki a célfüggvény együtthatóit.
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 7. oldal
6. Határozzuk meg a változó cellákat.
7. Adjuk meg a korlátokat.
8. Végül választhatunk az Egyszeri megoldás, valamint a Folyamatos megoldás között. Első esetben egyszerűen megoldódik a művelet, második esetben azonban a korábban beállított értékeket folyamatosan optimalizálja, a megoldást pedig automatikusan mindig fölülírja.
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 8. oldal
9. A megoldás a sárga cellákban látható, melyeket az Ezeket változtatva mezőben adtunk meg.
Most már jól látható, hogy csak szoknyákat kell gyártanunk.
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 9. oldal
Példafeladat 2 - logisztikai feladatok megoldása Tegyük fel, hogy egy élelmiszeráruház-lánc tulajdonosai vagyunk hat üzlettel. Az A, B, C és D üzletek kisebb forgalmat bonyolítanak, napi 200 liter tejet árusítanak, míg az E és az F napi 500 litert. Összesen tehát 4x200+2x500=1800 liter a szükségletünk. Három gazdaságból kell a tejet szállítani, természetesen eltérő árakon és szállítási költséggel. Az első gazdaság kapacitása 1000 liter, míg a másodiké és a harmadiké egységesen 400 liter. Az EuroOffice Optimalizálóval meghatározhatjuk, hogy melyik gazdaságból melyik üzletbe érdemes szállítani ahhoz, hogy költségünk a lehető legalacsonyabb legyen. Ennek menetét a következő táblázat mutatja be: 1. Készítsünk egy táblázatot a gazdaságok kapacitásával, az üzletek tejszükségletével, valamint 1 liter tejre vetítve minden gazdaság és minden üzlet közti költségekből. Amennyiben a szállítás egy gazdaságból egy adott üzletbe nem oldható meg, számérték helyett tegyünk egy "X"-et a szállító és a fogyasztó közti kapcsolat cellájába, mely a költségfüggvényünk meghatározásához szükséges.
2. Válasszuk ki az Eszközök menü EuroOffice Optimalizáló / Magyar módszer parancsát. 3. A megjelenő párbeszédablakban adjuk meg a feladathoz tartozó adattartományt. Ha az ablak megnyitásakor már kiválasztottuk a tartományt, automatikusan bekerül a Feladat leírása mezőbe. 4. Ezután adjuk meg azt a tartományt, ahol a megoldást szeretnénk megjeleníteni. Esetünkben ez egy 3-szor 6 cellás tartomány.
MultiRáció Kft. © 2001-2010 http://www.multiracio.com
EuroOffice Optimalizáló (Solver) 10. oldal
5. Nem kötelező, de megadhatunk egy cellát az optimalizált teljes költség megjelenítéséhez.
6. Az OK gomb megnyomására elkészül az optimalizálás:
MultiRáció Kft. © 2001-2010 http://www.multiracio.com