Optimalizálás a Microsoft Excel Solver b vítménye segítségével



Hasonló dokumentumok
Bevezetés az operációkutatásba A lineáris programozás alapjai

Nemlineáris programozás 2.

Érzékenységvizsgálat

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

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

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

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

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

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

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

EuroOffice Optimalizáló (Solver)

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

Operációkutatás példatár

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

Egyes logisztikai feladatok megoldása lineáris programozás segítségével. - bútorgyári termelési probléma - szállítási probléma

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Assignment problem Hozzárendelési feladat (Szállítási feladat speciális esete)

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

A Markowitz modell: kvadratikus programozás

Operációkutatás. 4. konzultáció: Szállítási feladat. A feladat LP modellje

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

Opkut deníciók és tételek

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

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Bázistranszformáció és alkalmazásai

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

b) Írja fel a feladat duálisát és adja meg ennek optimális megoldását!

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

Bevezetés Standard 1 vállalatos feladatok Standard több vállalatos feladatok 2017/ Szegedi Tudományegyetem Informatikai Intézet

1. Előadás Lineáris programozás

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

Ellátási lánc optimalizálás P-gráf módszertan alkalmazásával mennyiségi és min ségi paraméterek gyelembevételével

MIKROÖKONÓMIA II. B. Készítette: K hegyi Gergely. Szakmai felel s: K hegyi Gergely február

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

Lineáris egyenletrendszerek

2017/ Szegedi Tudományegyetem Informatikai Intézet

Konjugált gradiens módszer

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

Pénzügyi matematika. Vizsgadolgozat I. RÉSZ. 1. Deniálja pontosan, mit értünk amerikai vételi opció alatt!

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

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

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

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

Makroökonómia (G-Kar és HR) gyakorló feladatok az 1. és 2. szemináriumra

Konvexitás, elaszticitás

Operációkutatás vizsga

KÖZGAZDASÁGTAN I. Készítette: Bíró Anikó, K hegyi Gergely, Major Klára. Szakmai felel s: K hegyi Gergely június

Bázistranszformáció és alkalmazásai 2.

Közgazdaságtan 1. ELTE TáTK Közgazdaságtudományi Tanszék. 2. hét KERESLET, KÍNÁLAT, EGYENSÚLY

i=1 i+3n = n(2n+1). j=1 2 j < 4 2 i+2 16 k, azaz az algoritmus valóban konstans versenyképes.

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

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

1. Görbe illesztés a legkisebb négyzetek módszerével

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

Lagrange-féle multiplikátor módszer és alkalmazása

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

2. SZÉLSŽÉRTÉKSZÁMÍTÁS. 2.1 A széls érték fogalma, létezése

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Szimplex módszer, szimplex tábla Példaként tekintsük a következ LP feladatot:

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

Áttekintés LP és geometria Többcélú LP LP és egy dinamikus modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

Operációkutatás vizsga

GPK M1 (BME) Interpoláció / 16

ú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.

Totális Unimodularitás és LP dualitás. Tapolcai János

Esettanulmányok és modellek 2

Közgazdaságtan 1. ELTE TáTK Közgazdaságtudományi Tanszék. 3. hét A KERESLETELMÉLET ALAPJAI. HASZNOSSÁG, PREFERENCIÁK

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6.

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. Oldja meg grafikusan az alábbi feladatokat mindhárom célfüggvény esetén! a, x 1 + x 2 2 2x 1 + x 2 6 x 1 + x 2 1. x 1 0, x 2 0

Függvények növekedési korlátainak jellemzése

1. A k-szerver probléma

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

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

Gyakorló feladatok Alkalmazott Operációkutatás vizsgára. További. 1. Oldja meg grafikusan az alábbi feladatokat mindhárom célfüggvény esetén!

MIKROÖKONÓMIA - konzultáció - Termelés és piaci szerkezetek

Gráfokkal megoldható hétköznapi problémák

Lineáris programozás. Modellalkotás Grafikus megoldás Feladattípusok Szimplex módszer

Érdekes informatika feladatok

A szimplex algoritmus

rank(a) == rank([a b])

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

Nem-lineáris programozási feladatok

Gazdasági matematika II. tanmenet

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

3. el adás. Hosszú távú modell: szerepl k, piacok, egyensúly. Kuncz Izabella. Makroökonómia. Makroökonómia Tanszék Budapesti Corvinus Egyetem

Határozott integrál és alkalmazásai

MIKROÖKONÓMIA - konzultáció - Termelés és piaci szerkezetek

Döntéselőkészítés. I. előadás. Döntéselőkészítés. Előadó: Dr. Égertné dr. Molnár Éva. Informatika Tanszék A 602 szoba

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

Döntéselőkészítés. VII. előadás. Döntéselőkészítés. Egyszerű Kőnig-feladat (házasság feladat)

9. Tétel Els - és másodfokú egyenl tlenségek. Pozitív számok nevezetes közepei, ezek felhasználása széls érték-feladatok megoldásában

Az érzékenységvizsgálat jelentősége

Algoritmusok bonyolultsága

Átírás:

Eötvös Loránd Tudományegyetem Természettudományi Kar Optimalizálás a Microsoft Excel Solver b vítménye segítségével Szakdolgozat Tóth Ádám Matematika B.Sc., elemz szakirány Témavezet : Mádi-Nagy Gergely, egyetemi adjunktus Operációkutatás Tanszék Budapest 2011

