Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaAdrián Biró Megváltozta több, mint 10 éve
1
A CLIPS keretrendszer www.ghg.net/clips
2
CLIPS "C" Language Integration Production System
3
COOL A CLIPS továbbfejlesztése az objektum orientált paradigmák mentén.
4
CLIPS 6.23
5
Dialog Window Ez a CLIPS Shell, itt fogadja a parancsokat. Itt kapjuk a hibajelzéseket, és a megfigyelt objektumok értékeit. Nem tudjuk a sorok tartalmát visszatörlés nélkül javítani!
6
Menü Execution Gépelés nélkül itt tudunk kiadni parancsokat. Beállíthatjuk a megfigyelni kívánt objektumokat. Futtatás lépésről lépésre….
7
Menü File Open : megnyitás szerkesztésre. Load : állomány betöltése
8
CLIPS Shell
9
Utasítások alakja ( utasítás * ) : lehet egy újabb utasítás
10
Shell parancsok (clear) – törli az CLIPS környezet beállításait. (reset) – alaphelyzetbe állítja a CLIPS környezet beállításait. (load ”file”) – betölt egy állományt, egy CLIPS nyelven írt szöveges fájlt. (run) – futtatja az előzőleg betöltött programot
11
Programok javasolt futtatása (clear) (load ”file”) (reset) Esetenként valami kezdő állítás, tény beállítása. (run)
12
CLIPS – forrás állomány Megjegyzés: bármelyik sorban a ”;” jel utáni karakterek. Nincs program kezdetét ill. végét jelölő elem. Mindig azok a szabályok aktivizálódnak, melyeknél a szabály feltétele igaz.
13
(defrule) parancs - 1.clp [1] Szabály definiálására használjuk. (defrule [ ] [ ] * => * )
14
(defrule) parancs - 1.clp [2] - valamilyen azonosító [ ] – nem kötelező megjegyzés [ ] – nem kötelező deklaráció
15
(defrule) parancs - 1.clp [3] * - feltételek ÉS kapcsolatban * - ha a feltétel teljesül, akkor ez(ek) fut(nak) le. Megj: a szabályok nevét felül definiál- hatjuk. (Az utolsó lesz az érvényes.)
16
(defrule) példa (defrule hello =>(printout t "Hello vilag!" crlf)) hello – a neve Nincs feltétel megadva, mert nem kötelező. Kiírja a „Hello vilag!” szöveget, majd sort emel.
17
(printout ln kif*) Logikai név Kifejezések – ezek íródnak ki.
18
(assert fact) Tény megadása Példa (assert (var 12)) – beállítja a var változó értékét 12-re.
19
2.clp Ez egy fa bejárására készült program. Futtatás előtt meg kell adnunk a volt változó értékét, mint tényt. (assert (volt start)) - legyen a start csúcs a kezdő csúcs.
20
(deffact név *) A programban olyan tényeket írhatunk elő ezzel, amelyek minden kiadott (reset) parancs hatására azt az eredményt adják, mintha az (assert )….(assert ) parancsokat adtuk volna ki.
21
(deftemplate név +) Ezzel egy több mezőből álló struktúrát alakíthatunk ki. - (slot mezőnév) slot – egyszerű mező
22
paraméterek ? jellel kezdődő nevek Például: ?x ?y ?valami
23
3.clp Nézzük meg a 3.clp programot.
24
Adat típusok definiálása A (deftemplate) utasítással lehet adatszerkezeteket definiálni. Nézzük meg, hogy milyen adat mezőket definiálhatunk a (slot) utasítással.
25
(slot) (slot név [ ] [ ]) NUMBER – lehet INTEGER vagy FLOAT is. INTEGER – egész számok FLOAT – lebegőpontos számok STRING - karaktersorozat
26
(slot) A mező által felvehető értékeket korlátozhatjuk ezzel a funkcióval.
27
(slot) – Másik alakja (slot név ) (allowed-values x y z) : x,y,z értékeket veheti fel. (default x) : a kezdő értéke legyen x.
28
(retract xx) Töröl egy tényt a ténylistából.
29
Aritmetikai Kifejezések ( *) eredménye az operandusok összege, vagy szorzata. Ha INTEGER és FLOAT típust adunk össze, akkor az eredmény FLOAT típusú lesz. ( ) eredménye az op1-op2 vagy op1/op2 lesz.
30
Logikai Kifejezések (not op) (and * ) (or *)
31
Hasonlítások – minta illesztés Visszatérési érték TRUE vagy FALSE. (eq op1 op2) – bármilyen típusra. (neq op1 op2) – bármilyen típusra. Számtípusokra (= op1 op2), (<> op1 op2) (>= op1 op2), (<= op1 op2) (> op1 op2), (< op1 op2)
32
Értékadásnál használhatók &:, |:, ~: Példa (y ?y&:(<> ?x (- ?y 1) )) y értéke legyen ?y, felvéve hogy ?x nem egyenlő ?y-1 -el.
33
4.clp Nézzük meg a 4.clp programot!
34
(bind változó (read)) Beolvasás konzoltól, és a beolvasott értéket a változóba tároljuk.
35
Elágazás (if then else ) Nem kötelező else ág.
36
Ciklus (while ) (loop-for-count (változó kezdő vég) )
37
Tömb $ Változóként: $?
38
Függvény (deffunction ( … ) Utasítások…. (return ) )
39
Kérdező függvény (deffunction kerdes (?szoveg $?allowed) (printout t ?szoveg crlf) (bind ?v (read)) (if (= (length$ ?allowed) 0) then (return ?v) ) (while (not (member$ ?v ?allowed)) (printout t "Probald megegyszer: " ?szoveg crlf) (bind ?v (read)) ) (return ?v) )
40
Kérdező függvény hívása (bind ?x kerdes ”maga a kérdés” ) = valamilyen felsorolás, azok az elemek, amelyek a kérdésre válaszként elfogadhatóak. ?x = ebben a változóban kapjuk meg a választ.
41
6.clp Az előzőekre példa.
42
Barát javasló – friend.clp 3 kérdés alapján javasol barátot.
43
Barát javasló – friend2.clp Az előző rendszer egy másik megvalósítása.
44
Vége
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.