Informatika | Mesterséges intelligencia » Az ismeretalapú rendszerek alapjai

Alapadatok

Év, oldalszám:1998, 26 oldal

Nyelv:magyar

Letöltések száma:626

Feltöltve:2004. július 03.

Méret:174 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

2.2 Ismeretalapú rendszerek alapjai Ebben a fejezetben olyan problémákkal foglalkozunk, amelyeknek a megoldásakor valamiféle keresési eljárást kell alkalmazni. Nem foglalkozunk olyan feladatokkal, mint például az elsőrendű, többismeretlenes egyenletrendszer megoldásával. Adott cél elérésére irányuló különböző döntési helyzetekben legtöbbször nem egyértelmű és nem világos, hogy a feladat megoldása érdekében éppen milyen döntést érdemes hozni, milyen lépést célszerű végrehajtani. Ilyen helyzetekben figyelembe kell venni azon döntések különféle sorozatait, amelyek elvezetnek a kívánt célhoz. Ebben a fejezetben áttekintjük az állapottérnek illetve a megoldás eléréséhez szükséges eszközöknek az operátoroknak a fogalmát, ismertetjük a különböző keresési és ismeret-reprezentációs módszereket. 2.21 Állapottér, keresési problémák megfogalmazása A keresési problémák megfogalmazásának első és egyben

legfontosabb lépése az elérendő cél definiálása. Ezt általában elegendő elvárt tulajdonságaival jellemezni, azaz megadni egy olyan vizsgálatot, amelynek segítségével képesek vagyunk eldönteni, hogy az adott állapot célnak tekinthető-e vagy nem [18]. Bármely keresési probléma következő összetevőkből áll össze: • kiinduló vagy kezdeti állapot • azon operátorok halmaza, amelyek átvezetnek az egyes állapotokból más állapotokba • célállapot vagy célvizsgálat • a megoldás költségének meghatározására alkalmas költségfüggvény Maga a megoldás az, az út, vagy döntések sorozata, amely a kiinduló állapotból egy célállapotba vezet. A költségek az egyes operátorok alkalmazásával járnak, így a megoldás költsége a hozzávezető úton felhalmozott költségekkel egyenlő. Az eredeti feladat igénye szabja meg, hogy a kereséskor beérjük-e egyetlen megoldással, vagy több, esetleg az összes lehetséges

megoldást elő kell állítanunk, avagy a megoldások közül a legkisebb költséggel járó ún. optimális megoldást kell meghatározni. 2.22 Példák állapottér reprezentációkra Útkeresés labirintusban Tekintsünk elsőként egy egyszerű labirintus problémát. A labirintus térképe a 221 ábrán látható, a feladat pedig a bejárattól a kijáratig vezető útvonal megtalálása. Cél Kiindulási pont 2.21 ábra Labirintus A labirintust ábrázoló gráfot a 2.22 ábrán láthatjuk Az utakon mozgó embert X-vel jelölve a kezdeti- és célállapot a 2.23 ábrán látható módon definiálható 4 3 2 1 1 2 3 4 2.22 ábra A labirintus gráfja Az ember szabadon mozoghat a gráf élei, az utak mentén és a kereszteződésekben bármely választott irányba továbbhaladhat. Az új pozíciót a 222 ábrán látható koordinátákkal adhatjuk meg. A kezdőpontból kiindulva az elsőként elért kereszteződés a (2,3) pont. Az (1,4) pont zsákutcának

bizonyul Bár az ember helyzete folyamatosan változik miközben az utak mentén halad lényeges (döntési) pontok csak a kezdőpont, a kereszteződések, a zsákutcák és a célpont. A probléma állapotát az ember helyzete határozza meg. A probléma megoldó eljárás a célállapot elérését foglalja magában a különböző közbenső állapotokon keresztül. Kezdeti állapot Célállapot 2.23 ábra Kezdeti állapot és célállapot A feladatban a célt az ember mozgatásával érjük el: amely egy adott pozícióból egy olyan másik pozícióba történő elmozdulást jelent, amely úttal kapcsolódik az előzőhöz. A mozgás tehát az egyik állapotból a másikba történő átmenetet jelenti Ezt a mozgást problémamegoldó operátoroknak nevezzük. A probléma megoldása tehát az operátorok egy olyan sorozatával írható le, amelynek segítségével a cél elérhető. Állapotok halmaza: az ember lehetséges elhelyezkedései az elágazási pontokon

Operátorok: az egyik elágazási pontról a szomszédos elágazási pontba való lépés Kezdőállapot: az ember a labirintus bejáratánál van Célállapot: az ember a labirintus kijáratánál van 8-as játék A másik sokszor emlegetett példa az ún. 8-as játék Adott egy 3x3-as táblán 8 számozott elem, amelyeket a táblán tologatunk. Szándékunk a kezdeti állapotból az elemek mozgatásával a célállapot elérése, amikor is az egyes elemek emelkedő sorban gyűrűbe vannak rendezve. Az üres mező alatt, felett, tőle balra illetve jobbra levő elem tolható az üres helyre. A probléma állapota minden alkalommal megváltozik, amikor egy elemet elmozdítunk. A probléma operátora az elemek elmozdítása. Állapotok halmaza: tábla összes lehetséges kitöltése (9!=362 880) Operátorok: az üres hely mozgatása jobbra, balra, le illetve fel Kezdőállapotok halmaza: bármely állapot Célállapot: csak egy van 8 3 2 6 4 1 7 5 1 => 2 8 7 3 4 6

5 2.24 ábra 8-as játék Hanoi tornyai probléma Egy asztallapon adott három rúd (1,2,3) és négy különböző méretű korong (A,B,C), amelyek nagyság szerint csökkenő sorrendben az egyik rúdon vannak. A feladat: a korongokat úgy kell egy másik rúdra áthelyezni, hogy ott ugyanebben a sorrendben legyenek. A kezdő és cél állapotot a 225 ábra mutatja Egyszerre csak egy korong mozdítható és egy korong nem helyezhető egy nála kisebb tetejére. => 2.25 ábra Hanoi tornyai játék Állapotok halmaza: az összes megengedett elhelyezések, ahol tehát az egyes rudakon a korongok alulról felfelé csökkenő méretűek Operátorok: az i-edik rúdról a j-dik rúdra helyezzük át a legfelső korongot Kezdőállapotok halmaza: mindegyik korong az 1-es rúdon Célállapot: mindegyik korong a 3-as rúdon Tik-tak-to Ebben a játékban két játékos felváltva rajzol X és O jeleket egy 3x3-as táblára. Az a játékos győz, amelyik három jelet tett folytonosan

