7.1. A tudásbázisú ágens

Egy tudásbázisú ágens központi eleme a tudásbázisa (knowledge base). Egyszerűen fogalmazva, a tudásbázis mondatok (sentences) halmaza. (Itt a „mondatot” technikai fogalomként használjuk. A fogalom kapcsolatban van az angol, a magyar vagy más természetes nyelvek mondataival, de nem azonos velük.) A mondatokat egy nyelv segítségével fejezzük ki, amelyet tudásreprezentációs nyelvnek (knowledge representation language) nevezünk, és a világról szóló állításokat fogalmazunk meg vele.

Új mondatoknak a tudásbázishoz való hozzáadására, illetve a tudás lekérdezésére valamilyen eljárásra van szükségünk. Ezeknek a feladatoknak a tipikus elnevezése a KIJELENT, illetve a KÉRDEZ. Mindkét feladat tartalmazhat következtetést (inference), azaz új mondatok levezetését régiekből. A logikai ágenseknél (logical agents), amelyekkel ebben a fejezetben foglalkozunk, a következtetéssel szemben az alapvető követelmény, hogy amikor valaki KÉRDEZ egy kérdést a tudásbázisról, akkor a válasznak következnie kell azokból a mondatokból, amit korábban a tudásbázishoz hozzáadtunk (pontosabban KIJELENT-ettünk). Később a fejezetben még pontosabban leírjuk az igen fontos „következik” fogalom jelentését. Most egyelőre ez jelentsen csak annyit, hogy a következtetési folyamat során nem csak úgy egyszerűen keletkeznek dolgok.

A 7.1. ábra egy tudásbázisú ágens programjának vázát mutatja. Mint ahogy az összes ágensünk, ez is észlel valamit bemenetként, és egy cselekvést ad vissza válaszként. Az ágens fenntart egy tudásbázist, TB-t, amely kezdetben bizonyos háttértudást (background knowledge) tartalmazhat. Ha az ágensprogramot meghívják, az három dolgot tesz. Először KIJELENT-i a tudásbázisnak, hogy mit észlelt. Másodszor KÉRDEZ-i a tudásbázist, hogy milyen cselekvést kell végrehajtania. A lekérdezés megválaszolásának folyamatában egyre bővülő következtetést lehet végezni a világ pillanatnyi állapotáról, a lehetséges cselekvéssorozatok eredményéről és így tovább. Harmadszor az ágens rögzíti a kiválasztott cselekvést a KIJELENT felhasználásával, és végrehajtja a cselekvést. A második KIJELENT azért szükséges, hogy a tudásbázissal tudassuk, hogy a feltételezett cselekvés végrehajtása megtörtént.

7.1. ábra - Egy általános tudásbázisú ágens
Egy általános tudásbázisú ágens

A reprezentációs nyelv részletei három függvényben vannak elrejtve, amelyek az érzékelők és beavatkozók, az alapreprezentáció, valamint a következtető rendszer közötti kapcsolatot valósítják meg. Az ÉSZLELÉS-MONDAT-KÉSZÍTÉS eljárás egy olyan mondatot konstruál, amelyik megállapítja, hogy az ágens egy adott pillanatban észlelte az érzékelt dolgot. A CSELEKVÉS-KÉRDEZÉS-KÉSZÍTÉS az időt felhasználva bemeneti adatként, visszatér egy mondattal, amely alkalmas arra, hogy megkérdezzük, milyen cselekvés szükséges ebben a pillanatban. Végül a CSELEKVÉS-MONDAT-KÉSZÍTÉS egy olyan mondatot hoz létre, amely megállapítja, hogy a kiválasztott cselekvés végrehajtása megtörtént. A következtetési mechanizmus részletei a KIJELENT és a KÉRDEZ eljárások belsejében vannak elrejtve. A későbbi fejezetekben ezeket a részleteket is bemutatjuk.

A 7.1. ábra ágense egészen hasonlónak tűnik, mint a 2. fejezetben bemutatott belső állapottal rendelkező ágens. Azonban a KIJELENT és a KÉRDEZ eljárások definíciója miatt a tudásbázisú ágens nem egy tetszőleges, cselekvéseket meghatározó program. Meghatározható egy leírással a tudásszinten (knowledge level), ahol csak azt kell megfogalmaznunk, hogy mit tudjon és milyen céljai legyenek az ágensnek, hogy rögzíthessük a viselkedését. Például egy automata taxi számára a cél lehet egy utas elszállítása Marin megyébe, és a taxi ismerheti, hogy ez San Franciscónál van, és a Golden Gate híd az egyetlen, amelyen keresztül oda el lehet jutni. Ezután feltételezhetjük, hogy átmegy a Golden Gate hídon, mivel tudja, hogy el fogja érni a célját. Vegyük észre, hogy ez az elemzés független attól, hogy a taxi hogyan is működik az implementációs szinten (implementation level). Nem számít, hogy a földrajzi elhelyezkedéssel kapcsolatos tudása láncolt listákkal vagy pixeltérképekkel van megvalósítva, vagy hogy vajon a következtetést regiszterekben tárolt szimbólumok listáinak manipulálásával vagy neuronhálókban zajos jelek továbbküldésével végzi el.

Fontos

Említettük a fejezet bevezetőjében, hogy egy tudásbázisú ágens megalkotható úgy, hogy KIJELENT-jük számára, hogy mit szükséges tudnia. Az ágens inicializáló programja a tervező környezetről lévő tudását leíró mondatok egyenkénti átadásával építhető fel, még mielőtt az ágens elkezdené érzékelni a környezetét. Rendkívül leegyszerűsíti az ágens létrehozásának problémáját, ha olyan reprezentációs nyelvet tervezünk, amellyel egyszerű lesz ennek a tudásnak mondatokban való megfogalmazása. A rendszerépítésnek ezt a megközelítési módját deklaratív (declarative) módszernek nevezzük. Ezzel szemben a procedurális (procedural) megközelítés közvetlenül a program kódjában rögzíti a kívánt viselkedést, amivel minimalizálja az explicit reprezentáció és a következtetés szerepét, és így lényegesen hatékonyabb rendszer jöhet létre. Mind a kétféle ágensre látunk majd példát a 7.7. alfejezetben. Az 1970-es és 1980-as években a két megközelítés támogatói parázs vitákat folytattak. Mi mára felismertük, hogy egy sikeres ágens tervezésekor kombinálni kell a deklaratív és a procedurális elemeket.

Amellett hogy KIJELENT-hetjük az ágensnek, hogy mit kell tudnia, adhatunk is számára egy olyan mechanizmust, amely képessé teszi őt, hogy saját maga megtanulja ezt. Ez a mechanizmus, amit a 18. fejezetben tárgyalunk, általános, a környezetre vonatkozó tudást hoz létre érzetek sorozatának felhasználásával. Ezt a tudást bele lehet illeszteni az ágens tudásbázisába, és felhasználható a döntések meghozatalakor. Ily módon az ágens teljesen autonómmá válhat.

Ezek a képességek – a reprezentáció, a következtetés és a tanulás – mind a logika elméletének és technológiájának több évszázados fejlődésén alapulnak. Mielőtt azonban az elméletet és a technológiát elmagyaráznánk, létrehozunk egy egyszerű világot, amelyet majd felhasználunk ezek illusztrálásához.