Introduction aux systèmes à base de règles

Slides:



Advertisements
Présentations similaires
Rappels C.
Advertisements

Spécialisation/généralisation Héritage Polymorphisme
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la programmation objet Langage Java
Introduction aux environnements de developpement.
Approfondissement du langage
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
INTRODUCTION A MATLAB ENVIRONNEMENT MATLAB.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Langage C Révision.
CPI/BTS 2 Programmation Web Introduction au PHP
Expressions et assignations
Analyse lexicale Généralités Expressions rationnelles Automates finis
Introduction aux systèmes à base de règles
Quatre exemples sous WebCLIPS
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Python La programmation objet
Introduction à la programmation (Java)
Complément Le diagramme des classes
Langage Oriente Objet Cours 2.
Le langage Javascript pour le web
Introduction à la programmation objet Langage Java
CSI3525: Concepts des Langages de Programmation
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
CSI 1502 Principes fondamentaux de conception de logiciels
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
Travaux Pratiques Représentation des connaissances
Introduction à l’environnement logiciel Clips
4 Introduction des objets. Les chaînes et tableaux
La notion de type revisitée en POO
Les adresses des fonctions
CSI2520  Cette fonction permet d’attribuer une valeur à une variable (set! nombre (+ 3 4)) (set! nombre (+ 1 nombre)) En SCHEME, les fonctions dont le.
Un survol du language C.
Méthodes de tri.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Cours n° 1 Présentation du langage C++
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Réaliser par: Sadok Amel Cheboui hassiba
IFT 232 Méthodes de Conception Orientées Objets Introduction.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Tutorat en bio-informatique Le 10 octobre Au programme… Rappel sur les variables Constantes Conditions Comparaisons Tables de vérité Switch.
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Les bases de l’algorithmique
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-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.
PRO-1027 Programmation Scientifique en C
Langage de Programmation Orientée Objet : C++
Langage et Concepts de Programmation Orientée-Objet Pôle Informatique 2007/2008 École Nationale Supérieure des Mines de Saint-Étienne Laurent Vercouter.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Introduction à l’utilitaire
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Initiation aux bases de données et à la programmation événementielle
Algorithmique Algorithmique  Pascal
Directives Ocaml Définition
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Principes et variables
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Flash – séance 2 Interactions avec Action Script.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
LES CLASSES ET LES OBJETS
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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