vízszintes, függőleges vagy átlós irányban. A játékra a 226 ábrán látható egy példa A kezdeti állapot az üres tábla Célállapot sok van és nem ábrázolhatóak egyszerű rajzzal. A játék akkor ért véget, ha az egyik fél már győzött, illetve ha már minden mező ki van töltve: ez döntetlen. X X X X X O O X X O X X O O X X O O X O O X O X X X O O O 2.26 ábra Példa a tik-tak-to játékra Állapotok halmaza: a tábla összes lehetséges kitöltése, oly módon, hogy az X és O jelek száma maximum eggyel tér el egymástól és tetszőleges számú hely marad üres Operátorok: üres mező kitöltése a soron következő játékos által Kezdőállapot: az üres tábla Célállapotok halmaza: azok az állapotok, amikor az egyik játékosnak három jele van vízszintesen, függőlegesen vagy ferdén egy sorban Legrövidebb útvonal keresése gráfon vagy térképen A feladat az, hogy a lehető legrövidebb úton jussunk el a kiindulási

városból a cél városba. A 227 ábra mutatja, hogy az érintett körzetben az egyes helységek hogyan és milyen hosszú utakkal vannak összekötve. Ekkor a kezdeti állapotnak megfelel az hogy Lajosmizsén vagyunk és még nem jártunk sehol. Az operátorok az utazások a szomszédos városok között. A célvizsgálatnak megfelel az a kérdés, hogy „Szentesen vagyunk-e?” A megoldás költsége a megtett út teljes hossza, és az a megoldás tekinthető optimálisnak, amelynek a költsége a lehető legkisebb. A gráfot nem kell előre ismerni, lehetséges, hogy csak a keresés során tárjuk fel. Nagykőrös Lajosmizse Tiszakécske Kecskemét Kunszentmárton Kiskunfélegyháza Csongrád Szentes 2.27 ábra Térképvázlat a Lajosmizséről Szentesre vezető út megkereséséhez Állapotok halmaza: az elágazási pontokban való tartózkodás Operátorok: az egyik elágazási pontról a szomszédos elágazási pontba való lépés Kezdőállapot: az utazás

kezdetének városában való tartózkodás Célállapot: az utazás céljának elérése 2.23 Keresési eljárások A keresés technikai szempontból úgy tekinthető, mint egy ún. keresési fa felépítése az állapottér felett, ahol a fa csomópontjai az egyes állapotoknak, míg az élek azoknak az operátoroknak felelnek meg, amelyek az egyes állapotokból átvezethetnek más állapotokba [3]. A fa gyökere a kezdeti állapot Maga a keresési fa a csomópontok kiterjesztése révén épül fel, amikor is előállítunk olyan állapotokat, amelyek az adott állapotból az éppen akkor alkalmazható operátorok révén közvetlenül elérhetők. Az így keletkezett csomópontokat nevezzük a kiterjesztett csomópont gyermekeinek. kezdeti állapot a kezdeti állapot kiterjesztése után Lajosmizse Kecskemét Nagykőrös egy újabb csomópont Kiskunfélegyháza Tiszakécske kiterjesztése után 2.28 ábra a keresési fa kibontása Ha már adott a kezdeti

állapot, alkalmazható operátorok, a célvizsgálat és a költségfüggvény, akkor a keresés az alábbi általános algoritmus szerint történik: Általános keresés: 1) Legyen L a kezdeti állapotokat tartalmazó lista 2) Ha L üres, akkor állj le a keresés sikertelen, egyébként legyen n egy csomópont L-ből 3) Ha n egy célállapot, akkor állj le és add vissza a (hozzá vezető úttal együtt) eredményként 4) Egyébként: • töröld n-et L-ből • állítsd elő n gyermekeit • jegyezd fel a hozzájuk vezető utat • add a gyermekeket L-hez • menj vissza az algoritmus 2. pontjára A keresési algoritmusok túlnyomó többsége alapjában véve a fenti módon működik. Az egyes stratégiák közötti döntő különbség az, hogy miként választják ki azt a csomópontot, amelyet a legközelebb ki fognak terjeszteni. Az ún. vak keresési algoritmusok ebben a döntés során kizárólag a már előállított csomópontoknak a keresési fán belül

elfoglalt helyzetét veszik figyelembe. Ezzel szemben a heurisztikus eljárások minden más a konkrét, megoldandó problémával kapcsolatos információt felhasználnak a választáskor. 2.231 Vak keresési módszerek A legegyszerűbb módszerek közé tartozik az ún. szélességben először való keresés[3], amely a keresési fában mindig a gyökérhez legközelebbi csomópontok egyikét terjeszti ki. Először tehát végigvizsgálja a d szinten lévő valamennyi csomópontot és csak ezután veszi sorra a d+1 szinten lévő csomópontokat. Az általános keresési algoritmuson belül ez a következő módosításokat vonja maga után: 2) Legyen n az első csomópont L-ből 4) Add n gyermekeit L végéhez Az eljárás kedvező tulajdonsága, hogy teljesen módszeresen, szintről szintre, végigjárja a keresési fát és így a legalacsonyabb szinten lévő, megoldást találja meg, Ebből adódóan a megoldás abban az esetben, ha minden operátor alkalmazása azonos

költséggel jár, optimális. Kedvezőtlen tulajdonsága viszont, hogy mind a számítási idő, mind a kereséshez szükséges memória felhasználás exponenciálisan nő a keresési fa mélységével. Az utóbbi miatt a szélességben először kereső algoritmust csak kimondottan kisméretű (állapotterű) feladatok megoldásánál használják. A másik legegyszerűbb eljárás a mélységben először való keresés [3], amely a keresési fában mindig a legmélyebben fekvő csomópontok valamelyikét terjeszti ki. Általában az utoljára kiterjesztett csomópont gyermekei közül választ és ha erre nincsen mód, akkor visszatér az ezt megelőző olyan szintre, ahol még van választási lehetősége. Ehhez az általános keresési algoritmust a következőképpen kell megváltoztatni: 2) Legyen n az első csomópont L-ből 4) Add n gyermekeit L elejéhez A mélységben először keresés memóriaigénye szerény, mindössze a fa maximális mélységével egyenesen

