Title: CLIPS
1CLIPS
- Module Intelligence artificielle
2Principes
- Langage de description de S.E.
- Faits et règles typés
- Assertion et délétion
- Chaînage avant
- Hiérarchie des règle salience
- Règles actives à un instant agenda
- Réfraction
- www.
3 4Principe
Base de règles règles
Type de faits
réfraction
Agenda
activation
Règles activables
Faits
cycle
production
appariement
5Mots clés CLIPS
Base de règles règles
defrule
deftemplate
Type de faits
assert/modify duplicate/retract/deffacts/reset
réfraction
refresh
Agenda
activation
Règles activables
Faits
runltngt
production
appariement
6Types faits et règlesexemple 1
- (deftemplate objet
- (slot nom)
- (slot position)
- (slot couleur))
- (deftemplate posseder
- (slot objet))
- (deftemplate liste-nombres (multislot values))
- (defrule prendre (objet (nom ?unNom))
- gt
- (assert(posseder (objet ?unNom))
7Types faits et règlesexemple 1
- faits initiaux en ligne assert
- (assert(objet (nom cafetiere)
- (position 5-7)
- (couleur bleue)))
- faits initiaux en vrac deffacts
- ils seront insérés suite à l'instruction
(reset) - (deffacts scene1 "Exemple de scene"
- (objet (nom theiere)
- (position 4-4)
- (couleur verte))
- (objet (nom chaise)
- (position 1-1)
- (couleur jaune))
- (objet (nom pomme)
- (position 4-8)
- (couleur rouge)))
8Execution
- (load ltfile-namegt)
- (reset) assertion des deffacts
- (run ltngt) lance n cycles
- (agenda) visualise lagenda
- les faits et règles sont numérotés
- (assert ltfactgt)
- (retract ltnb-factgt)
- (refresh ltrulegt) ré-injection
- (undef ltrulegt)
9Exemple dexécutionexemple 1
- deloor_at_deloor/enseignement/ia/CLIPS/EXAMPLES/pd
l clips - CLIPS (V6.21 06/15/03)
- CLIPSgt (load "coursExample1.CLP")
- Defining deftemplate objet
- Defining deftemplate posseder
- Defining deftemplate liste-nombres
- Defining defrule prendre j
- Defining deffacts scene1
- TRUE
- CLIPSgt (assert (objet (nom cafetiere) (position
1-2) (couleur bleue))) - ltFact-0gt
- CLIPSgt (facts)
- f-0 (objet (nom cafetiere) (position 1-2)
(couleur bleue)) - For a total of 1 fact.
- CLIPSgt (agenda)
- 0 prendre f-0
- For a total of 1 activation.
- CLIPSgt (run)
- CLIPSgt (facts)
CLIPSgt (facts) f-0 (initial-fact) f-1
(objet (nom theiere) (position 4-4) (couleur
verte)) f-2 (objet (nom chaise) (position
1-1) (couleur jaune)) f-3 (objet (nom pomme)
(position 4-8) (couleur rouge)) For a total of 4
facts. CLIPSgt (agenda) 0 prendre f-3 0
prendre f-2 0 prendre f-1 For a total of 3
activations. CLIPSgt (run) CLIPSgt (facts) f-0
(initial-fact) f-1 (objet (nom theiere)
(position 4-4) (couleur verte)) f-2 (objet
(nom chaise) (position 1-1) (couleur jaune)) f-3
(objet (nom pomme) (position 4-8) (couleur
rouge)) f-4 (posseder (objet pomme)) f-5
(posseder (objet chaise)) f-6 (posseder
(objet theiere)) For a total of 7 facts. CLIPSgt
(agenda) CLIPSgt
10Debug
- Enumération (des constructeurs)
- (list-defrules)
- (list-deftemplate)
- (liste-deffacts)
- Inspection
- (ppdefrule ltdefrule-namegt)
- (ppdeftemplateltdeftemplate-namegt)
- (ppdeffacts ltdeffacts-namegt)
11Debug
- Visualisation durant lexécution
- (watch)
- (watch all)
- (watch rules)
- (watch statistics)
- (unwatch)
12Appariement
- Variables en tête de règle
- Première rencontre affectation
13Appariement
14Exemple 2
- deloor_at_deloor/enseignement/ia/CLIPS/EXAMPLES/pd
l clips - CLIPS (V6.21 06/15/03)
- CLIPSgt (load "coursExemple2.CLP")
- Defining deftemplate vehicule
- Defining defrule sortirParking j
- TRUE
- CLIPSgt (assert (vehicule (nom trotinette)
(position parking) (vitesse 0))) - ltFact-0gt
- CLIPSgt (assert (vehicule (nom kart) (position
route) (vitesse 12km/h))) - ltFact-1gt
- CLIPSgt (facts)
- f-0 (vehicule (nom trotinette) (position
parking) (vitesse 0)) - f-1 (vehicule (nom kart) (position route)
(vitesse 12km/h)) - For a total of 2 facts.
- CLIPSgt (agenda)
- 0 sortirParking f-0
- For a total of 1 activation.
- CLIPSgt (run)
- CLIPSgt (facts)
(deftemplate vehicule (slot nom) (slot
position) (slot vitesse)) (defrule
sortirParking ?f1 lt- (vehicule (position
parking)) gt (modify ?f1 (position route)
(vitesse 40km/heures)))
15Exemple 3
- Une variable référencée dans 2 faits en tête de
règle - Une assertion/retraction -gt activation dautres
règles. - Plusieurs règles activées au même moment
16- deloor_at_deloor/enseignement/ia/CLIPS/EXAMPLES/pd
l clips - CLIPS (V6.21 06/15/03)
- CLIPSgt (load "coursExemple2.CLP")
- Defining deftemplate vehicule
- Defining deftemplate surRoute
- Defining defrule sortirParking j
- TRUE
- CLIPSgt (assert (vehicule (nom trotinette)
(position parking) (vitesse 0))) - ltFact-0gt
- CLIPSgt (assert (vehicule (nom kart) (position
route) (vitesse 12km/h))) - ltFact-1gt
- CLIPSgt (facts)
- f-0 (vehicule (nom trotinette) (position
parking) (vitesse 0)) - f-1 (vehicule (nom kart) (position route)
(vitesse 12km/h)) - For a total of 2 facts.
- CLIPSgt (agenda)
- 0 sortirParking f-0
- For a total of 1 activation.
- CLIPSgt (run)
17Suppression de constructeurs
- (undefrule ltnom_de _reglegt)
- (undeftemplate ltnom_de_templategt)
- (undeffacts ltnom_de_liste_de_faitsgt)
- On ne peut supprimer un élément utilisé par un
autre qui nest pas supprimé
18Debug
- (set-break ltnom_de_reglegt)
- (show-break)
- (remove break ltnom_de_reglegt)
19Execution
- Une règle activée est mise dans lagenda
- Lorsquelle est exécutée elle est retirée de
lagenda refraction - Au prochain pas, elle ne sera pas réactivée
- Sauf si cest par de nouveaux faits
- Une régle peut être mise en plusieurs exemplaires
dans lagenda si elle est activée par plusieurs
faits - La fonction (refresh ltrèglegt) remet la règle dans
lagenda comme si elle navait pas été activée
20Types faits et règles
- (deftemplate(objet
- (slot usage)
- (slot position)
- (slot couleur))
- (deftemplate(posseder
- (multislot listeObjets))
-