CLIPS Module Intelligence artificielle Principes Langage de description
- Slides: 20
CLIPS Module Intelligence artificielle
Principes • • 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.
Principe Base de règles Type de faits règles réfraction Agenda activation Règles « activables » Faits cycle production appariement
Mots clés CLIPS Base de règles defrule deftemplate règles refresh Agenda réfraction Type de faits assert/modify duplicate/retract/deffacts/reset activation Règles « activables » Faits run<n> production appariement
Types faits et règles exemple 1 (deftemplate objet (slot nom) (slot position) (slot couleur)) (deftemplate posseder (slot objet)) (deftemplate liste-nombres (multislot values)) (defrule prendre (objet (nom ? un. Nom)) => (assert(posseder (objet ? un. Nom))
Types faits et règles exemple 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 scene 1 "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)))
Execution (load <file-name>) (reset) (run <n>) (agenda) assertion des deffacts lance n cycles visualise l’agenda les faits et règles sont numérotés (assert <fact>) (retract <nb-fact>) (refresh <rule>) (undef <rule>) ré-injection
Exemple d’exécution exemple 1 {deloor@deloor}~/enseignement/ia/CLIPS/EXAMPLES/pdl$ clips CLIPS (V 6. 21 06/15/03) CLIPS> (load "cours. Example 1. CLP") Defining deftemplate: objet Defining deftemplate: posseder Defining deftemplate: liste-nombres Defining defrule: prendre +j Defining deffacts: scene 1 TRUE CLIPS> (assert (objet (nom cafetiere) (position 1 -2) (couleur bleue))) <Fact-0> CLIPS> (facts) f-0 (objet (nom cafetiere) (position 1 -2) (couleur bleue)) For a total of 1 fact. CLIPS> (agenda) 0 prendre: f-0 For a total of 1 activation. CLIPS> (run) CLIPS> (facts) f-0 (objet (nom cafetiere) (position 1 -2) (couleur bleue)) f-1 (posseder (objet cafetiere)) For a total of 2 facts. CLIPS> (agenda) CLIPS> (reset) CLIPS> (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. CLIPS> (agenda) 0 prendre: f-3 0 prendre: f-2 0 prendre: f-1 For a total of 3 activations. CLIPS> (run) CLIPS> (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. CLIPS> (agenda) CLIPS>
Debug • Enumération (des constructeurs) (list-defrules) (list-deftemplate) (liste-deffacts) • Inspection (ppdefrule <defrule-name>) (ppdeftemplate<deftemplate-name>) (ppdeffacts <deffacts-name>)
Debug Visualisation durant l’exécution (watch) (watch all) (watch rules) (watch statistics) (unwatch)
Appariement • Variables en tête de règle – Première rencontre = affectation
Appariement • Adressage des faits
Exemple 2 (deftemplate vehicule (slot nom) (slot position) (slot vitesse)) (defrule sortir. Parking ? f 1 <- (vehicule (position parking)) => (modify ? f 1 (position route) (vitesse 40 km/heures))) {deloor@deloor}~/enseignement/ia/CLIPS/EXAMPLES/pdl$ clips CLIPS (V 6. 21 06/15/03) CLIPS> (load "cours. Exemple 2. CLP") Defining deftemplate: vehicule Defining defrule: sortir. Parking +j TRUE CLIPS> (assert (vehicule (nom trotinette) (position parking) (vitesse 0))) <Fact-0> CLIPS> (assert (vehicule (nom kart) (position route) (vitesse 12 km/h))) <Fact-1> CLIPS> (facts) f-0 (vehicule (nom trotinette) (position parking) (vitesse 0)) f-1 (vehicule (nom kart) (position route) (vitesse 12 km/h)) For a total of 2 facts. CLIPS> (agenda) 0 sortir. Parking: f-0 For a total of 1 activation. CLIPS> (run) CLIPS> (facts) f-1 (vehicule (nom kart) (position route) (vitesse 12 km/h)) f-2 (vehicule (nom trotinette) (position route) (vitesse 40 km/heures)) For a total of 2 facts. CLIPS> (agenda) CLIPS>
Exemple 3 • Une variable référencée dans 2 faits en tête de règle • Une assertion/retraction -> activation d’autres règles. • Plusieurs règles activées au même moment
• • • • • • • {deloor@deloor}~/enseignement/ia/CLIPS/EXAMPLES/pdl$ clips CLIPS (V 6. 21 06/15/03) CLIPS> (load "cours. Exemple 2. CLP") Defining deftemplate: vehicule Defining deftemplate: sur. Route Defining defrule: sortir. Parking +j TRUE CLIPS> (assert (vehicule (nom trotinette) (position parking) (vitesse 0))) <Fact-0> CLIPS> (assert (vehicule (nom kart) (position route) (vitesse 12 km/h))) <Fact-1> CLIPS> (facts) f-0 (vehicule (nom trotinette) (position parking) (vitesse 0)) f-1 (vehicule (nom kart) (position route) (vitesse 12 km/h)) For a total of 2 facts. CLIPS> (agenda) 0 sortir. Parking: f-0 For a total of 1 activation. CLIPS> (run) CLIPS> (facts) f-1 (vehicule (nom kart) (position route) (vitesse 12 km/h)) f-2 (vehicule (nom trotinette) (position route) (vitesse 40 km/heures)) For a total of 2 facts. CLIPS> (agenda) CLIPS>
Suppression de constructeurs • • (undefrule <nom_de _regle>) (undeftemplate <nom_de_template>) (undeffacts <nom_de_liste_de_faits>) On ne peut supprimer un élément utilisé par un autre qui n’est pas supprimé
Debug • (set-break <nom_de_regle>) • (show-break) • (remove break <nom_de_regle>)
Execution • Une règle activée est mise dans l’agenda • Lorsqu’elle est exécutée elle est retirée de l’agenda : « refraction » • Au prochain pas, elle ne sera pas réactivée • Sauf si c’est par de nouveaux faits • Une régle peut être mise en plusieurs exemplaires dans l’agenda si elle est activée par plusieurs faits • La fonction (refresh <règle>) remet la règle dans l’agenda comme si elle n’avait pas été activée
Types faits et règles (deftemplate(objet (slot usage) (slot position) (slot couleur)) (deftemplate(posseder (multislot liste. Objets))
- Recherche heuristique intelligence artificielle
- Intelligence artificielle uqam
- Veille technologique bts sio
- Intelligence artificielle distribuée
- Examen intelligence artificielle
- Carte heuristique
- Ventilation artificielle
- Fixation sonde intubation
- Position semi-assise secourisme
- Le syndrome de gougerot-sjögren
- Liquide amniotique teinté
- Ventilation assistée controlée
- A bar magnet that holds a chain of paper clips illustrates
- Shrek vimeo
- Examples of parody in shrek
- Salience clips
- Fredy tochtermann
- We can have only video clips in the collection pane
- Sports clips camby
- Danielle cobe
- Expert system shell example