Chapitre 5 - Université de Moncton
Transcription
Chapitre 5 - Université de Moncton
GIND5439 Systèmes Intelligents Chapitre 5: Systèmes experts à base de cadres. Représentation des connaissances En construisant une base de connaissances, un programmeur doit choisir les objets significatifs et leur relations. Le programme résultant doit contenir assez de connaissances pour résoudre le problème, doit faire les inférences correctement et doit le faire rapidement. On peut considérer une base de connaissances comme un mappage entre des objets et relations dans le domaine du problème et les objets et relations dans le programme. Les résultats des inférences sur la base de connaissances doivent correspondent aux résultats des actions ou observations dans le monde. Les objets, relations et inférences dans le programme sont déterminés par la représentation de connaissances choisie par le programmeur. GIND5439 – Gabriel Cormier, Université de Moncton 2 Cadres Les cadres sont une méthode utilisée pour représenter des connaissances dans une base de connaissance. Auparavant, on a utilisé des règles pour représenter les connaissances. Cadre: Structure de données ayant des connaissances typiques à propos d’un objet ou concept particulier. Les cadres furent proposés par Marvin Minsky dans les années 1970. En fait, c’est très similaire à la programmation orientée objet. GIND5439 – Gabriel Cormier, Université de Moncton 3 Cadre Chaque cadre a son propre nom et un ensemble d’attributs qui y sont associés. Ex: le cadre Personne peut avoir les attributs Nom, Poids, Hauteur, Âge. Ex: le cadre Ordinateur peut avoir les attributs Processeur, Modèle, Mémoire, Prix, Écran. L’attribut n’est pas nécessairement un chiffre ou un mot; il peut s’agir d’une procédure ou fonction qui détermine la valeur. L’attribut peut aussi pointer à un autre cadre. Dans les systèmes experts, les cadres sont souvent utilisés avec des règles de production. GIND5439 – Gabriel Cormier, Université de Moncton 4 Cadre: exemple Carte d’embarquement Quantas Carte d’embarquement EastJet Transporteur: Quantas Transporteur: EastJet Nom: M. LeBlanc Nom: Mme Richard Vol: Q101 Vol: EJ467 Date: 12 Décembre Date: 15 Décembre Siège: 24A Siège: 26F De: Moncton De: Moncton À: Ottawa À: Montréal Embarquement: 0600 Embarquement: 0750 Porte: 4 Porte: 2 GIND5439 – Gabriel Cormier, Université de Moncton 5 Cadres: utilité Systèmes à base de règles: Des systèmes à base de règles peuvent fonctionner avec des faits éparpillés à travers la base de connaissances. Il faudra peut-être chercher au travers de connaissances qui n’ont pas d’importance. La recherche peut être lente. Cadres: Une méthode naturelle pour représenter des connaissances de façon structurée et concise. Une façon organisée de représenter des connaissances. GIND5439 – Gabriel Cormier, Université de Moncton 6 Attributs Un cadre est un ensemble d’attributs Peut inclure de l’information telle que: Relation entre un cadre et un autre cadre Valeur de l’attribut On la considère vraie quand aucune preuve contraire n’est trouvée. Intervalle de la valeur de l’attribut Peut être symbolique, numérique ou Booléenne. Peut être assigné quand le cadre est créé ou pendant une session du système expert. Valeur par défaut Ex: un cadre DELL peut être un membre de la classe ORDINATEUR, qui est un membre de la classe SYSTÈME INFORMATIQUE. Détermine où un objet particulier ou concept doit être dans les exigences typiques. Information procédurale La procédure à exécuter quand l’attribut est changé ou voulu. GIND5439 – Gabriel Cormier, Université de Moncton 7 Facette Une facette est une méthode pour donner de l’information supplémentaire à propos d’un attribut d’un cadre. On s’en sert pour établir la valeur de l’attribut, contrôler les requêtes de l’utilisateur et dire au moteur d’inférence comment traiter l’attribut. Facette de valeur Facette prompte Spécifie les valeurs par défaut et initiales Permet à l’utilisateur d’entrer des attributs en ligne Facette d’inférence Permet d’arrêter le processus d’inférence quand une valeur spécifiée change ou un attribut spécifié change. GIND5439 – Gabriel Cormier, Université de Moncton 8 Classes et instances Un cadre peut faire référence à un objet particulier ou un groupe d’objets similaires. Un cadre-classe décrit un groupe d’objets ayant des attributs en commun. Un cadre-instance fait référence à une instance particulière d’un objet. Chaque cadre « connaît » sa classe. Propriété implicite d’un cadre GIND5439 – Gabriel Cormier, Université de Moncton 9 Classes et instances: exemple Instance: Carte d’embarquement EastJet Classe: Carte d’embarquement Transporteur: [Str] Nom: [Str] Vol: [Str] Date: [Str] Siège: [Str] De: [Str] À: [Str] Embarquement: [Num] Porte: [Num] Transporteur: EastJet Nom: Mme Richard Vol: EJ467 Date: 15 Décembre Siège: 26F De: Moncton À: Montréal Embarquement: 0750 Porte: 2 Instance: Carte d’embarquement Quantas Transporteur: Quantas Nom: M. LeBlanc Vol: Q101 Date: 12 Décembre Siège: 24A De: Moncton À: Ottawa Embarquement: 0600 Porte: 4 GIND5439 – Gabriel Cormier, Université de Moncton 10 Héritage de classe Les attributs d’un cadre-classe représentent des choses qui sont typiquement vrai pour tous les objets dans la classe. Les attributs et valeurs par défaut d’un cadreclasse sont hérités à travers la hiérarchie classe/sous-classe et classe/membre. Les attributs dans les cadre-instances peuvent être remplis de données réelles uniques à chaque instance. GIND5439 – Gabriel Cormier, Université de Moncton 11 Relations entre les classes Une sous-classe est reliée à sa superclasse par une relation « est un ». Ex: « RSX Type S » est un « RSX » est un « Acura » est un « Voiture ». Une instance peut supplanter quelques attributs typiques. L’instance demeure un membre de la classe ayant accès aux propriétés plus haut dans la hiérarchie même si elle contredit une valeur typique de sa classe. Les relations entre les hiérarchies constituent un processus de spécialisation. Le cadre en haut de la hiérarchie représente un concept générique; les cadres plus bas représentent des concepts plus restrictifs. Ex: une RSX est un type spécialisé de voiture de Acura. GIND5439 – Gabriel Cormier, Université de Moncton 12 Relations entre les objets Généralisation: démontre une relation « sorte de » ou « est un ». Agrégation: représente une relation du type « partie de » où les sous-classes représentes des composantes qui sont associées à une superclasse qui représente un tout. Ex: une voiture est un véhicule, un bateau est un véhicule. Ex: Un moteur est partie d’une voiture. Association: décrit une relation entre différentes classes typiquement sans relation autrement. Typiquement apparaît comme un verbe et est bidirectionnel. Ex: M. LeBlanc appartient une maison, M. LeBlanc appartient une voiture, etc… GIND5439 – Gabriel Cormier, Université de Moncton 13 Héritage L’héritage est le processus par lequel toutes les caractéristiques d’une classe sont prises par l’instance d’une classe. Une instance hérite de son parent. On peut avoir des héritages multiples Tous les parents doivent avoir des noms d’attributs uniques. On réutilise du code Ça réduit le nombre d’attributs indépendants et spécifiques dans un système expert. GIND5439 – Gabriel Cormier, Université de Moncton 14 Désavantages Ne permet pas de distinguer entre des propriétés essentielles et accidentelles. Il peut devenir impossible de construire des concepts composés en utilisant des héritages multiples. L’ingénieur des connaissances a donc des décisions difficiles à prendre quand à la structure hiérarchique du système et des héritages. GIND5439 – Gabriel Cormier, Université de Moncton 15 Méthodes et démons Une méthode est une procédure associée à un attribut d’un cadre qui est exécutée lorsque demandée. Une méthode peut déterminer des attributs spécifiques ou exécuter une série d’actions quand les valeurs changent. Un démon a généralement une structure IF – THEN S’exécute lorsqu’un attribut dans l’énoncé IF change. Deux types de méthodes: LORSQUE CHANGÉ S’exécute immédiatement lorsque la valeur d’un attribut change LORSQUE VOULU Utilisé pour obtenir une valeur d’attribut seulement quand désiré. GIND5439 – Gabriel Cormier, Université de Moncton 16 Interaction entre les règles et cadres Système expert à base de règles Le moteur d’inférence fait le lien entre les règles dans la base de connaissances avec les données dans la base de données. Une fois le but trouvé, le moteur d’inférence recherche dans la base de connaissances pour trouver la règle qui a ce but dans sa conséquence. Si une telle règle est trouvée, et que les données s’accordent avec les données dans la base de données, la règle est déclenchée et le but obtient sa valeur. Si aucune règle n’est trouvée, on demande à l’utilisateur pour une valeur. GIND5439 – Gabriel Cormier, Université de Moncton 17 Interaction entre les règles et cadres Système à base de cadre Le moteur d’inférence recherche aussi pour le but. Les règles jouent un rôle secondaire. Les cadres représentent la source principale de connaissances. Les méthodes et démons sont utilisés pour ajouter des actions aux cadres. Le but peut être établi en utilisant soit une méthode ou un démon. GIND5439 – Gabriel Cormier, Université de Moncton 18 Moteur d’inférence Système à base de cadres Selon le but, le moteur d’inférence cherche les règles dont la conséquence contient le but recherché. Il examine les règles une à la fois dans l’ordre avec lesquelles elles apparaissent dans la base de règles. Examine la validité de chaque antécédent dans la première règle. Si tous les antécédents sont invalides, il conclut que le but est invalide, puis procède à la prochaine règle. GIND5439 – Gabriel Cormier, Université de Moncton 19 Moteur d’inférence Doit obtenir une valeur de la méthode LORSQUE VOULU seulement lorsque la valeur n’est pas déterminée par l’ensemble des règles. L’ordre de recherche des attributs doit être déterminée à l’avance. On attache une facette ORDRE DE RECHERCHE à un attribut pour indiquer où il se trouve et dans quel ordre il faut obtenir la valeur. Ex: On met l’ordre de sorte qu’on recherche la base de règles en premier et seulement lorsque ceci ne fonctionne pas qu’on exécute la facette. GIND5439 – Gabriel Cormier, Université de Moncton 20 Système expert à base de règles L’ensemble des règles représente les connaissances du domaine utiles pour résoudre un problème. Chaque règle représente un heuristique quelconque du problème. Chaque règle ajoute des nouvelles connaissances et donc rend le système plus intelligent. La base de règles peut facilement être modifiée en modifiant, ajouter ou enlevant des règles. GIND5439 – Gabriel Cormier, Université de Moncton 21 Système expert à base de cadres La structure hiérarchique de connaissances est déterminée en premier. Les attributs et classes sont identifiées. Les relations hiérarchiques entre les classes sont établies. L’architecture permet d’ajouter des actions aux cadres à l’aide de méthodes et démons. GIND5439 – Gabriel Cormier, Université de Moncton 22 Construction d’un système expert à base de cadres Spécifier le problème et définir l’envergure du système. Déterminer les classes et leurs attributs. Définir les instances. Concevoir les interfaces. Définir les méthodes LORSQUE VOULU et LORSQUE CHANGÉ, et les démons. Définir les règles. Évaluer et optimiser le système. GIND5439 – Gabriel Cormier, Université de Moncton 23 Exemple de LORSQUE VOULU Supposons qu’on veut évaluer la demande de crédit d’un individu. Le système expert commencera l’évaluation quand l’utilisateur appuiera sur le bouton « Évaluer Crédit » dans l’interface utilisateur. Ce bouton est rattaché à l’attribut « Évaluer Crédit » de la classe « Évaluation de Crédit ». GIND5439 – Gabriel Cormier, Université de Moncton 24 Exemple: Buy Smart Pour illustrer les concepts vus auparavant, on considère un système expert simple à base de cadre, Buy Smart, qui donne des conseils aux gens cherchant à acheter une maison. On suivra les étapes principales pour développer le système expert, et démontrer comment utiliser les méthodes et démons. GIND5439 – Gabriel Cormier, Université de Moncton 25 Étape 1 Spécifier le problème et définir l’envergure du système. On commence en récoltant de l’information à propos des propriétés à vendre dans la région. Il faut identifier les détails pertinents. Emplacement et type de propriété Nombre de chambres et salles de bain Prix Description courte Photo GIND5439 – Gabriel Cormier, Université de Moncton 26 Étape 1 (suite) Faire une liste de toute les questions possibles. Quel est le montant maximum que vous voulez dépenser sur un achat? Quel type de propriété préférez-vous? Dans quelle banlieue préférez-vous demeurer? Combien de chambres voulez-vous? Combien de salles de bain voulez-vous? GIND5439 – Gabriel Cormier, Université de Moncton 27 Étape 2 Déterminer les classes et leurs attributs. Identifier les types généraux de classes. Ex: le concept de propriété et décrire les caractéristiques générales qui sont communes à la plupart des propriétés. Caractériser chaque propriété par son emplacement, le prix, le type, le nombre de chambres, le nombre de salles de bain, construction, description et photo. On doit aussi présenter de l’information de contact, tel que l’adresse et un numéro de téléphone. GIND5439 – Gabriel Cormier, Université de Moncton 28 Étape 2 (suite) CLASS: [Str] [Str] [N] [Str] [N] [N] [Str] [Str] [Str] [Str] [N] Property Area : Suburb : Price : Type : Bedrooms : Bathrooms : Construction : Phone : Pictfile : Textfile : Instance Number GIND5439 – Gabriel Cormier, Université de Moncton : 29 Étape 3 Définir les instances Il faut créer les instances en utilisant des données stockées dans une base de données ou en utilisant d’autre méthodes. Il faut typiquement indiquer au système qu’on veut créer une nouvelle instance. GIND5439 – Gabriel Cormier, Université de Moncton 30 Étape 3 (suite) Exemple, pour créer une nouvelle instance de la classe Property dans le logiciel Level5 Object, on utilise le code suivant: MAKE Property WITH Area := area OF dB3 HOUSE 1 WITH Suburb := suburb OF dB3 HOUSE 1 WITH Price := price OF dB3 HOUSE 1 WITH Type := type OF dB3 HOUSE 1 WITH Bedrooms := bedrooms OF dB3 HOUSE 1 WITH Bathrooms := bathrooms OF dB3 HOUSE 1 WITH Construction := construct OF dB3 HOUSE 1 WITH Phone := phone OF dB3 HOUSE 1 WITH Pictfile := pictfile OF dB3 HOUSE 1 WITH Textfile := textfile OF dB3 HOUSE 1 WITH Instance Number := Current Instance Number GIND5439 – Gabriel Cormier, Université de Moncton 31 Étape 3 (suite) INSTANCE: Property 1 Class: Property [Str] Area: Central Suburbs New Town [Str] Suburb: [N] Price: 164000 [Str] Type: House [N] Bedrooms: 3 [N] Bathrooms: 1 [Str] Construction: Weatherboard [Str] Phone: (03) 6226 4212 [Str] Pictfile: house01.bmp [Str] Textfile: house01.txt [N] Instance Number: 1 INSTANCE: Property 2 Class: Property [Str] Area: Central Suburbs [Str] Suburb: Taroona [N] Price: 150000 [Str] Type: House [N] Bedrooms: 3 [N] Bathrooms: 1 [Str] Construction: Brick [Str] Phone: (03) 6226 1416 [Str] Pictfile: house02.bmp [Str] Textfile: house02.txt [N] Instance Number: 2 Instances de la classe Property. GIND5439 – Gabriel Cormier, Université de Moncton 32 Étape 4 Créer l’interface On a besoin d’une fenêtre principale pour présenter de l’information générale à l’utilisateur au début de chaque application. Typiquement, on y met le titre de l’application, une description générale du problème, une représentation graphique et aussi de l’information sur les droits d’auteur. GIND5439 – Gabriel Cormier, Université de Moncton 33 Étape 4 (suite) Buy Smart Buying any property – especially your first – is very exciting, but it is often a little nerve-racking as well. It is important you take the time to do your home work properly. This expert system will assists you in choosing a home to meet your particular requirements. GIND5439 – Gabriel Cormier, Université de Moncton 34 Étape 4 (suite) La prochaine fenêtre est la fenêtre qui demande de l’information de l’utilisateur. Elle devrait permettre à l’utilisateur d’indiquer ses préférences en répondant à des questions présentées par le système expert. GIND5439 – Gabriel Cormier, Université de Moncton 35 Étape 4 (suite) Buy Smart Select the most important things you are looking for in your property. Suburb Bedrooms Maximum Price All Suburbs Any number of bedrooms No maximum Central Suburbs One bedroom $ 50,000 Eastern Shore Two bedrooms $ 100,000 Northern Suburbs Three bedrooms Southern Suburbs Four bedrooms or more $ 150,000 $ 200,000 $ 250,000 $ 300,000 Property Type Bathrooms $ 350,000 All property types Any number of bathrooms House One bathroom $ 500,000 Unit Two bathrooms $ 1,000,000 Townhouse Three bathrooms or more $ 2,000,000 Help Restart GIND5439 – Gabriel Cormier, Université de Moncton $ 400,000 Search 36 Étape 4 (suite) Finalement, la dernière fenêtre est celle qui montre de l’information sur les propriétés. Cette fenêtre doit produire une liste de propriétés acceptables, la possibilité de se déplacer à la prochaine propriété (ou première, ou dernière, ou celle précédente) et aussi doit permettre de voir la propriété et sa description. GIND5439 – Gabriel Cormier, Université de Moncton 37 Étape 4 (suite) Buy Smart MODERNISED WITH ARCHITECT'S FLAIR yet retaining the original charm. Three large bedrooms. Formal dining warmed by a wood heater, family room next to an impressive kitchen and overlooking lavish gardens. A sparkling bathroom and large laundry. Convenient location, garage and parking. GIND5439 – Gabriel Cormier, Université de Moncton 38 Étape 5 Définir les méthodes LORSQUE VOULU et LORSQUE CHANGÉ, et les démons. Il faut développer une façon pour enrichir l’application. On se sert des méthodes LORSQUE VOULU et LORSQUE CHANGÉ et des démons. Ou, on utilise des règles. Dans des systèmes à base de cadre, on considère toujours l’application de méthodes et démons en premier. GIND5439 – Gabriel Cormier, Université de Moncton 39 Étape 5 (suite) On crée toutes les instances de la classe Property en même temps lorsque l’utilisateur appuie sur le bouton « Continue » de la fenêtre première. En enlève les instances inappropriée au fur et à mesure que l’utilisateur sélectionne ses préférences. GIND5439 – Gabriel Cormier, Université de Moncton 40 Étape 5 (suite) CLASS: Action Data [S] Load Properties: [WHEN CHANGED] INSTANCE: Action Data 1 Class: Action Data [S] Load Properties: TRUE WHEN CHANGED BEGIN Current Instance Number := 0 FORGET Property FIND dB3 HOUSE 1 WHEN FOUND Current Instance Number := Current Instance Number + 1 MAKE Property WITH Area := area OFdB3 HOUSE 1 WITH Suburb := suburb OFdB3 HOUSE 1 WITH Price := price OFdB3 HOUSE 1 WITH Type := type OFdB3 HOUSE 1 WITH Bedrooms := bedrooms OFdB3 HOUSE 1 WITH Bathrooms := bathrooms OFdB3 HOUSE 1 WITH Construction := construct OFdB3 HOUSE 1 WITH Phone := phone OFdB3 HOUSE 1 WITH Pictfile := pictfile OF dB3 HOUSE 1 WITH Textfile := textfile OF dB3 HOUSE 1 WITH Instance Number := Current Instance Number FIND END Total Number of Instances := Current Instance Number Goto First Property OF Action Data := TRUE END Exemple de méthode LORSQUE MODIFIÉ GIND5439 – Gabriel Cormier, Université de Moncton 41 Étape 5 (suite) Démons, DEMON 1 IF selected OF Central Suburbs pushbutton THEN FIND Property WHERE Area OF Property <> "Central Suburbs" WHEN FOUND FORGET CURRENT Property FIND END .. . DEMON 5 IF selected OF House pushbutton THEN FIND Property WHERE Type OF Property <> "House" WHEN FOUND FORGET CURRENT Property FIND END GIND5439 – Gabriel Cormier, Université de Moncton 42 Étape 5 (suite) CLASS: Action Data [WHEN CHANGED] [S] Load Properties: [S] Load Instance Number: [WHEN CHANGED] [WHEN CHANGED] [S] Goto First Property: INSTANCE: Action Data 1 Class: Action Data [S] Load Properties: TRUE [S] Load Instance Number: TRUE [S] Goto First Property: TRUE WHEN CHANGED BEGIN Current Instance Number := 0 FIND Property WHEN FOUND Current Instance Number := Current Instance Number + 1 Instance Number OF Property := Current Instance Number FIND END Total Number of Instances := Current Instance Number Goto First Property OF Action Data := TRUE END WHEN CHANGED BEGIN FIND Property LIMIT 1 WHEN FOUND filename OF Property picturebox := Pictfile OF Property filename OF Property textbox := Textfile OF Property FIND END END Méthode LORSQUE MODIFIÉ GIND5439 – Gabriel Cormier, Université de Moncton 43 Étape 6 Définir les règles Une des décisions les plus importantes et difficiles est de décider si on utilise des règles ou si on se sert de méthodes et démons. La décision est souvent basée sur les préférences personnelles du designer. Buy Smart utilise des méthodes et des démons parce qu’ils représentent une méthode simple et puissante de représenter des procédures. GIND5439 – Gabriel Cormier, Université de Moncton 44 Étape 7 Évaluation et optimisation du système expert. L’étape initiale de design est maintenant finie. La prochaine étape est d’évaluer le système. On veut s’assurer que le système fonctionne et répond aux exigences. GIND5439 – Gabriel Cormier, Université de Moncton 45