8.3. Az elsőrendű logika használata

Most, hogy definiáltunk egy kifejező logikai nyelvet, itt az ideje, hogy megtanuljuk használni is. A legjobb módja ennek az, ha példákon keresztül tesszük. A logikai szintaxis többféle aspektusának illusztrálására már láttunk néhány egyszerű mondatot; ebben az alfejezetben az egyszerű tárgyterületeknek (domain) több szisztematikus reprezentációját fogjuk bemutatni. A tudásreprezentációban egy tárgyterület a világnak az a része, amelyről valamilyen tudást akarunk kifejezni.

Az elsőrendű tudásbázisokra definiálható KIJELENT/KÉRDEZ eljárások rövid leírásával fogunk kezdeni. Ezután megvizsgáljuk a családi kapcsolatok, a számok, a halmazok és a listák tárgyterületét, valamint a wumpus világot. A következő alfejezet egy még alapvetőbb példát (elektronikus áramkörök) tartalmaz, míg a 10. fejezet mindent áttekint az univerzumban.

8.3.1. Kijelentések és lekérdezések az elsőrendű logikában

A mondatokat a KIJELENT használatával adjuk hozzá a tudásbázishoz, pontosan úgy, mint az ítéletlogikában. Ezeket a mondatokat kijelentéseknek (assertions) nevezzük. Például, azt jelenthetjük ki, hogy János egy király, és hogy a királyok személyek:

Kijelent(TB, Király(János))

Kijelent(TB, ∀x Király(x) Személy(x))

Kérdéseket tehetünk fel a tudásbázisról a KÉRDEZ használatával. Például a:

Kérdez(TB, Király(János))

igazat ad vissza. A KÉRDEZ-zel feltett kérdéseket lekérdezéseknek (queries) vagy céloknak (goals) nevezzük (ne tévesszük össze azokkal a célokkal, amelyek az ágensek kívánt állapotát írják le). Általánosságban, bármely lekérdezésre, ami logikusan következik a tudásbázisból, igenlő választ kell adni. Például ha adott a két kijelentés az előző bekezdésben, akkor a

Kérdez(TB, Személy(János))

lekérdezésnek szintén azt kell visszaadnia, hogy igaz. Kvantorokat alkalmazó kérdéseket is feltehetünk, úgy mint:

Kérdez(TB, ∃x Személy(x))

Erre a lekérdezésre a válasz lehet igaz, de ez nem segít, és nem is szórakoztató. (Ez olyasmi, mintha a „Meg tudná mondani mennyi az idő?” kérdésre azt válaszolnánk, hogy „Igen”.) Egy egzisztenciális változókkal ellátott lekérdezés valójában azt a kérdést teszi fel, hogy „Van-e olyan x, amely…”, és úgy oldjuk meg, hogy megadunk egy ilyen x-et. Egy ilyen típusú válasz szokásos formája egy helyettesítési lista (substitution list) vagy lekötési lista (binding list), amely változó/term párok halmaza. Ebben az esetben, amikor csak két kijelentés szerepel, a válasz az {x/János} lenne. Ha több lehetséges válasz van, akkor a helyettesítések listáját kapjuk vissza.

8.3.2. A rokonsági tárgyterület

Az első példában a családi kapcsolatokat, vagyis a rokonsági tárgyterületet vizsgáljuk meg. Ez a tárgyterület tartalmaz olyan tényeket, mint „Erzsébet Károly anyja” és „Károly Vilmos apja”, valamint olyan szabályokat, mint „Valakinek a nagyanyja az ő szülőjének az anyja”.

Egyértelmű, hogy ennek a tárgyterületnek az objektumai személyek. Két unáris predikátumunk lesz a Férfi és a . A rokonsági kapcsolatokat – szülőség, testvérség, házasság és így tovább – bináris predikátumokkal fogjuk ábrázolni: Szülője, Testvére, Fivére, Nővére, Gyereke, Lánya, Fia, Házastársa, Felesége, Férje, Nagyszülője, Unokatestvére, Nagynénje és Nagybátyja. Az Anyja és Apja reprezentálására függvényeket fogunk alkalmazni, mivel minden személynek pontosan egy ilyen rokona van (legalább is a természet rendje szerint).

