2.3. A Környezetek természete

Most, hogy már rendelkezünk a racionalitás definíciójával, már majdnem készen állunk arra, hogy racionális ágensek építéséről gondolkodjunk. Először azonban meg kell vizsgálnunk a feladatkörnyezeteket (task environments), amelyek lényegében a „problémák”, amelyekre a racionális ágensek jelentik a „megoldásokat”. Először azt mutatjuk meg, hogyan kell a feladatkörnyezetet meghatározni, több példával illusztrálva a folyamatot. Ezek után megmutatjuk, hogy többféle feladatkörnyezet létezik. A környezet típusa közvetlenül befolyásolja az ágensprogram megfelelő tervezését.

2.3.1. A környezet meghatározása

Az egyszerű porszívóágens racionalitásának vizsgálatakor specifikálnunk kellett egy teljesítménymértéket, a környezetet és az ágens beavatkozóit és érzékelőit. Mindezeket a feladatkörnyezet (task environment) címszó alatt fogjuk egyesíteni. A betűszavakban gondolkodók számára ezt TKBÉTeljesítmény, Környezet, Beavatkozók, Érzékelők (Performance, Environment, Actuators, Sensors) leírásnak hívjuk. Egy ágens tervezése során az első lépésnek mindig a feladatkörnyezet lehető legteljesebb meghatározásának kell lennie.

2.4. ábra - Egy automatizált taxi feladatkörnyezetének TKBÉ-leírása
Egy automatizált taxi feladatkörnyezetének TKBÉ-leírása

A porszívóvilág egyszerű példa volt, vegyünk most egy bonyolultabbat: az automatizált taxisofőr példáját. Ezt a példát fogjuk a fejezet hátralevő részében használni. Ki kell emelnünk, mielőtt az olvasó megrémülne, hogy a teljesen automata taxisofőr jelenleg valamelyest túlmutat a létező technológia lehetőségein. (A 1.4. szakasz - A mesterséges intelligencia jelenlegi helyzete található egy létező sofőr robot leírása, de az „Intelligent Transportation Systems” konferencia legutóbbi kiadványait is érdemes megnézni.) A teljes autóvezetési feladat rendkívül nyitott végű. Nincs határa a lehetségesen felbukkanó körülmények újszerű kombinációinak – egy másik ok arra, hogy ezt válasszuk vizsgálatunk tárgyául. A 2.4. ábra összefoglalja a taxi feladatkörnyezetének TKBÉ-leírását. A következőkben részletesen tárgyaljuk az egyes elemeket.

Elsőként: mi az a teljesítménymérték, amit az automata taxisofőrünk elé állítunk? Elvárt jellemzők a helyes célállomás elérése; az üzemanyag-fogyasztás és az elhasználódás minimalizálása; az út költségének és/vagy idejének minimalizálása; a közlekedési szabályok megszegésének és más vezetők megzavarásának minimalizálása; a biztonság és utaskényelem maximalizálása; a haszon maximalizálása. Nyilvánvalóan ezen célok egy része konfliktusban van egymással, kompromisszumokra lesz szükség.

A következő: mi a taxi vezetési környezete? Minden taxisofőrnek több típusú úttal kell szembenéznie, a vidéki és városi utaktól egészen a tizenkét sávos autópályákig. Az utak más forgalommal, gyalogosokkal, kóbor állatokkal, útkarbantartással, rendőrautókkal, tócsákkal és gödrökkel is rendelkeznek. A taxinak a lehetséges és a jelenlegi utasokkal is kapcsolatban kell állnia. Van továbbá néhány opcionális lehetőség. Lehet, hogy a taxinak Dél-Kaliforniában kell üzemelnie, ahol a hó ritkán jelent problémát, vagy Alaszkában, ahol ritkán nem. Közlekedhet mindig az út jobb oldalán, vagy szeretnénk, hogy elég rugalmas legyen ahhoz, hogy a bal oldalon is vezessen abban az esetben, ha Nagy-Britanniában vagy Japánban akarjuk működtetni. Nyilvánvalóan minél korlátozottabb a környezet, annál egyszerűbb a tervezési probléma.

