La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction aux systèmes à base de règles

Présentations similaires


Présentation au sujet: "Introduction aux systèmes à base de règles"— Transcription de la présentation:

1 Introduction aux systèmes à base de règles
Les bases du langage CLIPS Partie II 1

2 Les faits non-ordonnés
~= record PASCAL ou structure en C Enregistrement de la structure (deftemplate …) Chaque champ est nommé Un champ est appelé slot ou multislot Exemple : (deftemplate etudiant (slot age (range 18 77) (default 20)) (multislot faculte (allowed-values Hec Droit SSP Lettres) (default Hec)) (slot moyenne (type FLOAT)) ) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 2

3 Les faits non-ordonnés
Assertion comme faits ordonnés (assert (…)) L'ordre des champs n'a pas d'importance Les champs qui ont une valeur par défaut n'ont pas besoin d'être initialisés Seuls les multislot peuvent prendre une liste de valeurs Exemple : CLIPS> (assert (etudiant)) <Fact-0> CLIPS> (facts) f (etudiant (age 20) (faculte Hec) (moyenne 0.0)) CF 1.00 For a total of 1 fact. CLIPS> Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 3

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

5 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 5

6 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 6

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

8 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 8

9 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 9

10 Fonctions procédurales
(Bind ?x <valeur>) : permet de forcer la liaison d'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 10

11 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 11

12 Construction de faits et de règles
Assurer le pattern matching complet ou partiel entre des faits, et le LHS de la règle Faits-données et faits de contrôle Graphe de résolution : Ex = Etat Fx = fonction de transition Ea Eb Ec f1 f2 Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 12

13 Construction de faits et de règles
Les états sont l'ensemble ou un sous-ensemble des faits en mémoire à l'instant t Les fonctions de transition sont les règles en mémoire à l'instant t Exemple d'état : ((pere-de Philippe Michel) (pere-de Ernest Philippe)) Exemple de fonction de transition : (defrule grand-pere (pere-de ?x ?y) (pere-de ?y ?z) => (assert(grand-pere-de ?x ?z) Etat suivant : ((pere-de Philippe Michel) (pere-de Ernest Philippe) (grand-pere-de Ernest Michel)) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 13

14 Construction de faits et de règles - choix de valeurs
~ = Not ; | = Or & connexion des précédents Ex1 : (defrule passage (feu ~vert) => (printout t "Ne pas traverser")) Ex2 : (defrule localisation (faculté Hec|Droit) (assert (lieu BFSH1)) Ex3 : (defrule les-petits (taille ?taille&~GRAND&~MOYEN) (printout t "la taille est " ?taille crlf)) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 14

15 Construction de faits et de règles - choix de valeurs
":" ou (test) Test booléen par une fonction de comparaison (<,>,=, <>, eq, neq, integerp, stringp, ...) sur les faits. Ex1 : (defrule example-1 (data-1 ?y) (data-2 ?x&:(> ?x ?y)) => (printout t ?x " est plus grand que " ?y crlf)) Ex2 : (defrule example-2 (data-2 ?x) (test (> ?x ?y)) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 15

16 Construction de faits et de règles - choix de faits
and, or, not. Exemple : (defrule traverser (and (not (gauche voiture)) (not (droite voiture)) ) => (printout t "Vous pouvez traverser…" crlf)) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 16

17 Construction de faits et de règles - Faits de contrôle
Dynamisme / usage pour enchaînement des règles Exemple : (defrule etape-1 (fait 1) => (assert (etape 1))) (defrule etape-2 ?fait <- (etape 1) ; NB pas de parenthèses (fait 2) (assert (etape 3)) (retract ?fait)) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 17

18 Entrée de données Au clavier : (read) (readline) Exemple :
(defrule read-input (initial-fact) => (printout t "Donnez le nom d'une couleur " crlf) (assert (color (read)))) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 18

19 Entrée de données Par fichier : contenu du fichier faits.txt
(fait Hello) Déroulement CLIPS> (open "C:\\faits.txt" Fichier "r") TRUE CLIPS> (assert-string (readline Fichier)) <Fact-0> CLIPS> (facts) f (fait Hello) CF 1.00 For a total of 1 fact. CLIPS>(close Fichier) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 19

20 Les objets Abstraction Héritage Encapsulation Polymorphisme
Liaison dynamique Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 20

21 Les objets Classes Instances Messages Attributs Méthodes
Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 21

22 Les objets (classes) La classe 1ère est OBJECT
Les classes prédéfinies sont : FLOAT INTEGER SYMBOL STRING MULTIFIELD EXTERNAL-ADDRESS FACT-ADDRESS INSTANCE-ADDRESS INSTANCE-NAME OBJECT PRIMITIVE NUMBER LEXEME ADDRESS INSTANCE USER INITIAL-OBJECT Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 22

23 Les objets (classes) Le nom d'une classe s'écrit en MAJUSCULES
(defclass MACLASSE (is-a USER)) CLIPS> (describe-class USER) Abstract: direct instances of this class cannot be created. Direct Superclasses: OBJECT Inheritance Precedence: USER OBJECT Direct Subclasses: INITIAL-OBJECT Recognized message-handlers: init primary in class USER delete primary in class USER print primary in class USER direct-modify primary in class USER message-modify primary in class USER direct-duplicate primary in class USER message-duplicate primary in class USER CLIPS> Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 23

24 Les objets (classes) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 24

25 Les objets (classes) (defclass <NOM_CLASSE> (is-a <SUPER-CLASS>) (role <concrete|abstract>) (slot <nom-attribut> (<facet> <valeur-facet>))) Exemple : (defclass PERSONNE (is-a USER) (role concrete) (pattern-match reactive) (slot age (create-accessor read-write)) ) Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 25

26 Les objets (classes) Les facettes sont : default ...
Access read-write | read-only | initialize-only storage local | shared propagation inherit | no-inherit source exclusive | composite pattern-match reactive | non-reactive create-accessor ?NONE | read | write | read-write visibility private | public Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 26

27 Les objets (instances)
(make-instance [<nom-instance>] of <classe> <slot-override>) Exemple : CLIPS>(make-instance Philippe (age 26)) [Philippe] CLIPS> (unmake-instance Philippe) TRUE CLIPS> Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 27


Télécharger ppt "Introduction aux systèmes à base de règles"

Présentations similaires


Annonces Google