Leírhatjuk a predikátumokat és a függvényeket úgy, hogy más szimbólumokkal fejezzük ki, amit róluk tudunk. Például valakinek az anyja, az ő nőnemű szülője:

m,c Anyja(c) = m (m) ∧ Szülője(m, c)

Valakinek a férje az ő férfi házastársa:

w, h Férje(h, w) ⇔ Férfi(h) ∧ Házastársa(h, w)

A nő és a férfi diszjunkt kategóriák:

x Férfi(x) ⇔ ¬(x)

A szülője és a gyereke inverz relációk:

p, c Szülője(p, c) ⇔ Gyereke(c, p)

Egy nagyszülő a szülője valaki szülőjének:

g, c Nagyszülője(g, c) ⇔ ∃p Szülője(g, p) ∧ Szülője(p, c)

Egy testvér a másik gyereke ugyanannak a szülőnek:

x, y Testvére(x, y) x y ∧ ∃p Szülője(p, x) ∧ Szülője(p, y)

Folytathatnánk így tovább, és a 8.11. feladatban kérni is fogjuk, hogy tegye ezt meg.

Minden egyes ilyen mondat tekinthető a rokonsági tárgyterület egy axiómájának (axiom). Az axiómákat általában a tisztán matematikai tárgyterületekhez kötjük – röviden meg fogunk vizsgálni néhány axiómát számokra – de valamennyi tárgyterületben szükség van rájuk. Az axiómák ellátnak bennünket alapvető ténybeli információkkal, amelyekből hasznos következtetéseket vonhatunk le. Rokonsági axiómáink egyúttal definíciók (definitions) is; formájuk pedig ∀x, y P(x, y) ⇔ … . Az axiómák meghatározzák az Anyja függvényt és a Férje, Férfi, Szülője, Nagyszülője és Testvére predikátumokat más predikátumok felhasználásával. A predikátumok alapvető halmazainál (Gyereke, Házastársa és ) a definícióinkat már nem tudjuk más predikátumokkal leírni. Ez természetes módja annak, ahogyan felépítjük egy tárgyterület reprezentációját, és analóg azzal, ahogyan a szoftvereket felépítik primitív könyvtárfüggvények szubrutinjainak az egymást követő definícióival. Vegyük észre, hogy a predikátumprimitíveknek nincs feltétlenül egyetlen kizárólagos halmaza; éppen ilyen jól használhattuk volna a Szülője, Házastársa és Férfi predikátumokat. Néhány tárgyterületben, mint azt látni fogjuk, nincs egyértelműen meghatározható alaphalmaz.

Nem minden a tárgyterületről szóló logikus mondat axióma. Néhány közülük tétel (theorem) – amelyeket az axiómák vonnak maguk után. Például vizsgáljuk meg a kijelentést, hogy a testvérség szimmetrikus:

x, y Testvére(x, y) ⇔ Testvére(y, x)

Ez vajon egy axióma vagy egy tétel? Valójában ez egy tétel, amely logikusan következik a testvérséget meghatározó axiómából. Ha ezt a mondatot KÉRDEZ-zük a tudásbázistól, akkor az eljárásnak az igaz eredményt kell visszaadnia.

Tisztán logikai nézőpontból egy tudásbázis csak axiómákat, és nem tételeket tartalmaz, mert a tételek nem növelik meg a konklúziók halmazát, amelyeket a tudásbázis maga után vonz. Gyakorlati szempontból a tételek elengedhetetlenek az új mondatok előállításánál a számítási költségek csökkentéséhez. Nélkülük egy bizonyítási rendszernek minden egyes alkalommal az első alapelvektől kellene indulnia, mintha egy fizikusnak mindig újra le kellene vezetnie a számítások szabályait az összes új problémánál.

Nem minden axióma definíció. Néhány axióma általánosabb információkat ír le egyes predikátumokról, anélkül hogy létrehozna egy definíciót. Valójában egyes predikátumoknak nincs teljes definíciójuk, mert nem tudunk eleget róluk ahhoz, hogy teljes mértékben meghatározzuk őket. Például nem létezik egyértelmű befejezése a következő mondatnak:

x Személy(x) ⇔ …

Szerencsére az elsőrendű logika lehetővé teszi számunkra, hogy használjuk a Személy predikátumot, anélkül hogy teljes mértékben definiálnánk. Ehelyett részleges pontosításokat írhatunk tulajdonságokról, amelyekkel minden személy rendelkezik, és olyan tulajdonságokról, amelyek valamit személlyé tesznek:

x Személy(x)

x …Személy(x)

Az axiómák lehetnek „csak puszta tények”, mint amilyenek a Férfi(Jim) és a Házastársa(Jim, Laura). Az ilyen tények alkotják a speciális probléma példányok leírásait, lehetővé téve speciális kérdések megválaszolását. Ilyenkor az ezekre a kérdésekre adott válaszok tételek lesznek, amelyek az axiómákból következnek. Gyakran előfordul, hogy az elvárt válasz nem kapható meg – például a Férfi(George) és a Házastársa(George, Laura)-ból azt várnánk, hogy kikövetkeztethetőnek kellene lennie annak, hogy (Laura); de ez nem következik a korábban megadott axiómákból. Ez annak a jele, hogy egy axióma hiányzik. A 8.8. feladat ennek a megadását kéri.

8.3.3. Számok, halmazok és listák

A számok talán a leglátványosabb példái annak, hogy hogyan építhetünk fel egy hatalmas elméletet axiómák kicsi darabjait használva. Le fogjuk írni a természetes számok (natural numbers), vagyis a nem negatív egész számok elméletét. Szükségünk van egy predikátumra TermSzám, amely igaz lesz minden természetes számra; szükségünk van továbbá egy konstansszimbólumra, ez lesz a 0; valamint egy függvényszimbólumra, az S rekurziót leíró függvényre. A Peano-axiómák (Peano axioms) meghatározzák a természetes számokat és az összeadást.[81] A természetes számoknak egy rekurzív definícióját adjuk meg:

TermSzám(0)

n TermSzám(n) ⇒ TermSzám(S(n))

Ez azt jelenti, hogy a 0 egy természetes szám, és hogy minden n objektumra, ha az n egy természetes szám, akkor S(n) is egy természetes szám. Tehát, a természetes számok a 0, az S(0) és az S(S(0)) és így tovább. Szükségünk van axiómákra ahhoz is, hogy lezárjuk a rekurziót leíró függvényt:

n 0 S(n)

m, n m nS(m) ≠ S(n)

Most meg tudjuk határozni az összeadást az utódfüggvény szempontjából:

m TermSzám(m) ⇒ + (0, m) = m

m, n TermSzám(m) TermSzám(n) ⇒ + (S(m), n) = S(+(m, n))

Az első axióma azt mondja ki, hogy ha hozzáadunk egy 0-t bármely m természetes számhoz, akkor m-et kapunk. Figyeljük meg a „+” bináris függvényszimbólum használatát a +(m, 0) termben. A matematika jelölése szerint a termet a következőképpen írnánk: m + 0, infix (infix) jelölés használatával. (Az eddigiekben az elsőrendű logikához használt jelöléseket prefixnek (prefix) nevezzük.) Azért, hogy könnyebben olvashatóvá tegyük a számokról szóló mondatainkat, lehetővé tesszük az infix jelölések használatát. Így az S(n)-t leírhatjuk úgy is, hogy n + 1, ami által a második axióma a következő lesz:

m, n TermSzám(m) ∧ TermSzám(n) ⇒ (m + 1) + n = (m + n) + 1

Ez az axióma az utódfüggvény ismételt alkalmazásává egyszerűsíti az összeadást.

Az infix jelölések használata példa a szintaktikus édességre (syntactic sugar), ami nem más, mint az alapszintaxis kiterjesztése vagy rövidítése, a szemantika megváltoztatása nélkül. Bármely mondat, amely ezt a szintaktikai édességet használja visszaalakítható, egyenértékű mondatot előállítva a hagyományos elsőrendű logikában.