Az automata taxisofőr rendelkezésére álló beavatkozók lényegében ugyanazok lesznek, amelyek egy emberi vezető számára adottak: a motor vezérlése a gázpedál segítségével, kormányzás és fékezés. Ezek mellett szükséges egy képernyő vagy beszédszintetizátor a kimenet megjelenítéséhez az utasok számára, és valószínűleg valamilyen mód arra, hogy más járművekkel kommunikálhasson, udvariasan vagy másképp.

A vezetési környezetben levő céljai eléréséhez a taxinak tudnia kell, hogy hol van, mi más van az úton, és hogy milyen gyorsan halad. Alapvető érzékelői között lenni kell ezért egy vagy több vezérelhető tv-kamerának, sebességmérőnek és kilométerórának. A jármű helyes irányításához – különösen a kanyarokban – szüksége lesz gyorsulásmérőre, ezenkívül ismernie kell a jármű mechanikai állapotát, így szüksége lesz a szokásos motor- és elektromosrendszer-érzékelők rendszerére is. Lehetnek olyan műszerei is, amelyek nem érhetők el az átlagos emberi sofőrök számára: egy műholdas globális pozicionáló rendszer (GPS), amely megadja a pontos pozícióját egy elektronikus térképen, vagy infravörös- és hangradar-érzékelők más autótól és tárgyaktól való távolságok érzékelésére. Végül szüksége lesz egy mikrofonra vagy billentyűzetre, aminek a segítségével az utasok az úti céljukat megadhatják.

A 2.5. ábrán felvázoltuk az alapvető TKBÉ-elemeket számos további ágenstípusra. További példák a 2.5. feladatban jelennek meg. Egyes olvasóink számára meglepő lehet, hogy az ágenstípusok listájában olyan programokat is szerepeltetünk, amelyek a billentyűzet bemenetének és a karakteres képernyő kimenetének teljesen mesterséges környezetében működnek. „Igen”, mondhatja valaki, „ez nem egy valódi környezet, ugye?”. A tény az, hogy nem a „valódi” és a „mesterséges” környezetek közötti különbségtétel számít, hanem az ágens viselkedése, a környezet keltette érzékelési sorozat, valamint a teljesítménymérték közötti viszony komplexitása. Egyes „valódi” környezetek valójában igen egyszerűek. Például egy robot, amit a futószalagon érkező alkatrészek vizsgálatára terveztek, sok egyszerűsítő feltevéssel élhet: a világítás állandó, a futószalagon csak általa ismert alkatrészek vannak, és csak két cselekvés létezik (elfogad vagy elutasít).

2.5. ábra - Példák ágenstípusokra és TKBÉ-leírásuk
Példák ágenstípusokra és TKBÉ-leírásuk

Ezzel ellentétben bizonyos szoftverágensek (vagy szoftverrobotok, azaz szoftbotok) részletgazdag, korlátok nélküli környezetekben léteznek. Képzeljünk el egy szoftbotot, amelyik egy nagy utasszállító gép szimulátorával repül. A szimulátor egy részletgazdag, komplex környezet, amelyben más repülőgépekkel kapcsolatos és földi műveletek is vannak, és a szoftverágensnek valós időben kell választania az akciók széles választékából. Vagy képzeljünk el egy szoftbotot, amelyet internetes hírforrások figyelésére terveztek, és az érdekes híreket megmutatja az ügyfeleinek. A helyes működéshez szüksége lesz valamilyen természetes nyelv feldolgozási képességre, meg kell tanulnia, hogy melyik ügyfelét mi érdekli, és szüksége lesz a tervei dinamikus megváltoztatására – például amikor az egyik hírforráshoz megszűnik a kapcsolata vagy amikor egy új forrás létesül. Az internet egy olyan környezet, amelynek komplexitása versenyez a fizikai világéval, és amelynek lakói között sok mesterséges ágens van.

2.3.2. A környezetek tulajdonságai

