Bevezetés az operációkutatásba A lineáris programozás alapjai Alkalmazott operációkutatás 1. elıadás 2008/2009. tanév 2008. szeptember 12. Mi az operációkutatás (operations research)? Kialakulása: II. világháború alatt Operációkutatás: a döntéshozatalt olyan tudományos eszközökkel közelítjük meg, amelyek segítségével meghatározható egy rendszer legjobb felépítése és mőködtetése olyan körülmények között, amikor a források szőkösen állnak rendelkezésre (Winston, 2003). döntések elıkészítése, gazdasági optimum meghatározása matematikai szélsıérték feladat alkalmazásával lineáris és nemlineáris programozási modellek, készletezési modellek, hálótervezés, sorbanállási elmélet, szimuláció, elırejelzési modellek Modell: az objektív valóságnak az ember által alkotott leegyszerősített képe 1
Az operációkutatás módszertana Forrás: Winston, 2003. 2. o. Bevezetés a lineáris programozásba optimalizálási problémák megoldásának egyik eszköze Walras (1870), Neumann (1939) G.B. Dantzig (1947) szimplex algoritmus kifejlesztése L.V. Kantorovics, T.C Koopmans, közgazdasági Nobel-díj (1975) Kornai János: A gazdasági szerkezet matematikai tervezése 2
A lineáris programozás nagy alakjai Leonid Vitaliyevich Kantorovich Academy of Sciences Moscow, USSR (1912-1986) Tjalling C. Koopmans Yale University New Haven, CT, USA (1910-1985) G.B. Dantzig (1914-2005) "The tremendous power of the simplex method is a constant surprise to me." A lineáris programozás alapjai Lineáris programozás: Korlátozottan rendelkezésre álló gazdasági erıforrások lehetı legjobb (optimális) elosztása egymással versenyzı tevékenységek között, minél nagyobb gazdasági haszon elérése érdekében (Ferenczi, 2006). 3
A lineáris programozási feladat Egy Fafaragó Cég kétfajta játékot gyárt: katonákat és vonatokat. Egy katonát 27$-ért lehet eladni, elıállításához 10$ értékő nyersanyag szükséges, és minden legyártott katona 14$-ral növeli a vállalat bérben jelentkezı változó költségeit. Egy vonat 21$-ért adható el, elıállításához 9$ értékő nyersanyag szükséges, és minden legyártott vonat 10$-ral növeli a cég változó- és általános költségeit. A katonák és vonatok 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. A vállalatnak minden héten korlátlan mennyiségő nyersanyag áll rendelkezésére, de hetente 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 darabot vesznek meg hetente. A vállalat maximalizálni szeretné a heti profitot (bevételek költségek). Keressünk a vállalat helyzetének leírására egy olyan matematikai modellt, amely a heti profitot maximalizálja! (Winston, 2003. 51. o. alapján) A lineáris programozás alapfogalmai I. Döntési változók: a jövıben meghozandó döntések leírására szolgálnak x 1 = a hetente gyártott katonák száma x 2 = a hetente gyártott vonatok száma Célfüggvény: a maximalizálandó vagy minimalizálandó függvény (heti bevételek) (nyersanyag költségek) (egyéb változó költségek) max heti bevételek (vonat + katona) = 27x 1 + 21x 2 heti nyersanyagköltség = 10x 1 + 9x 2 egyéb heti változó költségek = 14x 1 + 10x 2 célfüggvény: (27x 1 + 21x 2 ) (10x 1 + 9x 2 ) (14x 1 + 10x 2 ) max célfüggvény (átrendezve): z = 3 x 1 + 2 x 2 max a változó célfüggvény együtthatója 4
A lineáris programozás alapfogalmai II. Korlátozó feltételek: a változók értékeit korlátozó megszorítások felületkezelı feltétel: 2x 1 + x 2 100 fafaragó feltétel: x 1 + x 2 80 katonák iránti kereslet: x 1 40 döntési változók korlátozó feltételekben szereplı együtthatói = technológiai együtthatók feltételek jobb oldalán szereplı számok = jobb oldal Elıjelkorlátozások: a döntési változó pozitív és negatív értéket is felvehet-e? döntési változó csak nemnegatív lehet: elıjelkorlátozó feltétel x i 0 döntési változó pozitív és negatív értéket is felvehet: elıjelkorlátozatlan változó Lineáris programozási feladat felületkezelı feltétel: 2x 1 + x 2 100 fafaragó feltétel: x 1 + x 2 80 katonák iránti kereslet: x 1 40 nemnegativitási feltétel: x 1 0 nemnegativitási feltétel: x 2 0 KORLÁTOZÓ FELTÉTELEK NEMNEGATIVITÁSI FELTÉTELEK z = 3x 1 + 2x 2 max CÉLFÜGGVÉNY 5
Definíciók I. Lineáris függvény: az f (x 1, x 2,..., x n ) akkor és csak akkor lineáris függvénye az x 1, x 2,..., x n változóknak, ha valamely c 1, c 2,..., c n konstansokra f (x 1, x 2,..., x n ) = c 1 x 1 + c 2 x 2 +... + c n x n Lineáris egyenlıtlenség: bármely f (x 1, x 2,..., x n ) lineáris függvény és tetszıleges b szám esetén f (x 1, x 2,..., x n ) b és f (x 1, x 2,..., x n ) b lineáris egyenlıtlenségek. c 1 x 1 + c 2 x 2 +... + c n x n b c 1 x 1 + c 2 x 2 +... + c n x n b Forrás: Winston, 2003. 55. o. alapján Definíciók II. A lineáris programozási feladat 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ó esetében meg kell vizsgálni, hogy szükség van-e elıjelkorlátozásra (megengedett-e, hogy a változók negatív értéket is felvegyenek). 6
Köszönöm a figyelmet! 7