arányos. A számítási időigénye viszont, hasonlóan a szélességben először kereséshez, exponenciálisan nő a fa mélységével. Leghátrányosabb tulajdonsága, azonban az, hogy elakadhat egy rossz ágon, amelyről, ha az végtelen nem tud letérni, mivel nincs lehetőség a korai rossz döntések megváltoztatására. A mélység korlátozásával elkerülhető a mélységben először keresésnek ez a kedvezőtlen tulajdonsága. Ez azt jelenti, hogy az ún korlátozott mélységű keresés mindig a legmélyebben fekvő csomópontok valamelyikét terjeszti ki, de csak akkor, ha az nincsen egy előre megadott mélységi korlát alatt. A korlát eredhet a feladat természetéből, példánk esetében a városok száma egy alkalmas korlát. A korlát önkényes megadásának problémáját iteratív mélyítés segítségével kerülhetjük meg, ahol korlátozott mélységű keresést végzünk egyre növekvő mélységi korlát mellett. Célszerű

alkalmazni olyan esetekben, amikor a keresési tér mérete nagy és a megoldás mélysége ismeretlen. 2.232 Heurisztikus keresés A heurisztika egyrészt bármely tanácsot, ökölszabályt jelent, amely gyakran hatékony, de nem minden esetben érvényes, másrészt egy kiértékelő függvényt, amely a probléma egy állapotához egy számot rendel hozzá. Keresésnél a heurisztikát arra használjuk, hogy a még ki nem terjesztett csomópontról eldöntsük, hogy az mennyire lehet közel a célhoz. Ez lehet igen költséges, és mivel csak becslésen alapul, akár tévútra vezető is. A legjobb csomópont kiválasztása elvben nem könnyebb feladat, mint magának a keresési problémának a megoldása. Ennek ellenére alkalmazása célszerű, már kevés alkalmazásfüggő ismeret is nagymértékben segíti a feladat megoldásával járó számításigény csökkentését, illetve korlátozott erőforrások mellett az optimális megoldás megtalálását. A

heurisztikus kiértékelő függvény általában azt a költséget becsli, amely a legközelebbi célállapotnak a pillanatnyi állapotból való elérésével jár. A jó kiértékelő függvény hatékonyan számítható és optimista becslést ad, azaz nem becsli túl a tényleges költséget. Ez utóbbi tulajdonság a heurisztikus algoritmusok kedvező viselkedésének előfeltétele. A továbbiakban a heurisztikus algoritmusok két fő osztályával foglalkozunk: a legjobbat-először, valamint az iteratív javító eljárásokkal. A legjobbat-először kereső algoritmusok úgy működnek, hogy egy f(n) heurisztikus függvény segítségével kiértékelik a még ki nem terjesztett csomópontokat és minden helyzetben, az éppen legjobbat választják, például a keresési fa azon ágát választják, ahol következő lépés a legkevesebb költséggel jár. Ez az általános keresési algoritmus következő módosítását vonja maga után: 2, Legyen n az a csomópont

L-ből, amelyre f(n) minimális A legegyszerűbb ilyen módszer az ún. mohó keresés, amely egyedül a cél lehető leggyorsabb megtalálására törekszik. Ezért a kiértékelés alapja kizárólag a céltól való távolság: a mohó keresés tehát mindig éppen azt a csomópontot terjeszti ki, amelynek a céltól becsült távolsága a legkisebb. A legrövidebbnek tűnő út azonban nem mindig az. A mohó keresés tehát elvétheti az optimális megoldást A minimális költséggel járó megoldást is képes megtalálni az ún. A∗ algoritmus A kiértékelés alapja itt, a már megtett út tényleges és az előttünk álló út várható költségének összege. Az általános keresési algoritmus tehát a következők szerint módosul: 2, Legyen n az a csomópont L-ből, amelyre f(n) = g(n)+h(n) minimális Az A* algoritmus kedvező tulajdonsága, hogy minden operátor alkalmazása pozitív költséggel jár, valamint optimális, ha h(n) pontosan becsüli a cél

távolságát, akkor ugyanis f(n) nem változik az optimális út mentén, így az algoritmus sem tér le arról. Az optimális úton amennyivel nő g(n) annyival csökken h(n). Ha a cél távolságát nem tudjuk ilyen jól becsülni, akkor az algoritmusnak jobban fel kell derítenie az állapotteret, aminek nagy ára van. Általános esetben az A* algoritmusnak mind időbeli, mind memóriaigénye exponenciálisan nő a megoldandó feladat méretével. Ha például a céltávolságra a lehető legóvatosabb becslést adjuk, azaz h(n) = 0 minden n-re, akkor az A* algoritmust a szélességben először való keresésre redukáljuk. A memóriaigény radikálisan csökkenthető iteratív módon mélyítő A* (IDA*) kereséssel. Ennek alapötlete ugyanaz, mint a vak keresés esetén, ahol az iteratív mélyítés csökkentette a memóriaigényt. Heurisztikus keresés esetén azonban az iteratív módon növekvő korlátot nem a mélységre, hanem f(n)-re alkalmazzuk. Az IDA* algoritmus

ciklusonként mélységben-először keresést alkalmaz azokra a csomópontokra, amelyekre f(n) kisebb, mint a megadott korlát. Sikertelenség esetén növeli a korlátot és újraindítja a keresést. A mélységi korlátot nem célszerű egyenként léptetni, hanem mindig az előző ciklusban legkevésbé meghaladó csomópont értékéhez célszerű igazítani. A feladatok egy jelentős része oly módon fogalmazható meg keresési problémaként, hogy megoldásaik a célállapotoknak megfelelő csomópontokban találhatók meg. Ilyen feladat lehet például egy áramkör vagy egy gyártórendszer elrendezésének kialakítása, és általánosságban megfogalmazva az ún. korlátozás kielégítési problémák megoldása. Ha egyedül a megoldásoknak megfelelő csomópontokat akarjuk megtalálni és érdektelen a hozzájuk vezető út, akkor az iteratív javító algoritmusok használhatók. Az iteratív javító algoritmusok működése jól szemléltethető terepen való

tájékozódás, mozgás segítségével. Az egyes felületpontok magassága megfelel a csomópontok jóságának, amit pontos vagy heurisztikus kiértékelés révén kapunk meg. A csúcspontok az optimális megoldások. A tájékozódás pedig egy adott pontban az onnan elérhető, szomszédos pontok kiértékelésével történik meg. A hegymászás (hill-climbing) algoritmus a keresés során a csomópont közvetlen leszármazottait vizsgálja és ezek közül mindig a legjobbat választja. Az algoritmus a következő lépésekből áll: 1, Legyen n a kezdeti állapot 2, Ha n egy célállapot, akkor állj le és add vissza eredményként 3, Egyébként állítsd elő n valamennyi leszármazottját, legyen n = a legjobb a leszármazottak közül lépj vissza 2, -re Az algoritmus nem tárolja a keresési fát, csak a pillanatnyilag vizsgált csomópontot, igy memóriaigénye minimális, ám sikere nagyban függ a felület alakjától. A felületen való tájékozódás

