Vous êtes sur la page 1sur 45

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

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.

et infér ences dans le programme sont déterminés par la représentati on de connaissances choisie par
et infér ences dans le programme sont déterminés par la représentati on de connaissances choisie par
et infér ences dans le programme sont déterminés par la représentati on de connaissances choisie par
et infér ences dans le programme sont déterminés par la représentati on de connaissances choisie par

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.

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.

Cadre: exemple Carte d’embarquement Quantas Transporteur: Quantas Nom: M. LeBlanc Vol: Q101 Date: 12 Décembre

Cadre: exemple

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

Carte d’embarquement EastJet Transporteur: EastJet Nom: Mme Richard Vol: EJ467 Date: 15 Décembre Siège: 26F De: Moncton À: Montréal Embarquement: 0750 Porte: 2

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.

Attributs

Un cadre est un ensemble d’attributs Peut inclure de l’information telle que:

Un cadre est un ensemble d’attributs Peut inclure de l’information telle que:

Relation entre un cadre et un autre cadre

Ex: un cadre DELL peut être un membre de la classe ORDINATEUR, qui est un membre de la classe SYSTÈME INFORMATIQUE.

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

On la considère vraie quand aucune preuve contraire n’est trouvée.

Intervalle de la valeur de l’attribut

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.

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

Spécifie les valeurs par défaut et initiales

Facette prompte

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.

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

Classes et instances: exemple Instance : Carte d’embarq uement EastJet Transporteur: EastJet Nom: Mme Richard

Classes et instances: exemple

Instance: Carte d’embarquement EastJet

Transporteur: EastJet Nom: Mme Richard Vol: EJ467 Date: 15 Décembre Siège: 26F De: Moncton À: Montréal Embarquement: 0750 Porte: 2

Classe: Carte d’embarquement

Transporteur: [Str] Nom: [Str] Vol: [Str] Date: [Str] Siège: [Str] De: [Str] À: [Str] Embarquement: [Num] Porte: [Num]

De: [Str] À: [Str] Embarquement: [Num] Porte: [Num] Instance : Carte d’embarquement Quantas Transporteur:

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

Héritage de classe Les attributs d’un cadre-classe représentent des choses qui sont typiquement vrai pour

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 cadre- classe 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.

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.

Relations entre les objets Généralisation : démontre une relation « sorte de » ou «

Relations entre les objets

Généralisation: démontre une relation « sorte de » ou « est un ».

Ex: une voiture est un véhicule, un bateau est un véhicule.

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

Héritage L’héritage est le processus par lequel toutes les caractéristiques d’une classe sont prises par

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.

Désavantages Ne permet pas de distinguer entre des propriétés essentielles et accidentelles. Il peut devenir

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.

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

Interaction entre les règles et cadres Système expert à base de règles Le moteur d’inférence

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.

Interaction entre les règles et cadres Système à base de cadre Le moteur d’inférence recherche

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.

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.

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.

Système expert à base de règles L’ensemble des règles représente les connaissances du domaine utiles

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.

Système expert à base de cadres La structure hiérarchique de connaissances est déterminée en premier.

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.

Construction d’un système expert à base de cadres Spécifier le problème et définir l’envergure du

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.

Exemple de LORSQUE VOULU Supposons qu’on veut évaluer la demande de crédit d’un individu. Le

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

Exemple: Buy S mart Pour illustrer les concepts vus auparavant, on considère un système expert

Exemple: Buy S mart

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.

Étape 1 Spécifier le problème et définir l’envergure du système. On commence en récoltant de

É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

Étape 1 (suite) Faire une liste de toute les questions possibles. Quel est le montant

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

Étape 2 Déterminer les classes et leurs attributs. Identifier les types généraux de classes. Ex:

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

et photo. On doit aussi présenter de l’information de contact, tel que l’adresse et un numéro
et photo. On doit aussi présenter de l’information de contact, tel que l’adresse et un numéro
Étape 2 (suite) CLASS: Property [Str] Area : [Str] Suburb : [N] Price : [Str]

Étape 2 (suite)

CLASS: Property [Str] Area : [Str] Suburb : [N] Price : [Str] Type : [N]
CLASS:
Property
[Str]
Area :
[Str]
Suburb :
[N]
Price :
[Str]
Type :
[N]
Bedrooms
:
[N]
Bathrooms
:
[Str]
Construction
:
[Str]
Phone :
[Str]
Pictfile :
[Str]
Textfile :
[N]
Instance Number
:
Étape 3 Définir les instances Il faut créer les instances en utilisant des données stockées

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

