SOLVER, AZ MS EXCEL OPTIMALIZÁLÓ ESZKÖZE

Hasonló dokumentumok
Optimumkeresés számítógépen

EuroOffice Optimalizáló (Solver)

Matematikai modellek megoldása számítógéppel Solver Lingo

Feltételes és feltétel nélküli optimalizálás Microsoft O ce EXCEL szoftver segítségével

3. előadás. Termelési és optimalizálási feladatok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Lineáris programozási feladat megoldása Microsoft O ce EXCEL szoftverrel

SZÁMÍTÁSOK A TÁBLÁZATBAN

Táblázatkezelés 5. - Függvények

Tartalom. Matematikai alapok. Fontos fogalmak Termékgyártási példafeladat

Növényvédő szerek A B C D

Rácsvonalak parancsot. Válasszuk az Elsődleges függőleges rácsvonalak parancs Segédrácsok parancsát!

1.1.1 Dátum és idő függvények

Ismertető A Solver telepítése, illetve indítása A Solver célcella módosuló cellák A feltételek általában a módosuló cellákra hivatkozó képletek.

Tantárgyfelosztás. I. Ellenőrzés. Mielőtt hozzákezd a tantárgyfelosztás tervezéséhez, ellenőrizze le, illetve állítsa be a következőket:

Az MS Excel táblázatkezelés modul részletes tematika listája

I-SZÁMLA KFT. VEVŐI FELHASZNÁLÓI FIÓK HASZNÁLATI ÚTMUTATÓ

Óranyilvántartás (NEPTUN)

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

Növényvédő szerek A B C D

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

Dokumentum létrehozása/módosítása a portálon:

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

A feladat megoldása során a Microsoft Office Excel használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni:

Microsoft Excel 2010

12 48 b Oldjuk meg az Egyenlet munkalapon a következő egyenletrendszert az inverz mátrixos módszer segítségével! Lépések:

Nemlineáris programozás 2.

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai as verzió használatával

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

