Intelligens rendszerek laboratórium 1 - 3. Ellenőrző kérdések

A VIK Wikiből


- 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.

(Forrás: https://inf.mit.bme.hu/sites/default/files/materials/category/kateg%C3%B3ria/oktat%C3%A1s/bsc-t%C3%A1rgyak/rendszermodellez%C3%A9s/14/business-rules-print.pdf 8. dia)

- 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.