Tartalomjegyzék 1. Bevezetés 3 2. A Microsoft Excel Solver használata 4 3. Lineáris programozás 10 3.1. Termelési feladat................................ 11 3.1.1. Modell felírása............................. 11 3.1.2. Megoldás Solver segítségével...................... 11 3.1.3. Megoldás elemzése........................... 12 3.2. Szállítási feladat................................. 16 3.2.1. Modell felírása............................. 17 3.2.2. Megoldás Solver segítségével...................... 18 3.2.3. Megoldás elemzése........................... 19 3.3. Hozzárendelési feladat............................. 21 3.3.1. Modell felírása............................. 21 3.3.2. Megoldás Solver segítségével...................... 23 3.3.3. Megoldás elemzése........................... 24 3.4. Minimális költség hálózati folyam problémák................ 25 3.4.1. Modell felírása............................. 25 3.4.2. Megoldás Solver segítségével...................... 28 3.4.3. Megoldás elemzése........................... 29 4. Nemlineáris programozás 32 4.1. Folytonos feladat................................ 32 4.1.1. Modell felírása............................. 33 4.1.2. Megoldás Solver segítségével...................... 34 1

4.1.3. Megoldás elemzése........................... 35 4.2. Nem folytonos feladat............................. 35 4.2.1. Modell felírása............................. 35 4.2.2. Megoldás Solver segítségével...................... 36 4.2.3. Megoldás elemzése........................... 37 2

1. fejezet Bevezetés Lehet ségeihez mérten az ember mindig törekedett a legjobb eredmény elérésére. Legyen az egy gyár autógyártásából származó bevétel, vagy a fogyasztó oldaláról nézve az autó ár-érték arányának minimalizálása. Nap mint nap optimalizációs problémákkal találjuk szembe magunkat, még ha nem is vesszük észre. Elég ha csak egy átlagos bevásárlásra gondolunk. Persze a megoldandó feladatok nagysága és súlya nem ugyanakkora. Világos, hogy a kisboltban vásárolható két tej között könnyebb választani, mintha egy lakást szeretnénk venni, vagy akár egy nagyvállalat vezetésével vagyunk megbízva és döntéseinken komoly bevételek múlnak. Itt jön a kérdés: hogyan is tudnánk deniálni ezt az egész folyamatot? Az optimalizálás a gazdasági er forrásokkal való ésszer gazdálkodás, a legjobb állapot illetve cselekvés kiválasztására alkalmas eljárás, valamely el re meghatározott feltételek alapján. A gyorsaság és pontosság mindig is nagy szerepet kapott az optimalizálásban. Számítógépünk segítségével hatékonyabban tudunk megoldani nagyméret problémákat, vagy akár olyanoknak is meg tudjuk adni eredményét, amelyeket szinte lehetetlen lenne papíron kiszámolni. Ezt a célt szolgálja a Microsoft Excel Solver b vítménye. Ennek a programnak az a m ködési elve, hogy a megszorítások gyelembevételével megvizsgálja a lehetséges megoldásokat, majd azok közül kiválasztja a számunkra legkedvez bbet. Egy feladatnak lehet egy, több vagy akár végtelen sok optimális megoldása, de el fordulhat az is, hogy egy sincs. A kés bbiekben minden problématípusnál ismertetni fogjuk a modell fontosabb tulajdonságait egy feladat segítségével, amelyet a Solverrel megoldunk, majd a kapott eredményeket, jelentéseket kielemezzük. A példafeladatokat Wayne L. Winston Operációkutatás - Módszerek és alkalmazások cím könyvéb l merítettem. 3

2. fejezet A Microsoft Excel Solver használata A Solver használatát egy feladat segítségével mutatjuk be a könnyebb megértés kedvéért. 2.1. Feladat. Giapetto fafaragó cége kétfajta fából készült játékot gyárt: katonákat és vonatokat. Egy katonát 27$-ért lehet eladni, és el állításához 10$ érték nyersanyag szükséges. Minden legyártott katona 14 dollárral növeli Giapetto bérben jelentkez változó költségét és az általásnos költséget. Egy vonat 21$-ért adható el, el állításához 9$ érték nyersanyag szükséges. Minden legyártott vonat 10 dollárral növeli a változó- és általános költségeket. A fakatonák és favonatok gyártása kétféle szakképzett munkát igényel: fafaragó és felületkezel munkát. Egy katona el állításához 2 óra felületkezel munka és 1 óra fafaragó munka szükséges. Egy vonathoz 1 óra felületkezel és 1 óra fafaragó munka kell. Giapettonak minden héten korlátlan mennyiség nyersanyag áll rendelkezésére, de csak 100 felületkezel munkaóra és 80 fafaragó munkaóra használható fel. A vonatok iránti kereslet korlátlan, katonákból azonban legfeljebb csak 40-et vesznek meg hetente. Maximalizáljuk Giapetto heti protját (bevétel - költségek)! 1 Els lépésként írjuk fel a feladatunk matematikai modelljét. Döntési változók: x 1 = ahány katonát gyárt egy héten x 2 = ahány vonatot gyárt egy héten Korlátozó feltételek: 2 x 1 + x 2 100 1 Wayne L. Winston: Operációkutatás, Aula, 2003, 51. oldal 4

