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

Documents pareils