Intelligens rendszerek laboratórium 1 - 3. Ellenőrző kérdések
- Rajzolja fel a szabályalapú szakértői rendszerek struktúrális felépítését általában!
- Mik a produkciós rendszerek? (max. 2-3 lényegretörő mondatban) A szabályalapú rendszerek egyik típusa a produkciós rendszerek, ahol HA-AKKOR (IF-THEN) felépítésű szabályok alapján ismert tényekből következtetéseket tudunk levonni. A produkciós rendszerekben az IF utáni feltétel illeszkedését vizsgáljuk, és amennyiben az illeszkedik, a THEN utáni cselekvést végrehajtjuk.
- Mi a kapcsolat a produkciós rendszerek, és a szabályalapú szakértői rendszerek közt? (pár mondatban kulcsszavakkal)
A produkciós rendszerek a szabályalapú rendszerek egy típusa, amelyek a tényekből újabb tényeket képeznek (produkciós szabály). Adatvezérelt rendszernek is mondják.
- Ha egy produkciós rendszert ágensnek tekintünk, akkor mi felel meg a környezetnek, ágensnek, ágens érzékelőinek és beavatkózóinak, ill. programjának? (tömören pontokba szedve)
- Mi a CLIPS? (rövidítés kifejtése, és eszköz célja pár mondatban)
C Language Integrated Production System - egy produkciós rendszer keret, amelyet beágyazott szakértői alkalmazások fejlesztésének megkönnyítésére fejlesztettek ki.
- Mi a LISP? (rövidítés kifejtése, és eszköz célja pár mondatban)
A LISP egyike az elsõ magas szintû programozási nyelveknek. McCarthy az MIT Mesterséges Intelligencia (MI) laboratóriumában adta az ötletet egy lista feldolgozó nyelv kifejlesztésére, és az 50-es évek végén meg is indult a fejlesztés, amely a Lisp 1.5-öt eredményezte. A Lisp nevét a List Processing, vagyis lista feldolgozásról kapta. (...) Fontos tulajdonsága a nyelvnek, hogy lehetõség van "tiszta" programozásra, hisz a LISP támogatja a funkcionális programozást. Másrészt egy interaktív programozási környezetet ad, amiben nagyon hatékonyan és gyorsan lehet rendszereket kifejleszteni, belõni. Egy másik fontos tulajdonsága a LISP rendszereknek, hogy támogatják az inkrementális programfejlesztést, ami nagyon lényeges nagy és összetett programrendszerek kifejlesztésénél. És talán a leglényegesebb újítás, amit a LISP vezetett be, hogy a program és adatszerkezet nem különül el, így programrészek feldolgozhatóak, átalakíthatóak, majd újra futtathatóak.
- Mi a Jess? (eszköz funkciója pár mondatban)
Java Expert System Shell.
CLIPS nyelven leírt produkciós rendszerek (azaz előrefelé-láncolt szakértői rendszerek) futtatására alkalmas.
- Mi a CLIPS, a LISP, és mi a kettő kapcsolata? (rövidítés kifejtése + magyarázat max. pár mondatban)
- Mi a CLIPS és a Jess kapcsolata? (pár mondatban)
- Mire való a JessDE? (1-2 mondat kulcsszavakkal)
Jess Developer's Environment
A JessDE plug-in valójában egy Jess elnevezésű keretrendszer Eclipse-es kiegészítője.
- Hogyan integráljuk a JADE-et a CLIPS-szel? (max. pár mondatban, kulcsszavakkal)
- Mi a munkamemória, és mikor-mi van benne? (max. 1-2 tömör mondatban)
Egy vagy több tudásbázis/adatbázis, amely az adott feladat megoldásához szükséges információkat, tudást tartalmazza.
- Mi a tudásbázis, és mikor-mi van benne? (max. 1-2 tömör mondatban)
- Mire való a "deftemplate" nyelvi elem CLIPS-ben? (tömören)
Egy sablont lehet vele készíteni, amelyet a nemrendezett tények használhatnak, hogy a tényekben szereplő változókat név alapján el tudják érni. (analóg a C nyelv struct fogalmával.)
(Forrás: https://www.csie.ntu.edu.tw/~sylee/courses/clips/bpg/node3.html)
- Mire való a "deffacts" nyelvi elem CLIPS-ben? (tömören)
Kezdeti tényeket lehet vele megadni, vagyis olyan tényeket, amelyek a rendszer alapállapotában is igazak, jelen vannak.
- Mire való a "deffunction" nyelvi elem CLIPS-ben? (tömören)
Új függvényeket definiálhatunk vele közvetlenül a CLIPS-ben. (Forrás: http://clipsrules.sourceforge.net/documentation/v630/bpg.pdf)
- Mire való a "defrule" nyelvi elem CLIPS-ben? (tömören)
Szabályokat fogalmazhatunk meg vele.
- Mit értünk "egy szabály elsütése" alatt CLIPS-ben? (röviden)
- Mire való a "salience"?
- Mik a tények és miként deklaráljuk őket CLIPS-ben? (példával, tömören)
- Mire való a RETE algoritmus? (pár érthető, tömör mondatban)
Az előrefelé következtető, szabálylapú rendszerekben a szabályillesztést megvalósító algoritmus. A RETE felépít és karbantart egy állapot hálót, és a munkamemória változásai alapján határozza meg, hogy mely új szabályok váltak alkalmazhatóvá/alkalmazhatatlanná.
- Mire való az "assert" és a "retract" nyelvi elem? (1-1 mondatban)
Assert: tényeket adhatunk hozzá a tény-listához (fact-list).
Retract: tényeket törölhetünk a tény-listáról.
- Mi a fő különbség az "assert" és a "retract" között bemenetüket tekintve? (max. 1-2 mondatban)
- Hogyan hivatkozik a CLIPS a tényekre és szabályokra? (max. 1-2 mondatban, kulcsszavakkal)
A tényekre indexükkel vagy azonosítójukkal hivatkozunk.
- Mi a BasicJessBehaviour? (helye, funkciója, kontextusa max. pár mondatban)
- A laborgyakorlat Intelligens Szoba feladatában mire szolgál a ControllerAgent ágens? (max. pár mondatban)
Ez az ágens tudja tehát lekérdezni az említett elemek állapotát (a hozzájuk rendelt ágensektől), illetve megfelelő kéréssel ő tudja beállítani egy megfelelő értékre.
- A laborgyakorlat Intelligens Szoba feladatában milyen ágensek fordulnak elő és mi a funkciójuk? (tömören felsorolva)
- Miért van a laborgyakorlat Intelligens Szoba feladatában a környezeti/szenzor-ágenseknek grafikus felhasználói felülete (GUI-ja)? (max. 2-3 mondatban)
Közvetlenül megjelenítik a hozzájuk tartozó elem megfelelő paraméterének értékét, egyben lehetőséget adva a paraméter értékének közvetlen beállítására.
- Miért érdemes különbséget tenni egy ágens hidelmei és a valóság között (gondoljon pl. a ControllerAgent ágensre és környezetére)? (max. pár mondat)
Az ágens hiedelmei nem feltétlen kell, hogy igazak legyenek (pl. valaki megváltoztatta a környezet állapotát, mielőtt az ágens beavatkozott volna). Ilyenkor azonban a cselekvése hatástalan is lehet (pl. értesül, hogy az ablak nyitva van, és be szeretné zárni; de valaki bezárja azelőtt, hogy ő ezt megtehetné).
- Hol keressük a ControllerAgent ágens kiindulási tudásbázisát? Változhat ez a későbbiekben? (max. 2-3 mondatban, konkrétan és érthetően)'
A ControllerJessBehaviour.clp fájlban.