10.4. Mentális események és mentális objektumok

Az eddig megkonstruált ágenseknek hiedelmeik vannak, továbbá az ágensek új hiedelmek kikövetkeztetésére is képesek. Ennek ellenére hiedelmekre és következtetésre vonatkozó tudással egy ágens sem rendelkezik. Az egyágenses problématerületeken egy ágensnek a saját tudásáról és következtető eljárásáról meglévő tudása hasznos a következtetés irányításában. Ha például valaki tudatában van annak, hogy Románia földrajzáról semmit sem tud, nem kell óriási erőfeszítéseket tennie, hogy az Arad és Bukarest közötti legrövidebb utat kiszámítsa. Következtethetünk a saját tudás állapotunkról annak érdekében, hogy terveket készítsük annak megváltoztatására – például azáltal, hogy Románia térképét megvásároljuk. Többágenses problématerületeken fontos, hogy egy ágens más ágensek mentális folyamataira tudjon következtetni. Egy román rendőr nyilván jól tudja, hogy melyik a legjobb út Bukarest felé, így az ágens kérhet tőle segítséget.

Végeredményben tehát olyan mentális objektumok és az azokat manipuláló mentális folyamatok modelljére van szükségünk, amelyek másvalaki fejében (vagy másvalami tudásbázisában) találhatók meg. A modellnek valósághűnek kell lennie, azonban nem kell a részletekre kitérnie. Nem kell, hogy képesek legyünk megjósolni, hogy egy konkrét ágens a következtetéseit hány milliszekundum alatt állítja elő, vagy hogy egy konkrét vizuális ingerrel szembesítve, mely neuronok tüzelnek az állat agyában. Boldogok leszünk, ha kikövetkezhetjük, hogy román rendőr eligazít minket Bukarest irányába, ha tudja az utat, és azt hiszi, eltévedtünk.

10.4.1. A hiedelmek formális elmélete

Az ágensek és a „mentális objektumok” közötti olyan kapcsolatokkal kezdünk, mint a Hiszi, a Tudja és az Akarja. Az ilyen relációkat ítéletlogikai attitűdöknek (propositional attitudes) nevezzük, mert egy ágens attitűdjét írják le egy ítéletlogikai állítással szemben. Tegyük fel, hogy Lujza hisz valamit, azaz Hiszi(Lujza, x). Vajon milyenfajta dolog az x? Először is világos, hogy x logikai állítás nem lehet. Ha Repül(Superman) egy logikai állítás, akkor nem mondhatjuk azt, hogy Hiszi(Lujza, Repül(Superman)), mert predikátumok argumentumaként csak termeket (és nem állításokat) fogadunk el. Ha azonban a Repül egy függvény, akkor a Repül(Superman) már jó jelölt egy mentális objektumra, és a Hiszi lehet az a reláció, amely egy ágenst összekapcsol ezzel az ítélet jellegű folyó eseménnyel. Egy állítás átalakítása objektummá nem más, mint reifikálás[99] (reification).

Úgy tűnik meg is kaptuk, amit akartunk: egy ágensnek azt a képességét, hogy következtetni tudjon más ágensek hiedelmeiről. Sajnos e megközelítésnek vannak nehézségei. Ha Clark és Superman egy és ugyanaz a személy (azaz Clark = Superman), akkor Clark repül és Superman repül egy és ugyanaz az eseménykategória, azaz Repül(Clark) = Repül(Superman). Azaz el kell fogadnunk, hogy ha Lujza azt hiszi, hogy Superman tud repülni, el kell hinnie, hogy Clark tud repülni, akkor is, ha nem hiszi, hogy Clark Superman. Azaz:

(Superman = Clark) ⊨ (Hiszi(Lujza, Repül(Superman)) ⇔ Hiszi(Lujza, Repül(Clark)))