Az MI-ben felmerülő feladatkörnyezetek választéka nyilvánvalóan hatalmas. Mindazonáltal meghatározhatunk viszonylag kevés számú dimenziót, amelyek mentén a feladatkörnyezeteket kategorizálhatjuk. Ezek a dimenziók nagymértékben meghatározzák a helyénvaló ágenstervezést és az ágensimplementációk alaptechnikáinak alkalmazhatóságát. Először felsoroljuk a dimenziókat, azután több feladatkörnyezetet elemzünk az elképzelések bemutatására. Az itt szereplő definíciók informálisak – a későbbi fejezetek sokkal pontosabban fogalmazzák meg a környezeteket, és mindegyik fajtára példákat mutatnak majd.

  • Teljesen megfigyelhető (fully observable) vagy részlegesen megfigyelhető (partially observable). Ha az ágens szenzorai minden pillanatban hozzáférést nyújtanak a környezet teljes állapotához, akkor azt mondjuk, hogy a környezet teljesen megfigyelhető.[22] Egy környezet ténylegesen teljesen megfigyelhető, ha az érzékelők minden olyan aspektusát észlelik, amelyek a cselekvés kiválasztásához relevánsak – a relevancia pedig a teljesítménymértéktől függ. A teljesen megfigyelhető környezetek kényelmesek, mivel az ágensnek nem kell semmilyen belső állapotot nyilvántartania a környezet nyomon követéséhez. Egy környezet lehet részlegesen megfigyelhető a zajos és pontatlan szenzorok miatt, vagy mivel az állapot egyes részei egyszerűen nem szerepelnek a szenzorok adatai között – például egy helyi koszérzékelő szenzorral rendelkező porszívóágens nem tudja megmondani, van-e piszok más négyzetekben, és egy automata taxi nem láthatja, hogy más vezetők mit gondolnak.

  • Determinisztikus (deterministic) vagy sztochasztikus (stochastic). Amennyiben a környezet következő állapotát jelenlegi állapota és az ágens által végrehajtott cselekvés teljesen meghatározza, akkor azt mondjuk, hogy a környezet determinisztikus, egyébként sztochasztikus. Teljesen megfigyelhető, determinisztikus környezetben az ágensnek elvben nem kell a bizonytalansággal törődnie. Amennyiben azonban a környezet részlegesen megfigyelhető, úgy sztochasztikusnak tűnhet. Különösen igaz ez, ha a környezet összetett, nehezen teszi lehetővé nem megfigyelhető aspektusainak követését. Így gyakran jobb az ágens szemszögéből determinisztikusnak vagy sztochasztikusnak tekinteni egy környezetet. A taxivezetés ebben az értelemben nyilvánvalóan sztochasztikus, mivel senki sem tudja megjósolni a forgalmat pontosan, továbbá egy motor minden figyelmeztetés nélkül lerobbanhat, és a kerekek váratlanul kidurranhatnak. A porszívóvilág, ahogy leírtuk, determinisztikus, de egyes variációk tartalmazhatnak sztochasztikus elemeket, például véletlenszerűen megjelenő piszkot vagy megbízhatatlan szívási mechanizmust (2.12. feladat). Ha a környezet más ágensek cselekvéseit leszámítva determinisztikus, akkor azt stratégiainak (strategic) nevezzük.

  • Epizódszerű (episodic) vagy sorozatszerű[23] (sequential). Epizódszerű környezetben az ágens tapasztalata elemi „epizódokra” bontható. Minden egyes epizód az ágens észleléseiből és egy cselekvéséből áll. Nagyon fontos, hogy a következő epizód nem függ az előzőben végrehajtott cselekvésektől. Epizódszerű környezetekben az egyes epizódokban az akció kiválasztása csak az aktuális epizódtól függ. Sok osztályozási feladat epizódszerű. Például az összeszerelő soron levő hibás alkatrészeket észlelő ágens minden egyes döntését az aktuális alkatrész alapján hozza, függetlenül a korábbi döntésektől, továbbá az aktuális döntés nem befolyásolja, hogy a következő alkatrész hibás lesz-e. Másrészt, sorozatszerű környezetekben az aktuális döntés befolyásolhat minden továbbit. A sakk és a taxivezetés sorozatszerű: a rövid távú akciók mindkét esetben hosszú távú következményekkel járhatnak. Az epizódszerű környezetek sokkal egyszerűbbek a sorozatszerűeknél, hiszen az ágensnek nem kell előre gondolkodnia.

  • Statikus (static) vagy dinamikus (dynamic). Ha a környezet megváltozhat, amíg az ágens gondolkodik, akkor azt mondjuk, hogy a környezet az ágens számára dinamikus; egyébként statikus. A statikus környezetekkel egyszerű bánni, mivel az ágensnek nem kell állandóan a világot figyelnie, miközben dönt a cselekvés felől, és nem kell az idő múlásával sem törődnie. Másrészt, a dinamikus környezetek állandóan azt kérdezik az ágenstől, hogy mit akar tenni; ha még nem döntötte el, az annak számít, hogy úgy döntött, hogy nem tesz semmit. Ha a környezet nem változik az idő előrehaladtával, de az ágens teljesítménymértéke igen, akkor azt mondjuk, hogy a környezet szemidinamikus (semidynamic). A taxivezetés nyilvánvalóan dinamikus: a többi autó és a taxi továbbhalad, miközben a vezetési algoritmus azon bizonytalankodik, hogy mit is tegyen. Az órával játszott sakk szemidinamikus. A keresztrejtvények statikusak.

  • Diszkrét (discrete) vagy folytonos (continuous). A diszkrét/folytonos felosztás alkalmazható a környezet állapotára, az időkezelés módjára, az ágens észleléseire, valamint cselekvéseire. Például egy diszkrét állapotú környezet, mint amilyen a sakkjáték, véges számú különálló állapottal rendelkezik. A sakkban szintén diszkrét az akciók és cselekvések halmaza. A taxivezetés folytonos állapotú és idejű probléma: a sebesség, a taxi és más járművek helye folytonos értékek egy tartományát járja végig a folytonos időben. A taxivezetés akciói szintén folytonosak (például kanyarodási szögek stb.). Szigorúan véve a digitális kameráktól érkező bemenet diszkrét, de tipikusan úgy kezeljük, mint amely folyamatosan változó mennyiségeket és helyeket reprezentál.

  • Egyágenses (single agent) vagy többágenses (multiagent). Az egyágenses és többágenses környezetek közötti különbségtétel egyszerűnek tűnhet. Például a keresztrejtvényt megfejtő ágens önmagában nyilvánvalóan egyágenses környezetben van, míg egy sakkozó ágens egy kétágensesben. Vannak azonban kényes kérdések. Először is: leírtuk azt, hogy egy entitás hogyan tekinthető ágensnek, ugyanakkor nem magyaráztuk meg, mely entitások tekintendők ágensnek. Egy A ágensnek (például a taxisofőrnek) egy B objektumot (egy másik járművet) ágensnek kell tekintenie, vagy egyszerűen egy sztochasztikusan viselkedő dolognak, a tengerparti hullámokhoz vagy a szélben szálló falevelekhez hasonlatosan? A választás kulcsa az, hogy vajon B viselkedése legjobban egy A viselkedésétől függő teljesítménymérték maximalizálásával írható-e le. Például a sakkban a B ellenfél saját teljesítménymértékét próbálja maximalizálni, amely – a sakk szabályainak következtében – A teljesítménymértékét minimalizálja. Így a sakk egy versengő (competitive) többágenses környezet. Másrészről, a taxi vezetési környezetben az ütközések elkerülése az összes ágens teljesítménymértékét maximálja, így az részben kooperatív (cooperative) többágenses környezet. Emellett részben versengő is, hiszen például csak egy autó tud egy parkolóhelyet elfoglalni. A többágenses környezetekben felmerülő ágenstervezési problémák gyakran egészen mások, mint egyágenses környezetekben. Többágenses környezetekben például a kommunikáció (communication) gyakran racionális viselkedésként bukkan fel; egyes részlegesen megfigyelhető versengő környezetekben a sztochasztikus viselkedés racionális, hiszen így elkerülhetők a megjósolhatóság csapdái.

