1 / 20

CLIPS

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 règles. Type de faits.

spencer
Télécharger la présentation

CLIPS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CLIPS Module Intelligence artificielle

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

  3. Principe Base de règles règles Type de faits réfraction Agenda activation Règles « activables » Faits cycle production appariement

  4. Mots clés CLIPS Base de règles règles defrule deftemplate Type de faits assert/modify duplicate/retract/deffacts/reset refresh réfraction Agenda activation Règles « activables » Faits run<n> production appariement

  5. Types 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)) => (assert(posseder (objet ?unNom))

  6. Types 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)))

  7. Execution (load <file-name>) (reset) assertion des deffacts (run <n>) lance n cycles (agenda) visualise l’agenda les faits et règles sont numérotés (assert <fact>) (retract <nb-fact>) (refresh <rule>) ré-injection (undef <rule>)

  8. Exemple d’exécutionexemple 1 {deloor@deloor}~/enseignement/ia/CLIPS/EXAMPLES/pdl$ clips CLIPS (V6.21 06/15/03) CLIPS> (load "coursExample1.CLP") Defining deftemplate: objet Defining deftemplate: posseder Defining deftemplate: liste-nombres Defining defrule: prendre +j Defining deffacts: scene1 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)) 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>

  9. Debug • Enumération (des constructeurs) (list-defrules) (list-deftemplate) (liste-deffacts) • Inspection (ppdefrule <defrule-name>) (ppdeftemplate<deftemplate-name>) (ppdeffacts <deffacts-name>)

  10. Debug Visualisation durant l’exécution (watch) (watch all) (watch rules) (watch statistics) (unwatch)

  11. Appariement • Variables en tête de règle • Première rencontre = affectation

  12. Appariement • Adressage des faits

  13. Exemple 2 {deloor@deloor}~/enseignement/ia/CLIPS/EXAMPLES/pdl$ clips CLIPS (V6.21 06/15/03) CLIPS> (load "coursExemple2.CLP") Defining deftemplate: vehicule Defining defrule: sortirParking +j TRUE CLIPS> (assert (vehicule (nom trotinette) (position parking) (vitesse 0))) <Fact-0> CLIPS> (assert (vehicule (nom kart) (position route) (vitesse 12km/h))) <Fact-1> CLIPS> (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. CLIPS> (agenda) 0 sortirParking: f-0 For a total of 1 activation. CLIPS> (run) CLIPS> (facts) f-1 (vehicule (nom kart) (position route) (vitesse 12km/h)) f-2 (vehicule (nom trotinette) (position route) (vitesse 40km/heures)) For a total of 2 facts. CLIPS> (agenda) CLIPS> (deftemplate vehicule (slot nom) (slot position) (slot vitesse)) (defrule sortirParking ?f1 <- (vehicule (position parking)) => (modify ?f1 (position route) (vitesse 40km/heures)))

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

  15. {deloor@deloor}~/enseignement/ia/CLIPS/EXAMPLES/pdl$ clips • CLIPS (V6.21 06/15/03) • CLIPS> (load "coursExemple2.CLP") • Defining deftemplate: vehicule • Defining deftemplate: surRoute • Defining defrule: sortirParking +j • TRUE • CLIPS> (assert (vehicule (nom trotinette) (position parking) (vitesse 0))) • <Fact-0> • CLIPS> (assert (vehicule (nom kart) (position route) (vitesse 12km/h))) • <Fact-1> • CLIPS> (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. • CLIPS> (agenda) • 0 sortirParking: f-0 • For a total of 1 activation. • CLIPS> (run) • CLIPS> (facts) • f-1 (vehicule (nom kart) (position route) (vitesse 12km/h)) • f-2 (vehicule (nom trotinette) (position route) (vitesse 40km/heures)) • For a total of 2 facts. • CLIPS> (agenda) • CLIPS>

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

  17. Debug • (set-break <nom_de_regle>) • (show-break) • (remove break <nom_de_regle>)

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

  19. Types faits et règles (deftemplate(objet (slot usage) (slot position) (slot couleur)) (deftemplate(posseder (multislot listeObjets))

More Related