analógiájával élve az algoritmus elakadhat, ha lokális magaslatra, vagy kiterjedt sík vidékre jut, vagy olyan helyre ahonnan gerinctúrát lenne jó tenni, de a gerincre éppen nem vezet út. A megtett út végére emlékezik az ún. tabu keresés Ez mindaddig úgy viselkedik mint a hegymászó algoritmus, amíg lokális maximumra nem jut. Ekkor azonban olyan döntést is hoz, amelyik ront a helyzeten. A ciklikus módosítások elkerülése érdekében az utoljára előállított n állapotot, ahová nem szabad visszalépni, egy ún. tabu listán tartja nyilván. 2.24 Ismeretreprezentációs módszerek Az ismeretreprezentáció és a hozzá elválaszthatatlanul kapcsolódó következtetés a mesterséges intelligencia egyik alapkérdése: miként modellezhető a világ úgy, hogy a modell elégséges alapot adjon az intelligens cselekvéshez[6]? Egy intelligens cselekvő több szinten is leírható. A legfelső, ún ismeret szinten a cselekvőt annak révén definiáljuk amire

képes, amilyen feladatok elvégzésére alkalmas. A logikai szinten adhatjuk meg, hogy ismeretei miként vannak kódolva: milyen reprezentációs nyelven és milyen mondatokban van a tudása megfogalmazva. Végül az implementáció szintjén adható meg az a konkrét nyelv, adatstruktúrák, vezérlés, stb. amelyek révén az adott hardware és software környezetben működőképes Az implementációs szint az ismeretreprezentáció szempontjából általában lényegtelen. A reprezentációs módszerek osztályozása több szempont szerint lehetséges. Az alábbiakban három osztályozást tárgyalunk részletesebben: Aszerint, hogy a probléma megoldását, algoritmusát adjuk-e meg, vagy csak magát a problémát írjuk le, beszélünk procedurális és deklaratív reprezentációról. Az algoritmikus vagy procedurális reprezentáció esetén megadjuk a tárolt ismeretek felhasználásának módját, a feladatmegoldás stratégiáját. Leíró vagy deklaratív

reprezentáció esetén csak azt, adjuk meg, hogy milyen feladatot kell megoldani és a szituációfüggő megoldás kidolgozását egy általános célú következtető rendszerre bízzuk. Ez a reprezentáció logikai alapú leírásoknál valósítható meg tisztán Ismeretalapú rendszereknél alapvetően deklaratív reprezentációról van szó, amelyet a hatékonyság növelésének érdekében legtöbbször algoritmikus elemekkel bővítünk ki. Ilyen algoritmikus elemek lehetnek például: a megoldás módját előíró deklarációk, az eseményvezérelt démonok, a következtető algoritmus beépített stratégiáját módosító ún. meta-szabályok Aszerint, hogy a probléma leírását egyszerű, vagy struktúrával rendelkező, más szóval összetett objektumokkal adjuk-e meg, megkülönböztetünk egyszerű és strukturált reprezentációt. Az elemi vagy egyszerű reprezentációk egyszerű, struktúra nélküli világok leírására alkalmasak. Ezek az adott

problématerületet elemi szintű, osztatlan objektumok, atomok, valamint azok kapcsolatai, a rajtuk végezhető műveletek és a róluk szóló állítások halmazával írják le. A strukturált reprezentációk belső struktúrával, egymástól megkülönböztethető tulajdonságokkal, attributumokkal rendelkező objektumok világát ábrázolják. Az objektumok kapcsolata lehet taxonomikus (osztályozó jellegű) vagy egy objektum összetevődhet több más objektumból mint alkotórészből. E kapcsolatok révén az objektumok tulajdonságainak (attributumainak) öröklődése is megoldható. Az előző szempontokat és a leíró eszközt együttesen figyelembevevő osztályozás procedurális, logikai alapú, strukturált vagy keret alapú és hibrid reprezentációkat különböztet meg: Procedurális reprezentáció: Valamely procedurális programozási nyelv eljárásai, vagy tágabb értelemben véve akármilyen nyelven megírt vezérlést módosító leírások.

Logikai-alapú reprezentáció A logika olyan leíró nyelv, mely lehetővé teszi, hogy a világ tényeire vonatkozó állításokat mondatok formájában fogalmazzuk meg [13]. A mondatokból azután mechanikus eljárások segítségével újabb mondatok származtathatók. Ezt a folyamatot nevezzük következtetésnek. A tények, amelyek a világ részei, lehetnek igazak és hamisak. Mivel a világ tényei nem vihetők be a gépbe, a tényeket reprezentálni kell, azaz valamilyen nyelven ki kell azokat fejezni. A logikai reprezentációban a tényekre vonatkozó állításokat mondatok fejezik ki. A világ és reprezentációja az interpretáció réven kapcsolódik egymáshoz, amely megfeleltetést biztosít a tények és mondatok között. Általános esetben több interpretáció is lehetséges. A logika elemei a szintaxis, amely megadja a nyelv szimbólumait és azokat a szabályokat amelyek segítségével azokból mondatokat lehet formálni és a szemantika, amely megszabja,

hogy a mondatok a világ mely tényeire vonatkoznak. A szemantika ad jelentést a mondatoknak, amelyek anélkül nem többek mint a fenti szabályok szerint összefűzött szimbólumok sorozatai. A következtetés nem más mint adott szintaxis és szemantika mellett új mondatok származtatása a már ismert mondatokból. A következtetéstől elvárjuk, hogy ugyanazon interpretációban az új mondatok is a világ ugyanazon tényeire utaljanak. Egy mondat igaz, ha olyan tényre utal, amely valóban előfordul a világban, azaz a mondat igazsága függ a világ állapotától és az interpretációtól. Vannak olyan, ún érvényes mondatok, amelyek igazsága sem a világ állapotától, sem az interpretációtól nem függ. Ezeket nevezzük tautológiának Ilyen például a Holnap is lesz nap. Bizonyos mondatok kielégíthetetlenek, azaz olyannak írják le a világot, amilyen sohasem lehet. következik Reprezentáció: mondatok mondatok Világ: tények tények