Ahogy várható, a legnehezebb a részlegesen megfigyelhető, sztochasztikus, sorozatszerű, dinamikus, folytonos és többágenses eset. Az is kiderül, hogy a valós helyzetek legtöbbje olyan bonyolult, hogy valódi determinisztikusságuk vitatott kérdés; gyakorlati okokból sztochasztikusként kezelendők. A taxivezetés mindezen szempontok szerint nehéz.

A 2.6. ábra ismerős környezetek tulajdonságait sorolja fel. Vegyük észre, hogy a válaszok nem mindig egyértelműek. Például a sakkot teljesen megfigyelhetőnek tüntettük fel; szigorúan véve ez hibás, mivel a rosálásra, menet közbeni ütésre és ismétléses döntetlenre vonatkozó egyes szabályok megkövetelik a játék menetével kapcsolatos adatok megjegyzését, amelyek a táblázat állapotának részeként nem figyelhetők meg. A megfigyelhetőség ezen kivételei persze csekélyek egy taxivezető, egy angol nyelvtanár vagy egy orvosi diagnosztikai rendszerhez képest.

A táblázatban bizonyos további válaszok a feladatkörnyezet definiálásától függnek. Az orvosi diagnosztikai feladatot egyágensesnek tüntettük fel, mivel a betegben zajló betegségi folyamat eredményesen nem modellezhető ágensként, de egy orvosi diagnosztikai rendszernek szükség esetén törődnie kell ellenszegülő betegekkel és szkeptikus munkatársakkal, így a környezetnek lehet többágenses aspektusa. Továbbá az orvosi diagnosztika epizódszerű, ha valaki a feladatot úgy tekinti, mint a tünetek listája alapján történő diagnózis kiválasztását; a probléma sorozatszerű, ha a feladat tartalmazhat egy vizsgálatsorozat-javaslatot, az eredmények kiértékelését a kezelés folyamán és így tovább. Továbbá sok környezet epizódszerű az ágensek egyéni akcióinál magasabb szinteken. Például egy sakktorna játszmák sorozatát tartalmazza, minden játék egy epizód, mivel (nagyjából) az ágens adott játszmabeli lépéseinek hozzájárulása az ágens teljesítményéhez nem függ a korábbi játszmákban választott lépéseitől. Másrészről, az egy játszmán belüli döntéshozatal biztosan sorozatszerű.