x 1 + x 2 80 x 1 40 El jelkorlátozó feltételek: x 1 0 x 2 0 Célfüggvény: max z = (27 10 14) x 1 + (21 9 10) x 2 = 3 x 1 + 2 x 2 A matematikai modell felírása után nyissunk meg egy új Excel munkalapot. Az els sorban feltüntetjük a döntési változók jelöléseit. Ezt nem kötelez megtennünk, mivel a program nem fogja a táblázatnak ezt a részét használni, viszont nekünk hasznos lehet átláthatóság szempontjából. Az alatta lév sorban rögzítjük a kezd értékeket (pl. 0), a megoldás során ezek az értékek változnak meg. A modellünkb l kiszedjük az együtthatókat és rögzítjük a táblánkban. A relációkat csak az áttekinthet ség kedvéért tüntetjük fel. Kiszámoljuk a korlátozó feltételek baloldalának értékét az adott változóértékek mellett. 5

A célfüggvény értékét is a változók függvényében számoljuk ki. A feladatunkat rögzítettük a táblánkban, ezek után megoldást keresünk a Solver segítségével, amelyet az Adatok menü Solver parancsával futtathatunk. Az el ugró ablakban megadjuk a célcella valamint a módosuló cellák helyét, kiválasztjuk, hogy maximalizálni vagy minimalizálni szeretnénk a célfüggvényünket és rögzítjük a korátozó feltételeinket. 6

A feltételeket az alábbi párbeszédpanel segítségével vehetjük fel, amelyet a fenti ablakon lév Hozzáadás gomb segítségével hívhatunk el. A Beállítás gombra kattintva szintén egy párbeszédpanel ugrik el, amelynek segítségével kiválaszthajuk a számunkra legkedvez bb megoldó algoritmust. A Max. id nél megadjuk, hogy mennyi id után álljon le a megoldás keresésével a program. A Lépésszám mez nél beírjuk, hogy maximálisan hány közelítést szeretnénk végrehajtani. A Pontosság-nál minél kisebb számot tüntetünk fel, annál nagyobb lesz a pontosság. A kívánt t rést százalékban tudjuk megadni. A Konvergencia mez ben adjuk meg, hogy az utolsó öt iterációban mekkora relatív változást engedünk meg addig, amíg a Solver a megoldást megtalálva le nem áll. A jelöl négyzeteknél be tudunk állítani további tulajdonságokat: lineáris modell, nemnegatív feltételezése, nagyságrendek felismerése, kijelzés lépésenként, amelyek közül elnevezésükb l kifolyólag csak az utolsó kett szorul némi magyarázatra. A nagyságrend felismerésére akkor van szükségünk, ha bizonyos bemeneti értékek több nagyságrenddel különböznek, vagy pedig az input és az output tér el egymástól nagy mértékben. A lépések kijelzésével pedig minden lépés eredményét megvizsgálhatjuk. A Solver az általánosított redukált gradiens (GRG - Generalized Reduced Gradient) módszert használja nem lineáris problémák optimalizálása során, míg lineáris esetben a szimplex és a branch and bound (elágazás és korlátozás) módszereket alkalmazza. A rádiógombok segítségével tovább tudjuk alakítani megoldó algoritmusunkat. A Közelítés-nél az egydimenziós keresési eljárásokban az alapváltozók kezdeti értékének becslésére használt módszert határozhatjuk meg. Ha az érint t választjuk, akkor az értéket az érint lineáris függvényeként írjuk fel, ha a kvadratikusat, akkor négyzetes extrapolációt alkalmazunk. A Dierenciák beállítás segítségével meghatározhatjuk, hogy a cél- és a feltételfüggvények parciális deriváltjainak becslésére a haladó vagy centrális dierenciálás módszerét használja-e a program. El bbit alkalmazzuk, ha a korlátozó feltételek függvényértékei nem változnak túl gyorsan, utóbbit ha ennek ellentéte áll fenn. 7

A Keresés-nél a keresési irányt meghatározó módszert választjuk ki. A Newton módszer általában több memóriát, de kevesebb lépésszámot igényel, mint a konjugált gradiens módszer. Utóbbi nagyobb problémák esetén ajánlott, ahol számít a felhasznált memória. Az algoritmusunk beállítása után az OK gombra kattintva visszatérünk a paramétereket tartalmazó ablakhoz. Itt már nincs más teend nk, mint megnyomni a Megoldás gombot. Amennyiben jól állítottuk be eljárásunkat, a Solver közli velünk, hogy optimális megoldást talált, vagy az nem is létezik esetleg több is van bel le. Ha hibát vélünk felfedezni, mondjuk a program megállt, miel tt megoldást talált volna vagy nem az elvárt eredmény keletkezett, akkor érdemes visszatekinteni a beállításokhoz, és leellen rizni azokat. A jelentések közül kiválaszthatjuk, hogy melyeket szeretnénk megvizsgálni. Ezek részletes magyarázatára a példákon keresztül kerül sor. 8

Ezután az OK gomb megnyomásával a D16 cellában megjelenik Giapetto heti pro- tjának maximuma, az A2 és B2 mez kben pedig a katonák és vonatok gyártásának optimális száma. 9