együtt jár 2.29 ábra A logikai következtetés általános sémája A következtetéskor olyan mondatot akarunk előállítani, amely igaz, ha ismeretbázisunkban az eredeti mondatok igazak. Úgy tűnhet, hogy az érvényes és kielégíthetetlen mondatok feleslegesek, hiszen csak nyilvánvalóan igaz illetve hamis dolgokat fejeznek ki, ám éppen létüknek köszönhető, hogy a számítógépekkel logikai következtetéseket tudunk végrehajtani. A következmények gépi kiszámításakor ugyanis a világról csak annyi tudható, ami az ismeretbázisban van, de az már nem hogy, miként feleltethetők meg egymásnak a reprezentációs nyelv elemei és a világ tényei. Ahhoz, hogy automatikusan eldönthető legyen, hogy egy konkluzió következik-e a tudásbázisból, ki kell mutatni, hogy a „ha a tudásbázis igaz, akkor a konkluzió igaz” összetett állítás érvényes, azaz minden interpretációban igaz. Következtetéskor mechanikus szabályokat - ún.

következtetési eljárásokat alkalmazunk annak megállapítására, hogy mi következik a már ismert mondatokból A következtető eljárás a premisszák halmazából egy konklúziót állít elő. A legegyszerűbb formális logika az ún ítéletkalkulus, amelynek szintaxisa csak ítéletváltozókat és két ítéletkonstanst (TRUE,FALSE) enged meg, amelyek a szokásos logikai műveletekkel fűzhetők mondatokba. Ezen műveletek halmaza a logikai és ^, a logikai vagy v, a tagadás ¬, az implikáció => és az ekvivalencia <=>. A műveleti jelek és zárójelek segítségével természetesen összetett mondatok is konstruálhatók. Az ítéletkalkulus szemantikájának alapja, hogy az interpretáció egy mondat ítéletváltozóihoz a logikai igaz (T) vagy a logikai hamis (F) értékeket rendeli minden lehetséges módon. A TRUE ítéletkonstanshoz csak T, a FALSE-hoz pedig csak F rendelhető. Egy mondatnak tehát több interpretációja lehet A mondatok

igazságértékének megállapítása a műveleti jelek jelentése alapján történik, amelyeket az alábbi igazságtáblában foglaltunk össze: A B ¬A A^B AvB A=>B A<=>B T T F T T T T T F F T F F F T F T T F F F F F T T T Ezek közül a műveletek közül az implikáció szorul némi magyarázatra: ez állítás B értékéről ha A igaz. Ha A hamis, akkor A=>B igaz, függetlenül B értékétől Megjegyezzük, hogy A és B között nem feltételezünk semmilyen ok-okozati kapcsolatot! Az, hogy egy állítás következik-e a már ismert állítások halmazából, az ítéletkalkulusban igazságtábla segítségével ellenőrizhetjük. Ha adott a premisszák halmaza (P) és egy konklúzió (Q), akkor készíteni kell egy igazságtáblát a P=>Q mondat ellenőrzésére, ahol P a premisszák konjunkciója. Ha a tábla minden sora igaz, akkor a P=>Q mondat érvényes, ami azt jelenti, hogy Q következik P-ből. Ilyen eljárás mutat

példát a következő táblázat, ahol a premisszák halmaza {P1vP2,¬P2}, a konklúzió pedig P1. P1 P2 P1vP2 ¬P2 (P1VP2)^¬P2 (P1VP2)^¬P2=>P1 T T T F F T T F T T T T F T T F F T F F F T F T Az igazságtábla segítségével való következtetés teljesen mechanikussá tehető, hiszen nem kell mást tenni, mint minden lehetséges módon T és F értékeket rendelni a premisszák ítéletváltozóihoz és kiértékelni az ilyen módon kapott immár interpretált mondatokat a műveleti jelek jelentése alapján. Ehhez tehát nem kell semmit tudni a mondatok jelentéséről, arról, hogy a világ mely tényeit írtuk le velük. A gond csupán az, hogy az eljárás idő és helyigénye exponenciálisan nő az ítéletváltozók számával, azaz ha az igazolandó mondat n szimbólumot tartalmaz n akkor fel kell sorolni az igazságtábla 2 sorát. Kötött formájú mondatokból álló premisszák esetén létezik ennél sokkal hatékonyabb

ellenőrzési módszer. Ilyen például a Horn klózokra korlátozott logika, ahol a mondatok formája A1^A2^.^An^B, ahol valamennyi Ai pozitív (nem tagadott) ítéletváltozó Az igazságtáblán végezhető műveletek bizonyos minták szerint összefoghatók. Ezeket a mintákat fejezik ki a már említett következtetési szabályok avagy eljárások. Az elsőrendű logika (avagy elsőrendű predikátumkalkulus) az a logikai nyelv, amely megalapozza a jelenleg használatos ismeretreprezentációs módszerek többségét. Az elsőrendű logika megengedi, hogy a világot objektumokra, azok tulajdonságaira és az objektumok közötti kapcsolatokra tagoljuk. Ahhoz, hogy elsőrendű logikát használni tudjuk, az szükséges, hogy legyen a következtetési szabályoknak egy olyan halmaza, amelyekkel a következtetés biztos, és ha lehet, teljes. Egy következtetést akkor nevezünk biztosnak, ha csak olyan mondatokat hoz létre, melyek igazak minden olyan interpretációban, amiben az

eredeti mondatok halmaza igaz volt. A következtetési eljárást akkor nevezzük teljesnek, ha az képes az összes következményt előállítani. A dedukció problémája, hogy meg lehet-e adni a következtetési szabályok egy olyan készletét, melyekkel a következtetés biztos és teljes. Ilyenek például az ún természetes levezetés szabályai, melyek többek között olyan régről ismert, emberi gondolkodás számára természetesnek tartott szabályokat is magukba foglalnak, mint a modus ponens, vagy a reductio ad absurdum. A következtetés azonban eme szabályok segítségével aligha automatizálható. Ez akkor látható be, ha a következtetést keresési problémaként fogalmazzuk meg, ahol: • a kezdeti állapot az axiómák konjunkciója • a célállapot a bizonyítandó tétel és • az operátorok a következtetési szabályok Mivel sok és sokféle módon alkalmazható szabályunk van, és ráadásul egyes szabályok kombinálják a már ismert

