14. Ember-gép kölcsönhatás Az interneten a következo deníciót találjuk a témával kapcsolatban: Az ember és számítógép közötti együttmuködéssel foglalkozó tudományág az emberi használatra szánt interaktív számítógépes rendszerek tervezésével, megvalósításával és értékelésével, valamint e téma körül felmerülo jelenségek tanulmányozásával foglalkozik.... E terület legfontosabb vonatkozásai a következok: Az emberek és gépek által elvégzett feladatok közös teljesítménye. Az ember és gép közötti kommunikáció szerkezete. A gépek használatára vonatkozó emberi képességek (például az interfészek tanulhatósága). Az interfész programozása és algoritmusai. Az interfészek tervezésekor és kialakításakor felmerülo technikai kérdések. Az interfészek specikálásának, tervezésének és megvalósításának folyamata....az ember és számítógép közötti együttmuködésnek a fentiek alapján vannak tudományos, technikai és tervezési kérdései. A fenti témák közül jó néhány csak távolról érinti a klasszikus értelemben vett algoritmusok témakörét. Ezért ebben a fejezetben elsosorban olyan esetekre koncentrálunk majd, ahol a gépeknek nagy mennyiségu számítást kell elvégezniük, az emberek pedig egyfajta intelligens ellenorzo és irányító szerepet töltenek be. 14.1. Több választási lehet séget kínáló rendszerek Az emberek képesek gondolkodni, érezni és érzékelni, és gyorsan tudnak alkalmazkodni egy új szituációhoz. Számolni is tudunk, de abban már nem vagyunk olyan jók. A számítógépek ezzel szemben kiválók a számolásban, csak úgy falják a biteket és bájtokat. Ok azonban a számoláson kívül nem nagyon értenek máshoz, például meglehetosen rugalmatlanok. Ha az embernek és a számítógépnek a képességeit és erosségeit megfelelo módon kombináljuk, az nagyon hatásos teljesítményhez vezethet. Az ilyenfajta csapatmunkának az egyik lehetséges megközelítése az úgynevezett több választási lehetoséges optimalizálás. Egy ilyen több választási lehetoséget kínáló rendszer esetén a számítógép néhány, könnyen áttekintheto alternatívát kínál föl, mondjuk kettot, hármat, vagy esetleg négyet, de semmiképpen sem sokkal többet. A végso döntést egy szakérto
14.1. Több választási lehet séget kínáló rendszerek 581 hozza meg a felkínált lehetoségek közül választva. Ennek a megközelítésnek egyik legfobb elonye, hogy az ember nincs hatalmas mennyiségu adattal elárasztva. A több választási lehetoséget kínáló rendszerek különösen hasznosak lehetnek azoknál a valós ideju problémáknál, amikor alapjában véve elegendo ido áll rendelkezésre a teljes megoldás kiszámolására, de a feladat bizonyos paraméterei ismeretlenek vagy fuzzy jelleguek. Ezek konkrét értékét csak egy meglehetosen kései idopontban tudjuk meg, amikor már nincs elegendo ido bonyolult számításokra. Képzeljük el, hogy a döntéshozó valamilyen több választási lehetoséget adó algoritmus segítségével elore létrehozott néhány megengedett megoldást. Majd amikor a tényleges adatok birtokába jut, valós idoben kiválaszt ezek közül egyet. Nézzünk egy példát, amelyben egy útvonalat kell megkeresnünk. Tegyük fel, hogy egy kamionsofornek az A pontból a Z-be kell eljutnia. Az út megkezdése elott egy PC szoftver segítségével megkeres két-három megfelelo utat, és kinyomtatja oket. Út közben a rádió információkat ad az aktuális forgalmi dugókról, illetve az idojárási problémákról. Ezekben a helyzetekben a kinyomtatott alternatívák segítenek a sofornek, hogy valós idoben egy másik útvonalat válasszon. A megfelelo alternatív megoldási lehetoségek megtalálása azonban nem is olyan egyszeru a számítógép segítségével. A legtermészetesebb megoldási módnak az tunhetne, ha valamilyen k-legjobb algoritmust alkalmaznánk. Ez azt jelenti, hogy adva van egy diszkrét optimalizálási probléma valamilyen célfüggvénnyel, és a k darab legjobb megoldást kell kiszámolni egy elore adott k-ra. Az ilyen k-legjobb megoldások azonban általában egymás minimális változtatásaiként jelennek meg, ahelyett, hogy valódi alternatívák lennének. A 14.1. ábra egy tipikus példát mutat erre. Egy 100 100 méretu diagramon az volt a célunk, hogy rövid útvonalakat találjunk a bal alsó sarokból a jobb felsobe. Az élhosszak véletlen számok, amelyeket nem jelöltünk az ábrán. Az 1000 (!) legrövidebb utat számoltuk ki, és az ábra ezek unióját mutatja. A hasonlóság az egyes utak között feltuno. Ha az ábrát egy kicsit nagyobb távolságból nézzük, akkor az a benyomásunk támad, mintha azon csak egyetlen útvonal lenne, amit egy ecsettel rajzoltak. (A 14.2. pontban majd szintén a rövid alternatív útvonalak kiszámítása lesz az egyik legjobb példa.) Gyakran elofordul, hogy a több választási lehetoség fogalmát egy másik értelemben használják, mégpedig a több választási lehetoséges teszt értelemben. Ez a dolog teljesen mást jelent. A két fogalom közötti különbség a lehetséges megoldások típusában és számában van: A több választási lehetoséges teszt esetén a válaszok közül legalább egy mindig helyes, a többi pedig lehet helyes vagy helytelen. A teszt készítoje (egy külso szakérto) elore megadja a kérdést, a lehetséges válaszokat, valamint azt, hogy mely válaszok helyesek. Az optimalizálási környezetben semmi nem világos elore. Elképzelheto, hogy a lehetséges megoldások valamennyien megfeleloek, de az is elofordulhat, hogy mindannyian rosszak. És általában nincs olyan külso szakérto, aki megmondja az embernek, hogy a választása jó-e vagy sem. Emiatt a bizonytalanság miatt a legtöbb embernek szüksége van valamennyi kezdeti idore, hogy a több választást kínáló rendszeren belül a saját szerepét megismerje és elfogadja.
582 14. Ember-gép kölcsönhatás 14.1. ábra. 1000 legrövidebb út egy 100 100-as rács-gráfban, egymásra nyomtatott megjelenítésben. 14.1.1. Példák több választási lehet séget kínáló rendszerre 1. Rövid útvonalak. Az 1990-es évek elejétol egyre népszerubbek lettek az útvonalválasztásra megoldást kínáló PC-s programok. 1997-ben a holland AND nevu cég volt az elso, amelyik olyan programot árult, amelyik nem csak kiszámolta a legjobb (=legrövidebb vagy leggyorsabb) útvonalat, hanem egy vagy két alternatívát is megadott. A felhasználónak lehetosége volt arra, hogy ezeket az alternatívákat egyszerre, illetve egyiket a másik után lássa. A felhasználó további paramétereket is megadhatott, amelyek az útvonalak vizuális tulajdonságait befolyásolták. Ilyen volt például az elso, második, illetve harmadik legjobb útvonal színe, vastagsága stb. Az ezzel kapcsolatos munkák F. Berger nevéhez fuzodnek. O fejlesztett ki egy módszert, amelynek segítségével lineáris struktúrák (pl. utak, vasutak, folyók,...) azonosíthatók szürkeárnyalatos muholdas felvételeken. Általában a lehetséges jelöltek nem egyediek, és Berger algoritmusa néhány további alternatív javaslatot is tartalmaz. Berger módszere a rövid alternatív útvonalakat generáló algoritmusokon alapul. 2. Utazóügynök probléma és lyukak fúrása nyomtatott áramköri lapokba. Az utazóügynök probléma esetén adva van N pont, és ismertek a pontok egymástól mért távolságai. A feladat egy minden pontot érinto, legrövidebb kör megtalálása. Errol a problémáról ismert, hogy NP-teljes. Ennek a feladatnak az egyik fontos alkalmazása az elektronikai iparban a lyukak fúrása nyomtatott áramköri lapokba. Ez esetben a pontoknak azok a helyek felelnek meg, ahová a lyukakat fúrni kell, és a cél a fúrófej mozgásának a minimalizálása. A gyakorlat azt mutatja, hogy ebben a feladatban nem csak a fúrófej mozgási útvonalának hossza az egyetlen feltétele a sikernek. Az útvonaltól függoen kisebb-nagyobb feszültségek alakulhatnak ki a nyomtatott áramköri lapkában. A különbözo útvonalak különbözo feszültségszinteket okoznak, amelyeket elore nem nagyon lehet kiszámítani. Ezért célszerunek tunik néhány alternatív, kelloen rövid útvonal meghatározása, amelyekbol ki tudjuk választani azt, amelyik a feszültség minimalizálása szempontjából a legjobb. 3. Internetes keresomotorok. A legtöbb esetben az internetes keresomotorok rengeteg találattal térnek vissza, amelyeket egy átlagos felhasználó nem tud, és nem is akar végig-
14.1. Több választási lehet séget kínáló rendszerek 583 nézni. Ezért az ilyen keresomotorok tervezoi számára kulcsfontosságú feladat a megfelelo kivonatok készítése. Elso számú szabálynak tekintheto, hogy a kapott eredménybeli elso tíz találat legyen a leginkább a tárgyhoz tartozó, és legyen kelloen szétszórva az eredményhalmazon belül. Ezen a területen, és az e-kereskedelem területén a több választási lehetoséget kínáló rendszereket szokás tanácsadó rendszereknek is nevezni. 4. Bolygóközi urutak röppályái. A távoli bolygókra, kis bolygókra, és üstökösökre való urutazás a high-tech kalandok körébe tartozik. Ezeknél a feladatoknál két kulcsfontosságú tényezore kell tekintettel lenni. Az egyiket a költségvetési korlátok jelentik, a másik pedig az, hogy az urszondákat különlegesen nagy sebességre kell felgyorsítani, hogy idoben elérjék a céljukat. A rakéták felgyorsításában a gravitáció is segíthet, oly módon, hogy a közbeeso bolygókhoz egészen közel megy el a röppályájuk. Ezzel idot és üzemanyagot is meg lehet takarítani. Az utóbbi években ezek a gravitáció által segített röppályák egyre bonyolultabbak lettek, és néha több bolygó-közeli elrepülést is tartalmaztak. A legjelentosebb példák a következok: a Cassini küldetése a Szaturnuszra a Vénusz-Vénusz-Föld-Jupiter sorozatot tartalmazta, a Rosetta küldetése a 67P/Hurjumov-Geraszimenko üstökösre a Föld- Mars-Föld-Föld sorozatot, a Messenger küldetése a Merkúrra pedig a Föld-Vénusz-Vénusz- Merkúr-Merkúr sorozatot. A röppályák kiszámításának tudománya jelenleg abban tud segíteni, hogy egy korábban meghatározott útvonalat nomítson. Ehhez azonban a mérnököknek megfelelo fantázia és kreativitás segítségével ilyen elsodleges, nomítható útvonalakat kell tervezniük. Ezeknek az elsodleges útvonalaknak a számítógéppel történo generálása még meglehetosen gyerekcipoben jár. 5. Számítógéppel támogatott sakk. Az 1970-es évek végétol kezdtek elterjedni a piacon kapható sakkozó számítógépek. Ezeknek a gépeknek a játékereje fokozatosan növekszik, és ma már a legjobb PC-s programok egy szinten vannak a legjobb sakkozókkal. Az olyan csapatok azonban, amelyekben emberek és számítógépek is részt vesznek, erosebbek a csak emberekbol, illetve csak gépekbol álló csapatoknál is. E fejezet egyik szerzoje (Althöfer) több kísérletet végzett több választási lehetoséget kínáló rendszerekkel. Az egyik ilyen összeállításban, amelyet 3-agynak nevezünk, két különbözo sakkprogram fut két független PC-n. Mindkét program javasol egy lépést, amelyek közül egy (emberi) sakkjátékos választ, vagyis o hozza meg a végso döntést. Néhány kísérlet folyamán a 3-agy kituno teljesítményt ért el. A legfontosabb ezek közül egy 1997-es mérkozés volt, amelyben két, egyenként 2550 Élo pont alatti játékereju program, és egy amator sakkjátékos (1900-as Élovel) 5-3-ra legyozte az elso számú német sakkjátékost, Juszupov nagymestert, akinek Élo pontja 2640 volt. Ezzel a 3-agy átlagos teljesítménye 2700 Élo-pont felettinek felelt meg. Ez után az esemény után a legjobb sakkjátékosok már valahogy nem nagyon akartak a 3-agy csapatok ellen küzdeni. A 3-agy erossége nagyrészt abban rejlik, hogy két különbözo sakkbeli tudás kombinálására ad lehetoséget. A számítógépek leginkább a taktikailag helyes lépések megtalálásában jeleskednek, míg az ember erossége a hosszú távú tervek kiválasztása. Manapság az összes pro sakkjátékos számítógépes programok segítségével készül a versenyekre, a megnyitásoknak és a partiknak valamilyen több választási lehetoséget kínáló elemzését felhasználva. Még kirívóbb a helyzet a levelezési sakkban, ahol a játékosok hivatalosan is felhasználhatják a számítógép segítségét a játszmáikban. 6. Nyaralási és utazási információk. Amikor valaki a nyaralását tervezi, általában összehasonlít néhány ajánlatot. Mindezt megteheti egy vasútállomáson, egy utazási irodában, vagy otthon az internetet böngészve. A vevok ilyenkor nem vizsgálnak meg több ezer ajánlatot, hanem csak maximum tízet-húszat. Az életben számtalan (elfogadható és kevésbé
584 14. Ember-gép kölcsönhatás elfogadható) stratégiával találkozhatunk, amelyekkel a cégek, szállodák és légitársaságok megpróbálják a termékeiket a legjobb ajánlatok közé pozicionálni. Egy gyakori példa erre, hogy néhány légitársaság hihetetlenül rövid utazási idovel teszi közzé az ajánlatát. Ennek az az egyetlen célja, hogy azokban a szoftverekben, amelyek az A pontból a B pontba történo utazásokat menetido szerint csökkeno sorrendben listázzák, az ajánlat a legelsok között szerepeljen. Sok esetben nem is egyszeru a vevo számára, hogy észrevegye az ilyen trükköket, amelyeknek a célja a kivonatoló eljárásokban való minél sikeresebbnek tuno mutatkozás. 7. RNS molekulák másodlagos térszerkezetének meghatározása. Az RNS molekulák másodlagos térszerkezetének meghatározása az egyik központi téma a számítógépes biológia területén. Az erre vonatkozó legjelentosebb algoritmusok a dinamikus programozáson alapulnak. Léteznek on-line adatbázisok, ahonnan valós idoben lehetséges megoldások kérhetok le. Gyakorlatok 14.1-1. Szerezzünk gyakorlatot a több választási lehetoséget kínáló rendszerekben a Free- Cell nevu türelemjáték segítségével. Töltsük le a BigBlackCell (BBC) nevu segédprogramot a http://www.minet.uni-jena.de/ BigBlackCell/ címrol és ismerkedjünk meg a programmal. Némi gyakorlás után egy átlagos felhasználónak a BBC segítségével óránként legalább 60 FreeCell elofordulást kell megoldania. 14.2. Több lehetséges megoldás el állítása 14.2.1. Lehetséges megoldások el állítása heurisztikák és ismételt heurisztikák segítségével Nagyon sok optimalizálási probléma valóban nehéznek mondható, ilyenek például az NPteljes problémák. A pontos, de lassú eljárások, illetve a megbízhatatlan, de gyors heurisztikák két lehetséges megközelítését adják annak, ahogyan pontos vagy közelíto megoldásokat találhatunk. Ha az a feladatunk, hogy néhány alternatív megoldást hozzunk létre, akkor a szükségbol erényt kovácsolhatunk. Általában sokkal több jónak mondható megoldás van, mint ahány tökéletes, és a különbözo heurisztikák foleg a véletlen elemeket is tartalmazók nem mindig ugyanazt a megoldást szolgáltatják. Ezért egy egyszeru stratégia lehet az, hogy egy vagy több heurisztikát többször alkalmazunk ugyanarra a problémára, és a kapott megoldásokat feljegyezzük. Létrehozhatunk pontosan annyi megoldást, amennyire szükségünk van, de létrehozhatunk többet is, amelyekbol néhányat aztán majd egy megfelelo kivonatoló módszerrel javítunk. A kivonatok készítésénél alapveto szempont a minoség, és a megoldások megfelelo szóródása. Ami a szóródást illeti, ehhez célszeru a lehetséges megoldások között valamilyen távolsági mértéket bevezetni, valamint megfelelo klaszterezo algoritmusokat használni. Egyetlen heurisztika ismétlodo futtatása A legtöbb esetben a heurisztika tartalmaz valamilyen mértéku véletlent. Ez esetben nincs más teendonk, mint, hogy a heurisztikát egymástól függetlenül többször lefuttassuk, amíg kello számú különbözo megoldást kapunk. Az alábbiakban az utazóügynök problémán fogjuk bemutatni ezt a megközelítést. Adunk egy példát a cserélo heurisztikára és a beszúró
14.2. Több lehetséges megoldás el állítása 585 heurisztikára, és mindkét esetben rámutatunk a véletlen elemek szerepére. Amennyiben a pontok közötti d(i, j) távolság szimmetrikus, akkor a lokális keresés kettos cserével egy jól ismert cserélo heurisztika. Az alábbi pszeudokódban T(p) jelöli a T vektor p-edik komponensét. LOKÁLIS-KERESÉS-AZ-UTAZÓ-ÜGYNÖK-PROBLÉMÁRA(N, d) 1 generáljunk egy kezdeti véletlen útvonalat T = (i 1,i 2,...,i N ) 2 while létezik olyan p és q index, amelyekre 1 p < q N és q p + 2, és d(t(p),t(p + 1)) + d(t(q),t(q + 1)) > d(t(p),t(q)) + d(t(p + 1),T(q + 1)) (A q = N speciális esetben vegyük a q + 1 = 1-et.) 3 do T (i 1,...,i p,i q,i q 1,...,i p+1,i q+1,...,i N ) 4 számoljuk ki a T útvonal hosszát, l-et 5 return T, l Ebben a heurisztikában a véletlen elemeket a kezdeti útvonal kiválasztása, valamint az a sorrend jelenti, ahogyan az élpárokat megvizsgáljuk a 2. lépésben. Különbözo beállítások különbözo lokális minimumhoz vezetnek. Nagy méretu problémák esetén, például 1000 véletlen pontot véve az egység oldalú négyzetben, az Euklideszi távolságot gyelembe véve, teljesen normálisnak tekintheto, ha 100 független futtatás majdnem 100 különbözo lokális minimumhoz vezet. Az alábbi pszeudokód egy szabványos beszúró heurisztikát mutat be. BESZÚRÁS-AZ-UTAZÓ-ÜGYNÖK-PROBLÉMÁRA(N, d) 1 generáljuk a (i 1,i 2,...,i N ) véletlen permutációt az {1,2,..., N} elemekbol 2 T (i 1,i 2 ) 3 for t 2 to N 1 4 do keressük meg a d(t(r),i t+1) + d(i t+1,t(r + 1)) d(t(r),t(r + 1)) minimumát ahol r {1,...,t}. (r = t esetén r + 1 = 1) legyen a minimum r = s-ben 5 T (T(1),...,T(s),i t+1,t(s + 1),...,T(t)) 6 számoljuk ki a T útvonal hosszát, l-et 7 return T,l Így eljárva az elemeket egyesével szúrjuk be oly módon, hogy a beszúrás után a leheto legkisebb legyen az új útvonalhossz. Itt a véletlen elem az N pont permutációja. Hasonlóan, mint a kettos cserénél, a különbözo beállítások különbözo lokális minimumhoz vezetnek. További véletlen elemet jelenthet, ha valamelyik lépésben az optimális beszúrás helye nem egyértelmu. Néhány modern heurisztika a természettel való hasonlóságon alapul. Ilyen esetekben a felhasználónak még több lehetosége van. A szimulált hokezelés esetén néhány köztes megoldást kaphatunk az egyes futtatásokból. Vagy egy genetikus algoritmus egyes futásaiból is kaphatunk néhány megoldást, amelyek akár különbözo generációkat reprezentálhatnak, akár egy kiválasztott generáció többszörös megoldásait. A cserélo heurisztikák ismételt futtatására egy speciális technikát jelent a lokális optimumok perturbálása. Eloször lefuttatjuk az eljárást egy lokális optimum megtalálására. Ezután ezen az optimumon véletlenszeru lokális változtatásokat végzünk. Az így kapott
586 14. Ember-gép kölcsönhatás megoldásból kiindulva újra elindítunk egy lokális keresést, ami egy második lokális optimumhoz vezet. Ezen ismét véletlenszeru változtatásokat végzünk, és így tovább. A véletlenszeru változtatások mértéke azt fogja befolyásolni, hogy a lokális optimumok sorozata mennyire lesz különbözo egymástól. Még a determinisztikus heurisztikák alkalmazása esetén is vannak esetek, amikor több lehetséges megoldást kaphatunk. A holtversenyes esetekben például a választástól függoen más-más eredményre jutunk, vagy a számolás pontossága (a kerekítési szabályok) is okozóhat ilyesmit. A 14.2.6. pontban tárgyaljuk azokat a bünteto módszereket, amelyekben a paramétereket mesterségesen megváltoztatjuk (pl. növeljük az élhosszakat) az ismétlodo futtatások során. Az úgynevezett tetszoleges futási ideju algoritmusokban, mint például a keresési fa iteratív mélyítése, a köztes megoldások használhatók fel alternatív jelöltekként. A lehetséges megoldások összegyujtése különbözo heurisztikák alkalmazásával Ha ugyanarra a problémára több heurisztika is ismeretes, akkor mindegyikük szolgáltathat egy vagy több megoldásjelöltet. A 14.1.1. pont 5. részében ismertetett 3-agy összeállítás egy jó példája a több választást kínáló rendszereknek, amelyek több program futását használják fel. Az ott említett két program független egymástól, és különbözo gépeken is futnak. (A versenysakkot szigorú idokorlátok keretei között játsszák, ahol 3 perc jut egy lépésre. Ha a két programot egy gépen futtatnánk multitaszk üzemmódban, azzal számítási eroforrásokat veszítenénk, és ez Heinz szerint körülbelül 60-80 Élo-pontba kerülne.) A 3-agy kongurációnál használt sakkprogramok normális, megvásárolható programok, nem olyanok, amiket speciálisan a több választást kínáló rendszer számára terveztek. Minden program tartalmazhat hibákat. A független programokat használó, több választási lehetoséget kínáló rendszerek egy nyilvánvaló elonnyel rendelkeznek a katasztrofális hibák tekintetében. Ha két független programot futtatunk, amelyek mindegyikénél p a katasztrofális hiba bekövetkezésének a valószínusége, akkor az együttes bekövetkezés valószínusége p 2 -re csökken. Egy ellenorzo szerepet betölto ember általában észre fogja venni, amikor a megoldásjelöltek katasztrofális hibát tartalmaznak. Ezért az az eset, amikor az egyik megoldás normális, a másik pedig katasztrofális (ennek valószínusége egyébként 2p(p 1)) nem fog hibához vezetni. Egy további elonyt jelent még, hogy ilyenkor a programoknak nem kell valamiféle k-legjobb vagy k-választást megvalósító módszert tartalmazniuk. A gépek által kínált egybevágó javaslatokat lehet úgy tekinteni, mint annak a jelét, hogy az adott megoldás éppen megfelelo. A független programokat használó, több választási lehetoséget kínáló rendszereknek azonban vannak gyenge pontjai is: Ha a programok között jelentos tudásbeli különbség van, akkor a döntést hozó személy nehezen fogja rászánni magát, hogy a gyengébb gép megoldását válassza. Több lépéses muveletek esetén a különbözo programok javaslatai egymással inkompatibilisek lehetnek. Gyakran elofordul, hogy az operációs rendszertol és a futtatott programoktól függoen, egy PC nem elég stabilan muködik multitaszk üzemmódban. És természetesen az sem mindig biztosított, hogy a programok valóban függetlenek egymástól. Az 1990-es évek végén például Németországban számos közúti útvonaltervezo program volt kapható különbözo nevekkel és interfészekkel. Valójában azonban mindegyik négy független program kernel és adatbázis valamelyikén alapult.
14.2. Több lehetséges megoldás el állítása 587 14.2.2. Büntet módszer egzakt algoritmusokkal Valamivel jobban kézben tartott módot ad a szóba jövo megoldások megtalálására az úgynevezett bünteto módszer. Ennek a módszernek az alapötletét az útvonaltervezo példán keresztül illusztráljuk. Induljunk ki egy R 1 optimális (vagy megfelelo) útvonalból és keressünk egy R 2 alternatív megoldást, amelyik a leheto legjobban kielégíti az alábbi két feltételt. (i) R 2 -nek megfelelonek kell lennie a célfüggvény szempontjából. Ellenkezo esetben nincs értelme, hogy R 2 -t válasszuk. A példánknál maradva, most az útvonal hossza az elsodleges cél. (ii) R 2 -nek nem szabad nagyon hasonlítania az eredeti megoldásra. Ellenkezo esetben nem beszélhetünk valódi alternatíváról. Az úgynevezett mikro mutációk esetén nagy az esélye annak, hogy az összes egymáshoz hasonló megoldásjelölt ugyanazzal a gyenge ponttal rendelkezik. A példánkban a hasonlóság mérésére alkalmas lehet az R 1 -ben és R 2 -ben is megtalálható közös részek hossza. Ez azt jelenti, hogy R 2 -nek rövidnek kell lennie, de emellett R 1 -gyel kevés közös részének kell lennie. E cél elérése érdekében két célfüggvény kombinációját fogjuk használni. Az egyik az útvonal hossza, a másik a közös részek hossza. Ezt úgy fogjuk elérni, hogy az R 1 -beli szakaszokat büntetni fogjuk, és ennek a módosított legrövidebb útvonal problémának keressük az R 2 megoldását. A büntetés mértékének változtatásával különbözoképpen súlyozhatjuk az (i) és (ii) feltételeket. Az egyik legegyszerubb megközelítés az, amikor egy relatív bünteto tényezot használunk. Ez azt jelenti, hogy az R 1 -hez tartozó szakaszok hosszát megszorozzuk 1 + ε-nal. BÜNTETO-MÓDSZER-RELATÍV-BÜNTETO-TÉNYEZOKKEL(G, s, t, ε) 1 keressük meg az s-bol t-be vezeto R 1 legrövidebb utat a G = (V, E,w) súlyozott gráfban 2 for e E 3 do if e R 1 -hez tartozik 4 then ŵ(e) w(e) (1 + ε) 5 else ŵ(e) w(e) 6 keressük meg az s-bol t-be vezeto R 2 legrövidebb utat a Ĝ = (V, E,ŵ) módosított gráfban 7 számítsuk ki az R 2 módosítás nélküli w(r 2 ) hosszát 8 return (R 1,R 2 ) és (w(r 1 ),w(r 2 )) Tekintsük az alábbi példát. 14.1. példa. Adott egy G = (V, E) gráf súlyozott élhosszakkal. A 14.2. ábrán az élek hosszát a melléjük írt számok jelzik. Az S-bol T-be vezeto legrövidebb út P D, amelynek hossza 23, és a következo csúcsokat érinti: S - A - C - D - F - T. Ha a P D éleinek hosszát megszorozzuk 1.1-del, és megoldjuk a kapott legrövidebb út problémát, akkor a P B útvonalat kapjuk, amelynek módosított hossza 25, eredeti hossza 23.7, és a következo csúcsokat érinti: S - A - B - F - T. P B és P D közös részei az S - A és F - T szakaszok, amelyeknek összhossza 13. ε méretét mindig a körülményeknek megfeleloen kell megválasztani. Az AND cég piacon kapható útvonaltervezo programjában a legrövidebb útvonal minden szakaszát 1.2-vel szorozták meg, vagyis ε = 0.2. Az alternatív útvonal ezek alapján kerül kiszámításra. Berger munkájában a muholdas felvételeken szereplo lineáris struktúrák (utcák, folyók, reptéri
588 14. Ember-gép kölcsönhatás 9 A 8 8.7 B 2 S 9 C 1 1.1 D E 1 1 F 8 4 T G 9 14.2. ábra. A14.1., 14.2. és 14.6. példákhoz tartozó gráf. kifutópályák) felismerése szintén a legrövidebb útvonal módszerrel történik. Itt ε = 1.0 bizonyult megfelelo választásnak, ami érdekes alternatív megoldásokat adott. A relatív bünteto tényezo helyett használhatunk additív bünteto tagot is. Ez azt jelenti, hogy minden olyan élhez, amelyet büntetni szeretnénk, hozzáadunk egy konstans ε-t. A fenti algoritmusban ekkor csupán a 4. lépést kell megváltoztatnunk az alábbira. 4 then ŵ(e) w(e) + ε 14.2. példa. Adott a 14.1. példából már ismert G = (V, E) gráf (lásd a 14.2. ábrán). Az S-bol T-be vezeto legrövidebb út most is P D, amelynek hossza 23, és amely a következo csúcsokat érinti: S - A - C - D - F - T. Ha a P D éleihez hozzáadunk 0.1-et és megoldjuk a kapott legrövidebb út problémát, akkor a P E útvonalat kapjuk, amelynek módosított hossza 23.4, eredeti hossza 23.1, és a következo csúcsokat érinti: S - A - C - E - F - T. P D -nek és P E -nek három közös éle van. Alapjában véve az additív bünteto tag nem rosszabb a relatívnál. Az utóbbinak, a multiplikatívnak azonban megvan az az elonye, hogy nem érzékeny az élek mesterséges kettévágására. A bünteto módszerek általánosításához hasznos a következo deníció. 14.1. deníció (összeg típusú optimalizálási probléma). Legyen E egy tetszoleges véges halmaz, S pedig egy E részhalmazaiból álló halmaz. E-t alaphalmaznak nevezzük, S elemeit pedig E megengedett részhalmazainak. Legyen w : E R egy valós értéku súlyfüggvény az E-n. Minden B S-re legyen w(b) = w(e). e B A minw(b) optimalizálási problémát összeg típusú optimalizálási problémának, vagy B S röviden csak -típusú problémának nevezzük. Megjegyzések. 1. A B S elemeket szokás megengedett megoldásoknak is nevezni. 2. Minden maximalizálási probléma átalakítható minimalizálási problémává ha w-t wvel helyettesítjük. Ezért a maximalizálási problémákat is -típusú problémának fogjuk nevezni. H
14.2. Több lehetséges megoldás el állítása 589 14.2.3. Példák -típusú problémákra Legrövidebb út probléma Hozzárendelési probléma Utazóügynök probléma Hátizsák probléma Sorozat csoportosítási probléma 14.3. példa. Tekintsük a hátizsák problémát. Adott egy I = {I 1, I 2,..., I n } elemhalmaz, egy w : I R + súlyfüggvény, egy v : I R + értékfüggvény és a hátizsák kapacitása C. A feladat az, hogy határozzuk meg azt a legértékesebb elemhalmazt, amelyek összsúlya nem haladja meg a hátizsák kapacitását. Ha I-t tekintjük alaphalmaznak, S pedig azon részhalmazok összessége, amelyek összsúlya kisebb vagy egyenlo, mint C, akkor egy -típusú problémához jutunk. Maximalizálnunk kell v(b)-t B S-re. 14.2.4. Abüntet módszerabsztraktmegfogalmazása -típusúproblémákra 14.2. deníció (bünteto módszer). Legyen E egy tetszoleges halmaz, S pedig álljon E megengedett részhalmazaiból. Legyen w : E R egy valós értéku, p : E R 0 pedig egy nem negatív valós értéku függvény az E-n. Minden ε > 0-ra legyen B ε egy optimális megoldása a problémának, ahol min B S f ε(b), f ε (B) := w(b) + ε p(b). Egy olyan algoritmussal, amelyik képes a büntetés nélküli minw(b) problémát megoldani, megtalálhatjuk B ε megoldásait is. Ehhez csak a w függvényt kell módosítanunk, oly B S módon, hogy minden e E-re w(e)-t helyettesítjük w(e) + ε p(e) -vel. B ε -t ε-büntetés melletti megoldásnak vagy ε-alternatívának nevezzük.. Deniáljuk ezen kívül B -t, mint a következo probléma megoldását: lex min (p(b),w(b)) (minimalizálás a lexikograkus sorrendnek megfeleloen), B S amely a minimális p(b) értékkel rendelkezik, és az ilyen megoldások között minimális w(b) értékkel. Megjegyzés. Amennyiben w és p is pozitív, valós értéku függvények, ekkor egyfajta szimmetria áll fenn az optimális megoldások körében: B pontosan akkor lesz ε-büntetés melletti megoldás (0 < ε < ) a (w, p) függvénypárra nézve, ha B (1/ε) büntetés melletti megoldás a (p, w) függvénypárra nézve.
590 14. Ember-gép kölcsönhatás A szimmetria megorzése miatt van értelme deniálni B 0 -t, ami optimális megoldása a következo problémának: lex min(w(b), p(b)). B S Ez azt jelenti, hogy B 0 nem csak optimális megoldás a w célfüggvényre nézve, hanem az ilyen megoldások között a minimális p értékkel rendelkezik. 14.4. példa. Adjuk meg a formális denícióját a 14.1. példának ebben az absztrakt -típusú megfogalmazásban. Ismerjük az S-bol T-be vezeto P D legrövidebb utat, és keresünk egy alternatív, jó megoldást. A p bünteto függvényt a következoképpen deniáljuk: p(e) = w(e), ha e egyik éle a P D legrövidebb útnak, 0 egyébként. Büntetés melletti megoldások keresése az összes ε 0 paraméterre Gyakran elore nem látható, hogy mely ε paraméter mellett kapunk használható alternatív megoldásokat. Egy oszd meg és uralkodj jellegu algoritmussal megtalálhatjuk az összes olyan megoldást, amelyik valamely ε-ra eloállna. Véges S halmazokra megadunk egy hatékony algoritmust, amelyik egy viszonylag kicsi B S megoldásokból álló, a következo tulajdonságokkal rendelkezo halmazt állít elo: minden B B elemre létezik olyan ε R + { }, hogy B optimális megoldás az ε bünteto paraméter mellett; minden ε R + { }-re létezik olyan B B elem, hogy B optimális megoldás az ε bünteto paraméter mellett; B a fenti két tulajdonsággal rendelkezo összes halmazrendszer közül a minimális elemszámmal rendelkezik. Egy olyan B megoldást, amelyik legalább egy bünteto paraméter mellett optimális, büntetés-optimálisnak nevezünk. A következo algoritmus büntetés-optimális megoldásoknak egy olyan halmazát keresi meg, amelyek minden ε R + { }-t lefednek. Az egyszerubb azonosíthatóság kedvéért a B halmaz elemeit rögzített sorrendben adjuk meg (B ε(1), B ε(2),..., B ε(k)), ahol 0 = ε(1) < ε(2) < < ε(k) =. Az algoritmusnak ellenoriznie kell, hogy ε(i) < ε(i + 1) esetén ne létezzen olyan köztes ε, ε(i) < ε < ε(i + 1), hogy erre a bünteto paraméterre sem B ε(i) sem B ε(i+1) nem optimális. Ellenkezo esetben az algoritmusnak azonosítania kell legalább egy ilyen ε-t, és keresnie kell egy ε-büntetés melletti B ε megoldást. Az alábbi pszeudokód 11. lépésében a Border[i] változót akkor állítjuk 1-re, ha kiderül, hogy nem létezik ilyen köztes ε. Az alábbiakban látható a pszeudokód, amelyhez néhány megjegyzést is fuztünk. Algoritmus büntetés-optimális megoldások olyan B sorozatának megtalálására, amelyek minden ε 0-ra lefedik a következo problémát: ahol f ε (B) = w(b) + ε p(b). min f B S ε(b)
14.2. Több lehetséges megoldás el állítása 591 OSZD-MEG-ÉS-FEDD-LE(w, p) 1 számítsuk ki azt a B 0 -at, amelyik minimalizálja w(b)-t és p(b)-értéke a leheto legkisebb 2 számítsuk ki azt a B -t, amelyik minimalizálja p(b)-t és w(b)-értéke a leheto legkisebb 3 if (p(b 0 ) = p(b )) 4 then do B {B 0 } 5 E (0) 6 Border B 0 minimalizálja a w és p függvényeket és minden ε-ra optimális 7 else do k 2 8 E = (ε(1), ε(2)) (0, ) 9 Border[1] 0 10 B (B 0, B ) 11 while van olyan i {1,2,...,k 1} hogy Border[i] = 0. 12 do ε (w(b ε(i+1)) w(b ε(i)))/(p(b ε(i)) p(b ε(i+1))) 13 keressünk egy optimális B ε megoldást a ε paraméterhez 14 if f ε (B ε ) = f ε (B ε(i)) = f ε (B ε(i+1)) 15 then Border[i] 1 16 else do B (B ε(1),..., B ε(i), B ε, B ε(i+1),..., B ε(k)) 17 E (ε(1),..., ε(i), ε, ε(i + 1),..., ε(k)) 18 Border (Border[1],...,Border[i],0,Border[i + 1],..., Border[k 1] 19 k k + 1 20 return B, E, Border Az algoritmus végén B különbözo büntetés-optimális megoldások sorozata lesz, az E vektor pedig egymás utáni epszilonokat fog tartalmazni. A fenti algoritmus a következo tulajdonságokon alapul: 1. Ha B egy ε-optimális megoldás, akkor létezik olyan I B = [εl, εh] intervallum (εl, εh R { }), hogy B optimális minden ε I B paraméterre, más paraméterre viszont nem optimális. 2. Két különbözo B és B megoldásra, és a hozzájuk tartozó nem üres I B és I B intervallumokra csak a következo három eset valamelyike fordulhat elo. I B = I B. Ez pontosan akkor igaz ha w(b) = w(b ) és p(b) = p(b ). I B és I B diszjunktak. I B I B = {ε}, vagyis a metszet egyetlen epszilont tartalmaz. Ez az eset akkor áll fenn, ha I B és I B szomszédos intervallumok. Az E halmaz végessége miatt csak véges sok B S megengedett megoldás létezik. Ezért csak véges sok optimalitási intervallum lehet. Így (1)-bol és (2)-bol következik, hogy a [0, ] intervallumot fel tudjuk osztani intervallumoknak a következo halmazára: {[0 = ε1, ε2],[ε2, ε3],...,[εk, εk+1 = ]}. Minden intervallumra vonatkozóan különbözo B megoldásokat kapunk, amelyek optimálisak az intervallumbeli összes ε-ra. Az ilyen megoldást az intervallum reprezentánsának nevezzük. 3. Az algoritmus célja, hogy ezeknek az optimalitási intervallumoknak a határait megtalálja, és minden intervallumra találjon egy reprezentáns megoldást. Az iteráció minden
592 14. Ember-gép kölcsönhatás lépésében vagy egy új intervallum reprezentánsát, vagy két intervallum között egy új határt találunk meg (7-13 lépések). Ha k darab optimalitási intervallumunk van, ahol k 2, akkor elegendo 2k 1 darab minw(b) + ε p(b) típusú problémát megoldani, B S hogy valamennyit megvizsgáljuk, és megtaláljuk a reprezentáns megoldásokat. Az ε-alternatívák unimodalitási tulajdonsága Amennyiben csak egy ε-alternatívát számolunk ki, felmerül a kérdés, hogy milyen bünteto paramétert használjunk, hogy a leheto legjobb alternatív megoldáshoz jussunk. Ha a bünteto paraméter túl kicsi, az optimális és az alternatív megoldás túlságosan hasonló egymáshoz, és ez nem ad valódi választási lehetoséget. Ha a paraméter túl nagy, az alternatív megoldás túlságosan gyenge lesz. A legjobb választásnak az tunik, ha közepes ε-t választunk. Ezt fogjuk illusztrálni a következo, útvonaltervezo példában. 14.5. példa. Tegyük fel, hogy egy adott kezdo és végpont közötti útvonalat kell megterveznünk. Ismerjük az átlagos utazási idoket minden szakaszra vonatkozóan, és két útvonalat tervezhetünk. Az utolsó pillanatban ismerjük meg a tényleges utazási idoket, és ekkor választhatjuk ki a gyorsabbat a két jelöltünk közül. Legyen az elso útvonal az, amelyik az átlagos utazási idok alapján a leggyorsabb, a második pedig egy olyan, amit a bünteto módszer szerint találtunk. A kérdés az, hogy milyen bünteto paramétert használjunk, hogy a gyorsabb út tényleges utazási idejét minimalizálni tudjuk Konkrétan, vegyünk véletlenszeruen generált példákat a legrövidebb útvonal problémára egy 25 25-ös méretu súlyozott, irányított, rácsos G = (V, E, w) gráfban. Az élek súlyainak eloszlása legyen egyenletes a [0,1] intervallumban. Kiszámoljuk a bal alsó sarokból a jobb felsobe vezeto, minimális súlyú P 0 útvonalat. Ezután oly módon büntetjük a P 0 éleit, hogy megszorozzuk azokat 1 + ε-nal, és kiszámolunk egy sor ε-büntetés melletti megoldást P ε1 -et, P ε2 -ot,..., P ε30 -et, ε = 0.025, 0.050,..., 0.750-re. Így 30 megoldás párt kapunk, {S 0,S ε1 }, {S 0,S ε2 },..., {S 0,S ε30 }-at, ezeket tudjuk összehasonlítani. Az élek w(e) súlya a késedelem nélküli, átlagos utazási idot jelöli, vagyis azt a minimális idot, amire forgalmi dugó nélkül az adott útszakaszon szükség van. Az élre vonatkozó ŵ(e) tényleges utazási ido ettol a következoképpen térhet el: ŵ(e) = λc(e) w(e): p valószínuséggel, w(e): 1 p valószínuséggel, egymástól függetlenül minden élre. Itt a λc(e) számok egymástól független véletlen számok, amelyek egyenletesen oszlanak el az [1, c] intervallumban. A 0 p 1 paramétert hiba valószínuségnek, a c 1 paramétert pedig hiba szélességnek nevezzük. Minden {S 0,S εi } párra kiszámoljuk a ŵ(s 0 ) és ŵ(s εi ) függvények minimumát. Azért, hogy jobban érzékeljük annak elonyét, hogy két választási lehetoségünk van egy helyett, képezzük az elobbi értéknek az S 0 optimális megoldás értékével vett hányadosát. min{ŵ(s 0),ŵ(S εi )} φ εi = ŵ(s 0 ) (i = 1,...,30). Kiszámoltuk a φ εi értékeket 100,000 véletlenszeruen generált 25 25-ös rácsos gráfra, ahol a hiba valószínuség p = 0.1 volt, a hibaszélesség pedig c = 8. A 14.3. ábrán a φ εi átlagos értékeit láthatjuk ε1 = 0.025, ε2 = 0.050,..., ε30 = 0.750-re. Amint az a 14.3. ábrán is látható, a megoldás párok φ ε várható minosége unimodális ε-ra nézve. Ez azt jelenti, hogy φ ε eloször csökken, majd növekszik növekvo ε-ra. Ebben a példában ε 0.175 az optimális bünteto paraméter.
14.2. Több lehetséges megoldás el állítása 593 100 98 % 96 94 92 90 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 ε 14.3. ábra. φ εi értékei ε1 = 0.025, ε2 = 0.050,..., ε30 = 0.750-re 25 25-ös rácson. További kísérletek azt is kimutatták, hogy az optimális paraméter ε a probléma méretének növekedésével csökken. (Például ε 0.6 volt 5 5-ös rácsokra, ε 0.175 25 25-ös rácsokra, és ε 0.065 100 100-as rács gráfokra.) A büntetéses megoldások monotonitási tulajdonságai Függetlenül attól, hogy egyszerre az összes ε-büntetés melletti megoldást generáljuk-e, vagy csak egyetlen egyet, a következo strukturális tulajdonságok bizonyíthatók: Az ε bünteto tényezo fokozatos növekedésével olyan B ε megoldásokat kapunk, amelyekre a célfüggvény p bünteto része monoton módon egyre jobban illeszkedik (a megoldás egyre kevesebb büntetett részt tartalmaz), az eredeti w célfüggvény monoton módon egyre rosszabbá válik, ami kompenzálja a bünteto részben bekövetkezo javulást. A fenti állításokat a következo tétel mondja ki pontosan. 14.3. tétel. Legyen w : E R egy valós értéku függvény, p : E R + pedig egy pozitív valós értéku függvény az E-n. Legyen B ε a 14.2. deníciónak megfeleloen deniálva minden ε R + -ra. Ekkor a következo négy állítás igaz. 1. p(b ε ) gyengén monoton csökkeno ε-ra nézve. 2. w(b ε ) gyengén monoton növekvo ε-ra nézve. 3. A w(b ε ) p(b ε ) különbség gyengén monoton növekvo ε-ra nézve. 4. w(b ε ) + ε p(b ε ) gyengén monoton növekvo ε-ra nézve. Bizonyítás. Legyen δ és ε két tetszoleges nem negatív valós szám, amelyekre 0 δ < ε.
594 14. Ember-gép kölcsönhatás B δ és B ε deníciójából adódóan a következo egyenlotlenségek teljesülnek. 1. ε < esetén w(b ε ) + ε p(b ε ) w(b δ ) + ε p(b δ ), (14.1) w(b ε ) + δ p(b ε ) w(b δ ) + δ p(b δ ). (14.2) (14.2)-t kivonva (14.1)-bol a következot kapjuk: (ε δ) p(b ε ) (ε δ) p(b δ ) : (ε δ) > 0 p(b ε ) p(b δ ). (14.3) ε = esetén (14.3) ) egyenlotlenség közvetlenül következik a B deníciójából. 2. Vonjuk ki (14.3)-at (14.2)-bol megszorozva δ-val, ekkor a következot kapjuk: w(b ε ) w(b δ ). (14.4) 3. Vonjuk ki (14.3)-at (14.4)-bol, ekkor a következot kapjuk: w(b ε ) p(b ε ) w(b δ ) p(b δ ). 4. (14.2)-bol az ε > δ 0 egyenlotlenség felhasználásával a w(b δ ) + δ p(b δ ) w(b ε ) + δ p(b ε ) w(b ε ) + ε p(b ε ) w(b ε ) + ε p(b ε ) w(b δ ) + δ p(b δ ) (14.5) egyenlotlenséget kapjuk. Több alternatív megoldás létrehozása ugyanarra az ε bünteto paraméterre Ha adva van egy S 0 megoldás és további alternatív megoldásokra van szükségünk, akkor alkalmazhatjuk a bünteto módszert többször egymás után, különbözo ε1 < < εm paraméterekkel büntetve az S 0 -t. Az így kapott megoldások rendre S ε1,s ε2,...,s εm. Ennek a módszernek az a nagy hátránya, hogy csak az eredeti S 0 megoldásnak és az egyes alternatív megoldásoknak a közös részére van hatása az εi értékeknek, de két különbözo alternatív megoldás közös részére nincsen hatása. Ezért az S εi és S εj nagyon hasonló is lehet különbözo i-re és j-re (i j). Ezt elkerülhetjük, ha a bünteto módszert iteratívan alkalmazzuk ugyanarra az ε-ra. ITERATÍV-BÜNTETO-MÓDSZER(w, p, k, ε) 1 oldjuk meg az eredeti minw(b) problémát és keressük meg az optimális S 0 megoldást 2 deniáljuk a p 1 (B) ε w(b S 0 ) bünteto függvényt 3 oldjuk meg a módosított minw(b) + ε p 1 (B) problémát és keressük meg az S 1 megoldást 4 for j 2 to k 5 do p j (B) ε w(b S 0 ) + ε w(b S 1 ) + + ε w(b S j 1) 6 oldjuk meg a módosított minw(b) + ε p j (B) problémát és keressük meg az S j megoldást 7 return (S 0,S 1,...,S k ) Az 5. lépést a következo változattal is helyettesíthetjük:
14.2. Több lehetséges megoldás el állítása 595 5 do p j (B) ε w(b (S 0 S 1 S j 1)) Az elso esetben (5) a j számú S 0,S 1,...S j 1 megoldás közül r-hez tartozó megoldásrészt r ε tényezovel bünteti. A második esetben (5 ) az S 0,S 1,... or S j 1 megoldások közül legalább egyhez tartozó megoldásrészt egyszeres multiplicitással bünteti. A teljesítménybeli különbség a két eset között jelentos lehet. A legrövidebb útvonal problémára azonban három (S 0,S 1 és S 2 ) megoldás esetén az (5) változat valamivel jobb eredményt adott. 14.6. példa. Vegyük ismét a 14.2. ábrán látható G = (V, E) gráfot. Az ε = 0.1 bünteto paraméterre vonatkozóan keressünk három megoldást. Az S-bol T-be vezeto legrövidebb út P D, amelynek hossza 23, és a következo csúcsokat érinti: S - A - C - D - F -T. Ha a P D éleinek hosszát megszorozzuk 1.1- del, és megoldjuk a kapott legrövidebb út problémát, akkor a P B útvonalat kapjuk, amely a következo csúcsokon megy keresztül: S - A - B - F - T. Ha az (5) lépésben megadott módszert követjük, akkor az (A,C), (C, D), (D, F), (A, B) és (B, F) élek hosszait kell 1.1 bünteto tényezovel megszoroznunk. Az (S, A) és (F, T) éleket 1.2-vel kell megszoroznunk (dupla büntetés). Az ily módon kapott optimális megoldás P H lesz, ami az S - G - H - T csúcsokon megy keresztül. 14.2.5. Lineáris programozás büntet módszer Jól ismert tény, hogy a legrövidebb útvonal probléma, hasonlóan sok más áramlási problémához, lineáris programozással is megoldható. A lineáris programozás segítségével alternatív megoldások is létrehozhatók. Eloször az eredeti legrövidebb útvonal problémára mutatjuk be a lineáris programozást. A legrövidebb útvonal probléma lineáris programként megfogalmazva Vegyünk egy G = (V, E) irányított gráfot, és egy w : E R + függvényt, amelyik a gráf minden éléhez egy hosszúságot rendel. Legyen s és t a gráf két megkülönböztetett pontja. Melyik a legrövidebb egyszeru útvonal s-bol t-be? Minden e = (i, j) E élre bevezetünk egy x e változót. x e -nek 1 értéket kell kapnia ha az e él része a legrövidebb útvonalnak, egyébként pedig 0-t. Jelöljük S(i) = {j V : (i, j) E} V-vel az i csúcsra rákövetkezo csúcsok halmazát, P(i) = {j V : (j,i) E} V- vel pedig az i csúcsot megelozo csúcsok halmazát. Az LP legrövidebb-út lineáris program a következoképpen formalizálható: min w(e) x e e E feltéve, hogy x (s,j) j S(s) j P(s) x (t,j) j S(t) j P(t) x (i,j) j S(i) j P(i) x (j,s) = 1 kimeno feltétel az s kezdopontra vonatkozóan, x (j,t) = 1 bemeno feltétel a t végpontra vonatkozóan, x (j,i) = 0 minden további i V\{s,t}pontra Kirchhoff-feltételek a belso pontokra 0 x e 1 minden e E-re.
596 14. Ember-gép kölcsönhatás S A 1 1.1 1 B 1 1 1.2 C 1 D 14.4. ábra. Példa gráf az LP-bünteto módszerhez. T A kezdo és végpontra vonatkozó feltételek miatt s egy forrás, t pedig egy nyelo. A Kirchhoff-feltételek miatt nincs több forrás, sem pedig nyelo. Ezért kell, hogy legyen egy s-bol t-be vezeto kapcsolat. Nem nyilvánvaló, hogy ez a kapcsolat egy egyszeru út. Az x e változóknak lehetne nem egész értéke is, vagy körök is elofordulhatnának bárhol. Van azonban egy alapveto áramlástani tétel, amelyik azt mondja ki, hogy az LP legrvidebb t lineáris programnak van olyan optimális megoldása, amelyre minden x e > 0 értéke egyenlo 1-el. Az x e = 1-nek megfelelo élek egy egyszeru útvonalat adnak s-bol t-be. 14.7. példa. Vegyük a 14.4. ábrán látható gráfot. A legrövidebb útvonal problémához tartozó lineáris programozási feladat most hat egyenloség feltételt tartalmaz (minden csomópontra egyet), és hét egyenlotlenség párt (minden élre egy párt). min(x S A + x S B + x BC + x CT + x DT ) 1 + x AC 1.1 + x BD 1.2 feltéve, hogy x S A + x S B = 1, x CT + x DT = 1, x S A x AC = 0, x S B x BC x BD = 0, x AC + x BC x CT = 0, x BD x DT = 0, 0 x S A, x S B, x AC, x BC, x BD, x CT, x DT 1. Az optimális megoldásra x S B = x BC = x CT = 1. Egy lineáris programozási feladat, amelyik két alternatív útvonalat ad meg s-bol t-be Az alábbiakban megadjuk annak a feladatnak a lineáris programozásbeli reprezentációját, amelyik két alternatív útvonalat keres meg s-bol t-be. Minden e = (i, j) E élre bevezetünk két változót, x e -t és y e -t. Ha az e él mindkét útvonalnak része, akkor x e és y e is 1 értéket fog kapni. Ha az e él csak egy útvonalnak része, akkor x e értéke 1 lesz, y e értéke pedig 0. Egyébként mind x e, mind y e 0 értéket kap. ε > 0 egy bünteto paraméter, amellyel a mindkét útvonalban szereplo éleket büntetjük. A fentiek gyelembe vételével a következoképpen formalizálhatjuk az LP 2-rövid-út lineáris programozási feladatot:
14.2. Több lehetséges megoldás el állítása 597 min f(x,y) := feltéve, hogy j S(s) j S(t) j S(i) e E x (s,j) + y (s,j) x (t,j) + y (t,j) x (i,j) + y (i,j) w(e) x e + (1 + ε) w(e) y e j P(s) j P(t) j P(i) x (j,s) + y (j,s) = 2 feltétel az s kezdopontra vonatkozóan x (j,t) + y (j,t) = 2 feltétel a t végpontra vonatkozóan x (j,i) + y (j,i) = 0 0 x e,y e 1 minden e E-re. Kirchhoff-feltételek minden további pontra i V\{s,t} 14.8. példa. Tekintsük ismét a 14.4. ábrán szereplo gráfot. A két alternatív útvonal problémához tartozó lineáris programozási feladat most hat egyenloség feltételt tartalmaz (minden csúcspontra egyet), és 2 7 = 14 egyenlotlenség párt. min (x S A + x S B + x BC + x CT + x DT ) 1 + x AC 1.1 + x BD 1.2 + [ (y S A + y S B + y BC + y CT + y DT ) 1 + y AC 1.1 + y BD 1.2 ] (1 + ε) feltéve, hogy x S A + y S A + x S B + y S B = 2, x CT + y CT + x DT + y DT = 2, x S A + y S A x AC y AC = 0, x S B + y S B x BC y BC x BD y BD = 0, x AC + y AC + x BC + y BC x CT y CT = 0, x BD + y BD x DT y DT = 0, 0 x S A, x S B, x AC, x BC, x BD, x CT, x DT,y S A,y S B,y AC,y BC,y BD,y CT,y DT 1. A lineáris programozási feladatot úgy értelmezhetjük, mint egy minimális költségu áramlási problémát. De hol van vajon a kapcsolat a lineáris programozási feladat, és a között a probléma között, hogy keresnünk kell két útvonalat s-bol t-be? 14.4. tétel. Ha az LP 2-rövid-út lineáris programozási feladatnak van optimális megoldása, akkor van olyan (x, y) optimális megoldása is, amelyik a következo tulajdonságokkal rendelkezik. Léteznek olyan E 1, E 2, E 3 E diszjunkt halmazok, amelyekre 1. E 1 E 2 =, E 1 E 3 = és E 2 E 3 =, 2. x e = 1, y e = 0 minden e E 1 E 2, 3. x e = 1, y e = 1 minden e E 3, 4. x e = 0, y e = 0 minden e E 1 E 2 E 3. 5. E 1 E 3 egy P 1 s-bol t-be vezeto utat reprezentál, E 2 E 3 egy P 2 s-bol t-be vezeto utat ábrázol. E 3 pedig azon élek halmaza, amelyek mindkét útvonalban szerepelnek.
598 14. Ember-gép kölcsönhatás a c e g S b d f h T 14.5. ábra. Példa két útvonal nem egyértelmu dekompozíciójára. 6. Nem létezik olyan (Q 1, Q 2 ) ) útvonal pár, amelyik jobb lenne (P 1, P 2 )-nél, azaz w(p 1 ) + w(p 2 ) + ε w(p 1 P 2 ) w(q 1 ) + w(q 2 ) + ε w(q 1 Q 2 ), minden (Q 1, Q 2 ) párra. Ez éppen azt jelenti, hogy a P 1 és P 2 -beli élhosszak összege plusz a kétszer használt élekre vonatkozó büntetés minimális. A fentiekhez még az alábbi megjegyzéseket fuzhetjük. Minden élhez két változó tartozik, x e és y e. Ezt értelmezhetjük úgy is, mint egy olyan utcát, amelyiken van egy normális sáv, és egy további extra sáv. Az extra sáv használata drágább, mint a normális sávé. Ha egy megoldás egy élt csak egyszer használ, akkor az olcsóbb, normális sávot használja. Ha azonban a megoldás kétszer használja az élt, akkor a normális sávot és az extra sávot is használja. Az (x, y) megoldásnak a kezdo csúcspontból a végso csúcspontba vezeto útvonalának a felbontása a legtöbb esetben nem egyértelmu. A 14.5. ábrán S-bol T-be két útvonal párt is eloállíthatunk, (a c e g, b d f h)-t és (a c f h, b d e g)-t. Mindkét pár egyformán optimális a 14.4. tétel értelmében. Így a felhasználónak kell választania közülük más, további szempontok alapján. A bünteto módszer és az LP-bünteto módszer általában különbözo megoldásokhoz vezet. A bünteto módszer kiszámolja az egyetlen legjobb megoldást, és egy megfelelo alternatívát. Az LP-bünteto módszer két jónak mondható megoldást számol ki, amelyek között kicsi az átfedés. A 14.4. ábrán láthatjuk, hogy ez a pár nem feltétlenül tartalmazza a legjobb megoldást. Az ábrán az S -bol T-be vezeto legrövidebb útvonal P 1 = S B C T, amelynek hossza 3. Minden ε > 0.1-re az ε büntetés melletti megoldás P 2 = S A C T. A (P 1, P 2 ) útvonal pár összhossza 6.1, a közös szakaszok hossza 1.0. ε > 0.2-re azonban az LP-bünteto módszer a (P 2, P 3 ) = (S A C T,S B D T) útvonalakat állítja elo, amelyek össz hossza 6.3, a közös szakaszaik hossza pedig 0. Lehetséges lenne k darab megoldásjelölt útvonal megkeresése is valamely k > 2-re, ha bevezetünk k darab xe, 0 xe, 1..., xe k 1 változót minden e élre, és beállítjuk s kínálatát és t
14.2. Több lehetséges megoldás el állítása 599 keresletét k-ra. Célfüggvényként használhatjuk például a következot: min f(x 0,..., x k 1 ) := vagy min f(x 0,..., x k 1 ) := k 1 e E j=0 k 1 e E j=0 (1 + j ε) w(e) x j e (1 + ε) j w(e) x j e. Az LP bünteto módszer nem csak a legrövidebb útvonal problémára muködik. Általánosíthatjuk azt bármilyen, lineáris programozással megoldható problémára. Egy hasonló módszert, az egész értéku lineáris programozásos bünteto módszert alkalmazhatunk egész értéku lineáris programozási feladatokra. 14.2.6. Büntet módszer heurisztikák alkalmazásával A 14.2.2. pontban a bünteto módszernek egzakt algoritmusokkal együtt való alkalmazását tárgyaltuk. Ilyen volt például a Dijkstra-algoritmus, vagy a dinamikus programozás a legrövidebb útvonal problémára. A bünteto módszert azonban (egzakt megoldások helyett) heurisztikák esetén is alkalmazhatjuk több megoldás jelölt megkeresésére. 14.9. példa. Egy jól ismert heurisztika az utazóügynök problémára a lokális keresés kettos cserével (lásd a 14.2.1. pontot). BÜNTETÉS-AZ-UTAZÓ-ÜGYNÖK-PROBLÉMÁRA-KETTOS-CSERÉVEL 1 alkalmazzuk a kettos csere heurisztikát a büntetés nélküli problémára, az így kapott lokálisan optimális megoldás (ami nem feltétlenül globálisan optimális) legyen T 2 büntessük meg a T-hez tartozó éleket úgy, hogy megszorozzuk a hosszukat (1 + ε)-nal 3 alkalmazzuk a kettos csere heurisztikát a büntetés melletti problémára, az így kapott alternatív megoldás legyen T ε 4 számoljuk ki a T ε módosítás nélküli hosszát 5 return (T,T ε ) Kérdés: Milyen ε 0 paramétert használjunk, hogy a leggyorsabb útvonal utazási idejét minimalizálni tudjuk? A 14.5. példában már ismertetetthez hasonló kísérletet végeztek el az utazóügynök problémára 25 véletlenül kiválasztott ponttal az egységnégyzetben. A 14.6. ábra az arányosított átlagokat mutatja az ε0 = 0.000, ε1 = 0.025,..., ε30 = 0.750 értékekre. A megoldás párok φ ε várható minosége (most is) unimodális az ε büntetési tényezore nézve. Ez azt jelenti, hogy φ ε eloször csökken, majd növekszik növekvo ε-ra. Ebben a példában ε 0.175 az optimális bünteto paraméter. További kísérletek azt is kimutatták, hogy az ε optimális paraméter a probléma méretének növekedésével csökken. Gyakorlatok 14.2-1. A következo, utazóügynök problémára vonatkozó programozási gyakorlat segít abban, hogy jobban átérezzük a lokális optimumok nagy változatosságát. Generáljunk vélet-