1 / 38

Introduction aux systèmes à base de règles

Introduction aux systèmes à base de règles. Les bases du langage CLIPS. Introduction. Programmation déclarative VS programmation procédurale Pseudo-parallélisme Recherche heuristique et stratégies de recherche Inférence et graphe des connaissances Programme interprété VS compilé.

penney
Download Presentation

Introduction aux systèmes à base de règles

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. Introduction aux systèmes à base de règles Les bases du langage CLIPS

  2. Introduction • Programmation déclarative VS programmation procédurale • Pseudo-parallélisme • Recherche heuristique et stratégies de recherche • Inférence et graphe des connaissances • Programme interprété VS compilé Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  3. Architecture d’un SABR • Base de Faits • Base de Règles • Moteur d’inférence Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  4. La base de faits • Mémoire à court terme • Données préliminaires • Dynamisme • Déclenchement des règles • Structuration des informations Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  5. La base de règles • Mémoire à long terme • Permanence des connaissances • Connaissances abstraites • « Expertise » du système Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  6. Le moteur d’inférence • Programme algorithmique • Chaînage avant VS arrière • Working Memory (WM) • Résolution des conflits Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  7. Chaînage arrière • Guidé par les connaissances • Conclusion Conditions • "Que dois-je faire pour atteindre le but ? » • PROLOG Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  8. Chaînage avant • Guidé par les données • Conditions Conclusions • "Que puis-je conclure des informations qui sont en ma possession ? » • ART*Enterprise, CLIPS. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  9. unification => Action Chaînage avant - Fonctionnement (1/3) • Activation des règles dont les conditions sont remplies par les faits en mémoire (Pattern matching par unification ou filtrage) • Les règles activées sont placées dans la WM (agenda) Activation Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  10. Chaînage avant - Fonctionnement (2/3) • Résolution des conflits (conflict resolution) • Critères de sélection : depth, breadth, simplicity, complexity, lex, mea, and random. • Défaut : depth. Changements avec (setstrategy) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  11. Chaînage avant - Fonctionnement (3/3) • Application de la règle sélectionnée (firing) • Exécution du RHS de la règle. • L’action peut modifier la base de faits, (assert) • Reconsidération compléte de la WM selon le mode stratégique choisi. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  12. De LISP à CLIPS • LISP : Lists processing • LISP ART (Brightware inc.) • ART CLIPS • CLIPS  C Language Integrated Production System (CLIPS) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  13. LISP - Les listes • Traitement des listes : syntaxe avec parenthèses • La liste des éléments « atomiques » a,b,c,d, s ’écrit : (a b c d) • Récursivement une liste peut être un élément (cette fois non atomique !) (a b c (x y z)) • Le séparateur est l’espace Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  14. LISP - Système préfixé • Habituellement système infixé : 2 + 2 <opérande> opérateur <opérande> • LISP : Système préfixé : + 2 2 opérateur <opérande> <opérande> • Facilité de programmation : le premier atome de la liste a une signification particulière. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  15. LISP- Evaluation des expressions Une expression numérique : (+ (* 2 3) (- (/ 8 2) (round 2.25))) correspond à (2*3) + ((8/2) - (round 2.25)) ce qui par une première évaluation se lit : (+ 6 (- 4 2)) puis (+ 6 2) ce qui retourne l’évaluation finale : 8 Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  16. CLIPS • Version CLIPS 6.0 • Utilisez le HELP . • Ecrivez vos interactions dans un éditeur ! (Ctr-C / Ctrl-V) • Fonctions "TOP-LEVEL" : • (exit) arrête CLIPS. • (clear) équivaut à arrêter et redémarrer CLIPS • (reset) supprime les informations dynamiques et remet à jour l'agenda. • (run) lance un programme CLIPS. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  17. CLIPS - Les types de données • float, (réels) • integer, (entiers) • symbol, (symbole) • string, (chaîne de caractères) • externaladdress, • factaddress, • instancename, • instanceaddress. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  18. Les SYMBOL • Elément du langage • Sémantique liée à sa représentation textuelle • Commence par n'importe quel caractère imprimable (ASCII) suivi de 0, 1 ou plusieurs caractère(s) imprimable(s); un délimiteur met fin au symbole (espace,  ", CR, LF, &, …) • Exemples : assert @+=-% bad_value hello HELLO B76-HI • NB : CLIPS est CASE-SENSITIVE Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  19. Les STRING (chaînes de caractères) • Ensemble de caractères imprimables entre guillemets • « \ » et «"» doivent être précédés d’un \ • Exemples : "Hello world !" "@3%&" "C:\\temp\\test.clp"   "Exec \\\\FS3\\sys\\test.clp \"Hello world !\" " Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  20. Les nombres • Float (réels) : 2e2 -> 200.0 5E3 -> 5000.0 • Integer (entiers) : 10 -> 10 • Avec signe : +2 -> 2 -5e4 -> -50000.0 Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  21. Les variables • Locales • Globales Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  22. Les variables locales • Liaison à une valeur à l'instant t. • Pas de déclaration typée • Pas de variable sans valeur liée (bound) • Syntaxe : ?<nom> Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  23. Les variables globales • Globales au module • Syntaxe : (defglobal ?*<nom>* = <valeur>) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  24. Les listes • Normal : (fait 1 2) • Sous forme de variable : $?<nom> • Création : (create$ a b c) -> (a b c) • Fonctions de manipulation : • membre$ • delete$ • explode$ • insert$ • replace$ • length$ • nth$ Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  25. Les faits • Faits ordonnés • Faits non-ordonnés Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  26. Les faits ordonnés • N champs entre parenthèses (N = 1 to LogicalMax) • Champ (1) = SYMBOL : il est obligatoire ! • Il ne doit pas être égal au nom d'une fonction. • (<SYMBOL>| <SYMBOL> { [<AllTypes>] }) • Exemples : (hello) (fait hello) (distance Lausanne Genève 69.9) (GOAL "My String" LeSymbol) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  27. Les faits ordonnés - Assertion • Assertion unique et "manuelle" : CLIPS> (assert (couleur VERT)) <Fact-0> • Assertion "manuelle" d'une liste de faits : CLIPS> (deffacts couleurs (couleur VERT) (couleur ROUGE) (couleur BLEU) ) CLIPS> (reset) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  28. Les faits ordonnés - retrait • (retract <index_fait> | {<index_fait> <index_fait>} | *) • Exemples : • CLIPS> (assert (couleur VERT)) <Fact-0> CLIPS> (retract 0) CLIPS> (facts) CLIPS> • CLIPS> (retract 1 3 5) • CLIPS> (retract *) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  29. Les faits ordonnés - retrait • (undeffacts <nom_liste_faits>) • Exemple : • CLIPS> (deffacts faits (fait 1) (fait 2)) CLIPS> (reset) CLIPS> (facts) f-0 (initial-fact) CF 1.00 f-1 (fait 1) CF 1.00 f-2 (fait 2) CF 1.00 For a total of 3 facts. CLIPS> (undefafacts faits) CLIPS> (facts) f-0 (initial-fact) CF 1.00 f-1 (fait 1) CF 1.00 f-2 (fait 2) CF 1.00 For a total of 3 facts. CLIPS> (restet) CLIPS> (facts) f-0 (initial-fact) CF 1.00 For a total of 1 fact. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  30. Les faits non-ordonnés • (deftemplate …) ~= record PASCAL ou structure en C Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  31. Les règles • Schéma : Rule header Pattern(s) (LHS : Left-hand side) THEN arrow action (LHS : right-hand side) • IF pattern THEN action Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  32. Les règles • Exemple : (defrule Maregle "ceci est un commentaire" (declare (salience 99)) (fait LeFaitVoulu) => (assert (trouver CeQueJeCherche)) ) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  33. Les règles • Analyse de l'exemple : (defrule <nom> "<commentaire>" (declare (salience <coefficient d'importance>)) (<pattern>) => (<action>) ) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  34. Les fonctions • Exemple : (deffunction MaFonction "fonction qui imprime un message" (?Message) (printout t ?message crlf) ) • Appel de la fonction : CLIPS>(Mafonction "Hello World !") Hello World ! CLIPS> Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  35. Les fonctions • Analyse de l'exemple : (deffunction <nom> "<commentaire>" (<paramètres>) (<action>) ) • Fonctions à effet de bord VS à retour de valeur. Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  36. Les fonctions • A retour de valeur : (deffunction add () (return (+ 1 2)) ; si le return est omis, la ; dernière expression est ; renvoyée ) Appel : CLIPS>(add) 3 CLIPS> (+ 2 (add)) 5 CLIPS> Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  37. Fonctions procédurales • (Bind ?x <valeur>) : permet de lier une valeur à une variable • (if <expression> then <action> [else <action>]) • Itérations : loop-for-count, while, switch • Groupement d’évaluations : progn Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

  38. Les opérateurs • Mathématiques : +, -, /, *, **, div, abs, max,min, exp, log, mod, round, sqrt, cos, sin, tan, … • Booléens : AND, OR, NOT • De comparaison : <,>,<=,>=,<>,=,eq,neq,intergerp, stringp, floatp, ... Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999

More Related