Étape 3 (suite) Exemple, pour créer une nouvelle instance de la classe Property dans le

É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

Étape 3 (suite) INSTANCE: Property 2 Class: Property [Str] Area: [Str] Suburb: Central Suburbs Taroona

Étape 3 (suite)

INSTANCE: Property 2 Class: Property [Str] Area: [Str] Suburb: Central Suburbs Taroona [N] Price: 150000
INSTANCE:
Property 2
Class:
Property
[Str]
Area:
[Str]
Suburb:
Central Suburbs
Taroona
[N]
Price:
150000
[Str]
Type:
House
[N]
Bedrooms:
3
[N]
Bathrooms:
1
[Str]
Construction:
[Str]
Phone:
Brick
(03) 6226 1416
[Str]
Pictfile:
house02.bmp
[Str]
Textfile:
house02.txt
[N]
Instance Number: 2
INSTANCE: Property 1 Class: Property [Str] Area: [Str] Suburb: Central Suburbs New Town [N] Price:
INSTANCE:
Property 1
Class:
Property
[Str]
Area:
[Str]
Suburb:
Central Suburbs
New Town
[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
Instances de la classe Property.
Étape 4 Créer l’interface On a besoin d’une fenêtre principale pour présenter de l’information générale

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

Étape 4 (suite) Buy Smart Buying any property – especially your first – is very

Étape 4 (suite)

Buy Smart Buying any property – especially your first – is very exciting, but it
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.
Étape 4 (suite) La prochaine fenêtre est la fenêtre qui demande de l’information de l’utilisateur.

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

Étape 4 (suite) Buy Smart Select the most important things you are looking for in

Étape 4 (suite)

Buy Smart Select the most important things you are looking for in your property. Suburb
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
$ 50,000
Central Suburbs
One bedroom
$ 100,000
Eastern Shore
Two bedrooms
$ 150,000
Northern Suburbs
Three bedrooms
$ 200,000
Southern Suburbs
Four bedrooms or more
$ 250,000
$ 300,000
Property Type
Bathrooms
$ 350,000
All property types
Any number of bathrooms
$ 400,000
House
One bathroom
$ 500,000
Unit
Two bathrooms
$ 1,000,000
Townhouse
Three bathrooms or more
$ 2,000,000
Help
Restart
Search
Étape 4 (suite) Finalement, la dernière fenêtre est celle qui montre de l’information sur les

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

Étape 4 (suite) Buy Smart MODERNISED WITH ARCHITECT'S FLAIR yet retaining the original charm. Three

Étape 4 (suite)

Buy Smart MODERNISED WITH ARCHITECT'S FLAIR yet retaining the original charm. Three large bedrooms. Formal
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.
Étape 5 Définir les méthodes LORSQUE VOULU et LORSQUE CHANGÉ, et les démons. Il faut

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

On se sert des méthodes LORSQUE VOULU et LORSQUE CHANGÉ et des démons. Ou, on utilise

Dans des systèmes à base de cadre, on considère toujours l’application de méthodes et démons en premier.

Étape 5 (suite) On crée toutes les instances de la classe Property en même temps

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

Étape 5 (suite) CLASS: Action Data [S] Load Properties: [WHEN CHANGED] INSTANCE: Action Data 1

Étape 5 (suite)

CLASS:

Action Data

[S] Load Properties: [WHEN CHANGED]
[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É

Étape 5 (suite) Démons, D E M O N 1 IF selected OF Central Suburbs

É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

Étape 5 (suite) CLASS: Action Data [S] Load Properties: [WHEN CHANGED] [S] Load Instance Number:

Étape 5 (suite)

CLASS: Action Data [S] Load Properties: [WHEN CHANGED] [S] Load Instance Number: [WHEN CHANGED] WHEN
CLASS:
Action Data
[S]
Load Properties:
[WHEN CHANGED]
[S]
Load Instance Number:
[WHEN CHANGED]
WHEN CHANGED
BEGIN
[S]
Goto First Property:
[WHEN CHANGED]
INSTANCE:
Action Data 1
Class:
Action Data
[S]
Load Properties:
TRUE
[S]
Load Instance Number:
TRUE
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
[S]
Goto First Property:
TRUE
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É

Étape 6 Définir les règles Une des décisions les plus importantes et difficiles est de

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

Étape 7 Évaluation et optimisation du système expert. L’étape initiale de design est maintenant finie.

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