tényeket, az elágazások száma exponenciálisan nő az ismeretbázisunk méretével. Ráadásul nehéz tanácsot adni arra nézve, hogy egyes helyzetekben éppen milyen szabályt célszerű alkalmazni. A keresési tér kedvezőbb szerkezetű és a keresés jobban irányítható, ha egyetlen általános következtetési szabályt alkalmazunk. Ilyen szabályok az általános modus ponens és a rezolúció. A rezolúció a modus ponens általánosítása, az elsőrendű logika jól automatizálható következtetési eljárása, ezért itt csak ezt tárgyaljuk. A rezolúciót használó bizonyító eljárás a tagadás cáfolatának elvén alapul. Adott egy IB ismeretbázis, amely ellentmondásmentes aximákat tartalmaz és egy Á állítás. Bizonyítsuk be, hogy Á következménye IB-nek, azaz mutassuk ki, hogy az IBv¬Á halmaz kielégíthetetlen. Az, hogy a mondatok egy halmaza kielégíthetetlen, a mondatok közötti ellentmondás révén bizonyítható. Ebből következően az

eljárás a következő: 1, Tagadd a célállítást és add azt az ismeretbázishoz 2, Alakítsd át a mondatokat klóz formára 3, Amíg az üres klózt elő nem állítod, alkalmazd ismételten a rezolúciós szabályt A Horn logika, a rezolúcióval mint következtetési szabállyal megfelel azoknak a követelményeknek, amelyeket a reprezentációs nyelvekkel szemben támasztunk: kifejező, tömör, egyértelmű és biztosítja a hatékony következtetés lehetőségét. Ezért is válhatott a logikai programozás alapjává, amely a számítógéppel történő feladatmegoldás két aspektusát a feladatmegoldást és kódolást próbálja egyesíteni. A logikára épít, amely ha nem is minden tekintetben kielégítő módon, de mégis sokkal közelebb áll az emberi gondolkozáshoz, mint bármely programnyelv. A logikai programozás gyökeresen különbözik a hagyományos programnyelvektől abban, hogy egy absztrakt modellből származik és független a számítógépek

pillanatnyi műszaki lehetőségeitől. Egy logikai program olyan axiómák halmaza, amelyek objektumok tulajdonságait illetve az azok közötti relációkat határozzák meg. Egy axióma lehet egy egyszerű tényállás, tényállások konjunkciója vagy szabály. A program maga a lehetséges következmények egy halmazát rejti magában - ez a program jelentése. A program végrehajtása, avagy a számítás nem más, mint egy célállítás konstruktív bizonyítása a programban megfogalmazott axiómák felhasználásával. A célállítás egzisztenciálisan kvantált: az az annyit állít, hogy létezik olyan egyedi objektum, amely bizonyos adott tulajdonságokkal rendelkezik. Az axiómák Horn klózokként adhatók meg, így a logikai programozás procedurális interpretációja a Horn klózokon alapuló logikának, azaz a feladat értelmezhető úgy is, hogy ahhoz, hogy megoldjuk A-t, meg kell oldani B1,.B2,Bn-t Egy logikai program mindég egy célállítás

segítségével bírható szóra. Ha ez a célállítás változókat tartalmaz, akkor a konstruktív bizonyítás azontúl, hogy megadja igaz-e az állítás a változók lekötésének révén más eredményeket is tud produkálni. Ezt valósítja meg az ún. absztrakt interpreter: 1, Inicializálás: legyen a rezolválandó célok listája, R = {G} 2, Ha R üres, vizsgáld meg G-t: ha G létezik, add vissza eredményként; egyébként állj le - a bizonyítás sikertelen 3, Egyébként válassz egy A célt R-ből és egy A’:-B1,B2,.,Bn klózt a logikai programból állítsd elő A és A’ legáltalánosabb helyettesítését, Q-t ha nincsen olyan cél-klóz pár, amelyre Q létezik, állj le - a bizonyítás sikertelen töröld A-t R-ből add B1,B2,.Bn alcélokat R-hez alkalmazd a Q helyettesítését R elemeire és G-re menj vissza 2,-re Az előbbiekben vázolt algoritmus nem-determinisztikus, azaz nem mondja meg, hogy egy adott szituációban melyik célt válasszuk a

rezolválandók listájáról és hogy melyik klózt a logikai programból. Így itt is különféle stratégiákkal lehet a bizonyítás és a megoldás keresését befolyásolni. A logikai programozásban tehát kettéválik a feladat a megoldáshoz szükséges deklaratív logikai megfogalmazásra és az ezeket az ismereteket manipuláló mechanizmusra, a vezérlésre. A Prolog [10] egy programozási nyelv, amely alapvető konstrukcióit a matematikai logikától kölcsönzi. A Prolog programok számítógépen való végrehajtása szigorúan kötött előírások szerint történik. A program tehát végrehajtandó utasítások együttesének tekinthető. Ebben a tekintetben egy Prolog program semmiben sem különbözik más programoktól. A lényeges különbség - és a logikai programozással való rokonság - abban áll, hogy a számítás eredménye a Prolog programot alkotó axiómák logikai következménye. Ezért egy jó stílusban írott Prolog program mindig

olvasható úgy, mint logikai állítások egy halmaza. Ez a program deklaratív olvasata A Prolog nyelv három fő ponton tér el a logikai programozás modelljétől: • megköti az absztrakt interpreter által nyitva hagyott döntéseket • a tisztán logikai program kifejező erejét növeli meta-logikai és kiegészítő szolgáltatásokkal • hozzáférést biztosít a számítógép bizonyos szolgáltatásaihoz, úgymint aritmetika, input/output A Prolog program rendezett klózok halmaza, ahol mind a klózok sorrendje, mind pedig az egye klózokon belül a a feltételek sorrendje kötött és a végrehajtás mechanizmusa ezeket a megkötéseket használja ki. A Prolog interpreter absztrakt testvérétől két lényeges ponton különbözik: • tetszőleges cél választása helyett balról jobbra haladva dolgozza fel a célokat és az új célokat a rezolválandó célok listájának elejére helyezi, tehát mélységben először keresi a feladat megoldását • a