Bizonyos értelemben ez igaz is. Egy bizonyos személyről, akit néha Clarknak hívnak, Lujza azt hiszi, hogy tud repülni. Más értelemben azonban ez nincs rendjén. Ha megkérdezzük Lujzát, hogy „Clark tud-e repülni?”, minden bizonnyal nemmel válaszolna. A reifikált objektumok és események jól működnek a Hiszi első értelmezése esetén, a másodikhoz viszont az szükséges, hogy reifikáljuk ezen objektumok és események leírását, így Clark és Superman különböző leírások legyenek, annak ellenére, hogy ugyanarra az objektumra vonatkoznak.

Azt a tulajdonságot, hogy egy termet egy vele ekvivalens termmel szabadon helyettesíthetünk, formálisan referenciális átláthatóságnak (referential transparency) nevezzük. Elsőrendű logikában minden reláció referenciálisan átlátható. Számunkra az lenne a jó, ha a Hiszi (és más ítéletlogikai attitűdök is) olyan relációkként lennének definiálhatók, melynek második argumentuma elmosódott (opaque) – azaz, ahol ekvivalens termeket egymással nem lehet helyettesíteni az értelmezés megváltoztatása nélkül.

Ennek két módja van. Az első a logika egy új változatának – az ún. modális logikának (modal logic) a használata, amelyben az olyan ítéletlogikai attitűdök, mint a Hiszi és a Tudja referenciálisan elmosódott modális operátorok (modal operators) lesznek. Ezzel a megközelítéssel az irodalmi és történeti megjegyzések keretében foglalkozunk. A második, a továbbiakban kifejtett megközelítés a hatékony elmosódottság elérése a különben referenciálisan átlátható nyelvben a mentális objektumok ún. szintaktikai elmélete (syntactic theory) révén. Ez azt jelenti, hogy mentális objektumokat füzérekkel (strings) reprezentálunk. Az eredmény az ágens tudásbázisának egy olyan durva modellje, ahol a tudásbázis az ágens által elhitt állításokat reprezentáló füzérekből áll. Egy füzér nem más, mint egy szimbólumlistát megjelölő komplex term, így a Repül(Clark) eseményt a [R, e, p, ü, l, (, C, l, a, r, k, )] karakterfüzérrel reprezentáljuk, amit „Repül(Clark)”-ként fogunk rövidíteni. A szintaktikai elmélet eleme az egyedi füzér axióma (unique string axiom), amely azt mondja ki, hogy két füzér akkor és csak akkor azonos, ha azonos karakterekből áll. Ebben a megfogalmazásban a Clark = Superman ellenére „Clark” ≠ „Superman”.

Most meg kell adnunk a füzér reprezentációs nyelv részére a szintaxist, a szemantikát és a bizonyítási elméletet, pontosan úgy, ahogyan ezt a 7. fejezetben tettük. A különbség az, hogy ezeket most mind elsőrendű logikában kell definiálnunk. A Jelent függvénnyel kezdünk, amely a füzért arra az objektumra képezi le, amit jelöl. A Neve egy olyan függvénnyel definiálható, amely egy objektumot az azt megnevező füzérre képezi le. A „Clark” és a „Superman” jelölés jelentése egy objektum, amire a VasEmber konstansszimbólummal fogunk hivatkozni, és aminek a neve a tudásbázisban lehet „Clark”, „Superman” vagy valamilyen más konstans, mondjuk „X11”.

Jelent(„Clark”) = VasEmberJelent(„Superman”) = VasEmber

Neve(VasEmber) = „X11

A következő lépés a következtetési szabályok definiálása egy logikai ágens számára. Kívánhatnánk például, hogy egy logikai ágens képes legyen Modus Ponenst elvégezni: ha elhiszi a p-t, és elhiszi, hogy p q, akkor elhiszi a q-t is. Az axióma első verziója valahogy így nézhetne ki:

LogikaiÁgens(a) ∧ Hiszi(a, p) ∧ Hiszi(a, „p q”) ⇒ Hiszi(a, q)