3. fejezet Lineáris programozás Számos optimalizálási problémában segítségül szolgál a lineáris programozás. A gazdaság szinte minden területén alkalmazzák a legjobb eredmény elérésének érdekében, például pénzügyi, termelési, szállítási, munkaszervezési problémák esetén. 3.1. Deníció. A lineáris programozási feladat (LP) egy olyan optimalizálási feladat, amelyben a következ k történnek: 1. Maximalizáljuk (vagy minimalizáljuk) a döntési változók egy lineáris függvényét. A maximalizálandó vagy minimalizálandó függvényt célfüggvénynek nevezzük. 2. A döntési változók értékeinek ki kell elégíteniük a korlátozó feltételeket. Minden feltételnek vagy lineáris egyenletnek vagy lineáris egyenl tlenségnek kell lennie. 3. Minden változóhoz tartozik egy el jelkorlátozás (vagy annak hiánya). Bármely x i változóra az el jelkorlátozás vagy azt írja el, hogy x i csak nemnegatív lehet (x i 0), vagy azt írja el, hogy x i el jelkorlátozatlan. A megoldandó feladataink modelleinek el állításához a következ néhány alapfogalmat kell megismernünk: döntési változók, célfüggvény, korlátozó feltételek. A döntési változó azt a célt szolgálja, hogy le tudjuk írni a jöv ben meghozandó döntéseket. Például az évente el állított televíziók száma vagy a naponta betakarított búza mennyisége. A célfüggvényt a döntési változók súlyozásával állítjuk el, amelyet minimalizálni vagy maximalizálni szeretnénk. Például egy gyárnál a lehet legnagyobb prot elérése vagy a ráfordítások minimalizálása. A korlátozó feltételek megszabnak bizonyos határokat a feladatnak. Például a rendelkezésre álló nyersanyag mennyisége, a munkaid korlátozása. 10

3.1. Termelési feladat 3.1.1. Modell felírása 3.1. Feladat. Jones farmernek el kell döntenie, hogy ebben az évben hány hold kukoricát és hány hold búzát ültessen. Egy hold hozama 25 mázsa búza, és ez az egy hold heti 10 óra munkát igényel. Egy hold hozama 10 mázsa kukorica, és ez az egy hold heti 4 óra munkát igényel. A búza mázsánként 4$-ért adható el, és a kukorica eladási ára 3$ mázsánként. A farmernak hét hold földje van és heti 40 munkaóra áll rendelkezésére. Kormányzati el írás értelmében ebben az évben legalább 30 mázsa kukoricát kell termelni. Maximalizáljuk a búzából és kukoricából származó teljes jövedelmet! 1 Döntési változók: x 1 = ahány hold búzát ültet x 2 = ahány hold kukoricát ültet Korlátozó feltételek: x 1 + x 2 7 10 x 1 + 4 x 2 40 10 x 2 30 El jelkorlátozó feltételek: x 1 0 x 2 0 Célfüggvény: max z = 4 25 x 1 + 3 10 x 2 = 100 x 1 + 30 x 2 3.1.2. Megoldás Solver segítségével A matematikai modellünket már elkészítettünk, keressünk optimális megoldást a Solver segítségével! A feljebb leírtak fényében töltsünk fel egy táblát az együtthatókkal, adjuk meg a Solver paramétereket (célcella, módosuló cellák, korlátozó feltételek), majd a megoldó 1 Wayne L. Winston: Operációkutatás, Aula, 2003, 58. oldal 11

algoritmusunk beállítását is végezzük el. Esetünkben a jelöl négyzeteknél a lineáris modell és a nemnegatív feltételezéseket kell alkalmaznunk. El bbit használva megjegyzend, hogy a nemlineáris eszközök (közelítés, dierenciák, keresés) beállításai ekkor már nem mérvadóak. A Megoldás gombra kattintva elkészíthetjük a jelentéseket, valamint a megfelel cellákban megjelennek az optimális megoldáshoz tartozó értékek. 3.1.3. Megoldás elemzése A táblázatunkban mind a döntési változók, mind a célfüggvény optimális értéke megjelent. A megoldás szerint 2,8 hold búzát és 3 hold kukoricát kell Jones farmernek ültetni a teljes jövedelem maximalizálásához, amely 370$-t jelent. Az eredmény, érzékenység, határok jelentések három különböz munkalapra generálódtak. Az eredmény jelentés három kisebb táblázatból áll. A Célcella és a Módosuló cellák tartalmazzák a feladat megoldását, amelyet már az imént említettünk. A Korlátozó feltételek-nél a kritériumokra vonatkozó adatokat láthatjuk. A Status oszlopban két érték jelenhet meg. Az Éppen azt jelzi, hogy az adott feltétel határán vagyunk, tehát vagy estén teljesül az egyenl ség, egyéb esetben B ven jelenik meg. Az Eltérés 12

