Philosophiae Doctores A sorozatban megjelent kötetek listája a kötet végén található
2
Benedek Gábor
Evolúciós gazdaságok szimulációja
AKADÉMIAI KIADÓ, BUDAPEST 3
Kiadja az Akadémiai Kiadó, az 1795-ben alapított Magyar Könyvkiadók és Könyvterjesztõk Egyesülésének tagja 1117 Budapest, Prielle Kornélia u. 19. www.akkrt.hu www.szakkonyv.hu
Elsõ magyar nyelvû kiadás: 2005
© Benedek Gábor, 2005
Minden jog fenntartva, beleértve a sokszorosítás, a nyilvános elõadás, a rádió- és televízióadás, valamint a fordítás jogát, az egyes fejezeteket illetõen is.
4
Zolának
5
6
TARTALOM
1. Bevezetés ............................................................................................................. 1.1 Az értekezés felépítése ................................................................................. 1.2. Saját eredmények .......................................................................................... 1.3. Köszönetnyilvánítás ...................................................................................... 2. A szimulációs módszertan ................................................................................... 2.1. Definíció, alapfogalmak ............................................................................... 2.2. A probléma és a rendszer definiálása ........................................................... 2.3. A formális modell ......................................................................................... 2.4. Az elsõdleges kísérletek megtervezése ........................................................ 2.5. Inputanalízis és inputadatok generálása ....................................................... 2.6. A modell elkészítése (programozás) ............................................................ 2.7. Verifikáció, validáció és modellkalibrálás ................................................... 2.8. Kísérletezés ................................................................................................... 2.9. Outputanalízis ............................................................................................... 2.10. Összefoglalás .............................................................................................. 3. Az evolúciós módszertan ..................................................................................... 3.1. Evolúciós elméletek ...................................................................................... 3.2. A numerikus optimalizálás ........................................................................... 3.3. A genetikus algoritmus ................................................................................. 3.4. A neurális háló .............................................................................................. 3.5. Összefoglalás ................................................................................................ 4. Az ACE-módszertan ............................................................................................ 5. A KiyotakiWright-modell .................................................................................. 5.1. A modell ....................................................................................................... 5.2. Analitikus eredmények ................................................................................. 5.3. Szimulációs eredmények .............................................................................. 5.4. A KiyotakiWright-modell kiterjesztései ..................................................... 6. A sokszereplõs modellek kommunikációstruktúrái ............................................. 6.1. Az elmélet ..................................................................................................... 6.2. A gráfstruktúrák kimutatása.......................................................................... 6.3. Gyakorlati alkalmazás .................................................................................. 6.4. Kommunikációs struktúrák és az egyensúlyelmélet ..................................... 6.5. Összefoglalás ................................................................................................ 7. A kisvilágok pénzmodellje .................................................................................. 7.1. A modell ....................................................................................................... 7.2. Kisvilágstruktúra-alkotás .............................................................................. 7.3. Kísérletek és következtetések ....................................................................... 8. Összefoglalás ....................................................................................................... Irodalom ...................................................................................................................
9 10 12 12 13 13 18 19 21 22 31 34 36 36 40 41 41 46 52 58 66 67 71 72 75 79 93 97 97 102 108 110 110 111 111 113 116 119 121 7
8
1. BEVEZETÉS A tudomány nem próbál végsõ magyarázatot adni, fogalmakat értelmezni is alig. A természettudomány modelleket alkot. Modell alatt egy olyan matematikai struktúra értendõ, amelyik bizonyos szóbeli interpretáció hozzáfûzésével leírja a jelenséget. Egy ilyen matematikai struktúra létjogosultságát egyedül az adja, hogy sikeresen elõrelátja a jelenségeket, tehát mûködik. (Neumann János)
A modern gazdaságelméletben alkalmazott módszerek és gazdasági elemzések eszköztára a 20. század végére rendkívüli módon kiszélesedett. Leginkább a matematikai és statisztikai módszerek terjedtek el és fejlõdtek tovább, közgazdasági modelleken keresztül. Így napjainkban kevés olyan elméleti publikáció jelenik meg, amely ne alkalmazná a játékelmélet, a variációszámítás, a sztochasztikus folyamatok vagy más bonyolult területek módszereit. Az egzakt módszerek bonyolultságának növekedése azonban sajátos ellentmondást szült az elmélet és a gyakorlati alkalmazások között. A modern matematikai és statisztikai módszerek ugyanis pontosan azt a célt hivatottak szolgálni, hogy a gazdaság folyamatait jobban és pontosabban magyarázzák meg, és mind a gazdaság egészét irányító (makroszintû), mind a vállalati (mikroszintû) döntéshozók számára olyan apparátust biztosítsanak, amelynek segítségével megalapozottabb és biztosabb döntéseket hozhatnak. A valóságban azonban a folyamatosan bõvülõ szakmai háttérismereteket igénylõ módszereket és a nehezen interpretálható modelleket a gazdaság gyakorlati szakemberei egyre nehezebben képesek adaptálni. Az elméleti lehetõség és a gyakorlati oldal egymástól erõsen eltávolodott. Kivételként a pénzügyi területen érezhetjük azt, hogy a modern matematikai módszereket nap mint nap alkalmazzák (többek között a Wall Street matematikus- és fizikus-közgazdász tanácsadói), a valóságban azonban a legtöbb napi szintû elemzés és döntés (pl. kockázatkezelés) 30 éves módszerekre épül. A közgazdaságtan másik módszertani lehetõsége a számítástechnika alkalmazása. A számítógép megjelenése a legtöbb tudományágat döntõ mértékben befolyásolta, pedig tulajdonképpen csak két funkciót valósít meg; egyrészt rendkívül nagy méretû adatbázist képes hatékonyan tárolni és kezelni, másrészt óriási sebességgel képes számolni. E tulajdonságok miatt lehetõvé vált, hogy a nagy mennyiségû információ birtokában más modellek épüljenek, illetve az elméleteket és az elõrejelzéseket úgy változtassák, hogy azok a megfigyelt és rögzített adatok tükrében jobban és pontosabban írják le a valóságot. A számítógépes modellezés folytán lehetõség nyílt olyan korlátozó feltételezések elhagyására, amelyek egy-egy korábbi modellt irreálissá tettek. (Ezek közül az egyik legsúlyosabb feltételezés a linearitás.) Így az analitikus megoldások mellett megjelentek a numerikus megoldások. A számítógépes modellezés megjelenésével ugyanakkor azt várhatnánk, hogy a közgazdaság elméleti, illetve gyakorlati területén dolgozó szakemberek közötti távolság csökken, hiszen az elméleti szakemberek jóval komplexebb modelleket is ki tudnak értékelni, a gazdasági döntéshozók pedig jobban mûködõ modellek eredményeire alapozva hozhatják meg döntéseiket. Sajnos a közgazdaság-tudomány területén ez a közeledés még csak kezdeti stádiumban van. A számítógép töretlen fejlõdésének és egyre népszerûbbé válásának következtében azonban könnyen lehet, hogy a közeli jövõben a számítástechnika fogja betölteni a híd szerepét az elméleti és a gyakorlati oldal között. Analitikusan meg nem határozható vagy nehezen meghatározható problémák kezelésére számtalan esetben alkalmaznak numerikus módszereket a közgazdászok. Ilyen pél9
dául a numerikus integrálás, a numerikus egyenlet/egyenlõtlenség megoldás, a differenciálegyenletek numerikus megoldása vagy az operációkutatás. Sõt, sokszor bizonyos problémák analitikus megoldására is numerikus módszereket vesznek igénybe, mint például a szimbolikus programozás1 (integrálás, algebrai egyenlet megoldása, differenciálegyenlet megoldása stb.) esetén. A jelen értekezés azonban nem általánosságban a numerikus módszerekkel, illetve ezek közgazdasági alkalmazásával, hanem ennek egy részterületével, a szimulációval foglalkozik. A vizsgálódás középpontjában minden esetben valamilyen gazdasági modell áll, amelynek vizsgálatára nagyon sok esetben az analitikus módszerek mellett numerikus módszereket használunk. Tekintsük ezt a közgazdasági modellt egy olyan leképzésnek, amely a valóságban megfigyelhetõ változók halmazához rendel egy halmazt. Ilyen értelemben a szimuláció nem más, mint ezen leképzések (bizonyos esetben akár függvények) analízise. Így a szimuláció legfontosabb feladatai gyakorlatilag megegyeznek az analízisben meghatározott feladatokkal, úgymint függvénykiértékelés (leszámolás), egyenletmegoldás (célértékkeresés) vagy szélsõérték-keresés. Kiinduló esetben a gazdasági modell elegendõen egyszerû kell legyen ahhoz, hogy analitikusan tanulmányozni lehessen. A szimulációra abban az esetben van szükség, amikor az egyes feltételezések feloldása, illetve a modell dimenziójának növelése annyira megnehezíti a feladatot, hogy annak kézi kiszámolása lehetetlenné válik. Még ilyen esetekben is jellemzõ az, hogy az analitikusan kiszámolható eredményeket összehasonlítás végett numerikusan is elõállítják.2 Az értekezésben azt a célt tûztük ki, hogy bemutassuk, hogyan lehet a szimulációs módszertant hatékonyan alkalmazni azokban az esetekben, amikor átléptük az analitikus módszerek határait. Maga a szimulációs módszertan is rendkívül fiatal, kevesebb mint ötvenéves. Az elméleti közgazdaságtanban való elterjedéséhez azonban az igazi lökést a mesterségesintelligencia-kutatások elsõsorban 1990-es éveinek eredményei adták. A társadalomtudományok számára felhasználható, mesterséges intelligenciát is alkalmazó, szimulációs módszertan csak 2001-ben a Journal of Economic Dynamics and Control különszámában kapta meg az azt megilletõ publicitást és önálló nevet Agent-based computational economics (ACE)3 , amelyet sokszereplõs szimulációs közgazdaságtannak fordítunk a továbbiakban. Az értekezés az általánosan alkalmazható szimulációs megoldásokon túlmenõen erre a fiatal és rendkívül ígéretesnek látszó módszertani területre kíván összpontosítani.
1.1. Az értekezés felépítése Az értekezés két jól elkülöníthetõ részbõl áll. Az elsõ rész a 24. fejezet a módszertani ismertetést tartalmazza, és az a célja, hogy bevezesse azokat a fogalmakat és eljárásokat, amelyeket a gyakorlati szimulációs modellek esetében alkalmazni lehet. Ezek a fejezetek erõsen épülnek a szimulációs szakirodalomra, valamint a szerzõ által látoga-
1 Szimbolikus programozáson olyan matematikai mûveletek számítógépes megoldását értjük, ahol a matematikai kifejezésben paraméterek is szerepelnek (lásd Maple vagy Matlab). 2 A szakirodalom ezt a technikát benchmarkingnak nevezi. 3 Tesfatsion 2001.
10
tott manchesteri és limericki egyetemeken oktatott szimulációs kurzusok jegyzeteire. A fejezetek strukturálása szempontjából a szerzõ által a Budapesti Közgazdaságtudományi és Államigazgatási Egyetemen oktatott Szimuláció címû tárgy jelentett nagy segítséget. A módszertani fejezet során számos példa illusztrálja a fogalmakat, amelyeket a szakirodalomban fellelhetõ modellek mellett a szerzõ társszerzõs és saját publikációi, valamint hazai vállalatoknál végzett kutatási eredményei képeznek. A második rész az 57. fejezet a szimulációs módszertan konkrét alkalmazását tartalmazza. Ezek a modellek, bár látszólag elkülönülnek, a második rész végére egy új kutatási irányt határoznak meg, amely mind az elméleti, mind a gyakorlati közgazdászok számára alkalmazható. A fejezetekben szereplõ modellek részben a szerzõ publikációi, illetve konferenciaelõadásai, részben pedig további kutatási eredményei. Az értekezés elsõ része a szimulációs módszertan bemutatásával kezdõdik (2. fejezet). A szakirodalomban számos olyan könyv található, amely a szimulációs módszerek alkalmazását írja le. A probléma azonban az, hogy ezek elsõsorban a mûszaki tudományok területére koncentrálnak, és az itt szereplõ közgazdasági modellek szinte kizárólag vállalatgazdasági kérdésekkel foglalkoznak. (Például kiszolgálási rendszerek szimulációjával, készletgazdálkodási problémával stb.) A 2. fejezetben ezekre az irodalmakra építünk, de az elméleti közgazdaságtani és pénzügyi alkalmazásokra fókuszálunk. A 3. fejezetben a mesterséges intelligencia módszereit mutatjuk be. Ez a fejezet erõsen épít Benedek (2000, 2001) publikációira, de azokat kiegészíti a lényeges algoritmikus részekkel és tételekkel. A 2. és 3. fejezet elõkészíti a 4. fejezetben bemutatásra kerülõ sokszereplõs szimulációs közgazdaságtan módszerét, továbbiakban ACE-t. Ez a fejezet kapcsolja össze a szimulációs és a mesterséges intelligencia módszerei lehetõségeit, és alkalmazza azt olyan közgazdasági modellekben, ahol elkülönült szereplõk viselkedése határoz meg valamilyen gazdasági reakciót vagy jelenséget. A második fejezet modelljei erre a módszertanra épülnek. A fejezet elsõsorban a Journal of Economic Dynamics and Control ACE-módszertannal foglalkozó cikkeire és a Leigh Tesfatsion által szerkesztett ACE hivatalos honlapjáról letölthetõ anyagokra épít.4 Az 5. fejezetben a KiyotakiWright-modellel foglalkozunk (KiyotakiWright 1989). Az eredeti modell ismertetése után olyan kibõvítéseket elemzünk, amelynek analitikus megoldása ismeretlen, vagy az analitikus megoldást csak jóval késõbb, a numerikus eredmények inspirálására sikerült meghatározni. A 6. fejezetben egy látszólag új témakört érintünk, a társadalmi hálózatok problémáját. A modellt az információ telekommunikációs eszközökön keresztüli terjedésének a kutatása és szimulációja alapozta meg. A kutatás eredményeinek ismertetése mellett a fejezetben elsõsorban Watts (1999) munkája segítségével bevezetünk néhány alapvetõ gráfelméleti fogalmat. A 7. fejezetben megmutatjuk azt, hogy hogyan illeszkedik bele a KiyotakiWright-féle modell világába a társadalmi hálózatok problémaköre. Sõt továbbmegyünk, és felvillantunk néhány olyan elméleti modellt, ahol az ACE-módszertan és a hálózati szemlélet alkalmazásával új eredmények érhetõk el. A 8. fejezetben összefoglaljuk az eredményeket.
4
http://www.econ.iastate.edu/tesfatsi/ace
11
1.2. Saját eredmények A magyar közgazdasági szakirodalomban rendkívül kevés szimulációval foglalkozó tanulmány található. Ezek többsége valamilyen mûszaki vagy vállalatgazdasági problémához kapcsolódik. A kifejezetten elméleti kutatásokban a szimuláció alkalmazását kizárólag statisztikai/ökonometriai, illetve pénzügyi kutatásokban tapasztalhatjuk. Így a módszertan elméleti kutatásokba történõ bevezetése a szerzõ önálló munkája. Különösen igaz ez az ACE-módszertanra, amely annyira fiatal terület, hogy hazai publikációk még nem születtek ebben a témában. Az 5. fejezetben bemutatásra kerülõ KiyotakiWright-modell kibõvítése illeszkedik a nemzetközi szakirodalomhoz. Az itt megfogalmazott eredmények újdonsága elsõsorban az új módszerek bevezetésének és alkalmazhatóságának vizsgálatában rejlik. A szakirodalomban szereplõ eredmények numerikus módszerekkel történõ reprodukálása biztosítja a komplexebb kiterjesztések vizsgálatának lehetõségét. A 6. fejezet modellje és az ott alkalmazott módszerek kifejlesztése a szerzõ munkája. (Természetesen a vállalati kutatás kivitelezésén egy egész csapat dolgozott.) A 7. fejezet modelljei szorosan kapcsolódnak az elõzõ fejezetekhez és szintén saját eredménynek tekinthetõk. A disszertációhoz szervesen kapcsolódik a Budapesti Közgazdaságtudományi Egyetem Matematikai Közgazdaságtan és Gazdaságelemzés Tanszékének honlapján található melléklet (http://www.bke.hu/matkg/szimulacio.htm), amelyrõl a késõbbiekben bemutatásra kerülõ programok nagy részének forráskódja, illetve futtatható verziója letölthetõ.
1.3. Köszönetnyilvánítás Ezúton is szeretném megköszönni Molnár Istvánnak, Tóth Nándornak és Zalai Ernõnek azt a segítséget és motivációt, amely az egyetemi éveim alatt arra ösztönzött, hogy a sokak által vitatott hangsúlyú szimulációs területen kutathassak. Támogatásuknak köszönhetõen már 1997-ben a legkorszerûbb szoftverek és hardverek váltak számomra elérhetõvé, továbbá a szimuláció számos külföldi és hazai szakértõjével dolgozhattam együtt, és tanulhattam tõlük. Köszönettel tartozom témavezetõmnek, Simonovits Andrásnak, opponenseimnek Deák Istvánnak, Gáspár Bencénének, Móczár Józsefnek, Tarlós Bélának, továbbá Lipovszki Györgynek a rengeteg hasznos tanácsért, amelyek jobbá és teljesebbé tették dolgozatomat, érthetõbbé és alkalmazhatóbbá gondolataimat. Szeretnék köszönetet mondani Makara Tamásnak, Megyeri Krisztinának és Pataki Attilának, akik tudásukat és kutatási témájukat megosztották velem, így inspiráló közgazdasági problémákkal tehettem szemléletesebbé és kézzel foghatóbbá a szimulációs módszertant. Végül köszönöm szüleimnek megértésüket, támogatásukat és bátorításukat.
12
2. A SZIMULÁCIÓS MÓDSZERTAN
Ahhoz, hogy a szimulációs módszerek magas szintû alkalmazása elterjedjen a társadalomtudományok területén, el kell fogadtatni, hogy az induktív és a deduktív módszerekkel szemben a tudomány mûvelésének harmadik útja a szimulációs kísérletezés. Az idézet Axelrod (1997a) cikkébõl származik, amelyben a társadalomtudományokban alkalmazott szimulációs módszerek jelenét és jövõjét vizsgálta. A cikkbõl három gondolatot emelünk ki. Az elsõ, hogy a szimulációs modellek publikálása során nem elegendõ az eredmények és a modell ismertetése. Természetesen helykorlátok miatt nincs lehetõség a forráskód publikálására, azonban a CD-k és az internet segítségével lehetõséget kell biztosítani arra, hogy minden érdeklõdõ személyesen végrehajthassa (futtathassa) a kísérleteket. A második fontos gondolat, hogy a területen tevékenykedõ szakemberek a korábban publikált szimulációkat újra végrehajtsák, kezdve a modell építésétõl, a programozáson átmenve, a futtatásokig. Erre azért van nagy szükség, mert a numerikus módszerek sok esetben nem bizonyító erejûek. Ahhoz, hogy a hibákat és az igazi kihívásokat megtaláljuk, sokszor szükséges mások kutatási eredményeit a legelsõ lépéstõl kezdve felépíteni. Végezetül Axelrod azt hangsúlyozza, hogy a szimulációs módszertan elfogadtatásához arra is szükség van, hogy az elõzõek nyomán megalakuljon a társadalomtudósok olyan társasága, amely szimulációs módszerek segítségével végzi kutatásait. Az értekezés során ezekre a gondolatokra külön nem hívjuk fel a figyelmet. Mivel azonban a módszertan önállósodása szempontjából rendkívül fontosnak tartjuk, itt a bevezetõben hangsúlyoztuk.
2.1. Definíció, alapfogalmak A szimulációt nehéz definiálni. Az egyik lehetséges definíció szerint a szimuláció egy rendszer modelljének a megfelelõ bemenetekkel (inputokkal) történõ ellátása, mûködtetése (driving) és a kimenetek (outputok) megfigyelése (Bratley et al. 1987). A szimulációs módszertan közgazdasági alkalmazása tehát a következõképpen képzelhetõ el. Megfigyeljük a valós rendszert, majd azt megkíséreljük legfontosabb tulajdonságai alapján formálisan leírni. Ezt nevezzük modellezõ tevékenységnek. Ha a modellt beprogramozzuk, úgy a valós rendszer egy virtuális reprodukcióját kapjuk. Ebben azután bizonyos paramétereket megváltoztatva a valós rendszer viselkedésére vonatkozó megfigyelések érdekében kísérleteket hajthatunk végre. A programozási és kísérletezési tevékenységet nevezzük szimulációs tevékenységnek (2.1. ábra).
13
Számítógép
↑
→
Valós rendszer Szimuláció
Modell
←
↓
Modellezés
2.1. ábra. A szimuláció definíciója
Felmerül a kérdés, hogy mikor érdemes szimulációt alkalmazni és milyen célokat lehet ezzel elérni. A mikor kérdésre viszonylag egyszerû a válasz. Akkor kell szimulációt alkalmazni, amikor minden más lehetõség költségesebb. A más lehetõségen általában két alternatívát szoktak érteni. Az elsõ az analitikus megoldás, a másik a valós rendszeren végzett kísérletezés. Mindegyik esetben a költség is igen összetett fogalom. Költségként jelenik meg az idõráfordítás, az emberi erõforrás, az anyagi ráfordítás és a kockázati tényezõ. A valós kísérletezéssel szemben a modellezés legfõbb elõnyének azt szokták megemlíteni, hogy valós beavatkozás esetén rendkívül sok idõ telik el addig, amíg az adott beavatkozás hatásai mérhetõvé válnak. Továbbá, nagy volumenû befektetéseket igénylõ döntés esetében nem lehet próbálgatni. A modellezésnek ezzel szemben az a hátránya, hogy mivel a valóság egy leegyszerûsített mását valósítja meg elképzelhetõ a kiszámított értékek és a tényleges realizáció (valós rendszer eredményeinek) különbözõsége. Természetesnek tûnik az is, hogy abban az esetben, amikor analitikus megoldás áll rendelkezésre, felesleges a szimuláció. Sok esetben azonban az analitikus megoldáshoz vezetõ út nem egyszerû. Ilyen esetekben rendkívül nagy segítséget nyújthat a szimuláció, elsõsorban azért, hogy pontosabb képet alkothassunk a feladatról. Elõfordulhat az is, hogy egy problémának elvileg meg lehetne határozni az egzakt, analitikus megoldását, ennek ellenére szimulációs módszert használunk, mivel a probléma analitikus megoldása annyira bonyolult és mechanikus , hogy egyszerûbb a numerikus vizsgálat eredményeit használni (például leszámlálás). A szimulációs módszerek felhasználási területei a következõk:5 elõrejelzés, feladatmegoldás, gyakorlatszerzés, szórakozás, oktatás, bizonyítás és kutatás. 1. Elõrejelzés. Ezt a célt szolgálja a vállalatgazdasági alkalmazások nagy része. Például egy vállalat arra kíváncsi, hogy különbözõ árazás mellett várhatóan mekkora értékesítésre számíthat a jövõben. 2. Feladatmegoldás. A szimuláció arra is alkalmas, hogy különbözõ más módon nem meghatározható feladatokat oldjunk meg a segítségével. Ez a terület tipikusan a mesterségesintelligencia-kutatások kapcsolódási pontja. Olyan feladatokat lehet megoldani, mint például az automatikus orvosi diagnóziskészítés (adatbányászattal), beszédfelismerés (neurális hálózatokkal) vagy függvényoptimalizálás (genetikus algoritmussal). 3. Gyakorlatszerzés. Az elsõ szimulációk elsõsorban azt a célt szolgálják, hogy a szimulációt felhasználó emberek képességét javítsák egy, a valóságot kellõ pontossággal leíró, interaktív környezetben. Klasszikus példái ennek az autó- és repülõszimulátorok.
5
14
Többek között Axelrod (1997) alapján.
4. Szórakozás. Csak egy lépés az elõzõ ponttól és máris kitalált környezetek sokaságát teremthetjük meg erre a célra. 5. Oktatás. Az oktatásban használt szimulációs modellek legfontosabb célja, hogy lehetõvé tegyék a hallgatók számára a valóságban meghúzódó törvényszerûségek és összefüggések megismerését. Jó példa a Közgazdasági Egyetemen is oktatott LUDUS vállalati szimulációs tantárgy. 6. Bizonyítás. Ez a leginkább vitatott terület, annak ellenére, hogy egy klasszikus és népszerû matematikai problémát, a négyszín-tételt, számítógépes (szimulációs) lépések segítségével oldották meg. A szimulációs eszközök segítségével történõ bizonyítás olyan esetekben a leggyakoribb, amikor véges számú variációs lehetõséget kell átvizsgálni (pl. szimbolikus deriválás).6 A mesterséges intelligencia kutatói olyan programokat is készítettek, amelyek egyszerû matematikai alapelemekbõl (pl. halmazok) komoly felfedezéseket tudtak tenni (pl. Goldbach-sejtés) (Hofstadter 1998). 7. Kutatás. Utolsónak maradt az a cél, amelyet a leginkább fontosnak tartunk. A szimulációs módszerek ugyanis a kutatásban, az új összefüggések felfedezésében is igazi segítséget nyújthatnak. Az értekezés második részében elsõsorban ennek bemutatására törekszünk. A szimulációs módszertan segítségével vizsgált modelleket (röviden: szimulációs modelleket) több szempontból kategorizálhatjuk annak alapján, hogy a háttérben meghúzódó matematikai modell milyen tulajdonságú. Az elsõ kérdés, hogy az idõ a modellben folytonos vagy diszkrét változó-e. A legtöbb közgazdasági modellben az idõ folytonos változóként szerepel. Nem mindegy azonban, hogy milyen gyakran van lehetõség a szimuláció állapotváltozóit megfigyelni és beavatkozásokat végezni. Abban az esetben, ha ez csak diszkrét idõpillanatokban történhet amint az általában egy közgazdasági modellben tapasztalható , akkor diszkrétesemény-szimulációról beszélünk. Ha bármely pillanatban lehetõségünk van a beavatkozásra és a megfigyelésre, akkor folytonos szimulációról beszélünk. A szimulációban szereplõ állapotváltozókat általában folytonosnak tekintjük, de vannak olyan modellek is, amelyekben kifejezetten szimbolikus (pl. mesterséges intelligencia) vagy csak diszkrét numerikus (pl. digitális áramkörök) értéket vehetnek fel. Építhetünk természetesen olyan modelleket is, amelyekben az idõ nem szerepel. Ezek a statikus modellek. A statikus modellek szimulációja leggyakrabban a statisztikai, ökonometriai alkalmazások esetében játszik fontos szerepet, például a p-értékek numerikus elõállításánál vagy egy erõfüggvény alakjának meghatározásánál (Pataki 2001). A harmadik legfontosabb kritérium, ami alapján a szimulációs modelleket megkülönböztetjük, hogy az sztochasztikus vagy determinisztikus. Az utóbbira jó példa a determinisztikus differenciálegyenletek numerikus megoldásánál használt szimuláció. Mi a továbbiakban olyan sztochasztikus, dinamikus szimulációs modellekkel foglalkozunk, amelyekben a megfigyelési és a beavatkozási idõpontok diszkrétek, azaz diszkrét események szimulációjával. Az állapotváltozók tekintetében nem teszünk megkötéseket.
6 A véges szó sajnos nagyon is meghatározott korlátokat jelent. A Ramsey-féle R(5,5) szám megtalálásához 10400 esetet kellene megvizsgálni, ami több számításidõt venne igénybe, mint az univerzum életkora, még akkor is, ha a Föld összes számítógépe a nap 24 órájában ezt a problémát számolná (Leader 2001).
15
Az ilyen rendszerek szimulációs modelljét formálisan is meg lehet határozni.7 A formális leírásnak két szintje van: az atomi (atomic) szint és az összetett (coupled) szint.
δcon(s,x)
δint(s)
δext(s,e,x)
λ(s) S
t(s) 2.2. ábra. Az atomi szimulációs modell reprezentációja
Az atomi szint a következõ: M = 〈 X , S , Y , δ int , δ ext , δ con , λ , t 〉,
ahol
(2.1)
X: a külsõ események halmaza, S: a szekvenciális állapotok halmaza, Y: az outputok halmaza, δint: S → S : belsõ átmeneti leképzés, δext: Q × X → S : külsõ átmeneti leképzés, δcon : S × X → S : torlódási átmeneti leképzés, λ: S → S : output leképzés, t: S → R : idõzítés függvény, és
Q = {( s, e) s ∈ S , 0 ≤ e ≤ t ( s)}, ahol e az utolsó állapotváltozás óta eltelt idõ. A 2.2. ábrán láthatjuk az atomi szint modelljének felépítését. A formális modell szemléltetésére példaképpen vegyünk egy kiszolgálási feladatot.8 Tegyük fel, hogy egy csomag beérkezik egy sorbanállási rendszerbe. Ennek következtében a rendszer s állapotváltozója, jelen példánkban a várakozási sor hossza 1 egységgel növekszik. Ezt a δext függvény valósítja meg. Ezután a t függvény által megadott idõ elteltével a modell megvizsgálja a sor hosszát. Néhány csomagot eltávolít, és ennyivel csökkenti az állapotváltozó értékét, amelyet formálisan a δint függvény valósít meg. A δcon függvény eldönti, hogy mi történjen abban az esetben, ha egyszerre jelentkezik a külsõ és belsõ esemény (például meghatározza δext és δint sorrendjét). A λ függvény végül elõállítja a kimeneti változót, jelen esetben például a várakozási sor átlagos hosszát. Az összetett modell formálisan két alapvetõ objektumból áll. Komponensekbõl (amelyek lehetnek atomi szintû vagy összetett modellek) és az ezeket összekapcsoló struktúrából. A struktúra formálisan a következõ:
7 8
16
ChoCho (1997) munkájára támaszkodunk. Kiszolgálási folyamatok szimulációjával kapcsolatban ld. például BenedekMolnár 1996.
DN = 〈 D, {M i }, {I i }, {Z ij }〉,
ahol
(2.2)
D jelöli a komponensek egyedi azonosítóját, Mi az atomi vagy magasabb szintû modelleket, Ii az egyes komponenseknek az összetett modellre vonatkozó hatását, Zij pedig a komponensek egymásra vonatkozó hatását, hierarchiáját.
A 2.3. ábrán egy olyan sémát láthatunk, amely egy sorba kötött kiszolgálási rendszer erõforrásait optimalizálja. Az A modul dönt arról, hogy az erõforrások hány százalékát kapja a B és hány százalékát a C kiszolgálási egység. Az A modul visszacsatolásként megkapja a BC modul outputját és a belsõ függvények segítségével eldönti, hogy elérkezett-e az optimumba, vagy további futtatásra van szükség. Ha újabb futtatás kell, akkor új erõforrás-allokációt határoz meg.
A
B
C
2.3. ábra. Az összetett modell reprezentációja
A 2.3. ábra jól jellemzi egy determinisztikus rendszer szimulációját, de sztochasztikus modell esetén az egyes kimenetek mindig csak egy lehetséges megvalósulást (replikációt vagy lefutást) jelentenek. A sztochasztikus modellek kimeneti változója is nyilvánvalóan sztochasztikus, ezért több ismétlésre (replikációra) van ahhoz szükség, hogy ennek a változónak az eloszlását megismerjük. Így a 2.3. ábra úgy módosul, hogy a BC rész n-szer valósul meg. Az A modul feladata lesz az, hogy eldöntse, milyen visszacsatolást generál a BC kimenetekbõl, például egyszerû átlagot (várható érték becslését). Egy sztochasztikus összetett modell reprezentációja látható a 2.4. ábrán.
B1
C1
B2
C2
A … Bn
… Cn
2.4. ábra. A sztochasztikus összetett modell reprezentációja
17
Nézzük, milyen alapvetõ lépésekbõl áll a szimulációs modellezés: probléma és rendszer definiálása, modellkoncepció kidolgozása (formális modell), elsõdleges kísérletek megtervezése, inputanalízis és inputadatok generálása, modell elkészítése (programozás), verifikáció, validáció és modellkalibrálás, kísérletezés, outputanalízis és interpretálás. A következõ alpontokban részletesen mutatjuk be ezeket a lépéseket. Az ismertetést Benedek (1999) modellje segítségével végezzük, mivel ebben a publikációban minden fontos lépés megtalálható.9
2.2. A probléma és a rendszer definiálása Minden szimulációs modellezés elsõ lépése, hogy definiáljuk azt a problémát és a probléma keretrendszerét, amely a kutatás középpontjában áll. Tegyük fel például, hogy azt a feladatot tûzzük ki, hogy egy részvényre vonatkozó vételi opció (call option) árát kívánjuk meghatározni.10 Ebben az esetben a C ( ST , t ) = e − r (T − t ) max{ST − E ,0}
(2.3)
értéket kell meghatározni, ahol C: az opció értéke, St: a t idõpontbeli részvényárfolyam, E: a kötési árfolyam, R: a piaci kamatláb, T-t: pedig a hátralévõ futamidõ. A probléma analitikus kezeléséhez igen erõs és a valóságban nem teljesülõ feltételezésekkel kell élni. Elõször is a részvényárfolyamtól megköveteljük, hogy általánosított Brown-mozgást kövessen, konstans – idõben állandó drifttel (µ) és volatilitással (σ), azaz dS = µSdt + σSdZ (2.4) ε ~ N (0,1). dZ = ε dt , Megköveteljük továbbá a piaci kamatláb állandóságát, a részvény tökéletes oszthatóságát és zéró osztalékfizetését, a piaci kamatlábon történõ kölcsönvétel és kölcsönadás lehetõségét,
9 Szeretnénk hangsúlyozni, hogy itt a Benedek (1999) cikkben ismertetett opcióárazási modell csak illusztrációként szerepel, a részletekre és az eredmények bemutatására nem térünk ki. 10 Igen részletesen tárgyalja ezt a problémát Hull 1993.
18
részvényeladást jövõbeli teljesítéssel (short selling), a folytonos kereskedési lehetõséget, az adók és a tranzakciós költségek hiányát. Feltételezzük továbbá, hogy európai típusú opcióról van szó és a piacon nincs lehetõség arbitrázsra. Ilyen megszorító feltételezések mellett meg lehet határozni a C értékét T, t, r, E, σ és µ függvényében (Black–Scholes 1973).11 Az egyes feltételek feloldására számos kutató adott analitikus, illetve numerikus megoldást. (Ezek közül a leglényegesebbek CoxRoss 1976, HullWhite 1987, Merton 1973 és Cox et al. 1979.) A Benedek (1999) cikkben szimuláció segítségével határoztuk meg az opció értékét abban az esetben, ha a részvény árával arányos tranzakciós költséget kell fizetni a kereskedés pillanatában. A fentiek segítségével definiáltuk a közgazdasági (jelen esetben pénzügyi) problémát, a megoldáshoz szükséges rendszer pedig egy sztochasztikus diszkrét esemény szimulátor. A késõbbiekben látni fogjuk, hogy a rendszert ki kellett egészíteni egy numerikus optimalizáló rendszerrel, amely a genetikus algoritmusra épül.
2.3. A formális modell A formális modell elkészítése során olyan leírást kell készíteni, amely segítségével bárki képes a meghatározott szimulációs feladat programját elkészíteni. A programozáshoz igen hasznos segítség a folyamatábra. Az elõzõ példát folytatva a szimulációhoz szükséges paraméterek a következõk voltak: E: az opció kötési árfolyama, r: a kockázatmentes kamatláb, Q: a tranzakciós költség nagysága százalékban,12 S0: a részvény kezdeti árfolyama (az opció értékelésének pillanatában), µ és σ: a részvény driftje és volatilitása és T: az opció lejáratának idõpontja. A szimuláció során három állapotváltozót használtunk: Pt: a szimulált befektetõ egyenlege t idõpontban, P0 = 0, St: a részvény árfolyama t idõpontban, ∆t: az opció fedezeti aránya t idõpontban.
11
Ez a Black-Scholes formula:
C ( S , t ) = SN ( d1 ) − Ee− r (T −t ) N (d 2 ), ln( S E ) + ( r + σ 2 2)(T − t ) , σ T −t ln( S E ) + ( r − σ 2 2)(T − t ) d2 = = d1 − σ T − t . σ T −t d1 =
ahol N(.) a standard normális eloszlás eloszlásfüggvénye. 12 Azaz Q = 0,01 esetén két darab 100 Ft értékû részvény eladása, illetve vásárlása 2-2 Ft extra költséget jelent.
19
Szimulációs modellünkben egy képzeletbeli befektetõ t = 0 idõpontban elad egy darab vételi opciót, és vásárol ∆0 darab részvényt. A vásárlást kockázatmentes kamatlábon adott hitel segítségével valósítja meg. Ezután minden idõpillanatban megfigyeli a részvény aktuális árfolyamát (St), és megváltoztatja a portfóliójában szereplõ részvények számát ∆t mennyiségre. Amennyiben ez ismételten vásárlást jelent, akkor további hitelt vesz fel, ha eladást, akkor törleszt. Ezt a technikát dinamikus fedezési stratégiának (dynamic hedging) nevezik. Az opció lejártakor (t = T) helyt kell állnia az opciónál, ami max{ST – E, 0} további kiadást jelent. (Ha ugyanis a részvény ára magasabb a kötési árfolyamnál, akkor az opciót lehívják, így a teljesítésekor a részvényár és a kötési árfolyam különbségét kell kifizetnie az opció eladójának. Ha azonban a részvényárfolyam nem éri el a kötési árfolyamot, akkor az opciót nem fogják lehívni, így az eladó nem szenved veszteséget.) Végül a befektetõ eladja portfóliójában szereplõ ∆T-1 részvényt is. A maradék összeg diszkontált értéke adja meg azt az opcióárat (C), amely kifizetése esetén a befektetõ pontosan zéró nyereséget/veszteséget realizál (arbitrázs-mentesség). A szimuláció futtatásához tisztázni kell a részvényárfolyamok generálásának képletét, amely a következõ:13
Si +1 = Si e
(µ −σ 2)(1 Y )+σε 2
1Y
,
ε ~ N (0,1).
(2.5)
Vegyük észre, hogy az idõpont-beosztások finomítása az Y paraméter segítségével történik. Mivel a részvény paramétereit éves szinten adtuk meg, ezért Y azt jelenti, hogy hány részintervallumra osszuk fel egyenletesen az egy évet. (Ha például naponta adunk lehetõséget a portfólió fedezésére, akkor Y = 360, ha naponta tízszer, akkor Y = 3600. Természetesen T-t is ebben a „mértékegységben” kell mérnünk, azaz ha az opció futamideje egy hónap, akkor az elõbbi esetben T = 30, míg az utóbbiban T = 300.) Nem nehéz belátni, hogy az idõ végtelen finomításával a (2.5) formula pontosan a (2.4) sztochasztikus folyamatot eredményezi.14 A (2.5) formulából jól látható, hogy minden újabb részvényár szimulálásánál egy standard normális eloszlású értéket kell generálnunk. Ennek módszerét a következõ alpontban mutatjuk be. Végül meg kell határoznunk azt az eljárást, aminek segítségével a dinamikus fedezést megvalósítjuk. Ez a következõ: ∆t =
(
)
2 ∂C N ln ( St E ) + ( r + σ 2 ) (T − t ) = , ∂S σ T −t
(2.6)
ahol N(.) a standard normális eloszlás eloszlásfüggvénye. Miután az output változó (C) a sztochasztikus szimuláció miatt valószínûségi változó, ezért nem elegendõ egy értéket vizsgálni. A szimulációt független véletlen számok segítségével többször le kell futtatni. (Ezeket nevezi a szakirodalom replikációknak vagy mintának. A replikációk számát mintaméretnek is hívjuk.) Készítsük el a szimuláció folyamatábráját!
13 14
20
Ennek levezetését lásd Benedek 1999. Lásd például Benedek 1998.
Összes replikáció kész?
Igen Igen
Nem
C eloszlásának meghatározása
t-t növeld eggyel
Hányadik kereskedési pillanat? t =0
0
Induló portfólió kialakítása: P0 = – S0·∆0(1+Q)
t=T
Kamatfizetés: Pt = Pt-1 ·e-r/Y
Kamatfizetés: PT = PT-1 ·e-r/Y
St generálása ∆t meghatározása
ST generálása
∆∆t << ∆∆t-1 t t–1
különben
Részvényeladás: Pt = Pt-1 + + St·(∆t-1–∆t)(1–Q)
Részvényvásárlás: Pt = Pt-1 – – St·(∆t–∆t-1)·(1+Q) +
Részvényeladás: PT = PT-1 + + ST ·∆t-1(1–Q)
Opció teljesítése: PT = PT-1 – – max{ ST –E,0}
következõ replikáció
Opció értéke: C = –PT · e-rT/Y
2.5. ábra. A szimuláció folyamatábrája
2.4. Az elsõdleges kísérletek megtervezése A szimuláció futtatásához természetesen meg kell határozni bizonyos paramétereket. Az elsõdleges kísérleteket érdemes úgy megtervezni, hogy a kimenetelét könnyû legyen valamilyen már meglévõ értékhez viszonyítani. Ilyen érték lehet a szakirodalomban szereplõ számítási eredmény, illetve bizonyos esetekben az analitikus eredmény. Ilyenkor olyan egyszerûsítéseket feltételezünk, amelyeket a késõbbi kísérletek során fel lehet oldani, azonban az ellenõrzéshez és a hibakereséshez jól lehet alkalmazni. Az opcióár szimulációban a következõ feltételezésekkel éltünk az elsõdleges kísérletek megtervezése során: 21
E = 100 µ = 0,12
r = 0,05 σ = 0,3
S0 = 100 T/Y = 30 nap
A mintaméretet 5000 replikációnak választottuk, és a szimuláció kimeneti változójának a kapott opcióárak átlagát és szórását választottuk. A tranzakciós költség (Q) rátáját elõször zérusra, majd 1%-ra állítottuk. A zérus tranzakciós költség szimulációjának vissza kell adnia a Black–Scholes-formula értékét, hiszen ebben az esetben analitikus eredmények állnak a rendelkezésünkre.
2.5. Inputanalízis és inputadatok generálása A valóságos rendszer mûködésének pontos számítógépen belüli elõállításához a valóságban lezajló folyamatokat részleteiben kell megfigyelni. Fel kell tárni az összefüggéseket, és jellemezni kell a véletlen jelenségeket. Ez a feladat az inputanalízis, vagyis azon adatok elemzése, amelyek a rendszerbe beérkeznek. Az elemzéshez elsõsorban statisztikai módszereket alkalmaznak, különösen nagy figyelmet szentelve az eloszlások becslésének. Az utóbbi idõben elterjedt másik vizsgálati módszer az adatbányászat, amelyet akkor érdemes alkalmazni, ha a megfigyelési adathalmaz rendkívül nagy, és valószínûsíthetõ, hogy viszonylag bonyolult, nemlineáris összefüggések húzódnak meg bennük, amelyeket célszerû felhasználni a szimulációban.15 Az adatbányászati elemzések bemutatása sajnos meghaladja az értekezés kereteit, érdemes azonban annyit megjegyezni róla, hogy a módszertan szintén a mesterséges intelligencia algoritmusait használja; olyan algoritmusokat, mint amelyeket a 3. fejezetben mutatunk be. Az opcióár-szimulációhoz szükséges inputanalízis elsõsorban a részvényárfolyam eloszlásának vizsgálatát jelenti. A Benedek (1999) publikációban ilyen típusú vizsgálatot nem végeztünk, mivel a szakirodalomban alkalmazott normalitás feltételt elfogadtuk, az alkalmazott µ és σ paraméter értékeket a szakirodalomból vettük (Hull 1993). Most azonban bemutatjuk, hogy hogyan kellene eljárnunk ezek ismerete hiányában. Vegyük például a Matáv-részvényt a Budapesti Értéktõzsdérõl. A 2.6. ábrán ábrázoljuk a részvényárfolyamokat (St) 1998. január 7-tõl 2000. december 27-ig. A 2.7. ábrán pedig megvizsgáljuk a részvényárfolyam-növekmények (ln(St / St-1)) eloszlását. 3000 2500 2000 1500 1000
2.6. ábra. A Matáv árfolyama
2000-09-07
2000-05-07
1999-09-07
1999-05-07
1999-01-07
1998-09-07
1998-05-07
1998-01-07
0
2000-01-07
500
2.7. ábra. Az árfolyamnövekmények eloszlása
15 Az adatbányászat alkalmazásáról számos könyv áll rendelkezésre, pl.: Bigus 1996, BerryLinoff 2000. Magyar nyelven lásd Benedek 1999b bevezetõ jellegû cikkét.
22
Elsõ feladat az, hogy megvizsgáljuk, vajon tényleg normális eloszlást követnek-e az árfolyamnövekmények. Az adatokra egy 0,00004725 várható értékû és 0,011812 szórású Gauss-görbét illesztettünk, így a teljes négyzetes hiba 0,008150 volt. Sajnos azonban minden teszt (χ2-teszt, Kolgomorov–Szmirnov-teszt, Jarque–Bera-teszt) elutasítja az adatsor normalitását. Ennek ellenére ebben a példában fogadjuk el a normális eloszlás feltételezését, mivel a szimulációs problémát nem a Matáv-részvényre vonatkozó opció kiszámítása céljából vizsgáljuk, hanem elméleti szempontból a tranzakciós költség vizsgálata érdekében.16 Természetesen további fontos teszteknek kellene még alávetni az adatokat (pl. függetlenség, homoszkedaszticitás), amelyektõl eltekintünk, de még egyszer felhívjuk a figyelmet ezek fontosságára, hiszen hibás feltevések mellett hibás következtetésekre jutunk a szimuláció során.17 Az illesztett eloszlás és a (2.5) formula segítségével megállapíthatjuk µ és σ paramétereket, amelyek rendre 0,094 és 0,406. Az inputanalízis elvégzése után következõ feladat az, hogy hogyan lehet ezeket a véletlen sorozatokat újra elõállítani, azaz hogyan történik a véletlenszám-generálás. Ez a terület a szimulációs modellezés egyik leginkább kutatott témaköre, és gyakorlatilag minden szimulációval foglalkozó tankönyv részletesen foglalkozik vele. A továbbiakban a véletlen számok ismertetésénél Kátai (1981) és Knuth (1987) munkáira hivatkozunk. (A módszertani eredmények mellett kiváló történeti és alkalmazási áttekintés található Knuth (1987) második kötetében, a Szeminumerikus algoritmusokban.) Véletlenszám-generálásra két módszer áll rendelkezésre. Az egyik módszer az analóg generátor, amikor valamilyen periféria véletlen viselkedése határozza meg a sorban következõ számot. Ilyen lehet például egy számítógépbe épített inga, amely állandó kitérései véletlen sorozatokat hozhatnak létre. Az ilyen generátorokkal a legnagyobb probléma az, hogy lehetetlen rekonstruálni egy korábbi folyamatot. Sok esetben ugyanis szükséges lehet arra, hogy ugyanazokkal a véletlen számokkal megismételjünk egy-egy kísérletet. A másik módszer számelméleti alapokon nyugszik. Matematikai módszer segítségével egyenletes eloszlású változókat generálunk, majd ezután ezek transzformálása segítségével juthatunk a legkülönbözõbb eloszlásokhoz. Nézzük például a Neumann János által javasolt négyzetközép-módszert! A véletlen sorozat úgy épül fel, hogy az utolsó számot négyzetre kell emelni, és ennek a középsõ jegyei alkotják a következõ számot. Például négyjegyû számok generálása esetén: V0 = 5784 V1 = 4546 V2 = 6661 …
→ → →
V02 = 33454656 V12 = 20666116 V22 = 44368921 …
Felmerül azonban a kérdés, hogy egy algoritmus által elõre meghatározott képlet szerint kiszámított számok lehetnek-e véletlenszerûek. Valójában nem azok, viszont úgy viselkednek, mintha tényleg egyenletes eloszlásúak lennének. (Ezért ezeket a sorozatokat
16 Amennyiben ezt a részvényt kívánjuk felhasználni, úgy további eloszlásokat kell megpróbálni illeszteni, esetleg meg lehet tartani az empirikus eloszlás feltételezését is. Ebben az esetben magából a hisztogramból kell mintavételezni. A Matáv-adatsorra végül alacsony szabadságfokú t-eloszlás illesztése bizonyult hatékonynak (Benedek et. al. 2001). 17 Statisztikai vizsgálatokhoz lásd pl. HunyadiVita 1991, MórySzékely 1986.
23
a szakirodalom pszeudovéletlennek vagy kvázivéletlennek nevezi.) A pszeudovéletlen sorozatokkal két gond lehet. Az egyik, hogy ciklusba kerül, azaz egy meghatározott sorozat után újból ugyanazokat a számokat generálja ugyanabban a sorrendben. (Például a négyzetközép-módszer esetén induljunk a 3792-bõl!) Belátható, hogy a négyzetközépmódszer tetszõleges indulóérték esetén hamar ciklusba torkollik. A másik probléma, hogy a módszer nem ad olyan számsorozatot, amely valóban független egyenletes eloszlású. A véletlenszám-generáló eljárásokat tehát ebbõl a két aspektusból kell megvizsgálni. Napjainkban a leggyakrabban használt egyenletes eloszlást adó numerikus véletlenszámgenerátor a lineáris kongruencia módszere, amelyet Lehmer (1951) vezetett be. Vegyük a következõ sorozatot: (2.7) Vi +1 = ( aVi + c ) mod m, ahol minden paraméter nem-negatív egész, mégpedig: m: a modulus (maradékos osztó): a: az együttható: c: a növekmény: V0: a kezdõérték (seed):
m > 0, m > a ≥ 0, m > c ≥ 0, m > V0 ≥ 0.
Ezt nevezzük lineáris kongruencia-sorozatnak. Az elõállított szám mindig az m-mel történõ osztás maradéka. Például, ha m = 10 és V0 = a = c = 7, akkor a sorozat a következõképpen fest: 7, 6, 9, 0, 7, 6, 9, 0, … Jól látható, hogy az ilyen típusú megválasztás esetén a sorozat egy négy elembõl álló ciklust hoz létre. A lineáris kongruencia-sorozatban kialakuló ciklus elemszámát periódushossznak nevezzük. A következõkben kimondunk néhány fontos tételt: 2.1. Tétel: Minden Vi+1 = f(Vi) eljárással megadott korlátos sorozatnál elõbb vagy utóbb ciklus jelentkezik. Így nyilvánvaló, hogy a (2.7) esetében is biztosan fellép az ismétlõdés. Kérdés azonban az, hogy lehet-e kellõen nagyra választani a periódushosszt annak érdekében, hogy ez ne okozzon gondot a véletlen sorozat generálásánál. Könnyû belátni a következõ tételt: 2.2. Tétel: A (2.7) lineáris kongruencia-sorozat maximális periódushossza pontosan m. Ha egy ilyen sorozat periódushossza m, akkor teljes periódusú (full period) lineáris kongruencia-sorozatnak nevezzük. Ezek szerint számunkra olyan paraméterek szükségesek, ahol m értéke nagy. Sok algoritmus esetében ezért m-et olyan nagynak szokták választani, mint amekkora a számítógép processzorának számábrázolási kapacitása. (32 bites processzor esetén például m = 232). A nagy m mellett olyan egyéb paraméterválasztás a célszerû, hogy a sorozat teljes periódusú legyen. Így kihasználjuk a maximális periódus lehetõséget, továbbá biztosítjuk, hogy minden egyes szám pontosan egyszer fog elõfordulni 0 és m–1 között 24
egy cikluson belül. A paraméterek helyes megválasztásához a következõ nehéz számelméleti tételt kell felhasználni. 2.3. Tétel: A (2.7) lineáris kongruencia-sorozat periódushossza pontosan akkor m, ha: 1. 2. 3.
c relatív prím m-hez, b = a – 1 többszöröse p-nek m minden p prímosztójára, b többszöröse 4-nek, ha m többszöröse 4-nek.
A tételek bizonyítása megtalálható Knuth (1987) munkájában (II / 24 – 35). Bizonyítás helyett nézzünk egy példát, ahol m = 8, ezért p = 2, tehát b legyen 4, így a = 5, c = 3, és induljunk az 1-bõl. Ekkor a következõ sorozatot kapjuk: 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, … A sorozat tényleg teljes periódusú, a független egyenletes eloszlás próbáját azonban aligha állná ki. Ezért rendkívül fontos az, hogy statisztikai próbákkal megvizsgáljuk a generált sorozatot. A leggyakrabban a következõ teszteket szokták elvégezni: χ2-próba, Kolgomorov–Szmirnov-próba, gyakoriságpróba, sorozatpróba, hézagpróba, partíciópróba (pókerpróba), sorozatkorrelációpróba, spektrálpróba. A legtöbb teszt ismertetése megtalálható általános statisztikai könyvekben, azonban a korábban többször is idézett Knuth (1987) könyvben ezeket megvalósító, erõforrástakarékos algoritmusok is szerepelnek. A ma leginkább megbízható algoritmusok megtalálhatók Press et al. (1992) mûvében, ahonnan a 108 periódushosszú ran1 és a 1016 periódushosszú ran2 algoritmusokat alkalmaztuk a pénzügyi szimuláció esetében. Bizonyos szimulációk esetén elképzelhetõ, hogy még a ran1 vagy a ran2 algoritmusoknál is hosszabb periódusú – vagy gyorsabb – eljárásra van szükség. A mai legfrissebb kutatások számos ilyen algoritmust ajánlanak, amelyek általában már nem kizárólag a lineáriskongruencia-módszerre épülnek. Eddigi közgazdasági szimulációink során azonban ezekre a módszerekre még nem volt szükségünk, így bemutatásuktól eltekintünk. Sikerült tehát független egyenletes eloszlású számsorozatokat generálni számelméleti módszerek alkalmazásával. A szimulációs alkalmazásokhoz azonban különbözõ eloszlású változókra lehet szükség. Ezeket az eloszlásokat egyenletes eloszlású változókból transzformálva készíthetjük el, leggyakrabban a következõ módszereket alkalmazva: direkt módszer, kizárás módszere (acceptance-rejection method), konvolúciós módszer és speciális módszerek. Direkt módszer. Tetszõleges θ folytonos valószínûségi változó esetén jelölje Fθ θ eloszlásfüggvényét, fθ pedig θ sûrûségfüggvényét. A következõ tételek viszonylag egyszerûek, bizonyításuk a legtöbb valószínûségszámítással foglalkozó tankönyvben megtalálható (Rényi 1973). 25
2.4. Tétel: Legyen ξ folytonos valószínûségi változó, g pedig egy folytonos, valós, monoton növekvõ függvény. Legyen továbbá η = g(ξ). Ekkor: Fη ( x ) = Fξ ( g −1 ( x )).
(2.8)
Ebbõl következik az alábbi tétel. 2.5. Tétel: Legyen ξ folytonos valószínûségi változó egyenletes eloszlású a [0,1] intervallumon, F(x) pedig egy tetszõleges folytonos eloszlásfüggvény. Ekkor η = F-1(ξ) olyan valószínûségi változó, amelynek eloszlásfüggvénye F. A tétel alapján már látjuk, miért volt fontos az egyenletes eloszlású valószínûségi változó generálása. Ennek segítségével bármilyen más eloszlást készíthetünk, feltéve, hogy ismerjük az eloszlás eloszlásfüggvényének inverzét. Nézzünk egy példát, az exponenciális eloszlást,18 amelynek az eloszlásfüggvénye a következõ: 1 − e − x b , F (x) = 0,
ha x ≥ 0, különben
(2.9)
Ezért könnyû elõállítani F inverzét: x = F −1 (u ) = −b ln (1 − u ). Sajnos a legtöbb esetben nem ilyen egyszerû a helyzet, például a számunkra igen fontos normális eloszlás esetén nem adható meg – analitikus formában – az eloszlásfüggvény.19 A folytonos valószínûségi változó esetét megvizsgáltuk, nézzük milyen lehetõségek vannak a diszkrét véletlen változók elõállítására! 2.6. Tétel: Legyen ξ diszkrét valószínûségi változó, mégpedig: pm = P(ξ = xm ),
m = 0, 1, 2, ...
(2.10)
Legyen továbbá m
Sm = ∑ pk , I k = [S k −1 , S k ), k ≥ 0, S −1 = 0.
(2.11)
pm = P (S m −1 ≤ u < S m ) = P(u ∈ I m ).
(2.12)
k =0
Ezért
Ekkor a következõ eljárással egy u egyenletes eloszlású változó segítségével pontosan a ξ diszkrét eloszlású valószínûségi változót generáljuk:
x0 , ξ = x1 ,
ha u ∈ I 0 , ha u ∈ I1 , ...
(2.13)
18 Az exponenciális eloszlás a sorbanállási és készletgazdálkodási modellek tekintélyes részénél szerepel, ezért igen fontos eloszlás. 19 Több program is közelítõ függvény segítségével, direkt módszerrel generál normális eloszlást. Ezek megbízhatósága különös tekintettel az eloszlás széleire igen különbözõ.
26
Például egy dobókocka dobásait rendkívül egyszerûen szimulálhatjuk, ha az egyenletes eloszlású u < 1/6, akkor a kockadobás 1-es, ha 1/6 < u < 2/6, akkor 2-es stb. A direkt módszer utolsó tétele megmutatja, hogy tetszõleges eloszlás generálható egyenletes eloszlás segítségével: 2.7. Tétel: Legyen ξ1 eloszlásfüggvénye F1, ξ2-é pedig F2. Tegyük fel továbbá, hogy: F ( x ) = pF1 ( x ) + qF2 ( x ) ,
p + q = 1,
p, q ≥ 0.
(2.14)
Tegyük fel, hogy ξ lehetséges értékei 1 és 2, rendre p és q valószínûséggel, továbbá ξ független ξ1 és ξ2 változóktól. Definiáljuk η-t: ξ , η= 1 ξ 2 ,
ha ξ = 1, ha ξ = 2.
(2.15)
Ekkor η eloszlásfüggvénye F, továbbá mivel minden monoton növekvõ függvény felbontható két monoton növekvõ függvény összegére úgy, hogy az egyik folytonos, a másik pedig diszkrét (tiszta ugró), ezért minden eloszlásfüggvény felírható (2.14) alakban, ahol F1 folytonos, F2 pedig diszkrét eloszlásfüggvény. Kizárás módszere. A módszert nevezik még Monte-Carlo-módszernek is, bár ezt a nevet általában a hasonló elven mûködõ numerikus integrálásra szokták használni. Az eljárás lényege a következõ. Legyen adott u, v egyenletes eloszlású független valószínûségi változó a [0,1] intervallumon. Szeretnénk elkészíteni ξ véletlen változót, ahol ξ ∈ [a, b], sûrûségfüggvénye g, és g maximumértéke pedig c < 1. Transzformáljuk elõször u-t u’-be, v-t v’-be, ahol ezek rendre egyenletes eloszlásúak az [a, b] és a [0, c] intervallumon. Ezután vizsgáljuk meg, hogy igaz-e a v’ < g(u’) egyenlõtlenség. (Grafikusan elképzelve vajon a generált (u’ v’) pont a sûrûségfüggvény alatt vagy felett helyezkedik el.) Ha igaz (alatta), akkor fogadjuk el ξ = u’-t, ha nem, akkor generáljunk újabb u, v párost. 2.8. Tétel: Az így kapott ξ valószínûségi változó pontosan olyan eloszlást követ, amelynek sûrûségfüggvénye g, továbbá minden egyes ξ változó elõállításához 2⋅(b-a)⋅c számú független egyenletes eloszlású változóra van szükség. Ezzel a módszerrel két probléma van. A megvalósításhoz egyrészt ismerni kell g sûrûségfüggvényt, másrészt csak korlátos valószínûségi változót tudunk generálni. Ha például standard normális eloszlású valószínûségi változót szeretnénk készíteni, akkor meg kell határozni azt a tartományt, amelynél kisebb, illetve nagyobb számokat 0 valószínûséggel generálunk. Mivel a sûrûségfüggvény szélei nagyon gyorsan konvergálnak nullához, ezért már a [–3, 3] választással elég kicsi hibát vétünk20 (3σ–szabály). A 2.8. ábra segítségével könnyen megérthetõ a 2.8. tétel. Az ábrán háromszöggel jelöltük az elfogadott, négyzettel az elutasított számpárokat. Az elfogadott számpárok elsõ koordinátái adják a normális eloszlású valószínûségi változókat. 20 Természetesen minél több független véletlen változóra van szükségünk, annál nagyobb az így elkövetett hiba valószínûsége. A pénzügyi szimuláció során a [12, 12] intervallummal próbálkoztunk.
27
v' -3
-2
-1
0 u'
1
2
3
2.8. ábra. Normális eloszlás generálása a kizárás módszerével
Konvolúciós módszer. Sok eloszlást tudunk más eloszlások összegeként generálni. Így készíthetünk például Erlangen-eloszlást azonos várható értékû exponenciális eloszlásokat összegezve. Az egyik legegyszerûbb a központi határeloszlás segítségével a normális eloszlás készítése. Ezt mutatjuk most be: 2.9. Tétel: Adott egy yi ~ U(0, 1), azaz egy egyenletes eloszlású minta a [0,1] intervallumon. Transzformáljuk y′i ~ U(–α,α)-ra, azaz y′i = 2αyi – α. Ezután n-esével összeadjuk és standardizáljuk õket, azaz: z=
( y1′ + y2′ + ... + yn′ ) n α2 , ahol σ 2 = . 3 σ n
(2.16)
Természetesen itt z is indexelt, azaz minta, pontosan annyi elemû, ahány n-es csoportot létre lehet hozni a független egyenletes eloszlású mintából. Ekkor (i) y′i független, egyenletes eloszlású a [–α,α] intervallumon, várható értéke 0 és szórása σ, (ii) z normális eloszlást követ, ha n tart a végtelenhez, továbbá (iii) z már egészen kicsi n értékekre is igen jól közelíti a standard normális eloszlást, különös tekintettel az eloszlás közepére. A tétel (i) része triviális, a (ii) pedig a központi határeloszlás tételének következménye. A (iii) azonban nem triviális, és nem található meg a szakirodalomban, ezért ezt a bizonyítást részletezzük: Bizonyítás: A bizonyítás során azt mutatjuk meg, hogy z karakterisztikus függvénye gyorsan konvergál a standard normális eloszlás karakterisztikus függvényéhez. Elõször állítsuk elõ y′i karakterisztikus függvényét: k y′ (t ) = E ( eitx ) =
α
itx ∫e
−α
α
1 1 1 itx 1 dx = e = (eitα − e-itα ) = 2α 2α it −α 2α it
sin (tα ) 1 = (cos (tα ) + isin (tα ) − cos (−tα ) − isin (−tα )) = tα . 2α it
(2.17)
Ekkor a karakterisztikus függvények tulajdonságai miatt könnyen kiszámíthatjuk z karakterisztikus függvényét. 28
z=
n n 3 n y yi , = ∑ i α n∑ nσ i =1 i =1
(2.18)
ezért n
3 t 3 sin tα sin α n n = k z (t ) = t 3 tα 3 α n n
n
.
Tudjuk azt is, hogy a sinx Taylor-polinomjának hibatagja rendkívül kicsi a 0 körül, ezért alkalmazzuk ezt a közelítést: sin x ≈ x −
x3 . 6
(2.19)
Ekkor n
n
t 3 t 3 3 t 3 2 − 6 n n n k z (t ) = = 1 − = 6 t 3 n n
n
(2.20)
t − 3t 2 −t 2 2 2 = 1 − = + ≈ 1 e . n n 6 2
Ezt a módszert sok generátor alkalmazza normális eloszlású véletlen változó generálásához. A szakirodalom az n = 12 esetet már megbízhatónak tartja. A probléma azonban az, hogy ebben az esetben is 12 darab egyenletes eloszlású szám kell, minden egyes normális eloszlású számhoz, ezért az algoritmusnak nagy az idõigénye, és hamarabb eljutunk a periódushossz végéig. Ezért alkalmaznak egyéb speciális módszereket. Speciális módszerek. Számos speciális eljárást találunk különbözõ eloszlások generálására21 (pl. Béta-eloszlás, Gamma-eloszlás, binomiális eloszlás, Poisson-eloszlás stb.) Most a normális eloszlásra mutatunk egy lehetséges eljárást, mivel pénzügyi szimulációnkban ezt implementáltuk, és a szakirodalom is ezt a módszert javasolja legtöbbször: 2.10. Tétel: Polármódszer. Generáljunk két független egyenletes eloszlású valószínûségi változót, u1-et és u2-t. Transzformáljuk õket a [–1, 1] intervallumba, majd az így kapott (v1, v2) változókra vizsgáljuk meg, hogy beleesnek-e az origó körüli egységnyi sugarú körbe. Ha nem, azaz S = v12 + v22 ≥ 1 , akkor újra kell kezdenünk az eljárást. Ellenkezõ esetben legyen:
21
Az algoritmusok és bizonyítások tekintetében ismét Knuth (1987) könyvét javasoljuk.
29
x1 = v1
−2 ln S −2 ln S , x2 = v2 . S S
(2.21)
Az így kapott x1 és x2 független standard normális eloszlású véletlen szám. Bizonyítás: Elõször is áttérünk (v1, v2)-rõl azok polárkoordinátáira. (A sugár mindig 1-nél kisebb lesz, hiszen csak ezeket fogadtuk el.) Ekkor v1 = R cosθ és v2 = R sinθ, továbbá x1 = −2ln S cosθ , x2 = −2ln S sin θ . Nyilván x1 és x2 esetében is áttérhetünk ezek polárkordinátáira, azaz x1 = Q cosφ és x2 = Q sinφ. Ezért igaz, hogy θ = φ és Q = −2 ln S . Q és φ független, S egyenletes eloszlású [0, 1)-en, θ pedig [0, 2π)-n. Ebbõl következik, hogy:22
(
Pr (Q < q ) = Pr ( −2ln S < q 2 ) = Pr S > e− q Pr (Q < q ) = 1 − e− q 2 ,
2
2
),
2
Pr ( q ≤ Q < q + dq ) =
(
d 1 − e− q
2
2
dq
) = qe
− q2 2
,
(2.22)
Pr (φ < ϑ ) = ϑ 2π ,
Pr (ϑ ≤ φ < ϑ + dϑ ) = 1 2π .
Mi a valószínûsége annak, hogy x1 < y1 és x2 < y2? −( x12 + x22 ) 2 q −q 2 1 dx1dx2 = e dqdϑ = e ∫ 2π {( x1 , x2 ) x1 < y1 , x2 < y2 } {(q ,ϑ ) q cosϑ < y1 , q sin ϑ < y2 } 2π
∫
1 = 2π
y1
∫e
−∞
− x12 2
1 dx1 2π
y2
∫e
−∞
− x22 2
(2.23)
dx2 .
Látható az is, hogy az eljárás az egységsugarú körön kívüli elemeket dobja el, így a területarányok miatt egy darab normális eloszlású szám generálása átlagosan 1,27 számú egyenletes eloszlású változót igényel. Ez az algoritmus a szakirodalomban gasdev néven szerepel (Press et al. 1992). Eddig mindig csak egydimenziós eloszlásokról beszéltünk, de szükségünk lehet valószínûségi vektorokra is, ahol az egyes elemek nem függetlenek. Az ilyen típusú problémákra általában választ kapunk a statisztikai szakirodalomból. Példaként nézzük a többdimenziós normális eloszlást, mivel pénzügyi szimulációk során erre gyakran szükség lehet. 2.11. Tétel: Tegyük fel, hogy egy m várható értékû C variancia-kovariancia mátrixszal rendelkezõ n dimenziós normális eloszlást szeretnénk generálni. Elsõ lépésként generál-
22
30
A Pr(q < Q) jelölés annak a valószínûségét jelenti, hogy q < Q.
junk n darab független standard-normális eloszlású változót (x). Ekkor az y = m + Tx transzformálással pontosan a kívánt eloszlást állítottuk elõ, feltéve hogy C = TT’. Az alfejezet utolsó témája a véletlen keverés. Ilyen például a kártyalapok megkeverése. Közgazdasági szempontból azért nagyon fontos, mert a keresési modellek (search models) nagy része azt feltételezi, hogy az egyes szereplõk véletlenszerûen találkoznak egymással, és minden periódusban mindenki találkozik mindenkivel. Ehhez a szereplõk véletlen keverését kell elõállítani. Hasonló a probléma akkor is, ha egy véletlen sorrendet kívánunk meghatározni. Vegyük a következõ esetet: az 1, 2,
, 100 számokat kell véletlenszerûen megkeverni úgy, hogy egy egyenletes eloszlás generátor áll rendelkezésünkre. Az egyik lehetõség az, hogy a (2.6) tétel segítségével az egyenletes eloszlásból az 1, 2,
, 100 számokat egyforma eséllyel generáló diszkrét eloszlást készítünk. Az elsõ így kapott számot tesszük a sor elejére. Ezután újabb számot generálunk, s ha ez nem egyezik meg az elõzõvel, akkor a sor második tagjává tesszük, ellenkezõ esetben újabbat generálunk. A harmadik szám generálásakor már az elsõ kettõ számmal kell egyeztetnünk, a negyediknél az elsõ hárommal stb. Ezzel az algoritmussal véletlen sorrendbe lehet rakni a számokat. A gond az, hogy meglehetõsen számításigényes és pazarló ez az algoritmus, hiszen az utolsó esetben már átlagosan száz darab véletlen számot kell generálni ahhoz, hogy a megfelelõ utolsót kihúzzuk. A másik algoritmus, amelyet a késõbbiek során is gyakran használunk, ennél jóval gazdaságosabb. A módszert úgy képzelhetjük el, hogy egy dobozból átpakoljuk a számokat egy másik dobozba. Az elsõben növekvõ sorrendben vannak a számok 1-tõl 100-ig. Kiválasztunk egy véletlen számot (1 és 100 között), és az annyiadik elemet áttesszük a második dobozba. Az elsõ dobozban így egy hely üresen maradt, ide betesszük ugyanennek a doboznak a századik elemét. A maradék 99-bõl megint kiválasztunk egyet (természetesen ekkor már csak 1 és 99 közötti véletlen számot kell generálnunk), és áttesszük, stb. Ez az algoritmus nagyságrendekkel gyorsabb, mint az elõzõ.23 Ezzel befejeztük az inputanalízissel és véletlen számokkal foglalkozó alfejezetünket. Még egyszer szeretnénk felhívni a figyelmet arra, hogy az inputanalízis és a véletlen adatok helyes generálása kritikus része a helyes szimulációs modellezésnek.
2.6. A modell elkészítése (programozás) A programozás témakör rengeteg problémát vet fel. Milyen programozási nyelvet vagy szimulációs környezetet érdemes használni? Milyen algoritmusokat és milyen programkönyvtárakat lehet alkalmazni? Hogyan kell felépíteni egy szimulációs programot? Ezek a kérdések rendkívül sokfelé ágaznak, és megválaszolásukra a jelen értekezésben nincs lehetõség, de számos szimulációs kézikönyv és szimulációs szoftver leírás ad errõl részletes leírást, ahol a programozási eljárásokat, részletes algoritmusokat is ismertetik. A leggyakoribb szimulációs környezetek a C és a Pascal nyelvek (illetve ezek objektumorientált verziói, a C++ és a Delphi), továbbá a felhasználóbarát szimulációs szoftverek, mint az Arena, a
23 Az összehasonlítás kedvéért 1000 számból készítettünk véletlen sorrendeket, és ezt összesen 10 000 alkalommal végeztük el. Az eredmény egy Pentium III-as processzorral rendelkezõ PC-n a következõ volt: az elsõ algoritmus átlagosan 520 másodpercet vett igénybe a keverésekhez, a második összesen 2 másodpercet!
31
GPSS vagy a Taylor Enterprise Dynamics, illetve a matematikai programcsomagok, mint a MATLAB, a MATHEMATICA vagy a MAPLE. Adott esetben még az Excel is funkcionálhat szimulációs környezetként bár ettõl már egy közepes szimuláció esetében is óva intek. (A szoftverválasztás kérdésérõl lásd még Axelrod 1997a.) Mivel nincs lehetõségünk a részletekbe bocsátkozni, ezért Sefton (2000) négy kritériumát emeljük ki a szimulációs programozással kapcsolatban. Ezek: pontosság (Accuracy), sebesség (Speed), rugalmasság (Flexibility), robusztusság (Robustness). Pontosság. E tekintetben két igen komoly problémával szembesülünk. Egyrészt a diszkretizálási problémával, ami abból fakad, hogy hiába beszélünk folytonos változókról, ezeket a numerikus eljárások nem tudják kezelni. A legtöbb problémát általában a folytonos idõ kezelése jelenti. Például egy folytonos differenciálegyenlet megoldása során diszkretizálni kell az idõt. Ezt a következõképpen tehetjük.24 Induljunk ki az alábbi kezdetiérték-feladatból: dx = f ( x, t ), dt
xx(t(0t)0 ) == xx00.
(2.24)
Használjuk az Euler-módszert annak érdekében, hogy diszkrét idõpontokban tudjuk ábrázolni az állapotváltozónkat: x(t + dt ) − x(t ) = f ( x, t ), dt x(t + dt ) = x(t ) + f ( x, t )dt.
(2.25)
Ezt pedig átalakítjuk egy iterációval megadott differenciaegyenletté, amelyet már numerikusan is tudunk kezelni: x(t + ∆t ) = x(t ) + f ( x, t )∆t.
(2.26)
Figyeljük meg, hogy pontosan errõl a ∆t mennyiségrõl beszélünk a (2.5) egyenletben akkor, amikor 1/Y-t megválasztjuk. Minél kisebb értéket adunk ennek a mennyiségnek, annál kisebb a diszkretizálási hiba. Azt gondolhatnánk, hogy a futási idõ rovására ugyan, de tetszõlegesen pontossá tehetjük az eredményt kellõen kicsi ∆t választással. Ez sajnos nem igaz. A második komoly numerikus probléma ugyanis az, hogy a számítógép a számokat csak egy bizonyos pontossággal képes ábrázolni (tárolni).25 Egészen pontosan szólva a numerikus eljárásoknál az asszociatív törvény sérül, vagyis a lebegõpontos aritmetikában nem igaz, hogy: (2.27) (a + b ) + c = a + (b + c). A példát Molnár (1990) munkájából kölcsönöztük. A legtöbbször úgynevezett lebegõpontos ábrázolást alkalmaznak. Ez azt jelenti, hogy a helyiértékek száma fix, de a tizedespont variábilis. Ha például 5 helyiértékkel gazdálkodhatunk, akkor ábrázolhatjuk 10 000-et is és 1,0001-et is, de 10 000 + 1,0001 = 10 001, és nem 10 001,0001. 24 25
32
A tetszõleges finomítással azonban egyre nagyobb kerekítési hibát vétünk, hiszen egyre több számot kell összeadnunk ahhoz, hogy egy induló t0-ból egy megadott tn-be érkezzünk. A két hiba tehát egymás ellen dolgozik, minél pontosabb a diszkretizálásunk, annál nagyobb hibát vétünk a kerekítés miatt és fordítva. További fontos észrevétel, hogy ugyan az asszociativitás sérül, de a kommutativitás nem, azaz a + b = b + a. Ennek kapcsán számos további szabály, eljárás és trükk alkalmazható annak érdekében, hogy minél pontosabb eredményeket kapjunk. A lebegõpontos aritmetikáról részletes ismertetés és számos hasznos tipp áll rendelkezésre Knuth (1987) könyvében. Mi itt két eljárást mutatunk be az átlag és a szórás kiszámítására. Ezek rendkívül sokszor elõfordulnak a számításainkban, és jó tudni, hogy létezik egy kisebb numerikus hibát vétõ számítási módszer, az amúgy megszokott formulák mellett. A következõ formula xi, i = 1, 2, …, n sorozat átlagát és szórását adja: M 1 = x1 ,
M k = M k −1 + (xk − M k −1 ) / k ,
x = Mn,
S1 = 0, S k = S k −1 + (xk − M k −1 ) ⋅ (xk − M k ), σ x = S n (n − 1).
(2.28)
Annak ellenére, hogy a kerekítési hiba gondokat okoz, néha hasznos segítõ lehet. Ilyen lehet például az, hogy egy dinamikus rendszer az instabil egyensúlyi pályákról bizonyos idõ elteltével letér (lásd például Simonovits 1998 és Balla–Benedek 1999). Sebesség. A rövid futásidejû, gyors eljárások készítése szintén kritikus kérdés. Sajnos hiába képes a számítógép milliárdszor gyorsabban számolni, mint az ember, az exponenciálisan növekvõ számítási komplexitású feladatok esetén ez nagyságrendi elõrelépést26 nem jelent az emberhez képest. Ennek illusztrálására vegyük például a klasszikusnak számító utazó ügynök problémát.27 Ahhoz, hogy az optimális utat megtaláljuk, minden lehetõséget végig kell számolni. Ezt az eljárást teljes leszámolásnak nevezzük. Ez n darab város esetében összesen (n–1)! számú lehetséges utat jelent. Ha „kézzel” látunk neki a feladatnak, akkor 3-4 várost szinte ránézésre meg tudunk oldani, 7-8 városnál nagyobb feladathoz viszont hozzá sem kezdünk. Ha a számítógépre bízzuk a keresést, akkor a számítási idõ 14-16 város esetében éri el azt a határt, amelyet már nehezen tartunk elfogadhatónak. A valóságban azonban sok olyan analóg feladat van, ahol a városok száma több száz is lehet. Úgy tûnik, a számítógép felfedezése ellenére is reménytelen ez a feladat. A számítógép azonban óriási teret enged a visszacsatolásnak. A számítások eredményei elraktározhatók, összehasonlításokat, rendezéseket hajthatunk végre, aminek segítségével olyan irányba mozdulunk el, ahol az optimális út megtalálásának nagyobb a valószínûsége. Természetesen feltételezhetjük azt, hogy kézi számolás esetén is valamiféle algoritmust követünk, ám a korábbi eredményeket tárolni és újra átnézni a számítógépnél senki sem tudja hatékonyabban. Az algoritmusok alkalmazása nem garantálja, hogy az optimális megoldást kapjuk eredményül. Viszont minél több idõt biztosítunk az algoritmus számára, annál közelebb kerül az optimális megoldáshoz, és már viszonylag rövid idõ alatt is elfogadható az optimum közelében levõ eredményt kapunk. Látható, hogy ebben az
26 Van olyan probléma, ahol az ember és a számítógép ugyanazon a komplexitási fokon ragad meg. Például a Ramsey-féle R(2,2), R(3,3), R(4,4) kézi kiszámítása nem jelent gondot, R(5,5)-öt azonban számítógép segítségével sem lehet megoldani (lásd Leader 2001). 27 Az utazó ügynök feladatban n darab várost kell egy ügynöknek úgy bejárni, hogy minden várost csupán egyszer érint, és a megtett összes út a lehetõ legrövidebb. Az egyes városok közti távolságok adottak.
33
esetben is a pontosság és a sebesség egymás ellen dolgozik, és azt a megoldást kell megtalálni, amelyik az elfogadható kompromisszum a két hatás kielégítéséhez. Rugalmasság. Rugalmasság alatt azt értjük, hogy az elkészített eljárás különbözõ problémák egy viszonylag széles skáláját mennyire képes megoldani alapvetõ módosítások nélkül. Például a (2.5) folyamatábrán látható algoritmustervbe igen könnyû volt beilleszteni a kereskedési stratégia megváltozását. Erre a kritériumra azért van szükség, mert a szimulációs kísérletezés során olyan irányok bukkanhatnak fel, amelyekre a program készítésekor még nem számíthattunk, így a változtatások és módosítások elkerülhetetlenül megjelennek egy bonyolultabb szimuláció esetén. Az is természetes, hogy ez a kritérium és a következõ is sokkal szubjektívebb, mint az elõzõ kettõ, ezért a rugalmasság figyelembevételére csak ajánlásokat lehet adni, konkrét módszereket nem. Robusztusság. A robusztusság két fogalmat takar. Az elsõ, hogy az induló értékek nem befolyásolják a minõségi megoldást, azaz különbözõ induló értékekbõl indulva hasonló futási idõt és hasonló jelenséget tapasztalunk (pl. konvergenciát). Másrészt ha valamilyen külsõ paramétert hibával becsülünk ami közgazdasági modelleknél természetes –, akkor ez a hiba nem sokszorozódik meg a futás végére.
2.7. Verifikáció, validáció és modellkalibrálás Elkészítettük a programot és meghatároztuk az elsõdleges kísérleti értékeket is, tehát nincs más hátra, mint hogy végrehajtsuk a futtatásokat. Ennél a pontnál kell kiderülnie, hogy az általunk beprogramozott modell valóban a valóságot írja-e le, és ha nem, akkor vajon azért nem, mert rosszul programoztuk a modellt, vagy pedig azért, mert eleve helytelen volt a modellfeltevésünk. Látható, hogy az elsõdleges kísérlettervezés döntõ fontosságú, hiszen ezek alapján hozzuk meg a verifikáció, validáció és kalibrálás szempontjából kritikus döntéseket. Verifikáció. A verifikációs fázisban a programozás helyességérõl akarunk meggyõzõdni. Egy program helyes mûködésének ellenõrzése rendkívül bonyolult feladat, és számos programozási szakkönyv foglalkozik a témával. Tökéletes verifikációs eljárás a szimulációs eljárások számára sincs, de a szakirodalom megemlít néhány fontos szabályt, melyek a következõk: a program fokozatos futtatása, majd továbbfejlesztése, kételkedés (próbáljuk megmutatni, hogy a program hibás), a modell részletes átvizsgálása (akár több személy által), tesztfuttatások (olyan inputadatokkal, amelyek speciális eredményt adnak), ellenõrzés és grafikus megjelenítés (a szimuláció futás közbeni állapotváltozóinak megjelenítése animáció). Megjegyezzük, hogy a pénzügyi szimuláció esetén valamennyi fenti verifikációs eszközt igénybe vettük. A fokozatos programépítés keretén belül elõször csak a részvényárfolyam szimulációja készült el, majd a portfólió-kezelõ, ezután az opcióértékelõ, majd legvégül kerültek be az egyes lehetséges kereskedési stratégiákat megvalósító részek. Ezeket a félkész programokat folyamatosan ellenõriztük, és csak akkor léptünk tovább, miután feltételeztük helyes mûködésüket.28 Számos olyan tesztfuttatást is végrehajtottunk, 28
34
A véletlenszám-generátor hibás mûködésére így is csak késõbb derült fény.
amelyben E, r, µ, σ, és T/Y értékeit változtattuk. Figyeljük meg, hogy a σ = 0 választással teljesen determinisztikussá tehetõ a modell, ezért ez egy különösen jó tesztelési lehetõség volt, amellyel gyakran éltünk. Validáció. Már a korábbiakban is hangsúlyoztuk, hogy érdemes az analitikusan kiszámítható eredményeket numerikusan megismételni, és a numerikus és analitikus eredményeket összehasonlítani. Nagyon sok esetben alkalmazható az empirikus eljárás is, azaz tényleges mintaadatokat helyettesítünk vissza a modellbe. Például egy gyártósor modellezése esetén az elsõdleges kísérleteknél nem az inputadatok segítségével generált véletlen számokkal futtatjuk a szimulációt, hanem magukkal az inputadatokkal. (Ez így már determinisztikus szimuláció.) Mivel ebben az esetben az outputadatok is ténylegesen megfigyelhetõk, ezért a valós és a szimuláció által generált outputadatok összehasonlítása szintén jó módszer a modell helyességének ellenõrzésére. Számos további teszt áll rendelkezésre a modell validálásához: folytonosságteszt (apró változtatás az inputadatokban kis változást kell elõidézzen az outputadatokban); érzékenységvizsgálat (változtatás a paraméterekben milyen változást eredményez az outputadatokban); konzisztenciateszt (azonos futási körülmények közt zajló szimulációk hasonló eredményt kell adjanak);29 degenerálási teszt (ha a modell egy fontos elemét kiiktatjuk, akkor az outputadatokon ez meg kell, hogy jelenjen); abszurd feltételek (hasonlóan a verifikációhoz, itt is speciális körülmények közötti futtatásokat értünk). A pénzügyi szimulációs modellnél számos validációs eljárást alkalmaztunk, így a szimulált opcióérték összehasonlítását a BlackScholes-féle analitikus eredménnyel, és elvégeztük a fenti pontokban összefoglalt teszteket is.30 Kalibrálás. A modellkalibrálás rendkívül érdekes része a szimulációs modellezésnek. A kalibráció során a modell paraméterváltozóit kell megválasztanunk. Abban az esetben, ha ez a valós környezetbõl megfigyelhetõ és megbecsülhetõ, akkor a modellkalibrálás gyakorlatilag az inputanalízis része. Elképzelhetõ azonban, hogy egy-két paramétert nem tudunk megfigyelni, mégis nagy szerepe van a szimulációban. Ilyenkor például szakértõi becslésekre gyakorlatilag megérzésekre kell hagyatkoznunk. Elképzelhetõ azonban, hogy a szimulációban szereplõ objektumok például gazdasági szereplõk valamilyen viselkedése elméletileg alátámasztható – például az optimalizálás. Ebben az esetben a szimuláció egyes részeinél a helyes paraméterbeállítást egy optimumszámítási feladattal számíthatjuk ki, azaz a következõ feladatot oldjuk meg: max f ( K , x ) , K
(2.29)
29 Azonos futási körülmények esetén csak a véletlenszám-generátor által készített véletlen sorozatok különböznek. Ehhez a generátort különbözõ induló értékekbõl (magból) kell indítani. 30 A konzisztenciateszt során fedeztük fel a hibás véletlenszám-generátor problémáit, és ekkor implementáltuk a gasdev eljárást a kizárás módszere helyett.
35
ahol f reprezentálja a szimulációs folyamatot, K pedig a kalibrálni kívánt paramétert. Az is elképzelhetõ, hogy nem ismerünk ilyen magatartási formát, de meg tudjuk figyelni a modell valamely outputváltozóját. A szimulált és valóságos outputadatok (o(x)) összehasonlítása segítségével szinten kalibrálhatunk egy paramétert:31 min ( f (K , x ) − o( x)) . 2
K
(2.30)
A (2.29) és (2.30) feladatok megoldása egyáltalán nem egyszerû, hiszen f-rõl sokszor semmit sem állíthatunk, néha még azt sem, hogy az függvény. A szimulációk numerikus optimalizálása a késõbbiekben még többször is elõ fog kerülni.
2.8. Kísérletezés Ha sikerült meggyõzõdni a modell helyességérõl, el lehet kezdeni a kísérletezést. Ebben a fázisban számítunk új eredményekre és értékes összefüggések feltárására. Természetesen ez az a pont, amely leginkább függ az adott problémától és a kísérletezõtõl, így nem igazán lehet általános módszereket megfogalmazni. Egyedül az fontos, hogy a kísérletezési fázis során sokszor vissza-vissza kell lépnünk a modellépítés és validáció/verifikáció lépésekhez, mivel az új kísérletek újabb és újabb elemek beépítését igényelhetik a szimulációs programba. Ezekrõl a lépésekrõl nem szabad megfelejtkezni, hiába volt validált egy-egy korábbi kísérlet.
2.9. Outputanalízis Végezetül szót kell ejtenünk arról, hogy az outputadatokat részletesen elemezni kell annak érdekében, hogy a várt összefüggéseket statisztikailag is alátámaszthassuk. Ehhez ugyanazok az eszközök nyújtanak segítséget, mint amelyeket az inputanalízisnél már felsoroltunk, ezért az elemzési módszereket nem részletezzük. Ehelyett arra a problémára összpontosítjuk a figyelmünket, hogy hogyan lehet meghatározni a helyes replikációszámot, azaz a mintaméretet. Nyilvánvaló, hogy minél nagyobb a mintánk, annál pontosabb lesz az output változónk, viszont a sokszori replikálás nagyon idõigényes feladat. Problémát jelent az is, hogy a legtöbb szimuláció esetében nem lehet statisztikai adatot gyûjteni addig, ameddig el nem telik egy ún. felmelegedési periódus (warm-up period). A felmelegedési periódus alatt azt az idõszakot értjük, ameddig a modell egyes elemei a valóságtól eltérõen mûködnek, mert induláskor egy teljesen üres rendszert kezdtünk szimulálni. (Például egy napi 24 órás gyártósor esetén nagyon ritka, hogy minden futószalag üres, minden gép hibamentes, minden erõforrás szabad, minden alapanyagból kellõ mennyiség áll rendelkezésre, stb.) Hogy számítási idõt takarítsunk meg, elképzelhetõ, hogy több replikáció helyett egy nagyon hosszú futtatás felmelegedési periódusa utáni eredményeit 31 Illusztráció céljából képzeljünk el egy telefonos Call-Center-t, ahol nincs információnk arról, hogy egy olyan ügyfél, akinek túl sokat kellett várakoznia az operátorra, és ezért kiszolgálás elõtt letette a telefont, milyen valószínûséggel hívja újra egy adott idõn belül a központot. Kiindulunk egy hipotetikus értékbõl, és összehasonlítjuk, hogy a szimulált eredmények mennyire egyeznek a valós értékekkel, majd ezt addig módosítjuk, amíg a kívánt pontosságot el nem érjük.
36
vizsgáljuk, és azokat osztjuk fel több részre. A felosztásnál azt kell szem elõtt tartani, hogy elegendõ elem kerüljön a mintába, ugyanakkor elég hosszúak legyenek a mintaperiódusok ahhoz, hogy az egyes mintákat függetlennek lehessen tekinteni egymástól. Ezt az eljárást a szakirodalom batch-mean módszernek nevezi. A futási idõt más módszerrel is csökkenthetjük. Ezt a módszert akkor alkalmazzuk, amikor csak a kimeneti valószínûségi változó várható értékét szeretnénk meghatározni. Erre a becslésre triviálisan a mintaátlagot használtuk, most azonban bemutatunk egy hatékonyabb módszercsaládot, a varianciacsökkentõ módszereket. A feladat tehát az, hogy olyan becslési eljárást adjunk, ami lehetõleg torzítatlanul kisebb varianciával becsüli a várható értéket, mint az egyszerû mintaátlag. AvramidisWilson 1996 ad jó áttekintést a szimulációs modellezésben alkalmazott varianciacsökkentõ módszerekrõl. Általában kétféle módszer létezik: i(i) korrelált minta készítése, amely hatásosabb becslést adhat, mint a FAE minta; (ii) becslés a paraméterek feltételes eloszlásából, mikor a feltételben szereplõ változók eloszlásának elméleti paraméterei ismertek (pl. kontrollváltozók módszere). Ekkor a becslés hatásossága a korreláció mértékétõl függõen javítható. Megjegyezzük, hogy a szimulációs pénzügyi modellben az árfolyammozgás játszhatja a kontrollváltozó szerepét. Egydimenziós esetben célszerû a futamidõ végi részvényárfolyamot használni. Ez korrelál az opció árával, és ismertek az elméleti paraméterei. Nézzük tehát a kontrollváltozók módszerét! Tegyük fel, hogy találunk egy olyan valószínûségi változót a modellben, amelynek elméleti paraméterei ismertek, és erõs lineáris korrelációban van a modell eredményváltozójával. Ekkor használhatjuk az alábbi lineáris becslõ formulát: YCV = Y − β (C − µC ) ,
(2.31)
ahol Y a kimeneti változó értéke, Y CV a kontrollváltozóval korrigált értéke, C a kontrollváltozó, amelynek elméleti várható értéke ismert, éspedig µC. (Több kontrollváltozó esetén ez utóbbi két változó értelemszerûen vektor, így a fenti kifejezés jobb oldalán egy skaláris szorzás szerepel.) A kontrollváltozóval korrigált változó becslése nyilvánvalóan torzítatlan, és hatásossága a β paraméter értékétõl függ, ugyanis: E (YCV ) = E (Y ) − β E (C − µC ) = E (Y ).
(2.32)
Nyilván akkor hatásos a becslés, ha tényleg csökken a korrigált változó varianciája. Anderson (1958) belátja, hogy β optimális értékét – az optimális kontrollt a következõ formula adja:
β=
σ YC , σ C2
(2.33)
ahol σ YC az eredeti kimeneti változó és a kontrollváltozó kovarianciája, σ C2 pedig a kontrollváltozó szórásnégyzete. (A továbbiakban σ-val mindig az elméleti, s-sel mindig a tapasztalati szórást jelöljük.) Nyilvánvaló, hogy ebben az esetben annál hatásosabb a becslés, minél nagyobb az eredeti változó és a kontrollváltozó közti korreláció, és minél kisebb a kontrolváltozó szórása, ugyanis 37
Var (YCV ) = σ Y2 + β 2σ C2 − 2 βσ YC .
(2.34)
A becslés akkor hatásos, ha β 2σ C2 − 2 βσ YC ≤ 0. Így a (2.34) felhasználásával azt kapjuk, hogy 2 2 σ YC σ YC − ≤ 0, 2 σ C2 σ C2
azaz
2 σ YC 2 ≥ 0. = ρYC σ C2
(2.35)
Mivel ρ YC a (többszörös) korrelációs együttható, ezért látható, hogy a varianciacsökkentés feltétele a becsült és a kontrollváltozó(k) közti korreláció. Ez az elméleti eset, a gyakorlatban a szabadságfokok veszteséget indukálnak, ezért az alábbi, szabadságfokok által meghatározott küszöbértéket kapjuk: 2 ρYC >
q , n−2
ahol q a kontrollváltozók száma, n a minta mérete. s Mivel β nem ismert, ezért mintából kell becsülni. Ekkor βˆ = b = YC2 . Sajnos ebben az sC esetben a becslés torzítatlansága már csak akkor garantált, ha (Y,C) együttes eloszlása normális.32 Vagyis csak ekkor igaz, hogy s s E YC2 (C – µC ) = E YC2 sC sC
E (C – µC ) = 0.
(2.36)
Az általunk készített pénzügyi modellben sem Y (opcióárfolyam), sem pedig C (részvényárfolyam a futamidõ végén) nem követ normális eloszlást, így együttes eloszlásuk sem lehet normális eloszlás. C-rõl viszont tudjuk, hogy lognormális eloszlású, vagyis a logaritmusa normális eloszlású. Y elméleti eloszlása nem ismert, a grafikus megjelenítések alapján K33 bizonyos értékeire lognormális eloszlás sejthetõ (ez a K < 20 tartomány). A kontrollváltozók módszerének általánosításairól nem normális eloszlások esetére Nelson (1990) ad áttekintést, melyben lognormális eloszlásra konkrétan nem mutat be módszert. Modellünkben megoldható, hogy úgy transzformáljuk a változókat, hogy azok már normális eloszlást kövessenek. Legyen X az opció ára, és definiáljuk most Y-t mint X logaritmusát, vagyis legyen Y = lnX, továbbá jelölje C már eleve az árfolyamok logaritmusát. Így Y is és C is normális eloszlású változók,34 vagyis annak szükséges feltétele, hogy (Y,C) együttes eloszlása normális, teljesül. Képezzük az alábbi várhatóérték-becslést:35 X CV = X − b (C − µC ) , ahol b =
sYC , sC2
(2.37)
32 Ez abból a tételbõl következik, hogy a normális eloszlás átlagvektora és variancia-kovariancia mátrixa függetlenek. Lásd pl. MórySzékely 1986 vagy Anderson 1958. 33 K jelentette a befektetési stratégia szabad paraméterét a szimulációs modellben. 34 Feltéve persze, hogy igaz X lognormalitására vonatkozó hipotézisünk. 35 Az ökonometriában az ilyen típusú feladatokra semi-log modelleket illesztenek, vagyis Y = lnX-re írnak fel lineáris összefüggést valamilyen magyarázó változókkal (esetünkben kontrollváltozókkal). Könnyen belátható, hogy ezzel a modellel X várható értékét torzítottan becsüljük.
38
s ahol X lognormális eloszlású, és Y = lnX. Mivel E YC2 (C − µ C ) = 0 most is igaz, ezért s C E ( X CV ) = E ( X ) , vagyis a becslés továbbra is torzítatlan. Az persze nem biztos, hogy β
most is az optimális kontroll, ugyanis: Var(X CV ) = σ X2 + β 2σ C2 − 2 βσ XC , 2 σ YC σ − 2 YC2 σ XC ≤ 0, σ C2 σC
(2.38)
1 σ XC ≤ . 2 σ YC
Ezek szerint varianciacsökkenés abban az esetben várható, ha legalább fele akkora (X,C) kovarianciája, mint (Y,C)-jé. Belátható, hogy a varianciacsökkentés akkor maximális, ha a fenti hányados éppen egy, azaz σ YC = σ XC . Ugyanakkor független valószínûségi változók függvényeire vonatkozó tétel alapján használható a (2.37) becslésnél az optimális kontroll, s ami így b = XC2 . sC 2.12. Tétel: A (2.37) becslés ez utóbbi b választás esetén is torzítatlan marad. A tétel azért érdekes, mert a szakirodalomban nem található meg, annak ellenére, hogy pénzügyi szimulációs alkalmazása rendkívül jelentõs.36 Bizonyítás: Tudjuk, hogy sYC , s C2 és C függetlenek egymástól, ekkor azonban f ( sYC ), sC2 és C is függetlenek egymástól, ahol f folytonos, szigorúan monoton transzformáció. Viszont sYC és s XC kapcsolatát pont egy ilyen f leképzés írja le. Gondoljuk meg ugyanis, hogy az empirikus kovariancia valójában egy leképzés az Y n × C n mintatérbõl a valós számegyenesre (ahol n a mintaméret). Az s XC leképzés esetében pedig az n darab Y tengely helyett azok szigorúan monoton transzformációját, X = e Y tengelyeket használjuk. Így tehát a két leképzés szintfelületei bijektív viszonyban állnak egymással. Nyilvánvalóan a fenti gondolatmenet bármilyen olyan eloszlás esetében használható, mely szigorú monoton transzformációval megkapható a normális eloszlásból. A (2.37) helyett tehát használhatjuk az alábbi szintén torzítatlan, hatásosabb becslést: X CV = X −
s XC ( C − µC ) . sC2
(2.39)
Ezzel a varianciacsökkentõ módszerek tárgyalását befejeztük, de megjegyezzük, hogy számos hatékony eljárást találhatunk a szakirodalomban (Boyle et al. 1997, Hull–White 1988).
36 Boyle et al. (1997) nagy jelentõségû cikkében is elköveti azt a hibát, hogy torzítatlan és torzításos varianciacsökkentõ eljárásokat hasonlít össze.
39
2.10. Összefoglalás Ebben a fejezetben bemutattuk azokat a lényeges elemeket, eljárásokat és bizonyításokat, amelyek egy általános szimulációs modell elkészítésénél a legfontosabb szerepet játsszák. E módszerek segítségével elsõsorban mikroökonómiai, vállalatgazdasági és pénzügyi szimulációkat tudunk megvalósítani, azonban komolyabb közgazdaság-elméleti modell kezeléséhez még számos kérdés tisztázatlan. Hogyan lehet közgazdasági szereplõk viselkedését modellezni? Milyen módszerekkel lehet egy szimulációt optimalizálni? Ezekre a kérdésekre igyekszünk válaszolni a harmadik fejezetben.
40
3. AZ EVOLÚCIÓS MÓDSZERTAN
A közgazdaságtan általában az összes gazdasági szereplõt haszonmaximalizáló, optimalizáló vagy legalábbis döntéshozó és adaptációs képességgel rendelkezõ szereplõnek tekinti. A legtöbb modell eleve feltételezi, hogy a szereplõk az optimális viselkedést az összes rendelkezésére álló információ alapján, analitikusan meg tudják határozni, és mindvégig ezt alkalmazzák. A valóságban azonban a környezet állandóan változik. (Már az is változást okozhat, ha a szereplõk nem egyszerre hozzák meg amúgy optimális döntéseiket.) A szereplõk a valóságban állandóan tanulnak, alkalmazkodnak, fejlõdnek. Az evolúciós eljárások ezeket a folyamatokat szimulálják, így külön jelentõségük van a közgazdaság-tudományban. A szimulációs modellezés során két minõségben találkozhatunk evolúciós eljárásokkal. Egyrészt magától értõdõen a modell szereplõinek viselkedését kívánjuk ezzel a módszerrel okosabbá és realisztikusabbá tenni. Másrészt ezek az eljárások jól szolgálhatnak a szimulációs modell egészére vonatkozóan is, amikor a modellezõ szerepét vállalják át. (Ahogy ugyanis egy függvény szélsõérték-helyét kereshetjük evolúciós módszerekkel, úgy ugyanez alkalmazható egy szimulációs modell optimalizálására is.) Így elõfordulhat az, hogy egymásba ágyazva több evolúciós eljárás jelenik meg egy-egy szimulációs alkalmazásban. A fejezet a továbbiakban öt alfejezetbõl áll. Az elsõ részben az evolúciós elméletek általános tulajdonságait tárgyaljuk. A történeti összefoglaló és az elméleti ismertetés mellett bemutatunk néhány konkrét alkalmazást, különös tekintettel a közgazdasági alkalmazásokra. A második részben a numerikus optimalizálás, a harmadikban a genetikus algoritmus, a negyedik részben pedig a neurális háló részletesebb ismertetésével foglalkozunk. Végül összefoglaljuk a fejezetet.
3.1. Evolúciós elméletek Ma már számos evolúciós módszerrel, algoritmussal és alkalmazással találkozhatunk a szakirodalomban. Ezek rendszerint abban különbözhetnek egymástól, hogy milyen evolúciós modell szolgál az algoritmus alapjául, vagy akár ugyanolyan modell esetén milyen mechanizmus valósítja meg a modellt. Minden modellben közös azonban az, hogy valamilyen szinten a természet optimális kiválasztódási folyamatát próbálják utánozni. Mit csinál a természet? Tegyük fel, hogy adott egy populáció számára valamilyen kezdeti állapot. Tételezzük fel azt is, hogy ez az állapot optimális a populáció és a természet számára, például nem hal ki vagy nem szaporodik el túlságosan a populáció. Ebben az állandósult állapotban nincs fejlõdés, nincs tanulás, és tökéletes az egyensúly, abban az értelemben, hogy nincs semmilyen erõ, amely kimozdítaná ebbõl az állapotból. A következõ lépésben azonban úgy változtatjuk meg a populáció környezetét, hogy ez valami41
lyen negatív hatással van rá. A populáció egyes egyedei elpusztulnak, mások életben maradnak. A következõ generációba az életben maradtak utódai kerülnek, de azok is szembesülnek a negatív hatással; elpusztulnak vagy életben maradnak, szaporodnak stb. Az egyedek természetesen nem egyformák, egyes tulajdonságokban különböznek egymástól. Ezen tulajdonságok azonban meghatározzák, hogy a negatív hatással szemben mennyire ellenállóak. Az adott negatív hatást jobban közömbösítõk életben maradnak, és képesek továbbörökíteni ezt a tulajdonságot. Sõt, a populáció akkor sincs feltétlenül halálra ítélve, ha ez a tulajdonság (vagy ezek a tulajdonságok) a kezdeti generáció egyetlen egyedében sem fordult(ak) elõ. Lehetõség van ugyanis a mutációra, azaz olyan öröklõdésre, ahol az utód nem minden tulajdonsága vezethetõ vissza szülei, nagyszülei stb. tulajdonságaira, hanem vannak véletlen megváltozások is. Az adott feltételek mellett, számos generáció után újra létrejön az egyensúly, és ez az új állapot (tulajdonság-összetétel) lesz optimális. Tekintsük ezt a problémát egy hagyományos optimumfeladatnak, amelyben az egyedek különbözõ tulajdonságai adják a lehetséges megoldások halmazát. (Minden egyed egy-egy lehetséges megoldás.) Minden lehetséges tulajdonsághoz a természet megmondja, mennyire jók az adott egyed túlélési esélyei, azaz adott egy, az összes lehetséges tulajdonság halmazán értelmezett függvény. A populáció az utolsó generációban megtalálja a függvény maximumát. A folyamatban az a különös, hogy anélkül találja meg az optimumot, hogy ismerné a célfüggvény alakját (tulajdonságait). (Hozzátesszük, hogy ezzel a fejlõdési stratégiával viszonylag gyorsan találja meg a populáció a számára optimális állapotot. Ennek azért van nagy jelentõsége, mert ismeretlen célfüggvény esetében a legegyszerûbb megoldás az összes lehetséges eset kipróbálása és az optimális megoldás kiválasztása. Ez azonban óriási számítási idõt vehet igénybe.) E szempont miatt érdekes számunkra az evolúciós eljárás, hiszen mint a bevezetõben elmondtuk olyan problémákra keressük a megoldást, amelyben a célfüggvény nagyon bonyolult vagy akár nem ismert tulajdonságú. Feltehetjük a következõ kérdést: Nem véletlenül találta-e meg a populáció az optimális tulajdonságokat? A válasz igen, a véletlennek óriási szerepe van a fejlõdésben. Viszont ez a véletlen nem vak. Nem össze-vissza bolyongunk egy számunkra teljesen ismeretlen helyen, hanem fejlõdési irányokat, utakat derítünk fel. Az útról persze többször is letérünk, de a lényeg az, hogy minden következõ lépésünket valamilyen módon az elõzõ lépések helyessége befolyásolja. (Az, hogy az algoritmus optimumba jut, az nem véletlenszerû, de hogy melyik egyed éri el, az igen.) Azt lehet tehát mondani, hogy ezekben az algoritmusokban a tanulás vagy fejlõdés irányított. Ez a megközelítés az evolúciós eljárások egyik fõ iránya. Célja az optimalizálás, az algoritmust pedig genetikus algoritmus néven nevezi a szakirodalom. Természetesen sok minden még nincs tisztázva; például hogyan zajlik az öröklõdés, hány egyed van egy populációban, hány generáción keresztül figyeljük meg a populációt, stb. Ezekre a kérdésekre a 3.3. alfejezetben adunk választ. Nézzük most tovább az evolúciós eljárásokat! Sikerült találni egy olyan eljárást, amely egy diszkrét változásra egy hosszú folyamat után optimális választ ad. Sok esetben azonban nagyon gyakori a változás, és nagyon rövid idõ áll rendelkezésre ahhoz, hogy a változásra a helyes választ megadjuk. Azért nehéz a gyors válasz, mert nem ismerjük azt a függvényt, amely minden egyes környezeti állapothoz megadja az optimális (vagy megfelelõ) megoldást. A természetben rengeteg olyan eset fordul elõ, amikor nagyon gyorsan kell válaszreakciót adni. Ilyen például az arcfelismerés, ahol a szemünkbe érkezõ nagy mennyiségû képinformációt kell valamilyen függvénynek feldolgoznia, és végeredmé42
nyül az adott személyt meghatároznia. A természetben az ilyen típusú függvények keresése és állandó módosítása, javítása a tanulás. Így kézenfekvõ volt, hogy a modellezéshez az agy mûködését (neuronok mûködését) használták. A neurális háló tehát olyan tanulóalgoritmus, amely nagy mennyiségû példa alapján egy adott bemeneti halmaz és kimeneti halmaz közti összefüggést próbálja megtalálni. Sok esetben az elõrejelzõ modellek készítésénél is a fenti problémával szembesülünk. Nagy mennyiségû adattal rendelkezünk, de az adatok között bonyolult és sokrétû összefüggés lehet, és a modellezést az adatok zajossága is bonyolíthatja. Ebben az esetben az összefüggések keresését érdemes a neurális hálóra bízni. A neurális hálóval részletesen a 3.4. alfejezetben foglalkozunk. Végül meg kell jegyeznünk, hogy bár a genetikus algoritmus és a neurális háló az evolúciós elméletek két talán legfontosabb pillére, rengeteg egyéb evolúciós módszer létezik, és nagyon sok vegyes eljárás található mind az algoritmusok, mind az alkalmazások szintjén. Így például a neurális háló nemcsak függvénykeresésre, hanem optimalizálásra is alkalmazható, a genetikus algoritmus felhasználható a neurális háló hierarchiájának (struktúrájának) kialakításánál, hagyományos optimalizáló módszereket (pl. gradiensmódszer) és heurisztikus optimalizáló eljárásokat (pl. szimulált lehûtés simulated annealing) kapcsolhatunk össze a genetikus algoritmussal, stb. Röviden bemutatunk néhány tényleges, illetve lehetséges alkalmazást. Ezek a példák szemléltetõ célt szolgálnak, és nem törekszünk sem a teljességre, sem pedig az alkalmazások valamilyen csoportosítására, klasszifikációjára. Nézzünk elõször két klasszikus ám nem közgazdasági alkalmazást! A számítógéppel dolgozók régi nagy álma, hogy a számítógépet nem kézzel, hanem hanggal tudják irányítani, diktálni tudjanak a számítógépnek, azaz a gép ismerje fel a beszédet. A feladat több szempontból is nehéz. A beérkezõ hang nagyon sok információt tartalmaz, ebbõl nem mindenre van szükség a beszéd felismeréséhez. Nehéz azonban eldönteni, hogy mit lehet kiszûrni vagy a hatását tompítani. A betûket egyenként felismerni lehetetlenség, de sokszor az élõbeszédben a szavakat is összemossuk. Sok szónak más az írása, mint a kiejtése. Minden ember egy kicsit máshogyan beszél, más hangmagasságon, más tempóban, más kiejtéssel. A nehézségeket még hosszan sorolhatnánk. A megoldást többek között neurális hálók alkalmazásával keresik. A feladat egyébként kifejezetten neurális háló típusú feladat, hiszen analóg az emberi agy beszédfelismerési mechanizmusával. A neuronoknak azt a leképzést kell megtalálniuk, amely minden beérkezõ hangmintára a megfelelõ írott szöveget adja eredményül. A számítástechnika jelenlegi lehetõségei még nem oldották meg a tökéletes beszédfelismerést, de részsikerek már vannak. Ez azt jelenti, hogy háttérzajmentes környezetben, jól tagolt, meghatározott maximum néhány száz szavas szókincsbõl álló beszédet a számítógép akkor képes felismerni, ha a beszélõ megfelelõ mennyiségû mintával megtanította a saját beszédstílusára a neurális hálózatot. A fentihez kissé hasonló írott szöveg felismerését azonban gyakorlatilag már sikerült megoldani, és az ezen feladatot megoldó programok már rendelkezésére állnak. (Részletes ismertetés található: Institute of
1989 és Holmes 1993.) A genetikus algoritmus alkalmazására számtalan példa található. Ezek közül egy példa az automata sebességváltó. A feladat az, hogy optimális idõpontokban kapcsoljunk egyegy fokozattal elõre gyorsításkor, azaz úgy váltsunk sebességet, hogy mondjuk 100 km/hra a lehetõ legrövidebb idõ alatt gyorsuljunk fel. Bár az optimalizálandó függvény formája igen bonyolult hiszen az adott fokozatok nyomatékgörbéi erõsen függenek attól, hogy mekkora sebességnél történik a kapcsolás , a genetikus algoritmus számára könnyen és gyorsan megoldható ez a probléma. 43
Nézzünk néhány alkalmazást közgazdasági területrõl! Elsõnek az utazó ügynök problémát. Egy példafeladatban 50 várost (3.1. ábra) kell a lehetõ legrövidebb útvonalon bejárni (lásd PhamKaraboga 1998). Ha az optimális megoldást keressük, akkor 49!/2 (azaz több mint 3·1064) lehetõséget kellene végigszámolni. Ez még a mai leggyorsabb számítógépek számára is kivárhatatlanul hosszú feladat. A jelen esetben mind a genetikus algoritmus, mind a neurális háló alkalmazható a legrövidebb út megtalálásához. Mindkét algoritmus nagyon rövid és közel azonos idõ alatt ad eredményt. A genetikus algoritmus által megtalált legrövidebb út hossza 5,58 egység, a neurális hálóé 6,61 egység volt. Jelen esetben tehát a genetikus algoritmus pontosabb eredményt adott. Nem lehetünk azonban biztosak abban, hogy a megtalált 5,58 egység hosszúságú út a legrövidebb, csak azt tudjuk, hogy igen jó optimumhoz közeli megoldást kaptunk. Az egyes algoritmusok maguk is tudják, hogy nem biztos, hogy optimális megoldáshoz jutottak, ezért a keresés, illetve a tanulás leállásának különbözõ kritériumokat adhatunk. 1
0,8
0,6 Y 0,4
0,2
0 0
0,2
0,4
0,6
0,8
1
X
3.1. ábra. Térkép (50 város)
A feladat kicsit módosított változatát több szállítással foglalkozó vállalat is alkalmazza. Egy olajtársaság számára például fontos kérdés, hogy meghatározott számú telephelyeirõl milyen módon juttatja el a benzint a kutak számára. Itt nem egyetlen ügynökrõl van szó, hanem többrõl, hiszen a társaságnak több olajszállító kamion áll rendelkezésére. Ezek átlagos sebessége és tárolókapacitása is különbözõ lehet. A feladat az, hogy a telephelyekrõl a lehetõ legkisebb költséggel szállítsák az üzemanyagot a kutakhoz. A problémát genetikus algoritmus segítségével oldották meg (Himanen 1998). A következõ alkalmazást mobiltelefon-társaságoknál fejlesztették ki. A probléma az, hogy a kommunikációhoz szükséges rádió adó-vevõ központokat milyen sûrûn és hova helyezzék el. Ha egy körzet nincs lefedve (nincs térerõ), akkor onnan nem lehet telefonálni, ha pedig nincs elég sûrûn lefedve megfelelõ kapacitással , akkor csúcsidõben nem lehet telefonálni (túlterhelés). Látható, hogy a feladat különösen bonyolult, hiszen nemcsak a földrajzi adottságokat kell figyelembe venni, hanem a lehetséges használat mértékét is. A problémát többek között neurális hálózattal és genetikus algoritmussal oldották meg. Az ökonometriai módszertani kutatások során is rendszeresen alkalmaznak genetikus optimalizálást, például a nemlineáris regressziós modellek, illetve a becsléselmélet 44
loglikelihood függvényeinek optimalizálása esetén. Ilyenkor ugyanis a célfüggvény nagyon bonyolult, és sok lokális optimummal rendelkezik, így a hagyományos optimalizáló algoritmusokat nem lehet használni. Konkrét alkalmazásokat elsõsorban szimulációs modellekben láthatunk (pl. világmodell). Ilyen modellekben a szimulációt fekete doboz (black-box) függvénynek, a szimuláció egyes paramétereit exogén kívülrõl szabályozható változónak tételezzük fel (pl. nyersanyagok kitermelésének mennyisége), míg más változókat a szimuláció eredményváltozóinak tekintünk (pl. népességnövekedés, bioszféra állapota stb.). A szimuláció mindig egy adott paraméterbeállítás mellett ad választ bizonyos kérdésekre (pl. ha az õserdõk fakitermelésének szintjét 20%-kal csökkentjük, akkor az átlagos GDP-növekedés 0,5%ponttal csökken). A szimuláció optimalizálása esetén mi definiálhatjuk az exogén változóinkat, azok lehetséges értékét, és mi dönthetjük el, hogy mely eredményváltozók milyen értékét tartjuk kívánatosnak. (Pl. milyen legyen az egyes nyersanyagok kitermelésének a mértéke annak érdekében, hogy meghatározott idõ alatt a GDP legalább 1%ponttal növekedjen, és a környezetszennyezés mértéke ne növekedjen.) Szimulációk optimalizálása tipikusan a genetikus algoritmus számára kitalált feladat. Ráadásul a genetikus algoritmus képes több célfüggvény esetén az efficiens megoldások meghatározására is (lásd Benedek 1999b). Végezetül nézzünk egy példát olyan elõrejelzési modellre, amelyet rendszerint bankok alkalmaznak. A feladat az, hogy a bank által üzemeltetett ATM bankjegy-automatában optimális szinten legyen az adott bankjegyek mennyisége és választéka. Az optimális szint itt azt jelenti, hogy ne legyen nagyon sok, mert ennek napi kamata költségként jelentkezik az adott banknál, de ne is legyen nagyon kevés, mert a kifogyó automata erõsen rontja az adott bank imázsát. Továbbá, ha túlságosan gyakran kell feltölteni az automatát, akkor a szállítási költség lesz nagyon magas. Pénzváltó automaták esetében különösen fontos és nehezen megválaszolható kérdés az, hogy az egyes valutafajtákból mekkora összeg legyen raktározva. A feladatot neurális háló és genetikus algoritmus segítségével lehet kezelni. A neurális hálózat segítségével, a múlt tapasztalatai alapján meg lehet határozni az adott bankjegy-automata várható forgalmát (akár mint valószínûségi változót). Ezután a genetikus algoritmus segítségével meghatározzuk az optimális feltöltési stratégiát. Az optimalitás itt megint több szempontot érinthet, ugyanis nem biztos, hogy a legalacsonyabb üzemeltetést kell választani akkor, ha a véletlen hatások miatt ez nagyon kockázatos (gyakori kifogyás). Végezetül összefoglaljuk azokat a feltételeket, amelyek megléte ajánlott abban az esetben, amikor evolúciós eszközökkel próbáljuk megkeresni a megoldást: Analógia. Elõnyös, ha az adott problémához, melyet evolúciós eljárásokkal kívánunk megoldani, található valamilyen analóg evolúciós példa, illetve a szereplõk cselekvése ezzel az elmélettel magyarázható. Ilyen lehet a mintafelismerés, a fejlõdés, a tanulás. A legtöbb közgazdasági alkalmazásban ez a feltétel adott. Komplexitás. A megoldandó feladatnak elegendõen bonyolultnak kell lennie ahhoz, hogy érdemes legyen evolúciós eljárásokat alkalmazni. Nagyon sok egyéb módszer ismert, és mint megállapítottuk, az evolúciós algoritmusok nem mindig pontosan a legjobb megoldást adják, hanem az adott feltételek között csak elég jót. Egyszerûbb feladatok esetén érdemesebb matematikai és statisztikai módszereket vagy teljes leszámlálást alkalmazni. Adat. Az evolúciós eljárások legsikeresebben akkor alkalmazhatók, ha már elveszünk az adatok között, azaz rendkívül nagy mennyiségû és nehezen átlátható adat birtokában 45
kell valamilyen döntési modellt meghatároznunk. Természetesen az adatoknak relevánsaknak, többé-kevésbé teljeseknek és hibamenteseknek kell lenniük az adott feladatra vonatkozóan. Ha nincs összefüggés, azt az evolúciós eljárások általában szintén meg tudják állapítani, viszont ha hibás és/vagy hiányos adatbázissal dolgozunk, akkor az algoritmusok könnyen félrevezetõdhetnek, és hibás következtetéseket vonhatnak le. Külsõ információ. Az evolúciós eljárásokat nem szabad olyan esetekben alkalmazni, amikor egyéb információk lehetõvé teszik egyszerûbb módszerek alkalmazását. (Például ha ismert vagy feltételezzük, hogy ismert a modellforma, és csak annak paramétereit akarjuk becsülni, vagy ha célfüggvényrõl tudjuk, hogy egyetlen lokális (=globális) optimális pontja létezik.) Az evolúciós eljárásokkal akkor érdemes próbálkozni, ha nem tudunk vagy nem akarunk hipotéziseket megfogalmazni az adott problémára vonatkozóan, továbbá az evolúciós algoritmusok eredményeit mint automatikusan a számítógép által megfogalmazott hipotéziseket kell kezelni, s ezeket további statisztikai-matematikai módszerekkel érdemes ellenõrizni.
3.2. A numerikus optimalizálás A genetikus algoritmust tehát azért kívánjuk bevezetni, hogy a szimulációban szereplõ egyedek külön-külön optimális viselkedést legyenek képesek produkálni, vagy pedig magát a szimuláció kimenetelét szeretnénk egy számunkra optimális értékre beállítani. (Az elsõ esetre példa, ha egy cseregazdaságot képzelünk el, ahol minden szereplõ a saját hasznosságát igyekszik maximalizálni, a második esetre pedig példa lehet egy telefonos ügyfélszolgálat (Call-Center), ahol az operátorok számát szeretnénk minimalizálni, adott kiszolgálási idõ mellett.) Azaz egy függvény szélsõérték-helyét kell megkeresnünk, ahol a függvény maga a szimuláció vagy a szimulációban egy kisebb önállóan mûködõ egység. Vegyük észre, hogy a függvényoptimalizálással ellentétben itt nem ismerjük a függvény alakját, csak behelyettesítési értékeit, ráadásul azokat is igen korlátozott számban, hiszen minden egyes függvénykiértékelés szimuláció költséges. Ez a költség a futásidõ. A tényleges optimum meghatározásának így egyedül egy biztos módja van, a teljes leszámlálás azaz az összes lehetséges pontban való kiértékelés , és ráadásul még ez sem biztos, a számítógép kerekítési korlátjai miatt.37 Néha elképzelhetõ hogy a szimulációra vonatkozólag is tudunk valamilyen tulajdonságot bizonyítani (Lipsitz-folytonosság, folytonosság, konvexitás stb.) vagy legalább néhány futtatás eredményeképpen feltételezni. Minél többet tudunk, illetve feltételezünk, annál hatékonyabb gyorsabb, pontosabb algoritmust alkalmazhatunk. A genetikus algoritmust akkor célszerû bevetni, amikor nincs semmilyen elõzetes feltételezésünk a vizsgált rendszerrõl. Mielõtt azonban rátérünk a genetikus algoritmusra, megmutatjuk, hogy milyen más módszerek állnak rendelkezésre abban az esetben, ha egy szimulációs modell szélsõértékét keressük. Ezeket numerikus optimalizálási eljárásoknak nevezzük. Két modellcsaláddal foglalkozunk, a rácsmódszerrel (grid search) és a gradiensmódszerrel (gradient method).
37
46
Nincs olyan numerikus módszer, amely pontosan meg tudná határozni f(x) = (x π)2 minimumát.
Rácsmódszer. A módszer lényege, hogy a célteret meghatározott számú rácspontra osztjuk, és a modellkiértékelést ezekben a pontokban hajtjuk végre. Ezután meghatározzuk az optimumot és ez a pont (illetve ennek paraméterei lesznek) a feladat megoldása(i). Ha feltételezzük, hogy a probléma folytonos, és nincs lokális optimuma vagy legalább ezek a lokális optimumok kellõen messze vannak egymástól , a rácsmódszer saját magába ágyazva hatékony módszert ad. Ilyenkor ugyanis megfelelõen kiválasztott rácspontok között újra alkalmazni lehet a rácsmódszert, természetesen finomítva a rácspontok közötti távolságot. Nézzünk egy példát! Tegyük fel, hogy a síkban elhelyezkedõ n számú pont közé kell elhelyezni egy pontot úgy, hogy az egyes pontoktól mért távolságainak összege minimális legyen. Azaz:
(
)
n
min L x, y, {ai }1 , {bi }1 , L = ∑ x, y
n
n
i =1
( ai − x ) + (bi − y ) 2
2
,
(3.1)
ahol (ai, bi) jelöli az i-edik számú pont koordinátáit, (x, y) pedig a keresett pontét. (A (3.1) feladat könnyen általánosítható m dimenzióba és K számú optimális pontba, ami nem más, mint a szegmentációhoz alkalmazott K-közép módszer K-Mean method.) A (3.1) feladatnak nincs analitikusan meghatározható megoldása. Ugyanis L deriválásával a következõket kapjuk: ∂L n =∑ ∂x i =1 ∂L n =∑ ∂y i =1
x − ai
( ai − x ) + (bi − y ) 2
2
y − bi
( ai − x ) + (bi − y ) 2
2
= 0,
(3.2) = 0.
A (3.2) egyenletrendszerbõl nem lehet ugyanis zárt alakban meghatározni x-et és y-t. Vessük be a rácsmódszert n = 4-re és a (0,1), (0,1), (1,0) és (1,0) pontokra.
12 10 8 6 4 2
0-2
2-4
4-6
6-8
8-10
10-12
0
3.2. ábra. Rácsmódszer (3D)
3.3. ábra. Rácsmódszer (2D)
3.2. ábra. Rácsmódszer (3D)
3.3. ábra. Rácsmódszer (2D)
47
A megoldáshoz a (2,0; 1,7; 1,4;
; 1,9) × (2,0; 1,7; 1,4;
; 1,9) rácspontokat használtuk. A 3.2. és 3.3. ábrán a kiértékelt rácspontokat össze is kötöttük, és így meghatározhattuk a szintvonalakat. A 3.3. ábrán kövér ponttal jelöltük a rácsmódszer által megtalált optimumpontot, a (0,1; 0,1)-et, ahol L = 4,02. A megoldást visszahelyettesítve (3.2)be látható, hogy még nem értük el a minimumot. Könnyû belátni azt is, hogy a (3.1) feladatnak csak egy minimumhelye van, továbbá a feladat folytonos (x, y)-ban, ezért megtehetjük, hogy a legjobb rácspont körüli rácspontokból újraindítjuk a keresést finomabb beosztással, például (0,2; 0,1;
; 0,4) × (0,2; 0,1;
; 0,4). Ha azonban azt feltételezzük, hogy nem ismerjük a feladat analitikus felírását, csupán egy feketedoboz- (blackbox) függvényt értékelünk ki, a rácspontok vizsgálata és vizualizációja alapján, akkor is élhetnénk a finomítási lehetõséggel. A rácsmódszerrõl további hasznos információk és tételek találhatók (Quandt 1983 és Fletcher 1980). Gradiensmódszerek. A gradiensmódszerek iteratív kereséssel próbálják megtalálni az optimális megoldást. Az iteratív keresés lényege, hogy kiindulunk egy lehetséges értékbõl, majd ezt úgy módosítjuk, hogy lehetõleg minél közelebb kerüljünk a megoldáshoz. Formálisan: (3.3)
èt +1 = èt + λt Ät ,
ahol λ jelenti a lépésközt, ∆ pedig az elmozdulás irányát. Gradiensmódszerek alkalmazásánál feltesszük, hogy a célfüggvény deriválható sõt, bizonyos esetekben kétszer is deriválható. Ebben az esetben akkor juthatunk közelebb egy szélsõértékhelyhez, ha a gradiens irányában mozdulunk el. A (3.3) esetén ez azt jelenti, hogy ∆t = Ht gt, ahol Ht egy megfelelõ pozitív θt) = L’(θ θt). Az egyes definit mátrix, gt pedig az L célfüggvény gradiense, azaz gt = g(θ gradiensmódszerek általában λt és Ht megválasztásában különböznek. A legegyszerûbb eset, ha Ht-t az egységmátrixnak, I-nek választjuk. Ezt nevezzük a legmeredekebb irány módszerének. E módszer alkalmazásánál sem mindegy, hogy milyen λt paramétert választunk. Nézzük elõzõ, (3.1)-es példánkat. A legmeredekebb irány módszere a következõt adja: n
xt − ai
i =1
( ai − xt ) + (bi − yt )
n
yt − bi
xt +1 = xt + λt ∑ yt +1 = yt + λt ∑ i =1
2
2
(3.4)
( ai − xt ) + (bi − yt ) 2
,
2
.
Mivel minimalizálást hajtunk végre, ezért λt-t negatívnak kell megválasztanunk. A 3.4. ábrán jól látszik, hogy amennyiben a lépésközt – abszolút értékben – kicsinek választjuk (λt = –0,1), abban az esetben lassabban konvergálunk az optimális megoldáshoz. Ha azonban túl nagynak választjuk (λt = –1,0), abban az esetben ahelyett, hogy közelednénk, távolodunk az optimális megoldástól.
48
3.5 3 2.5 2 1.5 1 0.5
-0.10
0 -1.5
-1
-0.5
-0.5 0
0.5
1
1.5
2
-0.25 2.5
-1
-0.50
-1.5
-1.00
-2
3.4. ábra. A legmeredekebb irány módszer
A szélsõérték közelében meg lehet határozni azt a lépésközt, amely a leggyorsabb konvergenciát eredményezi: λt =
−g′t g t , g′t G t g t
Gt =
∂ 2 L ( èt ) . ∂è∂è′
(3.5)
Ha kiszámítjuk a megfelelõ értékeket a (3.1) példán, akkor a következõket kapjuk: at − xi ∑ T i i ,t , gt = bt − yi ∑ Ti ,t i 2 −3 2 ∑i (yi − bt ) Ti,t Gt = − (x − a )(y − b )T −3 2 ∑ i t i t i,t i
− ∑ (xi − at )(yi − bt )Ti ,t i
∑ (x
i
− at ) Ti ,t 2
i
Ti ,t = (xi − at ) + (yi − bt ) , 2
−3 2
−3 2
,
2
2 2 a − xi bt − yi − ∑ t + ∑ Ti ,t i Ti ,t i , λt = S
(3.6)
2
a −x 2 −3 2 i − S = ∑ (yi − bt ) Ti ,t ∑ t Ti ,t i i − 2∑ (xi − at )(yi − bt )Ti ,t i
−3 2
a − x b − y i t i ∑ t + ∑ i T T i , , i t i t 2
b −y 2 −3 2 i . + ∑ (xi − at ) Ti ,t ∑ t Ti ,t i i
A probléma azonnal látszik a (3.6) levezetésbõl, a második deriváltak meghatározása ugyanis igen bonyolult. Sõt, abban az esetben, ha Gt negatív definitté válik ami elképzelhetõ abban az esetben, ha θt messze kerül az optimumtól –, akkor egyre távolabb fogunk kerülni 49
a megoldástól. A 3.53.6. ábrán két induló értékbõl indítottuk az optimális λt lépésközzel számított legmeredekebb irány módszerét. Ha a minimumhelyhez elég közeli induló értéket tudunk választani (0,6; 1), akkor a módszer igen gyorsan konvergál (vastag vonal). Ha azonban egy kicsit messzebbrõl indulunk (0,6; 1,205), akkor menthetetlenül divergálni fog a sorozat (vékony vonal). Látható, hogy a megfelelõ lépésköz megválasztása kritikus fontosságú. 0
2.0
1
1.5
2
3
4
5
6
7
8
9
10
11 12
13
14 15
-0.5
1.0 -1
0.5
-1.5
0.0 -2.0
-1.0
0.0
1.0
2.0
-0.5
-2
-1.0 -2.5
-1.5
-3
-2.0
3.6. ábra. Az optimális λ értékek
3.5. ábra. Konvergáló és divergáló értékek
Megjegyezzük, hogy megfelelõ λt választással a legmeredekebb irány módszere általában 10-15 kiértékelést igényelt az igen pontos (10-8) optimum megtalálásához. A rácsmódszer alkalmazásánál 142 kiértékelés után is csak közelítõleg tudtuk az optimumot. Ne felejtsük azonban el, hogy a (3.4) alkalmazásánál feltettük, hogy ismerjük (3.1) analitikus formáját, ami ráadásul folytonosan deriválható. Ha nem ismerjük a célfüggvényt, illetve a derivált nem hozható zárt alakra, akkor is alkalmazható legmeredekebb irány. Ebben az esetben a deriváltat numerikus módszerrel kell meghatározni, pl.:
f ′(x) ≈
f (x + ht ) − f (x) , ht
f ′ (x) ≈
f (x + 2ht ) − 2 f (x + ht ) + f (x) . ht2
(3.7)
Természetesen ügyelni kell ht megválasztására, általában ht < λt. Nézzük, hogyan konvergál a legmeredekebb irány módszere a (3.1) feladat esetében, ha azt feltételezzük, hogy nem ismerjük az analitikus formában problémát. Két különbözõ ht érték esetét látjuk a 3.7. ábrán. A megoldás pontossága most ettõl a ht paramétertõl is függ. 1,2 1,0 0,8 0,6 0,4 0.2 0.0 –3,0
–2,0
–1,0
0.0 –0,2
1,0
2,0
3.7. ábra. Konvergencia becsült derivált esetén
50
3,0
A legmeredekebb irány algoritmussal az egyik legnagyobb probléma, hogy sok esetben rendkívül lassan konvergál. A másik gradiensmódszer, amelyet bemutatunk, bizonyos feladatok esetén hatékonyabban mûködik. Ezt a módszert Newton-módszernek hívják. Az eljárás abból indul ki, hogy a szélsõértékhelyen a függvény elsõ deriváltja zérus. Ha a deriváltat az elsõrendû Taylor-polinommal közelítjük, akkor a következõt kapjuk: ∂L (è ) = q + G (è − è0 ) = 0, ∂è
(3.8)
ahol q és G rendre L θ0 pontban vett gradiens vektorát és másodrendû vegyes parciális derivált mátrixát jelöli. Az egyenletet megoldva a következõ formához jutunk (3.9)
è = è0 − G −1q,
ahonnan már csak egy lépés a (3.3) általánosítása. Így a keresett iterációs forma a következõ: (3.10) èt +1 = èt − G t−1qt , azaz H = –G-1 és λ = 1. A legtöbb probléma esetén (3.10) gyorsan konvergál, de természetesen minden olyan fenntartást, amelyet a legmeredekebb iránnyal szemben említettünk, itt is szem elõtt kell tartanunk. Szimuláció optimalizálása esetén még egy problémával szembesülünk. Nem elég, hogy feketedoboz-függvény szélsõértékhelyét kell megkeresnünk, de ez még ráadásul sztochasztikusan is viselkedik. A legmeredekebb irány módszerét itt is megpróbálhatjuk alkalmazni. Ebben az esetben azonban még jobban kell ügyelni λt és ht megválasztására. Tegyük fel a következõket: 2
λt < ∞. ∑ t =1 ht
∞
∞
∑ λt = ∞, t =1
(3.11)
Ebben az esetben – bizonyos feltételek mellett38 – bizonyítani lehet, hogy a sztochasztikus approximációval ellátott legmeredekebb irány módszere konvergálni fog az optimális megoldáshoz. Ezt az eljárást Kiefer–Wolfowitz-eljárásnak nevezi a szakirodalom. 1,5
1
0,5
0 –2
–1,5
–1
–0,5
0
0,5
1
1,5
-0.5
-1
-1,5
3.8. ábra. Konvergencia becsült derivált esetén 38 A feltételek között szerepel, hogy a véletlen tényezõk függetlenek legyenek, továbbá az optimalizálni kívánt eredeti függvény bizonyos folytonossági tulajdonságoknak eleget tegyen. A feltételeket és a részletes bizonyítást lásd Kátai 1981.
51
A 3.8. ábrán bemutatjuk, hogyan alkalmaztuk az eljárást a (3.1) feladat módosított változatára. A módosítás a következõ alakú: n
L=∑ i =1
( ai + 0,1ε i − x ) + (bi + 0,1ε i′ − y ) 2
2
,
ε i , ε i′ ~ N (0,1).
(3.12)
Minden egyes szimuláció futtatásakor más-más végeredményt kapunk, azaz úgy értelmezhetjük a problémát, hogy a megfigyelõ nem tudja pontosan megmérni a távolságot az egyes pontok között. A KieferWolkowitz-eljárás alkalmazásakor ht értékét 0,1-nek (konstansnak) választottuk, míg a lépésközt a λt = 1/3t képlet adta. Így teljesül a (3.11) feltétel, és a 3.8. ábrán látható módon sikerült az optimális megoldásba konvergáltatni a sorozatot. Megjegyezzük azt is, hogy mivel az eljárás során a deriváltakat is becsültük, ezért egy lépés megtételéhez összesen háromszor kellett a szimulációs modellt kiértékelni. Elõször ki kell értékelni az indulópontot, majd az x változó szerinti deriváláshoz egy x-ben módosított, az y szerintihez meg egy y-ban módosított függvényt, azaz: ∆xt = ∆yt =
L( xt + ht , yt ) − L ( xt , yt ) , ht
L( xt , yt + ht ) − L ( xt , yt ) , ht
(3.13)
xt +1 = xt + λt ∆xt , yt +1 = yt + λt ∆yt .
3.3. A genetikus algoritmus Most, hogy megismerkedtünk a numerikus optimalizálás nehézségeivel, térjünk rá a genetikus algoritmus tárgyalására. A genetikus algoritmust 1975-ben fedezte fel Holland (1975). Azóta az algoritmus számos továbbfejlesztést, módosítást megélt, és különbözõ változatait alkalmazzák. Az alapalgoritmust PhamKaraboga (1998) mûve alapján ismertetjük. A genetikus algoritmus hátterében a Sémaelmélet húzódik. A séma az egyes egyedek valamilyen halmazát reprezentálja, azaz a populáció valamely részhalmazát jelenti. Séma lehet például a négyjegyû számok halmazán a 4*2* reprezentáció, ahol a * helyére tetszõleges értékek kerülhetnek. Egy sémát két paraméter határoz meg; a hossza és a rendje. A hosszúság az elsõ és utolsó fix számjegy között található számjegyek számát, a rend pedig a meghatározott értékû számjegyek számát jelenti. Az elmélet alapján tehát az egyes sémák eloszlása egyik generációról a másikra mindig a séma rendjétõl, hosszától és túlélési értékétõl függ. A genetikus algoritmus célja, hogy meghatározza azt a sémát (génkombinációt), amely az adott probléma szempontjából optimális. A genetikus algoritmusok gyakorlatilag semmit sem tudnak (semmit sem használnak ki) az optimum problémával kapcsolatosan, és nem foglalkoznak közvetlenül a paraméterekkel. Ehelyett kódokkal dolgoznak, melyek az egyes paramétereket reprezentálják. Ezért az elsõ kérdés az, hogy miképp kódoljuk a problémát, hogyan ábrázoljuk a paramétereket. Mivel a genetikus algoritmus a lehetséges megoldások populációjával foglalkozik, és nem egy darab lehetséges megoldással, ezért a második kérdés az, hogy miképpen hatá52
rozzuk meg a kezdeti populáció egyedeit. A harmadik kérdés az, hogy a további generációk meghatározásához (fejlõdés) melyek a megfelelõ genetikus mûveletek (öröklõdés). A negyedik kérdés a visszacsatolás kérdése, azaz a célfüggvény alapján meg kell határozni az egyedek túlélési valószínûségét. Végül az algoritmusnak valamilyen kritériumot kell szabni a keresés befejezésére. Reprezentáció. Tegyük fel, hogy az f(x) függvény maximumát szeretnénk meghatározni. Ebben az esetben a populáció egyedeit x különbözõ értékei képviselik. Kérdés, hogy a számítógép számára milyen formában adjuk meg ezt az értéket. A reprezentáció formájától függõen ugyanis igen különbözõ lehet a genetikus algoritmus eredménye, azaz másmás reprezentációja ugyanannak a problémának különbözõ pontosságot és futási idõt adhat. A numerikus optimalizálás esetében általában két reprezentációs módszert szoktak alkalmazni (Michalewicz 1992, Davis 1991). A gyakrabban alkalmazott módszer a bináris kódolás, azaz az x változót kettes számrendszerben ábrázoljuk. Ennek az az elõnye, hogy ilyenkor a legnagyobb a lehetséges sémáknak a száma. A szakirodalomban nagyszámú különbözõ bináris kódolási módszer lelhetõ fel (pl.: Uniform coding, Gray scale coding). A másik lehetséges módszer egyszerûen egész vagy valós vektorként kezeli xet.39 Bináris kódolás esetén fontos feladat annak meghatározása, hogy hány bitet használjunk az optimalizálandó változó(k) ábrázolására. Kezdeti populáció. Az optimalizálás megkezdése elõtt a genetikus algoritmusnak szüksége van néhány kezdeti megoldásra. Az egyik lehetséges módszer az, hogy a számítógép véletlenszám-generátora segítségével elõállítunk néhány x értéket, s ezek képviselik az elsõ generáció egyedeit. A másik lehetséges módszer, hogy külsõ információt (is) felhasználva az optimális megoldás környékérõl indítjuk az algoritmust. Ebben az esetben nyilvánvalóan valamilyen elõzetes tudásunk van a problémáról, s ezt kihasználva várhatóan az elsõ esetnél rövidebb idõ alatt jutunk optimális megoldáshoz.40 Genetikus mûveletek. Három hagyományos mûvelet használatos: szelekció, keresztezés és mutáció, és egy további ritkábban alkalmazott az invertálás. A genetikus optimalizálás során e mûveleteknek számtalan fajtáját és paraméterezését alkalmazhatjuk, továbbá nem is szükséges ezen mûveletek mindegyikét használnunk, mivel minden egyes mûvelet egymástól függetlenül mûködik. Az alkalmazott genetikus mûveletek mennyisége és minõsége az adott probléma, illetve a reprezentáció függvénye. A mûveleteket bináris kódolást feltételezve mutatjuk be. (Részletesen lásd WhitelyHanson 1989, Baker 1985.)
39 Egy rövid példával szemléltetjük a két reprezentációs módszert. Tegyük fel, hogy a lehetséges megoldások egész számok, és az optimális megoldás valahol x = 16 körül található. Binárisan kódolva 16 = [0 1 0 0 0 0], viszont 15 = [0 0 1 1 1 1]. Ha az utóbbi irányból közelít az algoritmus, akkor esetleg olyan eredményt ad, hogy a [0 0 1 1 * *] séma helyes. Ezzel szemben ha egyszerû egész számként kezeljük, akkor az 1* (azaz tizenvalahány) séma a helyes irány. 40 Általában az elsõ módszert alkalmazzák, vagy a két módszert kombinálják. Tegyük fel például, hogy az f(x,y) függvényt szeretnénk maximalizálni, azzal a feltétellel, hogy x = y. A genetikus algoritmust ha mint feketedoboz-szimulációt alkalmazzuk, akkor a feltételekkel nem tud külön mit kezdeni, és ezért azt az optimalizálandó függvénybe kell beépíteni, pl.: g(x,y) = f(x,y) a(x y)2, ahol a egy megfelelõen nagy pozitív szám. Véletlen indítás esetén igen kicsi a valószínûsége annak, hogy egymás után két azonos számot generálunk, így nagyon sokáig eltarthat, míg az algoritmus egy egyáltalán lehetséges megoldásra rátalál, majd ezek után vagy azonnal leáll, vagy újfent sokáig tart, míg arra a sémára rájön, ami x = y-t jelenti. Ha eleve olyan akár véletlenül meghatározott pontokból indítjuk az algoritmust, ahol x = y, akkor hamarabb jutunk megoldáshoz. E példát csupán szemléltetésül említjük, nyilvánvaló, hogy sokkal egyszerûbb megoldás az, ha a korlátozott probléma helyett a számítógép a nem korlátozott f(x,x) problémát oldja meg.
53
Szelekció. A szelekciónak az a célja, hogy több olyan egyedet állítson elõ, amelynek a túlélési esélye magasabb és kevesebb olyat, amelynek a túlélési esélye alacsonyabb. A szelekció lényegesen befolyásolja, hogy milyen rövid idõ alatt kezd az algoritmus az optimális megoldáshoz konvergálni. Általában két módszert alkalmaznak: az arányos (proportional) más néven rulettkerék (roulette wheel) és a rangsorolt (ranked) szelekciót. Az elõbbi módszert úgy képzeljük el, hogy adott egy óriási rulettkerék, ahol minden egyed arányosan annyiszor szerepel, amekkora a túlélési esélye. Annyiszor pörgetjük meg a kereket, ahány egyedet a következõ generációba szánunk, így a nagyobb túlélési esélyû egyedek nagyobb valószínûséggel többször kerülnek a következõ generációba. Rangsorolt szelekció esetén egy korábbi generációból egy egyednek legfeljebb egy replikációja kerülhet a következõ generációba. Ekkor minden egyedhez egy véletlen számot generálunk úgy, hogy annak várható értéke annál nagyobb legyen, minél nagyobb az egyed túlélési esélye. Végül e szám alapján rangsoroljuk az egyedeket, és kiválasztjuk az elsõ n darabot a következõ generáció számára. Keresztezés. Ez az a mûvelet, amely alapjában megkülönbözteti a genetikus algoritmust más optimalizáló módszerektõl. A keresztezés során két létezõ egyed (szülõk) két új egyedet (utódok) hoz létre. A szülõket szelekcióval határozzuk meg. A keresztezésnek jó néhány különbözõ fajtáját alkalmazzák, pl. egy ponton történõ (one-point), két ponton történõ (two-point), ciklikus (cycle) és egyenletes (uniform) keresztezés. A keresztezés töréspontjait külön heurisztika szabályozza, így a keresztezés során egyre közelebb kerülünk az ideális sémához. A következõ ábrákon az említett négy keresztezésre mutatunk példát: 1. szülõ: 2. szülõ:
[10001001111] [01101100011]
1. utód: [10001100011] 2. utód: [01101001111] 3.9. ábra. Egy ponton keresztezés 1. szülõ: 2. szülõ:
[10001001111] [01101100011]
1. utód: [10001101111] 2. utód: [01101000011] 3.10. ábra. Két ponton keresztezés 1. szülõ: 2. szülõ:
[10001001111] [01101100011]
1. utód: [11001100111] 2. utód: [00101001011] 3.11. ábra. Ciklikus keresztezés 1. szülõ: 2. szülõ: Minta:
[10001001111] [01101100011] [11001111000]
1. utód: [01001100111] 2. utód: [10101001011] 3.12. ábra. Egyenletes keresztezés
54
Mutáció. A mutáció során az egyedeket bitrõl bitre megvizsgálja az algoritmus és véletlenszerûen megváltoztathatja. A mutáció heurisztikája azt jelenti, hogy az egyes bitek milyen eséllyel változzanak meg (mutációs ráta), és csakúgy mint a keresztezésnél, ez az érték dinamikusan változhat, annak érdekében, hogy az ideális séma kialakuljon. Szemben a keresztezéssel, a mutációhoz elegendõ egy szülõ, és az eredmény egy utód, ahol a szülõ kiválasztása ismét a szelekcióra van bízva. A mutáció segítségével az algoritmus új területeket fedez fel, ami azért hasznos, mert elvezeti az algoritmust a lokális optimális pontokból a globális optimum felé. Szülõ: Utód:
[01001100111] [01001000111] 3.13. ábra. Mutáció
Invertálás. A mûvelet során a szülõegyed megfelelõ heurisztikával kiválasztott bitjei felcserélõdnek, azaz 0-ról 1-re, 1-rõl 0-ra változnak. Gyakorlatilag a mutáció is felfogható egy egybites invertálás mûveletnek. Szülõ: Utód:
[01001100111] [01000011111] 3.14. ábra. Invertálás
Többször is hangsúlyoztuk, hogy az egyes mûveleteknek különbözõ paraméterbeállításai léteznek. Ilyen paraméterek: a populáció mérete, a keresztezési ráta, illetve a mutációs ráta. Számtalan publikáció foglalkozik ezen paramétereknek a genetikus algoritmus sebességére és pontosságára való hatásának vizsgálatával (Schaffer et al. 1989, Grefenstette 1986, Fogarty 1989). Természetesen maga az optimumprobléma képviseli a legjelentõsebb hatást a genetikus algoritmus számára, és két különbözõ probléma esetén ugyanaz a beállítás egészen különbözõ eredményeket produkálhat. Ennek ellenére megfogalmazható néhány általános megállapítás. Nagy populáció (mintaméret) esetén a számítás lassabb lesz, azonban mivel az egyedek jobban lefedik a lehetséges megoldások halmazát, ezért nagyobb a valószínûsége annak, hogy globális optimumot kapjunk. A keresztezési ráta (crossover rate) meghatározza, hogy milyen gyakran történjenek a keresztezések. Túl alacsony ráta esetén nagyon lassúvá válhat a konvergencia, míg túl magas ráta esetén elképzelhetõ, hogy egyetlen megoldás körül ugrálunk. Végül a túlságosan magas mutációs ráta erõteljesen különbözõvé teszi a populációt minden egyes lépésben, ezáltal instabilitást okozhat. Másik oldalról a globális optimum megtalálása nagyon nehéz olyan esetben, ha a mutációs ráta túl alacsony. A genetikus algoritmusokat az teszi nehézzé, hogy a fenti paraméterek megadására nincs egyetlen út. Néhány problématípusról be lehet bizonyítani, hogy adott paraméterbeállítás esetén milyen gyorsan konvergál, illetve mekkora valószínûséggel találja meg az optimális megoldást, sok esetben azonban ismeretlen (fekete doboz) a célfüggvény. Ebben az esetben gépünk kapacitásától függõen különbözõ paraméterbeállításokkal kell próbálkoznunk. Mikor végül elfogadjuk a genetikus algoritmus által optimálisnak vélt megoldást, tisztában kell lennünk azzal, hogy nem 100%-ig biztos, hogy a valódi optimumban vagyunk. Azt azonban állíthatjuk, hogy az adott körülményekhez képest (vagyis, hogy semmit sem tudunk a problémáról), adott idõ alatt (számítás idõ kapacitás) a lehetõ legjobb eredményt kaptuk. Abban az esetben, ha mindenképpen meg akarunk gyõzõdni az ered55
mény helyességérõl, vagy elõzetes információnk van a célfüggvény tulajdonságairól, más módszerekkel érdemes kombinálni a genetikus algoritmust (pl. simulated annealing). Túlélési valószínûségek. A túlélési valószínûségek meghatározására is igen sok módszert lehet alkalmazni. Abban az esetben, ha a feladatban a célfüggvény mellett egyéb feltételek is szerepelnek, akkor a feltételeket a célfüggvénybe kell integrálni (lásd 41. lábjegyzet). Nyilvánvaló, hogy maximumfeladat esetén, minél nagyobb az adott egyednek megfelelõ pontban a függvény értéke, annál nagyobb az adott egyed túlélési esélye; minimumfeladatnál pedig fordítva. A kérdés az, hogy mennyivel. Tegyük fel, hogy 4 egyed túlélési valószínûségét szeretnénk megadni. Legyen a függvényértékük rendre 1, 2, 3 és 4, továbbá legyen a feladat maximumprobléma. Az egyik legegyszerûbb számítási lehetõség a diszkrét korlát állítása. Legyen ennek a diszkrét korlátnak az értéke mondjuk 2,5, és a korlát alatti egyedek túlélési valószínûsége 0, a korlát felettieké 1. Így az 1. és 2. egyed túlélési valószínûsége 0, a 3. és 4-é pedig 1. Folytassuk e példát a már ismertetett szelekcióval. Tegyük fel, hogy 3 egyedet kell kiválasztani. Rulettmódszer esetén a rulettkeréken 1 darab 3-as és 1 darab 4-es szerepel. 3-szor forgatunk, így átlagosan a következõ mintába 1,5 darab 3-as és 1,5 darab 4-es kerül. Elképzelhetõ az is, hogy adott esetben 3 darab 3-as kerül be, viszont 1-es és 2-es soha. Rangsorolás esetén minden egyedhez rendelnünk kell egy véletlen számot. Legyen ez a véletlen szám a [0; túlélési valószínûség] intervallumon egyenletes eloszlású. Adott esetben például rendre a következõ értékeket kaphatjuk: 0, 0, 0,89, 0,41. A rangsor pedig emiatt a következõ: 3, 4, 1, 2. Három egyedet kiválasztva megállapíthatjuk, hogy jelen esetben a rangsorolt módszer, bármilyen véletlen számokat is generálunk, mindig a 3, 4 és 1 egyedeket választja ki. Nézzünk még egy módszert a túlélési valószínûség meghatározására, az egyenletes eloszlást! Ebben az esetben a függvényértékkel arányos túlélési valószínûségeket generálunk az egyedeknek, azaz a túlélési valószínûségek rendre a következõk: 0,1, 0,2, 0,3, 0,4. Bár különbözõ alkalmazásokban más-más eljárásokat alkalmazhatnak, felhasználhatják korábbi generációk össztúlélési valószínûségeit, más eloszlásokból vehetnek véletlen számokat, stb., a leggyakrabban alkalmazott módszer mégis az említett két eljárás. Leállási kritérium. Az algoritmusnak elvileg akkor kellene megállnia, amikor elérte a globális optimumot, gyakorlatilag azonban más helyen is megállhat. Megállhat a globális optimum környékén, megállhat lokális optimumban, annak a környékén, vagy akár nem optimális pontban. A számítógép csak sejteni tudja, hogy hol tart éppen, azt vizsgálva, hogy az újonnan generált egyedek milyen közel vannak az elõzõkhöz, és milyen nagy az eltérés a függvényértékekben. Ezt nevezzük konvergenciakritériumnak. Amennyiben az algoritmust ez szabályozza, nagyon valószínû, hogy legalább lokális optimumot kapunk, továbbá minél kevésbé érzékeny a konvergenciakritérium, annál valószínûbb, hogy a globálisan optimális pont(ok)hoz közel leszünk. Ez azonban megnöveli a számítási idõt. Annak érdekében, hogy ne lokális, hanem globális optimumban álljunk meg, egyrészt elegendõen nagy számú populációval kell dolgoznunk, másrészt nem szabad sürgetnünk a konvergenciát. A szakirodalom korai konvergenciának, illetve genetikus elsodródásnak nevezi azt a jelenséget, amikor a globális megoldás helyett az algoritmus lokális optimumban áll le. Egyéb leállási kritériumok is elképzelhetõk és használatosak; például meghatározott futási idõ vagy meghatározott ciklusidõ (meghatározott generációszám). E két utóbbi esetben elvileg még a lokális optimum sem biztosított, illetve elképzelhetõ, hogy a túl hosszúra választott futási idõ miatt az algoritmus már nem mozdul a kialakult stabil állapotból egy idõ után. Legtöbbször a konvergenciakritériumot kombinálják ez utóbbi két kritériummal. 56
10
10
8
8 f(x )
12
f(x )
12
6 4
4
2
2 0
0 0
5
10
15
20
0
25
5
10
15
20
25
x
x
3.15. ábra. Elsodródás (1. generáció)
3.16. ábra. Elsodródás (2. generáció)
12
12
10
10
8
8 f(x )
f(x )
6
6
6
4
4
2
2 0
0 0
5
10
15
20
0
25
5
10
15
20
25
x
x
3.17. ábra. Elsodródás (3. generáció)
3.18. ábra. Elsodródás (4. generáció)
A 3.153.18. ábrákon vonallal a teljes leszámlálás eredményét, ponttal a genetikus algoritmus néhány generációjának egyes egyedeit jelöltük. Jól látható, hogy az algoritmus fokozatosan eltolódik a lokális optimum felé, és nem a globális optimumban áll le. A (3.1) probléma sztochasztikus kiterjesztését (3.12) egy egyszerû genetikus algoritmus segítségével oldottuk meg. Egy generációban négy egyed versenyzett, és a két legjobb egyed kapott lehetõséget szaporodni. A szaporodás egyszerûen abból állt, hogy az egyik szülõ a koordinátáját kicseréltük a másik szülõ b koordinátájával. Így két új egyedet kaptunk. A másik két új egyedet mutációval hoztuk létre, ahol a kiválasztott szülõk mindkét koordinátáját kismértékben véletlenszerûen megváltoztattuk. A 3.193.20. ábrákon minden generáció legjobb elemét ábrázoltuk. Numerikus kísérleteink azt igazolták, hogy az alkalmazott genetikus eljárás hasonlóan jó eredményeket ad, mint a megfelelõ indulóértékbõl, megfelelõ lépésközzel indított gradiens alapú keresés. 1.5
1.5
1
1
0.5
0.5
0
0 -1.5
-1
-0.5
0
0.5
1
1.5
-1.5
-1
-0.5
0
-0.5
-0.5
-1
-1
-1.5
3.19. ábra. Determinisztikus feladat
0.5
1
1.5
-1.5
3.20. ábra. Sztochasztikus feladat
57
3.4. A neurális háló41 A neurális háló két objektumból áll, csomópontokból (neuronok) és az õket összekötõ élekbõl (szinapszis). A bejövõ információ (inger, impulzus) egy-egy neuronba érkezik. Amennyiben az adott inger egy küszöbértéket meghalad, a neuron továbbküld egy jelet abba a neuronba, amellyel összeköttetésben van. Egy ilyen neuronba több neuron is küldhet impulzust. Ha ezek összessége meghaladja e neuron ingerküszöbét, akkor ez a neuron is továbbküld egy impulzust a következõ neuronba, stb. Végül az impulzus eljut néhány végsõ neuronba, s attól függõen, hogy melyikbe jutott el, úgy kötünk valamilyen válaszreakciót az adott inputhoz. Tanulás során az intenzíven használt szinapszisok megerõsödnek, a keveset használtak pedig megszûnnek. Az emberi agy tanulásának ezt a mechanizmusát utánozza le a számítógépes modell. Egyes elemeket azonban meg kellett változtatni, ugyanis még a leggyorsabb számítógépek sem képesek néhány száz neuronnál nagyobb hálózatot modellezni szemben az aggyal, amelyben milliárdnyi neuron mûködik. Az elsõ változtatás az, hogy az egyes neuronok több más neuronnak is adhatnak impulzust, akár visszafelé is. A második változtatás, hogy minden szinapszisnak meghatározott az impulzusátadási hatásfoka, azaz meghatározott erõvel (súllyal) továbbítja az információt. A harmadik változtatás az, hogy az ingereket fogadó neuronokat különbözõ mértékû (intenzitású) ingerek érhetik, továbbá az ingerek továbbítására nem egy egyszerû küszöbérték-meghaladási kritérium létezik, hanem bonyolult függvények segítenek meghatározni a kimenõ impulzus mértékét. Kivétel általában a beérkezõ ingereket fogadó neuron, ahonnan is az inger egy az egyben továbbítódik. Végezetül, a tanulás mechanizmusát matematikai statisztikai módszerek szabályozzák, melyek közül a legismertebb és leginkább használatos módszer a hiba-visszaterjesztési (back-propagation) eljárás. Vizsgáljuk meg elõször a neurális háló alapegységét, a neuront. Ezt az egységet gyakran nevezik számítási (vagy processzáló) elemnek is, mivel itt zajlanak le a nemlineáris számítási folyamatok. A neuron gyakorlatilag nem más, mint egy függvény, ami a bemeneti jeleket egyetlen kimeneti jellé alakítja. E függvényeknek általában meghatározott alakjuk van. Elõször a bemeneti jeleket összegzi valamilyen módon (additív, multiplikatív), majd egy függvény segítségével transzformálja ezt a jelet. A leggyakrabban alkalmazott függvények a (3.14) ugrásfüggvény és a (3.15) szigmoid függvény: 1, ha x ≥ t , U ( x, t ) = 0, ha x < t , S ( x) =
1 . 1 + e− x
(3.14) (3.15)
Az összegzésre általában additív módszert alkalmaznak. A neuronokat összekötõ éleken súlyok szerepelnek, amelyek az adott jeleket felerõsíthetik vagy gyengíthetik. Ha tehát egy j neuronba m számú más neurontól érkezik Wi,j súlyokon keresztül ai jel, akkor ezt a következõképpen ábrázolhatjuk:
41 Elsõsorban Fu (1994), EatonGriffith (2000) és Rumelhart et al. (1986) munkáira építünk. Magyar nyelven lásd RusselNorvig (2000) nemrég lefordított könyvét.
58
a1
W1,j
oj
m
Σ g ∑Wi , j ai
Wi,j
ai
i =1
Wm,j
oj
oj
am 3.21. ábra. A neuron mûködése
Nézzünk egy egyszerû példát a 3.22. ábra alapján! Példánkban két bemeneti neuronunk van. Az ide beérkezõ jel változtatás nélkül, de természetesen súlyozva kerül be a kimeneti neuronba. Itt megtörténik a jelfeldolgozás, majd a kiküldött érték lesz a neuronháló végeredménye. Számítási függvénynek most az ugrásfüggvényt használtuk, méghozzá t = 1 paraméterrel. (A t paramétert tûréshatárnak is nevezik.) A súlyokat egységesen válasszuk ½-nek. R Tûréshatár (t = 1)
+½ P
+½ Q
3.22. ábra. Az ÉS függvény neurális reprezentációja
Ha feltesszük, hogy P és Q csak bináris értékeket vehet fel, akkor a hálózat pontosan a logikai ÉS függvényt reprezentálja. Ugyanis: 3.1. táblázat. Az ÉS függvény reprezentálása
P 0 1 1 0
Q 1 0 1 0
Súlyozott összeg ½⋅0+½⋅1=½ ½⋅1+½⋅0=½ ½⋅1+½⋅1=1 ½⋅0+½⋅0=0
Tûréshatár ½<1 ½<1 1=1 0<1
Kimenet 0 0 1 0
A 3.22. ábrán látható neurális hálózat egy egyrétegû hálózati struktúra, ugyanis a bemeneti neuronok közvetlen összeköttetésben vannak a kimeneti neuronokkal. Minsky és Papert (1969, 1988) komolyan foglalkoztak a neurális hálózatok mûködésének matematikailag egzakt formába való öntésén, és ennek keretében többek között bebizonyították, hogy minden egyrétegû közbülsõ réteg nélküli neurális háló csak olyan függvények reprezentálására képes, amelyek lineárisan szeparálhatók. Valóban, a logikai kizáró-vagy függvény (XOR) nem lineárisan szeparálható, és egyetlen réteg segítségével nem lehetséges a függvény neurális megfelelõjét létrehozni (3.23. ábra).
59
3.23. ábra. Az ÉS, a VAGY és a kizáró-VAGY függvény grafikus reprezentációja
Ha többrétegû hálózatot kívánunk létrehozni, akkor a bemeneti és kimeneti rétegek közé egy (vagy több) köztes – vagy rejtett – réteget kell beékelnünk. A 3.24. ábrán egy olyan neurális hálózat struktúrája látható, ahol a bemeneti réteg 64 darab, a köztes réteg 3 darab, a kimeneti réteg pedig 10 darab neuronból áll. Mivel a bemeneti neuronok nem számító egységként vannak a hálózatban, ezért a hálózat egy olyan függvény, amelyben 13 nemlineáris függvény van meghatározott súlyokkal összekapcsolva. Mivel a súlyok elsõ csoportja a 64 bemenetbõl a 3 köztes neuronba juttatja el a jelet, ezért itt összesen 192 súly szerepel. A 3 köztes neuronból a 10 kimeneti neuronhoz összesen 30 súly kell. Ez azt jelenti, hogy ha például szigmoid függvény segítségével dolgozunk, akkor a 3.24. ábrán egy 222 szabad paraméterrel rendelkezõ bonyolult nemlineáris függvényrõl van szó. Ha hozzávesszük még azt is, hogy minden processzáló egységhez biztosítani szoktak egy konstans neuront is, az azt jelenti, hogy a szabad paraméterek száma további 13-mal növekszik. Az ábrán látható neurális háló analitikusan is kifejthetõ: 64 1 a j = g C aj , ∑ Vi , j I i = a , 1 + e − ∑Vi , j Ii +C j i =1
(3.16)
3 1 . Ok = g CkO , ∑ W j ,k a j = − ∑W j ,k a j +CkO j =1 1+ e
1
0
2 1 3 …
…
64
9
I
i
V i,j
a
j
W
j,k
O
k
3.24. ábra. Többrétegû neurális háló
A többrétegû neurális hálózatok már nem csak lineárisan szeparálható függvények reprezentációjára képesek. A következõ tételt Cybenko (1988, 1989) fogalmazta meg és bizonyította be. 60
3.1. Tétel: Ha egy neurális hálózat legalább egy rejtett réteget tartalmaz, akkor tetszõleges folytonos függvény reprezentálására képes. Ha egy hálózat két rejtett réteggel rendelkezik, akkor tetszõleges függvény reprezentációjára képes. A neurális hálózatok alkalmazásának kritikus pontja a tanulás. Ez az a folyamat, amikor a minták által megadott inputokhoz (Ii) és outputokhoz (Ok) meg akarjuk találni a tökéletes hálózati struktúrát topológiát és súlyrendszert.42 A súlyok meghatározása a viszonylagosan egyszerûbb kérdés. Az egyrétegû hálózatokra az elsõ tanulási módszert Hebb (1949) után Hebb-féle tanulásnak nevezik. Az algoritmus lényege a következõ: 1. A tanulómintából válasszunk ki véletlenszerûen egy tanulóhalmazt (Ii, Tk párt), 2. számítsuk ki a megadott input alapján a hálózat outputját (Ok), hasonlítsuk össze a számított és a tényleges eredményt, és módosítsuk a súlyokat úgy, hogy Wi ,tk+1 = Wi ,tk + λ (Tk − Ok ) I i . Az algoritmusból jól látszik, hogy csak abban az esetben történik változtatás a súlyokon, ha a számított és tényleges eredmény nem egyezik meg. Próbáljuk most megtanítani egy egyszerû 2 input 1 output neuronos hálózatnak az ÉS szabályt. Tegyük fel, hogy kiinduló esetben a súlyok véletlenszerûen voltak kiválasztva, és értékük 0,1 és +0,2. A mintákat véletlenszerûen húzzuk, és feltételezzük, hogy λ = 1: 3.2. táblázat. Az ÉS függvény tanulása
Q 0 1 1 0 1 1 0 0
P 1 0 1 1 0 1 1 0
WQ 0,1 0,1 0,1 +0,9 +0,9 +0,9 +0,9 +0,9
WP +0,2 +0,2 +0,2 +1,2 +0,2 +0,2 +0,2 +0,2
Összeg +0,2 0,1 +0,1 +1,2 +0,9 +1,1 +0,2 +0,0
Tûréshatár +0,2 < 1 0,1 < 1 +0,1 < 1 +1,2 > 1 +0,9 < 1 +1,1 > 1 +0,2 < 1 +0,0 < 1
R 0 0 0 1 0 1 0 0
Tény 0 0 1 0 0 1 0 0
Új WQ 0,1 0,1 +0,9 +0,9 +0,9 +0,9 +0,9 +0,9
Új WP +0,2 +0,2 +1,2 +0,2 +0,2 +0,2 +0,2 +0,2
A többrétegû neuronhálózatok leggyakrabban alkalmazott súlytanulási algoritmusa a hiba-visszaterjesztés módszere. A módszer lényege hasonlóan a Hebb-féle tanuláshoz az, hogy úgy kell megváltoztatni a súlyokat, hogy az adott minta esetében az elkövetett hiba csökkenjen. Mivel több réteg mûködik együttesen, ezért a hibát hátulról kell visszaterjeszteni az egyre elõbbi súlyokig. Azaz elõször a rejtett és output rétegek közötti súlyokat kell módosítani: W jt,+k1 = W jt,k + λ a j (Tk − Ok ) g ′ ∑ W j ,k a j , j
42
(3.17)
Vegyük észre, hogy itt tulajdonképpen egy nemlineáris regresszió építésérõl van szó.
61
ahol g-vel jelöltük a processzáló függvényt, amelyet aktiváló- vagy reakciófüggvény néven is említ a szakirodalom. Látható, hogy a szigmoidfüggvény alkalmazása azért kedvezõ, mert könnyen számítható a deriváltja, ugyanis g = g(1 g). A köztes és a bemeneti neuronok között szintén valami hasonló szabályt kellene megállapítani a súlyok megváltoztatása érdekében. Itt azonban nem egyszerû az elkövetett hiba mértékének meghatározása, hiszen amíg a kimeneti értéket össze lehetett hasonlítani a tényadattal, addig itt nem áll rendelkezésre a tényadathoz hasonló mennyiség. Az ötlet az, hogy minden j rejtett neuron valamilyen mértékben hozzájárul minden k kimeneti csomópontban elkövetett hibához. Ezért a már meghatározott kimeneti hibaértékeket a csomópontok közötti kapcsolat szorossága, azaz a súlyok függvényében osztjuk szét, és visszaterjesztjük azokat a rejtett csomópontokhoz. Azaz a j-edik rejtett neuron hibatényezõje: ∆ tj = ∑ W jt, k (Tk − Ok ) g ′ ∑ W jt, k a j , k j
(3.18)
és így a bemeneti és a köztes neuronok közötti súlyok módosítása már hasonló a (3.17) képlethez: (3.19) Vi ,t +j 1 = Vi ,t j + λ Ii ∆ tj g ′ ∑ Vi , j I i . i Szemléltetésül a következõ példában bemutatunk egy egyszerû neurális modellt. A feladat az, hogy a hálózat megtanulja az f (x ) = 4 x(1 − x ) függvényformát az x ∈ [0, 1] intervallumon. A függvényt természetesen egy mintahalmaz segítségével kell megtalálni, és ehhez véletlenszerûen kiválasztottunk 100 különbözõ x értéket. A neurális hálózat elsõ indításra a következõ formát öltötte: HID1
–0,29326
–0,4338
–0,42843 INPUT
CON2 –0,2205 OUTPUT
CON1
–0,14504 0,11591
HID2
–0,11197
3.25. ábra. Kiinduló hálózat véletlen súlyokkal
Látjuk, hogy egy nagyon egyszerû topológiát választottunk, hiszen egyetlen bemeneti érték, I = x, és egyetlen kimeneti érték T = f(x) van. Köztes neuronból is elég volt kettõ. A látható súlyok véletlen számok. Nézzük meg hogyan halad az információ a bemeneti neuronból a kimeneti neuronba. Legyen például x értéke 0,2. Ekkor f(x) = 4×0,2×0,8 = 0,64. Milyen érték kerül a HID1 neuronba? A megfelelõ súllyal szorzott bemeneti érték és a konstans, azaz 0,29326×0,2 0,42843 = 0,487082. Ez az érték a HID1 neuronban átalakul a reakciófüggvény segítségével. Jelen esetben a szigmoid függvényt alkalmaz1 tuk, így a behelyettesítés után = 0,380581. A HID2 és az OUTPUT neuron érté0,487082 1+ e ke is hasonlóan határozódik meg. Így végül a modell 0,64 helyett 0,410467-at tippel. Hasonlóan tippeli a maradék 99 x értéket. Mindezek után azt tapasztaljuk, hogy a függvényformát elég rosszul becsüli (nyilvánvalóan a tanulás folyamata elõtt, lásd 3.26. ábra). 62
1,2 1
neurális háló
0,8
valós adatok
0,6 0,4 0,2 0 0
0,2
0,4
0,6
0,8
1
1,2
3.26. ábra. A kiinduló hálózat eredményei
A (3.17) és (3.19) képletekkel definiált tanulás során kiragadunk egy nem tökéletes, félkész neurális hálót, és megvizsgáljuk, hogyan halad a tanulás (lásd 3.27 ábra). HID1
–9,61928
–7,56386
1,086247 INPUT
CON2 –5,18687 OUTPUT
CON1
5,624989 –8,15505
HID2
8,129156
3.27. ábra. Félkész hálózat – száz iteráció után kialakított súlyokkal A 3.27 ábrán látható súlyokat alkalmazva ismét megvizsgáljuk mennyire sikerült illeszkedni az eredeti pontokhoz (lásd 3.28. ábra). 1,2 1
neurális háló
0,8
valós adatok
0,6 0,4 0,2 0 0
0,2
0,4
0,6
0,8
1
1,2
3.28. ábra. A félkész hálózat eredményei
Látjuk, hogy az adatsor egy részét már sikerült jól megtanulni, míg egy másik rész még hátra van. Végül a tanulási folyamat az alábbi modellnél fejezõdött be, azaz a neurális hálózatban szereplõ súlyok az alábbi értékekhez konvergáltak (lásd 3.29 ábra).
63
HID1
–8,88396
–7,42151
1,18788 INPUT
CON2 –4,92187 OUTPUT
CON1
6,57225 –7,33681
8,33055
HID2
3.29. ábra. Végsõ neurális háló
A 3.29. ábrán látható súlyokat felhasználva a neurális hálózat által becsült értékek jól simulnak a feladatban meghatározott függvény megfelelõ értékeihez. A tanulás befejezõdött. 1,2 1
neurális háló
0,8
valós adatok
0,6 0,4 0,2 0 0
0,2
0,4
0,6
0,8
1
1,2
3.30. ábra. A végsõ hálózat eredményei
Nézzünk most egy kicsit a hiba-visszaterjesztési algoritmus matematikája mögé! 3.2. Tétel: A (3.17) és (3.19) képleteken alapuló hiba-visszaterjesztési eljárás nem más, mint egy gradiensmódszer segítségével történõ numerikus optimalizálás. Bizonyítás: Elegendõ azt megmutatnunk, hogy alkalmas célfüggvényt választva a (3.17) és (3.19) képletekben a λ paraméter után szereplõ kifejezés nem más, mint az alkalmasan választott célfüggvény súlyonként vett parciális deriváltja. A célfüggvény megválasztásánál a legkisebb négyzetek módszerét alkalmazzuk a tényadatok és neurális háló output adatainak összesimítására: E=
2 1 ∑ (Tk − Ok ) . 2 k
(3.20)
Nyilvánvaló, hogy E minimalizálásával a legjobban illeszkedõ hálózatot alakítjuk ki. Írjuk most fel E-t a súlyok függvényében egy olyan hálózati topológia esetén, amely egy rejtett réteggel rendelkezik: 2
E=
2
1 1 Tk − g ∑ W j , k a j = ∑ Tk − g ∑ W j , k g ∑ Vi , j I i . ∑ 2 k i j 2 k j
(3.21)
Képezzük elõször a Wj,k szerinti deriváltakat. Vegyük észre, hogy aj nem függ Wj,k-tól, továbbá a j szerinti összegben csupán egyszer fordul elõ. Így: 64
∂E = − a j Tk − g ∑W j ,k a j g ′ ∑W j ,k a j = ∂W j ,k j j = − a j (Tk − Ok ) g ′ ∑ W j ,k a j . j
(3.22)
Hasonló megfontolások alapján a Vi,j szerinti deriváltak a következõk: ∂E = − I i g ′ ∑ Vi , j I i ∑ W j ,k (Tk − Ok ) g ′ ∑ W j ,k a j .. ∂Vi , j i k j
(3.23)
Ha összevetjük a (3.22) és (3.23) eredményeit, láthatjuk, hogy a (3.17) és (3.19) képletekben alkalmazott gradiensmódszer gradiens irányait adják. Ezzel az állítást beláttuk. Sokan kritizálják a gradiensmódszer alapjain mûködõ neurális hálózat tanítását, és ezt meg is érthetjük a 3.2. alpont tanulságai alapján. A tanulás szempontjából kritikus az induló érték (induló súlyok) és a lépésköz. (Megjegyezzük, hogy az itt λ-val definiált lépésközt a neurális szakirodalom gyakran jelöli η-val és nevezi bátorsági faktornak vagy tanulási tényezõnek learning rate. Értékét pedig a 3.2. pontban elmondottakból egyértelmûen következõen nem konstans, hanem a tanulási idõ függvényében változó mennyiségnek tekintik.) A tanulási probléma komplexitásával többen is foglalkoztak, és sikerült bebizonyítani, hogy a mintahalmaz optimális közelítésének megkeresése még abban az esetben is NP-teljes probléma, ha igen erõs korlátozó feltételeket alkalmazunk, és ha legalább három processzáló egységet használunk fel. (A pontos tételeket és bizonyításokat lásd Judd 1990 és BlumRivest 1992.) A súlyok optimalizálásánál is nagyobb problémát jelenthet az optimális hálózati topológia megválasztása. Nyilvánvaló, hogy egy sok neuronból és köztes rétegbõl álló hálózat súlyoptimalizálása nehezebb, de bonyolultabb összefüggések feltárására is alkalmas. Egy egyszerû hálózatot könnyû tanítani, de reprezentációs képessége is szegényebb. A helyes topológia kiválasztásakor gyakran alkalmazható a genetikus algoritmus is. A neurális hálózati modellezés esetén néhány szempontot a fentieken kívül érdemes szem elõtt tartani. Az egyik legáltalánosabban elfogadott eljárás az, hogy a minta adatbázist három nem feltétlenül egyenlõ független halmazra osztjuk, mégpedig tanuló (train), tesztelõ (test) és validáló (validation) halmazra. Így a súlyok tanulásánál kizárólag a tanuló adatbázis mintáit használjuk, de közben párhuzamosan kiértékeljük a tesztadatbázis eseteit is. Amikor a tanuló adatbázis segítségével már minden további súlymódosítás a tesztelõ adatbázis eredményein ront, ott megállítjuk a hálózat tanulását. Elképzelhetõ ugyanis, hogy egy tanulási mennyiség után már nem egy mintában húzódó általános összefüggéseket fedezi fel a hálózat, hanem a minta specialitását, zajait. Ezt nevezné a hagyományos statisztika túlillesztésnek, míg a neurális hálózatokkal foglalkozó szakirodalom túltanulásként (overtraining) említi. Végül a validáló halmazra szintén meg szokták vizsgálni a hálózat teljesítését, hiszen ezt az adatbázist az optimalizálási folyamat során egyáltalán nem használta fel az algoritmus. Abban az esetben, ha a tanuló és validáló halmazon hasonló eredményeket ér el a hálózat, akkor általában elfogadjuk a végsõ eredményeket.
65
3.5. Összefoglalás Ebben a fejezetben olyan módszereket mutattunk be, amelyek segítségével komplex és sztochasztikus folyamatokat tudunk reprezentálni, illetve optimalizálni. A megoldások hátterében mindig a természet motiváló ereje, a tanulás, a fejlõdés állt. Ezeket az algoritmusokat hatékonyan alkalmazhatja a közgazdaságtan, hiszen feltehetõ, hogy a gazdaság szereplõi racionálisan viselkednek, és egy idõszakban elkövetett nyilvánvaló hibáikat nem ismétlik meg a következõ idõszakokban. A jó alkalmazhatóság mellett azonban ne felejtsük el, hogy ezek a módszerek sok esetben nem egzaktak. A genetikus algoritmus leállhat lokális optimumban is, a neurális hálóval reprezentált függvény pedig feketedobozfüggvény marad.
66
4. AZ ACE-MÓDSZERTAN
Az elõzõ két fejezetben bemutatott módszertan segítségével számos komplex közgazdasági probléma kezelhetõ. A szimulációs módszertan, a genetikus optimalizálás vagy a neurális hálózat segítségével történõ függvényillesztés mind-mind olyan módszertani eszközt biztosít a közgazdászok számára, amelyet külön-külön is be lehet vetni egy adott probléma megoldása során. Arra is utaltunk, hogy e két módszertan szorosan összefügg, és számos esetben érdemes ezeket összekapcsolni. Az összekapcsolásnak két lehetõségére szeretnénk felhívni a figyelmet. Az egyik mód, amikor egy szimulációs modellt kívánunk optimalizálni, és ehhez evolúciós eljárásokat veszünk igénybe. Ezt a módszert alkalmaztuk például a 2. fejezetben többször is példaként említett opcióárazási modell esetén, ahol az optimális kereskedési stratégiák halmazát kívántuk genetikus algoritmus segítségével megkeresni. A másik mód, amikor a szimuláció egy kisebb eleme önmagában képes evolúciós alapokon mûködni. Például egy szimulációs modell közgazdasági szereplõket (agent) modellezhet, és lehetõséget biztosíthat arra, hogy ezek a szereplõk saját és társaik hibái alapján tanuljanak, fejlõdjenek, azaz az adott gazdasági vagy társadalmi környezethez alkalmazkodjanak. Ebben az esetben a modell szereplõit kell ellátni evolúciós módszereket alkalmazó algoritmusokkal. Sõt, egy ilyen modell esetén is fennállhat magának a szimulációnak az egészére vonatkozó optimalizálás, amelyet megint csak megkísérelhetünk evolúciós módszerekkel megoldani.43 A sokszereplõs szimulációs közgazdaságtan Agent-based Computational Economics (ACE) pontosan ezt a két módszertant alkalmazza annak érdekében, hogy komplex közgazdasági rendszerek mûködését tanulmányozza. Ebben a fejezetben az a célunk, hogy bemutassuk, hol tart jelenleg az ACE-módszertan, milyen problémákkal foglalkozik, meddig jutott, és milyen távlati célokat tûztek ki a módszertan alkalmazói maguk elé. Ezzel megalapozzuk a következõ három fejezetet, mivel az ott bemutatásra kerülõ modellek mind az ACE-módszertanra építenek. Az ACE-módszertan44 olyan közgazdasági rendszerek számítógép általi vizsgálata, amelyben egymással és/vagy a környezettel kapcsolatban álló, autonóm szereplõk tevékenykednek. Ezért az ACE a komplex adaptív rendszerek közgazdasági területre történõ
43 Ennek az igen összetett módszertant alkalmazó lehetõségnek a szemléltetésére vegyük a következõ példát. Szeretnénk tervezni egy focipályát, ahonnan probléma esetén a nézõk adott számú vészkijáraton távozhatnak. A feladat az, hogyan helyezzük el optimálisan a kijáratokat ahhoz, hogy a közönség a lehetõ legrövidebb idõ alatt távozni tudjon. A szimulációhoz a közönség tagjait olyan szabályalgoritmussal látjuk el, amelyeket neurális hálózatok vezérelnek. A szimuláció többszöri futtatása során kialakulnak a szereplõk optimális viselkedési stratégiái, majd ezután egy genetikus algoritmus segítségével meghatározzuk az optimális vészkijárat-elhelyezést. 44 Tesfatsion 2001 munkájára és az ACE-módszertant bemutató hivatalos honlapra (http:// www.econ.iastate.edu/tesfatsi/ace.htm) építünk.
67
alkalmazása. (A komplex adaptív rendszerekrõl lásd részletesen Holland 1992.) Az ACEmódszertan három tudományos terület ötvözésébõl született, mégpedig az evolúciós közgazdaságtanból, a számítástudományból és a kognitív tudomány területébõl. Az ACE-kutatások egyik köre a decentralizált gazdasági piacokon megfigyelhetõ globális szabályok, törvényszerûségek kérdéskörét kutatja. Arra keresi a választ, hogy olyan jelenségek, mint például a kereskedelmi hálózatok, a társadalmilag elfogadott pénz vagy a piaci játékszabályok hogyan alakulnak ki és miképpen változhatnak minden felülrõl jövõ (top-down) szabályozás, illetve tervezés ellenére. A kihívás abban rejlik, hogy konstruktív módon bizonyítani (vagy demonstrálni) tudjuk, hogy hogyan jöhetnek létre ezek a törvényszerûségek alulról (bottom-up), az önérdekük által vezérelt autonóm gazdasági szereplõk ismételt, egymás közötti (lokális) interakciójával. Az ACE-kutatások másik köre az ACE-keretrendszert számítógépes laboratóriumként használja.45 Ezen kísérletek segítségével számos gazdasági-társadalmi struktúra tanulmányozható és tesztelhetõ, különösképpen az egyéni viselkedésre és a társadalmi jólétre vonatkozó hatások tekintetében. A vizsgálódás során nemcsak a globális szabályszerûségek megfigyelése, hanem mélyebb magyarázatuk a cél. Azaz nemcsak az a fontos, hogy miért alakulnak ki bizonyos összefüggések, hanem az is, hogy miért nem alakulnak ki másmilyenek. Sem a közgazdasági rendszerek önszervezõdõ (self-organizing), sem pedig evolúciós rendszerekként történõ felfogása nem vadonatúj fogalom a szakirodalomban. A legelsõ megfogalmazások46 jóval a számítógép rohamos térhódítása elõtt napvilágot láttak, és számos kutatót inspiráltak, új elemzési területeteket hoztak létre (pl. evolúciós játékelmélet). Miért újszerû akkor az ACE-modellezés? Elsõsorban azért, mert kiaknázza a számítástechnika által biztosított eszközöket, ezek közül is kiemelve az óriási adattároló és feldolgozó kapacitást, a nagy pontosságú számábrázolást, a rendkívül nagy sebességet elérõ párhuzamosítási technikát és nem utolsósorban az objektumorientált programozást. Ezek az eszközök négy irányban terjesztik ki az ACE-kutatók lehetõségeit. Heterogén szereplõk. A számítógép segítségével épített közgazdasági világokat olyan heterogén szereplõk népesítik be, akik a környezettel és más szereplõkkel kapcsolatos interakciójukat, döntéseiket beépített (beprogramozott) társadalmi normák és viselkedési szabályok, valamint a múltban tapasztalt jelenségek és adatok birtokában kialakított viselkedési szabályok alapján határozzák meg. Éppen ezért ezek a szereplõk önállóságra és magasabb szintû gondolkodási struktúra kiépítésére képesek, mint a hagyományos modellek gazdasági szereplõi. Hérdle és Kirman (1994) empirikus vizsgálat segítségével mutatja be a reprezentatív szereplõk hiányosságát és a heterogén szereplõk szerepeltetésének fontosságát. Önszervezõdés. Egy ACE-modell szimulációja alatt párhuzamosan dolgozhatunk a különbözõ viselkedésû szereplõk széles skálájával, és rendkívül nagy számú interakciót hajthatunk végre, és figyelhetünk meg ezekben a közgazdasági világokban. Versenyzõ és kooperáló kapcsolatok, árigazodási mechanizmusok és számos egyéb jelenség alakulhat ki automatikusan azáltal, hogy a modell szereplõi folytonosan továbbfejlesztik viselkedésüket, a rendkívül nagy számú szereplõkörnyezet és szereplõszereplõ interakciók ered-
Számos publikációban a Petri-csésze (Petri-dishes) kísérletezéshez hasonlítják. Az önszervezõdõ közgazdasági rendszer gondolata már Smith (1937) és Hayek (1948) munkáiban megjelenik, míg az evolúciós rendszeré Schumpeter (1942) és Alchian (1950) mûveiben. 45 46
68
ményei hatására, annak érdekében, hogy saját céljaikat megvalósítsák. Úgy is fogalmazhatunk, hogy az önérdek által vezérelt mikroszintû viselkedés egy magasabb szintû társadalmi-gazdasági jelenséghez vezet, amelyet önszervezõdésnek nevezünk. Evolúció. A gazdasági szereplõk evolúciós képessége folytán a szereplõk viselkedési paramétereire vonatkozóan inkább a természetes szelekció érvényesül, és nem a populáció szintû mozgástörvények. A szelekciós eljárás nyomán a szereplõk képesek a múlt tapasztalatai alapján módosítani régi viselkedésükön, illetve új viselkedési szabályokat létrehozni. A szimulált gazdaság és annak szereplõi együttesen, egymásra hatva válnak egyre életképesebbé. Beavatkozásmentesség. Az ACE-módszertan segítségével lehetõség van arra, hogy hosszú futási idõt biztosítsunk egy-egy szimulált világnak, amelyet megfigyelünk, de ugyanakkor nem avatkozunk be. Amint az induló értékeket és feltételeket a modellezõ beállította, szabadon engedheti az eseményeket, amelyeket ettõl kezdve a szereplõk egymás közötti és a környezettel kapcsolatos interakciói irányítanak, minden további külsõ beavatkozás nélkül. Összefoglalva, az ACE olyan módszertan, amely az evolúciós közgazdaságtan, a kognitív tudományok és a számítástudomány koncepciói és eszközei segítségével konstruktív alapokat nyújt gondolkodó és cselekvõ autonóm gazdasági szereplõk által gazdasági elméletekhez, megfontolt számítógépes kísérletek eredményeinek statisztikai vizsgálata, továbbá analitikus, ökonometriai, gyakorlati és humán-laboratóriumi eredményekkel történõ összehasonlítása által teszteli, finomítja és kibõvíti ezen elméleteket.
69
70
5. A KIYOTAKIWRIGHT-MODELL
A most következõ és a további két fejezetben bemutatjuk, hogy az elõzõ fejezetekben ismertetett szimulációs módszertan hogyan épült be a modern közgazdaság-elméleti modellezés gyakorlatába. Ebben a fejezetben a pénz szerepének modellezésére alkalmazott KiyotakiWright-modellel foglalkozunk.47 A közgazdasági modellek legtöbbször a pénzt olyan speciális jószágnak tekintik, amelyre érvényesülnek a hagyományos jószágfogalmak (készlet, hasznosság stb.), de ezek mellett meghatározott speciális funkciókkal is rendelkezik. Ezek: elszámolási egység funkció (ármérce), csereeszköz funkció (fizetési eszköz), felhalmozási funkció (értékõrzõ eszköz). Számos közgazdász foglalkozik azzal, hogy egzakt matematikai bizonyítás segítségével megmutassa, általános egyensúly-elméleti keretek között törvényszerû egy olyan eszköz kialakulása, amely a fenti funkciókat kielégíti. Egyelõre azonban csak részeredmények vannak, amelyben a pénz a fentiek közül csak egy-egy funkció megvalósítását képes ellátni. A walrasi általános egyensúly-elméleti modell a jószágok gazdasági egyensúly melletti cseréinek problémájával foglalkozik. Errõl a gazdaságról feltételezzük, hogy részben centralizált, és egy központi árverezõ képes úgy alakítani az árakat, hogy minden piaci szereplõ határhaszon-elemzés alapján számított összkereslete és kínálata minden részpiacon megegyezzen. Az eredeti modell nem tartalmazott pénzt, másfelõl tetszõleges jószágot választhatunk ármércének, azaz elszámoló egységnek. Próbáljuk meg bevezetni ebbe a modellbe a pénzt! A pénz ekkor, mint egy belsõ érték nélküli jószág, ugyanolyan szerepet tölt be a modellben, mint a többi árucikk. A cél az, hogy a pénzmennyiség tartásáról is a határhaszon-elemzés alapján döntsünk, azaz a monetáris elmélet beágyazható legyen az értékelméletbe, a választások általános elméletébe. A szereplõknek azonban semmi okuk sincs arra, hogy egy valójában barter gazdaságként mûködõ rendszerben ezt a jószágot tartsák. Ebben a modellben a szerepeltetett pénzjószág pusztán elszámoló eszköz funkcióval rendelkezik, hiszen nem is lehet egyéb szerepe egy idõdimenzió nélküli centralizált gazdaságban. Hahn (1965) egzakt elemzést ad arra, hogy egy ilyen környezetben miért nem fognak a szereplõk egyensúlyban pénzt tartani. Ahhoz, hogy a pénz csereeszköz funkcióját megragadjuk, el kell vetnünk a centralizált és statikus modellvilágot. A cserék tehát nem egyidejûleg minden piacon, minden szereplõ között, egyetlen központi kikiáltó segítségével történnek, hanem bilaterálisan és idõben eltolódva. Egy ilyen gazdaságban a szereplõk közti cserének két oka lehet:
47 A fejezetben a Megyeri Krisztinával és Sarlós Tamással végzett közös kutatásra, BenedekMegyeri 2000-re, Megyeri 2001-re és Sarlós 2001-re építünk.
71
A csere folytán mindkét fél a számára belsõ használati értékkel rendelkezõ jószágot szerzi meg keresletének közvetlen kielégítése céljából. Jevons (1875) szerint ez a csereszándékok kölcsönös megegyezése nem túl gyakori eset, még akkor sem, ha egyensúlyi árak mellett minden vevõhöz található eladni szándékozó szereplõ. A csere során legalább az egyik fél olyan jószágot fogad el, amelyet ugyan nem képes hasznosítani közvetlen keresletének kielégítésére, de feltételezi, hogy ezen jószág birtokában nagyobb eséllyel lesz képes egy következõ cserében egy számára hasznos jószághoz hozzájutni. Úgy tûnik, mintha a második cseretípus tovább növelné a problémát, hiszen itt már legalább két tranzakcióra van szükség egy kívánatos jószág megszerzéséhez. A pénz mint csereeszköz megjelenítésével megoldhatóvá válik a szándékok egyezésekor fellépõ kettõs véletlen problémája. A fenti követelményeknek megfelelõ, a pénz csereeszköz funkciójának megragadására alkalmas modellt javasolt Kiyotaki és Wright (1989). A továbbiakban elõször ezt a modellt mutatjuk be röviden. A második alfejezetben bemutatjuk az analitikusan meghatározható eredményeket. A harmadik alfejezetben szimulációs eljárásokat alkalmazunk, és megmutatjuk, hogy kellõen intelligens gazdasági szereplõk saját és környezetük viselkedésén okulva képesek megtanulni az optimális viselkedési szabályokat és elérni az analitikusan meghatározott egyensúlyi állapotot. A negyedik alfejezetben a KiyotakiWright-modell olyan kiterjesztéseivel foglalkozunk, amelynek analitikus megoldása nem lehetséges, viszont a szimulációs megoldások számos érdekes jelenségre hívják fel a figyelmet ezekben a modellekben.
5.1. A modell Képzeljünk el egy olyan gazdaságot, amely végtelen sok, örök életû szereplõbõl áll, és végtelen sok diszkrét idõszakon keresztül mûködik. A jószágtér véges dimenziós, maguk a jószágok pedig oszthatatlan egységekbõl állnak. Minden jószág termelhetõ, fogyasztható és raktározható. A szereplõk T∈N különbözõ típusba sorolhatók aszerint, hogy mely jószágot fogyasztják. 5.1. Definíció: Az i típusú szereplõk az i jószágot fogyasztják, ennek hasznossága számukra Ui, és az f(i) ≠ i típusú jószágot termelik, melynek költsége számukra Di. Így a fogyasztás nettó haszna az i típusú szereplõk számára ui = Ui Di. Egy periódusban az egyes szereplõk egyetlen jószág tárolására képesek. 5.2. Definíció: j típusú jószág tárolási költsége egy i típusú szereplõ számára cij. 5.3. Definíció: A szereplõk egy közös β ∈ (0,1) diszkontfaktorral rendelkeznek. Mindezekbõl következik, hogy egy i típusú szereplõ intertemporális hasznossági függvénye (5.1) U int = E ∑ β t (c j R (t , j ) + C (t )ui ) , t ahol C(t) a t periódusbeli fogyasztási indikátora, azaz olyan függvény, amely akkor és csak akkor veszi fel az 1-es értéket, ha az adott szereplõ a számára megfelelõ jószágot 72
fogyasztja, különben 0. Az R(t,j) függvény akkor és csak akkor 1, ha a t periódusban a szereplõ a j jószágot tárolja, különben ez is 0. E(.) a várható értéket jelöli. Minden egyes idõpillanatban a szereplõk véletlenszerû párokban találkoznak egymással. Mindketten döntenek, hogy számukra a partner jószága kívánatosabb-e a sajáténál, és kölcsönösen pozitív szándékok esetén jószágot cserélnek egymással, egyéb esetben nem jön létre csere. A fenti modell még számtalan eltérõ tulajdonságú gazdaság leírását foglalja magában. Kiyotaki és Wright alapmodelljükben további megkötéseket tettek: 5.4. Definíció: A típusú gazdaságnak nevezzük a következõ tulajdonsággal megadott modelleket: 1. A szereplõtípusok száma 3 (T=3). (Ez a lehetõ legkisebb típusmennyiség, amely mellett egy közvetítõ jószágnak szerepe lehet.) 2. Minden típus azonos arányban van jelen a gazdaságban. 3. A tárolási költségek nagyságának sorrendje típustól függetlenül azonos, azaz a következõ: ci1< ci2< ci3, i=1, 2, 3. 4. ui elegendõen nagy ahhoz, hogy a szereplõk nem akarnak kimaradni a gazdaságból: racionális i típusú szereplõk bármit hajlandóak elcserélni az i (hasznosan fogyasztható) jószágért, és ha szert tesznek rá, azt azonnal el is fogyasztják, majd egy új f(i) jószágot termelnek. Így a szereplõk minden pillanatban pontosan egy jószágot tárolnak. Belátható, hogy az ui értékének nagyságára elégséges feltétel az ui > (cif(i) ci1)/(1β). 5. Végül a termelt jószágot meghatározó f(i) függvény minden i típusú szereplõ esetében az f(i) = (i mod 3) + 1 típusú jószágot48 termeli, azaz az 1. típusú szereplõk a 2. jószágot, 2. típusúak a 3. jószágot, a 3. típusúak pedig az 1. jószágot termelik. Megjegyezzük, hogy létezik egy B modell, amely mindenben megegyezik az Aval, csupán a termelési függvény különbözõ, amennyiben az f(i) = ((i+1) mod 3) + 1, azaz 1. típusú szereplõk a 3. jószágot, a 2. típusúak az 1. jószágot, végül a 3. típusúak a 2. jószágot termelik. Analitikusan az A modellt vizsgáljuk a továbbiakban, de rendkívül érdekes, hogy egy ilyen apró és szimmetrikus eltérés jelentõsen megváltoztathatja a modell viselkedését. Ezért a B modellre a szimulációk bemutatása során még visszatérünk. A gazdaság állapotát a raktározott javak eloszlásával jellemezzük. 5.5. Definíció: Legyen p(t)∈ℜTxT, ahol pij(t) annak a valószínûsége, hogy a t periódusban egy véletlenszerûen kiválasztott szereplõ i típusú szereplõ, és az általa raktározott áru j típusú. 5.1. Következmény: Minthogy a fogyasztott jószág azonnal fogyasztásra kerül, és így sohasem tárolódik, pii(t) = 0 adódik. Nyilvánvalóan
∑
j
pij (t ) =
1 1 = T 3
(5.2)
is fennáll minden i,t-re. 48 A mod függvénnyel a maradékképzés (modulo) függvényt jelöltük, ahol x mod z nem más, mint x-nek zvel történõ osztása után vett egész értékû maradéka.
73
Racionális szereplõk olyan cserestratégiát választanak maguknak, ami a várható diszkontált jövõbeli hasznosságukat (Uint) maximalizálja. Ez a várható hasznosság a saját és partner jószága melletti döntési stratégia, a p(t) raktározási eloszlás és a többiek stratégiájának függvénye. 5.6. Definíció: Állandósult vagy egyensúlyi állapotnak nevezzük a cserestratégiák és a raktározott javak eloszlásának együttesét abban az esetben, ha ezekre igaz a maximalizálás: azaz minden szereplõ maximalizálja a saját jövõbeli hasznosságát, a többi szereplõ adott csere- és fogyasztási stratégiája és adott p(t) = p* raktározási eloszlás mellett, továbbá a racionális várakozás: azaz a haszonmaximalizáló cserestratégiák eredménye pontosan a p(t) = p* raktározási eloszlás. Mivel tehát az állandósult állapotban p(t) = p* minden t-re, így egy szereplõ döntése csak a saját és a partner jószágán múlik. Egy i típusú szereplõ tiszta stratégiája leírható egy Si∈{0,1}TxT cseremátrixszal, mégpedig Si( j, k) pontosan akkor 1, ha a szereplõ a saját j típusú jószágát felajánlja cserére a partner k típusú jószágával szemben. Hasznosságmaximalizáló szereplõk stratégiájáról az általánosság megsértése nélkül feltehetõ, hogy Si( j, j) = 0, mivel azonos jószágok cseréje nem változtat semelyik fél helyzetén sem, valamint, hogy Si( j, k) = 1 Si( k, j), minden k, j ≠ i esetén, mivel ha egy csere elõnyös, akkor a visszacserélés nem lehet az. Ha ui elég nagy, akkor a fogyasztott jószág elfogadása domináns stratégia, amibõl k ≠ i esetén Si(k,i) = 1 adódik. Si(i,k) valójában érdektelen, mivel az i típusú szereplõ sohasem birtokol i jószágot cserehelyzetben, tekintsük a továbbiakban 0-nak. Eddigi megfigyeléseinket összegezve, egy i típusú szereplõ egyetlen nem triviális döntése az, hogy a termelt i* = (i mod 3) + 1 jószágot hajlandó-e elcserélni a harmadik, nem fogyasztott, nem termelt i** = ((i+1) mod 3) + 1 jószágra. Jelöljük a típusonként egyetlen nem triviális Si(min{i*,i**},max{i*,i**}) elemet si-vel. Így az 1., 2. és 3. típusú szereplõk stratégiamátrixai a következõk: 0 0 S1 = 1 0 1 1 − s1
0 0 s1 , S 2 = 0 1 − s2 0
1 s2 0 0 0 , S 3 = 1 − s3 1 0 0
s3 1 0 1 . 0 0
(5.3)
5.7. Definíció: Egy stratégiát fundamentálisnak nevezünk akkor, ha a szereplõ nem triviális döntését a jószágok tárolási költsége alapján hozza meg, mégpedig akkor és csak akkor hajlandó a cserére, ha a partner jószága olcsóbban tárolható. Mivel ci1< ci2< ci3 ez pontosan si = 0-val egyenértékû minden szereplõre. A fundamentális stratégia ellentéte a spekulatív (si = 1) stratégia, amikor nem triviális esetben a szereplõ a drágábban tárolható jószágot preferálja, mert azt piacképesebbnek ítéli meg. Arra számít ugyanis, hogy a drágábban tárolható jószágot képes hamarabb a fogyasztott jószágára cserélni, és így a gyakoribb fogyasztás és a rövidebb tárolási idõ ellentételezi a magasabb fajlagos tárolási költséget.
74
5.2. Analitikus eredmények 5.8. Definíció: Jelölje ViS( j) állapotértékelõ függvény egy rögzített S stratégiaegyüttes mellett egy i típusú szereplõ által a jövõben várható hasznosságok diszkontált értékét, feltéve, hogy a szereplõ pillanatnyilag egy j típusú jószággal rendelkezik. 5.2. Következmény: Stratégiától függetlenül Vi(i) = ui + Vi( f(i)), hiszen az i típusú szereplõk azonnal elfogyasztják az i jószágot, majd egy új f(i) jószágot termelnek helyette. Ha j ≠ i, akkor Vi S ( j ) = −cij + β E Vi S ( j′ ) | j .
(5.4)
Azaz a jószágot egy perióduson át tárolni kell (cij), majd feltéve, hogy most egy j típusú jószággal rendelkezik a következõ csere után valamilyen valószínûséggel egy j′ típusú jószággal fog rendelkezni az adott szereplõ. Ennek a feltételes j′ állapotnak kell a várható hasznosságát kiszámítani, majd β segítségével a jelenértékre diszkontálni. Jelöljük egy állapot értékét az optimális stratégia mellett Vi(j)-vel. Ekkor fennállnak a dinamikus programozás Bellman-egyenletei: Vi ( j ) = −cij + max β E Vi ( j ′ ) | j , i ≠ j, Si
(5.5)
ahol a maximalizálás a stratégiák halmaza felett értendõ. 5.1. Tétel. (BartoSutton 1998): Egy stratégia pontosan akkor optimális, ha a hozzá tartozó állapotértékelõ függvény kielégíti a Bellman-egyenletet. 5.3. Következmény: Optimális tiszta stratégia szükségszerûen konzisztens az állapotértékelõ függvényével: Si(j,k) = 1 ⇔ Vi(k) > Vi( j). Azaz pontosan akkor cserél egy szereplõ, ha a partner jószága várhatóan nagyobb diszkontált hasznosságot nyújt. Ebbõl adódóan azonos típusú szereplõk sohasem cserélnek jószágokat egymást közt. A Bellman-egyenletek jobb oldalának felírásához definiáljuk az alábbi függvényeket: A B függvény jelzi, hogy ha egy t1 típusú g1 jószággal rendelkezõ és egy t2 típusú g2 jószággal rendelkezõ szereplõ találkozik, akkor cserélnek-e: 0, B(t1 , g1 , t2 , g 2 ) = S g g ( , ) t1 1 2 St2 ( g 2 , g1 ),
ha t1 = t2 , ha t1 ≠ t2 .
(5.6)
Ellentéte a B (t1 , g1 , t2 , g 2 ) = 1 − B (t1 , g1 , t2 , g 2 ).
(5.7)
Vi ( j ) = −cij + max â ∑l ∑k plk (B (i, j, l , k )Vi ( k ) + B (i, j, l , k )Vi ( j ) ),
(5.8)
Így Si
i ≠ j.
A Bellman-egyenlet megoldásai az optimális stratégiára pontosan a konzisztenciafeltételeket adják. 75
Ezután a feladat olyan (s1, s2, s3) stratégiák meghatározása, melyek az általuk indukált p eloszlás mellett konzisztensek az állapotértékelõ függvényeikkel. Ez 23 = 8 lehetõség megvizsgálását jelenti. A hat (⋅, 1, ⋅), illetve (⋅, ⋅, 1) alakú stratégiakombinációról igazolható, hogy nem lehet egyensúly. Belátható, hogy az 1. típusú szereplõk bármely stratégiája mellett, a 2. és 3. típus számára mindig a fundamentális stratégia a legjobb válasz, ha a másik (2. illetve 3. típus) fundamentálisan játszik. Vagyis a (⋅ ,0 ,0) egyensúly, ha az 1. típus számára az. A 2. és 3. típus fundamentális stratégiája mellett igazolható, hogy V1 (2) > V1 (3) ⇔ (c13 − c12 ) > ( p31 − p21 ) β u1. Következésképp ha (c13 − c12 ) > ( p31 − p21 ) β u1 , akkor az 1. típus fundamentális stratégiája legjobb válasz, és így a (0,0,0) egyensúly, míg ha (c13 − c12 ) < ( p31 − p21 ) β u1 , akkor az 1. típus spekulál, és az (1,0,0) egyensúly. 5.9. Definíció: A kialakuló eloszlás meghatározásához vezessük be az M függvényt, amely egy t1 típusú g1 jószággal rendelkezõ és egy t2 típusú g2 jószággal rendelkezõ szereplõ találkozási valószínûségét jelöli: M (t1 , g1 , t2 , g 2 ) = pt1g1 pt2 g2 .
(5.9)
5.4. Következmény: Egyik periódusról a következõre a p eloszlás az alábbiak szerint változik. A nem termelt, nem fogyasztott jószágra pik' = ∑ l ∑ j M (i, j , l , k ) B (i, j , l , k ) + ∑ l ∑ j M (i, k , l , j ) B (i, k , l , j ),
(5.10)
ahol k = ((i + 1) mod 3) + 1. Felhasználva, hogy pij' =
1 − pik' , feltéve ha 3
(5.11)
j = (i mod 3) + 1 és k = ((i + 1) mod 3) + 1, továbbá pii' = 0 mindig igaz, így p' = p mellett egy (s1, s2, s3) paraméterû nemlineáris egyenletrendszert kapunk. (s1,0,0) esetén p-re azt kapjuk, hogy
p32 = 0,
6 p −1 p13 = 21 , 9 p21
s1 + 1 − s1 + 1 , 3s1 p21 = 1 , 6
ha s1 ≠ 0,
(5.12)
ha s1 = 0.
Fundamentális egyensúlyban tehát 0 1 p= 6 1 3
Ebbõl adódik a következõ tétel. 76
1 3 0 0
0 1 . 6 0
(5.13)
5.2. Tétel: Fundamentális egyensúly alakul ki, ha (c13 − c12 ) >
1 βu1 . 6
Ekkor a szereplõk közti cserék diagramja:
I
III 1
1 3
2
II 5.1. ábra. Cserék fundamentális egyensúlyban
Ezek szerint a 2. típusú szereplõk közvetítõként mûködnek a legolcsóbb tárolású 1. jószágot csereeszközként használva. Spekulatív egyensúlyban 0 2 − 2 p= 3 1 3
2 6 0 0
2− 2 6 2 −1 . 3 0
5.3. Tétel: Spekulatív egyensúly alakul ki, ha (c13 − c12 ) <
(5.14)
2 −1 β u1. 3
Ekkor a szereplõk közti cserék diagramja: 3
I
III
1 1,3
1 3
2
II 5.2. ábra. Cserék spekulatív egyensúlyban
A 2. típus változatlan szerepe mellett most már az 1. típus is közvetít 2. és 3. típus között, de a drágább 3. jószágot használva csereeszközként. Érdekes módon egyszerre két különbözõ csereeszköz van jelen a gazdaságban. Mint azt Kiyotaki és Wright (KiyotakiWright 1989) említi: abban az esetben, hogyha 2 −1 1 c3 − c2 ∈ β u1 , β u1 , nincs tiszta egyensúlya a játéknak, de részletek nélkül köz 3 6
(
)
77
lik, hogy kevert egyensúly ekkor is létezik. A továbbiakban ezt a kevert egyensúlyt határozzuk meg. Vizsgáljuk meg azt az esetet, amikor a 2. és 3. típusú szereplõk továbbra is fundamentálisan játszanak, de az 1. típus keverten is válaszolhat. 5.10. Definíció: Az s1 kevert stratégiát értelmezhetjük úgy, hogy az 1. típus egyedei s1ed része tiszta spekulatív, (1 s1)-ed része pedig tiszta fundamentális stratégiát játszik. A 2. és 3. típusú szereplõk részérõl a legjobb válasz a fundamentális stratégia, bármit játsszon is az 1. típus. Következésképpen 0 < s1 < 1 esetén is a fundamentális a legjobb válasz a 2. és 3. típus részérõl. Így (s1, 0, 0) továbbra is egyensúly, ha az 1. típusnak az. Leggyorsabban az egyensúlyt Kiyotaki és Wright elemzésének folytatásával kaphatjuk meg. Feltehetõ, hogy azonos típusú szereplõk továbbra sem cserélnek egymással. Tekintsük egy darab (ebbõl adódóan tiszta stratégiájúnak tekinthetõ) 1. típusú szereplõ legjobb válaszát a többiek rögzített stratégiáira. Ha V1 (2) > V1 (3), akkor az egyén számára fundamentális a legjobb válasz, de ekkor a többi 1. típusú szereplõ is így vélekedik, tehát kevert stratégia nem lehet egyensúly. Hasonlóan, ha V1 (2) < V1 (3), akkor tiszta spekulatív az egyensúly. Következésképp kevert egyensúly csak akkor lehet, ha V1 (2) = V1 (3). Ekkor viszont egyensúly is a kevert stratégia, mivel a mind a fundamentálisan, mind a spekulatívan játszók a legjobban válaszolnak. 5.5. Következmény: Kevert egyensúly pontosan akkor alakul ki, ha az indukált p eloszlás mellett (c13 − c12 ) = ( p31 − p21 ) β u1. Felhasználva képleteinket p-re, kapjuk, hogy s1 =
β u1 ( β u1 − 6 ( c13 − c12 )) 9(c13 − c12 ) 2
(5.15)
.
Persze szükséges, hogy s1 ∈ (0,1) legyen. Könnyen látható, hogy s1 < 0 ⇔ ( c13 − c12 ) >
1 β u1 , illetve s1 > 1 ⇔ ( c13 − c12 ) < 6
2 −1 β u1 , 3
(5.16)
teljes összhangban az eddigiekkel. Összefoglalva: egyensúlyban az 1. típusú szereplõk stratégiája: 0, ha β u1 ( β u1 − 6 (c13 − c12 )) s1 = , ha 9(c13 − c12 )2 1, ha
(c13 − c12 ) >
1 β u1 , 6
2 −1 1 β u1 < ( c13 − c12 ) < β u1 , 3 6
(c13 − c12 ) <
(5.17)
2 −1 β u1. 3
A kevert stratégia folyamatos átmenetet jelent a fundamentális és a spekulatív stratégiák közt. Az 5.1. ábrán s1 értékét rögzített c13, c12, β (pl. c13 = 0,1, c12 = 0,03, β = 0,9) mellett u1 függvényében ábrázoljuk. 78
1,2 1,0
Spekulatív stratégia
S1
0,8
Kevert stratégia
0,6 0,4
Fundamentális stratégia
0,2
0,60
0,58
0,56
0,54
0,52
0,50
0,48
0,46
0,44
0,42
0,40
0,0
u1
5.3. ábra. Átmenet a fundamentális és spekulatív stratégiák között
5.3. Szimulációs eredmények A KiyotakiWright-modell publikálása után számos cikk jelent meg arról, hogy hogyan lehetne a kevert egyensúlyi helyzetet meghatározni, illetve a modellt kiterjeszteni, bonyolultabb esetekre alkalmazni. A kutatásban szinte mindenki alkalmazott szimulációs módszereket. Szimuláció esetén pedig természetesnek tûnt, hogy elsõ lépésként reprodukálni lehessen a már meglévõ analitikus eredményeket. Az egyik legjelentõsebb publikáció egy évvel a KiyotakiWright-cikk megjelenése után bemutatta, hogy az általa használt mesterséges intelligenciával rendelkezõ gazdasági szereplõk segítségével szimulációt alkalmazva is adódik a fundamentális egyensúlyi helyzet (Marimon et al. 1990). Az általuk használt tanítási mechanizmus az ún. klasszifikáló rendszer volt. A spekulatív egyensúlyt azonban nem sikerült egyértelmûen reprodukálni, ugyanis a szimulációs modell futtatási idõtõl függetlenül hol spekulatív, hol fundamentális stratégiák választása mellett fejezõdött be. Úgy tûnt, hogy a spekulatív viselkedést roppant nehezen és hosszú idõ alatt képesek csak a mesterséges intelligenciával rendelkezõ szereplõk megtanulni, mivel a spekulatív viselkedés nagyon instabil. Emiatt a kilencvenes évek elején eleve kudarcra volt ítélve az az elhatározás, hogy az analitikusan még meg nem határozott kevert stratégiákat szimulációs modell segítségével lehessen megadni. 1993-ban Kehoe-nek és az eredeti modell szerzõtársainak sikerült analitikusan meghatározni a kevert egyensúlyi megoldást (Kehoe et al. 1993). Ennek ellenére továbbra is fontos maradt az analitikus eszközök mellett a szimuláció alkalmazása. 1999-ben a Marimon-féle modell kis módosításával (de pontosan ugyanazt a klasszifikáló rendszer mechanizmust követõ intelligens szereplõkkel) sikerült nagymértékben javítani a spekulatív egyensúlyi stratégia elérésének valószínûségét (Basci 1999). Az 1000 periódus hosszúságú szimulációs futtatások közül az esetek 89%-ában sikerült a spekulatív egyensúlyi helyzetet visszakapni. A tanulási algoritmust megváltoztatva, tiszta genetikus algoritmust alkalmazva Staudinger (1998) hasonlóan jó eredményeket kapott, sõt bizonyos paraméterek mellett minden futtatása eljutott a spekulatív egyensúlyba 5000 iterációs lépés alatt. A spekulációs magatartás megtanulása tehát hosszú idõt és kellõen sok résztvevõt igényel. Ugyanakkor Duffy (2001) megkísérli valóságos szereplõkkel, laboratóriumi körülmények között reprodukálni a fundamentális és spekulatív egyensúlyt. Amíg az elõzõ egyensúly ebben az esetben is könnyen adódik, addig a spekulatív egyensúly valós sze79
replõk esetében is gondot okoz. Ráadásul a laboratóriumi körülményeket figyelembe véve sem a nagy szereplõszámra, sem pedig a hosszú tanulási idõszakra nincs lehetõség. Duffy ekkor szimulációs módszerekkel49 olyan egyszerûsítõ feltételeket és paramétereket keresett, amelyek segítségével a mesterséges intelligenciával rendelkezõ számítógépes szereplõk rövidebb idõ alatt voltak képesek megtalálni a spekulatív stratégiát. Ezeket a feltételeket aztán a laboratóriumi kísérletekben alkalmazva a valós szereplõk is hamarabb jutottak el a spekulatív egyensúlyba. A KiyotakiWright-modell tanulmányozása során elkészítettük mind a Marimon et al. (1990), mind a Staudinger (1998) által javasolt tanulási módszereket, illetve elkértük a szerzõtõl a Duffy (2001) publikációban használt szimulációs programot, és reprodukáltuk a szerzõk által adott eredményeket. A kevert egyensúlyi megoldások elõállítása terén ezekkel az algoritmusokkal nem jártunk sikerrel, ezért két új módszerrel bõvítettük a mesterséges ügynökök tanulásának eszköztárát. Az elsõ módszer egy döntési fa algoritmus segítségével (BenedekMegyeri 2000, Megyeri 2001), a második pedig a megerõsítéses tanulás segítségével (Sarlós 2001) éri el, hogy a szereplõk az optimális stratégia felé módosítsák viselkedésüket. Mindkét modell képes volt arra, hogy a spekulációs egyensúly eredményeit reprodukálja, így felmerült annak a lehetõsége, hogy a kevert egyensúlyi megoldás is meghatározható a segítségével. Ez végül az utóbbi szimuláció Duffy által javasolt módosításával sikerült, így elsõként állítottunk elõ olyan szimulációt, amely tetszõleges paraméterek mellett képes a kevert eloszlás eredményeit reprodukálni. Szimuláció. Ahhoz, hogy a KiyotakiWright-modellt szimulációs módszerekkel vizsgálhassuk, számos változtatást kell azon tennünk. Ezek a módosítások azonban nem befolyásol(hat)ják a modell minõségi tulajdonságait, és a szimulációs és analitikus eredmények megegyeznek. Az eredeti modell végtelen sok örök életû szereplõvel végtelen hosszú ideig mûködik. A szimulációs modell esetében a szereplõk száma véges, viszonylag kisszámú (60150), de vizsgáltuk az igen nagy létszámú (3000) variációkat is. Az idõhorizont általában 1000 periódus hosszúságú, de találkoztunk ennél rövidebb (Duffy 2001) és hosszabb (Staudinger 1998) szimulációkkal is. A szimulációs modellek esetében a paramétereket is konkrétan meg kell határozni, erre mutatunk néhány példát az 5.1. táblázatban. A legtöbb esetben a paraméterek minden szereplõre azonosak, ezért a raktározási költségek szereplõindexét a továbbiakban mellõzzük. 5.1. táblázat. Szimulációs modellek paraméterei
Forrás c1 c2 Marimon et al. 1990 0,1 1 Marimon et al. 1990 0,1 1 Duffy 2001 0,01 0,04 BenedekMegyeri 2000 0,01 0,03 BenedekMegyeri 2000 0,01 0,08 Sarlós 2001 0,01 0,03
c3 20 20 0,09 0,10 0,10 0,10
ui 100 500 1 0,40 0,40 .
b 1,0 1,0 0,9 0,99 0,99 0,9
Egyensúly fundamentális spekulatív spekulatív fundamentális spekulatív kevert
A szimulációs modellek alkalmazása esetén maga a lejátszás nem túlságosan bonyolult folyamat. Elõször generálni kell a virtuális szereplõket, és el kell látni õket a nekik
49
80
Duffy szintén a Marimon-féle klasszifikáló rendszert használja.
megfelelõ endogén paraméterekkel és döntési szabályokkal. Az endogén paraméterek jelölik azt, hogy az illetõ milyen jószágot fogyaszt, milyen jószágot termel, és milyen indulókészletekkel rendelkezik. Szabályokon pedig azt értjük, hogy adott szituációban hogyan fog viselkedni (adott jószágot elfogyasztja-e, illetve adott jószágot egy mások által felkínált jószágért hajlandó-e elcserélni). Második lépés a véletlen találkozások megszervezése, amelyre a 2.5. fejezetben mutattunk hatékony eljárást. Ezután lezajlanak a cserék, illetve ezt követõen a fogyasztások és termelések. A találkozáscsere fogyasztástermelés sorozat addig folytatódik, amekkorára a szimulációs idõszakot választottuk. Végül kiértékeljük az eredményeket. Az 5.4. és 5.5. ábrán bemutatjuk, hogy hogyan éri el az egyensúlyi állapotot (illetve mennyire ingadozik az egyensúlyi állapot körül) egy 600 szereplõbõl álló szimulációs modell abban az esetben, ha a szereplõk a saját maguk által termelt jószággal mint indulókészlettel rendelkeznek, és csak a fundamentális, illetve csak a spekulatív stratégiát játszhatják. Figyeljük meg, hogy ebben az esetben mennyire gyors a konvergencia (57. periódus), illetve a jószágmennyiségek, és az (5.13) és (5.14) valószínûségek mennyire összecsengenek (lásd 5.4. és 5.5. ábra). 350
1. jó sz á g
300 250 2. jó sz á g
200 150
3. jó sz á g
100 50
97
91
85
79
73
67
61
55
49
43
37
31
25
19
7
13
1
0
5.4. ábra. Termékeloszlás fundamentális egyensúlyban 350 300 250 200 150 100 50
97
91
85
79
73
67
61
55
49
43
37
31
25
19
13
7
1
0
5.5. ábra. Termékeloszlás spekulatív egyensúlyban
Az induló készletek változtatása nem indukált változást az egyensúlyi értékek kialakulásában, sem a konvergencia sebességében. Az egyensúly körüli rezgéseket az okozza, hogy a véletlen találkozások során számos találkozási kombináció elképzelhetõ. A sze81
replõk (és ennek megfelelõen a termékek) számának növelésével ennek a rezgésnek a súlya jelentéktelenné válik. Ezekbõl az egyszerû szimulációkból két érdekes megfigyelést tettünk. Egyrészt megfigyeltük, hogy a spekulatív egyensúlyhoz is ugyanolyan gyorsan konvergál a modell, mint a fundamentálishoz. Ugyanakkor a spekulatív egyensúlyi stratégiákat a szereplõk jóval nehezebben képesek megtanulni. Ebbõl az következik, hogy nem a konvergencia lassúsága nehezíti a tanulóalgoritmusok dolgát. A másik megfigyelés az, hogy fundamentális egyensúlyban a 2. jószág mennyisége állandó, azaz nem hat rá a találkozások véletlenszerûsége. A megfigyelés hatására megfogalmaztunk egy sejtést, amit eddig még nem sikerült bizonyítanunk. 5.1. Sejtés. Fundamentális stratégiák esetén a második jószágból tartott mennyiség minden periódusban független a találkozási hierarchiától és valószínûségektõl. Szintjét az indulókészletek határozzák meg. A szimulációs modellezés nehézségét a gazdasági szereplõk tanítása jelenti. Az eddigi futtatások során ugyanis feltettük, hogy már minden játékos a számára optimális fundamentális vagy spekulatív stratégiát alkalmazza, illetve a számára hasznossággal bíró egyetlen terméket fogyasztja. A tanulás azt jelenti, hogy a szereplõk képesek egy teljesen véletlen fogyasztási és cserélési szabályrendszerbõl kiindulva a különbözõ hasznosságot eredményezõ cserék és fogyasztások hatására egy optimális szabályrendszerhez eljutni. A tanulás azért nehéz, mert egy-egy szabály megváltoztatásának hatása nem azonnal, hanem csak néhány periódust követõen mutatkozik meg. A gyakorlatban két módszert alkalmazhatunk a tanítás megvalósítására. Az egyik lehetõség, hogy elvégzünk egy meghatározott hosszúságú szimulációt anélkül, hogy bármelyik szereplõ kezdeti stratégiáját módosítottuk volna. Ezután kiértékeljük a szereplõk hasznosságát, és valamilyen módon összefüggéseket próbálunk keresni a teljesítmény és az alkalmazott szabályok között. A szereplõknek ezután lehetõségük van magatartási szabályaik módosítására, és a következõ futtatásnál már ezt alkalmazhatják. Ezt a módszert szakaszos tanulási eljárásnak nevezzük a továbbiakban. A folyamatos tanulási eljárás esetén egyetlen hosszú futtatást hajtunk végre, de a szereplõknek bármikor lehetõségük van a szabályok módosítására. Felmerül azonban a probléma, hogy véges hosszú futtatások hogyan egyeztethetõk össze a végtelen sokáig tartó elméleti modellel. Elképzelhetõ módszer az, hogy minden periódus β valószínûséggel folytatódik, és ezzel egyidejûleg megoldottuk a diszkontfaktor kezelésének problémáját is. Ebben az esetben rövid futtatásokra számíthatunk, például β = 0,9 esetén átlagosan 10 periódusból fog állni egy futtatás. Ez tehát a szakaszos tanításnak kedvez, és sokan használják ezt a módszert. A gond az, hogy az utolsó periódusnál birtokba kerülõ jószág (fogyasztás után) nulla hasznossággal kerül be az értékelésbe. Ez nem jelent nehézséget akkor, ha 1000 periódusból az utolsó kimarad, de probléma lehet akkor, amikor csak 10 volt. A spekulatív egyensúly megtanulásánál különösen nagy gondot jelent ez, és a korábbi szimulációs modellek ezért tudnak csak olyan gyengén teljesíteni. A továbbiakban részletesen bemutatjuk a szakirodalomban alkalmazott és saját módszereinket: klasszifikáló rendszer (Marimon et al. 1990, Duffy, 2001), tiszta genetikus algoritmus (Staudinger 1998), döntési fa algoritmus (BenedekMegyeri 2000), megerõsítéses tanulás (Sarlós 2001). 82
Klasszifikáló rendszer. A modell szereplõinek tanítására alkalmazott klasszifikáció-rendszer két alrendszerbõl áll, a cserélési viselkedést tanító és a fogyasztási viselkedést tanító rendszerbõl. Elsõ lépésként a cserét meghatározó klasszifikáció-rendszer minden egyes szereplõ esetén input adatokat kap a csere elõtti állapotról. Ennek segítségével a rendszer meghatározza a cserére vonatkozó döntést. Az összes szereplõ cseredöntésének meghatározása után megtörténnek a tranzakciók, és sor kerül a második klasszifikáció-rendszer alkalmazására. Input adat a csere utáni állapot, amely segítségével a rendszer meghatározza a fogyasztási döntést. A két rendszer mindig egymást követõen lép akcióba, de a visszacsatolás szempontjából közösen kell jutalmazni, illetve büntetni a két alrendszer döntéseit. Egy általános klasszifikáló rendszer a következõ objektumokból áll: 1. Azonosítók: hármas számrendszerû sorozatok (sztringek) halmaza. A hármas számrendszer elemeinek jelölésére a 0, 1 és # szimbólumokat használjuk. 2. Dekódoló rendszer: leképzés, amely megteremti a kapcsolatot az azonosítók és a szereplõk lehetséges állapotai és döntései között. Az azonosító elsõ része a szereplõ állapotára vonatkozik, a második része pedig egy meghatározott, általa megvalósítható cselekvésre. Így egy azonosító önmagában nem más, mint egy szereplõ lehetséges (állapot, cselekvés) párja. Egyetlen állapotot több azonosító is reprezentálhat. 3. Súlyok: minden idõpontban minden egyes szereplõ minden azonosítója rendelkezik egy súlyértékkel. 4. Állapotazonosító rendszer: képes lefordítani az input adatokat az azonosító által alkalmazott kódra, és kiválasztja az összes olyan azonosítót, ahol az állapotok megfelelnek az inputnak. Itt még több azonosító is szerepelhet, különbözõ cselekvéskóddal. 5. Árverezõ rendszer: az állapotazonosító rendszer által kiválasztott azonosítók közül a súlyokat felhasználva határoz meg egyet. A meghatározás lehet determinisztikus (legnagyobb súly gyõz), vagy sztochasztikus (súlyoknak megfelelõ valószínûséggel gyõz). 6. Könyvelõ rendszer: az állapotokhoz tartozó súlyok frissítése, annak alapján, hogy az azonosító által javasolt döntés mekkora hasznosságot hozott. 7. Genetikus algoritmus: felelõs új azonosítók beviteléért és régiek megszüntetéséért. Elvileg lehetõség van az összes lehetséges azonosító szerepeltetésére, amit teljes leszámlálásnak nevezünk. Ekkor nincs szükség a genetikus algoritmusra. Nézzük a KiyotakiWright-modellben alkalmazott klasszifikáló rendszert! A jószágok kódolása a következõ módon történik: 5.2. táblázat. Dekódoló rendszer
1 0 0 0 # #
Kód 0 1 0 # 0 #
0 0 1 # # 0
Jelentés 1. jószág 2. jószág 3. jószág nem az 1. jószág nem a 2. jószág nem a 3. jószág
Az állapotok azonosításánál az 1 érték a jószág meglétét, a 0 a nemlétét, a # pedig indifferens voltát jelenti. A cselekvések azonosítása esetén a csere klasszifikáció alrendszer esetén az 1 a csere akarását, a 0 a csere tagadását jelenti, míg a fogyasztási alrendszerben az 1 a jószág fogyasztását, a 0 a jószág tárolását jelenti. Vizsgáljuk elõször a csere alrendszert. Néhány lehetséges azonosítót mutatunk az 5.3. táblázatban. 83
5.3. táblázat. Csere alrendszer
Saját jószág 1 1
0 0
Cserepartner jószága 0 0 1 # # 0
0 0
Csere döntés 1 0
Az elsõ azonosító azt jelenti, hogy a szereplõ, aki egy 1. típusú jószággal rendelkezik, találkozik egy olyan szereplõvel, akinél a 3. típusú jószág van, az kezdeményezzen cserét. A második azonosító pedig a csere visszautasítását jelenti akkor, ha az 1. jószágért a cserepartner nem a 3. jószágot kínálja fel. A csere klasszifikáció alrendszer minden a szereplõre egy ehhez hasonló listát ad. Az összes elképzelhetõ azonosító száma 33⋅33⋅2 = 1458. Az azonosítók nagy része azonban redundáns, könnyû belátni, hogy 6⋅6⋅2 = 72 azonosító elegendõ. Ha a szûkebb számú azonosítóhalmazzal dolgozunk, akkor lehetõség van az összes halmaz szerepeltetésére, azaz végezhetünk teljes leszámlálást. Ha minden lehetséges azonosítónak szeretnénk megadni az esélyt, akkor a klasszifikáció-rendszert ki kell egészíteni a 7. pontnak megfelelõ genetikus algoritmussal. Jelöljük az azonosítók halmazát e-vel, ahol e ∈ {1, 2,
, Ea}! Ekkor a rendszerhez tartozó súlyok jelölése Sae(t). A súlyok feltöltése kezdetben véletlen vagy determinisztikus lehet (pl. minden súly 1). A súlyok újraszámításáért a könyvelési rendszer a felelõs. A fogyasztási alrendszer lehetséges azonosítóit mutatja az 5.4. táblázat. Az elsõ azonosító azt jelenti, hogy a szereplõ 1. típusú jószág csere utáni birtoklása esetén azt fogyassza el. A második azonosító a termék tartalékolását írja elõ akkor, ha az nem a 3. jószág. A lehetséges variációk száma most 33 · 2 = 54, a relevánsak száma 12. Az azonosítók jelölésére az elõzõekkel teljesen összhangban a c ∈ {1, 2,
, Ca} változót vezetjük be, a súlyokhoz pedig az Sac(t)-t. 5.4. táblázat. Fogyasztás alrendszer
1 #
Saját jószág 0 0 # 0
Fogyasztási döntés 1 0
A könyvelési rendszer ismertetésére nem térünk ki, de azt részletesen tartalmazza Marimon et al. 1990. Nézzük ugyanennek a cikknek az eredményeit! Kezdjük a fundamentális egyensúllyal (a paramétereket lásd az 5.1. táblázatban). Ebben az esetben az elméleti jószágeloszlási valószínûség az (5.13), az ehhez tartozó csereszabályok pedig az 5.1. ábrában láthatóak. A szimulációs modell nagyon hamar (már az 500. periódusban) konvergált ehhez az eredményhez (5.18), és nem is tért el attól a késõbbi periódusok során sem.
p500
84
0 0,502 = 3 1 3
1 3 0 0
0, 498 3 0 0
(5.18)
Vizsgáljuk meg a legmagasabb súlyértéket kapott azonosítókat is az 500. periódus végén (5.5. táblázat)! Azt tapasztaljuk, hogy minden szereplõ megtanulta a számára hasznot hozó egyetlen termék fogyasztását és a fundamentális egyensúlyhoz tartozó cseréket. Megjegyezzük, hogy ezt az eredményt akkor kaptuk, amikor a teljes leszámlálás módszerét alkalmaztuk. Genetikus algoritmus esetén a konvergencia valamivel lassabb, a 2000. periódus után kezd beállni az egyensúly. Mindez azt igazolja, hogy a klasszifikációrendszer-tanítás jól mûködik fundamentális egyensúly esetén. 5.5. táblázat. Fundamentális egyensúly
1 0 0
Sae(t) 11,22 0,08 0,08
I. szereplõ fogyasztási klasszifikáció-rendszere 1 0 0 1 # # 0 0 0 # # 1
Sac(t) 45,80 0,47 9,16
0 0 #
I. szereplõ csere klasszifikáció-rendszere # # 1 0 0 # # 0 1 0 # 0 0 0 1
1 1 0
Sae(t) 12,72 4,86 0,02
II. szereplõ fogyasztási klasszifikáció-rendszere 0 1 0 1 1 0 0 0 # 0 # 0
Sac(t) 49,04 0,01 10,90
0 # #
II. szereplõ csere klasszifikáció-rendszere # # 0 1 0 # 0 # # 0 # 0 # 0 #
III. szereplõ csere klasszifikáció-rendszere # 0 # 0 0 1 # 0 # 0 1 0 # 0 # # 0 #
1 0 1
Sae(t) 7,78 0,01 0,01
III. szereplõ fogyasztási klasszifikáció-rendszere 0 0 1 1 # # 0 0 # 0 # 0
Sac(t) 31,62 0,41 0,02
Vizsgáljuk most a spekulatív egyensúlyt! Az jószágeloszlás elméleti értéke (5.14)-ben szerepel, a megfelelõ cserehajlandóságok pedig az 5.2. ábrán láthatók. Az alkalmazott klasszifikációs rendszer azonban nem volt képes elhagyni a fundamentális egyensúlyi értékeket (5.19), és még a 2000. periódus után sem mutatott semmilyen reményt arra, hogy az (5.14)-nek megfelelõ spekulatív egyensúlyba érkezzen. Marimon et al. 1990 eredményeit reprodukáltuk, és arra a megállapításra jutottunk, hogy a klasszifikáció-rend85
szer azért nem képes a spekulatív egyensúly elérésére, mert a modell egy rendkívül fontos elemét, a diszkontrátát egyáltalán nem vették figyelembe a könyvelési rendszer kialakításakor. Márpedig ha a diszkontráta alacsony, akkor az 5.1. táblázat spekulatív egyensúlyi paraméterei mellett is fundamentális stratégia adódik.
p2000
0 0, 466 = 3 1 3
1 3 0 0
0,534 3 0 0
(5.19)
Marimon et al. 1990 klasszifikáló-rendszerét sikeresen alkalmazta Duffy (2001) a spekulatív egyensúly megtalálására. Duffy kikerülte a könyvelési rendszer problémáját azzal, hogy szakaszos tanítási eljárást alkalmazott, mégpedig úgy, hogy a rövid futtatások periódusszámát sztochasztikusan alakította. Minden periódust követõen 1β valószínûséggel befejezõdik, és β valószínûséggel folytatódik a játék. A könyvelési rendszer a teljes rövid futtatás alatt generálódott hasznosságot (azonos mértékben súlyozva) felhasználhatja, ugyanakkor a β diszkontrátának megfelelõ KiyotakiWright-modell adódik. Duffy viszonylag jó eredményeket kap (5.20), és további módosításokat is végez a konvergencia sebességének és a biztos spekulatív stratégia megtanulásának érdekében, de még így sem tudja garantálni az egyensúly elérését. Ennek az az oka, hogy a β valószínûséggel folytatódó játékok periódushossza nagyon rövid (β = 0,9 esetén átlagosan 10). Így az utolsó periódusban a szereplõnél maradó jószág hasznossága és költsége igen nagy arányt képvisel a teljes hasznosságból. Ugyanakkor a spekulatív stratégia pontosan attól spekulatív, hogy érdemes a magas raktározási költségû terméket tartani, mivel várhatóan annak jobbak a piaci kilátásai. Annak az esélye, hogy egy III. típusú szereplõvel találkozzon (aki hajlandó elfogadni a 3. jószágot) csak 1/3. Így nem csoda, hogy a tanulás során nehezen derül ki, hogy a spekulatív a legjobb stratégia. 0,30 0, 04 0 p100 = 0,15 0 0,18 . 0,32 0, 01 0
(5.20)
A klasszifikáció-rendszer alkalmazásának tapasztalatai arra a következtetésre vezettek, hogy ez a tanulási módszer nem alkalmas a kevert stratégiák meghatározására. A továbbiakban ezért más módszerekkel kell próbálkozni. Ennek ellenére nagyon fontos lépés volt a klasszifikáció-rendszer tanulmányozása. Egyrészt azért, mert a Kiyotaki Wright-modell kiterjesztésének tanulmányozása során kapott eredményeink összevethetõek lesznek a Marimon et al. 1990 hasonló eredményeivel. Másrészt a további tanító modellek kódolása majdnem megegyezik a klasszifikáció-rendszer azonosítóival. Genetikus algoritmus. A tiszta genetikus algoritmus alkalmazása kézenfekvõnek tûnik, hiszen minden olyan feltétel adott, amelyrõl a 3. fejezet szólt. Elvileg elképzelhetõ a szakaszos tanulás megvalósítása is, de mivel a klasszifikáció-rendszer esetében negatív tapasztalataink voltak, ezért a folyamatos tanulást választottuk. A tanulási algoritmust 86
pontosan a 3. fejezetben foglaltak alapján építettük fel, ezért csak az alábbiakról beszélünk röviden: reprezentáció, kezdeti populáció, genetikus mûveletek, túlélési valószínûségek, leállási kritérium. A reprezentáció csak bináris (0; 1) szabályokat tartalmaz, mégpedig úgy, hogy az 1-es értéke igenleges, a 0 értéke pedig nemleges válaszreakciót eredményez. 5.6. táblázat. A genetikus algoritmus reprezentációja
1→1 1→2 1→3 2→1 2→2 2→3 3→1 3→2 3→3 I 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0
II 1 1
III 0 0
Az 5.6. táblázat két szereplõ egy-egy lehetséges magatartását reprezentálja. Az elsõ egy olyan viselkedés, amely hajlandó egy 1. típusú jószágot egy 2. típusúra, illetve egy 3. típusú jószágot egy 1. vagy egy 2. típusú jószágra cserélni. Fogyasztani csak a 2. típusú jószágot fogja. A második viselkedés redundáns, amennyiben csak abban különbözik az elõzõtõl, hogy lehetõséget biztosít az azonos típusú jószágok cseréjének, ami nem változtat érdemben a megoldáson.50 A kezdeti populáció abból áll, hogy minden szereplõhöz rendelünk egy viselkedési szabályt. Ezt a szabályt véletlenszerûen töltjük fel 0-kal és 1-esekkel. A genetikus mûveletek közül mind a keresztezést (egy ponton, 3.9. ábra), mind a mutációt (3.13. ábra), mind pedig az invertálást (3.14. ábra) alkalmaztuk. Figyeljük meg, hogy a klasszifikációrendszerrel ellentétben itt egy szereplõhöz csak egyetlen szabály tartozik, ugyanakkor egy új szabály bekerülésével egy új szereplõ kerül a rendszerbe, egy szabály elavulása pedig egy szereplõ kikerülését jelenti. Ettõl függetlenül a szereplõk számát mindvégig azonosnak kell tartani, ezért a genetikus mûveletek mindig szereplõtípuson belül értendõk (pl. keresztezés esetén mindkét szülõ azonos típusú kell, hogy legyen, és ugyanilyen típusúak lesznek a születendõ utódok is). Legnehezebb feladat a túlélési valószínûségek meghatározása. Itt ugyanazzal a problémával állunk szemben, mint a klasszifikáló rendszer esetében. Végül úgy döntöttünk, hogy az összes hasznot és költséget diszkontáltan adjuk össze mindaddig, amíg a szereplõ él. Az újonnan bekerülõ szereplõk pedig induló értéknek az azonos típusú szereplõk átlagos túlélési valószínûségeit kapják. Ez az egyetlen olyan lépés, amely lényegesen különbözik a szakirodalomban használtaktól (Marimon et al. 1990). Leállási kritériumnak fix periódusszámot választottunk. A Staudinger (1998) által alkalmazott tiszta genetikus algoritmus jól teljesített, és amennyiben elég erõs volt a spekulatív egyensúlyhoz való tartozás motivációja (c3 c2 relatív kicsi), akkor a tanulási folyamat végül a spekulatív egyensúlyi állapotba konvergál. Ehhez azonban egy 150 fõs (típusonként 50) populációnak kell 5000 generáción (perióduson) keresztül mûködnie. 50 A késõbbiekben a konvergencia gyorsítása érdekében kiszedtük a közömbös elemeket, de a kezdetben kíváncsiak voltunk arra, hogy vajon a genetikus algoritmus felfedezi-e az közömbös elemekkel bõvített sémát.
87
700 600 500 400 300 200 100
97 000
91 000
85 000
79 000
73 000
67 000
61 000
55 000
49 000
43 000
37 000
31 000
25 000
19 000
7 000
13 000
1 000
0
5.6. ábra. Tiszta genetikus algoritmus spekulatív egyensúlyban
Az általunk készített algoritmus kiállta a próbát, és képes volt mind a fundamentális, mind a spekulatív, mind pedig a kevert egyensúly meghatározására. Sajnos azonban kis populációszám esetén rendkívül érzékeny volt az induló értékekre, ezért 1200 fõs populációt alkalmaztunk. Még így is szükség volt néha 100 000 perióduson keresztül futtatni a tanulást ahhoz, hogy az egyensúlyi helyzet stabilan elõálljon. (Az 5.6. ábrán láthatjuk a spekulatív stratégiához történõ konvergálást.) Egy ilyen szimuláció egyetlen paraméterbeállítás esetén is több napi futási idõt igényel. Ez azt jelenti, hogy sikerült ugyan egy olyan eljárást találni, amely képes az egyensúly meghatározására, de számítási költsége nagyon magas, ezért nem alkalmazható a kevert stratégiák átmeneti függvényének meghatározására (lásd 5.3. ábra), sem pedig egy lényegesen megnövelt paraméterû modellkiterjesztésre. Döntési fa. Az elõzõ két tanítási módszer tapasztalatain okulva olyan eljárást szerettünk volna találni, amelyik szakaszos módon tanul, de ezek a diszkrét idõszakok relatíve hosszúak, hogy ne jelentsen problémát az utolsó periódusban raktáron maradó jószág hasznosságának kihagyása. Ugyanakkor ha hosszúak az ilyen ciklusok, akkor nem lehet több ezer generáción keresztül tanítani, valami olyan módszer kell, ami hamar eljut az optimumba. Ehhez az adatbányászat egyik igen gyakran alkalmazott módszerét, a döntési fa algoritmust használtuk. A döntési fa egy olyan eljárás, amely képes több magyarázó és egyetlen eredményváltozó közti kapcsolatot haakkor típusú szabályokkal megadni. Feltétele, hogy az eredményváltozó kategóriaváltozó legyen, és leginkább akkor képes a jó modellalkotásra, ha minden változója bináris. Az általunk alkalmazott döntési fa esetében pontosan ez a helyzet. A döntési fa tanulása nagyon hasonlít a 3. fejezetben bemutatott neurális hálózatéhoz, ugyanúgy egy tanító adatbázis segítségével alakul ki a végleges fastruktúra. A döntési fáról részletesen Russel és Norvig (2000) könyvében olvashatunk. Az általunk használt eljárás a következõ lépésekbõl állt: szabályok megadása, modellfuttatás (hosszú idõtáv), eredménykiértékelés (kategorizálás), szabálygenerálás (döntési fa). A szereplõk magatartásformájának leírására pontosan ugyanazt a reprezentációt használtuk, mint amit a genetikus algoritmus esetében (lásd 5.6. táblázat). Nevezzük ezt a reprezentációt ra-nak. A modellben típusonként 200 gazdasági szereplõt használtunk. Az elsõ lépésben mindegyik szereplõ szabályát véletlen módon határoztuk meg. Ezután fut88
tattuk a szimulációt úgy, hogy közben a szereplõk nem változtathatták kiinduláskor megkapott szabályaikat. A futásidõ 1000 periódus volt. A szimuláció végére minden szereplõ elér egy végsõ profitot, amely a periódusokon keresztüli fogyasztások hasznosságából és a kifizetett raktározási költségekbõl származik, természetesen diszkontáltan összegezve: Πa. Ez azt jelenti, hogy mindegyik szabályhoz egyértelmûen tartozik egy profitérték: ra → Πa. A döntési fának azonban kategória típusú eredményváltozóra van szüksége, úgyhogy a profitokat valamilyen módon ketté kell választani. Ezt a szétválasztást az összes azonos típusú szereplõ profiteloszlásának vizsgálata alapján kézzel végeztük, azaz az eloszlás grafikonját elemezve minden típushoz meghatároztunk egy kritikus profitértéket, amely felett a profit a magas (Πa = 1), alatta pedig az alacsony (Πa = 0) kategóriába esik. A szabály-hozzárendelés továbbra is egyértelmû. 5.7. táblázat. A döntési fa tanuló adatbázisa
típus 1 2
1→2 1 1
1→3 2→1 2→3 0 0 0 0 0 1
3→1 0 0
3→2 1 1
I 1 1
II 0 1
III 0 0
Profit 1 0
Így a futtatás és elemzés után összeállt egy olyan adatbázis (lásd 5.7. táblázat), amely minden egyes szereplõre megmondja a szereplõ típusát, az általa alkalmazott szabályt és a szereplõ relatív sikerességét (magas vagy alacsony profit). Ezután már a döntési fa feladata az, hogy megtalálja azokat a szempontokat, amelyek a magas profithoz vezetnek.51 Egy tipikus döntési fa eredményt mutatunk az 5.7. ábrán, amely a következõt jelenti. Ha egy I. típusú szereplõ szabálya azt jelöli ki a szereplõ számára, hogy az 1. jószágot fogyassza, ugyanakkor a 2. jószágot ne fogyassza, annak a profitja várhatóan magas lesz. Ez a szabály nem biztos szabály, de a múlt adatai alapján az ide kerülõ esetek 93%-ára a magas profit volt a jellemzõ. Az adatbázisban ennek a kritériumnak eleget tevõ szereplõ 35 db volt. Ha azonban egy I. típusú szereplõ fogyasztja ugyan az 1. jószágot, de mellette a 2. jószágot is, akkor valószínûleg (57%) alacsony lesz a profitja. Ha pedig egyáltalán nem fogyasztja az 1. jószágot, akkor nagy valószínûséggel (95%) alacsony lesz a profitja. •
•
Ha típus = 1 és … • I = 1 és … • II = 0 • II = 1 • I=0 Ha típus = 2 és … …
akkor Profit = 1 akkor Profit = 0 akkor Profit = 0
(35, 93%) (41, 57%) (124, 95%)
5.7. ábra. Döntési fa (részlet)
A döntési fa kiértékelése abból áll, hogy minden szereplõtípushoz meghatározzuk a sikerhez vezetõ legfontosabb szabályokat. Nem várhatjuk azt, hogy már az elsõ kiértékeléskor az egyensúlyi stratégiákat megkapjuk, hiszen ekkor még nagyon sok lehetséges 51 Döntési fa eljárást nem fejlesztettünk ki, rendelkezésre állt azonban az SPSS Clementine 5.2 adatbányász szoftver, amely az elemzési adatbázis megadása után automatikusan generálja az összefüggéseket biztosító döntési fát.
89
variáció közül kell válogatnunk. Szûkítsük le tehát a variációk számát a döntési fa szabályainak alkalmazásával! Ehhez indítanunk kell egy újabb szimulációt. Az induló szabályoknál azonban már nem csak a véletlen feltöltést alkalmazzuk. Azokban az esetekben, amelyekben a döntési fa sikeres stratégiát határozott meg, azt a döntési részt fixen tartjuk (a döntésnek megfelelõen). A többi esetben ismét véletlen feltöltéssel határozzuk meg a szabályokat. A szimulációt újrafuttatjuk és újra kiértékeljük. A KiyotakiWright-modell esetén a fundamentális egyensúlyt már a második döntési fa, a spekulatív egyensúlyt pedig a harmadik döntési fa megtalálta. (A paramétereket lásd az 5.1. táblázatban, BenedekMegyeri 1989.) A következõ néhány ábra a fundamentális egyensúly megtalálását ábrázolja. Számosság
Haszna
5.8. ábra. Profitok a véletlen feltöltés után
Az elsõ futtatás utáni profitmegoszlást láthatjuk az I. szereplõtípus esetén. A kategorizáláshoz a 90 küszöbértéket választottuk. Ezután a döntési fa a következõ szabályokat határozta meg (csak a pozitív szabályokat mutatjuk). • •
•
Ha típus = 1 és … • I = 1 és … • 2→1 = 1 Ha típus = 2 és … • II = 1 és I = 0 és … • 3→1 = 1 és • 1→3 = 0 Ha típus = 3 és … • III = 1 és … • 1→3 = 1
akkor Profit = 1
(29, 97%)
akkor Profit = 1
(25, 96%)
akkor Profit = 1
(45, 93%)
5.9. ábra. Elsõ döntési fa
Látható, hogy az elsõ döntési fa által adott szabályok még nem elégségesek az egyensúlyi állapot eléréséhez. Ezekkel a fix szabályokkal azonban újra futtattuk a szimulációt. Számosság
Haszna
5.10. ábra. Profitok az elsõ döntési fa után
90
Látható, hogy az új szabályok bevezetésével a szereplõk szignifikánsan jobban teljesítenek. Az új kategorizálás küszöbértéke 20. A kiértékelést követõ döntési fa már pontosan a fundamentális egyensúly stratégiáit adja. •
•
•
Ha típus = 1 és … • I = 1 és … • 2→1 = 1 és … • 2→3 = 0 Ha típus = 2 és … • II = 1 és I = 0 és … • 3→1 = 1 és • 1→3 = 0 és • 1→2 = 1 és • 3→2 = 1 Ha típus = 3 és … • III = 1 és … • 1→3 = 1 • 1→2 = 0
akkor Profit = 1
(85, 97%)
akkor Profit = 1
(73, 96%)
akkor Profit = 1
(91, 99%)
5.11. ábra. Második döntési fa
A második döntési fa eredményeit természetesen megint visszahelyeztük a szimulációs modellbe. Így ismét kaptunk egy profiteloszlást (5.12. ábra), amelyet ismételten lehetett kategorizálni. Hogy biztosan egyensúlyi állapotba kerültünk, azt a döntési fa úgy jelezte, hogy nem tudott szignifikáns döntési szabályokat generálni az adathalmazra. Összefoglalva, a döntési fa nagyon jó eredményeket adott. A legfontosabb különbség az elõzõ tanítási módszerekkel szemben az, hogy az új módszer az összes szereplõ tapasztalatát egyszerre próbálja meg felhasználni annak érdekében, hogy a legjobb viselkedési szabályt meghatározza. Egy kialakult szabály azonban beégetõdik a szereplõk magatartásába, ez már nem tud onnan kikerülni. Ezért fontos, hogy csak a nagyon erõs szabályok épüljenek be a következõ futtatásokba. A döntési fa mind a fundamentális, mind a spekulatív esetekben sokkal gyorsabban és pontosabban adott eredményt, mint a korábbi tanítási modellek. Sajnos a módszer azonban a kevert eloszlás meghatározásához ebben a formában nem használható. Annyiban kellene módosítani a reprezentációt, hogy a magatartási változók ne csak diszkrét (0 és 1) értékeket vehessenek fel, hanem folytonosak legyenek az egységintervallumon. Ekkor például a 2→1 = 0,5 azt jelentené, hogy a 2. jószágot 50%-os valószínûséggel cserélje el a szereplõ az 1. jószágra. Egyelõre ezt a Számosság
Haszna
5.12. ábra. Profitok a második döntési fa után
91
kutatási ágat felfüggesztettük, ugyanis a tanulási eljárást (a döntési fa generálását) nem tudtuk automatizálni.52 Megerõsítéses tanulás. A gazdasági szereplõk döntési problémájának megoldására utolsóként a megerõsítéses tanulás (reinforcement learning) módszereit alkalmaztuk. A megerõsítéses tanulás erõsen épít a dinamikus programozás elméletére: mindkettõ Markovfolyamatok optimális szabályozását keresi. A megerõsítéses tanulás központjában is VS állapotértékelõ függvény és becslése áll. Míg a dinamikus programozás a környezet dinamikájának ismeretében próbálja meg VS értékeit és az optimális S stratégiát meghatározni, addig a megerõsítéses tanulás a dinamika ismerete nélkül a sztochasztikus környezettel interakcióba lépve egyszerre próbálja meg VS-t megbecsülni részben korábbi becslésekre támaszkodva és S-et az optimális stratégia felé közelíteni. Az alapötletet kifejezõ egyenlet V becslésére a következõ. Legyen egy rögzített stratégia mellett V(x) az állapotértékelõ függvény becslése x állapotban. Ha az S stratégia szerint cselekszünk, és a környezettel interakcióba lépve y állapotba kerülünk, akkor V(x) értékét módosítani kell, mégpedig V(x) + α[r + βV(y) V(x)] értékre, ahol r a kapott jutalom, 1 ≥ α > 0 pedig a tanulás konvergenciasebességét meghatározó paraméter. Így V(x) = E[r + βV(y)], ugyanis r + βV(y) értéke elfogadható becslése a várható értéknek, mivel ha a számított érték a helyes V(x)-tõl eltér, akkor módosítjuk a megfelelõ irányába. 5.11. Definíció: A VSi( j, k) állapotértékelõ függvény azt jelenti, hogy egy i típusú szereplõ S stratégia követése mellett várhatóan mekkora jövõbeni diszkontált hasznosságra számíthat, ha most éppen j jószággal rendelkezik, és esetleges csere elõtt áll, amikor is partnerének k jószága van. Térjünk át a cselekedet kiválasztásának kérdésére! 5.12. Definíció: Jelöljük A akció választásának preferenciáját x állapotban pref(x,A) függvénnyel. A preferenciák alapján történõ akcióválasztásra egy lehetséges mód a softmax, illetve a hardmax (csak a legjobbat) döntési szabály. 5.13. Definíció: A softmax döntési szabály Gibbs- vagy Boltzmann-eloszlás alapján (BartoSutton 1998) a következõ: Pr ( x, A ) =
e pref ( x , A) . ∑ B e pref ( x,B )
(5.21)
Azért nem használunk hardmax akciókiválasztást, mivel szükség van arra, hogy a szereplõk tapasztaljanak is, felfedezzék a környezetet, és ne csak eddigi (esetleges) tudásuk alapján legjobb dolgot cselekedjék, megrekedve egy szuboptimális stratégiával. A kritikus rész a V állapotértékelõ függvényt becsli a fenti módon, és ha az elért közvetlen jutalom, valamint állapot diszkontált értéke kedvezõbb a számítottnál, akkor növeli az akció preferenciáját, ellenkezõ esetben csökkenti. Azaz, ha A akciót választottuk x állapotban, akkor a tanulás folyamata a következõvé egészül ki:
52 Az ehhez szükséges fejlesztések nagyon idõigényesek, de ennek ellenére nem vetettük el teljesen ezt az irányt.
92
Vúj ( x ) = Vrégi ( x ) + α ( r + β V ( y ) − V ( x )) ,
(5.22)
pref új ( x, A ) = pref régi ( x, A ) + α ( r + β V ( y ) − V ( x )).
Esetünkben tudjuk, hogy a stratégia független az állapottól. Jelölje pref( j, k), hogy a szereplõ mennyire kedveli azt a cserét, amikor õ ad j jószágot, és k jószágot kap cserébe. Így ha a szereplõnél j, a partnerénél k jószág van, pref( j, k) jelenti a felajánlás, pref( k, j) az elutasítás preferenciáját. A szimulációs megvalósításban a szereplõk felfedezõ cselekedeteinek támogatására a szereplõk ε valószínûséggel a preferenciák alapján választott akció ellentétét cselekszik. Feltételezzük, hogy egy meghatározott periódustól kezdõdõen nincs szükség további tanulásra, ezért attól a periódustól kezdve ε értékét exponenciálisan közelítjük a 0-hoz. Továbbá a jobb tanulás érdekében, nemcsak a közvetlenül megelõzõ állapot és az utolsó akció preferenciaértékét módosítják a tanuló szabályok, hanem az összesét. A futtatásokhoz a Sarlós 2001 paramétereit (5.1. táblázat) használtuk. 300 szereplõvel, 250 000 perióduson keresztül, ε = 0,05 értékkel, majd a 200 000. periódus után ezt exponenciálisan csökkentve végeztük a szimulációt. Az eredmények azt mutatták, hogy a megerõsítéses tanulás módszerével sikerült a szereplõket megtanítani a fundamentális mellett mind a spekulatív, mind pedig a kevert egyensúlyi stratégiák alkalmazására is. Ennek illusztrálására megismételjük az 5.3. ábrát úgy, hogy most már az elméleti értékek mellett a szimulációs értékeket is szerepeltetjük. (Összesen 100 különbözõ 0,6 ≥ u1> 0,4 értékre végeztük el a szimulációt, s1 értékét pedig az utolsó 1000 periódus átlagából nyertük.) 1,2 1,0
szimulációs elméleti
s1
0,8 0,6 0,4 0,2
0,60
0,58
0,56
0,54
0,52
0,50
0,48
0,46
0,44
0,42
0,40
0,0
u1
5.13. ábra. A megerõsítéses tanulás eredményei
5.4. A KiyotakiWright-modell kiterjesztései Úgy tûnik, az alkalmazott tanító eljárások képesek bonyolult egyensúlyi helyzetek meghatározására. Most számos olyan problémát vizsgálunk, amely eltér az eredeti modelltõl. Távlati célunk az, hogy egy teljesen általános gazdaságban modellezni tudjuk a pénz mint csereeszköz kialakulását. Ehhez azonban egyelõre csak a kezdeti lépéseket tudjuk megtenni, mert algoritmusaink még mindig nem elég gyorsak és pontosak ahhoz, hogy egy nagy gazdasági modellt vizsgálhassunk velük. A kibõvített modellek vizsgálata azonban biztató jeleket mutat. Nézzük, hogy milyen módosításokat fogunk vizsgálni: 93
B gazdaság, pénzzel kiegészített gazdaság, 5 szereplõs gazdaság. A modellek egy része megtalálható Marimon et al. (1990) cikkében, innen vettük a paramétereket is. A megoldáshoz mind a négy tanítási algoritmust alkalmaztuk, a részletes ismertetésüktõl eltekintünk, mivel az 5.3. alfejezet alapján könnyû reprodukálni. B gazdaság. Ez a gazdaság csak annyiban tér el az A gazdaságtól, hogy a termelés ( f) pontosan fordított irányú (lásd 5.4. Definíció). Bármennyire szimmetrikusnak tûnik is ez a gazdaság az A-val, ebben két egyensúly létezik egyszerre, egy fundamentális (5.14. ábra) és egy spekulatív (5.15. ábra). A két egyensúlyi helyzethez tartozó termékeloszlásokat az (5.23) mutatja. 3
I
1,2 1
1 1
2 3
2,3
II
II 5.14. ábra. Fundamentális egyensúly
0, 098 0, 236 0 0 0 = 0,333 0,195 0,138 0
III
2
2
2
p fund
3
I
III
5.15. ábra. Spekulatív egyensúly
p spek
0,195 0,138 0 0 0, 098 = 0, 236 0 0,333 0
(5.23)
A következõ paraméterekkel számoltunk: c1 = 1, c2 = 4, c3 = 9, ui = 100 és β = 0,99. Marimon et al. (1990) cikkében megmutatja, hogy a klasszifikáció-rendszer felváltva konvergál hol a spekulatív, hol pedig a fundamentális egyensúlyhoz. Az általunk készített szimulációk ezt nem voltak képesek reprodukálni. Kivétel nélkül mind a fundamentális egyensúlyhoz konvergált, ami azt az érzést keltette (ellentmondva Marimon et al. (1990) eredményeinek), hogy a B gazdaságban a fundamentális egyensúly stabil, a spekulatív pedig instabil. Különösen érdekes volt, hogy abban az esetben, ha a spekulatív stratégiát játszó állapotból indítottuk a szereplõket, akkor is a legtöbbször a fundamentális egyensúlyhoz tartott a gazdaság. Kivételt képezett a döntési fa módszer, amely sajátosságából fakadóan csak nagyon nehezen képes elmozdulni egy egyensúlyi helyzetbõl. Pénzzel kiegészített gazdaság. Itt arról van szó, hogy az A modell feltételei mellett bevezetünk egy 4. jószágot, a pénzt. Ennek a jószágnak a raktározási költsége zérus. A jószágot mesterségesen rakjuk a rendszerbe (indulókészlet formájában), és nem engedjük meg a fogyasztását, így nem kerülhet ki a rendszerbõl. Paraméterek: c1 = 1, c2 = 20, c3 = 70, c4 = 0, ui = 100 és β = 0,99. Ebben az esetben fundamentális egyensúly valósul meg, mint az az 5.16. ábrából és az (5.24)-bõl kiderül.
94
4
I
III
1 1,4
1,4 3
2,4
II 5.16. ábra. Fundamentális egyensúly
p fund
0, 087 0, 206 0 0, 247 0 0 = 0 0,140 0 0, 087 0,107 0,126
(5.24)
A termékeloszlás természetesen függ attól, hogy kezdetben mennyi 4. jószágot helyeztünk a rendszerbe. Megérzésünk az, hogy ebben a gazdaságban is elõállhat spekulatív egyensúly, hiszen ha egyre kevesebb 4. jószággal indítjuk a szimulációt, úgy egyre közelebb kerülünk az eredeti A modellhez. Olyan esetben azonban, amikor számottevõ mennyiségben vittünk pénzt a gazdaságba, nem tudtunk olyan paraméterbeállítást adni, hogy egy spekulatív egyensúlyba érkezzen a gazdaság. A tanulóeljárások közül a klasszifikáló rendszer nem járt sikerrel, a döntési fa pedig mindig konvergált. A tiszta genetikus algoritmus az esetek 90%-ában az egyensúlyi megoldást adta. A megerõsítéses tanulás még ennél is sikeresebb volt, de lényegesen nagy volt a futási idõigénye. 5 szereplõs gazdaság. Távlati célunk az, hogy egy olyan modellt építsünk fel, amelyben törvényszerûen jelenik meg és válik fizetõeszközzé a pénz, nem pedig egy kívülrõl modellbe erõszakolt jószágot nevezünk csereeszköznek. Ehhez az elsõ lépés egy összetettebb gazdaság szimulálása. Ebben a modellben öt típus és öt jószág szerepel. A szereplõk itt is csak egyetlen jószágot szeretnek fogyasztani, és egyetlen terméket képesek termelni, mégpedig az I. szereplõ a 3. jószágot, a II. szereplõ a 4. jószágot, a III. az 5-öst, a IV. az 1-est és az V. a 2-est. Paraméterek: c1 = 1, c2 = 4, c3 = 9, c4 = 20, c5 = 30, ui = 200 és β = 0,99.
p500
0 0, 064 = 0, 024 0,184 0, 042
0, 067 0,125 0, 006 0, 001 0 0, 008 0,123 0, 005 0, 036 0 0, 011 0,130 0, 009 0 0 0, 006 0,144 0, 008 0, 006 0
(5.25)
p 2000
0 0, 019 = 0, 009 0,198 0
0,166 0, 032 0, 001 0, 001 0 0, 001 0,174 0, 006 0, 084 0 0, 010 0, 096 0, 002 0 0 0 0,195 0, 005 0 0
(5.26)
95
A klasszifikáció-rendszer alkalmazása során nem sikerült egyensúlyi állapotot elérni, mint azt az (5.25) és (5.26) mutatják. A tiszta genetikus algoritmus a rendkívül hosszú futási idõ miatt nem bizonyult használhatónak. A döntési fa és a megerõsítéses tanulás viszont azonos eredményeket adtak, amely szerint az 5 szereplõs gazdaság egyensúlyi állapota a megadott paraméterek mellett egy majdnem fundamentális egyensúly, tiszta stratégiákkal. A megoldás jószágeloszlását az (5.27), a cseréket pedig az 5.17. ábra mutatja.
p 750
0, 035 0,122 0, 043 0 0 0, 082 0 0, 064 0, 054 0 = 0, 064 0, 039 0 0 0, 097 0 0 0 0 0, 200 0, 091 0,109 0 0 0
(5.27)
3
I
III 1,2
1
2,3
1,3
1,4
1
IV
4
5 1,2
1,2
1
II
2
V
5.17. ábra. Az 5 szereplõs gazdaság egyensúlyi cseréi
Az 5 szereplõs gazdaságot ebben a munkánkban nem vizsgáljuk részletesebben, csupán azt hangsúlyozzuk ki, hogy ebben a gazdaságban a pénz (1. jószág) domináns fizetõeszközzé tudott válni. Minden szereplõ egységesen hajlandó elfogadni. Ezért a mennyisége kiemelkedõen magas szintre tudott emelkedni (20%-ról 44%-ra). A 4. és az 5. jószág speciális módon alakult, ezeket csak a jószágok fogyasztója hajlandó elfogadni. Kivételt egyedül az I. típusú játékos képez, aki spekulatív módon elfogadja a 4. jószág termelõjétõl a 4. jószágot, és azt továbbadja a IV. típusú szereplõnek. Ez a két jószág azonban így is teljesen hasonló képet mutat, és egyensúlyban 10-10%-ot érnek el. A 2. és 3. jószág szintén közel azonos szintre (18-18%) áll be, ezek átmenetet képeznek a pénz és a nem pénz jószágok között. (A jószágok részesedésének alakulását a döntési fa tanítás mellett az 5.17. ábrán ábrázoltuk.) 3000 2500
1. jó sz á g
2000 1500 1000
2. é s 3. jó sz á g
500 4 . é s 5 . jó sz á g
0
5.18. ábra. Az 5 szereplõs gazdaság jószágeloszlásának alakulása
96
6. A SOKSZEREPLÕS MODELLEK KOMMUNIKÁCIÓSTRUKTÚRÁI
Az elõzõ fejezetekben megmutattuk, hogy a szimulációs módszertan segítségével fel tudunk építeni és meg tudunk figyelni olyan gazdasági modelleket, amelyekben heterogén szereplõk meghatározott külsõ és belsõ szabályozó erõk hatására cselekszenek. Az evolúciós elmélet pedig olyan módszereket biztosított, melyek segítségével az elkülönült gazdasági szereplõk egymáshoz és környezetükhöz való alkalmazkodása megvalósítható. Ebben a fejezetben ezt az eszköztárat szeretnénk felhasználni egy olyan probléma kezeléséhez, amelyet analitikus módszerekkel rendkívül nehéz lenne megoldani. A cseremodelleknek a cserepartnerekkel történõ találkozására vonatkozó feltételezést kívánjuk módosítani. A legtöbb modellben így pl. a KiyotakiWright-modellben is minden szereplõnek lehetõséget adunk bármely másik szereplõvel való találkozásra (random match). Egy ilyen modell kommunikációs struktúráját úgy képzelhetjük el, mint egy csomópontokból és élekbõl felépített gráfot, ahol a csomópontok jelentik az egyes szereplõket, az õket összekötõ élek pedig a lehetséges találkozásokat. Mivel bárki bárkivel találkozhat, ezért ebben a struktúrában minden pont minden másik ponttal össze van kötve. Továbbá az azonos találkozási valószínûség folytán a pontokat összekötõ élek súlya azonos. Ha egy modell kommunikációs struktúráját megváltoztatjuk, megváltozik (megváltozhat) az egész modell minõségi tulajdonsága. Ha feltételezzük, hogy a különbözõ gráfokban az élek továbbra is azonos találkozási valószínûségeket reprezentálnak, de lehetõség van egy-egy szereplõ közötti él megszüntetésére, akkor a lehetséges struktúrák száma a szereplõk számával exponenciális ütemben nõ. Ha hozzávesszük a súlyok változásának lehetõségét, akkor végtelen számú lehetséges kommunikációs struktúra adódik. Ebben a fejezetben megmutatjuk, hogy létezik néhány olyan kommunikációs struktúra, amely különösképpen jellemzõ a gazdasági-társadalmi rendszerekre, és így ezek modellezése fontos eredményekkel bõvítheti eddigi kutatásainkat. A gráfstruktúrák keresésében és elemzésében az egyik legfontosabb lépés egy vállalati kutatás volt,53 így ez a fejezet nagymértékben támaszkodik az ottani tapasztalatokra, részletesen pedig a második és harmadik alfejezetben tárgyaljuk. Ezt megelõzi egy rövid elméleti bevezetõ, amely elsõsorban Watts (1999) munkájára épít. A negyedik alfejezet röviden vizsgálja a kommunikációs struktúrák egyensúlyelméleti vonatkozásait.
6.1. Az elmélet Ahhoz, hogy az információstruktúrákat gráfelméleti módszerekkel kezeljük, szükséges az alapvetõ definíciókat megadni. Ez a pont azonban nem tekinthetõ gráfelméleti bevezetésnek, mivel csak azokat a jellemzõket tárgyalja, amelyek a késõbbiek során mindenkép-
53
Az Axelero vállalatnál Vida Péterrel közösen végzett SNoW projekt.
97
pen szükségesek, így rengeteg, a gráfelméletben alapvetõ definíció és bizonyítás kimarad. 6.1. Definíció: Gráfnak nevezünk egy csomópontokból és élekbõl álló halmazt. Jelöljük a gráfot G-vel. Ekkor a csomópontok (vagy pontok) halmaza V(G), az élek halmaza (listája) pedig E(G). Ha v,w ∈ V(G) csomópontok, és vw ∈ E(G) egy él, akkor azt mondjuk, hogy v és w össze vannak kötve. A továbbiakban a definíciók szemléltetéséhez a 6.1. ábrán látható G0 gráfot használjuk. 3
4
1
2
5
6.1. ábra. A G gráf 0
6.2. Definíció. A csomópontok számát a gráf rendjének nevezzük, jelölése n = #V(G). A gráf méretének nevezzük az élek számát, jelölése M = #E(G). A G0 gráf rendje és mérete 5. A 6.1. definícióval számtalan különbözõ tulajdonságú gráf megadható. Nézzünk néhány szûkítést, amelyet a késõbbiek során alkalmazni fogunk. 6.3. Definíció: Adott egy n rendû, M méretû G mátrix. Ekkor a gráf F1. Irányítatlan, ha minden él szimmetrikus viszonyt testesít meg az általa összekötött két pont között, azaz ha vw ∈ E(G), akkor wv ∈ E(G); F2. Súlyozatlan, ha két pont közötti kapcsolat csak kétféle lehet: létezik vagy nem létezik. (Súlyozott, ha létezik olyan f függvény, hogy f(vw) ∈ R.); F3. Egyszerû, ha egy pont önmagával nem lehet összekötve, illetve egy másik ponttal csak egyszer lehet összekötve; F4. Ritka, ha mérete a lehetséges maximális mérethez képest kicsi. A maximális méretû gráfokat teljesnek vagy teljesen összekötöttnek nevezzük; F5. Összefüggõ, ha két tetszõleges csomópontot véges számú él összeköt. A G0 gráf irányítatlan, súlyozatlan, egyszerû és összefüggõ. Egyszerû, irányítatlan gráfok esetén a maximális méret kifejezhetõ n segítségével, mégpedig Mmax = n(n 1)/2. A ritkaság formálisan azt jelenti, hogy M << n(n 1)/2. A kommunikációs struktúrák vizsgálata és gazdasági modellekben történõ alkalmazásánál általában az F1F5 tulajdonságoknak megfelelõ gráfokat fogunk használni. Ugyanakkor számos modell esetében szükséges lehet ezek feloldása. A gráfok numerikus ábrázolásához mátrixokat alkalmazhatunk. Ehhez vezessük be a szomszédossági mátrix fogalmát. 6.4. Definíció: Egy G gráf csomópontjait jelöljük pozitív egész számokkal. Ekkor M(G) szomszédossági mátrixnak nevezzük azt az n × n-es négyzetes mátrixot, amelynek Mi,j eleme megmutatja, hogy milyen kapcsolat áll fenn a gráf i és j csomópontja között. Irányítatlan, súlyozatlan, egyszerû gráfok esetében Mi,i = 0 és Mi,j vagy 0 vagy 1, valamint M szimmetrikus. G0 szomszédossági mátrixa: 98
0 1 M (G 0 ) = 1 0 1
1 0 1 0 0
1 1 0 0 0
0 0 0 0 1
1 0 0 . 1 0
A mátrixreprezentáció azért nagyon elõnyös, mert a matematikai közgazdaságtan számos definíciót, tételt és technikát alkalmaz ezen mátrixok jellemzésére és megismerésére. (Részletesen lásd Zalai 2000, Móczár 1980.) Ezeket a gráfelméleti alkalmazás során könnyû lesz felismerni és alkalmazni. Erre példa az alábbi egyszerû állítás. 6.1. Tétel: Egy G gráf akkor és csak akkor összefüggõ, ha szomszédossági mátrixa irreducíbilis. 6.5. Definíció: Legyen v ∈ V(G). Ekkor v fokának nevezzük a v-bõl kiinduló élek számát. Jelölése kv. Ezek átlagát nevezzük a gráf átlagos fokának, melyet jelöljön k. Azt a gráfot, amelynek minden csomópontja pontosan k csomóponttal van összekötve, k-reguláris gráfnak nevezzük. Nyilvánvalóan M = nk/2. Ezért a ritkaság megfogalmazható úgy is, hogy k << n. A példánkban szereplõ G0 gráf átlagos foka 2. 6.6. Definíció: Karakterisztikus úthossznak nevezzük a gráf minden pontjából kiinduló minden egyéb pontba eljutó legrövidebb utak átlagának a mediánját. Jelölése L. Legyen G összefüggõ, és v, w ∈ V(G). Ekkor d(v,w) a két pontot legkevesebb él segítségével összekötõ út éleinek száma. Legyen a v-bõl kiinduló legrövidebb utak átlaga: dv =
∑ d (v, j )
j∈V (G )\v
# V (G ) − 1
.
(6.1)
L tehát nem más, mint ennek a sorozatnak mediánja. A példánkban szereplõ G0 gráf esetében például d(2,5) = 2. A legrövidebb távolságok átlaga rendre 1,25, 1,75, 1,75, 2,25 és 1,50, L értéke tehát 1,75. Felmerül a kérdés, hogy miért nem az átlagok átlagát nevezzük karakterisztikus úthossznak. Ennek praktikus oka van, mégpedig az, hogy vizsgálatainkat igen nagy gráfokra végezzük. Ilyen esetben sokszor a teljes gráfot a gráfból vett minta segítségével jellemezzük. A mediánt azért használjuk, mert mintatulajdonságai kedvezõbbek, mint az átlagé, ahogy azt a következõ tétel mutatja. (A bizonyítást lásd Huber 1996.) 6.2. Tétel: Vegyük a következõ mintavételes eljárást L meghatározásához. 1. Vegyünk egy s < n elemû véletlen mintát a G gráfból. 2. Határozzuk meg a mediánt. Nevezzük M(q) q-mediánnak, ha qn számú kisebb elem és (1 – q)n ennél nagyobb elem szerepel. 3. Legyen L(q,δ) (q,δ)-medián, ha a számoknak qn(1 – δ) része kisebb, és (1 – q)n (1 – δ) része nagyobb, mint L(q,δ). Létezik olyan q’, hogy L(q,δ) = M(q’), és ekkor (1 – δ)q £ q’ £ (1 + δ)q. 99
Ennek az algoritmusnak a segítségével egy s minta L(q,δ) értéke a helyes karakterisztikus úthosszt 1 – ε pontossággal becsüli, ahol s = (2/q2)ln(2/ε)/(δ /(1 – δ))2. A karakterisztikus úthossz számításának sebessége nemcsak azért fontos, hogy egy adott gráf esetében gyors becslést lehessen adni ennek értékére, hanem azért is, mert sokszor egy gráf struktúráját a karakterisztikus úthossz n, illetve k függvényében történõ változása, az L-skálázhatóság képes jól jellemezni. 6.7. Definíció: Egy v csomópont környezetének nevezzük azokat a v-tõl különbözõ csomópontokat, amelyekkel v össze van kötve. Jelölése Γ(v), és Γ(v) ⊆ V(G). Hasonlóan definiálható Γ(S), ahol S ⊆ V(G), és Γ(S) ⊆ V(G) \ S. Γ(S) tehát olyan csomópontokból áll, amelyek össze vannak kötve legalább egy S-beli csomóponttal. A definíció alapján G0 gráf 1-es csomópontjának környezete Γ(1) = {2, 3, 5}. Ugyanakkor Γ(Γ(1)) = Γ2(1) = {4}. Megállapodás szerint Γ0(v) = v. 6.8. Definíció: Egy gráf v eloszlási sorozatának nevezzük a következõ mennyiséget: j
Λ j (v ) = ∑ # Γ i ( v ), 0 ≤ j ≤ jmax .
(6.2)
i=0
Nyilvánvaló, hogy minden v esetén Λjmax(v) = #V(G). A csomópontok eloszlási értékeinek átlagát G eloszlási sorozatának nevezzük, jelölése Λj(G). Egy gráf D átmérõjének nevezzük azon úthossz éleinek számát, amely a két egymástól legnagyobb távolságra lévõ pontját köti össze, azaz D = maxv(jmax (v)). A G0 gráf átmérõje 3. Egy gráf átmérõje önmagában nem hordoz sok információt, de kiegészítve a rendjével és méretével már sok következtetést levonhatunk a gráfról. Az utolsó bevezetendõ gráf-statisztikai mérõszám a koncentráltság lesz. 6.9. Definíció: Egy v csomópont koncentráltsága azt mutatja, hogy v szomszédjai mennyire szomszédjai egymásnak. Pontosabban γv =
# E ( Γ ( v )) , kv = # Γ ( v ) . 1 kv ( kv − 1) 2
(6.3)
Egy G gráf koncentráltsága nem más, mint az összes csomópont koncentráltságának számtani átlaga. A G0 gráf 1 csomópontjának koncentráltsága 0,33, míg a teljes gráf koncentráltsága 0,466. A definíciók közvetlen következménye, hogy a koncentráltsági koefficiens értéke mindig 0 és 1 között mozog. A γ = 1 azt jelenti, hogy a gráf n/(k + 1) különálló, de önmagában teljesen összefüggõ részgráfból áll. Ezeket klikkeknek is nevezik. Ezzel szemben a γ = 0 esetén egyetlen csomópont szomszédjai sincsenek egymással kapcsolatban. Ilyen például a fa gráf. Nyilvánvalóan számos egyéb változót definiálhatunk ahhoz, hogy egy általános gráfot (a gráf megadása nélkül) pontosan jellemezni tudjunk. A további vizsgálódáshoz azonban a fenti mérõszámok elegendõek lesznek. Segítségükkel három különbözõ világot fogunk megismerni és felismerni, a rácsgráfokat, a véletlen gráfokat és a kisvilággráfokat. 100
6.10. Definíció: Egy G gráfot d-rács- (vagy d dimenziós rács-) gráfnak nevezünk akkor, ha irányítatlan, súlyozatlan, egyszerû, és minden v csomópont össze van kötve azokkal az ui wi szomszédokkal, amelyekre igaz, hogy ui = (v − i d ' + n ) mod n, wi = (v + i d ' ) mod n,
(6.4)
ahol 1 < i < k/2, 1 < d’ < d és k > 2d. A definícióból következik, hogy egy k = 2 fokú 1-dimenziós rácsgráf egy gyûrû, míg egy k = 4 fokú 2-dimenziós rácsgráf egy négyzetrács. A 6.2. ábrán szemléltetésül egy 1 dimenziós rácsgráfot mutatunk k = 4 esetén.
6.2. ábra. Rácsgráf (d = 1, k = 4)
A rácsgráfok nagyon szabályos kapcsolatokat testesítenek meg. Pontosan ez a szabályosság teszi azonban lehetõvé azt, hogy tulajdonságaikat könnyen meghatározhassuk. Könnyû belátni, hogy a karakterisztikus úthossz és a koncentráltság analitikusan is meghatározható. 6.3. Tétel: Legyen G gráf n méretû és k fokú 1-dimenziós rácsgráf. Ekkor k > 2 esetén n(n + k − 2 ) , 2k (n − 1) 3(k − 2 ) γ (G ) = . 4(k − 1) L(G ) =
(6.5)
A rácsgráfokat azért választottuk az információstruktúrák jellemzésére, mert szabályosságokból fakadóan könnyû rájuk állításokat megfogalmazni. A gráfok egy másik formájára azért lehet általános tételeket megfogalmazni, mert szabálytalanok. 6.11. Definíció: Egy G(n,M) gráfot véletlen gráfnak nevezünk, ha n csomópontból áll, és azokat M számú függetlenül és véletlenszerûen kiválasztott él köti össze. A véletlen gráfok másik megadási módja G(n,p), ahol annak a valószínûsége, hogy egy lehetséges él ténylegesen szerepel a gráfban, azonosan p. A véletlen gráfok tanulmányozása során számos eredmény született (pl. Erdõs–Rényi 1959, Bollobás 1985). Általában egy bizonyos Q tulajdonság létezése után kutatnak véletlen gráfok esetében, mégpedig úgy, hogy egy kritikus küszöbértéket meghatározzanak arra vonatkozóan, hogy mekkora M vagy p (illetve ezekkel ekvivalens k) esetén teljesül ez a 101
tulajdonság (fázisátmenet). Az egyik legtöbbet tanulmányozott ilyen Q tulajdonság az összefüggõség, vagyis legalább hány élhez van ahhoz szükség, hogy egy véletlen gráf összefüggõ legyen. Erdõs és Rényi (1959) cikkében megmutatta, hogy k > ln(n) esetén majdnem minden véletlen gráf összefüggõ. A további kutatásunk során a legtöbb véletlen gráffal kapcsolatos tételre nem lesz szükségünk, tanulmányozásuknál a numerikus módszerekkel megelégszünk. Nézzük, hogy az általunk bevezetett két tulajdonság, a karakterisztikus úthossz és a koncentráltság hogyan alakul a véletlen gráfok esetén. Numerikus megfigyeléseink alapján a következõket állítjuk. 6.1. Sejtés: Adott egy G(n,k) véletlen gráf. Ekkor a gráf koncentráltsága kicsi, és a karakterisztikus úthossz rövid. Megfigyeléseink szerint L≈
ln n k , γ ≈ . ln k n
(6.6)
Nézzük, mit jelenthet mindez akkor, ha a bevezetett két gráftípust társadalmi csoportok struktúrájának jellemzésére használjuk, ahol egy él két személy közti ismeretséget reprezentál. Ha egy csoportra rácsgráf-struktúra jellemzõ, akkor az azt jelenti, hogy egy személy ismerõsei egymást is nagy valószínûséggel ismerik (magas γ), ugyanakkor két véletlenszerûen kiválasztott személy nagy valószínûséggel csak egymás ismerõsének az ismerõsének stb. ismerõse (nagy L). Ugyanakkor egy véletlen gráf típusú csoport esetében két véletlenül kiválasztott személy között kicsi az ismerõsökön keresztüli távolság (kicsi L). Ugyanakkor egy személy ismerõsei valószínûleg nem ismerik egymást (alacsony γ). Vegyünk példának egy n = 100, k = 10 paraméterekkel megadott csoportot. Ha ez egy 1-dimenziós rácsgráf, akkor L = 5,5 és γ = 0,7. Ha azonban véletlen gráf, akkor L = 2 és γ = 0,1. A valóságban ugyanakkor azt tapasztaljuk, hogy léteznek olyan társadalmi struktúrák, ahol magas a koncentráltság, majdnem mindenkinek van olyan ismerõse, aki egy tetszõleges másik személyt ismer. Ilyen az, amikor egy társaságban egy idegen emberrel beszélgetve pillanatok alatt szóba kerül egy közös ismerõs, és megjegyezzük: „Milyen kicsi a világ.” 6.12. Definíció: Egy n és k paraméterekkel rendelkezõ gráfot kisvilággráfnak nevezünk akkor, ha koncentráltsága a hasonló paraméterekkel megadott rácsgráfok koncentráltságához van közel, míg karakterisztikus úthossz értéke a hasonló paraméterû véletlen gráfokéhoz közelít.
6.2. A gráfstruktúrák kimutatása A kisvilággráfok definíciója után kérdések merülnek fel: Vajon léteznek-e egyáltalán kisvilágok? Ha léteznek, bonyolultak vagy egyszerûek, állíthatjuk-e róluk, hogy félúton helyezkednek el a teljesen szabályos és a teljesen véletlen világok között? Okozhat-e bármilyen minõségi változást a közgazdasági modellekben az, ha kisvilágoknak tekintjük a szereplõk világát? Ha igen, akkor lehet-e analitikusan foglalkozni ezekkel a struktúrákkal, vagy a szimuláció elkerülhetetlen? A fejezet további részeiben az elsõ kérdésrõl lesz szó, megmutatjuk, hogy számos helyen léteznek kisvilágok. A további kérdések megválaszolásához visszanyúlunk a Kiyotaki– Wright-modellhez, és a következõ fejezetben részletezzük az eredményeket. 102
A szakirodalom szerint a következõ területek szolgálnak bizonyítékul arra, hogy kisvilágok léteznek: Együttmûködési: Vegyünk egy tevékenységet, amelyet általában több személy valósít meg. (Ilyen lehet egy mozifilmben történõ szereplés vagy a tudományos publikáció.) Képezzünk egy olyan gráfot, amelynek csomópontjai a részt vevõ személyek, és két személy között akkor van él, ha az adott tevékenységet közösen végezték. (Volt olyan film, amelyben mindketten játszottak, vagy volt közös publikációjuk.) Az így kapott együttmûködési gráf általában rendelkezik a kisvilággráfok tulajdonságaival. 54 Tudományos citálás: Egy tudományos cikk legyen egy csomópont, és két cikk akkor van éllel összekötve, ha az egyikben hivatkoznak a másikra. Egy ilyen gráf jól mutathatja a tudományos ötletek fejlõdését, és nagy valószínûséggel kisvilág-tulajdonságokat mutat. Szervezeti hálózatok: A csomópontok személyek, az élek a személyek közötti kapcsolatot, az információáramlás lehetõségét testesítik meg. (Telefonálási struktúrák, e-mailezési partnerek, banki tranzakciók stb.) Szóasszociáció: Képzeljünk el egy olyan gráfot, amelynek csomópontjai a szavak, élei pedig szóasszociációkat (vagy hasonló hangalakot, jelentést stb.) mutatnak. Az így konstruált gráfokat nyelvészek használják a nyelv bizonyos tulajdonságainak tanulmányozására, megértésére. Számos esetben kisvilágok készülnek. Világháló: A csomópontok az internetoldalak, míg az élek két oldalt összekötõ hiperhivatkozások. Bár napjainkban ez egy több millió csomópontból álló gráf, elfogadhatjuk, hogy meglehetõsen ritka. Becslések szerint egy tetszõlegesen kiválasztott oldalról nagy valószínûséggel 10 kattintáson belül elérhetõ bármelyik másik tetszõlegesen kiválasztott oldal. Watts (1999) munkájában három speciális gráfot elemez. A Kevin–Bacon-gráfot (KBG), amely a filmszereplõk együttjátszását reprezentálja, a Nyugati Államok erõmûgráfját (NyÁEG), amely az USA nyugati államaiban található erõmûvek közötti nagyfeszültségû vezetékes összeköttetést mutatja, és végül a C. elegans gráfot (CEG), amely nem más, mint a Caenorhabditis elegans nevû féreg idegrendszerének (neuronhálózatának) reprezentációja. Mindhárom gráf kisvilág, részletek helyett a 6.1. táblázatban foglaljuk össze a legfontosabb paramétereket. 6.1. táblázat. Kisvilággráfok
Paraméterek n k L γ L (véletlen) γ (véletlen) L (rács) γ (rács)
KBG 225 226 61 3,65 0,79 3 0,00027 1800 0,74
NyÁEG 4941 2,67 18,7 0,08 9 0,0005 926 0,3
CEG 282 14 2,65 0,28 2 0,05 11 0,69
54 Együttmûködési gráfra jó példa a közismert az Erdõs-gráf. Erdõs Pál a 20. század egyik legtermékenyebb matematikusa volt, több mint 1400 publikációja jelent meg. Számos (472) szerzõtársa volt. Ezeknek a kutatóknak az Erdõs-száma legyen 1, mivel volt közös publikációjuk Erdõs Pállal. Vegyük e 472 kutató további szerzõtársait. Az õ Erdõs-számuk 2, és így tovább. A meglepõ az, hogy ha valakinek van véges nagyságú Erdõs-száma, akkor az igen kicsi lesz. Részleteket lásd GrossmanIon 1995.
103
Vegyünk most egy közgazdasági problémát, ahol a kommunikációstruktúrára vonatkozó elemzéseket elsõként végeztük el. Ezt az elemzést egy hazai internet-szolgáltatónál hajtottuk végre, a kutatás központjában az ügyfelek e-mailezési szokásai és az e-mailen terjedõ információ áramlása állt. Elsõdleges célunk az volt, hogy azonosítsuk, vajon kisvilággráftulajdonságot mutat-e a csoport, másodlagos célunk pedig ennek a struktúrának a két-, esetleg háromdimenziós megjelenítése volt. Kisvilág-tulajdonság. Az elemzéshez egy úgynevezett mail log adatbázis állt rendelkezésünkre. Ez összesen négy mezõt tartalmazott, mégpedig a levél küldõjének email-azonosítóját (A), az e-mail fogadójának azonosítóját (B), egy összes darabszámot (DB), ami azt jelölte, hogy a vizsgálati idõszak alatt (3 hónap) A hány e-mailt küldött B részére, és az összes forgalmat (KB), ami az összes levél méretét jelenti kilobyte-ban megadva. (Egy tipikus sor ennek az adatbázisnak az:
[email protected] ;
[email protected] ; 5 ; 1250, ami azt jelenti, hogy a vizsgált idõszak alatt az
[email protected] azonosítóval rendelkezõ felhasználó összesen 5 darab levelet küldött
[email protected] részére, és a levelek méretének összege 1250Kb volt.) Ebben az adatbázisban összesen n = 513 412 darab e-mail-azonosító (A és B kód) szerepelt, és ezek között M = 1 723 069 kapcsolat állt fenn. Az elképzelt gráf szomszédossági mátrixát úgy képzelhetjük el, hogy mAB = 1, ha A küldött legalább egy levelet B-nek, vagy B küldött legalább 1 levelet A-nak, ellenkezõ esetben mAB = 0. Figyeljük meg, hogy az így kapott gráf kielégíti az F1–F4 tulajdonságokat, ugyanakkor az összefüggõség (F5) nem biztosított. Ennek a megállapításához külön algoritmust kellett készíteni. Egy olyan eljárást készítettünk, amely képes volt a mail log adatbázist felhasználva összefüggõ részgráfokra bontani a sokaságot.55 Ekkor meglepõdve tapasztaltuk, hogy a gráf majdnem összefüggõ. Pontosabban szólva összesen 11 502 részgráfból áll, de ebbõl a legnagyobb összesen 489 451 e-mail-azonosítót fed le, míg a második legnagyobb összesen 21 darabot. Ezek szerint a felhasználók nagy része összefüggõ gráfot alkot. A kis gráfokkal a továbbiakban nem foglalkoztunk. Vizsgáljuk most a megmaradt nagy összefüggõ gráfot. Itt tehát n = 489 451, M = 1 713 078, ebbõl következõen k = 7,0. A karakterisztikus távolság kiszámításához teljes gráfelemzést végeztünk, azaz nem használtunk becsléseket, L = 7,6. Végül a koncentráltság γ = 0,52 mérete arra utalt, hogy ez a gráf kisvilágstruktúrát mutat. Megjelenítés. Nem elégedtünk meg ezzel, látni akartuk, milyen ez az elképzelt-valóságos világ. Természetesen nincs lehetõség arra, hogy egy olyan grafikont mutassunk, ahol az élek is szerepelnek. Ehelyett olyan megoldásra törekedtünk, hogy két ügyfél kommunikációs valószínûségét a köztük lévõ távolság mutassa. Ehhez fel kellett oldani a súlyozatlanság feltételt, és szükség volt egy jó távolságdefinícióra: mAB = a +
b , DB e + ( AB )( DBBA + e ) + c
(6.7)
ha A↑B. Látható, hogy a távolság szimmetrikus, minimális értéke a körül van, amihez akkor közelít, ha nagy e-mail-forgalom van a két ügyfél között, maximális értéke pedig
55 Az algoritmus mûködését nem részletezzük, ugyanakkor megjegyezzük, hogy számítástechnikailag igen komoly problémát vetettünk fel. Egy ilyen nagy méretû gráf esetén gyors és hatékony eljárást készíteni meglehetõsen bonyolult feladat. Mi a legegyszerûbb eljárást használtuk, mivel nagy erejû számítókapacitás állt rendelkezésre.
104
a + b / (e2 + c). Kutatásaink során meghatároztuk a leginkább megfelelõnek tûnõ értékeket, mégpedig a = 2, b = 800, c = 7 és e = 1. A gráf mAB távolságainak eloszlását mutatja a 6.3. ábra. Nevezzük D távolságmátrixnak azt a mátrixot, ahol dij = mAB, ha i = A és j = B, továbbá A és B között legalább egy levélváltás történt, különben dij = 0.
6.3. ábra. Távolságeloszlás
A feladat az, hogy D mátrix segítségével állítsunk elõ egy olyan R mátrixot, amely az ügyfelek elhelyezkedését adja meg egy l dimenziós vektortérben, mégpedig úgy, hogy ri1, ri2 , …, ril az i ügyfél 1., 2., … l-edik koordinátája. Elemzéseinkben az l = 2 és l = 3 esetet vizsgáltuk. Két kérdés merül fel: milyen D-re vonatkozó feltételek mellett létezik R, és létezik-e egzakt mód R meghatározására. Ezek megválaszolásához vegyük a következõ példát: 0 1 1 (6.8) D = 1 0 1 , 1 1 0 vagyis egy olyan, három csúcspontból álló gráfot, ahol a csúcsok egymástól egységnyi távolságra vannak. Nyilván ábrázolható ez a struktúra, pl.: R=
−1 1 1 2 0
0 0 . 3
(6.9)
Látható, hogy a problémát akkor tudjuk megoldani, ha igaz a háromszög-egyenlõtlenség. Ezt a feltételt a (6.7) képlet nem garantálja. Ráadásul ez önmagában még kevés is. Képzeljük el ugyanis, hogy az eddigi pontokhoz hozzáveszünk még egyet, amely mind a három másik ponttól azonosan 0,55 távolságra van. Ekkor nincs olyan R, amely megfelelne, ugyanakkor a háromszög-egyenlõtlenség teljesül. Ezek alapján az a megérzésünk, hogy az általunk készített távolságmátrix szintén nem lesz megfelelõ. Induljunk ki most abból, hogy adottak a pontok koordinátái, alkossunk belõlük egy R mátrixot. Ebbõl kiszámíthatjuk D aktuális távolságmátrixot a (6.10) képlet segítségével. A feladat az, hogy R mátrixot úgy módosítsuk, hogy D = D. Ha az egyezõség helyett a két mátrix közötti eltérést kívánjuk minimalizálni, akkor már tetszõleges D mellett megkapjuk R-t, méghozzá ha végül a minimális eltérés zérus, akkor azt is tudjuk, hogy az eredetileg kitûzött probléma is megoldódott. 105
∑ (r '
d 'ij =
− r ' jl ) . 2
il
l
(6.10)
A feladat tehát a következõ: L = ∑∑ ( dij − d 'ij ) → min.
(6.11)
2
i
j
A megoldást a Lagrange-egyenletek adják: r −r ∂L = −c ∑ ( dij − d 'ij ) il jl ∂ril d 'ij j
..
(6.12)
Ennek az egyenletrendszernek már l = 2 esetében sincs analitikus megoldása. Numerikus megoldást azonban könnyen adhatunk ha visszatekintünk a 3.2. fejezetben ismertetett gradiensmódszerekre és a (3.3) megoldásra. A (6.8) példáknál maradva induljunk ki a (6.13) lehetséges indulókoordináta-mátrixból. Három lehetséges λ érték függvényében vizsgáltuk a gradiensmódszer teljesítményét, éspedig λ = 0,34, λ = 0,15, és λ = 0,01. 0 0 R 0 = 1 0 0 1
(6.13)
Ebbõl kiszámítható az aktuális távolság mátrix és az összes hiba is, amely L = 0,17. A legnagyobb λ érték esetén az eljárás divergált (6.4. ábra), a középsõ érték esetén gyorsan konvergált (6.5. ábra), végül a legkisebb érték esetén lassan konvergált (6.6. ábra). 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0
1,5
2
1
2
1,5 1
0,5
0,5
0 –1
0 0
0,5
1
–1
-0,5
0
2 1,5 1 0,5 0 –0,5 0 –1 –1,5
3
1
1
2
-0,5
0
1
–2
2
–1
7
2
6.4. ábra. Divergencia
1
1
1
1
0,8
2
0,8
1
3
0,8
0,8
0,6
0,6
0,6
0,6
0,4
0,4
0,4
0,4
0,2
0,2
0,2
0,2
0
0,5
1
0
0
0
0
0
0,5
1
0
0,5
6.5. ábra. Gyors konvergencia
106
7
1
0
0,5
1
1,2
1,2 1 0,8 0,6 0,4 0,2 0
1
1,2 1 0,8 0,6 0,4 0,2 0
2
1 0,8 0,6 0,4 0,2 0
0
0,5
1
1,5
0
0,5
1
1,5
1
3
7
0,8 0,6 0,4 0,2 0
0
0,5
1
1,5
0
0,5
1
6.6. ábra. Lassú konvergencia
A 6.7. ábrán a konvergenciasebességek láthatók, ahol a függõleges tengelyen L értékei láthatók logaritmikusan skálázva. Ennél a feladatnál biztosak lehetünk az optimum megtalálásában, hiszen L végsõ értéke zérus lett. Jóval nagyobb szabadságfokú problémákon ellenõriztük a gradiensmódszert, és azt tapasztaltuk, hogy bár a konvergencia igen lassú lehet, az optimális L = 0 értéket mindig elérte. Ekkor visszatértünk az eredeti problémához. Egyetlen nehézséget a megfelelõ λ megtalálása jelentette. Úgy módosítottuk az algoritmust, hogy minden iterációban megvizsgáltuk, hogyan változott L értéke. Divergenciára utaló jel esetén csökkentettük, lassuló konvergencia esetén pedig növeltük λ értékét. Ennek ellenére a számítások közel egy hetet vettek igénybe, de ezen nem csodálkozhatunk, hiszen a 3-dimenziós probléma esetén a szabad változók száma közel másfél millió volt! 100 10
Divergencia
1 Lassú konvergencia 0,1 0,01
Gyors konvergencia
0,001 0,0001
6.7. ábra. L értékei az iterációk során
A koordináták induló értékei véletlen értékbõl indultak 100 és 100 között. Így az indulás egy 200 egység oldalú egyenletes sûrûségû kocka volt. Indításkor L értéke 1011 nagyságrendû volt, az algoritmus leállásánál már csak 106. Ami azt jelenti, hogy élenként kevesebb mint 1 egység hibát vétettünk. Ezek alapján elfogadtuk, hogy sikerült egy, a gráfot jól reprezentáló koordináta mátrixot létrehoznunk. Végül a csomópontokat a háromdimenziós térben ábrázoltuk. Az eredmény roppant érdekes és meglepõ volt. A kezdeti egyenletes sûrûségû kockából egy olyan gömb lett, amely a gömbközéppontban rendkívül sûrû, majd az 5 egység rádiuszig fokozatosan csökkenõ sûrûségû, aztán az 5 és 15 egységnyi rádiusz között megint magasabb sûrûségû, végül a 100 rádiuszig exponenciálisan lecsengõ sûrûségû (6.8. ábra).
107
6.8. ábra. Ügyfélsûrûség a gömbközépponttól mért távolság (rádiusz) függvényében
Sikerült tehát megjelenítenünk egy igen sok ügyfélbõl álló kisvilágstruktúrát. Ezek után számos megfigyelést és elemzést hajtottunk végre, például megállapítottuk, hogy a gömb közepén elhelyezkedõ ügyfelek a legaktívabbak, a szélén szereplõ ügyfelek pedig a legpasszívabbak. Egy információ (pl. új akció) elterjedésének a legérzékenyebb területe az 5-15 rádiuszig esõ sáv bizonyult.56
6.3. Gyakorlati alkalmazás A kommunikációs gráfstruktúrákat számos közgazdasági (vállalati) elemzés és kutatás során sikerült alkalmazni. Az egyik legérdekesebb ilyen alkalmazás azt kutatta, hogy hogyan terjed el egy bizonyos információ vagy hatás az ügyfelek között, és kik azok, akik egy kezdõ információt a leghatékonyabb módon szét tudnak teríteni a társaságban. Ez a módszer nagyon hasonlít a fertõzéselmélettel foglalkozó populációdinamikai alkalmazásokhoz. Az alkalmazás bemutatásához a 6.2. fejezetben bemutatott példát folytatjuk. Tegyük fel, hogy arra vagyunk kíváncsiak, hogyan távoznak az ügyfelek a vállalattól. Feltételezzük azt, hogy az egymással szoros kapcsolatban állók közül ha egy távozik, akkor a többiek távozási valószínûsége megnõ. Ezt a hipotézist elemzések segítségével (nem utolsósorban a megjelenítési technika bevezetésével) igazoltuk. Ezután arra volt szükség, hogy a meghatározott gráfon definiáljunk egy fertõzési dinamikát, azaz egy olyan mechanizmust, amely megadja, hogy egy fertõzött (távozó) ügyfél hogyan képes másokat is megfertõzni (távozásra bírni). Az általunk használt dinamika sztochasztikus volt, mégpedig úgy mûködött, hogy minden egyes periódusban minden fertõzõ ügyfél p valószínûséggel továbbadta minden vele kapcsolatban lévõ személynek a fertõzést. Ez a valószínûség annál magasabb, minél szorosabb a kontaktus a két ügyfél között. A periódusok addig folytatódnak, ameddig a teljes sokaság meg nem fertõzõdik. (Egy összefüggõ gráfban p > 0 esetén ez véges idõn belül realizálódik.) Példánkban a sokcsúcsú összefüggõ gráffal dolgoztunk. Természetesen kérdés még az, hogy kezdetben kik fertõzöttek. Feladatunk az volt, hogy ha feltesszük, hogy induló esetben az ügyfelek h-ad része fertõzött, akkor kik azok az ügyfelek, akik a legrövidebb idõ alatt képesek megfertõzni az egész csoportot, 56
108
Gráfok többdimenziós ábrázolásával kapcsolatban lásd pl. Munzner 1997.
avagy egy meghatározott t idõn belül a legtöbb fertõzést okozzák. A vállalat számára ezek az ügyfelek különlegesen fontosak. Ha a vállalat célja az ügyfélmegtartás, akkor ezeket az ügyfeleket kell leginkább lojalitásra bírni. Ha egy új termék vagy szolgáltatás bevezetése a cél, akkor ezeket az ügyfeleket érdemes leghamarabb informálni és meggyõzni, a többi már a maga útján terjed. Mindkét esetben feltételezhetõ, hogy az adott célkitûzés megvalósításához a vállalat az ügyfeleinek h-ad részének elérésére elegendõ költségvetéssel rendelkezik. A továbbiakban feltettük, hogy h = 0,01, azaz kezdetben mindössze 5000 fertõzõ ügyfelünk van. A minimális fertõzési valószínûség 1%, a maximális 25% volt. (Ez persze azt jelenti, ha egy ügyfélnek 2 nagyon szoros kapcsolata van 2 fertõzöttel, annak az ügyfélnek a fertõzõdési valószínûsége 44%.) Számos véletlen kiválasztás mellett végeztünk futtatásokat, amelybõl az derült ki, hogy egy kritikus szintig lassan emelkedik a fertõzöttek száma, majd e szint felett hirtelen megugrik az arány, és rendkívül rövid idõ alatt majdnem mindenki megfertõzõdik. Az utolsó néhány fertõzés megint elhúzódik egy kicsit. (A görbe alakja természetesen nagyon erõsen függ h és p értékeitõl, ezen a gráfon azonban ez a terjedési folyamat általánosnak mondható. Részletesen azonban csak a fenti értékekkel számoltunk.) A feladat tehát az, hogy találjuk meg azt az 5000 ügyfelet, akik a legrövidebb idõ alatt képesek megfertõzni az ügyfelek 90%-át. Ez nyilvánvalóan egy kombinatorikus probléma, hiszen egy ügyfél az induló fertõzöttek között vagy szerepel, vagy nem. A teljes leszámláláshoz összesen több mint 1020000 lehetséges esetet kellene megvizsgálni, ráadásul a dinamika sztochasztikusságából fakadóan nem is elegendõ egyetlen futtatás. Erre nem vállalkoztunk, viszont a 3.3. fejezet alapján bizalommal fordulhattunk a genetikus algoritmushoz. A megvalósítást most nem részletezzük, hiszen a 3.3 fejezet alapján a módszert könnyen alkalmazni lehet erre a problémára. Az eredmények igen érdekesen alakultak. Kiderült, hogy a megfelelõ 5000 ügyfél kiválasztásával fele annyi idõ alatt terjed el a fertõzés, mint a véletlen kijelölés esetében. A 6.9. ábrán szemléltetjük az elmondottakat. 500 000 400 000 Optimális indítás 300 000 200 000
100 000 Véletlen futtatások 29
27
25
23
21
19
17
15
13
11
9
7
5
3
1
0
6.9. ábra. A fertõzõdés elterjedése
109
6.4. Kommunikációs struktúrák és az egyensúlyelmélet A 6.2. fejezetben empirikusan igazoltuk a kisvilágstruktúra megjelenését egy gazdasági rendszerben, a 6.3. fejezetben pedig bemutattuk, hogy hogyan lehet ezeket a tapasztalatokat a korábban ismertetett eszköztár segítségével aktuális vállalati, gazdasági problémák megoldásához alkalmazni. Felmerül a kérdés, hogy van-e lehetõség arra, hogy ezt az igen összetett modellezési módszertant fel lehessen használni elméleti közgazdaságtani problémák kezelésére. Valójában az általános egyensúlyelméletben is felhasználtunk gráfstruktúrákat. A mindent tudó árverezõ-kikiáltó modell kommunikációs szempontból egy csillagstruktúrát alkot, ahol a kikiáltóval mindenki kapcsolatban áll, egymással pedig senki. Ennek ellentéte a koalíciókba szervezõdõ játékelméleti modell, ahol mindenki mindenkivel kapcsolatban áll. A témáról jó áttekintést ad Kirman 1999. Ebbõl kiderül, hogy mi a gond azokkal a modellekkel, ahol az információ egyedüli közvetítõje az ár, ugyanakkor miért nem megfelelõ a játékelméleti módszertan sem, amely ugyan lehetõséget biztosít a részletesebb információáramlásnak (csereszándék, kommunikáció, tanulás), de feltételezi, hogy minden szereplõ minden részletet ismer a többi szereplõ cselekvésérõl, és ezt felhasználja döntései meghozatalakor. Kirman (1999) bemutatja, hogy a kilencvenes évektõl megjelennek olyan modellek, amelyek képesek bonyolultabb kommunikációs struktúrákat figyelembe venni, sõt empirikus megfigyelések támasztják alá ezeket az észrevételeket. (Lásd részletesen Hérdle és Kirman (1994) marseille-i halpiac mûködésrõl írt tanulmányát.) Ezek a gráfreprezentációk gyakorlatilag megegyeznek a fejezetben ismertetett rácsgráf- és véletlengráf-struktúrákkal. Ezzel a két struktúrával azonban nagyon meglepõ elméleti eredményeket nem lehetett elérni. Ennek az az oka, hogy a rácsgráf-struktúra, szabályossága miatt, eleve magában hordozza az egyáltalán megvalósulható állapotokat. A véletlen gráfok számos érdekes jelenség bemutatására voltak képesek, de túlságosan érzékenyen viselkedtek. Kisvilágstruktúrákkal eddig nem folytak kísérletek. Úgy érezzük, hogy számos egyensúly-elméleti kérdés megválaszolásában segíthet az, ha meg tudjuk valósítani ugyanannak a kísérletnek (modellnek) a rácsgráf, kisvilággráf és véletlen gráf kommunikáció reprezentációját. A következõ fejezetben ezért visszatérünk pénzelméleti modellünkhöz, a KiyotakiWrightmodellhez.
6.5. Összefoglalás Ebben a fejezetben megmutattuk, hogy a sokszereplõs közgazdasági modellek egyik igen fontos (gyakran egyedüli sztochasztikát tartalmazó) eleme a kommunikációs struktúra. Ez a legtöbb modell esetében a véletlen találkozások lehetõségét jelenti, ugyanakkor nem nehéz olyan modelleket készíteni, amelyekben számos interakció valósulhat meg a szereplõk között (csere, termelés, tanulás stb.), és ezekhez mind különbözõ kommunikációs gráf tartozhat. Bemutattunk három elképzelhetõ és viselkedésében különbözõ struktúrát (gráfot), a rácsgráfokat, a véletlen gráfokat és a kisvilággráfokat. Közgazdasági, biológiai, társadalmi modelleket elemeztünk, és megállapítottuk, hogy a kisvilágstruktúra megvalósulása elképzelhetõ, majd egy valós közgazdasági alkalmazás segítségével beláttuk, hogy egy ilyen struktúra gyökeresen megváltoztathatja az adott modell minõségi viselkedését. Feltételeztük azt, hogy ehhez hasonló minõségi jellegû változást olyan elméleti közgazdasági modellekben is létre tudunk hozni, mint a KiyotakiWright-modell. 110
7. A KISVILÁGOK PÉNZMODELLJE
Ebben a fejezetben az eddig ismertetett összes módszertani és modellezési eszközeinket és eredményeinket felhasználjuk. Keretrendszerünk a szimulációs környezet lesz, analitikus számításokat most egyáltalán nem végzünk. Heterogén gazdasági szereplõk világát vizsgáljuk, ahol a szereplõk viselkedését a 3. fejezetben megismert evolúciós módszerek szabályozzák. Modellünk az 5. fejezetben megismert KiyotakiWright-modell, ennek is két verziója, a háromjószágos A modell és az ötjószágos kiterjesztett verzió. A szereplõk kommunikációstruktúráját a 6. fejezet gráfreprezentációi alapján három különbözõ eset mellett vizsgáljuk, rácsgráf, véletlengráf- és kisvilággráf-struktúra mellett. A fejezet célja, hogy bemutassa, milyen minõségi változások adódhatnak abból, ha megváltozik a szereplõk közti kommunikációs szabály. Ugyanakkor a KiyotakiWrightmodell ilyen módszerekkel történõ megoldása egyszersmind elõrevetíti annak a lehetõségét, hogy általánosabb modelleket vizsgáljunk, és olyan társadalmi és gazdasági jelenségeket legyünk képesek magyarázni, amelyek eddig komoly nehézséget okoztak (árigazodás, kereskedelem kialakulása, monopóliumok, pénz megjelenése stb). A fejezet felépítése a következõ. Az elsõ alfejezetben röviden bemutatjuk, hogy milyen módosításokat végeztünk az eredeti modellhez képest, és milyen paraméterbeállításokkal fogjuk végezni a szimulációt. A második alfejezetben olyan módszereket ismertetünk, amelyek segítségével numerikus kísérletekhez lehet adott paraméterekkel rendelkezõ kisvilágstruktúrájú gráfokat generálni. Ez azért nagyon fontos, mert az elõzõ fejezetben megmutattuk, hogy léteznek kisvilágstruktúrák, de konstruktív módszert nem adtunk az elõállításukra. A fejezetnek ez az alpontja jól alkalmazható bármilyen más modellezés esetén, amikor kisvilággráfot kell elõállítani, de fontos megjegyeznünk, hogy az alfejezet rövidsége miatt nincs lehetõségünk az eljárások részletes tárgyalására. Az utolsó alfejezetben futtatásokat hajtunk végre, és értelmezzük az eredményeket.
7.1. A modell Két modellt vizsgálunk, a 3-jószágos eredeti KiyotakiWright-modellt és az 5-jószágos kiterjesztést. A modelleket számos tekintetben nem változtattuk, így az analitikus értékek és az 5. fejezet numerikus megoldásai viszonyítási alapot jelenthetnek. A legfontosabb eltérést a modellek kommunikáció struktúrája jelenti. 7.1. Definíció: A Kiyotaki–Wright-modell szereplõinek kommunikációstruktúráját egy G gráf segítségével határozzuk meg. Minden szereplõ (típustól függetlenül) egy csomópontnak felel meg a G gráfban. A gráf élei lehetséges találkozási irányokat jelentenek, azaz ha egy i és egy j szereplõ között van él, akkor a véletlen találkozások során a két szereplõ találkozhat egymással, ha nincs, akkor pedig nem. 111
A kommunikációs gráfra megkötéseket tettünk, mégpedig irányítatlanságot, súlyozatlanságot, egyszerûséget és összefüggõséget követeltünk meg. Természetesen lehetõség van ezek feloldására, sõt igen érdekes kutatási irány a súlyozott gráf vizsgálata, ahol a súlyok ráadásul változhatnak a periódusok alatt.57 Feltételezzük, hogy a megadott gráf a szimuláció során nem változik. Figyelembe véve a megkötéseket az 5. fejezetben vizsgált modellek kommunikációs gráfjai mind teljes gráfok voltak.58 A találkozások kialakításánál felmerül a kérdés, hogy mi történik azzal a szereplõvel, aki egy adott periódusban nem tud senkivel sem találkozni, mert az összes lehetséges partneréhez már hozzárendeltünk valakit. Ez a probléma akkor jelentkezik, ha az összes szereplõ számához képest (n) az átlagos kapcsolatok száma, azaz a gráf foka (k) relatíve kicsi. A problémát úgy kezeltük, hogy ebben az esetben az adott szereplõ nem találkozik senkivel, ugyanakkor a raktározási költség kifizetése alól nem mentesül. Ennek ellenére arra törekedtünk, hogy olyan paraméterértékeket állítsunk be, ahol a „kimaradásnak” kicsi az esélye. (Megjegyezzük, hogy az eredeti modell esetén is felmerül ez a probléma, ha a szereplõk száma páratlan.) A korlátozott véletlen találkozások generálásához a 2.5. fejezetben ismertetett eljárást használjuk. A másik lényeges változtatás az volt, hogy az 5.1. definícióban ugyan részleteztük, hogy egy szereplõ u hasznossága a fogyasztás U hasznának és a termelt jószág D elõállítási költségének különbsége, de a késõbbiekben mindig csak u-ról beszéltünk. Ugyanakkor vegyük észre, hogy ha egy szereplõ nem a saját jószágát fogyasztja, akkor u értéke nem zérus, hanem –D. Vegyük figyelembe azt is, hogy van olyan D érték, amely mellett egy szereplõnek érdemes elfogyasztani a nemkívánatos jószágot azért, hogy az általa termelt alacsony raktározási költségû vagy jó piaci megítélésû termékkel rendelkezzen. Sõt, van olyan kommunikációstruktúra és diszkonttényezõ, amely mellett nincs olyan nagy (véges) D termelési költség, hogy egy szereplõnek ne érje meg a nemkívánatos terméket elfogyasztani. Itt ismételten az a kérdés, hogy egy szereplõ elegendõen sok és különbözõ típusú szereplõvel képes-e találkozni. Ezt általában megköveteltük, de nem csodálkozhatunk, ha egy-egy szereplõre ilyen látszólag ellentmondó eredmények jönnek ki. Nézzük, milyen gráfokkal végeztük a szimulációt. Mivel nagyon sok futtatást végeztünk, ezért korlátoznunk kellett a szereplõk számát. Mindkét modellben egy típust 100 szereplõ képviselt, ezért az elsõ modellben n = 300, a másodikban n = 500. Az összefüggõség biztosításának minimális k értéke 2, maximális pedig n 1. A két szélsõséges érték szélsõséges megoldásokat ad, mivel k = 2 esetén igen korlátozott a cserelehetõség, k = n – 1 mellett pedig az eredeti modellt kapjuk vissza. Kíváncsiak voltunk azonban az eredményekre k függvényében. Természetesen a legfontosabb kérdés az volt, hogy azonos n és k mellett lesz-e különbség a rácsgráfok, a véletlen gráfok és a kisvilággráfok között. Továbbmenve, a 7.2. fejezetbõl ki fog derülni, hogy az ezek közötti átmenetet is modellezni tudtuk. Fontos megjegyezni azt, hogy a gráfok kialakításánál a csomópontokat a szereplõtípusoknak megfelelõ sorrendben hagytuk. Azaz egy gyûrû esetén (d = 1, k = 2) elõször az 1. típusú szereplõk vannak összekötve, majd az utolsó 1. típusú szereplõ 50% eséllyel
57 Egy ilyen modell közgazdasági tartalma az, hogy azok között a szereplõk között, akik sikeresen képesek egymással kereskedni, szoros kommunikációs kapcsolat alakul ki, míg a hosszú távon sikertelen cserepartnerekkel a kapcsolat gyengül, megszûnik. Tovább bonyolódik a helyzet, ha a kapcsolatok kialakítását szintén a szereplõk irányíthatják, tanulják. 58 Ne tévesszen meg bennünket, hogy az egyensúlyban nem minden szereplõ kereskedik egymással. Ettõl a találkozás lehetõsége a kommunikáció még fennáll.
112
találkozhat az elsõ 2. típusú szereplõvel, stb. Rácsgráfok esetén ez igen korlátozott cserélési lehetõségekhez vezet, de ha nem élünk ezzel a szabályossággal, hanem véletlenszerûen számozzuk a szereplõket, akkor nem lett volna drasztikus különbség a rácsgráf- és a véletlengráf-struktúra között. Végül a szereplõk a megerõsítéses tanulás segítségével optimalizálták cselekvéseiket. A döntési fa és a tiszta genetikus algoritmus itt azért nem mûködik, mert az azonos típusú szereplõk számára nem biztos, hogy azonos stratégia optimális a kommunikációstruktúra miatt.
7.2. Kisvilágstruktúra-alkotás Két algoritmust mutatunk be a kisvilág típusú gráfok elõállításához. Mindkét algoritmusnak van egy szabad paramétere, az elsõnek α, a másodiknak β. Mindkét modell esetében a paramétereknek csupán egy kis szakaszában adódik kisvilágstruktúra. Ezeket az értékeket kell meghatároznunk. Mivel a struktúra sztochasztikusan áll elõ, ezért a késõbbi reprodukcióknál minden esetben ellenõriztük a kisvilág tulajdonságot. A most ismertetésre kerülõ eljárásokból származó gráfokat érdemes részletesen megvizsgálni, elemezni és a két különbözõ modell eltéréseit megállapítani. Erre most nem vállalkozunk, sõt a szakirodalomból sem ismerünk kellõen részletes áttekintést. A KiyotakiWright-modell kommunikációstruktúrájának vizsgálatához azonban elegendõek lesznek azok a megállapítások, amelyeket ebben az alfejezetben teszünk. α-gráfok. Legyen adott n és k. Feladat egy olyan irányítatlan, súlyozatlan, egyszerû gráf generálása, amely a megadott paraméterekkel rendelkezik. Az eljárás a következõ: 1. Válasszunk ki véletlenszerûen egy i csomópontot. 2. Minden más j csomópontra számítsuk ki az Rij értéket a (7.1)-nek megfelelõen, kiegészítve azzal a feltétellel, hogy Rij = 0, ha i és j már össze vannak kötve. 3. Normáljuk le Rij változót, azaz Pij = Rij / Σl≠i Ril. Legyen tehát Pij az a valószínûség, amellyel ebben a periódusban i csomópontot j-vel összekötjük. 4. A 2.6. tétel segítségével határozzuk meg azt a j* csomópontot, amellyel i-t összekötjük, és kössük õket össze. 5. Folytassuk addig, amíg a kívánt M = n⋅ k / 2 értéket el nem értük. 1, α m Rij = ij (1 − p ) + p, k p,
mij ≥ k , k > mij > 0,
(7.1)
mij = 0,
ahol Rij: két csomópont közötti összeköttetés súlya (zérus, ha össze vannak kötve), mij: i és j szomszédjainak összege, k: a gráf átlagos foka, p: két tetszõleges csomópont közötti él meglétének valószínûsége, α: generálási paraméter, 0 < α < ∞. Az eljárásnál egyedül arra kell vigyáznunk, hogy az 1. pontban véletlenszerûen kiválasztott i csomópontot addig nem választhatjuk újra, míg az összes többi j csomópontot 113
egyszer nem választottuk ki indulópontnak. Vizsgáljuk meg, hogy milyen struktúrák adódhatnak α változtatásával. Általánosságban elmondható, hogy különbözõ n és k értékek esetén nagyon eltérõ változatokat kaphatunk. Mostani alkalmazásunk során azonban olyan gráfokat keresünk, amelyeknél nagy valószínûséggel garantálható az összefüggõség, ugyanakkor a gráf ritka, vagyis 1 << k << n. Kezdjük az α = 0 eset vizsgálatával. Ekkor egy már fennálló összeköttetés (struktúra) nagyon erõsen befolyásolja a struktúra további alakulását. Ennek következtében ha az induló gráfnak egyetlen éle sincs, nagy valószínûséggel α kis értéke esetén nem kapunk összefüggõ gráfot. Számos numerikus kísérletet végezve azt tapasztaltuk, hogy például n = 500, k = 10 esetén α < 5 mellett nem kapunk összefüggõ gráfot. Mivel nem összefüggõ gráfokat összefüggõ gráfokkal összehasonlítani igen nehéz, ezért érdemes úgy módosítani az eljárást, hogy mindenképpen garantálni tudjuk az összefüggõséget. Ezt két módon tehetjük meg. Egyrészt elképzelhetõ, hogy az eljárás után meghatározzuk azt a minimális számú élösszeköttetést, amely összefüggõvé tenné a gráfot, és véletlenszerûen kiválasztunk ugyanennyi felesleges, tehát az összefüggõséget nem befolyásoló élt. Ezeket megcserélve összefüggõ gráfot kapunk. Ez egy nagy gráf esetén roppant idõigényes eljárás. A másik lehetõség, hogy eleve egy összefüggõ állapotból indulunk. Fontos, hogy ez az alapállapot úgy legyen összefüggõ, hogy a minimális k fokú legyen, ugyanakkor ne legyen benne megkülönböztetett szerepû csomópont. Ennek egyetlen gráf, a gyûrû felel meg.59 (Ami nem más, mint egy d = 1, k = 2 típusú rácsgráf.) Nézzük most a másik szélsõséges esetet, amikor α = ∞. Ekkor nyilván Pij = p (ha nincs i és j összekötve), amibõl az következik, hogy így egy G(n,p) véletlen gráfot kapunk. Az összefüggõség biztosításához nyilván nem kell az induló állapot, hiszen elegendõen nagy k esetén ez biztosított (lásd Erdõs–Rényi 1959). Ugyanakkor ha egy gyûrûbõl kiindulva alkalmazzuk α = ∞ mellett az eljárást, akkor a véletlen gráfoktól eltérõ tulajdonságú, majdnem véletlen gráfot kapunk. Annak a valószínûsége ugyanis, hogy egy véletlen gráfban alacsony p mellett megjelenik egy minden pontot összekötõ gyûrû, zérus. Ennek ellenére számos szimulációban meghagytuk a gyûrût kiindulásként, mivel a megfigyelt tulajdonságokat nem befolyásolta nagymértékben. Tapasztalataink azt mutatták, hogy α > 10 esetén már a véletlen gráf tulajdonságok dominálnak. 0,9
25
0,8 20
0,7
γ
0,6 15
0,5
Koncentráltsági koefficiens
0,4
L
10
0,3 0,2 0,1
Karakterisztikus úthossz
5
0
0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
α
7.1. ábra. Az α-gráf jellemzõ statisztikái
59 Megjegyezzük, hogy néha a gyûrû helyett bonyolultabb rácsgráfokból, esetleg fákból is ki lehet indulni. Ezeket nem vizsgáltuk, a továbbiakban mindig gyûrû alapra építkeztünk.
114
Vizsgáljuk most a két szélsõséges érték közötti tartományt! A megfigyelt változók legyenek a karakterisztikus úthossz (L) és a koncentráltsági koefficiens (γ). Minden esetben n = 500, k = 10 és a kiinduló struktúra egy gyûrû volt. Azt tapasztaljuk, hogy létezik egy olyan tartomány, ahol a kialakult gráfra kisvilágstruktúra jellemzõ, hiszen a nagy koncentráltság mellett kicsi a karakterisztikus úthossz (7.1. ábra). β-gráfok. Az α-gráfok segítségével sikerült kisvilágstruktúrát létrehozni. Ugyanakkor az α paraméter változtatásával nem a tökéletes rácsgráf és véletlen gráf világ között mozgunk, mivel mindkettõt erõteljesen befolyásolja az induló struktúra. Olyan módszert kellene megadni, amelynek a két extrém paraméter-beállítása pontosan rácsgráf- és véletlengráf-struktúrát ad, továbbá nem merül fel probléma az összefüggõséggel kapcsolatban. Ezt valósítja meg a következõ eljárás, amely ismét egy G(n,k) gráfot állít elõ: 1. Induljunk ki egy 1 dimenziós rácsgráfból, amelynek mérete a kívánt n, foka pedig a megadott k érték. A következõ lépésekben véletlenszerûen újrakötünk bizonyos pontokat. 2. Minden körben véletlenszerûen választunk egy i csomópontot. Kiválasztjuk hozzá az óramutató járása szerinti elsõ szomszédját (i, i + 1). 3. Ezután β valószínûséggel kitöröljük ezt az (i, i + 1) élt, és helyette létrehozunk egy új (i, j) élt, amire teljesülnie kell, hogy (i, j) még nem létezett, illetve i ≠ j. A feltételnek eleget tevõ j-k közül azonos valószínûséggel választunk. Ugyanakkor 1 – β valószínûséggel nem történik semmi változtatás. 4. Ha minden i csomópontot kiválasztottunk a körben, akkor újrakezdjük az eljárást a 2. ponttól, azzal a különbséggel, hogy immár a második szomszédokat (i, i + 2) vizsgáljuk, stb. 5. Összesen k / 2 kör alatt minden élre sor kerül egyszer, ezzel befejezõdik az eljárás. Figyeljük meg, hogy ezzel a módszerrel β = 0 esetben nem történik semmi, azaz egy tökéletes 1-dimenziós rácsgráfot kapunk n, k paraméterekkel. Ha viszont β = 1, akkor egy véletlen gráfot kapunk. Sajnos ez a véletlen gráf sem teljesen szabályos G(n,p), ugyanis minden csomópont garantáltan rendelkezik legalább k / 2 éllel. Ez azonban nem fogja befolyásolni késõbbi számításainkat, és az általunk vizsgált statisztikák tükrében nem mutatkozik különbség a β = 1 gráf és a véletlen gráfok között. Nézzük, mi a helyzet a 0 < β < 1 értékek esetén. Csakúgy, mint az α-gráfok tanulmányozása során, most is n = 500, k = 10. Az ábrázoláshoz β értékeit logaritmikusan skáláztuk, mivel a lényeges változások β alacsony értékeinél történtek, és β > 0,1 esetén már a véletlen gráf tulajdonságok dominálnak. Ismét találunk egy olyan intervallumot, ahol elmondható, hogy a generált gráf kisvilág tulajdonságú (lásd 7.2. ábra). 0,7
30
0,6
25 Koncentráltsági koefficiens
0,5
γ
20
0,4 15 0,3 10
0,2 Karakterisztikus úthossz
0,1 0
L
0 0
0,0001
5 0,001
β
0,01
0,1
11
0
7.1. ábra. A β-gráf jellemzõ statisztikái
115
7.3. Kísérletek és következtetések Utolsó feladatunk az, hogy a szimulációs módszertan segítségével megvizsgáljuk, okoz-e különbséget a kommunikációs struktúrák bevezetése a modellek viselkedésében. A vizsgálatokat mind az α, mind a β típusú gráfoknál elvégeztük, az eredmények nagyon hasonlók voltak, de a β-gráfok kedvezõ rácsgráf-struktúrája miatt az eredményeket csak a β-gráfokra mutatjuk be. Fontos volt még a k paraméter függvényében való vizsgálódás is, hiszen tudjuk, hogy e tekintetben is két fontos extrém kísérlet között helyezkedünk el. Ugyanis a k = n – 1 eset a teljes gráfot jelenti, azaz az eredeti Kiyotaki–Wright-modellt, a k = M = 0 viszont a csere nélküli gazdaságot, amelyben a kiinduló jószágeloszlás (1/3, 1/3, 1/3) nem változik. A további paramétereket a 7.1. táblázat tartalmazza: 7.1. táblázat. A szimulációs modellek paraméterei
Paraméterek n c1 c2 c3 U D β
Fundamentális 300 0,1 1 20 600 500 0,99
Spekulatív 300 0,1 1 20 1000 500 0,99
A háromjószágos modell esetén azt tapasztaltuk, hogy alacsony k értékekre a modellben nem zajlik le csere. Ahogy azonban növeljük k értékét, úgy lesznek egyre aktívabbak a szereplõk. Amikor rácsgráf-struktúrát választottunk, sokáig nem történt változás, majd k viszonylag magas értékétõl fogva lassan, eljutott a gazdaság az eredeti egyensúlyi állapotba. Fontos azonban azt észrevenni, hogy hiába növeljük k értékét, még a k = n 2 esetén is kismértékû, de szignifikáns különbség tapasztalható. A rácsgráf-struktúra nem volt különösebben érzékeny a két különbözõ típusú egyensúly megtalálására, azaz hasonló sikerrel alakult ki spekulatív megoldás, mint fundamentális. Amikor β = 1, tehát majdnem véletlen gráfokkal modelleztünk, azt tapasztaltuk, hogy már viszonylag alacsony k értékek esetén beindul a gazdaságban a csere. Sok esetben kialakulnak a megfelelõ stratégiák, de arra figyeltünk fel, hogy a kialakuló egyensúlyok igen érzékenyek. Egy-egy újabb szimuláció más-más eredményeket adott a végsõ eloszlást tekintve. Ahogy tovább növeltük k értékét, úgy csökkent egyre jobban ez a véletlen ingadozás. Igen érdekesnek mondható, hogy amíg a fundamentális egyensúlyt könnyen megtalálták a szereplõk viszonylag alacsony k esetén is, addig a spekulatív egyensúly megtalálása kizárólag a teljes gráf esetén (k = n – 1) sikerült. A legérdekesebb eredményeket akkor kaptuk, amikor kisvilággráfokat alkalmaztunk, méghozzá β = 0,005 érték mellett. Alacsony k értékek mellett nem jött létre kereskedés. Egy meghatározott érték után (k = 6) robbanásszerû változás következett be. Hirtelen megindultak a cserék, és a gazdaság könnyedén eljutott a megfelelõ egyensúlyi állapotba. Alig valamivel magasabb k értéknél már az volt a jellemzõ, hogy stabil eloszlások alakulnak ki, nem úgy mint az igen érzékeny véletlengráf-modellek esetében. Jellemzõ volt még az is, hogy nem túl magas k értékek esetén már nemcsak a fundamentális, hanem a spekulatív egyensúlyt is sikerült megtalálni. 116
A tanulás szempontjából is igen érdekes következtetéseket lehet levonni. Általánosságban elmondható, hogy minél több lehetséges cserepartnere akad egy szereplõnek, annál nehezebb a tanulás, azaz annál tovább tart az egyensúlyhoz való konvergencia. Azonos k értékek mellett a leggyorsabban a rácsgráf-struktúra tanult, ezt követte nem nagy lemaradással a kisvilágstruktúra. Végül általában igen hosszú konvergenciával került egyensúlyi állapotba a véletlengráf-modell. Válasszunk ki egy, a ritkaság feltételnek megfelelõ és közgazdaságilag is indokolható fokszámot, legyen k = 10. Hasonlítsuk össze az eredményeket még egyszer. Amennyiben rácsgráf típusú a kommunikációs struktúra, úgy nem alakul ki mindent átfogó cserekereskedelem. Lesznek elszigetelt szereplõk, akik nem képesek a számukra szükséges jószághoz hozzájutni. Így a velük szomszédos szereplõk esélyeit is rontják. Nem alakul ki egyértelmû csereeszköz, és a társadalom összhasznossága is jelentõsen kevesebb, mint az eredeti modell esetén. Kisvilággráf esetén az átlagos 10 cserepartner biztosítja, hogy majdnem mindig az eredeti modellnek megfelelõ eredmény alakuljon ki. Ráadásul könnyebbé válik a tanulás, gyorsabb a konvergencia. Néha azonban elõfordul, hogy egy spekulatív modell keverék eloszlást mutat, ahol egyes szereplõk nem tudják megtanulni a spekulatív viselkedést. (Ebben az esetben inkább az feltételezhetõ, hogy a véletlen partnerek aránya olyan, hogy az adott szereplõnek mégis a fundamentális stratégia a kedvezõbb.) Végül a véletlen gráf típusú kommunikációs struktúra jelentõsen ingadozó, lassan konvergáló és a spekulatív egyensúlyt soha el nem érõ eredményt adott.
117
118
8. ÖSSZEFOGLALÁS
Az értekezés megírásakor kitûzött legfontosabb cél az volt, hogy bemutassuk, hogyan lehet analitikusan nehezen kezelhetõ közgazdasági problémákat és modelleket a szimulációs módszertan segítségével megoldani, illetve a megoldáshoz vezetõ utat megtalálni. A cél megvalósításához a legegyszerûbben járható utat használtuk, azaz az értekezés elsõ részében részleteztük a szimulációs és egyéb numerikusan alkalmazható módszereket, a másik részében pedig kiválasztottunk egy közgazdasági modellt, és megmutattuk a módszertan alkalmazásának lehetõségeit. Annak ellenére, hogy az értekezés legfontosabb érdeme, hogy elsõként tárgyalja a hazai szakirodalomban a modern közgazdasági-szimulációs elméletet, majdnem minden fejezetben található olyan rész, amely a szerzõ önálló új eredménye, és amelyek valamilyen formában publikálásra kerültek, vagy publikálva lesznek. Adott helyen ezeket részleteztük, most az összefoglalásban ezért részletesebb hivatkozás nélkül soroljuk fel. A második fejezet a szimulációs módszertant ismerteti. Ez egy olyan terület, ahol nagyon nehéz új eredményeket produkálni, hiszen magát a módszertant gyakorlatilag a számítógép megjelenése óta alkalmazzák és fejlesztik a legkülönbözõbb tudomány-területek kutatói. Eredmények: a módszertan közgazdasági problémák megoldásához való alkalmazása, a definíciók és a legfontosabb eljárások tisztázása és bemutatása, a normális eloszlás generálásával kapcsolatos gyors konvergenciát adó módszer (2.9. tétel) bizonyítása, a kontrollváltozós módszer kiterjesztett alkalmazása torzítatlanságának bizonyítása (2.12. tétel). A harmadik fejezet az evolúciós módszertanról szól. Ezen a területen nincsenek a szerzõnek saját bizonyításai, viszont a hazai szakirodalomban számos, a témát bemutató és népszerûsítõ publikációja jelent meg. Saját eredménynek tekinthetõ emellett az evolúciós eszközök alkalmazási feltételeinek megadása (ajánlása). A negyedik fejezet a szimulációs és evolúciós módszerek összekapcsolását és közgazdaság elméleti alkalmazását megvalósító ACE-módszertanról szól. Erre a rövid fejezetre azért volt szükség, hogy meggyõzõdjünk ennek a tudományterületnek az újdonságáról, valamint a nemzetközi közgazdasági irányzatok között betöltött szerepérõl. Az ötödik fejezettel a KiyotakiWright-modell bemutatása található. Saját eredmények: a fundamentális stratégiákról állított sejtés (5.1. sejtés), a döntési fa módszer kidolgozása a KiyotakiWright-modell szereplõi magatartásának optimalizálására, a fundamentális és spekulatív egyensúlyok között elhelyezkedõ kevert egyensúlyi stratégiák numerikus meghatározása, a kiterjesztett KiyotakiWright-modellek egyensúlyi állapotának numerikus meghatározása különbözõ tanulási eljárások alkalmazásával. 119
A hatodik fejezet a gráfelmélet segítségével vizsgálja a sokszereplõs közgazdasági modellek kommunikáció struktúráit. A szerzõ ezen a területen empirikus kutatásokat végzett, illetve szimulációs futtatások segítségével megerõsítette a szakirodalom által ajánlott statisztikai mérõszámokat bizonyos véletlen gráfok esetében. Eredmények: a kisvilág tulajdonság igazolása egy hazai internet-szolgáltató ügyfeleinek gráfján, a nagyméretû gráf n-dimenziós megjelenítését megvalósító algoritmus megadása és az algoritmus helyességének bizonyítása, egy fertõzési probléma megfogalmazása és megoldása nagy méretû gráfokon. Végül a hetedik fejezetben gyakorlatilag felhasználjuk az összes korábbi fejezet állításait és tapasztalatait azért, hogy egy különleges kommunikáció struktúrájú Kiyotaki Wright-típusú közgazdasági modell megoldásait megkapjuk. Ez a fejezet teljes egészében a szerzõ saját eredményének tekinthetõ.
120
IRODALOM
Alchian, A. A. (1950): Uncertainty, evolution, and economic theory. Journal of Political Economy, 58., 211222. Anderson, T. W. (1958): Multivariate Statistical Analysis. Wiley. Avramidis, A. N. Wilson, J. R. (1996): Integrated Variance Reduction Strategies for Simulation. Operation Research, Vol. 44. No. 2., 327346. Axelrod, R. (1997a): Advancing the Art of Simulation in the Social Sciences. In: Conte, R. Hegselmann, R.Terna, P. (eds): Simulating Social Phenomena. Springer, Berlin, 2140. Axelrod, R. (1997b): The complexity of cooperation: agent-based models of competition and collaboration. Princeton University Press, New Jersey. Baker, J. E. (1985): Adaptive selection methods for genetic algorithms. Proc. 1st Int. Conf. on Genetic Algorithms and their Applications, Lawrence Erlbaum Associates, Hillsdale, NJ. Balla, K.Benedek, G. (1999): Riccati Extended Forms. 6th Colloquium on the Qualitative Theory of Differential Equations, aug. Barto, A. G.Sutton, R. S. (1998): Reinforcement Learning: An Introduction. MIT Press, Cambridge, MA. Basci, E. (1999): Learning by imitation. Journal of Economic Dynamics and Control, 23., 1569 1585. Berry, M. J. A.Linoff, G. S. (2000): Mastering Data Mining. John Wiley & Son, Inc., New York. Benedek G., (1998): Opcióárazás tranzakciós költségek mellett. Diplomamunka, Budapesti Közgazdaságtudományi Egyetem, Budapest. Benedek G. (1999a): Opcióárazás numerikus módszerekkel. Közgazdasági Szemle, október, 905 929. Benedek G. (1999b): Mesterséges intelligencia az üzleti életben Marketingakciók hatékonyságának vizsgálata statisztikai és Data Mining módszerekkel. Vezetéstudomány, november. Benedek G. (2000): Evolúciós alkalmazások elõrejelzési modellekben. I., Közgazdasági Szemle, december, 9881007. Benedek G. (2001): Evolúciós alkalmazások elõrejelzési modellekben. II., Közgazdasági Szemle, január, 1830. Benedek G.Megyeri K. (2000): Egy dinamikus pénzmodell. Gazdaságmodellezõ Konferencia. Benedek G.Molnár I. (1996): Sorban állási rendszerek vizsgálata szimulációval. Multimédia CD-Rom. Benedek G.Kóbor Á.Pataki A. (2001): Multivariate Eliptic VaR, elkészülõben. (Rövidebb, magyar nyelvû változat: Benedek G.Kóbor Á.Pataki A. (2002): A kapcsolatszorosság mérése mdimenziós kopulákkal és értékpapírportfólió-alkalmazások. Közgazdasági Szemle, február, 105 125.) Bigus, J. P. (1996): Data mining with neural networks: solving business problems. McGraw-Hill, New York. Black, F.Scholes, M. (1973): The Pricing of Options and Corporate Liabilities. Journal of Political Economy, 81., 637654. Blum, A. L.Rivest, R. L. (1992): Training a 3node neural network is NP-complete. Neural Networks, 5 (1), 117127.
121
Bollobás, B. (1985): Random Graphs. Academic, London. Boyle, P.Broadie, M.Glasserman, P. (1997): Monte Carlo methods for security pricing. Journal of Economic Dynamics and Control, Vol. 21., 12671321. Bratley, P.Fox, B.Schrage, L. (1987): A Guide to Simulation. Second Edition, Springer Verlag, New York. Cho, H. J.Cho, Y. K. (1997): DEVS-C++ Reference Guide. Department of Electrical and Computer Engineering, University of Arizona. Cox, J.Ross, S. (1976): The Valuation of Options for Alternative Stochastic Processes. Journal of Financial Economics, Vol. 3. 145166. Cox, J.Rubinstein, M.Ross, S. (1979): Option Pricing: A Simplified Approach. Journal of Financial Economics, Vol. 7., 229263. Cybenko, G. (1988): Continues valued neural networks with two hidden layers are sufficient. Technical report, Department of Computer Science, Tufts University, Medford, Massachusetts. Cybenko, G. (1989): Approximation by superpositions of a sigmoid function. Mathematics of Controls, Signals, and Systems, 2., 303314. Davis, L. (1991): Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York, NY. Duffy, J. (2001): Learning to spekulate: Experiments with artificial and real agents. Journal of Economic Dynamics and Control, 25., 295319. Eaton, M.Griffith, N. (2000): Artificial Intelligence. Course Notes, University of Limerick. Erdõs, P.Rényi, A. (1959): On random graphs. Publicationes Mathematicae, Debrecen. Fletcher, R. (1980): Practical Methods of Optimization. Wiley, New York. Fogarty, T. C., (1989): Varying the probability of mutation in the genetic algorithms. Proc. 3rd Int. Conf. on Genetic Algorithms and their Applications, George Mason University. Fu, L. (1994): Neural networks in computer intelligence. McGraw-Hill, Inc., USA. Grefenstette, J. J. (1986): Optimisation of control parameters for genetic algorithms. IEEE Trans. On Systems, Man and Cybernetics, Vol. SMC-16, No. 1. Grossman, J. W.Ion, P. D. F. (1995): On a portion of the well-known collaboration graph. Congressus Numeratium, 108. Hahn F. H. (1965): On Some Problems of Providing the Existence of an Equilibrium in a Monetary Economy. In: Clower (ed.): Monetary Theory. Penguin Modern Economics Readings, 1970. Harmondsworth, Penguin. Hayek, F. A. (1948): Individualism and Economic Order. University of Chicago Press, Chicago. Hebb, D. O. (1949): The Organization of Behavior. Wiley, New York. Hérdle W.Kirman A. (1994): Non classical demand: a modell-free examination of price quantity relation in the Marseille fish market. Journal of Econometrics. Himanen, V. (1998): Neural networks in transport applications. Edited by V. Himanen, Ashgate, Aldershot. Hofstadter, D. R. (1998): Gödel, Escher, Bach: Egybefont Gondolatok Birodalma. Typotex Kiadó, Budapest. Holland, J. H. (1975): Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor, MI. Holland, J. H. (1992): Adaption in Natural and Artificial Systems: An Introductory Analysis with Application to Biology, Control, and Artificial Intelligence. MIT Press, Bradford Books, Cambridge, MA. Holmes, J. N. (1993): Speech synthesis and recognition. Chapman and Hall, London. Huber, M. (1996): Estimating the average shortest path length in a graph. Technical report, Cornell University. Hull, J. C. (1993): Options, Futures, and other Derivative Securities. Second edition, PrenticeHall International, Inc., Engle Wood Cliffs, New Jersey. Hull, J. C.White, A. (1987): The Pricing of Options on Assets with Stochastic Volatilies. The Journal of Finance, July, 281300.
122
Hull, J.White, A. (1988): The Use of the Control Variate Technique in Option Pricing. Journal of Financial and Quantitative Analysis, Vol. 23. No. 3., 237251. Hunyadi L.Vita L. (1991): Statisztika. III. Aula, Budapest. Institute of Electrical an. (1989): Neural network based speech recognition systems. Piscataway, N.J. : I.E.E.E. (Technical tutorial seminar). Jevons, W. S. (1875): Money and the Mechanism of Exchange. London, Appleton. Judd, J. S. (1990): Neural Network Design and the Complexity of Learning. MIT Press, Cambridge, Massachusetts. Kátai I. (1981): Szimulációs módszerek. ELTE Tankönyvkiadó, Budapest. Kehoe T. J.Kiyotaki N.Wright R. (1993): More on money as a medium of exchange. Economic Theory, 3, 297314. Kirman, A. (1999): Some Observations in Interaction in Economics. Working Paper, Institut Universitaire de France, Marseille. Kiyotaki, N.Wright, R. (1989): On money as a medium of exchange. Journal of Political Economy, 97., 924954. Knuth, D. E. (1987a): A számítógép-programozás mûvészete 1.: Alapvetõ algoritmusok. Mûszaki Könyvkiadó, Budapest. Knuth, D. E. (1987b): A számítógép-programozás mûvészete 2.: Szeminumerikus algoritmusok. Mûszaki Könyvkiadó, Budapest. Leader, I. (2001): Friends and Strangers. +Plus, Issue 16., http://pass.maths.org.uk/issue16/features/ ramsey Lehmer, D. H. (1951): 1. Proc. 2nd Symp on Large-Scale Digital Calculating Machinery. Harvard University Press, Cambridge, 141146. Marimon, R.McGrattan, E.Sargent, T. J. (1990): Money as a medium of exchange in an economy with artificially intelligent agents. Journal of Dynamics and Control, 14, 329373. Megyeri K. (2001): A pénz mint általános csereeszköz modellezése. Közgazdasági Szemle. Merton, R. (1973): Theory of Rational Option Pricing. Bell Journal of Economics and Management Science, Vol. 4., 141183. Michalewicz, Z. (1992): Genetic algorithms + Data structures = Evolution programs. Springer Verlag, New York, NY. Minsky, M. L.Papert, S. (1969): Perceptons: An Introduction to Computational Geometry. MIT Press, Cambridge, Massachusetts. Minsky, M. L.Papert, S. (1988): Perceptons: An Introduction to Computational Geometry (expanded edition). MIT Press, Cambridge, Massachusetts. Móczár J. (1980): Indekompozábilitás kiterjesztése a gazdaság lineáris modelljeiben. Szigma, 1 2. sz. Molnár I. (1990): Differenciálegyenletek numerikus megoldásáról. Egyetemi jegyzet, BKE. Móry F. T.Székely G. szerk. (1986): Többváltozós statisztikai analízis. Mûszaki Könyvkiadó, Budapest. Munzner, T. (1997): Laying Out Large Directed Graphs in 3D Hyperbolic Space. Working Paper, Stanford University. http://graphics.stanford.edu/papers/h3/html.nosplit/h3.html Nelson, B. L. (1990): Control Variate Remedies. Operations Research, Vol. 38. No. 6., 974992. Pataki A. (2001): A többváltozós Saphiro-Wilk tesztek viszgálata. PhD disszertáció, BKÁE, Budapest. Pham, D. T.Karaboga, D. (1998): Intelligent optimasation Techniques. Springer Verlag, London. Press, W. H.Teukplsky, S. A.Vetterling, W. T.Flannery, B. P. (1992): Numerical Recipes in C. Cambridge University Press. Quandt, R. (1983): Computational Problems and Methods. In: Griliches, Z.Inriligator, M. (eds): Handbook of Econometrics, North-Holland, Amsterdam. Rényi A. (1973): Valószínûségszámítás. Tankönyvkiadó, Budapest.
123
Rumelhart, D. E.Hinton, G. E.Williams, R. J. (1986): Learning internal representations by error propagation. Parallel Distributed Prcessing: Explorations in the Microstructures of Cognition, Vol. 1., Cambridge, MA: MIT Press, 318362. Russell, S. J.Norvig, P. (2000): Mesterséges intelligencia modern megközelítésben. Panem, Budapest. Sarlós T. (2001): A KiyotakiWright modell. Évfolyam-dolgozat, Budapesti Közgazdaságtudományi és Államigazgatási Egyetem. Schaffer, J. D.Caruana, R. A.Eshelman, L. J.Das, R. (1989): A study of control parameters affecting on-line performance of genetic algorithms for function optimasation. Proc. 3rd Int. Conf. on Genetic Algorithms and their Applications, George Mason University. Schumpeter, J. A. (1942): Capitalism, Socialism, and Democracy. Harper and Row, New York. Sefton, J. A. (2000): A solution method for consumption decisions in a dynamic stochastic general equilibrium model. Journal of Economic Dynamics and Control, 24., 10971119. Simonovits A. (1998): Matematikai módszerek a dinamikus közgazdaságtanban. Közgazdasági és Jogi Könyvkiadó, Budapest. Smith, A. (1937): An Inquiry into the Nature and Causes of the Wealth of Nations. Cannan Edition, American Modern Library Series, New York. Staudinger, S. (1998): Money as a medium of exchange: An analysis with genetic algorithms. Working paper, Technical University, Viena. Tesfatsion, L. (2001): Introduction to the special issue on agent-based computational economics. Journal of Economic Dynamics and Control, 25., 281293. Watts, D. J. (1999): Small Worlds: The Dynamics of Networks between Order and Randomness. Princeton University Press, New Jersey. Whitely, D.Hanson, T. (1989): Optimising neural networks using faster, more accurate genetic search. Proc. 3rd Int. Conf. on Genetic Algorithms and their Applications, George Mason University. Zalai E. (2000): Matematikai közgazdaságtan. KJK-Kerszöv., Budapest.
124
Philosophiae Doctores A sorozatban megjelent kötetek 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
A. O. FRANK: The Philosophy of Virginia Woolf PETÕCZ ÉVA: A nyelvi hiány fogalmának szövegtani értelmezése ANDREA IMREI: Oniromancia – Análisis de símbolos en los cuentos de Julio Cortázar Á. I. FARKAS: Will’s Son and Jake’s Peer – Anthony Burgess’s Joycean Negotiations DÓRA FAIX: Horatio Quiroga como autor implícito FEKETÉNÉ SZAKOS ÉVA: A felnõttek tanulása és oktatása új felfogásban CZETTER IBOLYA: Márai Sándor naplóinak nyelvi világa a retorikai alakzatok tükrében GABRIELLA MENCZEL: Incipit y subtexto en los cuentos de Julio Cortázar y Abelardo Castillo LÁSZLÓ VASAS: Ahondar deleitando: lecturas del Lazarillo de Tormes JUDIT NÉNYEI: Thought Outdanced The Motif of Dancing in Yeats and Joyce TÖRÖK TAMÁS: Zoboralja földrajzi nevei a történeti térképek tükrében ÁGNES CSELIK: El secreto del prisma – La ciudad ausente de Ricardo Piglia JENEY ÉVA: A metafora és az elbeszélés bölcselete – Paul Ricoeur irodalomelmélete MARÍA GERSE: Niveles narrativos en Todo verdor perecerá de Eduardo Mallea DÓRA JANZER CSIKÓS: Four Mighty Ones Are in Every Man The Development of the Fourfold in Blake ZSUZSANNA CSIKÓS: El problema del doble en Cambio del piel de Carlos Fuentes DR. RICHARD J. LANE: Functions of the Derrida Archive: Philosophical Receptions HANSÁGI ÁGNES: Klasszikus korszak kánon ÉVA PÉTERI: Victorian Approaches to Religion as Reflected in the Art of the PreRaphaelites JUHÁSZ LAJOS: A közgazdasági feltételek és az agrárvállalkozások beruházási lehetõségei KATALIN G. KÁLLAY: Going Home Through Seven Paths to Nowhere: Reading Short Stories by Hawthorne, Poe, Melville and James ZOLTÁN SIMON: The Double-Edged Sword: The Technological Sublime in American Novels between 1900 and 1940 F. LASSÚ ZSUZSA: Barátok és barátnõk együtt és egymás ellen RACSMÁNY MIHÁLY: A munkamemória szerepe a megismerésben NÓRA WENSZKY: Secondary Stress in English Words BORS EDIT: Az idõ poétikája az önéletírásban NÁBRÁDY MÁRIA: Az érzelmek a tranzakcióanalitikus szemszögébõl JUDIT KISS-GULYÁS: The Acquisition of English Restrictive Relative Clauses by Hungarian Learners of English 125
29. PÁTROVICS PÉTER: Az aspektus története és tipológiája 30. NÉMETH MIKLÓS: Nyelvjárás, beszélt nyelv és spontán sztenderdizációs törekvések a XVIII. századi szegedi írnoki nyelvváltozatban 31. KATALIN MÓNOS: Learner Strategies of Hungarian Secondary Grammar School Students 32. KENESEI ZSÓFIA: A kapcsolati marketing jelentõsége a kereskedelmi banki tevékenységben 33. HARRO GRABOLLE: Verdun and the Somme 34. BORBÉLY JUDIT: The Reality of the Unreal The city as metaphor in Henry James and his contemporaries 35. STEKLÁCS JÁNOS: Funkcionális analfabetizmus a hipotézisek, tények és számok tükrében 36. RITA HORVÁTH: Never Asking Why BuildOnly Asking Which Tools: Confessional Poetry and the Construction of the Self
126