2.6. ábra - Példák feladatkörnyezetekre és jellemzőik
Példák feladatkörnyezetekre és jellemzőik

A könyvhöz tartozó példaprogramtár (aima.cs.berkeley.edu) tartalmaz számos környezetimplementációt, egy általános célú környezetszimulátorral együtt, amely egy vagy több ágenst helyez el egy szimulált környezetben, megfigyeli a viselkedésüket az időben, és kiértékeli őket egy adott teljesítménymérték szerint. Ilyen kísérleteket gyakran nem egy, hanem több, egy környezetosztályból (environment class) származó környezetre hajtanak végre. Például egy taxisofőr szimulált forgalomban történő értékelésére több szimulációt futtatnánk különböző forgalommal, világítással, és időjárási viszonyokkal. Ha az ágenst egyedi esetre terveztük, kihasználhatjuk az adott környezet speciális tulajdonságait, de nem találhatjuk meg a vezetés általában jó módját. Ezért a programtár tartalmaz egy környezetgenerátort (environment generator) minden környezetosztályra, amelyik kiválaszt bizonyos környezeteket (bizonyos valószínűséggel) az ágens futtatására. Például a porszívó környezetgenerátor véletlenszerűen állítja be a piszok mintázatát és az ágens helyét. Ezek után az ágens átlagos teljesítményére vagyunk kíváncsiak az adott környezetosztályra nézve. Egy racionális ágens az adott környezetosztályra maximalizálja ezt az átlagos teljesítményt. A 2.7. és 2.12. közötti feladatok végigvisznek egy környezetosztály kialakításán és abban többféle ágens kiértékelésén.



[22] A könyv első kiadása a hozzáférhető (accessible) és a nem hozzáférhető (inaccessible) kifejezéseket használta a teljesen és a részlegesen megfigyelhető (fully és partially observable) helyett; a nemdeterminisztikus (nondeterministic) a sztochasztikus (stochastic) helyett, valamint a nem epizódszerű (nonepisodic) a sorozatszerű (sequential) kifejezés helyett szerepelt. Az új terminológia jobban illeszkedik az elterjedt gyakorlathoz.

[23] A „sorozatszerű” (sequential) szót a számítástudományban a „párhuzamos” (parallel) ellentéteként is használják. A két jelentés alapvetően független egymástól.