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 1

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 2

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 3

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 4

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 5

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 6

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 7

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 8

9 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) => Action unification Activation Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 9

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 10

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 11

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 12

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 13

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 14

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 15

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 16

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 17

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 18

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 !" "C:\\temp\\test.clp"   "Exec \\\\FS3\\sys\\test.clp \"Hello world !\" " Cours pratiques de systèmes à base de connaissances. Semestre d’été 1999 19

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

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

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 22

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

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 24

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

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 26

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 27

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 28

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

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 30

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 31

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 32

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 33

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 34

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 35

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 36

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 37

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 38


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

Présentations similaires


Annonces Google