Mihelyt van egy összeadás-definíciónk, magától értetődik a szorzást ismételt hozzáadásokként definiálni, a hatványozást ismételt szorzásokként, meghatározni az egész számok osztását és maradékait, a prímszámokat és így tovább. Így tehát a teljes számelmélet (beleértve a titkosírást) felépíthető egy konstansból, egy függvényből, egy predikátumból és négy axiómából.

A halmazok (sets) tárgyterületének szintén alapvető szerepe van a matematikában, ugyanúgy mint a hétköznapi gondolkodásban is. (Valójában a számelmélet levezethető a halmazelméletből kiindulva.) Halmazokat szeretnénk reprezentálni, beleértve az üres halmazt is. Szükségünk van a halmazok felépítésének egy módjára, amelyben vagy hozzá tudunk adni egy elemet a halmazhoz, vagy két halmaz metszetét vagy unióját tudjuk képezni. Meg kell tudnunk állapítani, hogy egy elem része-e egy halmaznak, és szeretnénk megkülönböztetni a halmazokat az olyan objektumoktól, amelyek nem halmazok.

A halmazelmélet hagyományos szókincsét fogjuk használni szintaktikai édességként. Az üres halmaz egy konstans, amelynek a jele: { }. Definiálunk egy unáris predikátumot, a Halmaz-t, amely minden halmaz esetében igaz. A bináris predikátumok az x s (az x az s halmaz része) és az s1 s2 (az s1 halmaz egy részhalmaza, nem feltétlenül valódi részhalmaza az s2-nek). A bináris függvények az s1 s2 (két halmaz metszete), az s1 s2 (két halmaz uniója) és az {xs} (a halmaz az x elem s halmazhoz való csatlakozásának eredménye). Az axiómák egy lehetséges sorozata a következő:

  1. Egy halmaz vagy az üres halmaz, vagy azok, amelyeket egy halmaz bővítésével hoztunk létre:

s Halmaz(s) ⇔ (s = { }) ∨ (∃x, s2 Halmaz(s2) ∧ s = {xs2})

  1. Az üres halmaznak nincs hozzáadott eleme, más szóval nincs lehetőség arra, hogy az ÜresHalmaz-t szétválasszunk egy kisebb halmazra és egy elemre:

←∃x, s {x|s} = { }

  1. Egy halmazbeli elem újbóli hozzáadása a halmazhoz nem változtat a halmazon.

x, s x s s = {x|s}

  1. Egy halmaznak csak az az eleme, amit hozzáadunk. Ezt rekurzívan fejezzük ki, kimondva, hogy x akkor és csakis akkor eleme az s halmaznak, ha s azonos valamilyen s2 halmaz y elemmel való bővítésével, ahol vagy azonos y x-szel, vagy x eleme s2-nek:

x, s x s [∃y, s2 (s = {y|s2} (x = y x s2))]

  1. Egy halmaz egy másiknak a részhalmaza, ha az összes első halmazbeli elem eleme a második halmaznak:

s1, s2 s1 s2 (∀x x s1 x s2)

  1. Két halmaz akkor és csakis akkor egyenlő, ha egymásnak részhalmazai:

x, s1, s2 (s1 = s2) ⇔ (s1 s2 s2s1)

  1. Egy objektum akkor és csakis akkor eleme két halmaz metszetének, ha eleme mindkét halmaznak:

x, s1, s2 x (s1s2) ⇔ (x s1 x s2)

  1. Egy objektum akkor és csakis akkor eleme két halmaz uniójának, ha a két halmaz bármelyikének az eleme:

x, s1, s2 x (s1s2) ⇔ (x s1 x s2)