klózok közül a sorrendnek megfelelően a legelső olyat választja, amelynek fejrésze egyesíthető az aktuális céllal. Ha nincsen ilyen akkor visszalép legutolsó döntéséig és ott egy következő lehetőséget választ A szabályok sorrendje meghatározza, hogy a program milyen sorrendben hozza létre a feladat egyes megoldásait. Rekurzív szabályok esetén előfordul, hogy a program végtelen ciklusba esik és nem áll le. Ez a veszély együtt jár a mélységben először kereséssel. A szabály-alapú reprezentáció [3] korlátozottabb nyelvű mint az elsőrendű logika és következtetési mechanizmusa kötöttebb, mint a rezolúciós előreláncoló tételbizonyító rendszereké. Ennek köszönhetően viszonylag hatékony következtetést tesz lehetővé. Előnye továbbá, hogy közelebb áll az emberi gondolkodás bizonyos formáihoz is. Egy tipikus szabályalapú rendszer ismeretbázisának egyik főrésze az adatbázis, amely nem más mint az elemi

tényállások halmaza. Az adatbázist szokás más néven munkamemóriaként is emlegetni. Az adatbázis rögzíti mindazon tényeket, amelyeket egy probléma megoldásának adott pillanatában a világról ismerünk. A zárt világ feltételezése természetesen érvényben van: azaz minden állítás ami nincs benne az adatbázisban, hamisnak tekintendő. Az ismeretbázis másik fő része a szabálybázis, mely ha - akkor típusú szabályok halmaza, amelyek értelmezése kissé eltér a logikai implikáció értelmezésétől: a következmény javaslat egy akció végrehajtására nem pedig egy egyszerű logikai állítás. A szabály tehát egy feltétel – akció páros A feltétel oldal kifejezi azokat a körülményeket, melyek között egy szabály egyáltalán aktivizálódhat. A feltétel a minta adja meg, amely adatbázisbeli tényekre vonatkozik. A mintában, amely változókat is tartalmazhat, tények logikai kapcsolat definiálható, illetve tagadás fogalmazható

meg. Az akció oldal adja meg mi történjék a szabály aktivizálódásakor az ún. tüzeléskor Hatására módosulhat az adatbázis, illetve input-output műveleteket hajthat végre a rendszer. A szabályalapú rendszerek alkalmazásának előnyei: • Modularítás: a szabályok, amelyek az ismeretanyag egy-egy egységét képezik egymástól függetlenül hozhatók létre, törölhetők vagy módosíthatók • Univerzális megjelenítés: ismereteinket kizárólag szabályok formájában fogalmazunk meg • Természetesség: a hétköznapi életben is igen sok helyzetben feltételes szabályokkal fejezzük ki magunkat • Bizonytalanságkezelési lehetőségekkel a rendszer könnyen kiegészíthető A szabályalapú rendszerek alkalmazásának hátrányai: • Végtelen láncolás: mind adatvezérelt, mind célvezérelt esetben – éppen a modularítás miatt – könnyen írhatók olyan szabályok, amelyek esetében a következtető mechanizmus a feladatmegoldás

során végtelen szabályláncot generál. • Új, a korábbiakkal ellentmondó ismeret beépítése lehetséges, mivel nincsen általános módszer a szabályok esetleges ellentmondásainak ellenőrzésére, így a modularitás adta lehetőség miatt – egy új szabály könnyen ellentmondásossá teheti a szabályrendszert • Meglévő szabályok módosításánál is fennáll az előző két lehetőség • A stratégiát módosító ún. meta-szabályokkal a beépített vezérlési stratégiát módosítani. Ezek azonban formailag nem különböznek a tárgyterületi ismeretanyagot leíró szabályoktól, ami megtévesztő lehet. Egy szabály jólstrukturáltságát erősen lerontja az, ha feltétel részében keverednek e kétféle ismeretanyagra utaló állítások • Nincs szabványosítva a szabályok nyelve, ez implementációnként nagyon eltérhet, ami a szabálybázisok másik rendszerbe való átvitelét megnehezíti. Strukturált vagy keret-alapú

reprezentáció A logika nem veszi figyelembe, hogy gondolkodásunk tárgyakhoz, objektumokhoz és főképpen azok közös jellemzőit megragadó fogalmakhoz, ún. osztályokhoz illetve prototípusokhoz kapcsolódik. Mindezt kihasználja az ún keretalapú ismeretreprezentáció és következtetés [13], amely lehetővé teszi osztályok, osztály hierarchiák és adott osztályba tartozó egyedek definiálását és ezen objektumok hatékony manipulálását. Minsky a 70-es években fejlesztette ki a keret alapú reprezentációs módszert. Nála a keret egy tipikus, szterotip szituációt ábrázol: minden átélt szituáció a hozzátartozó viselkedéssel együtt egy gondolati egységet képez, amelyet agyunk keret formájában tárol. Új szituációba kerülve a már átélt szituációhoz illesztve alakítjuk ki viselkedésünket, elvárásainkat, miközben a korábbi keretet esetleg módosítjuk vagy új keretekkel bővítjük. A keret alapú ábrázolás [16]

elterjedéséhez jelentős mértékben hozzájárult az objektum orientált programozás, amelynek néhány jellemzőjét felfedezhetjük a keretek között is. A hagyományos programozási technikákban a programok két egymástól független jól elkülönülő részre bonthatók: az algoritmikus részre és adatleíró részre. Az objektum orientált programozás e két részt egyesíti: objektumokkal dolgozik, amelyek mind adatokat, mind módszereket tartalmaznak. Az objektumok a sémákhoz hasonlóan minden információt, módszert tartalmaznak, ami a használathoz szükséges és a program működését az objektumok közötti kapcsolatok irányítják. Az objektum orientált programozásban az objektumokat osztályokba szervezik. Az osztály nem más mint az objektum absztrakt modellje, amely a hozzá tartozó tartózó objektumokról minden közös jellemzőt, módszert tartalmaz. Az osztály megvalósításai, az objektum elemek már konkrét, egyedi jellemzőkkel

rendelkeznek és az osztály és elemei között öröklődnek a jellemző adatok, eljárások. Az osztály változók értékei is öröklődnek, az elemi változók pedig az elem egyedi értékeit tartalmazzák. Az objektum orientált programozás főbb jellemzői közül több a keretalapú reprezentációban is megtalálható A keret olyan információ-tárolási alapegység, mely összefogja mindazon tulajdonságokat, melyek egyetlen objektumra jellemzők és azokat a relációkat, melyek ezen objektumot más objektumokhoz kötik. Mind a tulajdonságokat, mind a relációkat, rekeszekkel (slot-okkal) és a hozzájuk tartozó értékek párosaival lehet leírni. A keretek mind osztályok, mind egyedek leírására szolgálhatnak Amennyiben a keret osztályt határoz meg akkor, az is-a reláció segítségével megadható, hogy milyen más osztály alosztályának tekinthető. Így osztály hierarchia adható meg Ha keret egy egyed leírására szolgál, akkor meg kell,