oszlopból kiolvashatjuk, hogy az optimális megoldáshoz tartozó baloldal és a jobboldal milyen mértékben tér el egymástól. Tehát ezek tükrében a következ ket állapíthatjuk meg: a farmer 7 hold földb l csak 5,8 holdat ültet be, amelyek különbségét az Eltérés-nél láthatjuk, számszerint 1,2. a rendelkezésre álló heti 40 munkaórának maximális a kihasználtsága. a kormányzati el írásnak megfelel en, Jones éppen eléri az elvárt, legalább 30 mázsányi kukorica termelést. Az érzékenység jelentésb l nyert adatok segítségével egy feladatot nem feltétlenül kell újra megoldanunk, ha egy paraméter megváltozik. Ez akkor lehet kifejezetten hasznos számunkra, amikor egy jóval nagyobb problémát kell optimalizálnunk. Az érzékenységvizsgálat elemzése lehet séget nyújt, hogy az eredeti megoldásból megállapítsuk, hogy a paraméterek változtatására miképp változik eredményünk. A Módosuló cellák táblázatban szerepl Redukált költség a szimplex tábla alsó sorának értékeire utal. A Megengedhet növekedés/csökkenés oszlopok a megfelel célfüggvény együttható változásainak azon határait adják meg, melyen belül a feladat optimális megoldása nem változik (természetesen a célfüggvény értéke igen), míg a másik táblázatban szerepl azonos elnevezés oszlopok a megfelel feltétel jobboldala változatásainak azon határait adják meg, melyen belül az optimális bázis nem változik. 13

3.2. Deníció. Ha az i-edik korlátozó feltétel jobb oldalának növelése nem módosítja az optimális bázist, akkor egy LP feladat i-edik korlátozó feltételéhez tartozó árnyékár az az érték, amennyivel az optimális z érték javul (maximumfeladat esetén a javulás növekedést, minimumfeladat esetén pedig csökkenést jelent), amikor az i-edik korlátozó feltétel jobb oldalát 1-gyel növeljük. Írjuk fel modellünket a következ alakban: Célfüggvény: max z = c 1 x 1 + c 2 x 2 Korlátozó feltételek: x 1 + x 2 k 1 10 x 1 + 4 x 2 k 2 10 x 2 k 3 Ekkor a lenti táblázatokból a következ ket sz rhetjük ki: A feladat optimális megoldása nem változik, ha (a felsoroltak közül egyszerre csak egy változtatható meg): 75 c 1 <. < c 2 40. Az optimális bázis nem változik, ha (a felsoroltak közül egyszerre csak egy változtatható meg): 5,8 k 1 <. 12 k 2 52. 0 k 3 50. Ha az optimális bázis nem változik, akkor: k 1 = 7 + 1 = 8 esetén max(z)= 370 + 0 = 370. k 2 = 40 + 1 = 41 esetén max(z)= 370 + 10 = 380. k 3 = 30 + 1 = 31 esetén max(z)= 370 1 = 369. 14

Csináljuk egy próba ellen rzést a Solverrel, hogy ténylegesen igazak-e a fenti állítások. Az együtthatókat tartalmazó táblánkban növeljük meg a rendelkezésre álló munkaórák számát 1-gyel. A többi paramatér változtatása nélkül a farmer így már heti 41 órát dolgozhat. 15

Az érzékenységjelentésb l kiolvasva a munkaóra feltétel árnyékára 10, tehát az alapfeladatra kapott maximális z értéknek ennyivel kellett n nie, amelyet az ellen rz táblánkban is láthatunk. A határok jelentésben az alsó, fels határ és a hozzájuk tartozó Cél eredmény oszlopok hordoznak számunkra érdekes információkat. Az alsó és fels határ elárulja, hogy az optimális megoldásból kiindulva a változóknak mekkora a legkisebb és legnagyobb felvehet értékük a korlátozó feltételek teljesülése mellett, a Cél eredmény pedig meghatározza, hogy az adott pontban milyen értéket vesz fel a célfüggvény. Például x 1 = 0 estén (természetesen a többi paraméter változtatása nélkül) z = 90. 3.2. Szállítási feladat A szállítási feladat megoldásához meg kell ismernünk néhány alapfogalmat. A kínálati pontok azon pontok halmaza, amelyekb l a szállítás történik, a keresleti pontok pedig azok, ahová a szállítás történik. A köztük zajló transzferálásnak költségét a változó költség írja le minden egyes kínálati-keresleti pontpárra külön-külön. Feladatunkban meghatározhatjuk, hogy a kínálati helyeinkr l hány egységet vagyunk képesek szállítani, felvev részr l pedig a szükséges mennyiséget tudjuk meghatározni. A szállítási feladatnak alapvet en három fajtája van. Az egyik amikor az összkínálat nagyobb az összkeresletnél, a másik amikor kisebb, a harmadik pedig ha megegyeznek. Utóbbi esetben kiegyensúlyozott szállítási feladatról beszélünk. Az els két esetben bevezethetünk egy ktív keresleti pontot, amelynek célja a fel nem használt készlet vagy a kielégítetlen kereslet jelzése. Utóbbi általában büntet költséget von maga után. 16

3.2.1. Modell felírása 3.2. Feladat. Egy vállalat három fogyasztónak szállít termékeket, mindegyiknek 30 egységet. A vállalatnak két raktára van. Az 1. raktárban 40 egység, a második raktárban pedig 30 egység áll rendelkezésre. Az alább látható táblázatban szerepelnek a raktárakból a fogyasztókhoz történ szállítások egységköltségei ($-ban). Minden egyes kielégítetlen fogyasztói keresletegységhez bírság tartozik: az 1. vev nél 90$ bírságköltség van, a 2. vev nél 80$, a 3. vev nél 110$. Minimalizáljuk a szállítási és hiányköltségek összegét. 2 Döntési változók: x ij = az i-edik raktárból a j-edik vev höz szállított egységek száma, ha i = 1, 2 és j = 1, 2, 3. x 3j = a j-edik vev kielégítetlen keresletegységének száma, ha j = 1, 2, 3. Korlátozó feltételek: Kínálati feltételek: x 11 + x 12 + x 13 40 x 21 + x 22 + x 23 30 Keresleti feltételek: x 11 + x 21 + x 31 30 x 12 + x 22 + x 32 30 x 13 + x 23 + x 33 30 El jelkorlátozó feltételek: x ij 0 ha, i = 1, 2, 3 és j = 1, 2, 3 2 Wayne L. Winston: Operációkutatás, Aula, 2003, 294. oldal 17