A listák (lists) tárgyköre nagyon hasonló a halmazok tárgyköréhez. A különbség az, hogy a listák rendezettek, és ugyanaz az elem több helyen is előfordulhat egy listában. Használhatjuk a Lisp szótárát a listákra: a Nil az elem nélküli listát jelölő konstans, a Cons, az Append, a First és a Rest függvények. A Find egy predikátum, amely azt hajtja végre a listáknál, mint az Eleme a halmazoknál. A List? egy predikátum, amely csak a listákra igaz. Úgy, mint a halmazoknál, a listákról szóló logikai mondatokban is szokás használni a szintaktikai édességet. Az üres lista a: [ ]. A Cons(x, y) termet, ahol az y nem üres lista, úgy írjuk, hogy: [x|y]. A Cons(x, Nil) termet (egy lista, amely tartalmazza az x elemet) úgy írjuk, hogy: [x]. Több elem listája, mint az [A, B, C], ugyanazt jelenti, mint az egymásba ágyazott term: Cons(A, Cons(B, Cons(C, Nil))). A 8.14. feladat tárgya az axiómák megírása a listák tárgyköréhez.

8.3.4. A wumpus világ

A 7. fejezetben megadtunk néhány ítéletlogikai axiómát a wumpus világra. Az ebben az alfejezetben szereplő elsőrendű logika axiómái sokkal tömörebbek lesznek, természetes módon ábrázolva azt, amit pontosan mondani szeretnénk.

Emlékezzünk arra, hogy egy wumpus ágens egy öt elemből álló érzetvektort kap. Az ezt leíró elsőrendű logikai mondat, amelyet a tudásbázisban tárolunk, tartalmazza mind az érzetet, mind az időpontot amikor ez bekövetkezett, különben az ágens összekeverné, hogy mikor látta azt, amit látott. Az időpontokat jelölő lépésekre egész számokat használunk. Egy tipikus érzetmondat ilyen lesz:

Érzet([Bűz, Szellő, Ragyogás, Nincs, Nincs], 5)

Itt az Érzet egy bináris predikátum, míg a Bűz és a többi érzet listába rendezett konstansok. A wumpus világban lejátszódó cselekvéseket a következő logikai termekkel reprezentálhatjuk:

Fordul(Jobbra), Fordul(Balra), Előre,, Megragad, Elereszt, Mászik

Hogy meghatározzuk, melyik cselekvés a legjobb az adott helyzetben, az ágens program létrehoz egy lekérdezést, mint például:

a LegjobbCselekvés(a, 5)

A KÉRDEZ-zel végrehajtjuk ezt a lekérdezést, és vissza fogunk kapni egy lekötési listát, mint például: {a/Megragad}. Az ágensprogram ezután visszaadhatja a Megragad-ot, mint elvégzendő cselekvést, de először a KIJELENT felhasználásával közölnie kell a saját tudásbázisával, hogy egy Megragad-ot hajt végre.

A nyers érzetadatok alapján következtethetünk az aktuális állapot bizonyos tényeiről. Például:

t, s, g, m, c Érzet([s, Szellő, g, m, c], t) Szellő(t)

t, s, g, m, c Érzet([s, Ragyogás, m, c], t) Ragyogás(t)

és így tovább. A szabályok a következtetési folyamat egy triviális formáját mutatják, amit érzékelésnek (perception) nevezünk, és amelyet a 24. fejezetben fogunk részletesen tanulmányozni. Vegyük észre az univerzális kvantort az idő (t) felett. Az ítéletlogikában minden egyes időlépéshez szükségünk volt a mondatok másolatára.

Az egyszerű „reflex” viselkedés is leírható kvantorokat alkalmazó implikációs mondatokkal. Például lehet egy ilyen mondatunk:

t Ragyogás(t) LegjobbCselekvés(Megragad, t)

Mivel adottak az érzet és az előző bekezdésekben megismert szabályok, ez a mondat a kívánt konklúziót eredményezné: LegjobbCselekvés(Megragad, 5) – ami azt jelenti, hogy a Megragad a legjobb cselekvés, amit végrehajthatunk. Vegyük észre az egybeesést a 7.20. ábrában az áramkörön alapuló ágensnél e szabály és a közvetlen érzet-cselekvés kapcsolat között. Az áramkör jellegéből következően impliciten látja el kvantorral az időt.