adni, hogy melyik osztályhoz tartozik. Erre szolgál az instance-of reláció Ahogy egy objektumot többféle nézőpontból tekinthetünk, ugyanúgy megadhatjuk, hogy egy objektum egyszerre több osztály egyede is lehessen. A keret alapú rendszerekben alapvető következtetés az öröklődés: az egyes osztályok megöröklik a hierarchiában felettük elhelyezkedő osztályok rekeszeit és ha vannak akkor azok értékeit is. Ehhez hasonlóan az egyes egyedek is megöröklik azon osztályok tulajdonságait és értékeit, amelyekhez tartoznak. A több helyről való öröklődés lehetősége konfliktushoz vezethet. Ennek feloldására több lehetőség van: • Ha a konfliktus egy öröklődés mentén jött létre, akkor a legspecifikusabb osztály meghatározásából származó értéket szokás elfogadni • Ha a konfliktus forrása több ágról való öröklődés, akkor ennek feloldásához különbséget kell tenni szükséges és tipikus tulajdonságok között.

Eddig a pontig a keret alapú reprezentáció is lényegében logikai reprezentáció, csak más, az emberi olvasatot megkönnyítő strukturáltabb formában. Megváltozik a helyzet, ha megengedjük, hogy az egyes rekeszekhez ne csak értékeket, hanem számítási eljárásokat is, demonokat vagy metódusokat lehessen rendelni. A démonok vagy metódusok akkor lépnek működésbe, ha a keretet manipuláljuk. A metódus típusa határozza meg az aktivizálódás feltételét: • az if-needed típusú aktivizálódásra akkor kerül sor, ha egy rekesz értékére szükség vam, ám az ismeretlen • a when-changed típusú akkor lép működésbe, ha egy rekesz értéke megváltozik. Ebben az esetben a metódus előre meghatározott módon vagy a régi vagy az új értékkel dolgozik A metódusok ugyanúgy öröklődnek mint a rekeszek és értékeik. A keret alapú reprezentáció alapfogalmainak összefoglalása: • keret vagy idegen szóval frame névvel ellátott,

megkülönböztethető tulajdonságokkal (attributumokkal) rendelkező objektum vagy fogalom ábrázolása • rekesz vagy slot az attributumok ábrázolására szolgáló névvel, típussal, értékkel és alapértelmezéssel rendelkező memóriaterület • öröklődés az attributumok és azok tulajdonságainak átadása a hierarchikus kapcsolatok révén • démon vagy függvény az egy-egy rekesz értékváltozását figyelő és a változáskor aktivizálódó eljárás A keret alapú reprezentáció előnyei: • Eseményvezérelt végrehajtás a démonok, olyan eljárások, amelyek végrehajtása eseményvezérelt. A démonok csak akkor aktivizálják a rendszert ha az adott rekeszben előre specifikált értékváltozás következik be. • Az ismeretek szervezése A keretek ismereteinket egy világos, áttekinthető struktúrába szervezik, ahol az egyes rekeszek tartalmának elérése közvetlenül történik. • Önvezérlés A keretek úgy vannak

strukturálva, hogy az adott, problémamegoldó helyzetben képesek meghatározni saját alkalmazhatóságukat. • Dinamikus értékek elhelyezése Az egyes rekeszek értéke a problémamegoldás során dinamikusan, könnyen változtatható • Deklaratív és procedurális ismeretek együttes ábrázolása A deklaratív ismereteket a rekeszek neve és tartalma, míg a procedurális ismereteket az egyes rekeszekhez kapcsolódó démonok testesítik meg. A keret alapú reprezentáció hátrányai: • Prototípusoktól való eltérés: nagyon sok valós jelenség eltér a megszokott sémától. Ha nem megfelelő absztrakciós szinttől indítottuk a keretek kibontását, a kivételek miatt nagyon elbonyolódhat a rendszer. • Új szituációkhoz való alkalmazkodás problémás, ha olyan új szituációt vagy objektumot kell reprezentálni, amelyet nem tudunk a hierarchiába beilleszteni. Ez korlátozza a keret-alapú reprezentáció alkalmazhatóságát • A heurisztikus

ismeretek ábrázolása problémás, míg a szabályalapú rendszereknél könnyen írhatunk heurisztikákat itt nem. Keretekkel például könnyen le lehet írni egy tipikus betegséget, egy általánosat, valamely egyedi betegség specifikus szimptómáit, azonban azt, hogy az egyes szimptómák hogyan hatnak egymásra, így hogyan befolyásolják a diagnózist, inkább szabályok segítségével lehet megadni. Ez az oka annak, hogy tisztán keret alapú eszközök helyett inkább hibrid rendszereket alkalmaznak, amelyek ötvözik a keret- és a heurisztikus ismeretek leírására alkalmas szabályalapú reprezentálási módokat. A keret attribútumok közötti kapcsolatokat, heurisztikus ismereteket lehet szabályokkal leírni. Természetesen egy hibrid rendszer következtető gépében ezért a keret-struktúra feladatmegoldásra való mozgósítását ellátó öröklődési-, dámon és egyéb mechanizmusok mellett megtalálható a szabályok végrehajtását

biztosító mechanizmusok is. 2.35 Ellenőrző kérdések 1, Mit nevezünk állapottérnek, kiinduló és célállapotnak és mik az operátorok? 2, Ismertesse az általános keresési algoritmus működését! 3, Mi(k)nek a módosításával és hogyan származtathatók ebből a különböző a gyakorlatban használt eljárások? 4, Sorolja fel a keresési eljárások legfontosabb jellemzőit! 5, Mit nevezünk heurisztikus keresésnek és az milyen módon gyorsítja az eljárást? Mondjon erre néhány példát. 6, Sorolja fel különböző szempontok alapján az Ön által ismert ismeretreprezentációs módszereket! 7, Mi az alapvető különbség a procedurális és a deklaratív ismeretreprezentáció között? 8, Ismertesse röviden a matematikai logika alapú ismeretreprezentációt és hogy hogyan történik ebben az esetben a következtetés? 9, Ismertesse a rezolúció elvét és a Horn klózok alkalmazását! 10, Ismertesse a szabályalapú rendszerek

felépítését, legfontosabb jellemzőiket, előnyeiket és hátrányaikat! 11, Mi a keret (frame), hogyan épül fel, mik legfontosabb tulajdonságaik, alkalmazásuk előnyei és hátrányai? 12, Ismertesse röviden a démonok működési mechanizmusát!