EGYENES ILLESZTÉSE (OFFICE

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

A Szoftvert a Start menü Programok QGSM7 mappából lehet elindítani.

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Függvények II. Indítsuk el az Excel programot! A minta alapján vigyük be a Munka1 munkalapra a táblázat adatait! 1. ábra Minta az adatbevitelhez

Feladatok megoldásai

Diagram létrehozása. 1. ábra Minta a diagramkészítéshez

Aromo Szöveges Értékelés

Közfoglalkoztatás támogatás megállapítását segítő segédtábla használati útmutatója

Meglévő munkafüzet megnyitása, mentése új néven

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Hasonlóságelemzés COCO használatával

Tanulmányi eredmények exportálasa (KIR)

SZÁMÍTÓGÉPES ADATFELDOLGOZÁS

Fatömegbecslési jegyzőkönyvek

S Z Á L L Í T Á S I F E L A D A T

EGYÜTT AZ EGÉSZSÉGÉRT! A NETFIT FEJLESZTÉSI IRÁNYAINAK BEMUTATÁSA AZ ADAPTÁLT NETFIT -HEZ TOVÁBBFEJLESZTETT INFORMATIKAI RENDSZER BEMUTATÁSA

Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés

XY DIAGRAMOK KÉSZÍTÉSE

Diagram készítése. Diagramok formázása

Aromo Szöveges értékelés kódolt tantárggyal

A szimplex algoritmus

Oktatási segédanyag. Weboldalszerkesztési gyakorlatok

POSZEIDON dokumentáció (1.2)

Excel. Nem összefügg tartomány kijelölése: miután a tartomány els részét kijelöltük, lenyomjuk és nyomva tartjuk a CTRL gombot.

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Aromo Szöveges értékelés normál tantárggyal

Számlazáradékok kezelése számlázás közben

Bevezető. Mi is az a GeoGebra? Tények

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Internet bank felhasználói leírás v1.1

WebAromo elindítása, bejelentkezés

Táblázatkezelés Excel XP-vel. Tanmenet

Gyorsított jegybeírás. Felhasználói dokumentáció verzió 2.0.

VARIO Face 2.0 Felhasználói kézikönyv

Táblázatkezelés (Excel)

E-Freight beállítási segédlet

ONLINE SZAKÉRTŐI KERETRENDSZER

Bérprogram és az abevjava kapcsolata

1/ gyakorlat. Hiperbolikus programozási feladat megoldása. Pécsi Tudományegyetem PTI

Felhasználói segédlet a Scopus adatbázis használatához

Táblázatos adatok használata

A Novitax ügyviteli programrendszer első telepítése

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

Magiszter.NET iskolaadminisztrációs rendszer feltöltése adatokkal

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

A RoadOn+ Flottamenedzser használata

Gyári alkatrészek rendelése modul

Útmutató szivárgásvizsgálat-köteles berendezéseket érintő csoportos műveletekhez

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

Kétfázisú szimplex algoritmus és speciális esetei

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség:

Fatömegbecslési jegyzőkönyvek

Táblázatkezelés Excel XP-vel. Tanmenet

A táblázat első sorában a feliratok vannak, ezért az x, y koordinátákat a második sortól kezdve az egymillió-egyedik sorig fogjuk elhelyezni.

Excel Hivatkozások, függvények használata

Nem-lineáris programozási feladatok

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Microsoft Excel. Táblázatkezelés. Dr. Dienes Beatrix

Excel Hivatkozások, függvények használata

A Google űrlap (form) használata

A szimplex algoritmus

Alapok: Használd számológép helyett

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

Kormányzati Elektronikus Aláíró és Aláírás-ellenőrző Szoftver

O365 és felhő szolgáltatások igénybevételéhez szükséges beállítások

Nyomtató telepítése. 1. ábra Nyomtatók és faxok Nyomtató hozzáadása

Útmutató szivárgásvizsgálatra kötelezett berendezések telepítéséhez

Átírás:

SOLVER, AZ MS EXCEL OPTIMALIZÁLÓ ESZKÖZE A nagyméretű, sok változót és korlátozó feltételt tartalmazó lineáris programozási (vagy egyéb optimalizálási feladatok) megoldása reménytelen kézi számolás útján. Számos olyan szoftver létezik azonban, melyeket optimalizálási feladatok hatékony megoldására fejlesztettek ki. A továbbiakban a Microsoft Excel táblázatkezelő bővítményeként betölthető Solver program alkalmazását és lehetőségeit tekintjük át. A Solver segítségével általános optimalizálási feladatokat is megoldhatunk, tehát a korlátozó feltételeknek és a célfüggvénynek nem kell szükségképpen lineárisnak lennie. Így a korábbi fejezetekben vizsgált LP feladatok mellett a hiperbolikus programozási valamint egyéb nemlineáris optimalizálási feladatok megoldására is alkalmazhatjuk a szoftvert. A Solvert első használata előtt be kell töltenünk. Ezt általában az Excel beállításai menüben (mely az Office gombra való kattintás után érhető el) a Bővítmények kategória kiválasztása után végezhetjük el. Ha szükséges, kérjünk segítséget az aktuális Excel-verzió súgójától. Sikeres betöltés után a Solver ikonja megjelenik az Adatok menüpont Elemzés nevű csoportjában. Adatok megadása, beállítások A Solver indítása előtt egy Excel munkalapon rögzítenünk kell a megoldani kívánt feladathoz tartozó adatokat. Ehhez először ki kell jelölnünk a döntési változók helyét, célszerűen egy összefüggő cellatartomány formájában. (Például 10 változó esetén 10 egymás melletti, vagy 10 egymás alatti cellát érdemes választani, hogy később egyszerűbben tudjunk hivatkozni ezekre a változókra.) A Solver a döntési változókat tartalmazó cellákat módosuló celláknak nevezi, mivel ezek tartalma a megoldás során folyamatosan változik. Ezután egy újabb összefüggő cellatartomány celláiba adjuk meg a korlátozó feltételek baloldalán álló képleteket, úgy, hogy a képletekben szereplő változókra az előzetesen kijelölt cellájuk segítségével hivatkozunk (így a képlet írásakor a cellára való kattintással is beírható az adott változó). A célfüggvény számára egy külön cellát foglalunk le, ez lesz a Solver terminológiájában a célcella. A célcellába előzetesen beírjuk a célfüggvény egyenletét (a változókra ismét celláik segítségével hivatkozunk), a megoldás végén ez a cella az optimum értékét fogja tartalmazni.

Az elmondottak illusztrálása rögzítsük egy Excel munkalapon az alábbi LP-feladat adatait: 7x 1 +9x 2 +5x 3 max x 1 +x 2 +2x 3 5 2x 1 +x 2 +3x 3 11 2x 1 +3x 2 +2x 3 12 x 1, x 2, x 3 0 A feladat három döntési változójának jelöljük ki az egymás alatti A1, A2, A3 cellákat. A három korlátozó feltétel a B1, B2, B3 cellába kerül. A célfüggvény képletét a C1 cellába írjuk. (Mind a feltételek, mind a célfüggvény képletét =-jellel kezdtük.) A beírás után a cellák 0 értéket mutatnak, hiszen kezdetben a módosuló cellák értéke is 0, ha az értékek helyett a képleteket szeretnénk látni (mint az ábrán), akkor kapcsoljunk át erre a lehetőségre a Képletek menüpontban.

Indítsuk el a Solvert az Adatok menüpont Elemzés csoportjából! A megjelenő Solver paraméterek párbeszédablak kitöltésével fejezzük be a feladat definiálását. A Célcella mezőbe a célfüggvényt tartalmazó cella címét kell megadnunk (esetünkben ez a C1 hivatkozás). A Legyen sorban tudjuk kiválasztani, hogy a célfüggvény mely szélsőértékét szeretnénk meghatározni, esetleg arra vagyunk kíváncsiak, hogy egy konkrét értéket hol vesz fel. A Módosuló cellákhoz a döntési változókat tartalmazó tartományt jelöljük ki. A Korlátozó feltételek ablakban adjuk meg a feltételek jobboldalát és a feltételekben szereplő relációkat. Ehhez a Hozzáadás opcióval egyenként vegyük fel az adott feltétel baloldalát tartalmazó cellahivatkozást, a legördülő menüből adjuk meg a megfelelő relációt, és Korlátozó feltételként a jobboldalon álló konstans értékét. Példánkban a művelet befejeztével az alábbi ablak látható: A Solver paraméterek párbeszédablak kitöltése után a Beállítás gombra kattintva a legfontosabb teendőnk a Lineáris modell feltételezése felirat négyzetének megjelölése, mivel lineáris programozási feladatot szeretnénk megoldani. Ezenkívül ikszeljük be a Nemnegatív feltételezése jelölőnégyzetet is, amivel a döntési változókra vonatkozó nemnegativitási feltételeket rögzítjük. Fontos: A döntési változókra vonatkozó feltételeket (ha vannak) a Solver paraméterek panel Korlátozó feltételek ablakában is megadhatjuk, és mindenképpen itt kell megadnunk azokat, ha nem minden változóra a 0 feltétel vonatkozik. A Solver beállítások ablakban a megoldás során használt paraméterek alapértelmezett értékét láthatjuk, ezek átállítására egyelőre nincs szükség. Érdekes lehet még a Kijelzés lépésenként opció beállítása, ilyenkor a megoldás részeredményeit is megmutatja a szoftver. Mivel a Solver az LP-feladatok megoldását a szimplex

módszerrel végzi, a lépésenkénti eredmények kijelzése megfelel egy út bejárásának a lehetséges megoldások által meghatározott konvex poliéder csúcspontjain keresztül. A feladat megoldása Miután megadtuk a feladat alapadatait és elvégeztük a Solver beállítását, elkezdhetjük a megoldás keresését. Ezt a műveletet a Solver paraméterek párbeszédablak Megoldás gombjával kezdeményezhetjük. Ha sikerült megoldást találni, azt a Solver eredmények nevű ablak felbukkanása jelzi: Itt jelöljük be A kiszámított értékekkel opciót, hogy a munkalapon leolvashassuk a feladat megoldását. A jobboldali Jelentések ablakban jelöljük meg az összes lehetőséget, hogy a továbbiakban tanulmányozhassuk a Solver által készített összefoglalókat a feladat megoldásáról.

Egyidejűleg az eredeti munkalapon (ha a képletek kijelzéséről visszaváltunk az értékek mutatására) a feladat változóinak és képleteinek kijelölt cellákban megjelenik az optimális megoldás számszerű értéke: Az A oszlop cellái adják az optimális megoldás koordinátáit: x 1 =3, x 2 =2,x 3 =0. A B oszlopban a feltételek értéke olvasható, ha az optimális megoldás koordinátáit helyettesítjük be a képletekbe. A C1 célcella mutatja az optimum értékét: zmax=39.

A SOLVER jelentései Az Eredmény jelentés (a másik két jelentéssel együtt) az Excel munkalapjaként jelenik meg. Ez a jelentés megadja a feladat megoldását a Módosuló cellák és a Célcella mezők Végérték oszlopában. Az Eredeti érték oszlopban 0 áll, mivel nem adtunk meg kezdőértéket a változókhoz. A kezdőérték megadása akkor fontos, ha van valamilyen elképzelésünk a megoldás értékéről, és így esetleg kevesebb iterációval jut megoldásra a Solver. A korlátozó feltételek egyenlőséggel való teljesülését az Éppen szóval jelzi a jelentés, egyébként a Bőven kifejezést használja, és az Eltérés oszlopban megadja, hogy mennyi hiányzik az egyenlőség teljesüléséhez. A példánkban ez azt jelenti, hogy a második erőforrás esetén kihasználatlan kapacitással kell számolnunk.

Az Érzékenység jelentés két részből áll. A Módosuló cellák című táblázat adja meg a célfüggvény együtthatóira vonatkozó érzékenységvizsgálatot, míg a Korlátozó feltételek címszó alatt a jobboldali konstansok érzékenység-vizsgálatának eredményét találjuk. Mindkét esetben a Megengedhető növekedés és csökkenés oszlopokban a változás megengedhető mértékét adja meg a Solver, azaz az előadáson λ-val jelölt paraméterre vonatkozó határokat. Az 1E+30 jelölés a végtelent jelenti. A táblázatból a korlátozó feltételekhez tartozó árnyékárak értéke is kiderül, amely értékek megadják az adott feltétel jobb oldalának egységnyi növekedésére jutó célfüggvényváltozást.

A Határok jelentés a módosuló cellák változói által felvehető legkisebb illetve legnagyobb értékeket adja meg, úgy, hogy közben a többi változó értéke rögzített és teljesíti a feltételeket. A Céleredmény a célfüggvény által felvett érték a változócella alsó illetve felső határértékénél. Például az első döntési változó legkisebb értéke 0, és ha a megoldás többi koordinátája változatlan értékű, akkor a célfüggvény értéke 18. A szállítási feladat megoldása Solverrel A szállítási feladat egy speciális lineáris programozási probléma, melyet a disztribúciós módszerrel oldottunk meg. A Solverrel történő megoldáshoz a feladatot standard LPfeladat formájában kell felírnunk, n*m döntési változóval, ahol n a termelők, m pedig a fogyasztók számát jelöli. A megoldás menetét az előadáson már megoldott feladaton mutatjuk be. Három építkezés betonszükségletét három betonkeverő üzem látja el. Az építkezések napi igénye rendre 30, 40, 40 tonna beton, a betonkeverő telepek napi kapacitása pedig 60, 50 és 20 tonna. Adott még egy táblázat, mely egy tonna beton szállítási költségét mutatja az egyes telephelyekről az egyes építkezésekre, ezeket az adatokat majd a következő Excel munkalapon láthatjuk. Milyen szállítási terv esetén érhető el minimális összköltség, ha kikötjük, hogy a B1 és B3 üzem teljes kapacitással dolgozik? A feladat 9 döntési változójának egy 3*3-as cellatartományban foglalunk helyet az Excel munkalapon. Egy ugyanekkora táblázatban rögzítjük a szállítási költségeket, és feltüntetjük az egyes betonkeverő telepek kapacitásait, valamint az építkezések igényeit. A feladatban nem teljesül a kereslet-kínálat egyensúlya, de a gépi megoldáshoz nem szükséges fiktív építkezés felvétele. A helyzetet a korlátozó

feltételekben álló relációk beállításával fogjuk kezelni, és hasonlóan járunk el a feladatban szereplő kikötéssel kapcsolatban is. Az Excel munkalap a kezdeti adatok felvétele után: A döntési változóknak kijelölt hely a B7:D9 tartomány. Az egyes sorok és oszlopok összegeit kiszámoljuk a tartomány szélein, ezek az összegek alkotják a korlátozó feltételek baloldalait. A célfüggvény értékét az F11 cellában az Excel szorzatösszeg függvényével számoljuk ki, hiszen a minimális szállítási költség éppen a költségmátrix és a döntési változók mátrixának elemenkénti szorzataként áll elő. A Solver paraméterek panelt a következőképpen töltjük ki: A szélsőérték jellegét minimumnak állítottuk be.

Az építkezések igényeit ki tudjuk elégíteni, ezért egyenlőséggel fogalmazzuk meg az igényekre vonatkozó feltételt, méghozzá egyszerre mind a hármat, vektorok közötti egyenlőséget kérve az első korlátozó feltételben. Szintén egyenlőséget írunk elő az első és harmadik betonkeverő telep vonatkozásában, mert ezeknél kikötöttük a teljes kapacitással való üzemelést. A második telep esetében feltételt írunk elő, ez az üzem fog a fiktív építkezésre szállítani (vagyis nem termel teljes kapacitással). A Solver beállítások ablakban jelöljük be a Lineáris modell és Nemnegatív feltételezése opciókat, és kérjük a feladat megoldását. A Solver jelzi, hogy megoldást talált, és munkalapon a következő eredmény jelenik meg: Innen leolvashatjuk a feladat optimális megoldását: a B1 telepről 30-30 tonna betont kell szállítani az E1 illetve E3 építkezésekre, ugyancsak 30 tonnát a B2 telepről az E2 építkezésre, végül 10-10 tonnát a B3 telepről az E2 illetve E3 építkezésekre. A szállítások összköltsége 670, összhangban a korábban kiszámolt megoldással. Megjegyzés: Mivel a hozzárendelési feladat egy speciális szállítási feladat, ezért a fentiekhez hasonló módon a hozzárendelési feladatot is megoldhatjuk Solverrel. A különbség csak annyi, hogy a kapacitások és igények vektorát egyesekkel kell feltölteni, a feladat változóit pedig binárisnak kell választani

Hiperbolikus programozási feladat megoldása A hiperbolikus programozási feladat célfüggvénye egy tört, tehát nemlineáris függvény. A Solvert eddig csak lineáris programozási feladatok esetén alkalmaztuk, de általános optimalizáló szoftverről lévén szó, nemlineáris problémák megoldására is képes. A hiperbolikus programozási feladatok megoldásának menetét az alábbi példán keresztül mutatjuk be: (7x1+5x2+2x3 1)/(x1+x2+x3+5) max x1+3x3 15 2x1 x2 10 x2 2x3=20 x1,x2,x3 0 A korábban megoldott normál feladattal megegyezően három döntési változó és három feltétel szerepel a feladatban, ezért a munkalapon ugyanúgy helyezzük el a cellákat, mint a már megoldott feladatban:

A paraméterek megadása: A beállításoknál vegyük figyelembe, hogy ezúttal nincs szükség a lineáris modell feltételezésre. A Solver a nemlineáris problémák megoldására a GRG (Generalized Reduced Gradient) módszert használja. A panel alsó részén található három rádiógombot hagyhatjuk az alapértelmezett értéken, a kisebb méretű problémák esetén megfelelnek az adott beállítások. Ezenkívül még bejelöltük a Nemnegatív feltételezése lehetőséget, mivel korábban nem adtunk meg a változókra vonatkozó korlátot.

A paraméterek megadása és a beállítások után kattintsuk a Megoldás gombra. A feladat optimális megoldását ezúttal az Eredmény jelentésből olvassuk ki: A jelentés alapján a feladat optimális megoldása: x 1 =15, x 2 =20, x 3 =0, zmax=5.1