Eddig ebben az alfejezetben az idővel operáló mondatok mind szinkrónok (synchronic), azaz egyidejűek voltak, ami azt jelenti, hogy a világ állapotának tulajdonságait vonatkoztatják ugyanannak a világállapotnak más tulajdonságaihoz. Azokat a mondatokat, amelyek lehetővé teszik az időbeliséget figyelembe vevő következtetést diakrónnak (diachronic) nevezzük. Például az ágensnek tudnia kell, hogy hogyan kombinálja a megelőző helyzetéről lévő információt azzal az információval, amely helyzetének meghatározásához szükséges. A diakrón mondatok tárgyalását elhalasztjuk a 10. fejezetig, most csak tételezzük fel, hogy a helyzetre és más időfüggő predikátumokra vonatkozó következtetések megtörténtek.

Bemutattuk az érzeteket és a cselekvéseket, ezután itt az ideje, hogy bemutassuk magát a környezetet. Kezdjük az objektumokkal. A négyzetek, a csapdák és a wumpus nyilvánvaló szereplők. Elnevezhetnénk minden egyes négyzetet – Négyzet1,2 és így tovább – de akkor az a tény, hogy a Négyzet1,2 szomszédos a Négyzet1,3-mal, egy extra tényt igényelne, és minden egyes négyzetpárnál szükségünk lenne egy ilyen tényre. Jobb egy komplex termet használni, amelyben a sor és az oszlop egész számokként jelenik meg; például egyszerűen használhatjuk a lista termet: [1, 2]. Bármely két négyzet szomszédossága meghatározható így:

x, y, a, b Szomszédos([x, y], [a, b])

[ a, b] ∈ {[x + 1, y], [x 1, y], [x, y + 1], [x, y 1]}

Minden egyes csapdát elnevezhetnénk, de ez sem lenne megfelelő, méghozzá más okból: nincs ok arra, hogy megkülönböztetést tegyünk a csapdák között.[82] Sokkal egyszerűbb használni egy Csapda unáris predikátumot, amely igaz a csapdát tartalmazó négyzetekre. Végül, mivel pontosan egy wumpus van csak, ezért egy Wumpus konstans éppen úgy megfelelő, mintha egy unáris predikátummal jelölnénk (és a wumpus szempontjából talán tiszteletre méltóbb is). A wumpus pontosan egy négyzetben lakik, tehát jó gondolat egy függvényt használni ennek a négyzetnek a megnevezésére, ami az Otthon(Wumpus). Ez kiküszöböli azt a számos mondatot, amelyre az ítéletlogikában szükségünk van ahhoz, hogy megmondjuk, pontosan egyetlen négyzet tartalmaz wumpust. (Még nehezebb helyzetet teremtene az ítéletlogika számára, ha két wumpus volna.)

Az ágens helyzete változik az idő haladtával, amit úgy jelölünk, hogy Akkor(Ágens, s, t), ami azt jelenti, hogy az ágens az s négyzetnél van t időben. Mihelyt megadtuk az aktuális helyzetét, az ágens következtetni tud a négyzet tulajdonságaira a jelenlegi érzete tulajdonságaiból. Például, ha az ágens egy négyzetnél van, és szellőt érzékel, akkor az a négyzet szellős:

s, t Akkor(Ágens, s, t) Szellő(t) Szellős(s)

Hasznos tudni, hogy egy négyzet szellős, mert tudjuk, hogy a csapdák nem tudnak mozogni. Vegyük észre, hogy a Szellős-nek nincsen időargumentuma.

Miután felfedeztük, mely helyek szellősek (vagy büdösek) vagy – és ez nagyon fontos – nem szellősek (vagy nem büdösek), az ágens ki tudja következtetni, hogy hol vannak a csapdák (és hogy hol van a wumpus). Kétfajta szinkrón szabály van, amely lehetővé teszi az ilyen következtetéseket:

  • Diagnosztikus szabályok

A diagnosztikus szabályok a megfigyelt hatásoktól a rejtett okokhoz vezetnek minket. A csapdák megtalálásához a legkézenfekvőbb diagnosztikai szabályok azt mondják ki, hogyha a négyzet szellős, akkor valamelyik szomszédos négyzet biztosan tartalmaz csapdát:

