A DÖNTÉSELMÉLET ELEMEI Irodalom: Temesi J., A döntéselmélet alapjai, Aula, 2002, Budapest Lawrence, J.A., Pasternack, B.A., Applied management science, John Wiley & Sons Inc. 2002 Stevenson, W. J., Operation management, McGraw-Hill, Irvin, 2008 Decision theory: web Google keresés= 87,2 millió találat Döntéselmélet: web Google keresés= 22,6 ezer találat Döntéselmélet néhány területe: orvosi, jogi, bírói, közgazdasági, m szaki, egyéb. Módszerek és a kapcsolódó fontosabb szoftverek AHP analytic hierarchy process (Saaty, 1980, EC expert choice) PROMETHEE preference ranking organization method for enrichment evaluation (Brans, 1982, Decision Lab) GAIA geometric analysis for interactive assistance (Marechal, Brans, 1988,Decision Lab) WINGDSS, Sztaki WinQSB (Quantitative System for Business) decision analysis (Yih-Long Chang, Georgia Institute of Technology) 1
2 1. ALAPFOGALMAK (ld. Temesi J.: A döntéselmélet alapjai, 11-13) 1.1 Néhány jellemz döntési probléma Cselekvéseinket döntések irányítják. Nagyon gyakran kerülünk döntési (kényszer)- helyzetbe. Néha azonnal kell dönteni, máskor lehet ségünk van (s t kényszerítve vagyunk) átgondolt, indokolt döntéseket hozni. 1. Termelési feladat: többféle termék el állításának mennyiségér l döntünk. Cél a maximális prot, vagy maximális prot minimális környezeti károsítással, vagy maximális prot minimális munkaer felhasználásával. 2. Befektetési feladat: maximális hozamot biztosító portfolio kiválasztása. Korlátok: pénzügyi, szempontok: óvatosság vagy kockázat, befektetés id tartama. 3. Iskola választási probléma: új lakóhelyre költözünk és keressük a legjobb iskolát. Szempontok: lakástól való távolság, iskola színvonala, tandíj, zsúfoltság, iskola felszereltsége: sport, számítógépes hálózat. 4. Szemétéget telepítése. Szempontok: technológia, helyi munkaer, költségek, környezeti feltételek, lakossági hozzáállás. 5. Közbeszerzési pályázat kiértékelése. Pl. banki számítógépes tender értékelése. Szempontok: ár, hardver min sége, szolgáltatási feltételek, garanciális feltételek, betanítás. Minden esetben a cél egyetlen cselekvés (a legjobb termelési terv, legjobb befektetés, iskola stb.) kiválasztása.
1.2 Matematikai programozás, feltételes széls értékszámítás 3 Döntési változók: x = (x 1,..., x n ) R n egy n-dimenziós vektorba foglalva, Feltételek leírása: adott g i : R n R i = 1,..., k + l függvények segítségével g i (x) = 0 g j (x) 0 (i = 1,..., k); k < n egyenl ség típusú feltételek (j = k + 1,..., k + l); egyenl tlenség típusú feltételek Döntési halmaz: alternatívák halmaza X = { x R n : g i (x) = 0, i = 1,..., k, g j (x) 0 j = k + 1,..., k + l. } Egyetlen célfüggvény: f(x) = max ha, x X Mivel f(x) = min f(x) = max, ha, x X, ezért elegend csak max keresésével foglalkozni. Megoldás: lineáris vagy egész programozás, feltételes széls értékszámítás. Példa lineáris programozásra (két változó, grakus megoldás):(eload1.lpp) x 1, x 2 0, x 1 + 2x 2 6 x 2 x 1 3 x 1 + x 2 10 2x 1 3x 2 = z max vagy min
4 Megoldás: Az egyenl tlenségrendszernek elegettev pontok halmaza egy sokszög mely az ábrán színezve van. A 2x 1 3x 2 = z egyeneseket valamely z = konstans esetén ábrázolva párhuzamos egyeneseket kapunk (ábránkon a z = 20, 6, 12, 5 egyeneseket rajzoltuk be. z maximális értékét akkor kapjuk, ha az egyenes átmegy a (10, 0) csúcsponton, minimális értékét pedig akkor kapjuk, ha az egyenes átmegy a (3, 5, 6, 5) csúcsponton, z max = 20, z min = 12, 5.
Több változó esetén a szimplex módszert használhatjuk. Példaként tekintsük a következ LP feladatot: 5 z = 5x 1 + 4x 2 + 3x 3 = maximum, feltéve, hogy 2x 1 + 3x 2 + x 3 5 4x 1 + x 2 + 2x 3 11 3x 1 + 4x 2 + 2x 3 8 x 1, x 2, x 3 0 Vezessük be a s 1, s 2, s 3 hiányváltozókat (a feltételi egyenl tlenségek jobb- és baloldalának különbségét (angolul: slack variable, slack=er tlen, laza, pangó, slacks=hosszú nadrág, pantalló). Ezek segítségével az eredetivel ekvivalens probléma: z = 5x 1 + 4x 2 + 3x 3 = maximum, feltéve, hogy s 1 = 5 2x 1 3x 2 x 3 s 2 = 11 4x 1 x 2 2x 3 s 3 = 8 3x 1 4x 2 2x 3 x 1, x 2, x 3, s 1, s 2, s 3 0 Itt a s 1, s 2, s 3 változókat bázisváltozóknak, x 1, x 2, x 3 -at nembázis változóknak nevezük. Induljunk ki az x 1 = x 2 = x 3 = 0 megoldásból, ekkor s 1 = 5, s 2 = 11, s 3 = 8 és a célfüggvény z = 0.Próbáljunk egy jobb megoldást keresni. Mivel a célfüggvényben x 1 együtthatója pozitív, ezért x 1 értékét megnövelve z értéke n. De x 1 értékét nem növelhetjük akármekkorára, mert a hiányváltozóknak nemnegatíveknek kell maradniuk. Ha x 1 0, x 2 = x 3 = 0 akkor az s 1 = 5 2x 1 0 x 1 5 2 = 2, 5 s 2 = 11 4x 1 0 x 1 11 4 = 2, 75 s 3 = 8 3x 1 0 x 1 8 3 = 2, 66.. egyenl tlenségek mindegyikének teljesülnie kell ezért0 x 1 2, 5 azaz x 1 -et legfeljebb 2, 5-re növelhetjük. Legyen tehát z értéke 5 5 2 x 1 = 5 2, x 2 = x 3 = 0 akkor s 1 = 0, s 2 = 1, s 3 = 1 2 = 12, 5-re n tt.
6 Hogyan tovább? Mivel most s 1 = x 2 = x 3 = 0 így x 1 szerepét s 1 veszi át, a célfüggvényt és a feltételeket át kell írnunk ennek megfelel en. A s 1 deníciójából x 1 = 2, 5 0, 5s 1 1, 5x 2 0, 5x 3 ezt a célfüggvénybe, s 2, s 3 -ba helyettesítve kapjuk, hogy z = 5 (2, 5 0, 5s 1 1, 5x 2 0, 5x 3 ) + 4x 2 + 3x 3 = 12, 5 2, 5s 1 3, 5x 2 + 0, 5x 3 s 2 = 11 4 (2, 5 0, 5s 1 1, 5x 2 0, 5x 3 ) x 2 2x 3 = 1 + 2s 1 + 5x 2 s 3 = 8 3 (2, 5 0, 5s 1 1, 5x 2 0, 5x 3 ) 4x 2 2x 3 = 0, 5 + 1, 5s 1 + 0, 5x 2 0, 5x 3 Az új változókkal a problémánk: z = 12, 5 2, 5s 1 3, 5x 2 + 0, 5x 3 = maximum, feltéve, hogy x 1 = 2, 5 0, 5s 1 1, 5x 2 0, 5x 3 s 2 = 1 + 2s 1 + 5x 2 s 3 = 0, 5 + 1, 5s 1 + 0, 5x 2 0, 5x 3 s 1, x 2, x 3, x 1, s 2, s 3 0 Ismét látható, hogy s 1 = x 2 = x 3 = 0 esetén x 1 = 2, 5, s 2 = 1, s 3 = 0, 5 és z = 12, 5. Mivel most a célfüggvényben egyedül x 3 együtthatója pozitív, ennek növelésével növelhetjük a célfüggvényt. Mennyivel növelhetjük? Az x 3 0, s 1 = x 2 = 0-nál az x 1, s 2, s 3 0 feltételekb l x 1 = 2, 5 0, 5x 3 0 x 3 5 s 2 = 1 0 ez minden x 3 esetén teljesül s 3 = 0, 5 0, 5x 3 0 x 3 1 ezért x 3 = 1 s 3 = 0 és s 1 = x 2 = 0, a célfüggvény 0, 5 1 = 0, 5-del n, 13-ra. Az új (nembázis, vagy független) változók s 1, x 2, s 3, az x 3 szerepét s 3 veszi át. Mivel a s 3 = 0, 5 + 1, 5s 1 + 0, 5x 2 0, 5x 3 egyenletb l x 3 = 1 + 3s 1 + x 2 2s 3 ezt behelyettítve z, x 1, s 2 -be (végezze el a számításokat!) kapjuk, az új változókkal felírt problémát: z = 13 s 1 3x 2 s 3 = maximum, feltéve, hogy x 1 = 2 2s 1 2x 2 + s 3 s 2 = 1 + 2s 1 + 5x 2 s 3 = 1 + 3s 1 + x 2 2s 3 s 1, x 2, s 3, x 1, s 2, x 3 0
Most már nincs pozitív együttható z képletében, nem tudjuk z-t növelni. Mivel s 1, x 2, s 3 0 ezért z = 13 s 1 3x 2 s 3 13, de s 1 = x 2 = s 3 = 0 (míg x 1, s 2, x 3 értékeit az el z képletekb l számolhatjuk) mellett z = 13 így az optimális megoldás z = 13. Az el z kben tárgyalt feladat szimplex táblája az s 1, s 2, s 2 hiányváltozók bevezetése utáni rendszer 2x 1 + 3x 2 + x 3 + s 1 = 5 4x 1 + x 2 + 2x 3 + s 2 = 11 3x 1 + 4x 2 + 2x 3 + s 3 = 8 5x 1 4x 2 3x 3 + z = 0 (ahol x 1, x 2, x 3, s 1, s 2, s 3 0 és a z maximumát keressük) együtthatóinak mátrixából áll: x 1 x 2 x 3 s 1 s 2 s 3 z s 1 2 3 1 1 0 0 5 s 2 4 1 2 0 1 0 11 s 3 3 4 2 0 0 1 8 z 5 4 3 0 0 0 0 A táblázat sorainak, oszlopainak jelölését, a célfüggvényt és az egyenletek jobboldalán álló számokat egy-egy vonallal elválasztottuk. 1. lépés. El ször megkeressük a pivot elemet (pivot= forgó, forgócsap, to pivot on forog vmi körül), a belép változót és az elhagyott változót. Kiválasztjuk az alsó sor "legnegativabb" elemét (azaz a legnagyobb abszolút érték negatív elemet) ez példánkban 5. Ha több ilyen is van akkor nem számít melyiket választjuk. Ennek az oszlopa lesz a pivot oszlop. Ezután a az utolsó oszlop minden elemét osztjuk a pivot oszlop megfelel elemével, a hányadosokat az utolsó oszlop után írtuk be: x 1 x 2 x 3 s 1 s 2 s 3 z h. s 1 2 3 1 1 0 0 5 5 2 = 2, 5 pivot sor 7 s 2 4 1 2 0 1 0 11 11 4 = 2, 75 s 3 3 4 2 0 0 1 8 8 3 z 5 4 3 0 0 0 0 = 2, 66 A hányadosok közül megkeressük a legkisebbiket (ha több ilyen is van, akkor mindegy melyiket vesszük) ennek sora a pivot sor nálunk a legkissebb hányados 2,5 az els
8 sorban így a pivot sor az els sor. A pivot elem a pivot sorban és pivot oszlopban lév elem, nálunk 2. A belép változó a pivot oszlopnak megfelel változó (nálunk x 1 ), a kilép változó a pivot sornak megfelel változó (nálunk s 1 ). 2. lépés. Most a pivotálás következik. A pivot sor elemeit elosztjuk a pivot elemmel: x 1 x 2 x 3 s 1 s 2 s 3 z h. s 1 1 1, 5 0, 5 0, 5 0 0 2, 5 5 2 s 2 4 1 2 0 1 0 11 11 4 = 2, 5 pivot sor = 2, 75 s 3 3 4 2 0 0 1 8 8 3 z 5 4 3 0 0 0 0 = 2, 66 majd e sor alkalmas többszöröseit a többi sorból levonva elérjük, hogy a pivot oszlop többi elemei zérusok legyenek. Nálunk az els sor négyszeresét kell levonni a második sorból, majd az els sor háromszorosát kell levonni a harmadik sorból, végül az els sor ötszörösét kell az utolsó sorhoz hozzáadni. A kilép változó nevét a belép vel kell helyettesíteni. Az így kapott táblázat x 1 x 2 x 3 s 1 s 2 s 3 z x 1 1 1, 5 0, 5 0, 5 0 0 2, 5 s 2 0 5 0 2 1 0 1 s 3 0 0, 5 0, 5 1, 5 0 1 0, 5 z 0 3, 5 0, 5 2, 5 0 0 12, 5 Ezután ismételjük az 1. és 2. lépést az új táblázattal mindaddig amíg az utolsó sor elemei nemnegatívak vagy zérusok lesznek. Ekkor az optimális megoldás a jobboldali oszlopból olvasható le. Táblázatunkban a -0,5 oszlopa lesz a pivot oszlop, a pivot sort pedig ismét az utolsó oszlop és a pivot oszlop megfelel elemeinek hányadosai közül a legkisebb hányados sora adja (csak pozitív elemekkel osztunk), esetünkben a harmadik sor. A belép változó a pivot oszlopnak megfelel változó (nálunk x 3 ), a kilép változó a pivot sornak megfelel változó (nálunk s 3 ).
9 x 1 x 2 x 3 s 1 s 2 s 3 z h. x 1 1 1, 5 0, 5 0, 5 0 0 2, 5 2,5 0,5 = 5 s 2 0 5 0 2 1 0 1 s 3 0 0, 5 0, 5 1, 5 0 1 0, 5 0,5 0,5 = 1 pivot sor z 0 3, 5 0, 5 2, 5 0 0 12, 5 A harmadik sort 0,5-tel elosztjuk, majd az így kapott sor 0,5-szeresét az els b l levonjuk és az utolsó sorból is levonjuk. A kapott táblázat (melyb l az utolsó oszlop hányadosait lehagytuk) x 1 x 2 x 3 s 1 s 2 s 3 z x 1 1 2 0 2 0 1 2 s 2 0 5 0 2 1 0 1 x 3 0 1 1 3 0 2 1 z 0 3 0 1 0 1 13 Mivel az utolsó oszlopban már nincs negatív elem, ezért a megoldás befejez dött, z maximális értéke 13, és a baloldali oszlopban szerepl változók optimális értékeit a z oszlopból olvashatjuk le azaz most x 1 = 2, s 2 = 1, x 3 = 1 a többi változó optimális értéke zérus, azaz x 2 = s 1 = s 3 = 0. Több változó (szimplex módszer, ill.megoldás komputerrel, szoftver pl WinQSB) El ször bemutatjuk a fenti feladat azaz a z = 5x 1 + 4x 2 + 3x 3 = maximum, feltéve, hogy 2x 1 + 3x 2 + x 3 5 4x 1 + x 2 + 2x 3 11 3x 1 + 4x 2 + 2x 3 8 x 1, x 2, x 3 0 LP feladat megoldását a WinQSB szoftverrel. Az adatbevitel (mátrixos formában) és a megoldás táblázata:
10 (öt változó, megoldás WinQSB-vel ):(ELOAD1B.LPP) x 1, x 2, x 3, x 4, x 5 0, x 1 + 2x 3 2x 4 + 3x 5 60 x 1 + 3x 2 + x 3 + x 5 12 x 2 + x 3 + x 4 10 2x 1 + 2x 3 20 3x 1 + 4x 2 + 5x 3 + 3x 4 2x 5 = z max vagy min Bevitel a WinQSB-be mátrixos formátumban:
11 A megoldás táblázata: A megoldás táblázatában a redukált költség nulla érték célváltozóknál szerepel, és azt mutatja, hogy hogyan változik a célfüggvény értéke, ha az illet célváltozóra pozitív értéket követelünk meg. Például, x 3 = 0-nál a redukált költség 1, ami azt jelenti, hogy ha x 3 0 helyett x 3 a 3 (> 0)-t követeljük meg, akkor az célfüggvény értéke (közelít leg) a 3 -mal változik. Egy feltételnél szerepl árnyékár azt mutatja meg, hogy a feltétel jobboldalán álló konstans változása hogyan hat a célfüggvény értékére. Például, a C 3 feltételnél az árnyékár 3, ami azt jelenti, hogy ha C 3 jobboldalát b 3 -mal megnöveljük, (esetünkben 10 + b 3 -ra) akkor az célfüggvény értéke (közelít leg) 3b 3 -mal n.
12 Az utolsó két oszlop fels 1-5 sorai azt mutatják, hogy a célfüggvényben az illet célváltozó együtthatója milyen határok között változhat ahhoz, hogy még létezzen optimális megoldás. Az utolsó két oszlop utolsó 4 sora azt mutatja, hogy a korlátozó feltételek jobboldalai milyen határok között változhatnak, ahhoz, hogy még létezzen optimális megoldás. További megjegyzések: El fordulhat az, hogy a lineáris programozási feladatnak több megoldása van. Példaként tekintsük a (ELOAD2.LPP) x 1, x 2, x 3, x 4 0 x 1 x 2 + x 3 8 x 2 + x 3 x 4 11 x 1 + 2x 2 x 3 + x 4 10 z = 6x 1 + 2x 2 + 5x 3 + 7x 4 max feladatot. Ennek két bázismegoldása van (0, 0, 8, 18) és (0, 7, 15, 11) és nyilván ezek konvex kombinációja, azaz λ(0, 0, 8, 18)+(1 λ)(0, 7, 15, 11) bármely λ [0, 1] mellett is megoldás. Megtörténhet az is, hogy nincs megoldás, erre példa a (ELOAD3.LPP) x 1, x 2 0 x 1 + x 2 120 x 1 90 12x 1 + 12x 2 1680 feladat. z = 14x 1 + 6x 2 max Így el fordulhat, hogy a döntési probléma megoldáshoz pótlólagos információra van szükségünk, vagy pedig a feltételeinken kell enyhítenünk. Ez vezetett el a célprogramozáshoz, ahol a célokat ket részre osztjuk, egy részük szigorúan betartandó, a másik részü csak egy bizonyos szinten tartandó be. Egy másik lehet ség a többcélú programozás. Ha több célfüggvényünk van, melyeket egy vektorba foglalunk f(x) = (f 1 (x), )f 2 (x),..., f k (x))
akkor a 13 max x X f(x) maximumprobléma megoldása egy un. Pareto-optimális megoldás ez olyan x vektort (vagy vektorokat) jelent melyekhez nem tudunk megadni (nem létezik) olyan ˆx X, hogy f(ˆx) f(x ) és f(ˆx) f(x ) teljesül (vektorok egyenl tlensége koordinánként értend ). Mivel a Pareto optimális megoldások halmaza gyakran végtelen, így annak megkeresése nem adja meg a döntési probléma megoldását. Ezért egy un. kompromisszumos megoldást keresünk súlyozásos módszerrel, lexikográkus módszerrel, korlátok módszerével, kompromisszumprogramozás elvével. Súlyozásnál az egyes célfüggvényeket fontossági súlyokkal látjuk el, és pl. súlyozott átlagként vagy összegként egyetlen célfüggvényt alkotunk. Lexikográkus módszernél el ször a legfontosabb cél szerint értékelünk, ha egy megoldás van akkor készen is vagyunk, ha több akkor ezeket a fontosságban következ szempont szerint értékeljük, és így tovább. A korlátok módszerénél egy kivételével az összes többi célt valamely kívánatos korlát segítségével beépítjük a feltételi rendszerbe. A kompromisszumprogramozásban olyan döntést választunk, mely az ideális (minden cél szerint a legjobb, és általában nem létez ) változathoz legközelebb esik. 1.3 Alapfogalmak (ld. Temesi J.: A döntéselmélet alapjai, 18-20) Alternatívák: a különböz döntési lehet ségek, ezek halmaza a döntési tér. Leírásuk: explicit (pl. felsorolás), vagy implicit. Jellemz ik: számosság, számszer síthet ség, kölcsönkapcsolatok (függetlenség), bizonytalanság (véletlent l való függés).
14 Célok (kritériumok,értékelési tényez k): azok az irányok, amerre a rendszert vinni szeretnénk. Ezek sok esetben nem feltétlenül elérhet, vagy számszer síthet kívánságokat jelentenek. Hierarchikusan elrendezve ket, a legmagasabb szinten lev k általában kevésbé operácionálisak, az alacsonyabban lév kritériumok már kezelhet k, míg a legalacsonyabb szinten lév k, mint számszer értékelési tényez k jelennek meg. Az értékelési tényez knek rendelkezniük kell az alábbi tulajdonságokkal: teljesség (egyetlen fontos tényez se maradjon ki), operácionalizálhatóság (elemzésre alkalmas legyen), felbonthatóság (az alternatívákat az adott tényez szerint külön is vizsgálhassuk), redundancia kisz rése (felesleges, ismétl d szempont elhagyása), minimalitás (ne legyen ugyanolyan jó, de kisebb elemszámú tényez halmaz), Döntéshozók: azok a személyek, akik felel sek az információk megadásáért, az alternatívák meghatározásáért, kiértékeléséért, a megoldás realizálásáért. Döntéshozó magatartása: racionális (optimalizálásra törekszik), vagy irracionális. A döntéshozó a problémák egy részét objektíven látja (együtthatók, mérések eredményei, számított értékek), másik részét preferenciák adják. Magatartástudomány: a döntéshozókra a korlátozott racionalitás elve érvényesül. Döntési folyamat: döntési szituáció keletkezése (koniktus feloldása), döntési probléma megfogalmazása, döntési probléma formalizálása (pl. matematikailag), döntési probléma módszerének megválasztása, megoldás: egyetlen cselekvés kiválasztása, adaptálás, értékelés, elemzés: helyes volt-e a döntés, vagy újra kell kezdeni.