Ez azonban helytelen, mert a „pq” füzér tartalmazza ugyan a „p” és „q” betűket, de semmi köze az olyan füzérekhez, amelyekben a p és q változók értékei szerepelnek. A helyes megfogalmazás az alábbi:

LogikaiÁgens(a) ∧ Hiszi(a, p) –∧ Hiszi(a, Concat(p, „⇒”, q)) ⇒ Hiszi(a, q)

ahol a Concat egy füzérfüggvény, amely az elemeit konkátenálja. A Concat(p, „⇒”, q)-t le fogjuk rövidíteni „p q”-ra. Azaz x előfordulása egy füzéren belül azt jelenti, hogy az x változó értékét be kell helyettesíteni. A Lisp-programozók ebben felismerik a backquote operátort, a Pearl-programozók pedig a $-változó interpolációt.

Ha Modus Ponensen kívül más következtetési szabályokat is hozzáveszünk, olyan kérdések megválaszolására leszünk képesek, mint a „Feltéve, hogy a logikai ágens ezeket a premisszákat ismeri, képes-e azt a konklúziót kikövetkeztetni?”. A közönséges következtetési szabályokon túlmenően szükségünk van hiedelemspecifikus szabályokra is. Így például az alábbi szabály azt mondja ki, hogy ha egy logikai ágens elhisz valamit, akkor azt is elhiszi, hogy elhiszi azt.

LogikaiÁgens(a) ∧ Hiszi(a, p) ⇒ Hiszi(a, „Hiszi(Neve(a) , p)”)

Az ilyen ágens, axiómáinkból adódóan, minden érvényes konklúziót képes azonnal kikövetkeztetni. Ezt a jelenséget logikai mindentudásnak (logical omniscience) hívják. Számos kísérlet történt arra, hogy korlátos racionalitású ágenseket definiáljunk, amelyek véges idő alatt korlátozott számú következtetésre képesek. Ezek egyike sem teljesen kielégítő, azonban e megfogalmazások lehetővé teszik, hogy korlátos ágensekről igen korlátozott terjedelmű jóslásokat végezzünk.

10.4.2. Tudás és hiedelem

A filozófusok évszázadok óta tanulmányozták a hinni és a tudni közötti kapcsolatot. Általánosan elfogadott, hogy tudás a bizonyított, igaz hiedelem. Azaz, ha „megtámadhatatlanul jó oknál fogva” hiszünk valamiben, és ez a valami igaz is, akkor ezt a valamit tudjuk is. A „megtámadhatatlanul jó oknál fogva” lényeges, hogy ne mondhassunk olyat, hogy: „Tudom, hogy ez a feldobott érme fejjel felfelé fog leesni”, és ne legyen igazunk az esetek felében.

Legyen a Tudja(a, p) jelentése az, hogy egy a ágens tudja, hogy a p állítás igaz. A tudás más fajtáját is lehet definiálni. Nézzük például a „tudja, hogy vagy…, vagy” definícióját:

TudjaVagyVagy(a, p) ⇔ Tudja(a, p) ∨ Tudja(a, „¬p”)

Példánkat folytatva, Lujza tudja, hogy Clark vagy tud repülni, vagy nem, ha tudja, hogy Clark tud repülni, vagy ha tudja, hogy Clark nem tud repülni.

A „tudja, mi” koncepció valamivel bonyolultabb. Kísértést érezhetünk arra, hogy azt állítsuk, egy ágens tudja, mi Béla telefonszáma, ha létezik egy x, amiről az ágens azt tudja, hogy x = TelefonSzáma(Béla). De ez így nem jó, mert például az ágens tudhatja, hogy Aliz és Béla telefonszáma ugyanaz (azaz TelefonSzáma(Aliz) = TelefonSzáma (Béla)), de ez sokat nem segít, ha Aliz telefonszámát sem tudja. A „tudja, mi” jobb definíciója azt mondja ki, hogy az ágensnek valami olyan x-et kell ismernie, amely egy számjegyekből álló füzér és amely Béla telefonszáma:

TudjaMi(a, „TelefonSzáma(b)”) ⇔

x Tudja(a, „x = TelefonSzáma(b)”) ∧ xSzámjegyFüzér

Természetesen más kérdések esetén az elfogadható válasznak mások lesznek a kritériumai. Arra a kérdésre, hogy „Mi New York állam fővárosa?”, a jó válasz „Albany”, és nem az, hogy „az a város, ahol a városháza áll”. Hogy ez lehetséges legyen, a TudjaMi-t háromargumentumos relációvá alakítjuk át: lesz benne egy ágens, egy term és egy predikátum, amelynek igaznak kell lennie a válaszra alkalmazva. Például:

TudjaMi(Ágens, „Főváros(NewYork”), SajátNév)

TudjaMi(Ágens, „TelefonSzáma(Béla”), SzámjegyFüzér)

10.4.3. Tudás, idő és cselekvés

A valódi esetek többségében az ágensnek az időben változó – saját vagy más ágensek – hiedelmeivel kell foglalkoznia. Az ágensnek terveket kell szőnie, amelyek a saját hiedelmeinek változásaival járnak együtt – mint amilyen például egy térkép vásárlása, hogy Bukarestbe találjon. Más predikátumokhoz hasonlóan lehetséges a Hiszi reifikálása, és egy időperiódus alatt történő hiedelmek megtárgyalása. Így mondhatjuk például, hogy Lujza ma hiszi, hogy Superman tud repülni:

T(Hiszi(Lujza, „Repül(Superman)”, Ma)

Ha a hiedelem objektuma egy olyan állítás, amely időben változhat, ezt a T operátorral a füzéren belül írhatjuk le. Ekkor mondhatnánk azt, hogy Lujza ma hiszi, hogy Superman tegnap tudott repülni:

T(Hiszi(Lujza, „T(Repül(Superman), Tegnap)”, Ma)

Ha már az időben evolváló hiedelmeket le tudjuk írni, felhasználhatjuk az eseménykalkulus mechanizmusát, hogy hiedelmeket tartalmazó terveket készítsünk. A cselekvéseknek lehetnek tudás-előfeltételei (knowledge preconditions) és tudáshatásai (knowledge effects). Annak a cselekvésnek például, hogy valakinek a telefonszámát tárcsázzuk, az az előfeltétele, hogy tudjuk a számot, és annak a cselekvésnek, hogy a telefonszámot a könyvből kikeressük, az a hatása, hogy a számot tudni fogjuk. Ezt az utolsó cselekvést az eseménykalkulus mechanizmusával az alábbi módon írhatjuk le:

Iniciálizál(Kikeres(a, „TelefonSzáma(b)”),

TudjaMi(a, „TelefonSzáma(b)”, SzámjegyFüzér), t)

Az információgyűjtő és az azt felhasználó terveket sokszor röviden futási idejű változóknak (runtime variables) nevezzük, ami a korábban leírt értékbehelyettesítő változó konvenciójához szorosan kapcsolódik. Béla telefonszámának a kikeresésére, majd a tárcsázására vonatkozó tervet az alábbi alakban fel lehet írni:

[Kikeres(Ágens, „TelefonSzáma(Béla)”, n), Tárcsáz(n)]

Itt n egy futási idejű változó, aminek értékét a Kikeres cselekvés fogja rögzíteni, és amit majd a Tárcsáz cselekvés felhasználhat. Az ilyen tervek sűrűn előfordulnak a részben megfigyelhető tárgyterületeken. Látni fogunk erre példákat a következő alfejezetben és a 12. fejezetben.



[99] A „reifikálás” szó a latin res, avagy dolog szóból származik. John McCarthy a „dolgosítás” (thingification) elnevezést javasolta, de ez nem terjedt el.