s Szellős(s) ⇒ ∃r Szomszédos(r, s) Csapda(r)

és hogyha egy négyzet nem szellős, akkor egyetlen szomszédos négyzet sem tartalmaz csapdát:[83]

s Szellős(s) ⇒ ←∃r Szomszédos(r, s) ∧ Csapda(r)

E kettő kombinálásával, ezt a bikondicionális mondatot kapjuk:

s Szellős(s) ⇔ ∃r Szomszédos(r, s) Csapda(r) (8.3)

  • Ok-okozati szabályok

Az ok-okozati szabályok a világban lévő okozatiság feltételezett irányát tükrözik: a világ néhány rejtett tulajdonsága bizonyos érzetek generálását eredményezi. Például egy csapda azt eredményezi, hogy az összes szomszédos négyzet szellős lesz:

r Csapda(r) [∀s Szomszédos(r, s) Szellős(s)]

és ha az adott négyzettel szomszédos négyzetek egyike sem tartalmaz csapdát, a négyzet nem lesz szellős:

s [∀r Szomszédos(r, s) ⇒ ←Csapda(r)] ⇒ ←Szellős(s)

Némi munkával meg lehet mutatni, hogy ezek a mondatok együtt logikusan egyenértékűek a (8.3) egyenletben leírt ekvivalenciamondatokkal. Maga az ekvivalencia is tekinthető ok-okozatinak, mert megmutatja, hogy a Szellős igazságértéke a világ állapota alapján határozható meg.

Azokat a rendszereket, amelyek ok-okozati szabályokat alkalmaznak modellalapú következtető (modell-based reasoning) rendszereknek nevezzük, mivel az ok-okozati szabályok a környezet működésének modelljét alkotják. A modellalapú és a diagnosztikus következtetés közötti megkülönböztetés a mesterséges intelligencia számos területén fontos. Az orvosi diagnosztika egy különösen aktív területe a kutatásnak, amelyben a tünetek és a betegségek közötti közvetlen asszociációkon alapuló (diagnosztikai megközelítések) megközelítéseket fokozatosan felváltották az olyan módszerek, amelyek a betegség kialakulásának és a betegségtünetek manifesztálódásának egy explicit modelljét használják. Ez a téma a 13. fejezetben újra előkerül.

Fontos

Bármelyik reprezentációs formát is használja az ágens, ha az axiómák pontosan és teljesen leírják a világ működésének a módját és azt a módot, ahogyan az érzetek létrejönnek, akkor bármely teljes logikai következtetési eljárás az elérhető érzetek megadása után ki fogja következtetni a világ állapotának legvalószínűbb lehetséges leírását. Így tehát az ágenstervező arra koncentrálhat, hogy a tudást helyesen adja meg, anélkül hogy sokat kellene töprengenie a következtetések folyamatain. Láttuk továbbá azt is, hogy az elsőrendű logika hasonlóan tömören tudja reprezentálni a wumpus világot, mint a 7. fejezetben megadott eredeti magyar nyelvű leírás.



[81] A Peano-axiómák még tartalmazzák az indukció elvét is, amely inkább a másodrendű logikába tartozó állítás, mintsem az elsőrendű logikába. Ennek a megkülönböztetésnek a leírását lásd a 9. fejezetben.

[82] Hasonlóan, legtöbbünk nem nevezi meg a madarat, amint elszáll fejünk felett, hogy melegebb vidékre költözzön télen. Egy ornitológus viszont, aki a vonulási mintákat és a túlélési arányokat szeretné tanulmányozni, megnevez minden egyes madarat azáltal, hogy meggyűrűzi őket, mivel a madarakat egyenként kell nyomon követnie.

[83] Az emberben van hajlandóság arra, hogy elfelejtse leírni az ehhez hasonló negatív információkat. Egy beszélgetés során ez a tendencia teljesen normális – furcsa lenne, ha azt mondanánk: „Van két csésze az asztalon, és nincs ott három vagy több.” Még akkor is, ha a „Van két csésze az asztalon” szigorúan szólva akkor is igaz, ha három van ott. A 10. fejezetben visszatérünk erre a problémára.