Célfüggvény: min z = szállítási költségek { }} { 35 x 11 + 25 x 12 + 15 x 13 + 50 x 21 + 40 x 22 + 10 x 23 + +90 x 31 + 80 x 32 + 110 x 33 } {{ } hiányköltségek 3.2.2. Megoldás Solver segítségével Ahogy azt eddig is tettük, töltsünk fel egy excel táblát az együtthatókkal. Kiszámoljuk a korlátozó feltételek baloldalának és a célfüggvény értékét az adott változóértékek mellett. A K18 mez re kattintva ezt a képletet fogjuk látni a szerkeszt lécben: Adjuk meg a Solver paramétereket. A célcella a K18 (ezt szeretnénk minimalizálni), a módosuló cellák pedig az A2, B2,..., I2 lesznek. Felvesszük a korlátozó feltételeinket, majd beállítjuk a lineáris modell és a nemnegatív feltételezéseket. A Megoldás gombra kattintva táblázatunkban megjelenik feladatunk optimális eredménye: 18

3.2.3. Megoldás elemzése Megoldásunk szerint a költségünk akkor lesz minimális, számszerint 3200$, ha az els raktárból 10 egységet az 1-es, 30-at a 2-es vev nek, a második raktárból a teljes készletet a 3-as vev nek szállítjuk. Így 20 kiegyenlítetlen keresletegysége lesz az els vev nek, amely után járó büntetés a teljes költségünk 56,25%-át teszi ki. A továbbiakban eredmény jelentésb l csak a korlátozó feltételek táblázatot fogom taglalni, mivel a másik kett a kapott eredmény vizsgálata után már nem információérték. A Status oszlop minden sorában az éppen értéket láthatjuk, ez elárulja, hogy mindegyik feltételnek a határán vagyunk. Írjuk fel modellünket a következ alakban: Célfüggvény: min z = c 11 x 11 + c 12 x 12 + c 13 x 13 + c 21 x 21 + c 22 x 22 + c 23 x 23 + Korlátozó feltételek: +c 31 x 31 + c 32 x 32 + c 33 x 33 x 11 + x 12 + x 13 k 1 x 21 + x 22 + x 23 k 2 x 11 + x 21 + x 31 k 3 x 12 + x 22 + x 32 k 4 x 13 + x 23 + x 33 k 5 Ekkor az érzékenységvizsgálat segítségével a következ ket állapíthajuk meg: A feladat optimális megoldása nem változik, ha (a felsoroltak közül egyszerre csak egy változtatható meg): 19

35 c 11 55. 55 c 12 25. 5 c 13 55. 30 c 21 <. 20 c 21 <. < c 23 30. 35 c 31 90. 80 c 32 <. 70 c 32 <. Az optimális bázis nem változik, ha (a felsoroltak közül egyszerre csak egy változtatható meg): 30 k 1 60. 20 k 2 30. 10 k 3 <. 10 k 4 40. 30 k 5 40. Ha az optimális bázis nem változik, akkor: k 1 = 40 + 1 = 41 esetén min(z)= 3200 55 = 3145. k 3 = 30 + 1 = 31 esetén min(z)= 3200 + 90 = 3290. k 4 = 30 + 1 = 31 esetén min(z)= 3200 + 80 = 3280. k 5 = 30 + 1 = 31 esetén min(z)= 3200 + 70 = 3270. A k 2 nem véletlenül lett kihagyva a felsorolásból. A táblázatban látható, hogy a hozzá tartozó Megengedhet növekedés 0, így nem tudjuk növelni a jobb oldal értékét 1-gyel, mert az optimális bázis változik. Tehát ez esetben az árnyékár nem értelmezhet. 20

A határok jelentésb l kiolvashatjuk, hogy az x 11, x 12, x 13, x 21, x 22 és x 23 közül egyiknek sem tudnánk értékét úgy növelni vagy csökkenteni az optimális megoldásból kiindulva, hogy ne sérüljenek a korlátozó feltételek. Az x 31, x 32 és x 33 Fels határára és Cél eredményére azért kaptunk #HIÁNYZIK-ot, mert ezeket a változókat akárhogy növeljük, a feltételek mindig teljesülni fognak. 3.3. Hozzárendelési feladat A hozzárendelési feladat általában egy speciális esete egy kiegyensúlyozott szállítási feladatnak, amelyben minden kínálat és kereslet 1. 3.3.1. Modell felírása 3.3. Feladat. Doc Councillman a 4 100 méteres vegyes váltóra válogatja össze úszócsapatát. Minden úszónak 100 métert kell úsznia vagy mellen, vagy háton, vagy pillangón, 21

vagy gyorson. Doc úgy gondolja, hogy mindegyik úszó tudja hozni az alábbi táblázatban leírt id ket (másodpercben). Ha a csapat összidejének minimalizálása a cél, akkor melyik úszó melyik úszásnemben induljon? 3 Legyen Gary Hall az egyes, Mark Spitz a kettes, Jim Montgomery a hármas és Chet Jastremski a négyes számú úszó. A gyors, mell, pillangó, hát pedig rendre az els, második, harmadik és negyedik versenyszám. Döntési változók: x ij = 1, ha az i-edik úszót indítjuk a j-edik versenyszámban x ij = 0, ha az i-edik úszót nem indítjuk a j-edik versenyszámban Korlátozó feltételek: Minden úszó csak egy versenyszámban indulhat: x 11 + x 12 + x 13 + x 14 = 1 x 21 + x 22 + x 23 + x 24 = 1 x 31 + x 32 + x 33 + x 34 = 1 x 41 + x 42 + x 43 + x 44 = 1 Minden úszásnemben csak egy versenyz indulhat: x 11 + x 21 + x 31 + x 41 = 1 x 12 + x 22 + x 32 + x 42 = 1 x 13 + x 23 + x 33 + x 43 = 1 x 14 + x 24 + x 34 + x 44 = 1 El jelkorlátozó feltételek: x ij 0 ha, i = 1, 2, 3, 4 és j = 1, 2, 3, 4 3 Wayne L. Winston: Operációkutatás, Aula, 2003, 323. oldal 22

Célfüggvény: min z = 54 x 11 + 54 x 12 + 51 x 13 + 53 x 14 + +51 x 21 + 57 x 22 + 52 x 23 + 52 x 24 + +50 x 31 + 53 x 32 + 54 x 33 + 56 x 34 + +56 x 41 + 54 x 42 + 55 x 43 + 53 x 44 3.3.2. Megoldás Solver segítségével Meglév paramétereinket rögzítsük egy excel táblázatban és használjuk az eddig alkalmazott Solver beállításokat! Az egyedüli különbség az el z feladatokhoz képest az az, hogy most a döntési változóink csak 0 vagy 1 értéket vehetnek fel. A korlátozó feltételeknél lév Hozzáadás gomb segítségével állítsuk be a megfelel cellákra a bin (bináris) feltételt. Esetünkben az összes második sorban szerepl mez re. Táblázatunkban az összetartozó sorokat azonos színnel jelöltem. 23

3.3.3. Megoldás elemzése Az optimális megoldás megjelent a táblázatunkban, amely szerint a csapat összideje a lehet legjobb esetben 207 másodperc. Ehhez az kell, hogy Gary Hall induljon pillangón, Mark Spitz háton, Jim Montgomery gyorson, Chet Jastremski pedig mellen. A Solver azon túl, hogy közölte velünk, optimális megoldást talált, a következ t is üzente, amikor a jelentéseket akartam elkészíteni: Az Érzékenység jelentés és a Határok jelentés nem bír jelentéssel egész érték korlátozó feltételek esetén. Ezt az okozta, hogy a módosuló cellákra bináris feltételt szabtunk. Létezik olyan algoritmus, amely nagyon hatékonyan megoldja a hozzárendelési feladatot. Ezt az algoritmust magyar módszernek hívjuk, három lépésb l áll: 1. lépés Keressük meg az m m-es költségmátrix minden sorában a legkisebb elemet. Képezzünk egy új mátrixot úgy, hogy a sor minden költségeleméb l kivonjuk a legkisebb költségelemet. Ebben az új mátrixban keressük meg minden oszlopban a legkisebb költségelemet. Képezzünk egy új mátrixot (ezt redukált költségmátrixnak nevezzük) úgy, hogy az oszlop minden költségeleméb l kivonjuk a legkisebb költségelemet. 2. lépés Rajzoljuk be a lehet legkevesebb olyan vonalat (vízszintesen és/vagy függ legesen), amelyek segítségével a redukált költségmátrixban található összes nulla lefedhet. Ha ehhez m fed vonal szükséges, akkor a mátrixban lév lefedett nullák között rendelkezésünkre áll az optimális megoldás. Ha m-nél kevesebb vonallal fedtük le az összes nullát, akkor a 3. lépés következik. 3. lépés Keressük meg a redukált költségmátrixban azt a legkisebb nemnulla elemet (nevezzük k-nak), amelyiket a 2. lépésben nem fedtünk le. Most vonjuk ki k-t a redukált költségmátrix minden nem lefedett eleméb l, valamint adjunk hozzá k-t a kétszer lefedett elemekhez. Térjünk vissza a 2. lépéshez. Ha a hozzárendelési feladat során maximalizálni szeretnénk, akkor a protmátrix minden elemét szorozzuk meg -1-gyel és ezután oldjuk meg minimum feladatként. Ha a sorok és oszlopok száma nem egyezik, akkor vezessünk be ktív pontokat, mert a magyar módszer kiegyensúlyozatlan feladatra nem feltétlenül ad helyes megoldást. A leírt algoritmus segítségével ellen rizzük le, hogy feladatunkra valóban optimális megoldást kaptunk-e a Solver által. Esetünkben a költségmátrix elemeit az egyes úszók úszásnemekben elért id eredményeik adják. Mátrixunk a következ képpen alakul: 24

A magyar módszer szerint a lefedett nullák között rendelkezésünkre áll az optimális megoldás (zölddel jelölve). Viszont vannak olyan sorok és oszlopok, amelyekben több nulla is szerepel. Keressünk olyanokat, amelyekben csak egyetlen nulla található. Esetünkben az els és harmadik sorban, valamint a második oszlopban egyetlen nulla van, így ezeken a helyeken szerepl költségelemek biztosan részei lesznek az optimális megoldásnak. Mivel minden sorból és oszlopból egy elemet választhatunk ki, így a már meglév három meghatározza a negyediket. Az algoritmusra hagyatkozva Gary Hallnak pillangón, Mark Spitznek háton, Jim Montgomerynek gyorson, Chet Jastremskinek pedig mellen kell indulnia ahhoz, hogy a csapat összideje a legkisebb legyen. Ez a megoldás megegyezik a Solver által kiszámolttal. 3.4. Minimális költség hálózati folyam problémák Egyes optimalizációs feladatoknál sokat használhat, ha grakusan tudjuk szemléltetni. A soron következ példánál egy hálózat segítségével fogunk modellezni. 3.4.1. Modell felírása Az eddig ismertetett feladatok mind speciális esetei a minimális költség hálózati folyam problémának (MKHFP). A modell felírása során a következ ket fogjuk használni: x ij = az i csúcsból a j csúcsba az (i, j) élen keresztül haladó folyam mennyisége 25

b i = az i csúcs nettó kibocsátása (kiáramlás-beáramlás) c ij = az i csúcsból a j csúcsba az (i, j) élen keresztül küldött egységnyi folyam szállítási költsége L ij = az (i, j) élen átmen folyam alsó korlátja (ha nincs alsó korlát, legyen L ij = 0) U ij = az (i, j) élen átmen folyam fels korlátja (ha nincs fels korlát, legyen U ij = ) Ezeket használva az MKHFP felírása: min x ij j k minden élre x ki = b i L ij x ij U ij c ij x ij ( i csúcsra) ( (i, j) élre) 3.4. Feladat. Az Oilco olajkútjai San Diego, illetve Los Angeles közelében vannak. A San Diego melletti mez b l napi legfeljebb 500 000 hordó, a Los Angeles melletti mez b l napi legfeljebb 400 000 hordó olaj termelhet ki. A nyersolajat a dallasi vagy a houstoni nomítóba küldik, amelyek közül egyik sem képes napi 500 000 hordónál több olajat feldolgozni. Dallasban 100 000 hordó nomítása 700$-ba, Houstonban 900$-ba kerül. A nomított olajat Chicagoba, illetve New Yorkba szállítják: Chicagoba 400 000 hordónyit, New Yorkba 300 000 hordónyit naponta. Az alábbi táblázat mutatja, hogy mennyi 100 000 hordó (nyers vagy nomított) olaj szállítási költsége ($-ban) az egyes helyszínek között. Adjunk meg egy MKHFP-t, amellyel minimalizálható az igények kielégítésének összes költsége! 4 4 Wayne L. Winston: Operációkutatás, Aula, 2003, 381. oldal 26

A megoldás során egy egység alatt 100 000 hordó olajat értünk. Egy irányított gráf segítségével szemléltetem a feladatot. A csúcsok számai mögött a városok kezd bet jét tüntettem fel zárójelben az átláthatóság kedvéért. Döntési változók: x ij = az i-edik városból a j-edikbe szállított olaj mennyisége Nettó kibocsátás: b 1 + b 2 = 7 b 3 = 0 b 5 + b 6 = 7 b 4 = 0 Az egyes pontpárokra vetített költségek (szállítási + nomítási): c 13 = 300 + 700 = 1000 c 35 = 450 c 14 = 110 + 900 = 1010 c 36 = 550 c 23 = 420 + 700 = 1120 c 45 = 470 c 24 = 100 + 900 = 1000 c 46 = 530 A városok közötti szállítások alsó korlátja: L ij = 0 ( (i, j) élre) A városok közötti szállítások fels korlátja: U i3 = 500000 U i4 = 500000 minden más esetben: U ij = 27

Korlátozó feltételek: Kínálati feltételek: x 13 + x 14 4 x 23 + x 24 5 A nomítók kapacitására vonatkozó feltételek: x 13 + x 23 5 x 14 + x 24 5 Keresleti feltételek: x 35 + x 45 = 3 x 36 + x 46 = 4 A nettó kibocsátásra vonatkozó feltételek: x 35 + x 36 x 13 x 23 = 0 x 45 + x 46 x 14 x 24 = 0 El jelkorlátozó feltételek: Célfüggvény: x ij 0 ( ij-re) min z = 1000 x 13 + 1010 x 14 + 1120 x 23 + 1000 x 24 + +450 x 35 + 550 x 36 + 470 x 45 + 530 x 46 3.4.2. Megoldás Solver segítségével Az együtthatókkal feltöltött táblázat 4-5. sorában a kínálatra, 6-7-ben a kapacitásra, 8-9-ben a keresletre, 10-11-ben pedig a nettó kibocsátásra vonatkozó feltételeket láthatjuk. A hozzájuk tartozó befüggvényezett mez ket velük azonos színnel jelöltem. Az eddig használt beállításainkon nem kell változtatni. 28