You are on page 1of 187

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


1 1
COURS D’INTELLIGENCE ARTIFICIELLE

A L’usage des étudiants de
PREMIERE LICENCE EN SCIENCES INFORMATIQUES

Par
Prof. Docteur KASORO MULENDA NATHANAEL
e-mail : kasoro_mulenda@yahoo.fr
UNIVERSITE DE KINSHASA
FACULTE DES SCIENCES / DEP. DE MATH & INFORMATIQDUE



OBJECTIFS DU COURS

- Présenter la genèse de l’Intelligence Artificielle et des systèmes intelligents
- Définir le concept « Intelligence Artificielle »
- Etablir les ressemblances et les dissemblances entre les systèmes classiques et ceux issus de
l’Intelligence Artificielle
- Présenter les principaux domaines d’application de l’Intelligence Artificielle
- Introduire la notion de l’Intelligence Artificielle Distribué et présenter ses domaines
d’applications
- Décrire l’architecture des systèmes issus de l’Intelligence Artificielle et discuter les différents
modules
- Expliquer la transition des bases de données vers les bases de connaissances
Le but de ce cours est de vous faire appréhender les techniques utilisées pour résoudre des problèmes
liés à l'analyse, au traitement et à l'apprentissage de connaissances. Cette problématique s'inscrit dans
le cadre général des sciences cognitives, dont le souci est l'étude de l'intelligence. Ces disciplines
regroupent des domaines aussi variés que la philosophie, la psychologie, la biologie ainsi que des
sciences pour l'ingénieur telles que l'informatique et la robotique. Depuis les premiers ordinateurs, il
y a en effet eu une interaction forte entre les sciences qui essayaient de comprendre le
fonctionnement de l'intelligence, et celles qui tâchaient d'en reproduire le fonctionnement.

PRE REQUIS

- Notions sur les bases de données
- Notions sur les langages de programmation
- Notions sur la logique et la logique mathématique


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


2 2
MODES D’INTERVENTION

Le cours sera donné sous forme théorique : exposés du professeur, sous forme d’exercices surtout
sur la conception des bases de connaissances et sous forme de séminaires.

MODES D’EVALUATION

Le cours sera évalué de la manière suivante :

- Sous forme de travaux réalisés pendant l’année (Présence aux cours, aux T.P.)
- Sous forme d’exposés (Par groupe d’étudiants, les étudiants choisissent un thème, le
développent et l’exposent avant les examens)
- Sous forme d’interrogation et d’examen oral et / ou écrit

CONTENU

INTRODUCTION

CHAPITRE I : GENERALITES SUR L’INTELLIGENCE ARTIFICIELLE
CHAPITRE II : DOMAINES DE L’INTELLIGENCE ARTIFICIELLE
CHAPITRE III : PRINCIPES DE BASE DE L’INTELLIGENCE ARTIFICIELLE
CHAPITEE IV : DES BASES DE DONNEES VERS LES BASES DE
CONNAISSANCES
CHAPITRE V : LA ROBOTIQUE
CHAPITRE VI : LES RESEAUX DE NEURONES
CHAPITRE VII : L’INTELLIGENCE ARTIFICIELLE DISTRIBUEE
CHAPITRE VIII : LES LANGAGES D’INTELLIGENCE ARTIFICIELLE


REFERENCES

I. OUVRAGES

1. Gallaire H., Minker J., Nicolas J.M., « Logic and Databases, a deductive approach »,
Maison ACM Computing Surveys, Juin 1984, p. 153 – 155
2. Jack Challoner, “L’ Intelligence Artificielle”, un guide d’initiation au future de
l’Informatique et de la Robotique, DK Focus Science, 2002
3. Ernst C., « Les Systèmes Experts en Gestion », Masson, Paris
4. Karkan J. M. et all, “Systèmes Experts”, Masson, Paris
5. Abel Jacques, « Contribution à l’élaboration d’une méthode de développement pour les
Systèmes Experts, thèse de doctorat
6. Françoise Folgeman, Soulie Sligos, « Introduction aux Réseaux de Neurones », Yaoundé,
1995
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


3 3
7. Madou N., « Un Shell pour la construction d’un Système Expert dans un environnement
Objet, Tizi – Ouzou, Algérie
8. Jack Challoner, « L’Intelligence Artificielle : Un guide d’initiation au futur de
l’informatique et de la robotique », Edition Française, France, 2003.
9. Claire REMY, « L’intelligence artificielle », Dunod, Paris, 1994.
10. Jean – Marc ALLIOT, Thomas SCHIEX, « Intelligence artificielle et Informatique
théorique », CEPADUES-EDITIONS, in Collection Intelligence Artificielle, TOULOUSE,
France.

II. COURS, REVUE, ACTES, JOURNEES

1. Des Bases de données vers les Bases de connaissances, 3
ième
Journées francophones sur
l’Informatique, Grenoble, janvier 1984, P. 3 – 14.
2. Revues « Recherche Spéciale » sur l’Intelligence Artificielle
3. Kasoro N., « Etude comparative entre les systèmes informatiques classiques et les systèmes
issus de l’Intelligence Artificielle »
4. Luhandjula M.K., « Cours d’Intelligence Artificielle », 1997 – 1998
5. Mbuyi M., Kasoro N., « Cours d’Intelligence Artificielle », Cycle d’Informatique Appliquée,
Unikin, Dépt de Math – Informatique, 2000 – 2001
6. Kasoro N., « Cours d’Intelligence Artificielle », ULK 15 i
ème
rue Limete, 2002 – 2003
7. Touzet C., « Les Réseaux de Neurones Artificiels », juillet 1992

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


4 4
INTRODUCTION

Intelligence Artificielle. Que n’a-t-on imaginé, rêvé, à partir de l’association de ces deux
termes ? La possibilité pour l’homme de créer un être à son image, de fabriquer des machines qui
pourrait penser, raisonner, comprendre, apprendre, décider, voire rire ou aimer à notre place. Bref,
reproduire les fonctions intelligentes de l’homme, certaines fonctions biologiques. L’intelligence
Artificielle devait tout régler : plus besoin de programmer, les systèmes allaient fonctionner
pratiquement tout seuls, sans jamais se tromper. Les statues vivantes ou parlantes de l’Antiquité et
les automates des siècles passés reprenaient consistance, et l’on voyait se profiler l’ombre de Hal,
l’ordinateur tout-puissant décrit par Arthur Clarke dans 2001 l’Odyssée de l’espace.

Après plus de 30 ans de recherches et peu d'applications significatives, l'Intelligence
Artificielle est devenue un des thèmes porteurs de l'informatique. De nombreux industriels
manifestent leur intérêt IBM avec CLP(#MATH199#), Bull/Siemens/ICL avec CHIP, des entreprises
spécialisées se sont créées (Delphia à Grenoble, Prologia à Marseille, Cosytec à Orsay, BIM en
Belgique ...). Devant cet état de faits, les réactions vont du scepticisme à l'émerveillement le plus
complet.
Cette dénomination faisant appel au terme « Intelligence », notion elle-même relative et
difficile à définir, est souvent controversée ; certains lui préfèrent celle de « Systèmes à Base de
Connaissances », voire le terme d’ « Informatique avancée ». Si les grands programmes d’IA sont
rares, de nombreux systèmes sont intégrés à des applications complexes, dont les utilisateurs se
servent sans même le savoir. En fait, l’IA n’est qu’une technique informatique parmi tant d’autres.
Or l’évolution actuelle de l’informatique n’est pas de faire des ordinateurs de plus en plus puissants,
mais bien plutôt de les rendre, sinon plus intelligents, du moins plus « conviviaux ». C’est ainsi que
l’IA investit peu à peu tous les domaines d’activité, de la gestion à la productique, en passant par les
applications financières ( analyse et diagnostic), le contrôle de processus industriel
( impliquant la vision, le traitement du signal et la robotique), la bureautique ( traitement, analyse ou
comportement automatique de documents par système expert, gestion automatique de messagerie et
d’agendas), l’administration ( contrôle d’organismes comme la sécurité sociale, aide à l’application
de règlements), les réseaux (routage), le génie logiciel et l’aide à l’exploitation informatique….
C’est grâce à l’IA que nous pouvons interroger efficacement le minitel, que les trains arrivent à
l’heure, que les industriels peuvent économiser l’énergie en régularisant les processus, que des
défauts sont diagnostiqués et rapidement réparés sur des machines complexes, que des chaînes de
fabrication peuvent fonctionner sans intervention humaine, que les pilotes d’avion sont capables de
faire face aux situations les plus complexes, que la recherche scientifique
( physique des particules, génétique, biochimie….) peut avancer à grands pas.

Ainsi, plutôt que d’essayer de reproduire l’intelligence humaine, l’IA a pour objectif
d’apporter des réponses, soit lorsque les besoins de l’utilisateur n’ont pas trouvé de solution dans le
cadre de l’informatique classique, soit quand ces besoins ont été générés par cette informatique elle-
même. Le premier cas se présente lorsqu’il s’agit de résoudre des problèmes particulièrement
difficiles ou complexes dans un domaine bien délimité (systèmes experts) ou des problèmes assez
simples, mais dans un domaine mal formalisé (traitement du langage naturel ou reconnaissance de
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


5 5
formes, par exemple). Le deuxième cas exige la réalisation d’interfaces homme-machine simple,
naturelles et conviviales, alors que les machines sont de plus en plus difficiles.

Ce sont surtout les rapports homme-machine qui sont appelés à changer dans les prochaines
années, précisément grâce à l’IA. L’interface entre l’homme et la machine se situe essentiellement
au niveau du clavier et de l’écran, bien que d’autres périphériques, comme la souris, le crayon
électronique ou le cadre tactile, soient de plus en plus souvent utilisés. L’un des objectifs de l’IA est
d’ « humaniser » la machine : permettre à l’homme de dialoguer avec un ordinateur comme avec son
semblable. Cela implique un certain nombre de caractéristiques de la part de la machine : possibilité
de s’adapter à diverses modalités de dialogue ( oral, écrit, en différentes langues), capacité
d’acquisition de connaissances, de reconnaissance de l’interlocuteur ou de l’environnement,
d’explication, d’interprétation…Ces aptitudes mettent en jeu un grand nombre de techniques d’IA :
traitement du langage naturel, écrit ou oral, reconnaissance de formes, apprentissage, auto-
adaptation…, ainsi que l’analyse de situations, d’images, de problèmes. Elles constituent l’un des
grands défis de l’informatique du futur.

Actuellement les ordinateurs se présentent sous plusieurs formes. Certains peuvent écrire
sous la dictée ou corriger des fautes, d’autres sont des joueurs d’échecs et peuvent battre les plus
grands maîtres. Les robots sont contrôlés par des ordinateurs autonomes, se déplacent sur d’autres
planètes grâce à un minimum d’informations fournies par des ingénieurs depuis la terre. Les tâches
autrefois exécutées par l’homme sont actuellement exécutées par des machines. Cela signifie que
ces machines sont intelligentes ? Les ordinateurs pourront – ils être conscients de ce qu’ils font ?
Existera –t – il de vrais cerveaux électroniques, avec une volonté propre, des émotions ou un sens
moral ? Quelle pourra être l’utilité de tels ordinateurs et quelles menaces représentent – ils ?
L’Intelligence Artificielle est une science qui essaie de traiter toutes ces questions.
L'objectif de l'Intelligence Artificielle est double : le premier concerne l'analyse théorique
et pratique des processus cognitifs ; le second s'intéresse à la réalisation (``hard'' et ``soft'') d'artéfacts
intelligents. L’Intelligence Artificielle se place parmi les sciences ``sociales'' (psychologie,
linguistique, philosophie), ``naturelles'' (neurobiologie, physiologie), et a une approche oscillant
entre une méthode rigoureuse et un bricolage effréné.
Déjà le terme ``Intelligence Artificielle'' est assez flou, puisque si l'artificiel a été conçu par
la main de l'homme (ou d'une, voire plusieurs, machine(s) conçue(s) par ...) par opposition au
naturel ; la notion d'intelligence est quant à elle difficile à préciser : un plombier est-il plus ou moins
``intelligent'' qu'un mathématicien ?
Les études psychologiques ont démontré que cette appellation (non contrôlée) recouvre de
nombreuses capacités très différentes:
a. pouvoir d'abstraction,
b. résolution de problèmes,
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


6 6
c. adaptation (rapide) à un nouvel environnement,
d. culture générale,
e. raisonnement, créativité ....
De plus, une fois connus les mécanismes permettant d'accomplir une tâche, l'homme a
tendance à en nier la qualité d'intelligence.
En résumé, l’Intelligence Artificielle peut être vue comme ``l'utilisation de l'ordinateur
comme moyen de simulation des processus naturels ou comme support des capacités ordinairement
attribuées à l'intelligence humaine''. L'objectif est donc vaste puisqu'il englobe aussi bien la capacité
qu'aurait une machine à jouer aux échecs, traduire un texte, ou découvrir, sur une photo la présence
de Monsieur Untel. Son but est d'analyser les comportements humains dans les domaines de la
compréhension, de la perception, de la résolution de problèmes afin de les reproduire sur machine.
Parmi les raisons qui ont milité pour la création de l’Intelligence Artificielle, nous pouvons
citer :
- Le désir d’une technologie plus conviviale
- Le besoin d’une automatisation plus complète a fin que des robots intelligents puissent
remplacer les hommes pour des tâches répétitives ou dangereuses, d’analyser intelligemment
beaucoup d’informations et d’améliorer les loisirs, pour que les jeux électroniques paraissent
plus réels.
Le présent texte n'est qu'un brouillon nullement exempt de fautes tant syntaxiques que
grammaticales. Les opinions avancées n'engagent que moi. Ceci est la version 4 de ces notes de
cours. Certaines parties sont en cours de rédaction, parfois ne transparaissent que les grandes lignes
(dans certains cas réduites à la tête de chapitre), les éléments complémentaires seront donnés en
cours.
Ces notes sont, comme l'état de l'art qu'elles décrivent, provisoires. Toutes améliorations, critiques,
commentaires seront les bienvenus.
Ce cours s’adresse principalement aux étudiants en informatique et à tous ceux qui veulent
s’initier à l’intelligence artificielle, et à ceux qui en connaissent déjà les principes et cherchent, par
exemple, à approfondir leurs connaissances ou envisagent d’appliquer certaines techniques à un
problème particulier. L'objectif avoué pour les étudiants est de les sensibiliser à cette nouvelle
approche et leur donner envie d'approfondir les sujets brûlants.



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


7 7

CHAPITRE I : GENERALITES SUR L’INTELLIGENCE ARTIFICIELLE

I.1.GENESE DE L’INTELLIGENCE ARTIFICIELLE

1. Histoire ancienne

L’histoire de l’intelligence artificielle ou des machines intelligentes remonte bien plus loin
dans le temps. Déjà dans l’antiquité, apparaissent des artefacts d’êtres vivants : En Egypte ancienne,
c’est un automate qui désignait, parmi les nombreux descendants du pharaon, celui qui va lui
succéder après sa mort. En Grèce, Homère imaginait, avec son Héphaïtos, un androïde, conçu pour
servir d’échanson dans l’Olympe. Le chant de l’Illiade est l’une des premières mentions d’une
activité relevant de l’Intelligence Artificielle. Si l’on croit à la légende, le dieu de feu appelé
Héphaitos avait construit des tables à trois pieds munis de roulettes et qui pouvaient faire des va et
vient toutes seules dans le palais du dieu. Cette table est en fait l’ancêtre du Robot à trois roues
inventé par l’Institut de Recherche Stanford des Etats Unis. Ce même dieu avait également fabriqué
des femmes en or pour s’en servir. Elles étaient douées de raison et capables de parler et de
travailler. Elles étaient si parfaites qu’elles pouvaient être prise pour des femmes réelles.
La légende de Pygmailon relate que le sculpteur chypriote, tombé amoureux d’une statue,
parvint, avec l’aide de la déesse Aphrodite, à la rendre vivante. Philon d’Alexandrie met en pratique
les découvertes d’Archimède pour construire des automates pondéraux. Héron d’Alexandrie étudie
les lois d’équilibre à partir d’automates.
Au Moyen Age, l’automate se trouve à la charnière entre science, légende et alchimie. A
l’époque des cathédrales, des horloges astronomiques et des grands mystiques, les pas du Golem
dans la tradition juive, ce géant d’argile doté d’une âme par la magie du signe cabalistique gravé sur
son front, résonnent dans les rues crépusculaires du vieux Prague…A la Renaissance, le rationalisme
reprend le dessus : les croquis de Léonard de Vinci, où est étudiée la composition des mouvements,
sont parfaitement compréhensibles par un esprit cartésien. C’est aussi au 16
e
siècle que l’on
enregistre les premières tentatives de modélisation du corps humain par la médecine.
Au 17
e
siècle, Descartes imagine un « homme machine », sorte d’automate basé sur un
comportement algorithmique. Les joueurs de flûte et de tambourin, construits par Jacques
Vaucanson au 18
e
siècle, reproduisent précisément les mouvements de musiciens humains, mais ils
ne font qu’appliquer les lois de la mécanique, qui sera découverte et analysée un siècle plus tard.
Mozart lui-même avait imaginé un automate pour composer des mélodies : sur une table spéciale,
connue sous le nom de Musikalische Würfelspiel, on pouvait jouer aux dés les mesures successives
d’une partition. Certains automates auraient été capables de parler ou de participer à des jeux de
réflexion ; cependant, derrière la machine se cachait sans doute un homme chargé de l’actionner et
de lui communiquer son intelligence.
Par ailleurs, les « lois de la pensée » sont formalisées très tôt, avec la logique, dont on peut
faire remonter l’origine à Aristote au 4
e
siècle avant J.C. Cette discipline na va évoluer réellement
qu’à partir de Descartes (1596-1650), Leibniz (1646-1716) et Pascal (1623-1662). En tant
qu’inventaire de la machine à calculer, ce dernier peut même être considéré comme le père de
l’informatique. Au 19
e
siècle, Boole (1815-1864) énonce les règles du calcul binaire, qui seront à la
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


8 8
base du fonctionnement des ordinateurs. Charles Babbage (1792-1871) concrétise l’idée de Pascal en
posant les principes de fonctionnement de la machine à calculer : la «machine analytique ». Ce n’est
qu’au 20
e
siècle, avec John Von Neumann (1903-1957), que se fera le passage de la machine à
calculer à l’ordinateur (1943), grâce au principe de la programmation des machines (1946).
Neumann développera d’ailleurs l’analogie entre l’ordinateur et le cerveau dans ses ouvrages, ses
cours et conférences. Les recherches en psychologie, qui commencent au 19
e
siècle, constituent un
autre axe. C’est de la convergence entre ces différentes approches que va naître l’Intelligence
Artificielle.
L’Intelligence Artificielle entra dans l’histoire avec l’apparition des premiers ordinateurs et
fit ses premiers pas dans le domaine des jeux et de la démonstration des théorèmes. Le rêve de
l’humanité c’était de «faire réaliser par une machine les tâches qui jusque là étaient réservées à
l’homme ». Par exemple jouer aux échecs, traduire un texte, découvrir que sur une photo il y a
monsieur un tel sur sa bicyclette devant un jardin, etc. L’Intelligence Artificielle se donnait aussi
comme objectif d’analyser les comportements humains dans les domaines de la compréhension, de
la perception, de la résolution des problèmes, afin de pouvoir ensuite les reproduire à l’aide d’une
machine.
En 1950, apparurent les tortues de Grey Walter, puis le renard d’Albert Ducrocq qui était
capable de détecter la lumière. Ce fut Ducrosq qui fut le premier à proclamer l’ère des robots.
Pour éviter que cette intelligence ne devienne dominatrice, Issac Assimov mis au point les
trois célèbres lois de la robotique suivantes :
- Un robot ne peut faire du tord à un être humain
- Un robot doit obéir à un être humain tant que cela ne contredit pas la loi précédente,
- Un robot doit se maintenir en vie tant que cela ne contredit pas les deux lois précédente.

2. La naissance de L’Intelligence Artificielle

Dès les débuts de l’ordinateur, celui-ci est pressenti pour reproduire l’intelligence. En témoigne
la dénomination « cerveau électronique » qui lui est alors attribué. Des recherches sont menées
vers 1950 à cette fin. Deux tendances se sont opposées jusqu’à la fin des années soixante : les
systèmes adaptatifs (connus sous le nom de réseaux neuromimétiques ou systèmes
connexionnistes), dérivés de la cybernétique, dont l’un des plus fameux a été le perceptron,
conçu par Franck Rosenblatt au Cornell Aeronautical Laboratory, et les systèmes experts,
préconisés par Marvin Minsky et Seymour Papert, du Massachusetts Institute of Technology
(MIT). Les premiers sont une tentative de modélisation des êtres vivants, dérivés des travaux des
cybernéticiens, notamment Norbert Wiener, dans les années quarante. Les seconds consistent à
émuler par un programme d’ordinateur des comportements intelligents ; c’est l’approche
symbolique ou à base de connaissances, dont on peut faire remonter l’origine au mathématicien
Alan Turing en 1950. Cette dernière approche a fini par supplanter la première dans les années
soixante, en raison des progrès technologiques des ordinateurs et des performances des logiciels.
Durant cette éclipse quasi-totale de l’approche adaptative, les systèmes experts ont connu un
développement considérable, notamment au cours des années quatre-vingt.


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


9 9
3. Les premières applications

La première application envisagée en IA fut la recherche de techniques générales de résolution
de problèmes, indépendantes du domaine considéré : General Problem Solver.
A la même époque, Newell et Simon développement un démonstrateur de théorèmes en logique,
Logic Theorist, et un programme d’échecs. Le premier langage pour l’IA naît aussi dans ces
années là.
Les recherches se sont ensuite focalisées dans le domaine du traitement du langage naturel et les
premiers programmes de traduction automatique virent le jour, mais les résultats ne sont guère
concluants.
L’ambition des chercheurs se limita désormais à des problèmes plus restreints et assez bien
définis ; ils étudient notamment les mécanismes mis en jeu par un expert humain pour résoudre
un problème réel dans un domaine d’activité bien précis. Le premier projet en la matière fut
Dendral, l’ancêtre des systèmes experts, lancé en 1965 par E.Feigenbaum à l’université Stanford
( Californie, Etats-Unis). Il avait pour objectif d’aider le chimiste à trouver la structure d’un
composé organique à partir de la donnée de son spectrogramme de masse et de sa formule
chimique. Constatant l’énormité et la complexité du programme obtenu par les techniques de
programmation classique, Feigenbaum et ses collègues ont eu l’idée de séparer explicitement les
connaissances spécifiques du domaine et les mécanismes d’interprétation. De cette séparation est
née la structure de base des systèmes experts. Et la méthode a ensuite été affinée avec Mycin,
Système de diagnostic des maladies du sang, développé par Shortliffe à l’université de Stanford
en 1976, puis Prospector , toujours à Stanford en 1979, destiné à des applications de géologie.

Depuis les années quatre-vingt, avec les progrès de la modélisation mathématique de structures
inspirées de la biologie, la seconde approche connaît un regain et les réseaux neuromimétiques
remplacent, dans certains cas, ou complètent l’approche symbolique.

4. Les six générations de l’informatique

On distingue différentes générations de l’informatique comme dans d’autres domaines
techniques. Le passage d’une génération à l’autre est marqué par un saut technologique
important.
En matière de logiciel, les générations sont caractérisées par le niveau d’évolution des langues.
Cette évolution est plus ou moins chronologique, du moins pour les trois premières générations.
Aujourd’hui coexistent la troisième, la quatrième et la cinquième générations.

4.1. La Génération zéro

C’est le début de l’informatique. La notion de logiciel est encore inexistante. La programmation
des ordinateurs se fait manuellement, sur le matériel, en connectant les composants électroniques
qui doivent être mis en jeu, grâce à des fiches disposées sur un panneau à l’arrière de la machine,
à l’instar des centraux téléphoniques.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


10 10

4.2. La première Génération
Elle est marquée par l’apparition du logiciel, mais celui-ci se présente sous forme numérique
(binaire) ; c’est le code machine, qui est directement compris dans l’ordinateur.
4.3. La deuxième Génération
Elle est encore très proche et est marque par l’apparition du langage d’assemblage (assembleur).
C’est un langage de programmation dans lequel les commandes du code machine ont des noms
qui suggèrent leurs usages. Un programme en assembleur doit être traduit en code machine avant
de pouvoir être exécuté par l’ordinateur.
4.4. La troisième Génération
C’est la génération à partir de laquelle les langages informatiques se démaquent de la machine
pour se rapprocher de la langue naturelle (généralement l’anglais). C’est le cas de la plupart des
langages utilisés actuellement : le Cobol, Fortran, Basic, Pascal, C… Ces langages présentent
l’avantage d’être relativement indépendants de la machine sur laquelle ils tournent.
4.5. La quatrième Génération
C’est la génération des langages communément appelés L4G. Ces langages s’adressent aux non-
informaticiens qui souhaitent développer eux-mêmes leurs applications. Ce sont des langages
déclaratifs et non des langages procéduraux, c'est-à-dire qu’ils décrivent ce qu’ils décrivent ce
qui est à faire, et non les détails de la procédure.
4.6. La cinquième Génération
Cette génération marque l’apparition de l’Intelligence Artificielle. Les langages de cette
génération sont donc ceux de l’IA, c'est-à-dire Lisp et Prolog. On peut y ajouter les langages
orientés objets. Ce sont des langages structurés, qui se prêtent au traitement symbolique.
4.7. La sixième génération
C’est une génération de l’informatique entamée au Japon, après avoir annoncé dans les années
80 un programme de cinquième génération associant traitement symbolique et parallélisme. Il ne
s’agit plus dans cette génération là de langage, ni de logiciel, mais plutôt d’associer des
informations de types divers (multimédia) et connaissances à des architectures de machines
spécifiques (parallélisme massif, connexionnisme….).

Plusieurs disciplines ont contribué conjointement à la naissance de l’intelligence artificielle comme
nous le montre le schéma suivant :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


11 11


Informatique Psychologie
Cognitive
VLSI
Langages
Programmation
Symbolique

Intelligence Artificielle
Robotique
Traitement du
langage naturel
Systèmes
Experts
Réseaux des
Neurones
Apprentissage
Instruments
intelligents
Systèmes
intelligents
Reconnaissance
de formes
Reconnaissance
de la Parole
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


12 12

QUELQUES DATES A RETENIR POUR LES SCIENCES AYANT CONCURUES A LA
NAISSANCE DE L’INTELLIGENCE ARTIFICIELLE:
Philosophie :
• 1596-1650 : Descartes suppose que les animaux sont des sortes de machines vivantes. Les
hommes sont dotés d'une âme échappant à la matière.
• 1646-1716 : Leibniz introduit le matérialisme. Selon lui, tout est régit par des lois physiques.
• 1561-1626 : Bacon et l'empirisme : tout ce qui atteint la compréhension l'est par
l'intermédiaire des sens
• 1711-1776 : Hume construit son principe d'induction : les règles générales sont acquises par
exposition à des associations répétées de leurs éléments
• 1872-1970 : Russel formalise les travaux de Hume et introduit le positivisme logique : le
savoir est caractérisé par des liens logiques, finalement reliés aux sens.
Mathématiques :
• 9ème siècle : al-Khowarazmi introduit l'algorithmique, l'algèbre et la notation arabe
• 1815-1864 : Boole construit l'algèbre binaire et la logique formel
• 1848-1925 : Frege établit la logique du premier ordre
• 1906-1978 : Gödel établit son théorème d'incomplétude et d'indécidabilité (il n'existe pas de
procédure capable de décider qu'un non-théorème en est un).
• 1912-1954 : Turing montre que toute fonction calculable l'est par une machine de Turing (et
donc par un ordinateur). Attention ! il existe des fonctions non-calculables.
Psychologie :
• 1821-1894 Helmoltz, 1832-1920 Wundt : origine de la psychologie scientifique
• 1878-1958 Watson, 1874-1949 Thorndike : introduction du behaviorisme : le comportement
d'un individu est le produit de conditionnements multiples.
• 1948 Tolman : Le cerveau contient des représentations internes sous forme de cartes
cognitives
Automates :
• 1748 : Julien Offroy de la Mettrie assimile l'homme à une machine complexe
• 1709-1782 : Vaucanson construit des automates (canard, joueur de flûte traversière) qui
donnent l'illusion d'être vivants.
• 1592-1635 : Schickard créé la première machine à calculer à l'aide d'engrenages (addition,
soustraction, multiplications, mémorisation de résultats et dépassement de capacité).
• 1623-1662 : Pascal (1642) réalise la ``Pascaline'' ? Leibniz construit une machine effectuant
les 4 opérations élémentaire.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


13 13
• 1785-1870 : Thomas de Colmar construit ``l'arithmomètre''
• 1792-1871 : Babbage réalise une ``machine analytique'' programmable grâce à des cartes de
variables et des cartes d'opérations (il est à noter que Ada de Lovelace, fille de Lord Byron,
fut la première personne à concevoir des programmes. C'est en son honneur que le langage
Ada porte son nom).
Il faut attendre les travaux de Turing (1912-1954) pour voir apparaître la première tentative délibérée
pour comprendre et reproduire l'intelligence humaine. Turing construit son action autour du
paradigme fondateur consistant à affirmer que ``toute l'intelligence cognitive humaine est
modélisable dans le cadre formel de la machine de Turing''. La machine de Turing est une machine
abstraite capable d'effectuer des calculs. Elle est composée d'une unité de traitement et d'une
mémoire qui n'est autre qu'un ruban à partir duquel la machine peut lire données et programme,
stocker des informations temporaires et imprimer les résultats. Un ordinateur est donc une machine
de Turing améliorée. Turing propose un test, capable, selon lui, de décelé si un système a reproduit
l'intelligence humaine. Ce test consiste à faire dialoguer un humain et le système et déterminer si
l'humain peut déceler si le système n'est pas humain.
Informatique :
• 1940 : Heath Robinson crée par l'équipe de Turing pour décoder les messages allemands
(technologie à base de relais)
• 1943 : Colossus, encore créé par l'équipe de Turing (technologie à base de lampes à vide)
• 1940-42 :
o Z3; ordinateur programmable doté du premier langage évolué
o ABC; Iowa state university
o Mark I, II et III; Harvard
o ENIAC : University of Pennsylvania
o EDVAC : Programme mémorisable (sur les conseils de Von Neumann1.2)
o IBM701
o 1965-1980 Mise au point d'algorithmes efficaces. Prise de ce conscience de la grande
complexité du problème
o 1982 ordinateurs de la 5eme génération (Japon) pour 1992 une machine parallèle
capable de raisonner.
Avec l'apparition des machines massivement parallèles le niveau de représentation de l'information
utilisant des ``symboles'' est il toujours pertinent ?
Intelligence Artificielle :
• 1943 : McCulloch et Pitts créent le modèle du neurone formel
• 1948 : Création de la cybernétique (science des systèmes) par Norbert Wiener.
• 1949 : Hebb établit la première règle d'apprentissage neuronal
• 1950 Shannon, 1952 Samuel, 1953 Turing : machine pour jouer aux échecs
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


14 14
• 1956 Workshop où est né le terme ``intelligence artificielle''
• 1959 Rochester : Geometry Theorem Prover
• 1958 McCarthy au MIT créé le LISP et le ``time sharing''. Créé DIGITAL.
• 1960 John McCarthy, Allen Bewell & Herbert Simon: L'ordinateur peut être utilisé pour
autre chose que des calculs ``manipuler des symboles'' (idée proposée par Ada Lovelage amie
de Babbage 1842)
• 1969 arrêt des RNs (Minsky & Paper 1969) limitations des perceptrons
• 1969-1979 : systèmes experts
• Depuis 1986 : retour des réseaux de neurones
Les langages d'Intelligence Artificielle :
• Lisp 1956/58 John McCarthy au MIT
• Les moteurs d'inférences: l'importance de l'organisation des données (structure, liste...)
Programmer à partir des données
• Prolog 1973 Colmerauer : Générateurs de Systèmes Experts
Le développement de l'intelligence artificielle a été conditionné d'une part par le cloisonnement des
sciences du vivant et des sciences pour l'ingénieur (l'Intelligence Artificielle se réclamant des
sciences exactes), et d'autre part par une orientation principalement exclusivement basée sur le
paradigme de Turing. C'est pourquoi, malgré des débuts ancrés dans la biologie et la psychologie,
l'Intelligence Artificielle est rapidement passé à un formalisme mathématique très poussé et s'est
attaquée à des problèmes plutôt symboliques. Elle s'est d'autant plus confortée dans ces idées que les
débuts de la cybernétique (Widrow60 : adaline, Rosenblatt62 : perceptron), ont conduit à une
impasse du fait de la démonstration de Minsky69 de la limitation des perceptrons.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


15 15
I.2. DEFINITIONS DE L’INTELLIGENCE ARTIFICIELLE


1. Qu’est-ce que l’Intelligence Artificielle ?

Selon Larousse, l’intelligence est la « faculté de comprendre, de donner un sens ; l’aptitude à
s’adapter à une situation, à choisir en fonction des circonstances ; la capacité de comprendre telle
ou telle chose ; l’aptitude à résoudre des problèmes »….Robert y ajoute l’ « ensemble des
fonctions mentales ayant pour objet la connaissance conceptuelle et rationnelle ». Pour certains,
l’ « intelligence distingue l’homme de l’animal ». En fait, il y a pratiquement autant de
définitions que d’individus :
La capacité à résoudre des problèmes,
La perception,
La capacité d’apprentissage,
La capacité d’adaptation,
La capacité à mener une pensée abstraite ( ou l’art de la conjecture),
Ou, tautologiquement parlant, ce qui peut être mesuré par des « tests d’intelligence ».

Souvent, nous avons tendance à confondre « intelligence » et « intellect », « facultés
intellectuelles » ou « réflexion » : « La réflexion est la puissance de se replier sur ses idées, de
les examiner, de les modifier ou de les combiner de diverses manières », selon Vauvenargues
(1715-1747), qui s’est penché sur la question dans son Introduction à la connaissance de l’esprit
humain.
L’objet de l’Intelligence Artificielle est de mettre en évidence la manière dont une machine peut
être rendue « intelligence », c'est-à-dire dotée de l’une ou l’autre de ces capacités. Cette
intelligence peut lui être fournie par l’intermédiaire de programmes informatiques. Tels les
programmes de la machine à laver ou de la borne d’information, de la machine-outil ou du poste
de travail. Quelle que soit la machine concernée, c’est toujours sur des ordinateurs que ces
programmes sont développés. L’IA est donc avant tout une branche de l’informatique.
L’IA n’est pas l’étude des ordinateurs, bien que ceux-ci aient été appelés, dans les premiers
temps, « cerveaux électroniques ». C’est :
- Soit une manière particulière de programmer (traitement de données symboliques ou de
connaissances),
- Soit la programmation en vue de réaliser des fonctions particulières évoquant l’intelligence
(fonctions visuelles, tactiles auditives…compréhension, apprentissage, adaptation…) et
permettant de doter une machine d’une certaine autonomie de fonctionnement.
Plusieurs auteurs ont tentés de définir le concept « Intelligence Artificielle » comme nous pouvons le
constater :
L'Intelligence Artificielle (terme créé par John McCarthy), souvent abrégée avec le sigle IA,
est définie par l’un de ses créateurs, Marvin Lee Minsky, comme « la construction de programmes
informatiques qui s’adonnent à des tâches qui sont, pour l’instant, sont accomplies de façon plus
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


16 16
satisfaisante par des êtres humains car elles demandent des processus mentaux de haut niveau tels
que : l’apprentissage perceptuel, l’organisation de la mémoire et le raisonnement critique ».
Pour d’autres auteurs, le concept « Intelligence Artificielle » est difficile à définir, car :
• L’adjectif artificiel est assurément aisé à comprendre : ce type d’intelligence est le
résultat d’un processus créé par l’homme, plutôt que d’un processus naturel biologique et
évolutionnaire,
• En revanche, la notion d'intelligence est difficile à cerner :
o La capacité d’acquérir et de retenir les connaissances, d’apprendre ou de
comprendre grâce à l’expérience.
o L’utilisation de la faculté de raisonnement pour résoudre des problèmes, et pour
répondre rapidement et de manière appropriée à une nouvelle situation, etc.
D’après BUCHAMAN ; L’intelligence artificielle est le domaine de l’informatique qui
effectue les traitements symboliques et qui emploie des méthodes non algorithmiques.
D’après BONNET ; L’intelligence artificielle est une discipline qui vise à comprendre la
nature de l’intelligence en construisant des programmes d’ordinateurs imitant l’intelligence humaine.
D’après RICH, l’intelligence artificielle est le domaine qui étudié comment faire exécuter
par l’ordinateur des tâches pour lesquelles l’homme est encore toujours le meilleur.
En examinant ces trois définitions, nous pouvons retenir ceci ;
L’intelligence artificielle aborde les problèmes pour les quels l’être humain demeure plus
performant que la machine. Ces problèmes font intervenir les divers sens (la vue, l’ouie, la parole,
l’intuition etc.)
L’intelligence artificielle est un sous domaine de l’informatique dont le but est d’élaborer des
systèmes intelligents, c’est à dire des systèmes qui possèdent des caractéristiques associées à
l’intelligence dans le comportement des humains.
Plusieurs autres définitions du concept « Intelligence Artificielle » ont été proposées :
L’intelligence artificielle est un ensemble de technique utilisée pour réaliser les automates
adoptant une démarche proche de la pensée humaine.
L’intelligence artificielle est l’étude des idées qui permettent aux ordinateurs d’être
intelligent c’est à dire leur donnant la possibilité de développer des machines ou des programmes
qui font preuve d’intelligence.

D’une manière générale, de toutes ces définitions, nous pouvons retenir deux ambitions de
l’intelligence artificielle :

1. L’hypothèse forte de l’Intelligence Artificielle qui essaie de reproduire sur une machine
les capacités de l’esprit humain en matière de raisonnement à partir de n’importe quel domaine et
de l’information disponible. On peut citer les réseaux des neurones, les algorithmes génériques,...
Cette hypothèse touche à la simulation de l’intelligence humaine pour créer des esprits artificiels.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


17 17
Le concept d’Intelligence Artificielle forte fait donc référence à une machine capable non
seulement de produire un comportement intelligent, mais d’éprouver une impression d'une réelle
conscience de soi, de « vrais sentiments » (quoi qu’on puisse mettre derrière ces mots), et une
compréhension de ses propres raisonnements.
L’intelligence artificielle forte a servi de moteur à la discipline, mais a également suscité de
nombreux débats. En se fondant sur le constat que la conscience a un support biologique et donc
matériel, la plupart des scientifiques ne voient pas d’obstacle de principe à créer un jour une
intelligence consciente sur un support matériel autre que biologique. Selon les tenants de l'IA forte,
si à l'heure actuelle il n'y a pas d'ordinateurs ou de robots aussi intelligents que l'être humain, ce n'est
pas un problème d'outil mais de conception. Il n'y aurait aucune limite fonctionnelle (un ordinateur
est une machine de Turing universelle avec pour seules limites les limites de la calculabilité), il n'y
aurait que des limites liées à l'aptitude humaine à concevoir le programme approprié.
2. L’hypothèse faible de l’Intelligence Artificielle qui essaie d’exploiter à bon escient les
avancées théoriques et pratiques pour réaliser des systèmes capables d’exécuter des tâches qui
nécessitent une certaine intelligence. Il s’agit par exemple des systèmes experts. Cette hypothèse
tend seulement à élargir l’utilisation des ordinateurs dans des domaines variés pour concevoir des
systèmes utiles. La notion d’intelligence artificielle faible constitue donc une approche pragmatique
d’ingénieur : chercher à construire des systèmes de plus en plus autonomes (pour réduire le coût de
leur supervision), des algorithmes capables de résoudre des problèmes d’une certaine classe, etc.
Mais, cette fois, la machine simule l'intelligence, elle semble agir comme si elle était intelligente. On
en voit des exemples concrets avec les programmes qui tentent de passer le test de Turing, comme
Eliza. Ces programmes parviennent à imiter de façon grossière le comportement d'humains face à
d'autres humains lors d'un dialogue. Ces programmes "semblent" intelligents, mais ne le sont pas.
Les tenants de l'IA forte admettent qu'il y a bien dans ce cas une simulation de comportements
intelligents, mais qu'il est aisé de le découvrir et qu'on ne peut donc généraliser. En effet, si on ne
peut différencier expérimentalement 2 comportements intelligents, celui d'une machine et celui d'un
humain, comment peut-on prétendre que les 2 choses ont des propriétés différentes ? Le terme même
de "simulation de l'intelligence" est contesté et devrait, toujours selon eux, être remplacé par
"reproduction de l'intelligence".
Les tenants de l'IA faible arguent que la plupart des techniques actuelles d’intelligence artificielle
sont inspirées de leur paradigme. Ce serait par exemple la démarche utilisée par IBM dans son projet
nommé Autonomic computing. La controverse persiste néanmoins avec les tenants de l'IA forte qui
contestent cette interprétation.
Simple évolution, donc, et non révolution : l’intelligence artificielle s’inscrit à ce compte dans la
droite succession de ce qu’ont été la recherche opérationnelle dans les années 1960, le process
control dans les années 1970, l’aide à la décision dans les années 1980 et le data mining dans les
années 1990. Et, qui plus est, avec une certaine continuité.
Il s'agit surtout d'intelligence humaine reconstituée, et de programmation d'un apprentissage.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


18 18
En conclusion, toute définition de l’Intelligence Artificielle doit couvrir les aptitudes
humaines suivantes : le raisonnement, l’apprentissage, l’intention, la compréhension, le bon sens, la
conscience, etc. Parmi toutes ces aptitudes, le plus grand mystère, demeure la conscience c’est – à
dire le sentiment d’être conscient de soi – même et du monde alentour).

2. Comment décider si une machine est intelligente ?

Le mathématicien Alan Turing a donné une réponse à cette question avec son fameux test,
connu sous le nom de « test de Turing » (1950). Celui-ci s’inspire du « jeu de l’imitation », qui se
joue à trois personnes, qui ne se connaissent pas : un homme (A), une femme (B) et un observateur
(O), chacun dans une pièce séparée ; O peut communiquer avec chacun d’entre eux par
l’intermédiaire d’un terminal (clavier – écran). Le jeu consiste, pour O, à deviner si son interlocuteur
est A ou B ; pour cela, il peut poser n’importe quelle question. A essaie de l’aider ; B au contraire,
tente de brouiller les pistes : il répond comme il pense que A répondrait.
Dans un article publié en 1950, où il se propose de répondre à la question : « Les machines
peuvent – elles penser ? », Turing a eu l’idée de transposer ce jeu, afin de pouvoir prouver si une
machine pouvait imiter un homme au point de tromper un observateur. Remplaçons, B par une
machine, A et O restant humains. Les règles sont les mêmes. Si O ne peut pas discerner A de B, la
machine est considérée comme intelligente : le test de Turing est positif. En conclusion Turing
reconnaît : « La question d’origine est à mon avis, trop dénuée de sens pour être débattue. Je suis
néanmoins convaincu qu’à la fin de ce siècle (siècle passée), l’usage des mots et l’opinion générale
des personnes instruites auront tellement changé que l’on pourra parler de machines pensantes sans
risquer d’être contredit.

I.3. De l’informatique classique à l’Intelligence Artificielle : deux manières de
programmer

L’informatique est définie par Philippe Dreyfus, l’inventeur de ce mot, comme une science qui, à
l’aide d’algorithmes, traite des données pour obtenir des informations. Cela sous entend une
certaine organisation séquentielle prédéfinie des opérations à effectuer. Donc, l’intelligence
classique résout un problème en utilisant une méthode appropriée traduite sous forme
d’algorithmes pour obtenir la solution des problèmes posés (approche algorithmique). Cette
démarche ressemble à un théorème où tout est bien précisé, rien n’est superflu et tout est à sa
place.

Ainsi, face à un problème à résoudre, il faut décrire les différentes étapes, par une succession
d’instructions, le programme, exécutable par l’ordinateur. Un tel programme reflète le modèle
sous-jacent de la machine de Von Neuman. En fait, le même programme est capable de résoudre
une classe de problèmes, pourvu qu’on lui fournisse des données numériques sur lesquelles
portera le traitement. Par exemple, en mathématiques, un programme d’inversion de matrices
s’applique à toutes les matrices qui peuvent lui être soumises ; en gestion, de même, un
programme de paie ou de gestion de stock est apte à résoudre cette classe de problème.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


19 19
Ainsi, l’informatique nécessite que le programmeur sache résoudre le problème, et puisse
expliciter les différentes étapes de cette résolution par un nombre fini (de préférence pas
astronomique) d’instructions.
Par exemple, voyons ce qui se passerait si nous voulions construire un programme pour jouer
aux échecs : les données initiales sont la position des pièces sur l’échiquier. Le programme doit
examiner les différents coups que peut faire le joueur, connaissant les règles du jeu ; l’objectif
étant d’éviter de se faire prendre des pièces importantes et de mettre le roi adverse en échec. Cela
implique l’examen d’un nombre énorme de configurations, ne serait-ce que pour prévoir deux ou
trois coups d’avance. Avec seize pièces par joueur et soixante-quatre cases, ce nombre croît si
rapidement avec le nombre de coups considérés que l’on parle d’ « explosion combinatoire ». Et
pourtant, un bon joueur parvient à trouver les meilleurs coups en un temps assez court.

a) Un problème classique résout un problème : seules les données peuvent varier.

















Entrée : données
Programme : Liste
d’instructions
Sortie : résultats
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


20 20

b) Un système d’IA peut résoudre une infinité de problèmes, chaque problème
correspond à une situation





















Alors, au lieu d’indiquer à l’ordinateur toutes les étapes du raisonnement, pourquoi ne pas lui
donner la faculté de raisonner comme le ferait une personne dans la même situation ? En quelque
sorte, de le doter d’intelligence. C’est cette idée qui est à la base de l’intelligence Artificielle.
En résumé, l’informatique est la science du traitement automatique de l’information, alors
que l’Intelligence Artificielle s’intéresse à tous les cas où ce traitement ne peut être ramené à une
méthode simple, standard et algorithmique.

Traitement symbolique et non numérique

Au contraire de la programmation classique, l’IA n’exige pas que l’on sache a priori résoudre un
problème. Le programmeur doit raisonner en termes d’objectifs. Seul l’objectif doit être fixé ; ce
peut être un théorème à démontrer, une image à reconnaître, une partie à gagner…
Le programme d’IA se charge de choisir les moyens d’atteindre cet objectif en fonction des
hypothèses qui lui sont données. Il s’agit de programmation déclarative, par opposition à la
programmation procédurale caractéristique de l’informatique classique : il suffit de spécifier le
« quoi » sans se préoccuper du « comment », le système étant capable de trouver lui-même la
solution, en fonction de cet objectif. Aussi, la programmation en IA est-elle également appelée
heuristique ( du grec eurisko : trouver, découvrir, cf. Archimède). Pour permettre au système de
trouver par lui-même une solution à un problème donné, il doit posséder des de raisonnement, sous
Système d’Intelligence Artificielle
Entrée : faits relatifs à
une situation
Connaissances
relatives à un domaine
Moteur
d’inférence
Sortie : résultats
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


21 21
la forme logique (programmation logique avec PROLOG). Au lieu d’intégrer dans le programme
toutes les étapes du raisonnement, cette logique lui conférera les capacités de raisonner par lui-même
à partir des données ou plutôt des connaissances qui lui ont été fournies.

Problèmes de connaissances en IA

Pour résoudre un problème donné, on réalise un modèle du système en question. Par
exemple, une voiture est constituée d’une carrosserie, d’un châssis, d’un moteur, de mécanismes
de transmission, de l’habillage (tableau de bord, sièges, etc…)…Lorsque nous voulons raisonner
sur la voiture, nous pouvons partir de ce modèle si nous le connaissons. Mais il est parfois plus
simple de raisonner sur la connaissance que nous avons de ce système. Ainsi, si nous voulons
conduire la voiture, nous n’avions pas besoin de savoir comment le fait de mettre le contact
déclenche tout un mécanisme qui va permettre de faire démarrer le moteur. Il suffit de savoir que,
pour démarrer, il faut tourner la clé de contact dans un certain sens, puis manier le levier de
vitesse, les pédales de débrayage et d’accélération, etc. Le garagiste ou le mécanicien qui doit
réparer la voiture dispose de certaines connaissances spécifiques. D’autres connaissances sont
nécessaires à la personne qui doit démonter et remonter le véhicule. D’autres encore au concepteur
d’une nouvelle automobile…
Les connaissances sont des données structurées, c'est-à-dire comprenant des relations
entre des mots ou des valeurs numériques. Des propositions comme « le ciel est bleu », ou « si le
réservoir d’essence est vide, alors la voiture tombe en panne » peuvent être considérées comme des
connaissances. On parle également de données symboliques.
En outre, en Intelligence Artificielle, les connaissances sont séparées de la façon de les
utiliser, en d’autres termes le programme (moteur d’inférence) est séparé de données
(Connaissances). Ce qui n’est pas le cas en informatique classique. Par exemple, la règle « si le
réservoir d’essence est vide, la voiture tombe en panne » servira au garagiste : le réservoir est l’un
des éléments qu’il doit contrôler lorsqu’il répare la voiture. Pour le conducteur, cette même
connaissance l’incite à remplir son réservoir avant d’entreprendre un long parcours. Cette
séparation entre connaissances et façon de les utiliser permet de maîtriser plus facilement la
complexité de la description d’un problème non trivial.
Pour résoudre un problème donné, il suffit seulement de savoir quelles connaissances sont
nécessaires à sa résolution, et de fournir à l’ordinateur l’intégralité de ces connaissances, sous la
forme d’un fichier particulier, sans ordre préétabli, appelé Base de connaissances. Une Base de
connaissances correspond à la connaissance d’un expert dans un domaine donné ; elle contient le
savoir-faire de l’expert ou du spécialiste.
La principale difficulté de l’Intelligence Artificielle ne réside pas dans la programmation,
mais dans le fait de fournir toutes les connaissances, et sous une forme exploitable par l’ordinateur.
La principale forme de programmes à base de connaissances est le système expert, bien qu’il existe
d’autres modes de traitement de connaissances.
En informatique classique les concepts les plus utilisés sont : données, algorithmes,
fonctions, procédures, ... et en Intelligence Artificielle, on parle des connaissances, contrôles,
recherche, heuristique, inférence.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


22 22
Le but de l’Intelligence Artificielle est de simuler au sens le plus large le travail de contrôle
effectué par le cerveau. Un comportement intelligent est une action complexe, mais contrôlée.
L’heuristique, c’est un raisonnement faisant appel à l’intuition (par tâtonnements) ou qui se base sur
l’étude de cas favorables. A la différence des algorithmes, les heuristiques sont souvent tirées de
l’expérience ou d’analogies, plutôt que d’une analyse scientifique complexe car recensant le
maximum d’éléments, et donc difficile, voire même impossible.
L’heuristique est donc l’utilisation des règles empiriques :
- pratiques, faciles et rapides
- facilitant la recherche de faits et l’analyse de situations,
- dans un objectif de résolution de problèmes et de prise de décision
- dans un domaine particulier
Entre l’approche algorithmique nécessitant l’ écriture du processus à suivre pour résoudre
le problème ( avant la transcription dans un quelconque langage) et l’approche de l’intelligence
artificielle où la résolution du problème est confiée à un ensemble de règles données par l’expert
humain du domaine, il y a une troisième approche qui cherche à s’inspirer du traitement de
l’information effectué par le cerveau, celle des réseaux de neurones artificiels.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


23 23
CHAPITRE II : DOMAINES D’APPLICATIONS DE L’INTELLIGENCE ARTIFICIELLE

Dans la partie sur la genèse de l’intelligence artificielle nous nous sommes rendu compte que
l’intelligence artificielle est beaucoup plus née de la conjonction entre l’informatique et la
psychologie cognitive. En effet, l’informatique est considérée comme un outil puissant pour
effectuer des opérations numériques complexes ou pour gérer des informations administratives telles
que la comptabilité, la gestion des stocks, la gestion des clients etc. tandis que la psychologie
cognitive a toujours espéré pouvoir reproduire un jour le comportement humain à l’aide d’un
ordinateur.
Les applications de l’IA sont toutes les activités où la machine peut se substituer à l’activité
raisonnante de l’homme. C’est le cas lorsqu’il s’agit de trouver une stratégie, pour résoudre un
problème ou vaincre un adversaire, d’organiser des éléments lorsque le nombre de configurations est
très élevé. L’intelligence intervient dans la perception, la reconnaissance, c'est-à-dire la capacité à
identifier une entité préalablement mémorisée, l’apprentissage, la compréhension, l’évolution dans
un milieu inconnu ou mal connu… Enfin, de nouvelles applications de l’IA émergent en relation
avec des activités plus classiques de l’informatique, comme l’aide au développement de logiciel ou
la conception assistée par ordinateur.
Schématiquement, l’IA peut servir :
à modéliser les problèmes et les possibilités de solutions,
à modéliser un domaine de connaissances (un fragment du monde réel),
à modéliser la connaissance que l’on a du domaine et les moyens d’agir sur ce domaine

Parmi les différentes branches de l’intelligence artificielle, nous pouvons citer :

1. Le traitement du langage naturel (domaine de la compréhension de la langue naturelle)
2. la reconnaissance des formes et de la parole
3. La robotique
4. La représentation des connaissances
5. Jeux et résolution des problèmes (Les Systèmes de Résolution de Problèmes)
6. La conduite et le contrôle des processus
7. L’apprentissage
8. La programmation par contraintes
9. Le raisonnement basé sur le cas
10. La vision par ordinateur
11. Robots et systèmes autonomes
12. La traduction automatique
13. Les systèmes experts
14. Les réseaux de Neurones
15. La modélisation cognitive, etc.

Cette liste n’est pas exhaustive, on peut se référer aux différents sujets des séminaires. Dans la suite
nous présenter quelques domaines, las autres seront présentés lors des séminaires.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


24 24

II.1. Le Traitement du langage naturel

Dans ce domaine les recherches se focalisent sur le développement des programmes
informatiques qui sont capables de lire, de comprendre et de générer les phases telles que nous les
utilisons dans nos conversations et nos écrits. En d’autres termes, le traitement du langage naturel,
c’est la programmation des ordinateurs en vue de la compréhension des langues naturelles.
L’objectif poursuivi dans ce domaine, est de rendre les machines plus conviviales, de faciliter la
communication entre l’homme et la machine. Il englobe aussi la compréhension de textes et oraux.
Le traitement du langage naturel est l’un des problèmes d’IA les plus difficiles. IL met en jeu
des connaissances spécifiques, précises, et des connaissances générales, souvent diffuses.
Le traitement des langues naturelles touche plusieurs domaines tels que : la reconnaissance
de la parole, la traduction automatique( compréhension des textes dans la langue source et la
génération de textes dans la langue cible), l'analyse et la compréhension de textes (indexation
automatique de textes ou recherche d’informations dans les textes non structurés, écrits ou oraux),
l'interrogation de bases de données en langue naturelle, l'enseignement, les interfaces
homme/machine, la production des textes en langue naturelle( création des récits, élaboration des
résumés, rédaction des lettres, etc.), les systèmes experts qui consistent à communiquer dans un
langage familier, la prise de commande par téléphone, etc.
L’ensemble des techniques et applications du traitement du langage naturel est regroupé sous
le terme d’ « ingénierie linguistique »

II.1.1. Différents types de connaissances linguistiques
Dès le début de l'informatique, l'homme a été confronté au problème de la communication
avec les machines, la puissance de l'ordinateur étant contrebalancée par l'obligation d'utiliser un
codage fastidieux -- manipulation de clefs sur le frontal de l'ordinateur, ou l'écriture binaire. De ces
contraintes sont nés les langages de programmation et les dispositifs de traduction en binaire (seule
information réellement intelligible pour un ordinateur) ; c'est-à-dire compilateur et/ou interpréteur.
Un langage de programmation, aussi évolué soit-il, n'est pas une langue naturelle.
Les linguistes ont établi depuis fort longtemps que les langues humaines fonctionnent selon
trois modes : syntaxique, sémantique et pragmatique. Le mode syntaxique correspond à l'adéquation
entre une phrase d'un langage donné et la grammaire du dit langage. De cette étape, on extrait la
structure de la phrase. Chaque phrase peut être décomposée en expressions, et chaque expression en
petites parties, jusqu’à ce qu’il soit possible d’identifier la fonction de chaque mot, et de « donner »
un sens à la phrase. Sans savoir comment le cerveau traite ce processus appelé analyse syntaxique.
On peut programmer un ordinateur pour qu’il l’applique. Le mode sémantique permet de traduire
cette structure en une formule supposée exprimer le sens du texte initial. Le mode pragmatique
cherche à modifier le résultat de l'analyse sémantique en prenant en considération des éléments
extérieurs au texte analysé.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


25 25
L'un des exemples classiques, c’est par exemple la réponse à la question ``Pouvez-vous me
dire l'heure qu'il est ?''. C’est une question qui appelle une réponse par oui ou par non. Les
conventions sociales, qui déconseillent les formes trop impératives, conduisent la personne à qui
s'adresse la question, à interpréter la question comme une forme polie pour connaître l'heure. La
pragmatique détermine l'ensemble des rapports possibles entre objets ou concepts intervenant dans le
monde réel : une table peut supporter une tasse, l'inverse ne se produisant que très rarement.
Si les deux premiers modes sont effectivement implémenter, très peu de logiciels intègrent la
troisième étape.
La reconnaissance de mots ou de groupes de mots (voir dans les paragraphes qui suivent)
consiste dans des comparaisons. Ainsi, pour appréhender la signification d’une phrase, une machine
doit non seulement reconnaître des éléments isolés de cette phrase (connaissances morphologiques
et lexicales), mais les relations formelles qui relient ces éléments dans la phrase (connaissances
grammaticales et syntaxiques), ainsi que le sens induit par ces relations et par le contexte
(connaissances sémantiques). Les connaissances lexicales sont celles qui sont groupées dans un
dictionnaire. Les connaissances grammaticales ou syntaxiques se retrouvent, en principe dans une
grammaire. Les connaissances sémantiques sont celles qui donnent le sens d’un mot dans un
contexte donné. Les connaissances implicites liées à la culture (contexte, etc.), sont appelées
pragmatiques.
N. Chomsky a introduit la notion de grammaire de constituants ou grammaire générative,
dans laquelle on a des règles de réécriture. Ainsi une version (outrageusement) simplifiée de la
langue française pourrait être :
Texte --> Phrase, Texte
Texte --> Phrase; Texte
Texte --> Phrase. Texte
Texte --> Phrase.
Phrase --> GN GV
GN --> Art Nm
GN --> Art Nm Adj
GV --> V GN

Où Art permet l'accès aux articles le, la, ...; Nm permet d'accéder aux noms ...
Lorsque l'ordinateur travaille en mode syntaxique, il vérifie que le texte qu'il analyse possède bien
l'une des structures que la grammaire lui impose.
Chomsky a montré que la meilleure représentation correspondait à un arbre mettant en
évidence à la fois la décomposition de la phrase en constituants et l'appartenance de ces constituants
à des catégories déterminées. Bien entendu, ce modèle a été raffiné pour prendre en compte la notion
de verbes transitifs, intransitifs, indiquant un mouvement, de noms correspondants à des objets
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


26 26
animés ou non. Cependant, si cette technique permet d'éviter des constructions comme ``Le
président marche la table'', elle n'est pas suffisante pour déterminer si dans la phrase ``les menaces de
licenciement des directeurs'', le mot ``directeurs'' est associé à ``menaces'' ou à ``licenciement''. Ces
constatations ont conduit Chomsky (et d'autres) à la notion de niveaux dans les langues naturelles,
qui sont utilisés dans les grammaires transformationnelles. Outre leur complexité, peu compatible
avec un traitement automatique, des phrases comme :
« Léon permet à son amie de venir »
et « Léon promet à son amie de venir »
ont une structure identique, alors que dans un cas c'est l'amie de Léon qui bouge et dans l'autre c'est
Léon (lui-même) qui se déplace. La dissociation de la syntaxe et de la sémantique, a depuis été
abandonnée. On associe à un mot du dictionnaire, différents attributs sémantiques (ou traits
sémantiques), permettant d'en connaître le sens comme dans l'exemple décrit ci après :










Les traits sont nécessaires à la compréhension d'un texte et pour la traduction (semi) automatique.
Actuellement, il existe des systèmes capables de répondre à des questions exprimées dans
une langue naturelle, pourvu que ce soit sur un domaine extrêmement restreint. Le problème est
loin d'être simple, de nombreux mots sont sujets à de multiples interprétations. Pour compliquer
le tout il n'existe pas de méthodes formelles permettant de s'assurer que quelqu'un à totalement
compris quelque chose -- comment un enseignant peut-il être certain que son enseignement a été
totalement compris. Des systèmes de compréhension de langues naturelles sont dores et déjà
Jeune fille
Souris
matériel non matériel
Verbe conjugué
Sourire
animé inanimé
humain
familier
Non humain
mammifère
rongeur
comestible objet
Morceau de
viande
device
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


27 27
commercialisés, citons par exemple l'interrogation de bases de données, la recherche
documentaire (Spirit de la société Systex) ou la commande d'automatismes.
Une des applications du traitement du langage est le chatbot, un programme conversant avec
des personnes. Vous pouvez interagir avec des chatbots sur Internet, en tapant des phrases et en
attendant la réponse. Des sites web commerciaux utilisent des chatbots pour répondre aux
questions des utilisateurs sur leurs produits. La reconnaissance et l’analyse de la parole étant de
plus en plus élaborées, l’interaction avec des chatbots devient comparable à l’interaction avec
des humains.
Une autre facette du traitement du langage naturel consiste à créer des programmes pouvant
tenir une conversation avec des humains. Le premier de ces programmes fut ELIZA, créé en
1966 par Joseph Weizenbaum un informaticien du MIT. Il fut conçu pour imiter un
« psychothérapeute non dirigé», répondant aux déclarations de ses patients. ELIZA peut analyser
les déclarations des patients et produire des questions directement fondées sur celles – ci.

II.1.2.Reconnaissance et compréhension de la parole continue

Un système de reconnaissance et de compréhension de la parole continue met en œuvre des
informations de natures diverses :
Acoustico-phonétiques : ces informations régissent la transcription phonétique du message,
auxquelles il faut adjoindre des informations phonologiques qui rendent compte des
variations individuelles (accent) et des phénomènes d’altérations des sons (coarticulations,
liaisons, etc.), et prosodiques, concernant le rythme, l’intensité et la mélodie de la voix ;
Lexicales, syntaxiques, sémantiques, pragmatiques

Toutes ces différentes informations doivent être accessibles par le système à travers une base de
connaissances qui les fédère. Le modèle du type blackboard (tableau noir), dans lequel les
sources de connaissances communiquent par l’intermédiaire d’une structure de données
commune est adapté à ce type de problèmes.

La compréhension de la parole continue (chaîne de phonèmes) peut être effectuée suivant deux
stratégies, ascendante et descendante :

La stratégie ascendante consiste à partir de la chaîne de phonèmes, à reconstituer peu à
peu une phrase en prenant compte les informations lexicales, puis syntaxiques,
sémantiques, pragmatiques ;
La stratégie descendante, à l’inverse, utilise les niveaux supérieurs de traitement
(sémantique, syntaxique) pour prédire les mots qui vont apparaître dans la phrase ; ces
« mots-hypothèses » sont ensuite confirmés ou infirmés par l’examen de la chaîne de
phonèmes.

En résumé, l’organisation d’un système de compréhension de la parole peut être représentée
schématiquement de la manière suivante :

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


28 28



























Les différents paliers du traitement sont les suivants :

Phonologique
Caractères
Chaînes de caractères
Mots reliés
- prononciation
Morphologique
conjugaisons
déclinaisons
variations en genre et en nombre
- racines, préfixes et suffixes
Syntaxique
règles de formation des phrases
transformations de structure
Sémantique
Vérification des mots

Parole
Traitement acoustico-
phonétique
Comparaison
Transformation
Représentation des mots
Séquence de mots admissibles
Dialogue
Réponse
Connaissances
Acoustiques
Phonétiques
Mots hypothèse
Phonologiques
Lexicales
Syntaxiques
Sémantiques
Prosodiques
Pragmatiques
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


29 29
sens de mots
combinaison de ces sens
- sens des phrases, des paragraphes, des textes
Pragmatique
(extra-linguistique)
connaissance du monde
- rôle des objets, comportement des individus…

II.1.3. La traduction automatique

Naissance de la traduction automatique

Les recherches sur la traduction automatique ont débuté en 1949 à l’université de
Washington. Dès 1954, une équipe de l’université de Georgetown travaillait sur un système
traduisant du russe vers l’anglais. L’idée sous-jacente était de pouvoir traduire la
documentation scientifique soviétique. La question fut ressentie de manière cruciale en 1957,
lorsque les soviétiques réussissent leur première mission spatiale Spoutnik. C’est alors que
les Américains se sont rendu compte que, pour rattraper leur retard en matière spatiale par
rapport à leurs concurrents, il leur fallait assimiler très rapidement toute la documentation qui
avait permis de préparer cet exploit.
Le problème est alors exprimé dans les termes suivants : étant donné, en entrée, un
texte rédigé dans la « langue source », le programme doit fournir, comme résultat, un texte
élaboré dans la langue cible ». A l’époque, il paraissait évident que les ordinateurs
parviendraient à traduire aussi bien qu’un traducteur humain, en beaucoup moins de temps ;
ce n’était qu’une question de taille de dictionnaires à stocker en mémoire et de puissance de
calcul de machine.
Dans les années soixante, compte tenu des connaissances de l’époque en informatique
et des performances des ordinateurs, on ne pouvait guère espérer mieux que la traduction
mot à mot , à partir de vastes dictionnaires contenant essentiellement des correspondances
entre mots ou expressions. Une amélioration pouvait être envisagée en introduisant le plus
possible de données sur la grammaire, afin d’obtenir des produits, sinon directement
utilisables, du moins compréhensibles par un spécialiste du monde concerné. Pourtant, la
qualité des textes obtenus était si médiocre, la durée du traitement et des accès à la mémoire
tellement longs, que la traduction automatique fut alors considéré comme un échec. Cette
constatation marqua un coup d’arrêt presque total aux recherches dans ce domaine.
Toutefois, en dépit de ce constat d’échec, une équipe américaine sous la direction
d’un chercheur d’origine hongroise, Peter Toma, à l’université de Georgetown, continua à
travailler dans ce domaine et parvint à mettre au point, dans les années soixante, le premier
système opérationnel et commercial de traduction automatique, Systran. Conçu d’abord pour
la traduction tusse-anglais, ce système a ensuite été étendu à la plupart des langues
européennes.
La traduction se fait presque en temps réel, à partir d’un fichier texte sur ordinateur,
ou par lecture optique. Mais elle nécessite la présence d’un opérateur, prêt à intervenir
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


30 30
lorsque le système rencontre un terme qu’il ne sait pas traduire. De plus, le texte « brut »
fourni par la machine doit ensuite être révisé par une personne qui améliore la forme du texte
final.

Les différentes étapes de la traduction automatique

Pour traduire correctement un texte, il faut le « comprendre » et, pour cela, remonter
toujours plus haut dans l’analyse des relations entre les mots. Différentes phases de
traduction doivent être effectuées successivement ou simultanément :
translittération, consistant à convertir les caractères de la langue source dans
l’alphabet de la langue cible (lorsque l’écriture est différente : grec, russe, chinois,
arabe, etc.) ;
traduction mot à mot, ou lexicale ;
traduction syntaxique ;
traduction sémantique ;
traduction pragmatique ou contextuelle.

Les différentes étapes de la traduction automatique, correspondant aux différentes
générations peuvent être schématisées de la manière suivante :






















Première
génération
Pragmatique
Sémantique
Syntaxique
Mot à mot
Langue
source
Langue
cible
Langue
pivot
Translittération
Deuxième
génération
Troisième
génération
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


31 31
N.B. Si les deux premières étapes peuvent être relativement facilement automatisées, les trois
dernières étapes, faisant appel à des connaissances générales ou spécialisées, nécessitent un
traitement par l’IA.

Exemple de traduction automatique

Les différentes étapes de la traduction automatique d’une phrase sont les suivantes :

1. L’analyse de la structure de la phrase en langue source (anglais) permet de définir un
sujet, un verbe et un complément.
2. La phrase en langue source est décomposée en mots ou expression.
3. Chaque mot ou expression est cherché dans le dictionnaire, en fonction de sa valeur
(sujet, verbe ou complément) dans la phrase.
4. Le fait que LOVE ait une valeur de verbe implique de le traduire par AIMER et non
AMOUR. Le fait que YOU soit complément d’objet direct du verbe implique de le
traduire par TE ou VOUS.
5. La syntaxe de la langue cible (français) implique un ordre des mots différent.
6. La grammaire française fournit la forme conjuguée de AIMER (première personne du
singulier du présent de l’indicatif).
7. Le dictionnaire précise que AIMER implique généralement l’usage du tutoiement et
permet de choisir TE plutôt que VOUS.
8. La grammaire française dit que TE doit être remplacé par T’ devant une voyelle.

Ainsi s’achève la synthèse de la phrase dans la langue cible.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


32 32

Trois générations de systèmes de traduction

Suivant la stratégie adoptée, il existe plusieurs générations de systèmes de traduction
automatique :
- La première est l’approche directe, représentée par Systran. C’est une
traduction mot à mot, améliorée par des traitements spécifiques et des
réarrangements localisés
- La deuxième stratégie passe par trois phases : analyse, transfert et synthèse.
Elle vise d’abord à obtenir une interprétation linguistique du texte source :
chaque phrase est découpée en unités lexicales, sémantiques, etc. qui
constituent les descripteurs entre lesquels des liens logiques sont mis en
évidence ; c’est l’analyse, qui aboutit à une représentation interne en langue
source. Puis le programme transfère ces descripteurs dans ses nouveaux
descripteurs adaptés à la langue cible, grâce à des dictionnaires particuliers.
JE AIMER TE

VOUS
1
2
3
4
5
6
7
8
I LOVE YOU
I LOVE YOU
SUJET VERBE COMPLEMENT
Syntaxe langue source
Dictionnaire
I = JE AIMER
LOVE = AMOUR

TU
YOU = TOI
TE
VOUS

SUJET COMPLEMENT VERBE
Syntaxe langue cible
JE { TE } AIMER
{VOUS}
Grammaire :
Conjugaison du verbe AIMER
en français
JE { TE } AIME
{VOUS}
JE TE AIME

Le verbe AIMER implique la forme familière
TE plutôt que la forme de politesse VOUS
JE T’AIME

Grammaire française :
Remplacement de TE par T’
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


33 33
Enfin, à partir de cette nouvelle représentation, le texte cible est généré ; c’est
la synthèse. Les systèmes canadien TAUM ( Traduction Automatique de
l’Université de Montréal), français Ariane ( GETA, Grenoble) et européen
Eurota fonctionnent suivant ce modèle.
- La troisième stratégie passe par une langue pivot, indépendante des langues
sources et cible. Cette langue pivot est une représentation de la scène ou de
l’action décrites par le texte, correspondant à ce que l’on comprend à partir
d’un texte, mais dépourvue de formes linguistiques. Cette stratégie est
d’autant plus intéressante que le nombre de langues à traduire est plus élevé :
si l’on veut traduire n langues unes dans les autres, cela fait (n(n-1) couples de
langues en traduction directe, et 2n en passant par une langue pivot. Déjà à
partir de quatre langues, il suffit de 8 programmes au lieu de 12.













Couple de langues en traduction directe
















Couple de langues en traduction passant par une langue pivot

Anglais
Allemand
Français
Russe
Langue pivot
Anglais
Allemand
Français
Russe
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


34 34

De la traduction automatique à la traduction assistée

La traduction entièrement automatique ne fournit généralement pas de solutions de
qualité suffisante. Ainsi, des solutions « sous optimales » ont été développées :
traduction assistée par ordinateur (TAO), traduction automatique assistée par
l’homme ou traduction humaine assistée par la machine.
Les systèmes de traduction assistée par ordinateur nécessitent l’intervention humaine,
soit pendant le traitement, soit avant (pré-édition ou marquage), soit après (post-
édition ou correction). On parle aussi de traduction automatique assistée par l’homme.
A l’inverse, la traduction humaine assistée par la machine (THAM) est possible grâce
à des « postes de travail du traducteur », regroupant un ensemble d’outils de
productivité (traitement de texte associé à des dictionnaires électroniques, mémoire de
traduction pour garantir l’homogénéité du texte, interface homme-machine, etc.)


II.2. LA RECONNAISSANCE DES FORMES ET DE LA PAROLE

Dans ce domaine les recherches sont axées sur le développement des programmes
informatiques capables de transformer des informations visuelles (c’est à dire des points et des traits
qui représentent un objet) ou des informations sonores ou tactiles (c’est à dire une série des sons qui
constituent une phrase) en des informations qui peuvent être traitées par l’ordinateur. La
reconnaissance de formes et de la parole est l'un des domaines les plus importants de l'Intelligence
Artificielle, la notion de formes ou de parole est à prendre au sens large (formes visuelles, sonores
ou tactiles), son domaine d'application : la robotique, les interfaces homme/machine.
Il faut noter par exemple que la sémantique du message doit être conservée dans ce genre de
système (c’est à dire que l’ordinateur doit pouvoir bien comprendre ce qu’il voit par exemple au
travers d’une caméra et être capable de dire qu’il s’agit par exemple d’un mouton, d’un paysage,
d’un chien, d’une personne, ou ce qu’il entend).

II.2.1. La Vision par ordinateur ou la reconnaissance des formes

La vision par ordinateur permet, à partir de l’image d’un objet ou d’une scène réelle, d’en
déduire des données exploitables par une machine. Ce domaine se rattache à l’IA pour deux raisons :
• D’abord, pour qu’un système soit « intelligent » ou du moins qu’il puisse simuler
l’intelligence, il doit être capables de réagir aux sollicitations externes, donc être sensible
à son environnement, et en particulier à la représentation spatiale de celui-ci, qui est
fourni pour une grande part par la vision.
• Ensuite, parce qu’un système de vision artificielle fait intervenir les techniques d’IA
(traitement de connaissances et réseaux neuromimétiques).



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


35 35
a) Vision naturelle ou artificielle

Les questions ci-après sont résolues apparemment très facilement par l’homme :
comment fonctionne la vraie vision naturelle ? Pourquoi « reconnaît » -t-on un objet, un
visage, une image ? Comment reconnaît – on un objet familier dans le paysage ? Un
visage connu lorsqu’il change de position ou d’expression (souriant ou sévère, avec ou
sans lunettes) ? Qu’est-ce qui nous permet de déchiffrer un manuscrit, alors que les
caractères peuvent être si différents de la calligraphie standard ? Comment pouvons –
nous si facilement saisir un objet sans l’avoir préalablement palpé ? Quels sont les sens
qui nous servent à évaluer la position d’un obstacle ?
Mais, une autre question est de savoir « comment automatiser leur résolution ? »
Quelle est la part de la vue, de la réflexion, de la mémoire, du raisonnement ?
Reconnaissons-nous une personne parce que nous nous attendons à la voir ? Pouvons-
nous lire une lettre parce que nous préjugeons, en partie du moins, de son contenu ?
L’abondance et la diversité de ce questionnement préfigure la complexité du problème
que l’on se propose de résoudre avec les systèmes de vision.
L’étude de la vision a de tout temps suscité un grand intérêt. Dans l’antiquité, elle
était plus ou moins confondue avec celle de la lumière et de l’optique en général.
Aujourd’hui, nous savons que la vision comprend deux phases distinctes: la perception,
au niveau de l’œil, et le traitement, au niveau du cerveau. Cet intérêt pour la vision
s’explique aisément si l’on sait que, chez l’homme, 60% du cortex cérébral sont dévolus
à ce sens, et que l’œil est l’organe le plus complexe et le plus sophistiqué chez les
vertébrés supérieurs.

b) L’œil : un organe intelligent

La vision des êtres vivants a bien évidement servi de modèle pour les systèmes de
vision artificiels. L’œil a souvent été comparé à une chambre noire d’appareil
photographique, dont la plaque sensible serait formée par la rétine. Ainsi, un système de
vision par ordinateur comprend :
- un ou plusieurs capteurs de lumière ou caméras qui « photographient » des
objets ou des scènes, à l’instar de l’œil ;
- des processeurs et des programmes de traitement correspondant à la zone du
cerveau dédiée à la vision ;
- entre les deux, un système de sélection, de numérisation et de transmission des
données, qui jouerait le rôle du nerf optique.
Mais cette analogie n’est qu’approximative, car les systèmes artificiels sont loin
d’atteindre la complexité de la nature : les capteurs de vision les plus perfectionnés
comportent quelques dizaines de milliers d’éléments, alors que l’œil est constitué d’une
centaine de millions de cellules sensibles (cônes et bâtonnets). Quant au nombre de cellules
nerveuses intervenant dans le processus visuel, il est de l’ordre du milliard, ce qui permet un
traitement très fin et hautement parallélisé de l’information visuelle.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


36 36
Par ailleurs, les fonctions de saisie et de traitement de l’image ne sont pas nettement
distinctes dans la vision biologique. En réalité, la rétine joue un rôle bien différent de celui
d’une simple pellicule photographique impressionnée par la lumière provenant du monde
extérieur. D’abord, l’œil est un piètre capteur : l’image est précise sur un très petit domaine
du champ visuel, à condition d’accommoder, le reste est flou ; la vision se fait par balayage
constant du champ et accommodation. Ensuite, les cellules de la rétine sont des structures
nerveuses qui, non seulement captent la lumière, mais sont aussi capables d’effectuer un
prétraitement de ces informations avant de les transmettre au cerveau. S’adaptant à l’intensité
aussi bien qu’à la qualité de l’information lumineuse, l’œil est plutôt sensible aux variations
de ces paramètres qu’à leur valeur absolue ; c’est pourquoi un feu rouge ou orange dans un
paysage à dominante verte (campagne), grise (ville) ou blanche (hiver) « saute aux yeux »,
de même que des caractères noirs sur une feuille blanche, et nous remarquons plus un feu
clignotant qu’une lumière immobile. Les yeux de certains animaux ne sont sensibles qu’au
mouvement.
Ainsi, l’œil n’est pas un organe passif : sa fonction consiste non seulement à capter
des images, mais surtout à trier les informations pour les présenter au cerveau prêtes à être
exploitées rapidement : on admet que la rétine effectue 10 milliards d’opérations par seconde,
avant que la « représentation » de la scène observée n’atteigne le nerf optique (traitement
massivement parallèle). Mais c’est surtout grâce à l’intervention du cortex que la vision
humaine est très efficace : seuls 20% du processus de vision proviennent des nerfs optiques,
le reste est le fait du cerveau. La vision biologique est donc essentiellement une fonction
intelligente.

c) La visionique

La mise en œuvre de systèmes artificiels capables d’accomplir automatiquement ces
fonctions a donné naissance à une nouvelle technique et néologisme : la visionique. Ce terme
désigne l’ensemble des techniques et méthodes qui participent à la formation, à l’acquisition
et au traitement des images en vue de prendre une décision de façon automatique. Elles sont
généralement implémentées sur ordinateur, aussi parle-t-on de vision par ordinateur.
La vision par ordinateur combine l’optique, l’électronique, le traitement du signal et
l’informatique. Elle substitue au système visuel humain un ensemble informatisé (matériel +
logiciel) capable d’intégrer l’acquisition d’images, leur traitement et la prise de décision
adaptée au cas identifié.
Toutefois, l’objectif de la vision artificielle est différent de celui de la vision
biologique. En effet, l’homme apprécie d’un coup d’œil une image, mais il est incapable de
l’exploiter systématiquement. C’est ce que tente de réaliser l’analyse et le traitement
d’images informatique. Son domaine d’applications s’étend de la bureautique, avec la lecture
automatique de textes, jusqu’à la robotique industrielle, en passant par le contrôle de qualité
et l’interprétation d’images météorologiques ou biomédicales.
L’essentiel du système n’est pas le capteur (équivalent de l’œil ), mais ce qu’il y a
derrière, c'est-à-dire le traitement et le système d’interprétation de l’image, équivalent du
cerveau. Ces différentes fonctions sont remplies par des logiciels spécialisés comportant :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


37 37
• beaucoup de calculs numériques
• des algorithmes de traitement (filtrage, extraction de primitives, morphologie
mathématique, etc.),
• des algorithmes de reconnaissance (comparaison à des modèles) et de
classification conduisant à la prise de décision ( à l’aide de systèmes experts
ou de réseaux neuromimétiques dans les cas difficiles)


d) Phases de la vision par ordinateur : acquisition et prétraitement d’images

Les différentes phases de la vision par ordinateur sont les suivantes :

1. L’acquisition d’image

Elle se fait par des capteurs. On distingue plusieurs types de capteurs : linéaires,
matriciels, caméra, laser. Ils peuvent saisir une image en deux dimensions, comme les
caméras ordinaires, ou capter des informations relatives à l’objet dans l’espace
tridimensionnel. Ces derniers capteurs, notamment le télémètre laser, sont fondés sur
un calcul de la distance d’un point physique aux capteurs. Ils peuvent être composés
de deux ou trois capteurs, ou bien d’une seule caméra qui se déplace par rapport à
l’objet. Ce principe est appliqué aux robots mobiles. La tomographie, appliquée en
médecine ou dans l’industrie, est fondée sur la reconstitution d’objets tridimensionnels
à partir d’un nombre fini de courbes, prises dans des plans généralement parallèles
(rayons X, scanners, échographie, etc.)
La qualité de l’image saisie est conditionnée par un certain nombre de contraintes qui
doivent être respectées lors de l’acquisition : bon éclairage de la scène, bon contraste
entre l’objet et son environnement (pas d’objet noir sur un tapis roulant de couleur
sombre, par exemple).

2. L’échantillonnage

L’échantillonnage consiste à garder, à partir d’une quasi infinité de points saisis par le
système d’acquisition, un nombre fini de points, en réalisant un compromis entre la
qualité de l’image mémorisée et la capacité de mémoire du système. Les valeurs
observées sont ensuite numérisées, c'est-à-dire converties en une suite de valeurs
binaires (suites de 0 et de 1).
La première opération qu’effectue un système de vision est de découper l’image en un
certain nombre de « points d’images » ou « pixels » (picture cells). A chacun de ces
points correspond un niveau de gris (si le système de vision est monographique) ou à
une couleur, lesquels sont, à leur tour, réduits à un certain nombre de niveaux définis
par des valeurs numériques. Cette réduction, ou « filtrage » de l’informatique, est
accomplie lors du prétraitement. Ce processus est comparable à un entonnoir où le
nombre d’informations entrant dans le système est progressivement réduit, pour
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


38 38
atteindre finalement un relativement petit nombre de valeurs, correspondant à la prise
de décision par le système. Ce nombre peut être égal à 2 dans le cas d’une décision
binaire (acceptation ou rejet) ; il est au moins égal au nombre d’objets à reconnaître
dans un système de reconnaissance de formes ; ce nombre est, par exemple, 2×26 s’il
s’agit de reconnaître les caractéristiques de l’alphabet (majuscules et minuscules), plus
les caractères spéciaux (ponctuation, accents, etc.). Il peut aussi être bien plus élevé
lorsque le système évolue dans un environnement mal connu, par exemple le guidage
dans l’espace d’un robot.

3. Le pré-traitement

Le pré-traitement comprend toute une série d’opérations permettant de passer d’un
ensemble de données sous forme numérique à un ensemble de données structurées, qui
fourniront la base d’un traitement « intelligent » : compression d’image ;
suppression du flou et du bruit ; seuillage ; projection ; extraction de contours, de
squelette, etc.

4. La binarisation

La binarisation, ou le seuillage, consiste à comparer la luminance de chaque point à
une valeur de référence. La plupart des systèmes ne conservent que deux niveaux :
noir en dessous du seuil et blanc au dessus du seuil, par exemple, le seuil étant
déterminé par l’utilisateur suivant les détails qu’il veut conserver. En effet, l’intensité
lumineuse de l’image varie considérablement en fonction de l’éclairage et de la nature
des surfaces réfléchissantes et, si le seuil est fixé arbitrairement, les formes perçues
peuvent être très altérées par les conditions extérieures.
Le contour d’un objet est l’ensemble des points définissant la frontière de cet
objet, c'est-à-dire dont certains points voisins sont extérieurs à l’objet. L’extraction de
contours permet de passer d’une image de dégradés de gris et de tâches noires et
blanches à une image contrastée, où n’apparaissent que des lignes ou des chaînes de
points. Ces chaînes de points peuvent être remplacées par des segments de droite
suffisamment proches, par approximation polynomiale ou par des arcs de cercle. Cette
opération permet de réduire la quantité d’informations nécessaires pour décrire
l’image et de simplifier la manipulation par ordinateur.
Un autre traitement consiste à extraire le « squelette » d’un objet. C’est l’axe
médian de chaque élément de l’objet, obtenu en supprimant certains pixels pour lui
donner l’épaisseur 1. Cette opération s’applique à des images d’objets de forme
complexe (caractères alphanumériques, machines, outils, etc.).

e) Rôle de l’IA dans le traitement d’images

L’acquisition et le pré-traitement des images sont des opérations classiques, pour
lesquelles il existe des techniques classiques, bien maîtrisées. A l’issue du pré-traitement, on
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


39 39
dispose d’une description abstraite (géométrique, topologique, ensembliste, etc.) qui pourra
être traitée par logiciel.
C’est lorsqu’il faut interpréter ces données que peuvent se poser des difficultés, et c’est à
ce stade qu’il devient souvent nécessaire de mettre en jeu des techniques d’IA.
En fait, l’IA peut déjà intervenir au niveau du pré-traitement, pour la détermination du
seuil, pour apporter des connaissances sur l’espace bi ou tridimensionnel. Elle joue le rôle
important pour l’interprétation d’un trait sur une image, pour la compréhension d’une image,
afin de décider, par exemple, si une tâche noire sur l’image correspondant à une tache réelle,
à un trou, à une ombre ou un relief.

f) Interprétation et reconnaissances de formes

La reconnaissance de formes implique une phase d’apprentissage, de même que pour la
reconnaissance de la forme. Le processus de reconnaissance est d’ailleurs assez proche de
celui que nous avons vu dans le cas de la parole.
Avant de pouvoir reconnaître une forme, il faut d’abord en connaître un modèle ou un
ensemble de caractéristiques, afin de pouvoir faire une comparaison. L’ordinateur doit
donc mémoriser ces données, qui devront être comparées avec celles des objets
rencontrés.

Principe de la reconnaissance de forme

Le principe de la reconnaissance de formes présenté ci-après, est semblable à celui de la
reconnaissance de la parole.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


40 40


En conclusion, la reconnaissance consiste à extraire des données du capteur, une
description géométrique de la scène, puis mettre cette description en correspondance avec la
base de données de modèles, afin d’établir l’identification avec l’un de ces modèles.
L’identification peut se faire de deux manières :

Superposition de formes
Détection de similitudes

La première solution, est la plus simple et consiste à superposer l’image à reconnaître
à un modèle préalablement appris et stocké dans une base de données images. Cette
technique est valable pour des formes relativement simples, bien définies et se présentant de
Forme :
Capteur
Prétraitement
Paramétrisation
Ensemble de
référence :
Forme à
reconnaître
Comparaison
Identification
Réponse :
« triangle »
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


41 41
la même façon (même orientation dans l’espace, même échelle) : par exemple à la
reconnaissance de caractères dactylographiés ou imprimés, de pièces mécaniques bien
déterminées, d’empreintes digitales, etc. Mais cette technique est rarement applicable en
pratique, à cause de la trop grande quantité de données à stocker, et surtout de l’intolérance
aux légères variations.
La superposition parfaite est rarement réalisée, ainsi on utilise la notion de « distance »
entre images : il s’agit de la mesure de dissemblance entre l’image et le modèle. L’image
est reconnue comme identique au modèle si la distance est inférieure à un certain seuil, ou
bien si la distance entre l’image est l’un des modèles considérés est nettement inférieure à
la distance entre la même image et chacun des autres modèles. L’inconvénient majeur de
cette technique est que la notion de distance n’est pas invariante vis-à-vis d’un déplacement
(rotation ou translation) de l’image, d’une déformation ou d’un changement d’échelle. Par
exemple un système de lecture de caractères basé sur ce principe n’est pas capable de
reconnaître un caractère s’il est écrit dans un corps différent de celui de la base
d’apprentissage. Dans l’industrie, il ne sera pas possible de retrouver une pièce en vrac.

La seconde solution, passe par une représentation des connaissances, en d’autres
termes, elle consiste à extraire l’information pertinente qui permettra de déterminer ce que
représente l’image. La forme joue un rôle majeur dans l’interprétation des images par les
humains. On identifie un objet à partir de quelques traits caractéristiques ; chaque objet
est défini comme un ensemble de primitives (caractéristiques topologiques, connexité,
intersection entre lignes, zones homogènes, comptage ou calcul de certains éléments
d’images, etc.). Ainsi, pour les empreintes digitales, par exemple, on repère les points
caractéristiques : bifurcations, terminaisons de traits, nombre de lignes parallèles, etc.
Des « primitives de surface », par exemple, donnent la surface des objets à partir de
laquelle on calcule le rapport (périmètre au carré/surface), le centre de gravité, les moments
d’inertie, le nombre de trous, la surface des trous, etc. On peut aussi définir la concavité, la
convexité, ou d’autres fonctions intrinsèques de courbure. Ces codages fournissent un modèle
paramétrique structurel ou hybride, la « signature » de l’objet, qui sera stockée et comparée à
des données préalablement apprises.
D’autres attributs, comme la couleur, la texture ou le pouvoir de réflexion, peuvent
également servir pour l’identification d’un objet.
Mais des informations d’une autre nature peuvent intervenir, par exemple la connaissance
du contexte dans lequel se trouve l’objet. On parle alors de « reconnaissance sémantique ».
Si tous les êtres humains reconnaissent les mêmes images, ils n’en comprennent pas la même
chose ; une image est associée à tout un contexte socioculturel, donc à une accumulation
d’informations signifiantes, mémorisées antérieurement.






Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


42 42
g) Vison par réseaux de neurones

Bien que la reconnaissance d’images soit un problème de classement d’un objet donné parmi
un ensemble de classes, dont chacune est caractérisée par un jeu de paramètres
essentiellement mathématique, la compréhension d’images ou de scènes concerne des objets
non nécessairement définis d’avance, ou attendus.
Comprendre une image c’est savoir comment ses composants sont causalement reliés à
l’environnement.
Or les mêmes systèmes à base de connaissances (SBC) ne résolvent que de très péniblement
et incomplètement ce type de problèmes, faisant intervenir des connaissances très diverses et
très diffuses. D’où l’idée de se tourner vers une autre approche : les réseaux de neurones. Ces
structures sont particulièrement appropriées pour résoudre les problèmes de classification et
se comportent comme des « mémoires associatives ».
Les réseaux de neurones mémorisent une forme ou un ensemble de paramètres (primitives,
par exemple) en ajustant les coefficients de couplage entre neurones (synapses). On utilise de
préférence des modèles en couches pour leurs capacités de classification. Lorsque des
neurones de la couche d’entrée sont stimulés par une image, une évolution se propage, de
proche en proche, à tout le réseau, aboutissant à un « attracteur », état stable, fourni en sortie.
Un réseau peut posséder plusieurs attracteurs, dont chacun correspond à une forme
préalablement apprise. Le réseau revient automatiquement à l’un de ces états lorsqu’il a été
stimulé par la forme correspondante, même si celle-ci est altérée ou incomplète. Il est ainsi
possible de reconnaître des formes trop floues ou imprécises pour leur appliquer les méthodes
de programmation classique ou d’IA à base de connaissances.

h) Les applications de la vision

Dans l’industrie : La vision joue un grand rôle pour l’inspection et le contrôle non
destructif (détection de défauts sur des matériaux, des pièces ou des assemblages),
l’identification, le tri d’objets en vrac, le contrôle de conformité, les mesures de
dimensions, etc. On utilise des systèmes de vision, par exemple pour rechercher des
défauts sur des circuits électroniques, sur des pièces manufacturés, pour contrôler la
propreté de bouteilles, etc. L’inspection portant sur certaines grandeurs ou
caractéristiques d’une pièce aboutit à l’acceptation ou au rejet de la pièce. A titre
d’exemple, dans une tannerie, un système de vision peut calculer la surface d’une
peau en moins d’une seconde, alors que les méthodes classiques sont beaucoup plus
longues. Toujours dans l’industrie la vision peut être associée à la robotique, pour la
préhension d’objets, l’action sur des objets, le déplacement ou l’action des un
environnement non totalement défini, etc. Pour beaucoup d’industriels les systèmes
de vision sont les « yeux des robots ». La vision confère une sorte d’ « intelligence »
sans laquelle ils ne pourraient pas accomplir certaines actions, atteindre leur objectif,
franchir des obstacles, etc. Elle dispense l’opérateur de positionner avec une grande
précision les pièces sur lesquelles le robot doit travailler, grâce à l’autonomie que
celui-ci acquiert par la vision. Le système de vision localise l’objet, le contrôleur du
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


43 43
robot calcule le décalage avec la position nominale et réagit en conséquence sur le
programme. En association avec un robot manipulateur, le système de vision sert à
orienter et à positionner des pièces ; avec les machines-outils, il sert à l’assemblage et
au montage.
Dans le domaine de l’environnement : La vision sert à reconnaître les éléments
caractéristiques sur une photo satellite (côtes, cours d’eau, routes, agglomérations,
etc.) pour établir automatiquement une carte, ou aide à l’élaboration de cartes. Elle est
aussi utilisée pour la modélisation de phénomènes physiques et atmosphériques…
Dans le domaine militaire : La vision est appliquée à l’analyse des scènes, l’étude de
la trajectographie, l’interprétation des cartes, etc. Il existe également des systèmes de
surveillance qui permettent de détecter des objets en mouvement, déterminer la nature
de ces objets et, le cas échéant déclencher une alarme.
Dans le domaine de la bureautique : La vision est appliquée à la numérisation
d’images et à la reconnaissance de caractères ou OCR (Optical Character
Recognition). Cette application, peut faire appel à l’IA ; on parle alors d’ICR ou
Intelligent Character Recognition. On peut citer dans ce cas, les réseaux de neurones.
En médecine et en biologie : Les systèmes de vision servent à détecter ou reconnaître
des anomalies dans une culture de cellules, afin d’établir un diagnostic à partir d’une
image médicale.
En biométrie : Les systèmes de vision peuvent servir à identifier des individus par ses
empreintes digitales, par ses empreintes oculaires (c’est-à-dire le dessin des vaisseaux
sur l’iris de l’œil), par sa signature et le mouvement qu’il fait pour la réaliser…

En résumé, la vision englobe trois activités : l'analyse d'objets (qui est de fait la méthodologie
générale), la reconnaissance de caractères et enfin l'analyse de scènes en 3 dimensions (3D). Les
deux derniers domaines sont des applications directes de la première activité.
L’analyse d’un objet consiste en la détermination de l'objet, la caractérisation, la comparaison
entre l'image connue et l'image vue au niveau du pixel. On peut considérer dans ce processus trois
phases distinctes :
• pré traitement : simplification de l'image visualisée,
• extraction des primitives : caractéristiques principales de l'objet,
• classification.
L'opération de pré traitement englobe l'extraction des contours i.e. la détection de courbe
continue, l'analyse de continuité, le seuillage qui correspond à choisir un niveau de gris, tout pixel
plus foncé sera codé par 1, tout pixel plus clair étant codé par 0.
L'extraction des primitives consiste à coder l'image au moyen de descripteurs pertinents ;
pertinence dépendant du type de traitement ultérieur. Par exemple on peut s'intéresser à la surface, au
périmètre, au nombre de trous, à la dimension du rectangle circonscrit, .... On rajoute aussi des
descripteurs de position et d'orientation comme le centre de gravité, les angles, ...
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


44 44
La classification est en fait le processus de reconnaissance proprement dit, il s'agit de comparer
l'image visualisée avec la connaissance du système. En général on utilise l'une des deux méthodes
suivantes :
• méthode du plus proche voisin, c'est aussi la plus simple et la plus longue. Il faut comparer
les objets un à un ; ce qui est rendu d'autant plus difficile que les contraintes initiales seront
lâches (objet arrivant dans n'importe quel sens, superposition possible, ...).
• méthode de décision par arbre binaire, cette technique demande de choisir un nombre optimal
de critères discriminants (descripteurs pertinents), c'est la technique la plus couramment
utilisée dans le cadre de la reconnaissance de caractères.
Les recherches menées en synthèse d'images sont faites en étroite collaboration avec l'analyse d'un
objet digitalisé (problème de stockage, représentation de l'image, ...).
La reconnaissance des caractères est un ensemble des moyens qui permettent au système de
reconnaître une ou plusieurs polices des caractères. L’objectif étant de gagner le temps. Pour réaliser
cette tâche par l’ordinateur, il faut des logiciels de reconnaissance optique, ( ROC ) ou
OCR ( abréviation du terme anglais Optical Character Recognition) des caractères c’est – à – dire
des procédés informatiques qui permettent de récupérer le texte dans l’image d’un texte imprimé ou
dactylographié de le traduire en fichier texte et de le sauvegarder dans un fichier pouvant être
exploité dans un traitement de texte pour enrichissement, et stocké dans une base de données ou sur
un support sur et exploitable par un système informatique.
Les principes des systèmes de reconnaissances des caractères sont les suivants :
- Partir de l’image numérique réalisé par un scanneur optique (ou le lecteur code barre) d’une
page (document imprimé, etc.) dont on veut récupérer le texte.
- L’image doit être fortement contrastée pour permettre au programme de discerner les
caractères
- Le programme lit le document, et grâce à des bibliothèques de formes, détecter les caractères
afin d’en faire correspondre la forme au caractère attendu
- Des dictionnaires permettent de récupérer certaines erreurs
Certains logiciels tentent même de conserver l’enrichissement de texte ainsi que la mise en page et
même rebâtir les tableaux.

Actuellement plusieurs types de lecteurs optiques sont disponibles sur le marché (lecteur codes
barre, OCR, ...) depuis ceux spécialisés dans la reconnaissance d'une ou plusieurs polices de
caractères jusqu'aux lecteurs aptes à apprendre n'importe quoi.
L'intérêt dans la reconnaissance de caractères est évidement le gain de temps. A cela s'ajoute le
fait que les supports de masse (magnétique, optique, ...) ont des durées de vie nettement supérieur à
celle du papier, les recherches documentaires, le traitement du courrier dans les centres postaux, ....
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


45 45
L’analyse en scène est une reconnaissance des images en 3D. La difficulté dans l'analyse de scènes
3D réside dans le fait que toute l'information n'est pas accessible directement : c’est le problème de
faces cachées, que l'on rencontre aussi en synthèse d'images.



Une scène 3D
On cherche dans ce cas à détecter les points caractéristiques, par exemple, dans le cas de
volumes simples, les angles ou les jonctions de droites entre les différents contours.
À partir de ces informations l'ordinateur (ou le robot) doit décomposer la scène en éléments
simples, comme ci après.

Points caractéristiques



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


46 46
II.2.2. La reconnaissance de parole ou reconnaissance vocale

La reconnaissance de la parole représente certainement l’un des éléments clés des systèmes
informatiques de demain. Eminemment utile dans la relation homme-machine, la reconnaissance
vocale dépasse largement le cadre de l’informatique par ses applications. Elle peut équiper des
automobiles qui réagiront à un certain nombre d’ordres, elle assiste les handicapés moteurs, il existe
déjà des machines-outils à commande numérique répondant à la voix, ainsi que des téléphones
capables de composer eux-mêmes le numéro demandé oralement, directement dans le combiné. Pour
cette dernière application, la personne qui utilise le composeur vocal enregistre, dans un premier
temps, un ensemble de noms qu’elle associe à leur numéro de téléphone. Il lui suffira ensuite de
décrocher son combiné, de prononcer l’un de ces noms, et l’appareil obéira à l’ordre donné en
composant automatiquement le numéro. Pour éviter tout risque d’erreur, le nom prononcé s’inscrit
en clair sur un afficheur alphanumérique placé sur l’appareil. Cet exemple met en évidence deux
phases, que l’on retrouve en général dans les problèmes de reconnaissance : une phase
d’apprentissage où le système mémorise un certain nombre de modèles, et une phase d’utilisation, où
le système reconnaît un élément, mot, signal ou forme, en le comparant aux modèles appris.
La reconnaissance vocale se situe à l’intersection de nombreux domaines tels que
l’acoustique, l’électronique, la phonétique, la sémiologie, etc.
La phase de reconnaissance vocale proprement dite intervient après la phase de prétraitement
du signal. Cette reconnaissance nécessite de mettre au point des algorithmes particuliers pour la
reconnaissance des structures, ainsi qu’une architecture de traitement spécialement adaptée, à grand
débit, haute précision et d’une capacité de calcul ultra-rapide, car la reconnaissance de la parole doit,
normalement, se faire en temps réel : la parole est reconnue au fur et à mesure de son émission. Du
fait de la multiplicité des paramètres en jeu, l’IA semble une technique appropriée pour résoudre ce
problème, qui se pose donc en ces termes : « Qu’est-ce qui permet à une personne de distinguer un
mot d’un autre, indépendamment de celui qui parle ? »

II.2.2.1. Phases de reconnaissance vocale

La reconnaissance de la parole part de la capture du signal à la reconnaissance proprement
dite. Elle implique donc une analyse du signal vocal. Ce signal vocal, comme tout autre son, est une
vibration longitudinale qui se propage dans l’air (ou dans tout autre milieu). L’ouïe peut nous
renseigner sur certaines de ses caractéristiques : nous distinguons des sons élémentaires ou
phonèmes, la hauteur, le timbre, l’intensité, la durée des sons…Mais, en réalité, la voix est beaucoup
plus complexe que nous ne pouvons le percevoir à l’oreille. En convertissant, par l’intermédiaire
d’un microphone, l’onde sonore en un signal électrique, il est possible de la visualiser sur un écran
cathodique ou d’en sortir sur imprimante une représentation graphique. L’image ainsi obtenue est
une forme extrêmement complexe, dépendant des sons prononcés et de la voix : même pour une
seule personne, l’onde se modifie suivant l’âge, l’humeur, l’état de santé (rhume ou enrouement),
l’environnement, etc. Mais, surtout, la représentation graphique du son diffère considérablement
d’une personne à une autre, si bien qu’il est possible d’identifier un individu à partir de son
« empreinte vocale », à l’instar des empreintes digitales. Voilà précisément d’où provient la
difficulté de la reconnaissance de la parole, lorsqu’elle concerne un nombre illimité de locuteurs.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


47 47
Premièrement, il s’agit de capter le signal vocal (analogique) et de le traduire sous forme
numérique (conversion analogique – numérique). Cette conversion est effectuée par des
convertisseurs analogiques-numériques.
En général, ce n’est pas la totalité du signal qui est captée, mais des éléments de signal
limités dans le temps ; cette étape s’appelle échantillonnage.
L’ensemble des échantillons, après avoir été codé, peut être réduit par des techniques de
compression de signal, afin de limiter leur volume, tant pour le stockage que pour la
transmission. Jusque-là, nous sommes encore dans un domaine classique, puisque ces
techniques de conversion, échantillonnage et compression sont largement utilisées dans les
télécommunications, ainsi que les techniques audio et video.
La reconnaissance de la parole, qui consiste à comparer des objets mathématiques résultant
de ce prétraitement. Deux tels objets, représentant des « éléments vocaux », même s’ils ne
sont pas parfaitement identiques, doivent néanmoins être à la fois suffisamment proches pour
pouvoir être identifiés, et assez distincts des autres éléments pour lever toute ambigüité. Le
problème consiste à déterminer, pour chacun de ces éléments un certain nombre de
paramètres décisifs.

II.2.2.2. Principe de la reconnaissance de la parole

La reconnaissance de la parole s’insère dans le cadre plus général de la reconnaissance des
formes. Un son correspondant à un mot est prononcé oralement devant le microphone, qui convertit
le signal acoustique en un signal électrique. Celui-ci est soumis à un prétraitement (numérisation,
séparation du signal pertinent par rapport au bruit ambiant), puis il subit la paramétrisation
(extraction de paramètres). Ce traitement s’applique tant en phase d’apprentissage qu’en phase de
reconnaissance. L’utilisation du système consiste à comparer un nouveau son à un son de l’ensemble
d’apprentissage. Il s’agit d’un problème de classification (d’un mot dans un ensemble prédéfini) ou
de décision (de rattacher un mot à l’un ou l’autre des mots appris).
Schématiquement, nous obtenons le schéma suivant :



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


48 48































Figure : Principe de reconnaissance de la parole(mots isolés)

II.2.2.3. L’analyse du signal

Pour analyser un signal, il existe plusieurs solutions :
- Les méthodes temporelles : A partir de courbe représentative du signal, on tire un certain
nombre de paramètres (soit les abscisses de passage par zéro de cette courbe, soit les coordonnées de
ses maxima et minima).
- Les méthodes fréquentielles : elles sont aussi appelées méthodes spectrales. Elles jouent un
rôle fondamental en analyse du signal, dont la parole est un cas particulier. Les sons émis par la voix
peuvent, en effet, être assez bien décrits en termes de fréquences. Le spectre fréquentiel d’un signal
est sa transformée de Fourrier, c'est-à-dire la représentation de son amplitude en fonction de la
fréquence. La parole étant un phénomène non stationnaire, il importe de faire intervenir le temps
Microphone
Mot prononcé
Prétraitement :
- numérisation
- séparation parole / bruit
Paramétrisation
Ensemble
d’apprentissage
Caractéristiques du
mot à reconnaître
Comparaison
Mot reconnu
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


49 49
comme troisième variable dans la représentation. La surface dans l’espace de tridimensionnel de
coordonnées amplitude-fréquence-temps caractérise entièrement le signal : c’est l’ « image
acoustique ». Elle peut être analysée par un banc de filtre. Un jeu de huit filtres ou plus, échantillons
entre les fréquences de 300 et 5000 hertz (ou vibrations par secondes), conviendra en général.
L’analyse, effectuée 50 ou 100 fois par seconde, donnera pour chaque filtre la valeur numérique de
l’amplitude correspondant à la fréquence du filtre. L’ensemble des valeurs numériques ainsi
obtenues pour un mot constitue l’image acoustique spectrale, ou « sonagramme », de ce mot.
Le choix des paramètres pour le traitement du signal peut aussi s’inspirer des modèles
physiques du mécanisme phonatoire humain. L’état des cordes vocales peut être décrit par un
ensemble de paramètres numériques qui définissent un son vocal. C’est ainsi que l’on peut mettre en
évidence des fréquences privilégiées, appelées « formants », lesquelles peuvent constituer des
paramètres du signal vocal. Chaque voyelle se compose d’un ou plusieurs formants. Contrairement
aux voyelles relativement stables, les consonnes sont surtout déterminées par les transitions avec les
phonèmes environnants.

II.2.2.4. Le système de reconnaissance

Quelle que soit la codification du signal vocal, le problème fondamental consiste ensuite à
établir une correspondance entre différentes prononciations du même mot, c'est-à-dire effectuer un
calcul de similitude pour déterminer, parmi un ensemble de mots ou de phonèmes, les plus
ressemblants. Or, pour le même mot, les durées des phonèmes, les fréquences des formants, les
transitions peuvent considérablement différer d’un locuteur à un autre. Il s’agit de rechercher, dans
les différents diagrammes correspondant à un même mot, les « invariants » qui parviennent à leur
donner une allure générale commune.
Les deux phases de tout système de reconnaissances telles que nous venons de le voir sont : l’
apprentissage et la reconnaissance.
Dans le cas de la parole, nous avons deux phases :
- La première phase, dite « phase d’apprentissage », consiste à stocker un certain nombre de
mots ou de phonèmes prononcés isolément, plusieurs fois chacun, et une « étiquette », qui
peut être un numéro d’ordre ou leur forme orthographique, leur est affecté.
- Dans la seconde phase, dite « phase de reconnaissance », un locuteur prononce l’un des
mots de la liste, et la machine doit le comparer à ceux qu’elle a mémorisés et le classer dans
l’une des catégories. Lorsque la correspondance est trouvée, l’ordinateur peut soit prononcer
ce mot, par synthèse vocale, soit l’afficher sur un écran pour que le locuteur puisse s’assurer
que l’interprétation est correcte.

II.2.2.5. Le traitement global ou analytique de la parole

Deux approches, l’approche globale et l’approche analytique, peuvent être appliquées au
traitement de la parole.
L’approche globale, qui utilise comme unité de base « le mot », ne fait pas intervenir le
niveau phonétique, mais passe directement du niveau acoustique au niveau lexical. Elle consiste à
rechercher, pour chaque mot, la plus grande ressemblance avec l’un des modèles mémorisés lors de
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


50 50
la phase d’apprentissage ; à chaque comparaison, une note mesurant la ressemblance avec le modèle
est attribuée ; à la fin du processus, le mot retenu sera celui qui a obtenu la meilleure note. Cette
technique présente l’inconvénient d’être relativement lente et gourmande en mémoire.
L’approche analytique consiste à sélectionner, pour chaque mot, un ensemble de traits
caractéristiques sur le plan phonétique ; le signal est découpé, et chaque segment doit être identifié
par sa valeur phonétique. L’examen d’un sonagramme révèle généralement une alternance de zones
transitoires et de zones quasi stables correspondant approximativement aux formants ; le processus
d’identification consiste alors à comparer chacun de ces segments, représentés par son spectre, à une
série de spectres de référence (un pour chaque son élémentaire), et à retenir les plus ressemblants.
Cette dernière méthode, qui ne nécessite pas d’apprentissage préalable, est cependant plus délicate à
mettre en œuvre, car nous ne savons pas, à l’heure actuelle, reconnaître les phonèmes dans l’absolu,
c'est-à-dire indépendamment du locuteur.

II.2.2.6. Le système mono-locuteur ou multi-locuteurs

Parmi les systèmes de reconnaissance de la parole, on distingue les systèmes mono-locuteurs
et les systèmes multi-locuteurs. Les premiers ne peuvent reconnaître que les mots prononcés par la
personne qui a effectué la phase d’apprentissage. Un système multi-locuteur fonctionne sur le même
principe, mais l’ensemble d’apprentissage doit être beaucoup plus vaste. Au cours de cette phase,
chaque son ou chaque mot stocké dans le système est prononcé par plusieurs locuteurs différents. Le
système effectue ensuite une sorte de moyenne, c'est-à-dire mémorise un signal plus ou moins
proche des signaux correspondant aux différentes prononciations d’un mot. Enfin, pour la
reconnaissance, le système doit avoir une tolérance assez élevée, sachant que les mots à reconnaître
sont prononcés par une personne différente, dont on ne connaît pas les particularités par avance.
Ces systèmes doivent ainsi établir un compromis entre une tolérance assez grande pour
admettre la plus grande variété de locuteurs possible – même s’ils ont un accent étranger- et des
capacités de discriminations suffisantes entre des mots différents. Ce sont de tels systèmes qui sont
notamment mis en place pour des services téléphoniques dans certaines villes en France.

II.2.2.7. Les mots isolés ou phrases

La reconnaissance de mots isolés est assez bien maîtrisée. Actuellement, de systèmes
s’attaquent au problème de la reconnaissance de mots enchaînés à l’intérieur de phrases, sans pauses
artificielles. Ce problème est en passe d’être résolu : le système est capable de discerner certains
mots clés dans la phrase, sans pour autant comprendre celle-ci dans son ensemble. Afin de résoudre
le problème dans sa totalité, c'est-à-dire comprendre toute la phrase, il faudrait d’énormes capacités
de stockage d’informations (vocabulaire et formes diverses de prononciations) et des processeurs
capables de traiter en temps réel des flux de données très rapides. Ce dernier problème fait appel,
non seulement à des notions acoustico-phonétiques, mais aussi à des règles syntaxiques, à la
sémantique, à la linguistique, etc. Il s’agit là d’un problème de compréhension de la parole ou du
langage naturel plutôt que de reconnaissance proprement dit.


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


51 51



L'analyse de la reconnaissance vocale a donné lieu à de nombreux travaux depuis plus de 25
ans, les applications ne se restreignent pas uniquement aux ordinateurs. Déjà certains systèmes
(simples voire simplistes) équipent des véhicules de haute gamme, on assiste actuellement à des
voitures qui réagissent à des ordres, le téléphone qui compose automatiquement des numéros --
dans ce cas on peut imaginer que la personne utilisant un composeur vocal associe un mot clef à un
numéro donné, puis n'a plus qu'a citer ce mot, pour que le numéro soit appelé (la société Thomson
CSF a d'ailleurs développé et fabriqué de tels composants). Le KATALAVOX de M. Kempf (1985)
utilisé pour commander un appareil chirurgical à l'aide des quatre commandes directionnelles ``up'',
``down'', ``left'' et ``right''.
La reconnaissance vocale repose sur une relation bi-univoque entre un ensemble de sons
appris (entendus, mémorisés) et les sons perçus ultérieurement. L'élément de base est le phonème (au
lieu du pixel) ; le français comporte quelques 33 phonèmes distincts.
En réalité on travaille sur les diphonèmes (33 × 55 ≈ 1000), et de plus ce diphonème est
affecté par le phonème précédent et le phonème suivant soit au total quelques 10
6
combinaisons.
II.3. LA ROBOTIQUE

C’est un domaine de l’intelligence artificielle qui consiste à mettre en place ou à développer
des robots qui sont capables de manipuler des objets et réagir à des modifications de
l’environnement. Autrement dit, on définit la robotique comme étant un ensemble de techniques
permettant la conception et la mise en œuvre des dispositifs (dispositifs) destinés à substituer
l’homme dans ses fonctions motrices, sensorielles et intellectuelles. Ces dispositifs peuvent être
programmés pour réaliser des actions bien déterminées ou pour agir par apprentissage.

II.4. JEUX ET RESOLUTION DES PROBLEMES

La résolution de problèmes est le domaine par excellence où intervient le premier jugement.
Aussi c’est l’une des premières applications envisagées pour l’IA. L’un des premiers programmes
d’IA est le Logic Theorist de A. Newell et W. Simon (1957), dont l’objectif était de comprendre
l’activité humaine de résolution de problèmes, et notamment le raisonnement déductif. Après avoir
été appliqué à des jeux, ce programme fut aussi utilisé à la démonstration automatique de théorèmes.
Toutefois, il ne s’agissait que de redémontrer des théorèmes déjà prouvés, aucun théorème nouveau
n’ a pu être démontré de cette manière.
En général, le raisonnement appliqué pour résoudre un problème est proche de celui utilisé
dans les jeux. Entre le jeu et la résolution de problèmes, il n’y a guère de différence : la solution peut
être représentée par comme un cheminement à travers un ensemble d’états, à partir des conditions
initiales. Il s’agit donc de trouver les états intermédiaires. C’est sur ce principe que les pionniers de
l’IA, Newell et Simon, ont conçu en 1959 leur « General Problem Solver (GPS)». Le principe de
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


52 52
fonctionnement utilise les méthodes d’exploration et consiste à rechercher les différences entre
situation courante et but à atteindre, et réduire ces différences. Son influence a été très grande en IA.
Le « General Problem Solver » ( GPS) de Newell et Simon est le système de résolution de
problème le plus important dans l’histoire de l’Intelligence Artificielle . C’est le premier modèle
complet du traitement humain de l’information.
La résolution des problèmes est ramenée à des procédures de recherches heuristiques
(recherche sur l’étude des cas) dans une structure de graphe. La résolution est vue comme un
cheminement inférentiel, une succession de solutions partielles.
La résolution d’un problème qui est posé informellement en langage naturel, se fait en deux
temps :
- Le choix d’une représentation et de la spécification formelle de l’énoncé.
- La résolution par la machine de l’énoncé formalisé et la construction de la solution.

Les jeux sont si divers qu’ils fournissent une bonne base d’expérimentation pour l’intelligence, et
donc pour l’IA. A commencer par les échecs et les divers casse-tête, mettant en œuvre la
compréhension, la stratégie, la planification ou génération de plans d’action, la décision, la
conduite de processus, l’évaluation, la simulation, l’optimisation, la prévision…Aussi, l’IA a été
appliquée dès ses débuts aux jeux, et ce sont souvent des jeux qui servent d’évaluation pour un
langage ou une machine spécialisés en IA. Parmi les problèmes ou jeux les plus couramment
cités, nous trouvons « le fermier, le loup, la chèvre et le chou », « la voyageur de commerce »,
« les huit reines », et autres jeux d’empilement (« les tours de Haoï ») ou de récipients à remplir
et vider. L’objectif est de parvenir au but avec le moins d’opérations possible, dans des situations
où le nombre d’état est extrêmement grand et où il est exclu d’explorer systématiquement toutes
les solutions. C’est donc d’heuristique qu’il s’agit.

II.5. LES SYSTEMES EXPERTS

La plupart des activités intelligentes relevant de l’être humain, reposent sur des
connaissances nombreuses et variées qui sont exploitées à bon escient. Un domaine majeur de
l’intelligence artificielle relatif à la conception des systèmes à base de connaissances s’appelle
systèmes experts. Ces systèmes sont construits notamment pour atteindre les performances d’un
expert humain dans des connaissances limitées en exploitant un ensemble des connaissances
acquises par les experts dans ce domaine. C’est à partir de 1975 que ces systèmes sont apparus et ont
eu un impact sur l’intelligence artificielle.
Le terme système expert a tendance à disparaître au profit du concept plus général ‘‘systèmes
basés sur la connaissance’’ que l’on retrouve dans les différents domaines d’activités de
l’intelligence artificielle.
Ces concepts sont fondés sur une séparation entre les connaissances nécessaires pour
résoudre un problème et les mécanismes de raisonnement qui exploitent ces connaissances.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


53 53



Moteur d’inférence : structure de contrôle
: Inférence engine
: Structure de résolution des problèmes
: Interpréteur




Cette définition montre la dualité entre les connaissances et le raisonnement qui vient
compléter la structure algorithmique traditionnelle de l’information procédurale.
Le terme connaissance recouvre les différentes formes du savoir : les objets du monde, les
faites concernant ces objets (par exemple : les yeux sont jaunes, la neige est blanche, le véhicule est
en mouvement, etc.), la classification de ces objets, les événements (par exemple : la température du
four s’est mise à osciller), les règles heuristiques de savoir faire (par exemple : si le moteur cale à
froid alors le gicleur peut être bouché,...).
C’est l’un des domaines de l’intelligence artificielle qui est le plus utilisé. L’idée d’un
système expert c’est de permettre à un expert d’un domaine quelconque tel que la médecine, la
géologie, les assurances, les banques, ... de communiquer son savoir faire à un ordinateur dans le but
de faire utiliser son expertise par un non expert. En d’autres termes, l'idée d'un système expert est de
«reproduire un raisonnement ». Lorsqu’il s’agit d’un système expert dans le domaine de gestion
d’une entreprise on parle alors des systèmes experts en gestion.
Un système expert (SE) est un programme informatique intelligent qui utilise de
connaissances et des procédures d’inférences dans le but de résoudre des problèmes d’une difficulté
telle qu’ils requièrent une expertise humaine conséquente. Les connaissances nécessaires pour y
arriver ainsi que les procédures d’inférence utilisées peuvent être assimilées à une modélisation de
l’expertise des meilleurs spécialistes du domaine considéré.
Un système expert est aussi un système d’aide à la décision basé sur un moteur d’inférence et
une base de connaissances. Il est la transcription logicielle de la réflexion d’un expert dans un
domaine donné. Il est capable de déduction logique et de produire une solution qui semble la plus
juste. Il reste toutefois un outil d’aide à la décision et est loin de pouvoir remplacer l’intelligence de
l’expert.

Les systèmes experts ne sont en aucun cas des logiciels adaptatifs, mais plutôt des
applications dédiées à leur domaine d’activité. C’est pourquoi les systèmes experts sont des
progiciels au sens pur. Ils sont généralement conçus pour résoudre des problèmes de classification
ou de décision. En d’autres termes, le système expert est une application capable d’effectuer dans un
domaine précis des raisonnements logiques comparables à ceux que feraient des experts humains de
ce domaine. C’est un système d’aide à la décision.

On peut retenir les points suivants :
B.C
M.I
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


54 54

- les systèmes experts sont généralement conçus pour résoudre des problèmes de classification
ou de décision ;

- les systèmes experts sont des outils de l’intelligence artificielle, c'est-à-dire qu’on ne les
utilise que lorsque aucune méthode algorithmique exacte n’est disponible ou praticable ;

- un système expert n’est concevable que pour les domaines dans lesquels existent des
experts ;

- l’intérêt d’un système expert est que l’on peut à tout moment interroger le système pour
connaître les règles qui lui ont permis de déduire telle ou telle autre conclusion.

Il existe un certain nombre d’activités abordables pour la technique des systèmes experts. Et
si l’on veut travailler dans ce domaine, il est très important de pouvoir identifier le problème auquel
on désire s’attaquer et ce par rapport à ces activités. En effet, si le problème ne relève pas d’un de
ces activités que nous allons voir, il est fort probable que, soit le problème relève de la technique
classique dite algorithmique, soit il n’est pas encore abordable par le système expert car l’entreprise
qu’ils requièrent est trop difficile à formaliser.
Les différents catégories d’activités des systèmes experts peuvent se présenter de la manière
suivante (en allant du plus simple au plus complexe) : l’interprétation, le diagnostic, l’évaluation, la
prédiction, la planification, etc.
Comme tout programme informatique, sa réalisation passe par un certain nombre d’étapes : la
conceptualisation (analyse), la formalisation (conception), l’implantation ou l’implémentation
(programmation) et les tests. Plusieurs acteurs sont indispensables tels que l’expert (les experts),
l’ingénieur de connaissance, les informaticiens, les utilisateurs et les gestionnaires.
Tous les langages (classiques, orientés – objets, d’intelligence artificielle) peuvent être
utilisés. Dans le domaine de la gestion, on parle de systèmes experts en gestion
Lorsque la notion de temps est prise en compte dans le pilotage d’un dispositif, on parle de
système temps, système embarqué, etc.


II.6. L’APPRENTISSAGE

L’apprentissage est une activité très complexe et composée de plusieurs processus qu’il est
difficile à décrire. Néanmoins, selon le dictionnaire Le Petit robert, « apprendre » signifie :
- Etre capable de connaître, de savoir,
- Etre avisé, informé de quelque chose
- Acquérir un ensemble de connaissances par un travail intellectuel ou par l’expérience.
- Modifier la tendance comportementale par expérience
Donc, « apprendre est une activité concernant la connaissance.
Il existe deux volets d’apprentissage : l’apprentissage naturel et l’apprentissage artificiel. Dans le
premier volet d’apprentissage qui relève de l’être humain, la modification des potentialités de
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


55 55
comportement résulte d’une interaction répétée avec l’environnement. Dans l’apprentissage
artificiel, un programme possède des capacités d’apprentissage. En d’autres termes ses potentialités
de comportement sur les données se modifient en fonction de ses performances au fur et à mesure
qu’il traite les données. Autrement dit, l’apprentissage artificiel est une activité circulaire, qui extrait
des connaissances à partir des observations disponibles et utilise ces connaissances pour chercher de
nouvelles informations, ou écrire différemment les observations ( prise automatique de décisions et /
ou compréhension).
L’Apprentissage (artificiel) est donc un domaine de l’intelligence artificielle ou l’on exploite la
faculté d’apprendre pour accroître ses connaissances, améliorer ses aptitudes et pour affiner les
mécanismes de raisonnement. Nous pouvons citer comme sous branches d’apprentissage :
- L’apprentissage par mémorisation ou par implantation
- L’apprentissage par instruction ou par conseil
- L’apprentissage par résolution des problèmes
- La déduction
- L’induction

II.7. LA MODELISATION COGNITIVE ET XIAO

La modélisation cognitive est un domaine de l’IA qui utilise la simulation des processus cognitifs
en vue d’expliquer les mécanismes intellectuels. Cependant, l’IA sert non seulement à simuler ou
reproduire le raisonnement, mais aussi à ressembler, conserver et rendre accessible les connaissances
disponibles dans un domaine donné. En particulier, toute activité de conception et même toute
activité en général peut avoir besoin de telles connaissances, à un moment ou à un autre. Ces
connaissances peuvent se présenter comme une « aide en ligne », accessible sur un poste de travail,
en l’occurrence un ordinateur. C’est ainsi que toutes les tâches informatiques peuvent bénéficier de
l’IA, en particulier celles que l’on désigne sous le sigle XAO ou X (n’importe quoi) Assistée par
Ordinateur, qui deviennent désormais XIAO ou « X Intelligemment Assisté par Ordinateur ».
On y trouve :
- L’enseignement assisté par ordinateur (EAO)
- La conception assistée par ordinateur (CAO)
- Conception Assistée par Intelligence Artificielle (CAIA)
Un logiciel de Conception Assistée par Ordinateur (CAO) par exemple, peut bénéficier des
connaissances d’un expert en conception, qu’il s’agisse de conception électronique ou architecturale,
de développement de logiciel ou de dessin d’une automobile. Jusque dans les dessins animés, où
l’IA peut fournir des modèles comportementaux des objets et des éléments, faisant intervenir des
paramètres comme le temps, la masse et la gravitation, la nature du sol, la résistance de l’air, la
présence d’obstacles…
De telles connaissances peuvent être utilisées dans un Enseignement Assisté par Ordinateur (
EAO), lequel est alors capable de s’adapter au niveau et aux besoins de l’apprenant (élève), en lui
fournissant les connaissances au fur et à mesure de ses demandes, et non d’une manière prévue par le
programmeur une fois pour toutes.
Enfin, l’IA est appliquée au génie logiciel (l’activité de développement de programme) pour
simplifier cette tâche en autorisant la programmation automatique.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


56 56


II.8. LES RESEAUX DE NEURONES

Le neurone est l’unité de base du système nerveux. Il est composé d’un petit corps de cellules
avec des longues extensions fibreuses appelées Axones et dendrites. Les terminaisons des axones
d’un neurone rencontrent les terminaisons des dendrites de nombreux autres neurones et forment
dans le cerveau un réseau complexe et changeant.
L'objectif des réseaux de neurones artificiels, c’est d'essayer de récupérer tout ou une partie des
fonctionnalités d'un cerveau humain telles que :
• architecture massivement parallèle,
• calcul et mémoire massivement distribués,
• capacité d'apprentissage,
• capacité de généralisation,
• capacité d'adaptation,
• forte tolérance aux pannes,
• faible consommation énergétique.
II.9. CONTROLE ET CONDUITE DE PROCESSUS

L’IA peut aussi être appliquée au contrôle et à la conduite de processus industriel. L’activité
de conduite de processus par un opérateur est une activité de surveillance, consistant essentiellement
à prévoir pour pouvoir intervenir. Prévoir, c’est détecter dans le système des indices précoces de
déviation par rapport au comportement normal, tant en ce qui concerne la grandeur des paramètres
en jeu que les retards et gains de temps éventuels.
La conduite des processus implique donc le recueil des données essentielles, leur
interprétation, la comparaison avec le modèle de comportement, la détection et la mesure des
anomalies. A partir de là, un diagnostic peut être établi, où interviennent les capacités de
raisonnement détaillés ci-dessus.
Le contrôle de processus passe donc par deux étapes, qui se retrouvent d’ailleurs dans toute
approche scientifique d’un problème : la modélisation et la résolution. Ces deux étapes interviennent
également dans toutes les actions de perception, qu’il s’agisse de la vue, de l’ouïe ou du toucher, les
trois sens les mieux formalisés et maitrisés du point de vue biologique, et donc à priori les plus
faciles à reproduire. Ce sont elles qui sont mises en œuvre dans les programmes de reconnaissance
d’images, de traitement du signal, de reconnaissance de la parole…La compréhension du langage
naturel présuppose, elle aussi une représentation de l’univers, à laquelle est superposée une stratégie
pour faire coïncider le sens d’une phrase perçue avec un état possible de cet univers.
Le mouvement autonome, tel celui du robot, combine les différentes approches ; la
perception externe (extéroceptive) et interne (proprioceptive), la modélisation de l’univers à partir de
cette perception, et enfin, en fonction de cette modélisation, la meilleure stratégie pour parvenir à un
objectif.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


57 57

II.10. INGENIERIE COGNITIVE

II.10.0. Introduction

Les fonctions telles que connaître, raisonner, apprendre, mémoriser, percevoir, communiquer,
analyser, juger, décider, survivre, s’adapter…, présupposent une certaine intelligence. A divers
degrés, elles caractérisent le règne vivant. Leur étude, ainsi que la conception et l’évaluation des
interactions entre l’homme et la machine relèvent des sciences cognitives. La notion clé des sciences
cognitives est l’information, fondamentale comme l’est la notion de force en physique.
Les sciences cognitives sont le passage obligé pour développer des systèmes à base de
connaissances ( SBC), pour réaliser des systèmes d’assistance à l’opérateur, élaborer des logiciels
d’enseignement assisté par ordinateur, concevoir des systèmes « intelligents » d’aide à la décision,
de gestion d’alarmes, de contrôle de procédé, et d’autres XAO ( « X » Assisté par Ordinateur).
Plus concrètement les sciences cognitives étudient :
Le substrat matériel de l’intelligence, c'est-à-dire le système nerveux et le cerveau,
Les mécanismes mentaux, sources des comportements de l’être humain et de l’animal,
Les manifestations de ces structures et mécanismes, à travers le perception, le raisonnement,
la mémoire, le langage, l’affectivité…
La simulation de ces fonctions par les machines, les ordinateurs et l’informatique. Ce dernier
axe, consistant à réaliser des artefacts à partir des connaissances scientifiques, est appelé
ingénierie cognitive.
Ces éléments constituent l’objectif même des sciences cognitives. Elles peuvent également être
définies par le champ disciplinaire couvert : la psychologie, le logique, le linguistique,
l’informatique et l’intelligence artificielle, le philosophie, les neurosciences, l’anthropologie,
l’épistémologie, etc.
L’ingénierie cognitive est une pluri-disciplinaire, voire trans-disciplinaire. Elle tire ses
connaissances de la biologie et des sciences humaines, notamment de la psychologie du travail et de
l’ergonomie… Pour les réinvestir, avec une bonne dose de mathématiques, dans les techniques de
l’ingénieur en informatique, automatique et productique, en vue de réaliser des simulations. Elle
consiste à abstraire les principes dynamiques fondamentaux sous-jacents aux phénomènes
biologiques et expérimenter ces dynamiques sur d’autres supports physiques. En cela, elle n’est que
le prolongement de la cybernétique et de la systémique. Enfin, elle fait appel à la philosophie pour
raccorder le domaine de ma réalité et de l’artefact. En effet, les sciences cognitives s’intéressent
particulièrement à cette relation entre réalité et artefact, entre biologie et informatique, entre
organisation et adaptation, entre autonomie et commande. D’ailleurs, à l’interface entre la réalité et
l’artefact se trouve encore une branche des sciences cognitives, celle qui concerne les interactions
homme-machine.
Pour réaliser des interfaces homme-machine ergonomiques et conviviales, les machines
destinées à des utilisateurs non informaticiens, dans des environnements spécifiques, comme ceux de
l’aéronautique (contrôle aérien ou conception d’un poste de pilotage) ou de l’espace, ou encore
l’EAO, il est nécessaire de modéliser le comportement humain dans toutes les situations imaginaires.
Cette modélisation fait également appel aux sciences cognitives.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


58 58
Deux courants de recherche se dégagent : le premier concerne l’application des artefacts aux
sciences de l’ingénieur, pour lesquels les bases mathématiques expliquent exactement ce qu’ils sont
capables de faire, dans quelles conditions et pourquoi ils fonctionnement bien, quelles sont leurs
limites, et cela sans la moindre référence au cerveau ou au système nerveux. L’autre voie de
recherche, c’est l’utilisation de ces artefacts pour la modélisation des systèmes vivants. Les deux
courants vont probablement converger dans la mesure où des données venant de la neurobiologie
pourront aider à réaliser artificiellement des fonctions comme l’apprentissage, le raisonnement,
l’adaptation…, et donner ainsi une impulsion nouvelle aux techniques d’IA.

II.10.1. Acquisition et modélisation des connaissances

Les sciences cognitives s’intéressent d’abord, comme leur nom l’indique, à la connaissance. En
particulier aux connaissances nécessaires pour développer des applications d’IA. Or le recueil, la
mise en forme et la gestion de l’évolution des connaissances sont les tâches les plus délicates dans de
telles applications. En l’absence d’une méthodologie, la cohérence interne de la base de
connaissances ne peut être garantie, et la phase d’expertise devient rapidement le goulet
d’étranglement de tout projet. C’est là l’une des principales raisons de l’échec relatif de nombreux
projets d’IA.
Cette constatation a abouti à la création de méthodes d’analyse et de représentation des
connaissances, dont les plus développées sont KOD (Knoweledge Oriented Design) et KADS
(Knowledge Acquisition and Design Support). Ces méthodes permettent de passer du monde réel-
celui que connaît l’expert et du discours humain ou d’un corpus textuel, à une représentation
exploitable par la machine et décrite dans un langage compréhensible par celle-ci. Elles
comportement différentes étapes, de la formalisation à la vérification de la cohérence des
connaissances, en passant par leur validation. Ces méthodes permettent non seulement de réaliser
une base de connaissances, mais aussi de consigner le savoir et le savoir-faire d’une entreprise, d’un
peuple, d’un corps de métier, et de constituer une véritable mémoire d’entreprise ou mémoire d’une
société , facilement accessible et exploitable aussi bien par l’homme que par la machine.

II.10.2 Apprentissage automatique


Certains projets d’IA, comme nous venons de le voir, doivent prendre en compte d’énormes
quantités de connaissances et, leur acquisition par les machines pose un problème aux
informaticiens, cogniticiens et même experts. C’est pourquoi l’apprentissage automatique est
actuellement considéré comme l’une des préoccupations majeures. L’objectif est de doter les
systèmes d’une plus grande autonomie. En outre, cette faculté semble être la clé unique pour une
intelligence plus « naturelle ».
L’apprentissage automatique est un cas particulier de résolution de problèmes : à partir d’un
environnement de données, d’informations, il s’agit pour le système d’en sélectionner certaines, de
les structurer, de les intégrer à l’ensemble déjà mémorisé, afin de pouvoir les utiliser ultérieurement.
Pour cela, le système requiert, au préalable, une certaine connaissance, ou métaconnaissance, qui lui
permettra d’acquérir ou de découvrir de nouvelles connaissances. Cette idée s’inspire du modèle
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


59 59
humain : à la naissance, l’homme a peu de connaissances innées, qu’il puisse utiliser
immédiatement, à l’encontre de la plupart des animaux ; en revanche, il possède un capital de
métaconnaissances lui permettant d’acquérir de nombreuses connaissances adaptées à ses besoins.
C’est ainsi que, contrairement aux animaux, les humains ne possèdent pas un langage particulier à la
naissance, mais ils peuvent, grâce à leurs métaconnaissances, apprendre n’importe quelle langue.
Les techniques d’apprentissage automatique s’inspirent des expériences de psychologie mettant
en évidence les processus de mémorisation. C’est ainsi que Hebb a modélisé , au niveau neuronal, le
phénomène de plasticité synaptique permettant d’expliquer l’associativité de la mémoire (1949). Un
autre modèle de mémoire associative s’inspire de l’holographie. Hopfield ( 1982) et Kohonen (1984)
ont complètement formalisé le phénomène de mémoire associative. Ces recherches sont appliquées à
l’apprentissage dans les réseaux neuromimétiques ou réseaux de neurones. A coté de ces techniques
d’apprentissage essentiellement numérique, différentes techniques d’apprentissage symbolique se
sont développées dans le sillage de l’IA, principalement pour les systèmes experts.

II.10.3. Apprentissage symbolique

L’apprentissage symbolique peut s’effectuer suivant différentes modalités : par induction, par
l’observation et la découverte, par analogie, par explication. L’apprentissage par induction
s’effectue à partir d’exemples ou d’observations, à partir desquels le système d’apprentissage induit
la description d’un concept général décrivant tous les exemples. Si l’on prend des groupes humains
avec différents critères physiques (taille, couleur des yeux et des cheveux) et un critère géographique
(pays d’origine), une généralisation serait : « Les suédois sont plus grands, ils ont plutôt les cheveux
blonds et les yeux bleus, et les Espagnols sont plutôt petits, ils ont plutôt les yeux et les cheveux nois
ou bruns ».
Dans le cas d’un apprentissage par l’observation et la découverte, le système cherche des
régularités et des règles générales expliquant tout ou la plus grande par des observations. L’idée est
de comprendre les mécanismes de raisonnement conduisant à la découverte scientifique. Après une
série d’essais, erreurs et raffinements successifs, doit émerger une formule satisfaite sur tous les
exemples observés.
L’apprentissage par analogie s’appuie sur la théorie de Schank de l’organisation de la mémoire
(1980) : face à une situation nouvelle, un être humain se rappelle les situations passées similaires,
afin de reproduire les comportements qui s’étaient avérés efficaces lors de ces situations passées ; la
stratégie est adaptée en fonction des différences existant entre les situations similaires.
Dans l’apprentissage par explication, on s’intéresse aux raisons de l’échec ou du succès de la
solution trouvée par un système de résolution de problème. L’idée est d’acquérir des heuristiques en
tentant de comprendre, à travers différents exemples, pourquoi telle ou telle solution fonctionne ou
non, dans tel ou tel cas.

II.10.4. Apprentissage numérique

Les connaissances apprises par des méthodes symboliques peuvent être affectées de coefficients
ou « poids de connaissances », mesures probabilistes liant les ascendants aux conséquences,
combinant ainsi l’approche numérique à l’apprentissage symbolique. Cette tactique d’apprentissage
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


60 60
par « punition/récompense » permet de sélectionner les connaissances à apprendre suivant leur
valeur : le poids est d’autant plus élevé que la connaissance mène au succès. Les connaissances
ayant un fort poids sont ainsi renforcées, tandis que celles qui ont un coefficient faible sont
éliminées.
Ces méthodes de sélection peuvent s’inspirer des lois naturelles, notamment celle de l’évolution
de Darwin. Une telle méthode met en jeu un algorithme particulier, dit algorithme génétique, qui
s’applique, par exemple, aux règles d’un système expert : les règles inefficaces sont éliminées et
remplacées en recombinant des fragments des deux « bonnes » règles (« bonnes » en fonction de
critères prédéterminés), la règle « fille » ainsi obtenue étant supposée « héritier » des qualités de ses
« parents » ; par ailleurs, quelques règles prises au hasard, mais jamais choisies parmi les meilleures,
subissent des « mutations ». L’ensemble des règles, élagué par ce principe de sélection, a une
structure proche de l’ensemble initial, mais sa formulation est plus succinte : seules les règles les
mieux adaptées survivent d’une génération à l’autre.

II.10.5. Apprentissage dans les réseaux neuromimétiques

L’apprentissage est l’une des propriétés des réseaux neuromimétiques. Dans ces systèmes, la
connaissance est mémorisée au niveau des interconnexions ou synapses. Au cours de la phase
d’apprentissage, le réseau organise sa structure à partir des données qu’il doit mémoriser.
L’apprentissage consiste à fixer les valeurs des coefficients synaptiques. Il s’agit donc d’une
approche numérique, algorithmique, où les paramètres ajustables sont matérialisés sous la forme des
synapses. Les méthodes d’apprentissage numérique citées ci-dessus peuvent s’y appliquer.
L’un des algorithmes d’apprentissage les plus utilisés dans les réseaux neuromimétiques est la
rétropropagation du gradient Cet algorithme s’efforce de minimiser une valeur, qui est fonction du
nombre des erreurs observées sur l’ensemble des configurations d’apprentissage. Le système obtenu
remplit bien une fonction de mémoire associative : partant d’une configuration initiale proche d’une
des formes mémorisées lors de l’apprentissage, le réseau converge vers un état d’équilibre qui
diffère très peu de la forme mémorisée.

II.10.6. Organisation, adaptation, autonomie

Dans les années quarante, des mathématiciens et physiques, sous la conduite du mathématicien
américain Norbert Wiener, ont étudié les systèmes biologiques, et surtout le cerveau, comme s’il
s’agissait de machines. Cette démarche a reçu le nom de cybernétique, du grec kubernèsis (action de
gouverner). Déduite de recherches poursuivies dans le domaine des mathématiques pures, de la
technologie, de la biologie et des sciences humaines, la cybernétique est destinée à couvrir tous les
phénomènes qui mettent en jeu des mécanismes de traitement de l’information. L’une de ses
applications est la régulation des systèmes biologiques, faisant intervenir en particulier la notion de
rétroaction (feed-back), très importante dans les processus de contrôle et d’apprentissage. En tant
qu’étude des opérations contrôlées, la cybernétique ne s’intéresse pas aux systèmes en tant que tels,
mais à la structure logique de leur fonctionnement. Ainsi, l’adaptabilité des systèmes biologiques
aux variations du milieu est liée à la recherche incessante de nouveaux états d’équilibre pour ces
systèmes, qui déterminent leurs propres directions de comportement ou leurs objectifs, sans jamais
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


61 61
retourner exactement à leur état antérieur. Cette faculté d’auto-organisation, propre aux systèmes
vivants, s’applique aussi, dans une certaine mesure, à la matière en général. Les systèmes
thermodynamiques, les galaxies, les systèmes planétaires, les cristaux constituent des exemples
d’organisation de matière.
La première tentative pour créer un système artificiel auto-organisé, suivant les principes de la
cybernétique, est due au biologiste W.R.Ashby dans les années soixante : l’homéostat, constitué de
quatre électro-aimants identiques, reliés entre eux par des fils conducteurs. Le nombre d’états
possibles dans lesquels peut se trouver ce système est très élevé, mais peu de ces états correspondent
à l’équilibre du système. Celui-ci a la propriété, s’il est perturbé, de revenir spontanément vers l’un
de ses états d’équilibre. Si l’un de ses éléments est déconnecté, l’homéostat manifeste également des
possibilités d’apprentissage par changement de configuration. Si cette machine « autonome » n’a eu
aucune destination pratique, elle a permis le développement d’artefacts, dont les plus fameux et les
plus utilisés aujourd’hui sont les réseaux neuromimétiques.

II.10.7. De l’IA à la vie artificielle

La cybernétique et singulièrement les réseaux neuromimétiques ont ouvert aux cogniticiens un
nouveau champ d’investigation : la vie artificielle, qui englobe toutes les recherches autour de l’IA
non symbolique, de la robotique et des systèmes autonomes. L’objectif de la vie artificielle, c’est
« d’abstraire des principes dynamiques du vivant, comme l’autonomie, l’apprentissage, l’adaptation,
la morphogénèse …, pour les expérimenter sur les ordinateurs et les robots ». Tout ce qui touche à
l’autonomie sensori-motrice, d’une part, et aux phénomènes d’évolution, d’autre part, intéresse les
chercheurs dans ce domaine. Les phénomènes expérimentés dans ce cadre peuvent être appliqués à
des robots dotés d’une certaine autonomie : au lieu de planifier leurs tâches, ceux-ci sont capables de
deviner ce qu’ils doivent faire en fonction de leur environnement : ils apprennent , ils essaient, ils
corrigent.

II.11. LA PROGRAMMATION PAR CONTRAINTES

L’un des problèmes les plus classiques posés aux industriels consiste en la recherche de
l’organisation optimale d’un ensemble d’objets ou d’entités (hommes, pièces, machines, etc.) devant
respecter un certain nombre de contraintes : l’ordonnancement, la planification, l’allocation et la
gestion des ressources… L’optimisation se trouve au cœur de nombreuses problématiques
industrielles et organisationnelles.
Contrairement aux systèmes experts, il ne s’agit pas là d’appliquer des règles de type « Si
…alors… », mais de gérer une combinatoire, c'est-à-dire, parmi un très grand nombre de cas, de
trouver en un temps limité ceux qui répondent aux impératifs du problème. On parle alors de
problèmes de contraintes ou CSP (Constraint-Satisfaction Problem). En milieu industriel, on peut
rencontrer des problèmes qui s’énoncent, par exemple, sous les formes suivantes : « La tâche A doit
être effectuée avant la tâche B », « X hommes doivent être affectés à N postes », « La durée des
processus A et B ne doit pas excéder 2 heures »…
Les contraintes peuvent s’énoncer sous la forme d’équations mathématiques. Or les langages
informatiques traditionnels n’offrent guère d’outils pour résoudre des équations. Pour une équation
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


62 62
aussi triviale que « 2x-1 = 0 », la programmation classique exige, en effet, que l’utilisateur « mâche
le travail », c'est-à-dire décompose véritablement la solution du problème sous la forme
d’algorithmes exprimés par une suite d’instructions. Aussi préférait – on jusqu’à présent traiter
manuellement ce type de problème, soit par tâtonnement, soit à l’aide de techniques de recherche
opérationnelle, une branche des mathématiques à base de résolution d’équations et d’inéquations.
Depuis quelques années, une nouvelle approche émerge pour résoudre ce type de problèmes :
la programmation par contraintes. Si ce n’est pas réellement une technique d’Intelligence Artificielle
au même titre que les systèmes experts, la programmation par contraintes s’y rattache dans la mesure
où ses outils sont développés par des personnes qui ont le savoir-faire de l’Intelligence Artificielle.
Elle y est aussi apparentée en tant que technique de programmation déclarative. En particulier, elle
combine les techniques de la programmation logique, comme Prolog et celles de la recherche
opérationnelle. Les outils permettant la programmation par contraintes sont des langages de haut
niveau, généralement dérivés des langages de l’IA.
Avec un outil de programmation par contraintes, le développeur décrit, de manière
déclarative, les objets et les contraintes auxquelles doivent satisfaire ces objets. Trouver une solution
consiste à déterminer des valeurs pour les champs de ces objets qui respectent ces contraintes. Dès
qu’une valeur est choisie, les contraintes préalablement déclarées dans le programme sont activées
automatiquement pour réduire les valeurs possibles pour les autres contraintes.

Applications de la programmation par contraintes

De nombreux outils de programmation par contraintes sont apparus sur le marché tels que :
Prolog III, Charme de Bull qui est appliqué à la gestion des trains pour déterminer les horaires
permanents à deux trains de se croiser à un endroit donné où la voie est dédoublée, sur des lignes à
voie unique en Malaisie , Chip ( Constraint Handling in Prolog) qui a permis de réaliser et
d’optimiser le câblage de grands bâtiments, en prenant en compte les contraintes topologiques,
techniques et économiques du câbage, llog solver qui a permis de construire l’outil Caraïbe qui est
appliqué à l’affectation des locomotives aux trains pour la SNCF, Chleo d’Axia Recherche ,
Decision Power, …C’est grâce à Charme que sont planifiées les missions des escadrons de la
gendarmerie nationale. Ces outils se distinguent par leur origine : les uns sont nés dans la
communauté Prolog, d’autres dans celle de Lisp. Ce sont des langages de haut niveau, intégrant des
bibliothèques de programmation pour développer des applications comprenant la résolution de
contraintes.
La programmation par contraintes a encore servi pour développer des applications aussi
diverses que la conception de clés pour des bâtiments spécifiques, selon le type d’usage et
l’utilisateur ; l’optimisation de chaînes robotisées, la résolution de problèmes de comptabilité entre
sous – systèmes électroniques, l’optimisation du stockage de conteneurs pour le terminal portuaire
internationnal de Hongkong.. ;
Outre le gain de temps que permet le programmation par contraintes par rapport à la
planification manuelle, cette technique permet de garantir la qualité du résultat produit.

Exemple de programmation par contraintes

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


63 63
Supposons que nous ayons à élaborer l’emploi de temps des différentes classes d’un
complexe scolaire, comprenant plusieurs classes de 6
e
, de 5
e
, de 4
e
et de 3
e
, en tenant compte de
contraintes concernant les professeurs, les salles de cours, les horaires, etc.
Le problème s’énonce en termes de données et de contraintes, avec des inconnues. La
résolution consiste à poser des questions de ces inconnues. Le résultat est fourni par une solution de
ce système d’équations. Dans l’exemple suivant, nous avons omis la question des salles, le problème
étant bien assez complexe ainsi. On pourrait ajouter, par exemple, qu’un salle est affectée à chaque
classe, à l’exception de l’éducation physique, du dessin et de la technologie..Ou qu’un professeur est
attaché à une salle, pour simplifier le problème.

Solution au problème

Données :

• 14 classes ( 6eA, 6eB, 6eC, 6eD, 5eA, 5eB, 5eC, 5Ed, 4eA, 4eB, 4eC, 3eA, 3eB, 3eC)
• 15 professeurs ( 3 profs de math + 3 profs de français + 2 profs d’anglais + 1 prof
d’allemand + 1 prof de technologie + 3 profs d’éducation physique + 1 prof de dessin
+ 1 prof de musique)
• 8 matières (mathématiques, français, anglais, allemand, technologie, éducation physique,
dessin, musique)
• 5 journées de classe, de 7 heures maximum

Inconnues

• L’affectation des différentes matières aux différentes classes.

Contraintes

Contraintes de bon sens

• Un professeur donne un seul cours à la fois
• Les matières doivent être réparties équitablement sur la semaine
• L’éducation physique et la technologie ne peuvent excéder 2 heures dans la mêle journée
• Les heures d’éducation physique sont si possible, regroupées par deux
• Les professeurs sont spécialisés par programmes, donc par classes
• Les horaires des professeurs ne sont pas extensibles

Programmes à respecter

• 6
e
: 4h math + 5h français + 4h anglais + 4h education physique + 2h musique + 2h dessin
• 5
e
: 5h math + 5h français + 4h anglais + 4h education physique + 2h musique + 2h dessin
• 4
e
: 6h math + 6h français + 3h anglais + 4h allemand + 4h éducation physique + 1h
musique + 1h dessin
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


64 64
• 3
e
: 6h math + 6h français + 3h anglais + 4h allemand + 4h éducation physique + 4h
technologie + 1h musique + 1h dessin


II.12. LE RAISONNEMENT BASE SUR LE CAS

Le raisonnement basé sur le cas se présente comme une alternative aux systèmes experts. Les
systèmes experts sont utilisés lorsque l’on connaît le domaine d’application, c'est-à-dire lorsqu’il
existe une théorie, des connaissances ou du moins des règles. Mais, comment s’y prendre dans un
domaine faiblement théorisé ?
Souvent, lorsqu’il s’agit d’établir un diagnostic industriel ou médical, prendre une décision
dans le domaine financier, ou lorsque l’on veut identifier un phénomène ou un objet (reconnaissance
de formes, de risques, etc.), on est amené à se poser la question suivante : « Ai-je déjà vu un
problème semblable et, si oui, qu’est-ce que j’ai fait pour le résoudre ? » En droit, par exemple, la
législation est souvent si complexe qu’il est plus simple de se référer à la jurisprudence. Un nouveau
problème est résolu en identifiant sa similitude avec un problème passé et en adaptant sa solution
pour résoudre le nouveau problème. Pour cela, il faut disposer d’une base de cas, pouvoir y accéder,
l’élargir et la mettre à jour facilement. La solution est fournie par une technique d’intelligence
artificielle : le raisonnement basé sur le cas ou CBR (Case Based Reasoning).
Le raisonnement basé sur le cas se rattache à l’intelligence artificielle dans la mesure où elle
met en œuvre des moyens d’apprentissage symbolique, de représentation des connaissances, de
filtrage et de recherche utilisant des règles d’inférence. Mais, le CBR se distingue des systèmes
experts par l’aptitude à raisonner et à obtenir un résultat, une décision, même si l’on ne possède pas
de modèle théorique du système en question.

a) Mode de raisonnement du CBR

Contrairement aux systèmes experts classiques, qui mettent en œuvre principalement le
raisonnement déductif, le mode de raisonnement utilisé par le CBR est du type inductif ; la
généralisation se fait par approximation ou analogie. Ce type de raisonnement est au fond plus
« naturel », plus intuitif. Il reproduit trois facultés fondamentales de l’esprit humain :
mémoriser (structurer et stocker les connaissances), se souvenir (retrouver l’expérience passée la
plus proche d’une situation nouvelle à résoudre), adapter (modifier le raisonnement et les
conclusions pour traiter une situation nouvelle).
L’intérêt de cette technique est qu’il n’est pas nécessaire de programmer. Le CBR peut donc
être utilisé directement par l’homme du métier, qui sait décrire les cas, mais n’a pas besoin de savoir
programmer ni de faire une analyse poussée du système pour mettre en œuvre un système basé sur le
raisonnement. Il est souhaitable d’utiliser cette approche dans les secteurs où l’expérience a autant
de valeur que les connaissances théoriques, où il existe beaucoup d’exceptions aux règles générales,
où les problèmes sont encore mal compris, où les spécialistes… Les secteurs de prédilection sont
ceux où l’on sait décrire des cas, comme en médecine, en droit, en réglementation, mais où l’on ne
dispose pas nécessairement d’une théorie, de connaissances superficielles ou profondes. Le CBR
s’applique aussi dans le secteur tertiaire, pour établir des contrats, évaluer les risques, rechercher des
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


65 65
configurations optimales ou au contraire dangereuse. Toutes ces informations peuvent être
retrouvées par analogie.

b) Principe du raisonnement basé sur le cas

Le CBR comprend six phases de traitement :

- retrouver dans la mémoire des cas les expériences les mieux adaptées à la situation courante ;
- sélectionner le(s) cas le(s) plus pertinent (s) à partir de l’ensemble construit à l’étape
précédente ;
- tester et critiquer la solution précédemment élaborée ;
- évaluer les conséquences de la solution ;
- modifier la mémoire par intégration de la nouvelle expérience.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


66 66
Schématiquement :




c) Les différents outils de CBR

La base de cas, constitue en quelque sorte la base de connaissances pour du système. Elle
est constituée dynamiquement, à l’instar de la mémoire humaine, à partir d’un exemple de
solutions à des cas fournis par l’expert. Un seul essai ne peut pas être validé ; il faut rechercher
quelques cas similaires. En général, quelques dizaines de cas en tout suffisent la plupart du temps
pour constituer la base de cas de départ dans une application donnée ; cette base continue à se
construire au fur et à mesure.
Nouvelle situation
Classification du problème
Suggestion d’un plan de résolution
Prédiction des conséquences
Evaluation des résultats
Confirment –ils les prédictions ?

Réaction de
l’environnement
Expliquer l’erreur
Modifier le connaissance
Modification de la connaissance
Expliquer des résultats
non
oui
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


67 67
Les logiciels de CBR offrent des outils permettant de construire une base de connaissances
par apprentissage à partir d’exemples, et des mécanismes permettant de trier ces exemples et de
les retrouver à partir des cas similaires. Les différents produits se distinguent par leur mode de
représentation de connaissances, leurs possibilités d’apprentissage ou d’adaptation, et les
modalités d’analyse et de recherche dans la base de cas. ReMind de Cognitive Systems par
exemple, est utilisé pour retrouver les incidents dans les centrales nucléaires. ReCall, d’ISoft,
propose des fonctionnalités particulièrement bien adaptées à la détection de pannes, l’estimation
financière, l’évaluation de risques, le contrôle et la surveillance. CBR Express, d’Inference, est
appliqué notamment à la maintenance téléphonique de matériel et logiciel, ainsi qu’à l’aide à la
vente.
ISoft adopte un langage orienté objets pour la représentation des connaissances. Lockheed a
mis au point le système d’extraction de données, Recon, pour analyser de grandes bases de
données, en particulier pour la prédiction des prix, l’analyse et la sélection de portefeuille, et
l’analyse de données commerciales par sociétés.
Le CBR est fondé sur une forme d’analyse de données exploratoire et complète ainsi
d’autres approches comme l’analyse statistique ou les réseaux de neurones.
Le CBR peut être associé à la logique floue, afin de résoudre un problème même lorsque la
base de cas ne comporte pas d’exemple exactement identique au cas présenté. La recherche se
fait alors par « filtrage flou »

d) Apprentissage, tri et réutilisation des cas

Les systèmes de CBR fonctionnent en 2 modes :

Mode apprentissage

Durant la phase d’apprentissage du système, les exemples sont mémorisés sous leur forme
explicite dans la base de cas, ce qui permet de fournir des explications par les exemples
retrouvés. Dans ce mode, l’opérateur décrit en langue naturelle les problèmes rencontrés et les
solutions trouvées ; ceux-ci sont alors stockés dans la base de cas. La mise à jour se fait tout
aussi facilement.
Les systèmes de CBR peuvent être complétés par des outils, notamment de construction de
base de connaissances à partir d’analyse d’exemples fournis par des experts. A partir des cas
fournis initialement au système, au cours d’une phase d’apprentissage, le système Kate,
d’Acknosoft, génère un arbre de décision ou un ensemble de règles ; il permet aussi de visualiser,
d’expliquer et de modifier les connaissances apprises. AC2, d’ISoft, est un logiciel d’acquisition
de connaissances intégrant un langage orienté objet de représentation des connaissances, pouvant
être utilisé en amont du système ReCall. Une application développée avec de tels produits peut
être automatiquement mise à jour au fur et à mesure que de nouveaux cas se présentent. Ainsi,
l’expertise nouvelle, développée par un spécialiste sur un cas peu courant, sera immédiatement
accessible aux autres spécialistes, qui développeront ainsi une mémoire collective de leurs
expériences.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


68 68
En mode explication

L’opérateur consulte le système : il saisit les données relatives aux symptômes du
problème auquel il est confronté, et le système doit trouver automatiquement et quasi
instantanément, à partir de sa base de cas, une liste de problèmes analogues. La
difficulté consiste à retrouver l’exemple correspondant au cas auquel se trouve
confronté l’utilisateur. Pour pouvoir présenter à l’utilisateur les cas les plus similaires au
cas étudié qu’il a décrits, deux problèmes se posent : d’une part, savoir évaluer la
similitude entre le cas étudié et un cas de référence potentiellement et, d’autre part,
retrouver dans la base les cas de références potentiellement intéressants. Plusieurs
stratégies de recherche dans la base de cas sont possibles : une recherche de type
inductive à partir d’un arbre de classification des cas, une recherche sur la base d’un
calcul de proximité, et une recherche basée sur des requêtes de type base de données.
Par dialogue interactif avec le système, il est possible de cibler plus exactement la
solution au problème rencontré.

e) CBR et réseaux de neurones

Le CBR se rapproche des réseaux de neurones par ses aptitudes au raisonnement inductif et
à l’apprentissage, mais il ne met nullement en œuvre les méthodes de calcul de coefficient (
poids) propres aux réseaux de neurones.

e) Avantages du CBR

L’un des grands avantages de la technique CBR est la facilité de développement : le temps
d’ingénierie de la connaissance peut être réduit de 60 à 70 % avec de tels systèmes, par rapport
aux systèmes experts classiques. De plus, le traitement d’un cas est beaucoup plus rapide ; en
effet, le raisonnement basé sur le cas fournit un raccourci par rapport aux systèmes experts
conventionnels, dans la mesure où la solution n’est pas entièrement reconstruite à partir de
nombreuses règles et autres connaissances, mais plutôt dérivée de cas similaires précédemment
rencontrés, par adaptation ou légère modification.


II.13. Remarques
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


69 69

Il existe d'autres applications intégrant des composants tirant partie de techniques
développées en Intelligence Artificielle. Parmi celles-ci on trouve :
- Les appareils à commandes floues basés sur la logique floue : nous pouvons citer l'appareil
photos Nikon F90 qui utilise un calculateur numérique, le Canon H800 camescope
commercialisé en (1990) qui utilise une mise au point basée sur 13 règles floues, certains
aspirateurs (Mitsubishi, Samsung) réputés pour avoir une consommation énergétique
inférieure d'environ 40%.
- L'industrie automobile qui utilise des composants flous : par exemple General Motors a
équipé son modèle Saturn d'une transmission floue, Nissan a breveté des systèmes flous de
freinage antidérapage, de transmission floue, d'injection de carburant), M. Sugeno de
l'Institut de Technologie de Tokyo a réalisé l'un des systèmes les plus complexes, un modèle
réduit d'hélicoptère dans lequel le gouvernail de profondeur, l'aileron, la commande des gaz
et le palonnier réagissent à 13 commandes vocales floues telles que ``monter'', ``atterrir'',
``faire du sur-place'' (cette dernière action étant l'une des plus difficiles pour un pilote
humain).


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


70 70
CHAPITRE III : PRINCIPES DE BASE DE L’INTELLIGENCE ARTIFICIELLE

En plus des problèmes de méthodologie de conception, la construction d’un système issu de
l’intelligence artificielle pose un certain nombre de problèmes, il s’agit :
- De l’acquisition des connaissances c’est à dire la manière de recueillir le savoir d’un expert.
- De la représentation des connaissances extraites auprès de l’expert c’est à dire sa
mémorisation sous forme utilisable dans la base de connaissances.
- Du traitement des connaissances représentées dans la base de connaissances c’est à dire leur
utilisation à la résolution des problèmes.
- Du raisonnement

III.1. L’Acquisition des connaissances

C’est l’une des difficultés majeures dans la construction des systèmes issus de l’intelligence
artificielle. Cette phase correspond à la phase d’extraction des connaissances.
Si les algorithmes de manipulation de faits et des règles sont nombreux et connus, la
détermination de l’ensemble des faits et des règles qui vont composer la base de connaissance
est un problème délicat. Comment décrire le comportement d’un expert face à un problème
particulier, et sa manière de le résoudre, là est la question. car ce que l’on souhaite obtenir n’est
ni plus ni moins que l’expérience, la connaissance pratique de l’expert, et non la théorie que l’on
peut trouver dans les livres ni exclusivement les règles logiques d’inférence. Equivalents des
méthodes d’analyse de l’informatique traditionnelle, des méthodes d’acquisition des
connaissances sont développées. Les problèmes essentiels sont :
• la communication Expert-Ingenieur- Machine ;
• définition du vocabulaire ;
• le choix de la représentation ;
• processus d’extraction des connaissances est très lente ;
• le type d’approche à adopter pour l’acquisition des connaissances : l’apprentissage
automatique ou dialogue Expert -Machine ou la mise en place d’une méthodologie
rigoureuse (common KADS)

Il existe plusieurs modes d’acquisition des connaissances :

a. La transmission des connaissances

C’est la phase au cours de laquelle le cogniticien (ou ingénieur de la connaissance) prépare
manuellement une représentation des connaissances que l’expert utilise pour résoudre un problème
spécifique. Cette méthode consiste à produire manuellement les règles qui gouvernent le processus
de décision à partir de l’entretien avec l’expert du domaine. D’ou le développement d’une base de
connaissances est un processus itératif dans lequel les règles sont produites, elles sont révisées et
commentées par le spécialiste, et mises à jour s’il y a lieu.
Le cogniticien est une personne qui dispose de certaines techniciens pour exprimer les
connaissances parmi ces techniques nous pouvons citer :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


71 71
- La technique d’interview ou d’entretien
- Les techniques de ré formulation

b. Le transfert des connaissances

L’idée maîtresse de ce mode d’acquisition des connaissances est de se passer du
cogniticien lors de la réalisation du système

c. L’acquisition automatique des connaissances

C’est une technique d’apprentissages dont le but est de développer les outils d’aide à la
conception des bases de connaissances. Ici les principales formes d’apprentissages utilisées sont :
- L’apprentissage par programmation
- L’apprentissage par analogie

III.2. FORMALISME DE L’IA ET REPRESENTATION DES CONNAISSANCES

III.2.1. Le Formalisme de l’IA

Les langages de programmation traditionnels sont dits impératifs ou procéduraux. Ils peuvent
traduire des opérations telles que « lire », « écrire », « additionner », « transférer », « comparer »,
etc. Ce sont des instructions correspondant à des séquences de langage machine. En IA, le problème
se présente tout autrement, puisqu’il s’agit là de représenter des connaissances et de simuler des
raisonnements. Pour résoudre ces problèmes particuliers, il faut des outils et langages particuliers.
Les objectifs de ces outils sont les suivants :
résoudre les problèmes concrets rencontrés par les entreprises,
s’adapter au problème à résoudre, grâce à la définition de formalismes de représentation des
connaissances, et faciliter l’acquisition et la validation des connaissances,
améliorer la communication entre l’utilisateur et le système, grâce à la définition d’interfaces
homme-machine conviviales.

III.2.2. La représentation de connaissances

Un langage permet aux humains de communiquer et se décompose en phrases, la phrase en
mots. Informatiquement parlant, la phrase représente un module de connaissances. Mais comment
communiquer à l’ordinateur la signification de ces symboles ? La signification d’un concept est, en
général, liée à sa relation à d’autres concepts. Ainsi, pour expliquer « bleu », « musique », « nuit »,
nous employons des phrases qui intègrent ces concepts : « le ciel est bleu », « j’écoute de la
musique », « les gens dorment la nuit », etc. La représentation des connaissances fait donc appel non
seulement à des concepts isolés (données), mais aussi aux liens qui existent entre eux (informations
symboliques).

Cette phase consiste à une formalisation des connaissances acquises.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


72 72
Cependant, il se pose les problèmes suivants :

• quelle sémantique et syntaxique retenir pour éviter l’ambiguïté ? celles qui sont proches
de la représentation du langage humain ?
• c’est dire quel formalisme serait le mieux adapté pour la représentation des
connaissances dans le système expert ? les règles de production, les programmes
logiques ?
• quelles sont les structures à appliquer ? les arbres, les réseaux sémantique, les objets,
les cadres ?... comment peut on représenter l’incertitude, les probabilités ?

Il existe deux modes de représentation des connaissances :

1. La représentation déclarative :

C’est une représentation qui ne contient jamais son mode d’emploi mais qui est facile à lire et
à modifier.
Comme exemple d’une représentation déclarative : les règles de production (utilise la logique
des prédicats)

2. La représentation procédurale :

Contrairement à une représentation déclarative, une représentation procédurale explicite son
mode d’emploi.
N.B : les deux représentations sont complémentaires

3. La représentation structurée :

C’est une forme de représentation qui a l’avantage de prendre en compte le lieu qui existe
entre les connaissances.
D’une manière générale avec une représentation structurée on obtient une hiérarchie des
connaissances.
Parmi les modes de représentations structurées nous pouvons citer :

3.1. Les réseaux sémantiques

Un réseau sémantique est un graphe étiqueté où les n uds sont les objets (concepts ou
événements) et les arcs étiquetés traduisent les relations entre ces objets. De nombreux systèmes sont
issus de cette approche, tel que KL-ONE dont la conception date de 1970. Ce langage est à la
frontière entre réseaux sémantique et frames. Un réseau exprime une hiérarchie et offre une solution
à la structuration des données . Un n ud peut hériter par subsumption des propriétés d'un autre
n ud. Ce concept est présent dans les langages orientés objets.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


73 73
Par exemple : Considérons la proposition « Milou est le chien de Tintin » (ou « Tintin est le
maître de Milou ») ; « Milou » et « Tintin » peuvent être considérés comme des
nœuds du réseau sémantique, entre lesquels il existe une relation d’appartenance et/ou de fidélité.


















Figure1: Exemple d’un réseau sémantique

Les réseaux sémantiques ont été mis en œuvre dans le cadre des Systèmes Experts, en particulier
dans PROSPECTOR. L'idée d'utiliser ce formalisme est attribué à Quillian (1968).
Considérons par exemple une phrase comme « Médor sent Mirza » qui peut se représenter
comme dans la figure 2 ci - dessous. Cette approche peut être raffinée en considérant que chaque
concept (ici Médor, Mirza) est relié à sa famille d'appartenance par un lien est_un donnant lieu
à la représentation de la figure 3 ci - dessous . Cette approche peut encore une fois être améliorée en
introduisant des liens entre concepts par le biais de la relation sorte_de. Dans ce cadre une phrase
telle que « Médor est un basset qui est un chien » se représente comme dans la
figure 4. Dans ce cadre, les propriétés peuvent se transmettre des concepts les plus élevés (dans la
hiérarchie) vers les fils (au sens de la relation sorte_de). Malheureusement, on peut constater le
manque de standardisation du formalisme et le risque d'associations abusives en suivant les
chaînages induits par le réseau.


est un
est un
est un est un
Mammifère
Homme
Chien
Homme
Milou
Est l’ami de
est le maître de
Appartient à
Obéit à
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


74 74




Figure2: Médor envoie Mirza





Figure 3: Relation est_un








Figure 4 : Relation sorte_de
Il est certain qu'un accroissement de la complexité du formalisme augmente sa puissance
d'expressions et de raisonnement, cependant il est nécessaire, comme dans toute application
informatique, de faire un compromis entre complexité des structures de données et complexité des
algorithmes utilisés pour leur exploitation.
est_un est
Medor
Mirza
envoie
Chien Chienne
Medor Mirza
envoie
Chien
Basset
Medor
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


75 75

Bref, dans un réseau sémantique, les connaissances sont composées des nœuds et des arcs où les
nœuds représentent les éléments de la connaissance et les arcs représentent les relations entre les
nœuds.
La plupart des modes de représentation, à l’exception des propositions, prédicats et règles de
production, peuvent être considérés comme des extensions des réseaux sémantiques ( objets
structurés, schémas, scripts, acteurs et autres frames…).
Il se pose avec cette mode de représentation des connaissances un problème de mise à jour.

3.2 Les schémas (ou frames)

M. Minsky (1975) a introduit cette approche dans le cadre de la vision par ordinateur. Ce
travail est directement inspiré des travaux menés en psychologie cognitive sur la mémoire chez
l'homme (F. C. Bartlett 1932) et visant à proposer un modèle de représentation d'expériences passées
pour résoudre un problème nouveau. R. Schank (1977) s'est inspiré de ces travaux pour la
compréhension des langues naturelles. Depuis, cette approche a été englobée dans les langages
orientés objets (voir à ce propos le livre de G. Masini ). Un frame est une structure de données qui
représente un objet typique ou une situation stéréotype, c'est en fait un réseau hiérarchisé de n uds
et de relations. On peut retenir parmi les propriétés essentielles des frames, l'existence de valeur par
défaut pour un attribut (slot), permettant la notion de raisonnement révisable ; de contraintes que
doivent satisfaire les attributs et qui sont propagées au cours du raisonnement ; de procédure
(méthode) qui se déclenche lorsque la valeur d'un attribut est requise. Comme dans un réseau
sémantique, un mécanisme d'héritage est mis en uvre.

Les schémas ou frames constituent une forme de représentation qui associe deux concepts :
les règles et les réseaux sémantiques. Ici les objets sont représentés par classe et se découpent par
leurs propriétés. Chaque objet possède des attributs ou propriétés qui permettent de le reconnaître.

Exemple :

Oiseau
Attributs Valeurs
Vole
Œuf
Plumes
Oui / Non
OUI
OUI



Autriche
Attributs Valeur
Vole
Œufs
Plumes
Non
Oui
Noir / Blanc
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


76 76

3.3. La représentation sous forme d’objets structurés

Cette forme de représentation par les objets ressemble à celle des schémas, à la seule différence que
la communication dans la représentation par les objets se fait par messages. Elle permet de traduire
différents types de connaissances, au sens le plus large du terme. Elle s’applique aux relations
intrinsèques des objets entre eux. Ainsi, les objets ne s’appliquent pas seulement au formalisme de
l’IA, mais également à l’informatique en général.
Un objet (ou objets structuré), au sens informatique, est un ensemble de variables et d’expressions,
auquel sont associés les procédures décrivant comment ces variables et expressions doivent être
manipulées.
Un objet, un être ou une entité du monde réel peuvent être représentés par un objet au sens
informatique. Par exemple « Tintin » et « Milou » peuvent être considérés comme des objets. Les
propriétés d’un objet sont décrites par un ensemble d’attributs. Chaque attribut est caractérisé par
une valeur et un ensemble de descripteurs et de marqueurs, ayant pour rôle de préciser certaines
caractéristiques de l’attribut.
Ce formalisme permet notamment d’exprimer la relation d’appartenance d’un objet à une classe.
Une classe rassemble des objets analogues d’un certain point de vue. Elle est définie par un nom et
un ensemble d’attributs caractérisés par des marqueurs, les descripteurs étant propres à chaque objet
de la classe. Par exemple, « Milou » appartient à la classe des « chiens », qui est une sous-classe des
mammifères, laquelle, à son tour, appartient à la classe des animaux (voir la figure suivante).




Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


77 77


















3.4. Les scripts

C’est une forme de représentation où tous les attributs d’un objet sont associés à des informations sur
des valeurs qu’ils peuvent prendre éventuellement.

4. La représentation logique

L'Univers du Discours est représenté par un ensemble de formules logiques, les règles sont le
modus ponens qui peut s'exprimer par (((p→q)∧p)→q), et le modus tollens qui s'exprime en logique
par (((p→q)∧¬q)→ ¬p).
Pour que le raisonnement puisse s'effectuer, il est nécessaire de préciser l'Univers du Discours,
ce qui signifie que tout ce qui n'est pas connu comme étant vrai et, ipso facto, considéré comme faux
(hypothèse dite du monde clos, qui est mise en œuvre dans un langage comme PROLOG
Ainsi le langage PROLOG fournit un mode de représentation et des mécanismes de
raisonnement totalement intégrés.
5. La logique des propositions
Ce mode de représentation de connaissances, fournit un moyen naturel de représenter les
connaissances de façon déclarative, à partir de formules bien formées, par exemple : « Pierre a
une auto ». Une proposition peut être VRAIE ou FAUSSE. Cette logique d’ordre 0 n’admet pas
de variables.

Mammifère
Chien
Homme
Cheval
Milou Médor Brutus
Rantanplan
Classe
Sous- classe
Objet
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


78 78
6. Le calcul des prédicats
Le calcul des prédicats, est une extension de la logique des propositions. Elle prend en compte
les variables et les quantificateurs ( « il existe… », « tous les… »). C’est une logique d’ordre 1.
Par exemple, dans l’expression « Tous les hommes sont mortels », « homme » et « mortel » sont
des prédicats.

7. Les règles de production

À la suite de l'émergence des Systèmes Experts, les règles de production ont acquis leur lettre de
noblesse (en particulier grâce à MYCIN). Les règles de production peuvent traduire une relation, une
information sémantique ou une action conditionnelle.

Une règle de production, d’une manière générale est de la forme :

Si partie-si Alors partie-alors ( ).
La ``partie-si'' est une formule logique qui doit être vérifiée pour que la règle soit déclenchée. C’est
la condition d’applicabilité de la règle, qui peut être une conjonction de propositions logiques, de
prédicats ou de relations. La ``partie-alors'' est la conséquence ou la conclusion, elle peut
correspondre à un fait (ajout ou retrait) ou à une hypothèse émise par le système, au déclenchement
d'une autre règle. Elle peut être une action à effectuer ou une autre proposition logique, laquelle peut,
à sont tour, se trouver être la prémisse d’une autre règle. est un coefficient traduisant l'incertitude
associée à la règle ; suivant le domaine dans lequel on travaille on parle de coefficient de
vraisemblance, de facteur de plausibilité ou de certitude, de degré de vérité.
Le noyau des systèmes à base de connaissances reposant sur des règles de production comprend
trois parties :
1. une base de règles (connaissance permanente),
2. un moteur d'inférences (mécanisme de raisonnement) qui peut être de différentes natures,
3. une base de faits (mémoire de travail, connaissance temporaire)
En plus, de tels systèmes se doivent d'intégrer une interface Homme/Machine performante. Nous
n'en dirons pas plus pour l'instant, ces concepts seront approfondis dans les chapitres qui suivent.
On peut cependant noter qu'il existe des différences notables entre règle de production (Si p alors
q) et formule logique (p →q). D'une part, la relation de causalité n'est pas nécessaire dans le cas de
formules logiques et d'autre part l'adjonction du coefficient de vraisemblance dans le cadre des
règles de productions.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


79 79
Pour conclure ce paragraphe, on peut noter que de tels systèmes pêchent par une faible capacité à
organiser les connaissances, c'est pourquoi on les couple (dans le cas de systèmes industriels) avec
des systèmes de frames.
Conclusion

Il existe de nombreuses possibilités de représenter des connaissances, mais hélas aucune n'est
la panacée universelle. Toutes ont des avantages et des inconvénients qu'il est nécessaire d'apprécier
en fonction de l'application souhaitée. Cependant, certaines représentations peuvent être couplées.
En définitive, le choix final reposera sur le degré de compromis souhaité entre efficacité (puissance
de raisonnement, puissance d'expression et de représentation) et clarté.

III.3. LE RAISONNEMENT

Le raisonnement est une activité intentionnelle à la différence d'autres telles que la
perception. On considère le raisonnement comme une activité élaborée pouvant se définir comme
un enchaînement d'énoncés conduit en fonction d'un but qui peut suivant le cas être de démontrer,
justifier ou expliquer.
Le raisonnement est souvent considéré sous plusieurs angles tels que :
• le raisonnement formel, basé sur la manipulation syntaxique d'énoncés symboliques à l'aide
de règles. Une telle approche se trouve dans le raisonnement logique. La logique constitue
une langue, i.e. un système de symboles et de variables liés par des opérateurs qui
déterminent la structure interne des propositions et les relations entre ces différentes
propositions. La logique classique intègre, généralement deux parties, d'une part la logique
propositionnelle (parfois aussi appelé ``calcul des énoncés'') dont la brique de base est la
proposition représentant soit un évènement soit un fait, elle étudie toutes les associations
possibles ; d'autre part la logique des prédicats, dont l'élément fondamental est la relation et
les termes internes aux propositions. La logique mathématique est quant à elle définie comme
: une théorie scientifique des raisonnements excluant les processus psychologiques mis en
œuvre et qui se divise en calcul des propositions et calcul des prédicats. La logique remonte
à Aristote (IV
e
siècle avant JC) qui posa les bases du syllogisme que les philosophes
scholastiques formalisèrent au Moyen-âge. C'est au XIX
e
siècle avec Bolzano, Boole et de
Morgan que la logique devient mathématique. Frege (1848-1925) est le fondateur de la
logique formelle, théorisée par Russel (1872-1970) et Wittgenstein (1889-1951).
• le raisonnement par analogie, qui est très courant chez l'homme mais qui est mal défini (et
donc délicat à mettre en œuvre).
• le raisonnement par abstraction et généralisation est répandu chez l'homme mais mal défini,
ce type de raisonnement, dans le cadre de simulation sur machine peut être mis en œuvre par
le biais d'héritage, et est en relation avec la classification.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


80 80
Pour que le raisonnement puisse s'effectuer, il est nécessaire de préciser l'Univers du Discours,
ce qui signifie que tout ce qui n'est pas connu comme étant vrai et, ipso facto, considéré comme faux
(hypothèse dite du monde clos, qui est mise en œuvre dans un langage comme PROLOG ). Pour
mécaniser le raisonnement il faut :
1. Une structure de données. Plusieurs approches sont possibles : les représentations logiques,
réseaux sémantiques, règles de production et frames.
2. Une ou plusieurs procédures d'exploration.
3. Une représentation claire (être capable de faire correspondre à un élément de l'Univers du
Discours, une représentation), puissante et suffisante.
4. Une simulation efficace en temps et en espace.
On pourra aussi se reporter à l'article de S. Pinson sur la représentation des connaissances dans les
systèmes experts, ou au livre de A. Bonnet pour une vue plus générale.

III.4. MODULES DE BASE DANS L’ARCHITECTURE DES SYSTEMES ISSUS DE
L’INTELLIGENCE ARTIFICIELLE

III.4.1. La Base de Connaissances (BC)

Elle est constituée de la base des faits (B.F) et de la base des règles (B.R). Les faits sont des
connaissances assertionnelles et les règles sont des connaissances opératoires.

III.4.2. Le Moteur d’Inférence (MI)

Le programme pour exploiter la Base de Connaissances. On l’appelle aussi Inference engine,
système de résolution de problèmes, etc.

III.4.3. Le Module d’Acquisition des Connaissances (MAC)

Il permet d’incorporer des nouvelles connaissances au sein de la Base de connaissances, d’une
manière cohérente et non redondante.

III.4.4. Le Module Explicatif (M.E)

Il permet de retracer le raisonnement qui a conduit à la résolution du problème

III.4.5. L’interface utilisateur

C’est le moyen de communication entre l’utilisateur et le système. Il peut être sous forme de menu,
de question-réponse, en langage naturel, etc.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


81 81
Schématiquement, nous avons :




Il existe aussi des interfaces avec des applications externes telles que les capteurs, les bases de
données, les robots, les actionneurs.
USER
INTERFACE
ME MAC
MI BC
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


82 82

CHAP IV : DES BASES DE DONNEES VERS LES BASES DE
CONNAISSANCES


IV.1. INTRODUCTION

Le développement et l’exploitation d’une base de données nécessitent le choix d’un SGBD. Ce
SGBD est un ensemble de logiciels qui fournit un environnement pour définir, contrôler, mémoriser
et traiter l’ensemble de données, tout en assurant la sécurité, la confidentialité et l’intégrité de la
base de données.
Une bonne partie des SGBD actuelles est fondée sur le modèle relationnel de données dont les
principes de base sont les suivants :
- La représentation des données sous forme de tables c’est – à - dire des relations au sens
mathématique.
- La manipulation des données à l’aide d’opérateurs appliqués aux tables pour fournir d’autres
tables dans le cadre d’une algèbre relationnelle.

En vue d’améliorer leurs performances, les SGBD font l’objet de plusieurs études, lesuqelles se
focalisent sur deux axes :
- Développer le pouvoir expressif des modèles de données.
- Introduire des capacités de raisonnement dans les SGBD conventionnels
La problématique des bases de données déductives est liée directement au deuxième axe. En
effet, l’idée générale de cette problématique consiste à enrichir l’ensemble des axiomes constituant
le SGBD des règles logiques qui permettent d’effectuer des inférences simples à partir des données
stockées dans la base, et d’obtenir ainsi ce que l’on appelle une base de donnée déductive. Par
exemple : Si nous considérons une base de données qui contient les noms des personnes et leurs
liens de parenté (relation parent - enfant). Nous pouvons à partir de cette base de données et d’une
règle simple à concevoir, extraire toutes les personnes qui sont des grands parents. Cette opération
nécessite donc un raisonnement et n’est pas possible pour une base de données simple.

C’est ainsi que l’objectif de ce chapitre est d’assurer une transition continue entre un système
de type base de données relationnelle vers un système de type base de données déductive c’est – à –
dire :

1. Augmenter le système de type de base de données relationnel des capacité déductives
tout en
conservant le pouvoir d’expression du schémas conceptuel et en admettant les fonctionnalités
du SGBD.
2. Etendre les capacités de manipulation conceptuelle du schéma relationnel.



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


83 83
IV.2. L’APPROCHE LOGIQUE D’UNE BASE DE DONNEES RELATIONNELLE

L’approche logique d’une base de données relationnelle concerne 3 points essentiels :
- La caractéristique logique des modèles de données c’est – à – dire l’approche formelle avec
une contrepartie sémantique.
- L’approche rigoureuse des nombreux problèmes en rapport avec le langage d’interrogation
de données, le traitement des contraintes d’intégrité, l’optimisation des interrogation ou des
requêtes, les dépendances des données, le traitement des valeurs nuls, les informations
incomplètes.
- La construction de l’appareillage déductif c’est – à – dire les règles de gestion dans le but de
coupler la base de donnée à un système de raisonnement.
-
L’approche logique d’une base de donnée relationnelle consiste donc en ce qu’une base de
donnée ne puisse conserver des informations sous deux aspects c’est – à – dire l’aspect de sa
signification (aspect sémantique) et l’aspect de sa structure ou sa forme (aspect syntaxique).
L’aspect sémantique est mieux abordé par la théorie des modèles qui considère une base de
donnée comme une interprétation des langages du premier ordre. Par contre la théorie de la preuve
traite la question de l’aspect syntaxique. En effet, elle considère une base de donnée comme une
théorie du premier ordre c’est – à – dire un ensemble d’axiomes (les faits et les contraintes). A ces
deux théories, on associe un ensemble d’axiomes de particularisation qui concerne l’évaluation des
questions sur la base de données.
En bref, on peut définir une base de donnée comme étant un ensemble :
- D’axiomes de particularisation (axiomes d’ouverture du domaine, axiomes d’unicité du nom,
axiomes de complétion, axiomes d’égalité)
- D’ assertions et de contraintes d’intégrité.

IV.3. VERS LES BASES DE DONNEES DEDUCTIVES

IV.3.1. DEFINITION

Une base de donnée est dite déductive si et seulement si :
- elle est d’abord une base de donnée relationnelle
- On y a introduit une nouvelle classe d’axiomes appelée lois déductives.
Il existe deux sortes de base de données déductives :
- Base de données déductives définie
- Base de données déductives indéfinie

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


84 84

IV.3.2. NOUVELLES FONCTIONNALITES DES SGBD

IV.3.2.1.Fonctionnalités d’un SGBD conventionnel

- La représentation des données (informations) : les informations sont représentées sous forme
de schémas ou instances au niveau conceptuel et sous forme de fichiers ou enregistrements
au niveau physique.
- La manipulation des données : elle se fait au moyen des opérations élémentaires c’est – à -
dire opérations d’ajout, de suppression, de mise à jour et d’interrogation. Elle se fait
également au moyen des opérations plus complexes en utilisant des programmes
d’application.
- Le contrôle des informations et l’intégrité sémantique : ces deux opérations sont réalisées au
moyen des programmes d’application.

IV.3.2.2. Nouvelles fonctionnalités du SGBD

Les nouvelles fonctions du SGBD sont les suivantes :
- Intégrer au sein des fonctionnalités classiques précitées des nouveaux services propres à un
système devant présenter des capacités de raisonnement c’est – à – dire des capacités
déductives. Il s’agit par exemple de problèmes de l’optimisation séquentielle des requêtes,
de la gestion des données dynamiques, de la mise en œuvre automatique des processus de
génération, de potentialités du type TMS (Truth Maintenance Système), de l’intégrité
sémantique de dérivation, etc.
- Augmenter le pouvoir d’expression du schéma conceptuel.


IV.4. ASPECT REALISATION

La véritable transition des bases de données vers les bases de données déductives à été rendu
possible grâce au langage de programmation en logique appelé prolog ( programming in logic) au
moyen d’un système déductif utilisant le moteur d’inférence logique.

Avec le prolog, on peut facilement faire les opérations suivantes :
- Définir et manipuler un schéma conceptuel : ici prolog permet de définir à l’avance la
structure selon laquelle les informations qui sont propres à cette application devront être
représentées mais il ne vous assure pas de la cohérence des informations.
- Exprimer et vérifier les contraintes d’intégrité : à ce niveau, le prolog offre des mécanismes
de vérification efficace, les contraintes d’intégrité et les mécanismes qui permettent de les
exprimer.
- Un accès efficace à un large ensemble des faits qui sont stockées en mémoire secondaire : le
prolog permet de représenter des faits en mémoire secondaire suivant des structures
appropriées et de fournir des mécanismes d’accès appropriés.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


85 85
IV.5. NOTA

Pour étendre un système de gestion de base de donnée conventionnelle avec un composant
déductif de sorte que le système résultant puisse être accédé par un utilisateur standard de
manière analogue à un système conventionnel, il faut :
- Fournir des langages assez simples pour la définition et la manipulation des informations
déduites
- Masquer à l’utilisateur tous les problèmes liées à l’introduction d’un processus déductif en
présence d’axiomes récursifs,
- Le langage prolog doit être utilisé comme langage hôte du langage d’interrogation du SGBD
pour écrire des programmes prolog incluant des requêtes sur la base de données.

IV.6. REMARQUES

Il existe une différence fondamentale entre une base de données et une base de connaissances :
- Une base de données est destinée à stocker un ensemble d’informations que le SGBD est
capable de retrouve de façon statique.
- Tandis qu’une base de connaissances est destinée à être exploité par un mécanisme de
raisonnement (tel qu’un moteur d’inférence associé à des règles de production) capable de découvrir
dynamiquement des nouvelles informations à partir des connaissances disponibles dans la base.

Les bases de données servent essentiellement à décrire la structure d’une entreprise ou d’une
organisation en général. Ces données organisées permettent par exemple dans le domaine de la
gestion des stocks à connaître l’état des stocks, l’état des commandes en cours, elles peuvent aussi
permettre de connaître l’état de la compatibilité ou de la situation du personnel, etc.
Les Systèmes Experts par contre peuvent être utilisés pour prendre des décisions ou bien pour
aider à prendre des décisions.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


86 86

CHAPITRE V. LA ROBOTIQUE

C’est un domaine de l’intelligence artificielle qui consiste à mettre en place ou à développer
des robots qui sont capables de manipuler des objets et réagir à des modifications de
l’environnement. Autrement dit, on définit la robotique comme étant un ensemble de techniques
permettant la conception et la mise en œuvre des dispositifs (dispositifs) destinés à substituer
l’homme dans ses fonctions motrices, sensorielles et intellectuelles. Ces dispositifs peuvent être
programmés pour réaliser des actions bien déterminées ou pour agir par apprentissage.

V.1. Historique du robot

Les situations économiques actuelles dans les pays industrialisés, notamment la crise qui a suivi
le”choc pétrolier” des années 70 et l’émergence de nouveaux pays industrialisés, d’une part, et les
progrès réalisés dans l’électronique, informatique, automatique et mécanique, d’une part, ont permis
de construire des robots et d’autres systèmes ”mécatroniques” performants et fiables, conduisant à
une compétition industrielle très vive. Cela ne laisse survivre que les industries capables de produire
à faible coût ou de fournir rapidement des produits nouveaux et/ou de qualité supérieure et garantie.
Ces exigences ont conduit au développement d’une automatisation flexible impliquant
l’implantation de robots dans de nombreuses branches d’activités. C’est l’apparition des robots et
leur association à d’autres machines automatiques d’inspiration ”classique” (par exemple, des
machines-outils à commande numérique) qui permettent d’automatiser ou d’essayer d’automatiser
des opérations considérées jusqu’ici comme non automatisables.
La plus ancienne trace littéraire se trouve dans le livre XVIII de l'Iliade, dans lequel on peut lire
`` Alors ...il sortit en clopinant, appuyé sur un bâton épais et soutenu par deux jeunes filles. Ces
dernières étaient faites en or à l'exacte ressemblance de filles vivantes ; elles étaient douées de
raison, elles pouvaient parler et faire usage de leurs muscles, filer et accomplir les besognes de leur
état ...''.
Avant les robots étaient les automates. C'est un barbier grec du III siècle avant J.C. qui
construisit le premier automate. Inventeur de l'orgue hydraulique, il est le premier à réaliser des
oiseaux siffleurs et autres figurines se déplaçant sous l'action de l'eau. Plus tard Philon d'Alexandrie
mis en pratique les découvertes d'Archimède , et construisit des automates pondéraux, hydrauliques
et pneumatiques. Ceux-ci sont mûs par écoulement de fluide et chute de poids. Ils n'effectuent qu'un
nombre limité d'actions, mais bougent sans que les mécanismes responsables soient visibles.
C'est au I siècle avant notre ère qu'apparaissent les automates avec rupture de séquence -- une
chevillette délogée par la chute d'un poids provoquait le changement de comportement -- qui étaient
plus ``vivants''. Pendant le moyen-âge, les automates évoluent avec l'apparition de l'horlogerie.
L'époque des automates modernes commence avec Descartes (1630).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


87 87
La Pascaline (1645) fait des additions et des soustractions, la machine de Leibnitz (1646-1716)
multiplie. Ces deux engins introduisent l'emploi des registres intermédiaires et font des reports
automatiques de retenues.
En 1738, Vaucanson réalise un joueur de flûte, androïde assis exécutant rigoureusement les
mêmes actions qu'un véritable flûtiste. L'air actionnant l'instrument sort de la bouche de l'automate,
les lèvres modulent l'air et les doigts obturent librement les trous ad-hoc. En 1860, Farcot invente le
servo-moteur.
Le robot a fait son apparition (en tant que tel) dans les ateliers des années (19)50. Il s'agissait de
machine outils commandées par des bandes de papier perforées, le mot robot trouve son origine dans
une (mauvaise) traduction d'une uvre de K. Capeck (R.U.R. 1920) et est tiré d'un mot tchèque
signifiant travailleur, son titre de noblesse lui fut donné par Isaac Asimov et ses célèbres lois de la
robotique :
1. Un robot ne peut porter atteinte à un être humain ni, restant passif, laisser cet être humain
exposé au danger.
2. Un robot doit obéir aux ordres donnés par les êtres humains, sauf si de tels ordres sont en
contradiction avec la première loi.
3. Un robot doit protéger son existence dans la mesure ou cette protection n'est pas en
contradiction avec la première ou la deuxième loi.
Le premier robot à usage industriel apparaît en 1962, et en France aux alentours des années 1970
(usine Renault). Avant de voir ce dont ils sont maintenant capable, faisons un saut dans le passé.
En résumé, si la robotique est plus au moins un ensemble des disciplines et des techniques déjà
connues et sur lesquelles la recherche est active. C’est pour deux raisons :
- Le désir des industriels d’automatiser leurs unités de production
- Le développement de l’information et son couplage à la mécanique
Ce domaine fait appel aux autres domaines tel que le domaine de la reconnaissance de la parole pour
former la robotique et sémantique et celui de la reconnaissance des formes pour former la robotique
et visionique.

V.2. Définitions du mot « Robot ».

Il est vrai que le terme de robot est emprunté de la science-fiction. Il trouve en effet son
origine dans une pièce de l’auteur tchèque Capek, écrite en 1923, intitulée ”Les robots universels de
Rossum”. Le mot ”robot” ou ”robota” est le mot tchèque, et aussi russe, pour désigner le travail ou
un travailleur.




Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


88 88
V.2.1. Définition 1

La première définition officielle de robot date de 1978, elle est due aux japonais ``un robot
est une machine polyvalente, capable d'agir sur son environnement, et adaptable à un environnement
changeant''.

V.2.2. Définition 2

Un robot est un dispositif destiné à effectuer des travaux en se substituant à l’homme.
La plupart des robots actuels sont formés d’un manipulateur (un bras articulé terminé par une pince)
et d’un système de commande (généralement à base du microprocesseur). Ils sont quelque fois dotés
d’une certaine mobilité (par exemple on peut les monter sur des roues).

D’une manière générale, actuellement, un robot est un matériel artificiel qui est contrôlé par un
ordinateur et qui réalise tout le service pouvant être exécuté par un ouvrier humain et remplissant des
tâches complexes ( compliquées, difficiles).
V.3. Catégories des robots
Les robots sont classés en 6 catégories :
1. Robots manipulateurs (RM), à commandes manuelles (aucune autonomie),
2. RM à séquences fixes
3. RM à séquences variables, compatibles avec plusieurs hypothèses de travail,
4. Robots programmables par apprentissage, dotés d'une mémoire contenant plusieurs
séquences,
5. Robots à commandes numériques, dépendance vis-à-vis de l'informatique,
6. Robots avec capteurs sensoriels.
Ces catégories sont vues soit, comme des prolongements de notre système musculaire, soit
comme une extension de notre système nerveux.
Toutes ces catégories consomment de l'information, mais l'automate est programmé de façon
séquentielle alors que le robot est capable d'accomplir plusieurs fonctions et de les réaliser de
manière autonome.
La cybernétique, science qui s'occupe des robots, tente de reproduire les fonctions humaines
comme l'intelligence, l'apprentissage et l'adaptation.

Seuls les robots appartenant à la dernière catégorie sont considérés comme pouvant avoir un
comportement intelligent, cette nouvelle génération (productique) peut communiquer avec l'homme.
Ces robots peuvent se déplacer, sont capables de détecter leur défaillances et de les signaler (si ce
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


89 89
n'est d'y remédier). La robotique fait partie du milieu industriel, il existe même au Japon une usine
de robots construisant des robots (et ça marche ...).

V.4. Générations des robots

On distingue généralement 3 générations des robots :

a. 1
ère
génération : les robots à apprentissage
Ils sont capables de mémoriser les mouvements qui leurs ont été imprimés et les
reproduire fidèlement

b. 2
éme
génération : les robots programmés
Ce sont des robots qui effectuent des mouvements commandés par leur ordinateur de
commende.
c. 3
éme
génération : les robots auto - adaptifs
Ce sont des robots qui peuvent prendre en compte leur environnement grâce à des
capteurs dans proximité des retours d’efforts, voir l’utilisation des caméras de télévision.

V.5. Domaines de la Robotique

Trois grands domaines d’application des robots peuvent être considérés. Les problèmes à
résoudre à l’intérieur de chacun de ces domaines ont une certaine ressemblance, mais ils peuvent être
assez différents d’un domaine à l’autre.

V.5.1.Domaine de la Production

C’est dans le domaine de la production que l’effort est porté le plus particulièrement par
les industriels, qui voient de nombreux avantages à l’utilisation des robots, notamment une
diminution de la main d’œuvre et un accroissement de la productivité. En fait, l’association de
robots entre eux et avec d’autres machines amène deux avantages fondamentaux par rapport aux
modes de production traditionnels :


1. la flexibilité, c’est-à-dire la rapidité de reconfiguration de l’unité de production quand on passe de
la fabrication d’un produit à celle d’un produit voisin (exemple : fabriquer des modèles différents de
voitures sur la même chaîne) ou bien quand un incident immobilise une machine de l’unité de
production Ces unités de production ”reconfigurables” ou adaptatives sont qualifiées de flexibles (en
anglais ”flexible manufacturing system”).
On parle de :

atelier flexible lorsqu’on associe plusieurs cellules flexibles ou bien un nombre assez
important de machines et robots ;
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


90 90
cellule flexible lorsqu’un petit nombre de robots et de machines sont associés (exemple : un
tour et un robot de chargement de ce tour)

2. l’automatisation quasi intégrale de la production qui peut s’accompagner :

d’une meilleure adaptation de la quantité produite à la demande ;
d’une plus grande fiabilité dans le maintien de cette qualité ;
d’une meilleure qualité du produit fini ;

V.5.2. Domaine de l’Assistance individuelle

Ce domaine consiste à mettre au point des robots à forme plus ou moins humaine, qui
remplacent l’homme ou l’assistent dans les tâches ennuyeuses, fatigantes ou dangereuses. Ces robots
restent encore du domaine de la science-fiction et, actuellement on peut tout au plus envisager des
machines du genre ”robot de ménage” qui nettoient les sols par exemple (en évitant les obstacles,
personnes, murs, meubles, ...). L’autonomie de ces robots est encore très limitée, leur coût plutôt
exorbitant et leur intérêt très réduit.

Il y a cependant un domaine où la robotique d’assistance individuelle tend à se développer,
c’est celui de la robotique médicale permettant d’améliorer les conditions de vie des personnes
handicapées, paralysées ou amputées. La robotique recouvre alors le domaine des :

orthèses, structures rigides motorisées que l’on met autour d’un membre paralysé et qui
entraînent ce dernier dans leurs mouvements ;
télé thèses, destinées aux personnes paralysées des quatre membres (tétraplégiques) ce sont des
robots que la personne handicapée commande à distance (en télé opération) à partir des zones de
motricité volontaire qu’il a pu conserver (par exemple : la langue, la bouche, les muscles des
yeux, etc.) ;
prothèses (mains et jambes artificielles par exemple) ;


V.5.3.Domaine de l’exploration

Il s’agit d’un problème différent. On veut exécuter des opérations dans un lieu :

1. d’accès difficile : exploitation forestière, construction, maintenance, réparations ou nettoyage des
bâtiments, lignes électriques, ...

2. dans un milieu hostile ou dangereux pour l’homme :
le milieu spatial ;
les sites des catastrophes ou d’accidents, survenus ou potentiels : incendies, agressions
terroristes, ...
le milieu sous-marin
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


91 91
les théâtres d’opérations militaires
le milieu irradié des centrales nucléaires
.
La robotique envisage deux types de solution pour ces interventions :

1. le robot autonome, envoyé dans le milieu hostile avec une mission bien définie, programmée à
l’avance, avec toutefois certaines libertés d’initiative ; actuellement, on sait réaliser des robots doués
d’une certaine autonomie, mais le travail qu’on peut leur confier doit rester d’une grande simplicité
et ne doit surtout pas exiger que le robot ait à appréhender et comprendre seul tout son
environnement. C’est pourquoi la solution qui est encore aujourd’hui la plus opérationnelle, quoique
restant grandement à améliorer, est celle de :

2. la télé - opération (appelée aussi télé - présence), qui consiste à envoyer un engin (un robot qu’on
appelle machine - esclave) dans ce milieu hostile et à pouvoir contrôler et commander cette machine
à distance, à partir d’un poste appelé poste - maître aux commandes duquel se trouve un homme
(l’opérateur). C’est donc l’homme qui effectue toutes les tâches de réflexion et de déclenchement
des mouvements de l’esclave. Cela nécessite bien sûr le renvoi vers le maître de ce qui se passe dans
l’univers de l’esclave. Ce qui est le plus utile, c’est de voir (présence de caméras), mais il importe
aussi de sentir les efforts qui s’exercent sur l’esclave. On doit donc avoir des systèmes de vision et
des systèmes à retour d’effort.

V. 6.Classification des robots

On peut classer les robots d’un point de vue fonctionnel ou d’après leur structure géométrique.

V.6.1.Classification fonctionnelle

Le nombre de classe et les distinctions entre celles-ci varient de pays à pays (6 classes au Japon,4 en
France). L’A.F.R.I.(Association Française de la Robotique Industrielle) distingue 4 classes illustrées
ci-dessous :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


92 92

V.6.1.1. Robots à commande manuelle ou télécommande.




V.6.1.2. Robots manipulateurs automatiques à cycles préréglés

(le réglage se fait mécaniquement par cames, butées, la commande peut se faire par
automate programmable) ; on peut distinguer entre manipulateurs à cycle fixe et manipulateurs à
cycle programmable.





Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


93 93
V.6.1.3. Robots programmables

C’est la première génération de robots industriels ; ils répètent les mouvements qu’on leur
a appris ou programmés, sans informations sur l’environnement ou la tâche effectuée. On peut aussi
faire la distinction entre robots ”play-back” qui reproduisent la tâche apprise et robots à commande
numérique qui peuvent être programmés hors-ligne. Pour de nombreux robots, l’apprentissage de la
tâche se fait à l’aide d’un ”syntaxeur” (”boite à boutons”, ”teach pendant”) qui permet à un opérateur
d’amener le robot en un certain nombre de points, qui sont ensuite mémorisés ; lors de l’exécution de
la tâche, le robot suivra une trajectoire passant successivement par tous les points programmés, le
passage d’un point au suivant se faisant suivant un profil de vitesse en fonction du temps qui est
prédéfini (triangulaire ou trapézoïdal), l’opérateur n’ayant qu’à choisir la fraction de la vitesse
maximum à laquelle il souhaite que le robot effectue la tâche.

Pour certains robots, par exemple les robots de peinture, qui doivent suivre une trajectoire
complexe qu’il est difficile d’exprimer mathématiquement, un opérateur humain spécialiste de la
tâche effectue la trajectoire en guidant le bras du robot à l’aide d’un ”pantin”, et l’entièreté de la
trajectoire est mémorisée par le robot.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


94 94
V.6.1.4. Robots ”intelligents”.

On trouve actuellement des robots de seconde génération qui sont capables d’acquérir et
d’utiliser certaines informations sur leur environnement (systèmes de
vision, détecteurs de proximité, capteurs d’efforts, ...). On étudie des robots de troisième génération,
capables de comprendre un langage oral proche du langage naturel et de se débrouiller de façon
autonome dans un environnement complexe, grâce à l’utilisation de l’intelligence artificielle.




V.6.2. Classification géométrique

On peut aussi classer les robots suivant leur configuration géométrique, autrement dit
l’architecture de leur porteur. Les 3 premiers ddm d’un robot peuvent être réalisés avec un grand
nombre de combinaisons de translations (max. 3T) et de rotations (max. 3R), autrement dit par des
articulations prismatiques (P) ou rotoïdes (R) ; en pratique, on n’utilise que 4 ou 5 d’entre elles :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


95 95

V.6.2.1. porteur cartésien (TTT ou PPP) :

Les 3 axes sont animés d’un mouvement de translation.


V.6.2.2. porteur en coordonnées cylindriques (RTT ou RPP) :

Un mouvement de rotation et une translation axiale, complétées par une translation radiale.




Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


96 96

V.6.2.3. porteur en coordonnées polaires ou sphériques (RRT ou RRP) :

Deux rotations (longitude et latitude) autour d’axes orthogonaux, complétées par une
translation radiale.




V.6.2.4. porteur en coordonnées universelles,

Appelé aussi configuration poly articulée ou anthropomorphe (RRR), trois rotations dont les deux
dernières se font autour d’axes parallèles orthogonaux au premier, les trois articulations
correspondant respectivement au tronc (base), à l’épaule et au coude d’un être humain.





Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


97 97
V.6.2.5. Deux rotations autour de deux axes parallèles,

Une cinquième architecture comprend deux rotations autour de deux parallèles précédées ou
suivies d’une translation dans la même direction (éventuellement celle-ci peut être reportée au
niveau du poignet, qui peut aussi tourner autour du même axe, soit au total 4 ddm). Cette
architecture est celle des robots SCARA (Sélective Compliance Arm for Robotic Assembly) que
l’on utilise dans des opérations d’assemblage.




V.7.Eléments constitutifs d’un robot

V.7.1.Les actionneurs

Le terme d’actionneur désigne tout dispositif générateur d’effort à vitesse variable qui
permet de modifier la configuration d’un robot. Si on se limite aux actionneurs pratiquement
utilisables, il est possible de les classer suivant :

• le type du mouvement généré.

Dans l’état actuel de la technologie, on trouve les actionneurs linéaires qui développent une force et
génèrent un mouvement de translation parallèlement à cette force et les actionneurs rotatifs qui
développent un couple et génèrent un mouvement de rotation autour de l’axe du couple.

• la nature de la source d’énergie.

On dispose d’actionneurs pneumatiques qui utilisent l’air comprimé comme source
d’énergie, d’actionneurs hydraulique sous pression, et d’actionneurs électriques qui utilisent
l’énergie électrique. La puissance massique et le pouvoir d’accélération sont des critères importants
qui permettent une comparaison objective de ces différents types d’actionneurs. Il n’existe pas
actuellement d’actionneurs qui présentent globalement toutes les caractéristiques énoncées ci-dessus.

Exemples des actionneurs les mieux adaptés

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


98 98
les moteurs à courant continu

— moteurs pas à pas,
— moteurs à courant continu commandés par l’induit et à flux inducteur constant (généralement par
aimants permanents),
— moteurs à courant continu sans balais (Brushless DC motor).

Les actionneurs hydrauliques
— vérins linéaires et rotatifs,
— moteurs à pistons axiaux,

Les actionneurs pneumatiques

— vérins linéaires et rotatifs


V.7.2. Les effecteurs

L’effecteur est l’organe terminal du robot, il est souvent connecté au poignet de celui-ci.
Ce poignet se termine généralement par une plaque de base, percée de trous filetés ; cela permet la
fixation de différents effecteurs à un robot universel et donc l’adaptation de celui-ci à des tâches
spécifiques. En fait, la plupart des machines de production exigent des outils et des fixations
spécialement conçus pour une application particulière ; à cet égard, le robot n’est donc pas une
exception. Il faut d’ailleurs noter que beaucoup d’outils conventionnels, utilisés à la main ou sur
certaines machines (pistolets de peinture ou de collage, visseuses, perceuses, pinces,...) peuvent
devenir des effecteurs de robotique, au prix d’un travail d’adaptation permettant de :

• Compenser certaines imprécisions où dispersions dans les caractéristiques des objets
extérieurs ou du robot lui-même,
• Présenter une certaine flexibilité pour se prêter à des tâches diversifiées.
Les principaux problèmes qu’il faut résoudre dans la conception d’un effecteur, sont liés aux
connexions de l’effecteur, parmi les différentes connexions possibles, nous citons celles-ci :
• Connexions mécaniques : solidarisation effecteur - poignet, transmission d’efforts, élasticité
(”compliance”),
• Connexions énergétiques : transmission de l’énergie (électrique, pneumatique ou
hydraulique) nécessaire à l’action de l’organe terminal
• Connexions matérielles : fourniture à l’effecteur des matières consommées par la tâche
effectuée (colle, peinture, pâte, métal d’apport, fluide de refroidissement ou de lubrification,
...)
• Connexions informationnelles : transmission de commandes aux actionneurs de l’effecteur et
de contrôles provenant des capteurs ou détecteurs prévus dans l’effecteur
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


99 99
• Connexions logicielles : incorporation d’une routine définissant la fonction de l’effecteur et
appelant ou générant les informations correspondantes, dans le logiciel de programmation et
de commande du robot.

En outre, il ne faut pas oublier que l’effecteur est l’organe terminal du robot, c’est donc lui
qui sera en contact avec des objets extérieurs. De ce fait, il est exposé à des accidents divers et doit
être muni de protections (butées, ”fusibles” mécaniques, etc.).Généralement, les effecteurs doivent
être conçus et fabriqués ”sur mesure” en fonction de la tâche qu’ils doivent effectuer. On peut
concevoir et réaliser un effecteur complètement nouveau ou adapter un effecteur existant sur le
marché. Cela peut être fait par la société qui vend ou installe le robot, ou par le client qui l’achète ou
par une firme spécialisée dans ce genre de travail. Dans le cadre de notre travail, nous utiliserons les
connexions logicielles.

V.7.3.Les capteurs

Le capteur doit cumuler les fonctions d’acquisition et de conversion en signal électrique de la
grandeur physique ou chimique. Il y a autant des méthodes de détection et de transformation que
l’objet physique permet de réaliser. La liste suivante cite les principaux capteurs :

• Capteur d’image (image)
• Microphone (son)
• Thermistance, thermocouple (température)
• Capteur à éléments semi-conducteurs (rayonnement)
• Capteur optoélectronique semi -conducteur, pile thermique, élément golay (infrarouge)


V.7.8. Organes de transmission

Ce sont des organes qui transmettent un mouvement d’un actionneur vers une partie mobile
d’une liaison cinématique. Ils interviennent parfois aussi comme éléments de structure (mécanismes
à pantographe ou à parallélogramme). Ces organes augmentent les masses en mouvement et
présentent des défauts (jeu, frottements, élasticité, ...) qui accroissent l’incertitude sur la position de
l’effecteur ou aggravent le comportement en vibration de la structure. Par contre, ils permettent de
transférer les masses des actionneurs, moteurs et réducteurs en des points où leurs effets statiques et
dynamiques seront fortement réduits.








Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


100 100


CHAPITRE VI. LES RESEAUX DE NEURONES

VI.0. Introduction

A la suite des observations de l'anatomiste espagnole Ramòn y Cajal, dès la fin du 19
ième
siècle,
on a pu déterminer que le cerveau était composé de cellules distinctes appelées neurones formant un
ensemble dense d'environ 10 à 100 milliards d'unités interconnectées.
La principale caractéristique de ces neurones est qu'ils permettent de véhiculer et de traiter des
informations en faisant circuler des messages électriques dans le réseau ténu et massivement
parallèle formé par leur axone. L'extrémité des axones se divise en une multitude de ramifications. A
l'inverse, les arborescences qui amènent l'information vers le corps cellulaire sont appelés dendrites.
Les informations sont transmises d'un neurone à l'autre, de manière unidirectionnelle, par
l'intermédiaire de points de jonction appelés synapses.
Un réseau de neurones formels est un modèle rudimentaire du cerveau humain, chaque cellule
neuronale étant décrite comme une fonction à seuil possédant une sortie et dont les entrées sont
reliées à d'autres neurones.
Le but des réseaux de neurone n'est pas la simulation du cerveau, en effet, les réseaux de
neurones formels ne sont pas un modèle de notre structure cérébrale mais plutôt une métaphore.
Le connexionnisme, se référant aux processus auto-organisationnels, envisage la cognition
comme le résultat d’une interaction globale des parties élémentaires d’un système. On ne peut nier
que le chien dispose d'une sorte de connaissance des équations différentielles du mouvement,
puisqu’il arrive à attraper un bâton au vol. Et pas davantage qu’un chat ait aussi une sorte de
connaissance de la loi de chute des corps, puisqu’il se comporte comme s’il savait à partir de quelle
hauteur il ne doit plus essayer de sauter directement pour se diriger vers le sol. Cette faculté qui
évoque un peu l’intuition des philosophes se caractériserait par la prise en compte et la consolidation
d’éléments perceptifs dont aucun pris isolément n’atteint le seuil de la conscience, ou en tout cas n’y
déclenche d’interprétation particulière.
VI.1. Réflexions sur la pensée
Les philosophes et les scientifiques se sont toujours interrogés sur la nature de l’intelligence.
Toute définition de l’intelligence doit couvrir les aptitudes humaines suivantes : raisonnement,
apprentissage, jugement,
Souvenir, émotion, intention, compréhension, bon sens et conscience. Toutes ces qualités et
aptitudes sont possibles pour les humains. Pour un ordinateur, on peut programmer pour qu’il
apprenne ou se souvenir, mais c’est délicat de lui attribuer un jugement, des émotions, du bon sens et
plus encore la conscience.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


101 101
A la fin du 20ième siècle, la « psychologie » développa des théories sur l’esprit pour
expliquer notre façon de percevoir le monde, d’apprendre, de se souvenir, afin de mieux comprendre
les comportements humains et animaux. Les tests de quotient intellectuel (QI) apparurent à la même
époque pour mesurer ce que les psychologues appellent l’intelligence générale et les capacités
cognitives (le raisonnement verbal, les aptitudes spatiales et arithmétiques). Mais la façon dont le
cerveau crée les aptitudes cognitives et les désirs inconscients demeure un mystère.
En 1930, les neurosciences (étude des cellules nerveuses et de neurones) firent quelques
progrès. L’un des buts des neurosciences est de comprendre comment les neurones, dans le cerveau
contribuent à l’intelligence par la perception, l’apprentissage et la mémoire. La mise en application
de cela dans la conception des ordinateurs est prometteuse pour l’Intelligence Artificielle.
VI.2. Le cerveau et l’ordinateur
Pour beaucoup de neuroscientifiques, le cerveau n’est qu’un ordinateur très complexe.
Cependant, il existe des similitudes entre un cerveau et un ordinateur :
- Tous deux reçoivent l’information sous formes d’impulsions électriques, la traitent en interne
et produisent des impulsions électriques en sortie.
- Les neurones ont des homologues informatiques, il s’agit de circuits intégrés appelés « portes
ouvertes ».
- A l’instar des états d’excitations ou de repos des neurones, les portes logiques ( circuits
intégrés) ont un état « vrai » ou « faux ». Ce système a deux états ou binaire , est au cœur du
traitement de l’information de l’ordinateur.
- Les portes logiques produisent des sorties ( état « vrai ») uniquement lorsque certains critères
sont respectés en entrée, c’est aussi valables pour les neurones.
- De plus la plupart des portes logiques reçoivent leurs entrées d’autres portes , formant un
réseau, comme les neurones dans le cerveau. De la même façon, les exceptions sont des
portes recevant les entrées de l’extérieur de l’ordinateur ou produisent des sorties.

Malgré ces similitudes, il existe des différences :
- Au sujet de la complexité : même les ordinateurs les plus puissants sont loin d’avoir le même
nombre de portes que le cerveau de neurones.
- Le cerveau n’a pas besoin d’être programmé pour faire ce qu’il fait
- On peut cerner le fonctionnement d’un ordinateur alors qu’il reste encore beaucoup à
découvrir sur le cerveau.
Les ordinateurs actuels (fin du 20ème siècle) outrepassent largement les aptitudes du cerveau
dans le domaine du calcul et de la manipulation de symboles. Cependant les êtres humains, peuvent
sans effort, résoudre des problèmes complexes (ou mal définis) dans le domaine de la perception
(reconnaissance d'un visage dans une foule, reconnaissance d'un individu plusieurs (dizaine d')
années plus tard, .... On peut considérer que la nature des problèmes résolus dépend fortement du
type d'architecture des modèles computationnels utilisés.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


102 102

VI.3. Les Réseaux de Neurones formels
L'histoire des réseaux de neurones formels remontent au milieu des années 1940. On doit à
Mc Culloch et Pitts la première présentation des neurones formels, et à Hebb la première règle
empirique pour la modification des poids synaptiques (et par conséquent l'apprentissage dans ce type
de système).
Le perceptron de Rosenblatt (1958) est le plus célèbre système utilisant une architecture
voisine.
En 1969 Minsky et Pappert ont montré mathématiquement les limitations de ce genre
d'appareil ; ce qui stoppa les recherches jusqu'en 1982.
À cette date, J. Hopfield, éminent physicien a remis au goût du jour cette approche en
proposant une solution au problème du voyageur de commerce grâce à un modèle que depuis lors on
appelle réseau de Hopfield.
De plus en plus de chercheurs venant d'horizons très diverses s'intéressent à ce domaine
(neurobiologie, mathématiques, informatique, électronique, biologie).
Le neurone est l’unité de base du système nerveux. Il est composé d’un petit corps de
cellules avec des longues extensions fibreuses appelées Axones et dendrites. Les terminaisons des
axones d’un neurone rencontrent les terminaisons des dendrites de nombreux autres neurones et
forment dans le cerveau un réseau complexe et changeant.

L'activité d'un neurone se mesure en fonction de la fréquence6.2 du train de potentiels d'actions (ou
spikes) propagés sur l'axone. Cet influx nerveux, lorsqu'il parvient à une synapse, permet de libérer
des neuromédiateurs qui excitent (neuromédiateurs excitateurs) ou inhibent (neuromédiateurs
inhibiteurs) le neurone suivant et peuvent ainsi générer ou interdire la propagation d'un nouvel influx
nerveux. Une caractéristique fondamentale de la synapse est qu'elle est capable de s'adapter et ainsi
faciliter ou non le passage des influx nerveux. Cette plasticité est à l'origine des mécanismes
d'apprentissage.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


103 103
Une synapse est constituée d'un bouton présynaptique situé en prolongement de l'axone du neurone
afférent et d'une partie réceptrice sur le corps du neurone efférent, les deux étant séparés par un
espace extra-cellulaire très faible appelé fente synaptique. Le bouton pré-synaptique contient des
vésicules synaptiques remplies de transmetteurs chimiques. Lorsque le PA parvient à la synapse, il
fait rentrer des ions calcium.
Les neurones sont liés par des fibres, et échangent constamment des signaux électriques. On estime
qu’il y a 100 milliards de neurones dans le cerveau ( plus de 10 fois la population terrestre) et on a
calculé qu’il y a plus de 1 000 000 000 000 000 ( un quatrillion) de liens
Le cerveau est ainsi constitué d'un réseau extrêmement dense de cellules nerveuses (neurones), et
de chaque cellule partent plusieurs dizaines de branches (dendrites), l'influx nerveux passe d'un
neurone à l'autre par le biais de synapses. L'influx est de nature électrique et se transmet par un
processus chimique. En d’autres termes, l'influx nerveux se caractérise par une impulsion électrique
(Potentiel d'Action -- PA ) se déplaçant le long de l'axone depuis le corps cellulaire jusqu'aux
synapses. Le déplacement du PA est généré par une diminution locale de la différence de potentiel
entre l'intérieur et l'extérieur de la membrane de la cellule qui provoque l'ouverture des canaux
sodiques de la membrane laissant entrer les ions sodium ( ). Le potentiel ayant toujours tendance
à revenir à une valeur d'équilibre, la cellule libère des ions potassium ( ). C'est ainsi que de
proche en proche se propage l'influx électrique jusqu'aux synapses. Le neurone collecte, au niveau
des dendrites les signaux électriques et propage l'information à ses voisins si le seuil de
sensibilisation est atteint.
Chaque élément constitutif d'un réseau de neurones formels réalise un traitement simple, dont
l'intérêt réside dans l'émergence de propriétés globales à l'ensemble du système (le neurone formel
est au réseau, ce que la fourmi est à la fourmilière). Chaque composant fonctionne plus ou moins
indépendamment de ses voisins, la structure globale étant fortement parallèle avec un indice de
connexions très élevé. ( à dessiner).
Notre capacité d’apprentissage et de mémoire découle des connexions entre les neurones. Il est
probable que les signaux produits (influx) par les neurones constituent la base de nos perceptions,
pensées et comportements. Et la plupart des neuroscientifiques pensent que la conscience résulte de
ces innombrables et minuscules signaux nerveux.
Un neurone est soit à l’état « d’excitation » (là il produit entre 50 et 100 impulsions électriques
par seconde), soit à l’état de repos (là il en produit quelques unes). Un neurone est excité s’il reçoit
assez de stimulations des autres neurones auxquels il est connecté.
Certains neurones (dont les dendrites), qui forment nos organes sensoriels reçoivent leur
stimulation du monde extérieur. La peau contient des dendrites de neurones sensibles à la pression et
à la chaleur, alors que les dendrites des yeux sont sensibles à la lumière. La production du cerveau
est transportée par les neurones moteurs vers les muscles. Une impulsion électrique atteignant un
muscle provoque une contraction. Ainsi, notre perception du monde ( par exemple depuis le son du
tonnerre jusqu’à la douleur due à une piqûre d’épingle) commence par des impulsions électriques sur
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


104 104
les terminaisons de nos neurones sensoriels. Les impulsions électriques de nos neurones moteurs
sont responsables de tout depuis le clin d’œil jusqu’à la conduite d’une voiture.
Chaque neurone est entouré d’une membrane présentant un potentiel électrique de telle sorte que
si les modifications du potentiel dépassent un certain seuil, le neurone est excité.
En réaction au monde qui nous entoure, de nouveaux neurones et synapses de créent, d’anciens
sont perdus, et la nature de certains synapses peut changer.
VI.3.1. Modèle de Neurone Formel
Un neurone formel est un automate caractérisé par :
- un état interne e ∈ S
-
des signaux d’entrée e
1
, e
2
, …, e
n
- une fonction de transition d’état e = f(e
2
, …, e
n
) ou de transfert
Schématiquement,


e
1
(t)

w
i1
e
2
(t)
w
i2


.
.
.
. w
in
e
n
(t)

e
i
(t), i = 1, …, n sont les entrées; W
ij
sont les poids et V
i
(t) est la somme pondérée.
Un neurone est donc semblable à un processeur élémentaire muni d’une fonction de transfert ou
d’activation continue ou non permettant de calculer la sortie en fonction des entrées.

Les différentes connexions ont des poids qui mesurent la force de la connexion.
Un neurone formel réalise simplement une somme pondérée des entrées, ajoute un seuil à cette
somme et fait passer le résultat par une fonction de transfert pour obtenir sa sortie. En effet, soient i
et j deux neurones. Il peut y avoir une connexion pondérée, qui , suivant le cas peut être orienté ou
pas. Dans le cas orienté, s’il y a connexion du neurone i vers le neurone j, on notera w
ji
la
pondération associée. On notera e
i
l’entrée fournit par un neurone i à un neurone j. On notera Y
j
la
sortie de la cellule.

Y
i
(t+τ)



f
τ
Vi(t)
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


105 105
Un neurone est donc semblable à un processeur élémentaire muni d’une fonction de transfert ou
d’activation continue ou non permettant de calculer la sortie en fonction des entrées.
Les différentes connexions ont des poids qui mesurent la force de la connexion.
Un neurone formel réalise simplement une somme pondérée des entrées, ajoute un seuil à cette
somme et fait passer le résultat par une fonction de transfert pour obtenir sa sortie. En effet, soient i
et j deux neurones. Il peut y avoir une connexion pondérée, qui, suivant le cas peut être orienté ou
pas. Dans le cas orienté, s’il y a connexion du neurone i vers le neurone j, on notera w
ji
la
pondération associée. On notera e
i
l’entrée fournit par un neurone i à un neurone j. On notera s
j
la
sortie de la cellule.
La quantité v
j
(t) =

i
i jie w
associée au neurone j est appelée activation. La sortie est alors
calculée par ( ) ( ( ))
j j i
v t f e t = où
j f
désigne la fonction de transfert associée au neurone j. En général,
dans la littérature, on trouve souvent ( ) ( ( ) )
j j ji i j
v t f w e t θ = −


j θ
désigne le seuil associé au
neurone j. Et on pose souvent l’existence d’un neurone O, tel que
1 0 = s
et
0 j w
= -
j θ


VI.3.2. Les différentes sortes de neurones

Il existe deux sortes de neurones : Le neurone produit scalaire et le neurone distances.

VI.3.2.1. Le neurone produit scalaire


s
1
w
i1

Neurone i

s
2
w
i2

s
i
= f (
s t
i
w
.
)
s
3
w
i3
.
. w
in
s
n

i
w


i
s
, i = 1, …, n représentent les signaux du neurone i ; ij
w
représente le poids du signal j associé
au neurone i.

Σ
f
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


106 106
S = ( 1
s
, …, n
s
)
wi
t
représente la transposée de i
w
.
Avec i
w
= ( 1 i
w
, …, in
w
)



Par conséquent :

i
s
= f (
s t
i
w
.
) =
k
k
ik
s w

représente la sortie du neurone et f représente la fonction de transfert
associée au neurone.
Toutes les fonctions f sont des fonctions non linéaires à seuil sigmoïde.
Elles sont utilisées dans les problèmes de classification, d’identification, de prévision, etc.

VI.3.2.2. Le neurone distance


s
1
w
i1

Neurone i

s
2
w
i2

s
i
= f (
2
s wi −
)
s
3
w
i3
.
. w
in
s
n


s
i
, i = 1, …, n représentent les signaux du neurone i ; w
ij
représente le poids du signal j associé au
neurone i.

S = ( 1
s
, …, n
s
)
wi
t
représente la transposée de i
w
.
Avec i
w
= ( 1 i
w
, …, in
w
) et
( )
2
1
2

=
− = −
n
k
k ik i s w s w

Par conséquent :
dist
f
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


107 107
i
s
= f (
s t
i
w
.
) =
k
k
ik
s w

représente la sortie du neurone et f représente la fonction de transfert
associée au neurone.
Les différentes fonctions f sont des identités et sont utilisées pour la compression de données ou la
clusterisation.

VI.3.3. Un Réseau de neurones

Un réseau de neurones se compose de neurones qui sont interconnectés de façon à ce que la
sortie d’un neurone puisse être l’entrée d’un ou plusieurs autres neurones. Ensuite il y a des entrées
de l’ extérieur et des sorties vers l’extérieur ( Rumelhart et al. 1986).
D’après Rumelhart et al., un réseau de neurone comprend les huit éléments principaux suivants :
- Un ensemble de neurones
- Un état d’activation pour chaque neurone ( actif, inactif, …)
- Une fonction de sortie pour chaque neurone ( f(S))
- Un modèle de connectivité ( architecture) entre les neurones ( chaque neurone est connecté à
tous les autres, par exemple)
- Une règle de propagation pour propager les valeurs d’entrée à travers le réseau vers les
sorties
- Une règle d’activation pour combiner les entrées d’un neurone ( très souvent une somme
pondérée)
- Une règle d’apprentissage
- Un environnement d’opération ( le système d’exploitation, par exemple)

Les réseaux de neurones sont souvent appelés des boîtes noires, car la fonction mathématique qui est
représentée devient trop complexe pour l’analyser et la comprendre directement. Cela et notamment
le cas si le réseau développe des représentations distribuées.

VI.4. Les Réseaux de neurones Artificiels ( RNA)

A l’issue des paragraphes précédents, on voit bien qu’il y a moyen de reproduire sur ordinateur
le comportement d’un neurone biologique en considérant un dispositif à deux états « en marche »
lorsqu’il est excité et « arrête » lorsqu’il n’est pas excité. Un neurone décide d’être excité ou non en
fonction des entrées qu’il reçoit d’autres neurones. Et la probabilité d’excitation d’un neurone
augmente ou diminue suivant les synapses recevant les signaux. Cela peut être reproduit sur un
ordinateur ou un circuit électronique pour former des neurones artificiels.
On peut définir les « Réseaux de Neurones Artificiels » comme des réseaux fortement connectés
de processeurs élémentaires fonctionnant en parallèle. Chaque processeur élémentaire calcule une
sortie unique sur la base des informations qu’il reçoit.
De fait, l'objectif des réseaux de neurones artificiels est d'essayer de récupérer tout ou une partie
des fonctionnalités d'un cerveau humain telles que :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


108 108
• architecture massivement parallèle,
• calcul et mémoire massivement distribués,
• capacité d'apprentissage,
• capacité de généralisation,
• capacité d'adaptation,
• forte tolérance aux pannes,
• faible consommation énergétique.
Les domaines où les architectures neuronales sont particulièrement efficaces sont :
• l'association,
• la classification,
• la discrimination,
• l'estimation
• la reconnaissance des formes
• le traitement du signal
• l’apprentissage par l’exemple
• la mémorisation
• la généralisation
• l’extraction des traits
• la détection
• le diagnostic
• la prévision
• L’approximation des fonctions
• La lecture des chèques
• la gestion des emplois de temps dans les centres d’appels.
VI.5. Les modèles mathématiques des RNA
Les Réseaux de Neurones Artificiels sont des modèles , et à ce titre ils peuvent être décrits par leurs
composants, leurs variables descriptives et les interactions des composants.
VI.5.1. Composants
VI.5.1.1. Structure
La figure suivante montre la structure d’un neurone artificiel. Chaque neurone artificiel est un
processeur élémentaire qui reçoit un nombre variable d’entrées en provenance de neurones amonts.
A chacune de ces entrées est associé un poids w abréviation de weight (poids en anglais)
représentatif de la force de la connexion. Chaque processeur élémentaire est doté d’une sortie
unique, qui se ramifie ensuite pour alimenter un nombre variable de neurones avals. A chaque
connexion est associé un poids.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


109 109







Un neurone artificiel i , dont les entrées sur celui – ci sont de poids ij
w
et les connexions avals
sont de poids ki
w
, aura la structure suivante :






VI.5.1.2. Comportement
On distingue deux phases dans le comportement d’un neurone. La première est habituellement le
calcul de la somme pondérée des entrées (a) selon l’expression suivante :

= ) . (
i i
e w a

A partir de cette valeur, une fonction de transfert calcule la valeur de l’état du neurone. C’est cette
valeur qui sera transmise aux neurones avals. Il existe de nombreuses formes possibles pour la
fonction de transfert. Les plus courantes sont présentées sur la figure suivante. On pourra distinguer
qu’à la différence des neurones biologiques dont l’état est binaire, la plupart des fonctions de
transfert sont continues, offrant une infinité de valeurs possibles comprises dans l’intervalle [0, +1] (
ou [-1, +1]).

Poids
Fonction
Fonction de
transfert
Elément d
Elément de
sortie

i k



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


110 110

Figure : Différents types de fonctions de transfert pour le neurone artificiel

(a) : fonction à seuil ( S, la valeur du seuil)
(b) : fonction linéaire par morceaux
( a) : fonction sigmoïde

Nous constatons que les équations qui décrivent le comportement des neurones artificiels
n’introduisent pas la notion de temps. En effet, et c’est le cas pour la plupart des modèles actuels de
réseaux de neurones, nous avons à faire à des modèles à temps discret, synchrone, dont le
comportement des composants ne varie pas dans le temps.

VI.5.2. Variables descriptives

Ces variables décrivent l’état du système. Dans le cas des réseaux de neurones qui sont des
systèmes non autonomes, un sous – ensemble des variables descriptives est constitué par les
variables d’entrée, variables dont la valeur est déterminé extérieurement au modèle.

VI.5.3. Structure d’interconnexion

Les connexions entre les neurones qui composent le réseau décrivent la topologie du modèle.
Elle peut être quelconque, mais le plus souvent il est possible de distinguer une certaine régularité.
Plusieurs topologies sont possibles :

1. Le réseau multicouche

Les neurones sont arrangés par couche. Il n’y a pas de connexion entre neurones d’une même
couche et les connexions ne se font qu’avec les neurones des couches avales. Habituellement,
chaque neurone d’une couche est connecté à tous les neurones de la couche suivante et celle – ci
seulement. Ceci nous permet d’introduire la notion de sens de parcours de l’information ( de
l’activation) au sein d’un réseau et donc définir les concepts de neurone d’entrée, neurone de sortie.
S
x = f(a)
+1
-1
a
(a)
x = f(a)
+1
-1
a
(b)
x = f(a)
+1
-1
a
(c)
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


111 111
Par extension, on appelle couche d’entrée, l’ensemble des neurones d’entrée, couche de sortie,
l’ensemble des neurones de sortie. Les couches intermédiaires n’ayant aucun contact avec l’extérieur
sont appelées couches cachées.


Figure : réseau multicouche


2. Le réseau à connexions locales

Il s’agit d’une structure multicouche, mais qui à l’image de la rétine, conserve une certaine
topologie. Chaque neurone entretient des relations avec un nombre réduit et localisé de neurones de
la couche avale. Les connexions sont donc moins nombreuses que dans le cas d’un réseau
multicouche classique.



Figure : réseau à connexions locales

Couche d’entrée
Couche cachée
Couche de sortie
Couche d’entrée
Couche cachée
Couche de sortie
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


112 112
3. Le réseau à connexions récurrentes

Les connexions récurrentes ramènent l’information en arrière par rapport au sens de propagation
défini dans un réseau multicouche. Ces connexions sont le plus souvent locales.



Figure : réseau à connexions récurrentes

4. Le réseau à connexion complète

C’est la structure d’interconnexion la plus générale. Ici, chaque neurone est connecté à tous les
neurones du réseau ( et à lui même ).



Figure : réseau à connexions complètes

N.B. Il existe de nombreuses autres topologies possibles que le lecteur peu trouver dans la littérature,
mais qui n’ont pas eu à ce jour la même notoriété des quelques unes que nous avons décrites ici.




Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


113 113
VI.5.4. Fonctionnement

VI.5.4.1. Le Perceptron

Les neurones se comportent d’une manière collective. Ce comportement collectif permet
l’émergence de fonctions d’ordre supérieur par rapport à la fonction élémentaire du neurone.
Avant d’aborder cet aspect collectif de comportement, nous présentons d’abord le Perceptron ( un
seul neurone) en phase d’utilisation.
L’apprentissage ayant été réalisé, les poids sont fixés. Le neurone de la figure suivante, réalise une
simple somme pondérée de ses entrées, compare une valeur de seuil, et fournit une réponse binaire
en sortie. Par exemple, on peut interpréter sa décision comme classe 1 si la valeur de x est +1 et
classe 2 si la valeur de x est – 1.









Les connexions des deux entrées e1 et e2 au neurone sont pondérées par les poids w1 et w2. La
valeur de sortie du neurone est notée x. Elle est obtenue après somme pondérée des entrées (a) et
comparaison à une valeur de seuil S.
Question : Sachant que les poids du Perceptron à deux entrées sont les suivants : 1
w
= 0,5 ;
2
w
= 0,2 et que la valeur de seuil est S = 0.0, déterminer son comportement, sachant que les
comportements du ET logique, OU logique et OU exclusif sont rappelés dans la table suivante :

S
x = f(a)
+1
-1
a
e2
2
w

1
w

x
e1
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


114 114






Quelle set la réponse à la question ?

VI.5.4.2. Réseau multicouche en phase d’association

Il s’agit ici du comportement en phase de reconnaissance d’un réseau de neurone
multicouche lors d’une tâche d’auto – association.
Soit un réseau multicouche composé de 361( 19 x 19), 25 et 361 neurones. Ce réseau a appris
à associer à la lettre « a » présentée en entrée la même lettre en sortie. Présentons au réseau cette
lettre avec quelques erreurs : un certain nombre de pixels ont été inversé (ils sont passés de blanc à
noir ou inversement ). L’image est composée de 19 x 19 pixels, chacun de ces pixels est associé à un
neurone de la couche d’entrée. Chacun des 25 neurones de la couche cachée reçoit 361 connexions
(une pour chaque neurone d’entrée) et envoie sa sortie à chacun des neurones de la couche de sortie (
au nombre de 361). Dans notre exemple illustrant le comportement en phase de reconnaissance d’un
réseau de neurone multicouche lors d’une tâche d’auto - association, la couche cachée se compose de
25 neurones, mais ce nombre, à la différence des couches d’entrée et de sortie, n’est pas impératif. Il
y a donc 2 – (361.25) = 18050. Les neurones sont binaires. La valeur d’activation de chaque
neurone est indiquée par la hauteur de la colonne. Les neurones sont rangés par couche, tous les
neurones d’une couche sont connectés à tous les neurones de la couche suivante (avale).
La première étape code l’image d’entrée sur le réseau. Il s’agit pour chaque neurone de la
couche d’entrée de fixer la valeur de son état selon la couleur du pixel correspondant. Si les neurones
qui composent le réseau sont binaires, on choisit arbitrairement de coder un pixel noir par un niveau
d’activation du neurone égal à 1 ; si le pixel est blanc alors le niveau d’activation du neurone
correspondant est égal à 0.
La seconde étape est celle du calcul de la réponse du réseau qui se décompose en autant de
sous - étapes qu’il y a de couches dans le réseau. Ainsi, chaque neurone de la couche d’entrée
envoie sa valeur aux neurones de la couche cachée. Chacun des neurones réalise la somme pondérée
de ses entrées et seuil. Ce processus est effectué en parallèle et indépendamment pour tous les
neurones de la couchée. Lorsque le vecteur d’activation de la couche a été obtenu. Le même
processus est répété avec les neurones de la couche de sortie. On considère ceux – ci comme 361
Perceptrons indépendants à 25 entrées.
La dernière étape est l’interprétation du vecteur d’activation de la couche de sortie par
l’expérimentation. Dans notre cas, on réalise l’opération inverse du codage initial, à savoir associer
ET logique
e1 e2 x
1 1 1
1 -1 -1
-1 1 -1
-1 -1 -1

OU logique
e1 e2 x
1 1 1
1 -1 1
-1 1 1
-1 -1 -1

OU exclusif
e1 e2 x
1 1 1
1 -1 -1
-1 1 -1
-1 -1 1

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


115 115
un pixel noir à chacun des neurones de la couche de sortie dont la valeur d’activation est égal à 1, un
pixel blanc dans le cas contraire.

VI.5.4.3. Réseau à connexion complète

Il s’agit ici de l’évolution du vecteur d’activation d’un réseau à connexion complète sur une
période de trois cycles. La matrice des poids W est complète ( 361 x 361 = 130321 poids). Entre
deux « couches », c’est la même matrice de poids.
Ici, chaque vecteur d’activation représente la réponse du réseau à une date particulière. Pour faciliter
la représentation, nous avons déplié dans l’espace les évolutions temporelles du réseau à connexion
complète (trois cycles). D’un instant au suivant, chaque neurone recalcule indépendamment et en
parallèle sont état. Rappelons que chacun des neurones est connecté à tous les autres, ce qui implique
pour chacun d’entre eux de recevoir 361 connexions et d’envoyer sa sortie sur ses 361 voisins. La
principale différence entre les évolutions temporelles d’un réseau à connexion complète et le calcul
de la sortie dans un réseau multicouche est que pour le premier les poids des connexions entre deux
évolutions temporelles sont identiques, alors que pour le second, d’une couche à l’autre les poids des
connexions sont différentes.

VI.5.4.4. Réseau à inhibition latérale récurrente

Ici, les poids sont fixés à priori lors de la construction du réseau, il n’y a pas de phase
d’apprentissage. La structure du réseau est représentée sur la figure ci – après. Il y a une seule
couche de neurones. Les connexions sont localisées, chaque pixel d’entrée est en relation
(excitatrice) avec un nombre réduit de neurones. De plus, on remarque la présence de connexions
récurrentes inhibitrices localisées autour de chaque
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


116 116
neurone.

a) Architecture : chaque pixel d’entrée est connecté à un ensemble de neurones par des
connexions excitatrices. Sur le réseau, chaque neurone réalise des connexions locales
inhibitrices.
b) Comportement : seuls les pixels noirs de la forme d’entrée envoient une information
sur le réseau. Pour chaque neurone, il y a compétition entre l’excitation en
provenance de l’entrée et l’inhibition en provenance de ses voisins. On observe alors
le développement au cours du temps de sous – groupes d’activité significatifs (angles,
intersections, extrémités, etc.)

En utilisation, une image est présentée en entrée. Elle n’est pas codée comme précédemment : un
groupe de neurones est associé à chaque pixel dont la couleur détermine le niveau d’activation. De
plus, à la différence d’un réseau multicouche classique, la réponse n’est obtenue qu’après
stabilisation de l’état de sortie. Le régime transitoire est du au retour d’information depuis les
neurones voisins. De fait, cette boucle doit être réalisée un certain nombre de fois avant que l’on
obtienne une valeur fixe en sortie.
En conclusion, ces quelques exemples traités de comportements, permettent de comprendre que la
disparition d’un ou même de plusieurs neurones ( ou de connexions) ne provoque pas une rupture
brutale du traitement. En fait, la dégradation du comportement est fonction de la quantité d’éléments
détruits. Cette propriété est désignée sous le terme de résistance aux pannes.
Par rapport aux neurones biologiques, les neurones artificiels ont un nombre réduit de connexions(
de 10.000 à quelques centaines), un nombre réduit de neurones ( quelques centaines à comparer aux
mille milliards du cerveau) et une diminution de la complexité de la topologie.
La plupart des modèles que nous verrons, sont des modèles synchrones à temps discrets et
combinatoires, alors que le monde biologique est asynchrone et continu.
+ +
+
Pixel d’entrée
-
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


117 117

VI.6. Modes de fonctionnement des RNA

Un RNA est caractérisé par :
- une architecture (topologie) : le nombre de neurones, le schéma d’interconnexion déterminé
par le programmeur.
- La fonction de transfert : poids, fonctions de transition générées automatiquement par
apprentissage.
Un réseau de neurones travaille selon deux modes :
- mode d’apprentissage : c’est à dire le réseau de neurones s’adapte en utilisant des exemples
- mode de reconnaissance : le réseau de neurones traite des données jamais vues pendant
l’apprentissage.


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


118 118
VI.6.1. L’APPRENTISAGE

L’apprentissage est vraisemblablement la propriété la plus intéressante des réseaux
neuronaux. Elle ne concerne cependant pas tous les modèles, mais les plus utilisés.

VI.6.1.1. Définition

L’apprentissage est une phase du développement d’un réseau de neurones durant laquelle le
comportement du réseau est modifié jusqu’à l’obtention du comportement désiré. L’apprentissage
neuronal fait appel à des exemples de comportement.

VI.6.1.2. Remarques

Dans le cas des réseaux de neurones artificiels, on ajoute souvent à la description du modèle,
l’algorithme d’apprentissage.
Dans la majorité des algorithmes actuels, les variables modifiées pendant l’apprentissage
sont les poids des connexions.
L’apprentissage est la modification des poids du réseau dans l’optique d’accorder la réponse
du réseau aux exemples et à l’expérience. Il est souvent impossible de décider à priori des valeurs
des poids des connexions d’un réseau pour une application donnée. A l’issu de l’apprentissage, les
poids sont fixés : c’est alors la phase d’utilisation. Certains modèles de réseaux sont improprement
dénommés à apprentissage permanent. Dans ce cas, l’apprentissage ne s’arrête jamais, cependant on
peut toujours distinguer une phase d’apprentissage ( de remise à jour du comportement) et une phase
d’utilisation. Cette technique permet de conserver au réseau un comportement adapté malgré les
fluctuations dans les données d’entrées.

VI.6.1.3. Classes d’algorithmes d’apprentissage

Dans un apprentissage, le réseau de neurones utilise des exemples pour s’adapter au
problème. Il peut modifier :
- Les poids de ses connexions ;
- Son architecture c’est – à – dire créer ou éliminer des neurones, des connexions.
Modifier les fonctions de transitions des neurones
Il existe deux grandes classes d’algorithmes d’apprentissage : L’apprentissage supervisé et
l’apprentissage non supervisé.

VI.6.1.3.1. Apprentissage non supervisé

On considère des exemples
1
X
,
2
X
,…,
n
X
; une architecture
Α
et 0
W
des poids initiaux.
Le problème est de trouver des poids W tels que :
- les exemples soient correctement regroupés ;
- la généralisation soit correcte : les nouveaux exemples sont assignés au cluster correctement.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


119 119
Exemple de l’apprentissage non supervisé : La loi de Hebb

La loi de Hebb ( 1949) s’applique aux connexions entre neurones, comme le représente la figure
suivante :



i est le neurone amont , j le neurone aval et ij
w
le poids de la connexion.
La loi de Hebb s’exprime de la manière suivante : « Si 2 cellules sont activées en même temps alors
la force de la connexion augmente ».
La modification de poids dépend de la co activation des neurones pré synaptique et post synaptique,
ainsi que le montre la table suivante. i
x
et
j
x
étant respectivement les valeurs d’activation des
neurones i et j, et
ij
w ∂
( dérivée partielle du poids ) correspondant à la modification de poids réalisée.

i
x

j
x

ij
w ∂

0 0 0
0 1 0
1 0 0
1 1 +

Table : La loi de Hebb
La loi de Hebb peut être modélisée par les équations suivantes, en supposant que ij
w
(t+1), désigne
le nouveau poids et ij
w
(t), l’ancien poids :
ij
w
(t+1) = ij
w
(t) +
ij
w ∂
(t)
ij
w ∂
(t) = i
x
.
j
x
(la co activité est modélisée comme le produit des deux valeurs d’activation)

L’algorithme d’apprentissage modifie de façon itérative (petit à petit) les poids pour adapter la
réponse obtenue à la réponse désirée. Il s’agit en fait de modifier les poids lorsqu’il y a erreur
seulement.

Etape 1
Initialisation des poids et du seuil S à des valeurs (petites) choisies au hasard.

Etape 2
Présentation d’une entrée 1
E
= ( 1
e
,…, n
e
) de la base d’apprentissage.
ij
w
i
j
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


120 120

Etape 3
Calcul de la sortie obtenue x pour cette entrée :

( . )
i i
a w e S = −

( la valeur de seuil est introduite ici dans le calcul de la somme pondérée).
) (a signe x =
( Si a > 0 alors x = +1 sinon a ≤ 0 alors x = -1)
Etape 4
Si la sortie x est différente de la sortie désirée 1
d
pour cet exemple d’entrée 1
E
alors modification
des poids ( µ est une constante positive, qui spécifie le pas de modification des poids) :

ij
w
(t+1) = ij
w
(t) + µ( i
x
.
j
x
)
Etape 5
Tant que tous les exemples de la base d’apprentissage ne sont pas traités correctement ( i.e.
modification des poids ), retour à l’étape 2


Exemple d’application de l’algorithme d’apprentissage de Hebb :

Nous choisissons pour les neurones, un comportement binaire. Les entrées 1
e
et 2
e
sont considérées
comme des neurones.












Nous obtenons ainsi trois neurones.
Nous considérons comme base d’apprentissage, les données de la table suivante :
e2
2
w

1
w

x
e1
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


121 121


1
e
2
e

x
1 1 1
1
E

1 -1 1
2
E

-1 1 -1
3
E

-1 -1 -1
4
E



Etape 1
µ = +1, les poids et le seuil S sont nuls.

Etape 2
Nous considérons l’entrée 1
E
= (1,1) de la base d’apprentissage : exemple 1 correspondant à la
première ligne.

Etape 3
Calcul de la sortie obtenue x pour cette entrée :

a =
S e w e w − +
2 2 1 1
. .
= 0.0.1+0.0.1-0.0 = 0
D’où a ≤ 0. Donc x = -1.

Etape 4
la sortie x = -1 est différente de la sortie désirée 1
d
= 1 pour cet exemple d’entrée 1
E
alors il faut
modifier les poids en appliquant

1
w
= 1
w
+ 1
e
.x = 0.0 + 1.1 = 1
2
w
= 2
w
+ 2
e
.x = 0.0 + 1.1 = 1


Etape 5
On retourne à l’étape 2

Etape 2
On passe à l’exemple 2, l’entrée 2
E
= (1,-1)
Etape 3
Calcul de la sortie obtenue x pour cette entrée :

a =
S e w e w − +
2 2 1 1
. .
= 1.1+1.-1- 0.0 = 0
D’où a ≤ 0. Donc x = -1.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


122 122
Etape 4
la sortie x = -1 est différente de la sortie désirée 1
d
= 1 pour cet exemple d’entrée 2
E
alors il faut
modifier les poids en appliquant

1
w
= 1
w
+ 1
e
.x = 1 + 1.1 = 2
2
w
= 2
w
+ 2
e
.x = 1 + 1.-1 = 0

Etape 5
On retourne à l’étape 2
…/ L’entrée ou l’entrée 3
E
(3
ème
ligne) (1,-1) est correctement traité : a = -2 et x = -1 ( la sortie est
bonne).
On passe directement, sans modification des poids à l’entrée 4
E
(4
ème
ligne) (-1,-1) . Celui – ci est
aussi correctement traité. On revient alors au début de la bade d’apprentissage : l’entrée
1
E
(1,1) . Il
est correctement traité, ainsi que le second 2
E
(1,-1) . L’algorithme d’apprentissage est alors
terminé : toute la base d’apprentissage a été passée en revue sans modification des poids.

Exercice

Soit le réseau composé de 4 neurones d’entrée et d’un neurone de sortie ( 1
w
= 2
w
= 3
w
= 4
w
= S = 0)
et la base d’apprentissage :

1
e
2
e
3
e
4
e

x
1 -1 1 -1 1
1 1 1 1 1
1 1 -1 -1 1
-1 -1 1 -1 1

On demande de recherche les valeurs des poids qui résolvent le problème avec µ = 1.

Remarque

Il existe une possibilité de calculer les valeurs des connexions à partir des exemples, sans utiliser
l’algorithme itératif. Si l’on initialise les poids à zéro et que l’on présente les exemples de la base
d’apprentissage, la valeur des poids à l’issue de l’apprentissage est donnée par :

ij
w
= ∑ jl il
x x .

0ù l est l’indice de l’exemple dans la base d’apprentissage.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


123 123

VI.6.1.3.2. Apprentissage supervisé

On considère des exemples (
1
X
,
1
Y
),(
2
X
,
2
Y
), …, (
n
X
,
n
Y
) ; une architecture
Α
et 0
W
des poids
initiaux. Le problème est de trouver des poids W tel que

k
Y
=
) (
,
k
W A
x F

On utilise des réseaux multicouches, car le résultat peut ne pas correspondre à
k
Y
.
Pour rappel, un réseau multicouche comprend des couches externes ( entrée et sortie), des
couches internes ou cachées ( pour les traitements intermédiaires).
Le problème est donc celui d’associer
k
X
à
k
Y
, k = 1, …, n.
Les entrées sont présentées sur la première couche et sont propagées selon la loi

) (
i i
A f X =
avec

=
j ij i
X W A
et
k
S est la sortie calculée sur la dernière couche.
La rétro - propagation du gradient permet de minimiser l’erreur entre la sortie désirée (
k
Y
) et la
sortie calculée (
k
S ). Cette erreur peur être calculée de la manière suivante :

e( W ) =
2
1
1

=

m
k
k k
Y S
m

=
2
1
1

=

m
k
k
s
k
s
Y S
m
avec s ∈ couche de sortie.

Exemple d’apprentissage supervisé : La règle du Perceptron

La règle de Hebb présentée ci – dessus ne s’applique pas dans certains cas, bien qu’une solution
existe ( cf exercice précédent).
Un autre algorithme d’apprentissage a donc été proposé , qui tient compte de l’erreur observée en
sortie.
L’algorithme du Perceptron est semblable à celui utilisé pour la loi de Hebb. Les différences se
situe au niveau de la modification des poids.

Algorithme du Perceptron


Etape 1
Initialisation des poids et du seuil S à des valeurs ( petites) choisis au hasard.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


124 124
Etape 2
Présentation d’une entrée 1
E
= ( 1
e
,…, n
e
) de de la base d’apprentissage.

Etape 3
Calcul de la sortie obtenue x pour cette entrée :

( )
i i
a we S = −

( la valeur de seuil est introduite ici dans le calcul de la somme pondérée).
) (a signe x =
( Si a > 0 alors x = +1 sinon a ≤ 0 alors x = -1)
Etape 4
Si la sortie x du Perceptron est différente de la sortie désirée 1
d
pour cet exemple d’entrée 1
E
alors
modification des poids ( µ est une constante positive, qui spécifie le pas de modification des poids) :

i
w
(t+1) =
i
w
(t) + µ(( 1
d
- x ) i
e
)
Rappel : 1
d
= +1 si E est de la classe 1, 1
d
= -1 si E est de la classe 2 et ( 1
d
- x) est une estimation
de l’erreur.

Etape 5
Tant que tous les exemples de la base d’apprentissage ne sont pas traités correctement ( i.e.
modification des poids ), retour à l’étape 2

Exemple de fonctionnement de l’algorithme du Perceptron

On prend comme base d’apprentissage

1
e
2
e

d
1 1 1
1
E

-1 1 -1
2
E

-1 -1 -1
3
E

1 -1 -1
4
E


Etape 1
Conditions initiales : 1
w
= -0,2, 2
w
= +0,1, µ = +1, S = 0. (µ = +0,1)

Etape 2
Nous considérons l’entrée 1
E
= (1,1) de la base d’apprentissage : exemple 1 correspondant à la
première ligne.
a(1) = -0.2 + 0.1.1 = -0.1.

Etape 3
Calcul de la sortie obtenue x pour cette entrée :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


125 125
x(1) = -1 ( la sortie désirée d(1) = +1, d’où modification des poids)

Etape 4
1
w
= -0,2 + 0,1.( 1 + 1 ). (+1) = 0
2
w
= +0,1 + 0,1.( 1 + 1 ). (+1) = +0,3

Etape 5
On retourne à l’étape 2

Etape 2
Nous considérons l’entrée 2
E
= (-1,1) de la base d’apprentissage : exemple 2 correspondant à la
deuxième ligne.
a(2) = +0,3.1 = = +0.3.

Etape 3
Calcul de la sortie obtenue x pour cette entrée :
x(2) = +1 ( la sortie désirée d(2) = -1, d’où modification des poids) FAUX

Etape 4
1
w
= 0 + 0,1.( -1 - 1 ). (-1) = +0,2
2
w
= +0,3 + 0,1.( -1 - 1 ). (+1) = +0,1
a(3) = -0.2- 0,1 -0 = = - 0.3 . OK E3 (-1,-1)
a(4) = +0.2- 0,1 -0 = = 0.1. X = 1, KO E4 (1, -1)

1
w
= 0,2 + 0,1.( -1 - 1 ). (1) = 0
2
w
= +0,1 + 0,1.( -1 - 1 ). (-1) = +0,3

a(1) = 0+ 0,3.1 = = + 0.3. OK
a(2) = 0+ (0,3. -1)-0 = = - 0.3. OK
a(3) = 0+ (0,3. -1)-0 = = - 0.3. OK
a(4) = 0+ (0,3. -1)-0 = = - 0.3. OK

Etape 5
Tous les exemples de la base ont été correctement traits, l’apprentissage est terminé.

Le Perceptron réalise une partition de son espace d’entrée en 2 classes ( 1 et 2 ) selon la valeur de sa
sortie ( +1 ou -1). La séparation de ces deux zones est effectuée par un hyperplan (voir le schéma ).
L’équation de la droite séparatrice est :
1
w
1
e
+ 2
w
2
e
= 0

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


126 126

La figure ci – dessus représente la partition de l’espace d’entrée de dimension 2 réalisée par un
Perceptron se comportant comme un ET booléen. Les 4 exemples de la base d’apprentissage sont les
4 arêtes du carré. Les paramètres du Perceptron sont : 1
w
= 0, 2, 2
w
= 0,1 et S = -0,2.

Remarque

Si les exemples d’apprentissage étaient différents, par exemple représnant le OU, alors c’est le
comportement du OU qui aurait été appris avec le même algorithme d’apprentissage. D’autre part, il
est possible de considérer que le seuil S est le poids d’une connexion dont le neurone amont est
toujours dans l’état -1. La valeur de seuil se modifie alors en même temps que les autres poids. La
convergence de l’algorithme vers la solution est plus rapide ( si cette solution existe). On appelle
itération d’apprentissage, le passage de tous les exemples de la base d’apprentissage une fois dans
l’algorithme.


Exercices

1) Reprendre la question précédente (apprentissage non supervisée) et la résoudre en
appliquant l’apprentissage du Perceptron. On ne modifiera pas le seuil S dans cet
exemple précis.
2) Simuler la fonction ET avec des poids fixes et sans apprentissage. Les paramètres du
Perceptron sont les suivants : 1
w
= 0, 2, 2
w
= 0,1 et S = -0,2. Les exemples de
comportement à vérifier ( ET ) sont rappelés sur la table suivante :

e
2
(-1,+1) (+1,+1)
(-1,-1)
(+1,-1)
Classe 2
Classe 1
e
1
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


127 127


1
e
2
e

d
1 1 1
1
E

-1 1 -1
2
E

-1 -1 -1
3
E

1 -1 -1
4
E

3)
Pour la même base d’apprentissage, réaliser l’apprentissage ( ne pas oublier la
modification du seuil). Le choix des conditions initiales est confié au hasard. Dans
une première étape, il est conseillé de refaire pas à pas l’exemple de ce support :
1
w
= -0, 2, 2
w
= +0,1 et S = 0, µ = +0,1 ( conditions initiales). Puis faites varier µ.
4) Essayer d’apprendre le XOR.


1
e
2
e

d
1 1 1
1
E

-1 1 -1
2
E

-1 -1 1
3
E

1 -1 -1
4
E

5) Sachant que le XOR peut s’écrire comme :
(( 1
e
ET (NON( 2
e
))) OU (NON( 1
e
) ET 2
e
)) proposez une solution pour réaliser le
XOR avec 3 personnes. (NON(1) = - 1 et inversement)

1
e
2
e

d
1 1 1
1
E

-1 1 -1
2
E

-1 -1 -1
3
E

1 -1 -1
4
E


Table du OU


L’apprentissage de chacun des Perceptrons est réalisé séparément des autres. Qu’en est
déduisez – vous quant aux possibilités d’un Perceptron ? d’une association de
Perceptrons ?

6) Réaliser la fonction ET et OU avec 2 neurones. Dans ce cas, le réseau se compose de
2 entrées, 2 neurones et 4 poids. L’apprentissage de chacune des fonctions n’est pas
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


128 128
séparé. Il faut donc construire une base d’apprentissage spécifique de ce problème
( qui ne comprendra pas plus de 4 exemples).
7) Reconnaissance de caractère avec un Perceptron. Un caractère est codé sur 4 x 7 = 28
pixels. Il y a donc 28 entrées sur le Percetron. Tester la généralisation et la résistance
au bruit en proposant à l’issu de l’apprentissage des caractères « abîmés ».
8) Reconnaissance de caractères : On associe à priori un caractère par neurone. Il faut
donc autant de Perceptrons que de caractères à reconnaître. Tester la généralisation.
Etudier les erreurs sur quels caractères apparaissent – elles, comment peut – on y
remédier ?

VI.7. Les mémoires associatives

Les mémoires associatives ont été proposés par plusieurs auteurs dès 1977 dont T. Kohonen.
Dans mémoire associative , le terme « mémoire » fait référence à la fonction de stockage de
l’information et le terme « associative » au mode d’adressage. L’expression « mémoire
adressable par son contenu » est aussi souvent employée. L’information mémorisée ne peut être
obtenue à une autre adresse précise, le seul moyen d’accès est de fournir une information. Dans le
cas des mémoires auto – associatives, il faut fournir tout ou partie de l’information mémorisée. Ces
mémoires sont donc principalement utilisées pour la reconstruction des données : l’opérateur fourni
une information partielle que le système complète. Des expérimentations dans ce sens ont été faite
avec l’annuaire électronique où l’utilisateur tape le maximum d’information relatives à sa demande,
que le système complète et corrige (voir la exemple ci – dessous). Les mémoires hétéro –
associatives se différentient des précédentes en rendant une information différente. Par exemple, si la
clef d’entrée est une image de visage, le système répond par le nom de la personne correspondante.

Exemple d’interprétation ( et de correction ) de requêtes d’un utilisateur de l’annuaire électronique
par une mémoire auto – associative ( il peut subsister des erreurs).

Appris : Jean Dupond, 22 rue du 29 Février, 99001 Asnières, 66 38 70 29
Clef : Jean Dupond, 22 rues du 29 Septembre, Asnières
Résultat : Jean Dupond, 22 rue du 29 Février, 92501, Asnières, 66 38 70 29

VI.7.1. Structure

La structure neuronale d’une mémoire associative est similaire à celle d’une carte auto –
organisatrice sans la notion de voisinage ( cfr les paragraphes suivants), ou à celle d’un ensemble de
Perceptrons tous alimentés par les mêmes entrées. La figure suivante montre cette architecture où
chaque entrée est connectée par des poids modifiables à toutes les sorties. La dimension de la couche
d’entrée est de n neurones, celle de sortie de p. Il y a donc n.p poids dans ce réseau.


Structure d’une mémoire associative

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


129 129






VI.7.2. Fonctionnement

Le principe de fonctionnement d’une mémoire associative se résume de la manière suivante :
Soit ( 1
E
, 2
E
, …, l
E
, …) un ensemble de vecteurs de R
n
. A chaque vecteur l
E
appelé
« prototype » de l’espace d’entrée est associé un vecteur de sortie l
S
. La relation d’association entre
l
E
et l
S
est linéaire. Elle est donnée par l’équation :

l
S
= W. l
E

Où W est la matrice des poids de dimension (p.n). C’est une matrice rectangulaire de p lignes et n
colonnes.
L’objectif est de faire réaliser à ce réseau des associations entre les vecteurs d’entrées et les
vecteurs de sortie désirés. Ceci nécessite une étape d’apprentissage.

VI.7.3. Apprentissage

L’apprentissage utilisé est de type supervisé. La base d’apprentissage est composée de couple
de vecteurs d’entrées et de vecteurs de sortie associés. L’algorithme d’apprentissage initial fait appel
à la règle de Hebb. Une entrée 1
E
est appliquée sut les neurones d’entrée du réseau et l’on force
dans le même temps les valeurs des neurones de sortie à l
S
. Les poids de chaque connexion est
alors modifié selon la coactivité du neurone afférent ( entrée ) et du neurone efférent (sortie). Cet
algorithme est itéré sur tous les exemples de la base d’apprentissage. A la fin du processus
d’apprentissage, si la matrice W est initialement nulle ( W = 0 ), on obtient :

w
pn
… w
1
e
1
e
n
E
W
S
….
x
1
x
p

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


130 130
W =

l
T
l l
E S .


T
l
E
est la transposée du vecteur l
E
( qui transforme un vecteur ligne en un vecteur colonne et
réciproquement )
Cette expression est en fait un raccourci mathématique au processus d’apprentissage itératif mettant
en jeu une règle locale de modification des poids.

VI.8. La carte auto – organisatrice

Ce modèle de carte auto – organisatrice appartient à la classe des réseaux à compétition. Les
neurones de la couche de sortie entrent en compétition, de telle façon qu’habituellement, un seul
neurone de sortie est activé pour une entrée donnée. Cette compétition entre les neurones est réalisé
grâce à des connexions latérales inhibitrices. Nous présentons deux modèles parmi les plus
intéressants : la carte auto – organisatrice et le réseau ART. Il faut noter que tous ces deux réseaux
sont des modélisations de processus biologiques et ont été récupérés par les ingénieurs
connexionnistes. Comme applications des cartes auto – organisatrices, nous pouvons citer : les cartes
phonétiques, le diagnostic des pannes, la compression d’images, la robotique, etc.
Ces cartes s’organisent par rapport aux exemples d’entrée présentés en respectant les
contraintes topologiques de l’espace d’entrée avec l’espace du réseau. Les zones voisines de l’espace
d’entrée sont voisines sur la carte auto – organisatrice ( voir la figure suivante) .


VI.9. Un réseau à architecture évolutive ( ART)

ART ( Adaptive Resonance Theoty) est un modèle de réseau de neurones à architecture
évolutive développé en 1987 par Carpenter et Grossberg. Dans la plupart des réseaux de neurones ,
deux étapes sont considérées :
- La phase d’apprentissage : les poids des connexions sont modifiés selon une règle d’apprentissage
- La phase d’exécution où les poids ne sont plus modifiés.
Avec le réseau ART, ces deux étapes sont réalisées simultanément. En phase de test, le
réseau s’adapte à des entrées inconnues en construisant de nouvelles classes ( ajout de neurones) tout
en dégradant au minimum les informations déjà mémorisées. II existe plusieurs versions de réseaux
( ART1, ART2,ART3). Le réseau ART1 est formé d’une couche d’entrée qui est aussi la couche de
sortie et d’une couche cachée. Le terme couche cachée est emprunté au réseau multicouche, il
souligne le fait que cette couche n’est pas directement observable par l’utilisateur à la différence de
l’entrée ou de la sortie.
Ce genre de réseau est utilisé dans la reconnaissance de la parole, la reconnaissance des formes
visuelles, la détection d’image radar , la classification, etc.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


131 131

VI.10. Apprentissage par pénalité / récompense

L’algorithme d’apprentissage par pénalité ou renforcement est de type qualitatif par
opposition aux apprentissages dits supervisé ou non supervisé. Il n’est pas nécessaire dans ce type
d’apprentissage de disposer pour les exemples d’apprentissage des sorties désirées, seulement d’une
appréciation globale du comportement du réseau pour chacun des exemples traités. Cet algorithme
s’applique à toutes les structures de réseaux. La seule condition est de disposer de neurones de sortie
stochastiques ( binaires). La réponse du réseau de neurones est ainsi fonction des entrées et, aussi,
des neurones de sortie. On introduit donc à ce niveau une part d’aléatoire dans le comportement du
système. Si la réponse fournie par le système est considérée comme bonne, l’algorithme tend à
favoriser l’apparition de ce comportement en réduisant l’aléatoire. Dans le cas ou la réponse du
système globale est considérée comme mauvaise, on cherche à éviter l’apparition ultérieure de ce
comportement. Ce processus est itéré jusqu’à l’obtention du comportement désiré pour l’ensemble
du système.

VI.11. Les réseaux multicouches

Apparus en 1985, les réseaux multicouches sont aujourd’hui les modèles les plus employés.
Ils comprennent plusieurs couches de traitement qui leurs permettent de réaliser des associations non
linéaires entre l’entrée et la sortie. Ils sont capables de résoudre le cas du « ou exclusif » ( voir
Perceptron).

d) Structure du réseau

Les neurones sont continus. La fonction de transfert est une sigmoïde qui peut être définie,
par exemple, par l’équation :

) 1 /( ) 1 ( ) ( + − =
i i
a a
i
e e a f
θ θ
Où θ spécifie la pente
L’architecture d’un réseau multicouche est son fonctionnement en phase d’utilisation ont été
présenté au paragraphe I.4.8.5.3.

e) Apprentissage

L’apprentissage est supervisée : On associe une configuration d’entrée à une configuration de
sortie. L’algorithme de la rétropropagation est un algorithme de gradient itératif conçu pour
minimiser un critère quadratique ( à la puissance 2) d’erreur entre la sortie obtenue d’un réseau
multicouche et la sortie désirée. Cette minimisation est réalisé par une configuration des poids
adéquate. L’erreur(e) est la différence entre la valeur désirée (d) pour le neurone de sortie et sa
valeur calculée par propagation ( x ). Ce signal d’erreur permet de définir une fonction de coût :

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


132 132
C( W ) = M [C
l
(W)] =









) (W e M
lj avec lj
e
= ( lj
d
- lj
x
)
Où j indique un numéro d’indice pour les neurones de sortie et l indique un exemple
d’apprentissage. M est l’opérateur de moyennage, c’est une estimation de la moyenne temporelle
dans le cas stochastique. On réalise donc la moyenne des erreurs obtenues pour chacun des exemples
de la base d’apprentissage.
Cet algorithme nécessite une fonction continue, non – linéaire et différentiable comme
fonction de transfert du neurone.

1) Initialisation des poids à des valeurs aléatoires de faible grandeur
2) Sélection d’un exemple d’apprentissage ( E, d )
l
dans la base d’apprentissage
3) Présentation de la forme d’entrée ( E ) sur la couche d’entrée du réseau ;
4) Calcul par propagation de la sortie obtenue ( o ) ;
5) Si erreur sortie Alors pour tout les neurones i ( depuis la sortie jusqu’à l’entrée)
Si i est un neurone de sortie alors
) ).( ( ' 2
i i i i
x d a f y − =

Si i est un neurone caché (ou d’entrée) alors
k
k
ki i i
y w a f y − =

) ( '

( k : neurones compris entre la couche actuelle et la couche de sortie )
6) Application de la procédure de gradient µ est un gain fixé par l’utilisateur
) 1 ( + t w
ij
=
j i ij
x y t w . . ) ( µ +
;
7) Tant que l’erreur est trop importante, retour à l’étape 2 (exemple suivant).

L’algorithme de la rétropropagation de gradient, bien que très simple à implanter, nécessite
un certain savoir – faire pour une utilisation efficace. En effet, la convergence de l’algorithme n’est
pas prouvée et de multiples variables sont à ajuster précisément en fonction du problème traité.
Parmi ces variables à fixer, citons par exemple : les paramètres apparaissants dans les différentes
équations ( gain de la procédure de gradient (µ), pente de la fonction sigmoïde (θ), …), la sélection
des exemples pour l’apprentissage et le test, l’ordre de présentation et les distribution relatives des
exemples dans la base d’apprentissage, le choix du codage des informations en entrée et en sortie, la
structure du réseau ( présence éventuelle de connexions directes de la couche d’entrée sur la couche
de sortie pour traiter à ce niveau la partie linéaire du problème, limitation pratique du nombre de
couches, taille de la couche cachée), la configuration initiale des poids, le nombre d’itérations
d’apprentissage, …



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


133 133
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


134 134
CHAPITRE VII. L’INTELLIGENCE ARTIFICIELLE DISTRIBUEE (IAD)


VII.0. Introduction

L’Intelligence Artificielle classique dont il a été question dans les paragraphes précédents
s’attache à la construction des programmes informatiques qui sont capables d’exécuter des tâches
complexes en s’appuyant sur une centralisation et une concentration de l’intelligence au sein du
système unique. Il en résulte ainsi un certain nombre de difficultés dues pour la plupart à la nécessité
d’intégrer au sein d’une même base de connaissance : l’expertise, les compétences et les
connaissances d’individus différents qui dans la réalité communiquent et collaborent à la réalisation
d’un but commun. C’est ainsi qu’on pouvait se poser des questions telle que : ‘‘Comment réunir au
sein d’un seul système intelligent toutes les connaissances et les expertises requises pour la
réalisation des certaines tâches complexes habituellement effectuées par les hommes ?’’. Telle est
l’une des préoccupations de l’intelligence artificielle classique dès qu’elle veut modéliser des
processus tel qu’un processus de production, une mission spéciale, un pilotage d’avion, etc. Cela
suppose le plus souvent l’assimilation des savoirs faire et des compétences souvent trop nombres et
disparates faisant l’objet d’une programmation centralisée.
C’est ainsi que l’Intelligence Artificielle Distribuée est née au début des années 1970, de la
volonté de trouver des solutions à ces difficultés.
A la différence de l'Intelligence Artificielle classique (IA) qui modélise le comportement
intelligent d'un seul agent, l'Intelligence Artificielle Distribuée (IAD) s'intéresse à des
comportements intelligents qui sont le produit de l'activité coopérative de plusieurs agents.
Le passage du comportement individuel aux comportements collectifs est considéré non
seulement comme une extension mais aussi comme un enrichissement de l'IA, d'où émergent de
nouvelles propriétés et de nouveaux comportements.


Pourquoi distribuer l'intelligence ?
• Les problèmes sont physiquement distribués : les problèmes complexes le sont souvent
(réseaux, chaînes de montage, gestion de trafic...)
• Les problèmes sont fonctionnellement distribués
• Les réseaux imposent une vision distribuée
• La complexité impose une vision locale
• Les systèmes doivent pouvoir s'adapter à des modifications de structures ou d'environnement
• Le génie logiciel va dans le sens d'une conception en termes d'unités autonomes en
interactions : langages objets




Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


135 135

Exemple

Supposons que nous voulons concevoir un robot capable de suivre un mur.
En Intelligence Artificielle classique, on cherche à décomposer le problème en différents sous
fonctions :
- détecter le mur,
- Aller vers le mur,
- S’arrêter à une certaine distance du mur,
- Tourner
- Puis se déplacer en gérant convenablement la distance avec le mur, etc.
En IAD, par contre, l’approche réactive consiste à envisager deux types de comportements
matérialisés par deux mécanismes simples : le premier fera que le robot est attiré par les obstacles, et
le second qu’il est repoussé par les obstacles. On constate que les deux comportements c’est à dire
les agents, interagissent et la fonctionnalité « suivre le mur « va émerger. On a affaire à des agents
de faible granularité. Ces derniers s’apparentent en fait à des agents du type automate simple, voire
même à des neurones formels.
Toutefois, c’est l’école cognitive qui, à ce jour, donne lieu aux applications les plus avancées.
Les connaissances sont éclatées en plusieurs entités. Cela oblige aux concepteurs de concevoir des
bases de connaissances qui ne sont pas uniques, mais qui sont reliées aux réalités du monde c’est à
dire à ce que l’agent peut savoir des autres d’une part et à ce qu’il peut connaître de leur
environnement d’autre part. La prise en compte de cette extériorité, composée à la fois des
conséquences des actes de chaque agent et des communications inter – agents, nécessite des
développements de théories dans le domaine des protocoles de communications, de la coopération
entre agents et de leurs relations vis – à – vis de l’environnement.
Pour coordonner les actions entre agents, il existe deux schémas possibles :
- Soit on opte pour une architecture du système capable de déterminer et de planifier d’une
manière globale les actions des différents agents ;
- Soit on opte pour une architecture du système où les agents sont totalement autonomes c’est
à dire sont capables d’identifier eux mêmes les conflits et les résoudre localement.
Les différents comportements des agents supposent des mécanismes de raisonnements appropriés
et une logique sous – jaçante.
Les agents doivent être à mesure d’acquérir des informations sur l’environnement et sur les
autres agents, soit directement par leur propre système de perception, soit par échanges
d’informations, soit encore par apprentissage. Ces informations doivent par conséquent trouver une
représentation formelle qui les rend utilisables par les mécanismes de raisonnements, de gestion
d’hypothèse, de prise de décision, etc.

VII.1. Définition de l’Intelligence Artificielle Distribuée ( IAD)

L’intelligence artificielle distribuée (IAD) est une discipline de l’informatique qui se propose
de distribuer l’intelligence parmi plusieurs agents, non soumis à un contrôle centralisé. En d’autres
mots, elle se propose d’élaborer des systèmes constitués d’un groupe d’agents chacun étant doté
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


136 136
d’une certaine autonomie et devant être capable de planifier, d’agir et de travailler dans un
environnement commun au prix des conflits éventuels.
N.B : Ces nouveaux systèmes ne sont plus des penseurs renfermés sur leurs propres pensées mais
des penseurs ouverts vers l’extérieur et qui sont capables de faire des échanges au sein d’un groupe
ou des sociétés.
D’ou la naissance des certains concepts nouveaux en intelligence artificielle distribuée tels que la
coopération, la coordination des actions, la négociation, la planification, l’organisation. La
distribution de l’intelligence peut alors être guidée par deux formes de répartition de l’expertise : une
répartition matérielle et une répartition fonctionnelle.

L’Intelligence Artificielle Distribuée propose une distribution de l’expertise sur un ensemble de
systèmes capables d’interagir en coopération dans un environnement commun et de résoudre les
éventuels conflits pour mener à bien une tache complexe (résolution de problème, aide à la décision,
reconnaissance de formes, conduite de processus, …)
L’Intelligence Artificielle Distribuée s’organise autour de trois axes :
o L’intelligence Artificielle Parallèle (IAP)
o La résolution Distribuée de Problèmes(RDP)
o Les Systèmes Multi-Agents (SMA)

VII.1. 1. L’intelligence Artificielle Parallèle(IAP)

Elle concerne le Développement de langage et d’algorithmes pour l’IAD
Elle vise l’amélioration des performances des systèmes d’IAD par la proposition de langages
concurrents et d’architectures parallèles sans toutefois s’intéresser à la nature du raisonnement ni
à l’intelligence des comportements

VII.1. 2. La Résolution Distribuée de Problèmes(RDP)

Elle s’intéresse à la manière de décomposer un problème particulier sur un ensemble
d’entités distribuées et coopérantes.
Elle s’intéresse aussi à la manière de partager la connaissance du problème entre entités et
d’en obtenir la solution.
Les entités sont en générale dépendantes les unes par rapports aux autres

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


137 137

VII.1. 3. Les Systèmes Multi-Agents(SMA)

Il s’agit de faire coopérer un ensemble d’entités pro-actives et relativement indépendantes
appelés « agents » dotés d’un comportement intelligent et de coordonner leurs buts et leurs plans
d’actions pour la résolution de problèmes.
Un Système Multi – Agent ( SMA) est un ensemble d’agents situé dans un certain
environnement et interagissant selon une certaine organisation. Un agent étant une entité caractérisée
par le fait qu’elle est, au moins partiellement , autonome. Un agent peut être un processus, un robot,
un être humain, etc.
Cette technique est utilisable dans de nombreuses disciplines notamment en simulation

VII.2. Applications de l’IAD

L’intelligence Artificielle Distribuée a plusieurs applications dans plusieurs domaines :

1. Dans le domaine de management et de surveillance des réseaux de télécommunication. :
L’approche intelligence artificielle distribuée consiste à exploiter la distribution matérielle des
différents centres qui constituent le réseau. Alors que l’intelligence artificielle classique cherche à
représenter par un modèle unique le fonctionnement de l’ensemble. En IAD, chaque centre est
considéré comme un « agent » autonome interagissant avec d’autres agents (centres).

2. Dans les problèmes de gestion d’un réseau hétérogène d’ordinateurs
3. Dans les problèmes de gestion des réseaux de transport
4. Dans les problèmes de gestion des réseaux de distribution de l’énergie
Dans tous ces quatre problèmes, chaque centre est considéré comme un agent autonome.
Un projet intéressant dans le domaine de gestion des réseaux de distribution d’énergie, consisterait à
l’élaborer des prototypes des systèmes distribués destinés notamment à l’exploitation des grands
réseaux de production et de distribution de l’énergie électrique. Ces différents réseaux seront
constitués des centrales électriques, et chaque centrale électrique comprendrait plusieurs systèmes
experts destinés à l’analyse des pannes, à l’évaluation des risques, etc.
L’objectif d’un tel système est de planifier au mieux le fonctionnement de l’ensemble et son
exploitation en respectant l’architecture et le matériel existant.

5. Pilotage de navires tels que les supers tankers ou les porte – avions
6. Planification des missions spatiales
Dans les problèmes 5 et 6, l’expertise est abordée en termes de fonctions ou de tâches.
Chaque fonction ou tâche requerrant la plupart du temps la coopération de plusieurs expertises. . Ici,
les expertises, tout en s’appuyant sur des informations identiques et une conceptualisation semblable
d’un problème sont alors susceptibles de conduire à des conclusions divergentes, selon des critères
d’appréciation ( exprimées sous forme de règles) qu’elles utilisent..
L’approche IAD consiste donc à, élaborer une architecture, constituée d’entités expertes
( les agents) dont il s’agit de respecter l’indépendance , tout en prévoyant de gérer les situations
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


138 138
conflictuelles. Par exemple, si nous nous imaginons un scénario d’interaction entre un groupe de
robots autonomes, possédant un certain degré d’intelligence et coopérant pour accomplir leur travail.
Supposons qu’un robot X doit être transporté par un autre robot Y, d’un atelier où il a été réparé
vers sa place habituelle. Après l’avoir transporté le robot Y doit aller souder des pièces à un poste P.
Mais, voilà que ses batteries sont déchargées et qu’il ne peut plus souder dans le temps qui lui est
imparti, d’autant que le poste de distribution de l’énergie est déjà occupé par un autre robot Z , d’où
une attente supplémentaire de plusieurs heures , et les choses peuvent toutefois s’arranger
dynamiquement si le robot Z est lui même un robot soudeur et si le robot Y peut négocier avec lui
le soudage des pièces.

7. Dans les problèmes de planification

L’intelligence artificielle distribuée offre des possibilités de négociations autorisant une
gestion locale des conflits pour une re - planification dynamique. En effet, avec l’intelligence
artificielle classique les problèmes de planification trouvaient des solutions en couplant les modèles
de la recherche opérationnelle et l’intelligence artificielle. Cependant, chaque fois qu’il y a conflit
l’ensemble du processus est obligé de s’arrêter et de se réinitialiser pour mettre en place un nouveau
plan.

VII.3. Concepts sur les Agents

L’IAD a introduit le concept de Systèmes Multi – Agents ( SMA) qui porte sur le modèle de
l’agent dont les caractéristiques sont : la coopération, la coordination et la communication.
L'approche multi-agent provient, en partie, d'une critique de l'intelligence artificielle
classique qui considère qu'un problème doit être traité par un superviseur qui décompose la tâche à
réaliser en tâches plus simples, puis en itérant le procédé jusqu'à atteindre un niveau de description
atomique, soluble par le superviseur. A l'inverse, dans les systèmes multi-agents, la résolution de
problèmes est le fruit d'interaction entre entités relativement autonomes appelées agents. Ces
interactions sont plus ou moins complexes (coopération, conflits, compétitions...) et peuvent faire
émerger des comportements qui n'étaient pas spécifiquement comprise dans la description
exhaustive des agents.

a .Qu’est ce qu’un agent ?

Un agent c’est une entité plus ou moins autonome qui est définie par :
- Ses connaissances c’est à dire les objets qu’il manipule (une base d’objets) ainsi que les
contraintes correspondantes.
- Ses accointances c’est à dire l’ensemble des autres agents qu’il connaît avec les contraintes
qui s’y rattachent et qui sont notamment liés aux aspects organisationnels.
- Ses buts
- Ses compétences formées d’opérateurs et des contraintes sur ces opérateurs tels leur
agencement dans un plan.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


139 139
- Ses interactions comportant les connaissances nécessaires à l’agent pour communiquer avec
les autres agents. Ces connaissances portent sur :
- Les conventions de l’interaction de l’agent avec ses accointances qui son aussi liés
contraintes organisationnelles appelées protocoles, et les contrôles regroupant les règles de
gestion ces protocoles.
- Les mécanismes de raisonnement qui lui permettent de prendre des décisions ou de
planifier actions
La structure d’un agent est ainsi axée autour de trois fonctions principales :
- Celle de percevoir ;
- Celle de décider ;
- Celle d’agir.

b. Nature des agents
Les agents peuvent être des entités physiques (capteurs, processeurs, véhicules, etc.) ou des
entités abstraites (tâches à réaliser, déplacements, etc.) qui sont capables d’agir sur leur
environnement, et sur elles – mêmes c’est à dire modifier leur propre comportement. Ils disposent
ainsi d’une représentation partielle de l’environnement et de moyens de perception et de
communication.
Le comportement des agents est fondé sur des connaissances données à priori ou des
connaissances acquises. D’où les agents se composent généralement de deux parties :
- La première partie est à « tendance sociale » et elle est tournée vers la collectivité ( c’est le
domaine du conversationnel et du relationnel) : Les mécanismes et les bases de
connaissances associés concernent les activités du groupe.
- La seconde est à tendance individuelle (c’est le domaine du savoir et du comportement de
l’agent) : les mécanismes et les bases de connaissances contiennent les règles de
fonctionnement interne de l’agent.

c. Les agents dits intelligents

Il existe plusieurs définitions des agents intelligents. Nous retenons ici quelques unes :
- Un agent intelligent est un logiciel conçu pour remplir une mission de façon autonome sur un
réseau pour le compte de son utilisateur. Par exemple les agents de recherche d’information
« off line », les agents de recherche avancée, les agents pour le commerce électronique, etc.
- Un agent intelligent est un objet utilisant les techniques de l’intelligence artificielle : il adapte
son comportement à son environnement et en mémorisant ses expériences, se comporte
comme un sous – système capable d’apprentissage.
- Un agent intelligent est un composant logiciel et / ou matériel capable à des degrés différents
d’être autonome, de communiquer et d’apprendre. On peut aussi ajouter à ces capacités la
mobilité.

D’une manière générale, un agent intelligent contient au moins un des éléments suivants :
- Une base de connaissances prédéfinie,
- Un moteur d’inférence, lui permettant de tenir des raisonnements plus ou moins complexes
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


140 140
- Un système d’acquisition de connaissances
- Un mécanisme d’apprentissage.

d. Agents logiciels / Agents Physiques
Un Agent logiciel :
a . se trouve dans un système informatique ouvert (ensemble d'applications, de réseaux et de
systèmes hétérogènes)
b . peut communiquer avec d'autres agents
c . est mue par un ensemble d'objectifs propres
d . possède des ressources propres
f . ne dispose que d'une représentation partielle des autres agents
g . possède des compétences (services) qu'il peut offrir aux autres agents
i . a un comportement tendant à satisfaire ses objectifs, en tenant
compte des ressources et des compétences dont elle dispose, et en
fonction de ses représentations et des communications qu'elle reçoit.
Agent physique :
a . se trouve situé dans un environnement
c . est mue par une fonction de survie
d . possède des ressources propres, sous la forme d'énergie et d'outils
e . est capable de percevoir (mais de manière limitée) son environnement
f . ne possède pratiquement aucune représentation de son environnement
g . possède des compétences
h . peut éventuellement se reproduire
i . a un comportement tendant à satisfaire sa fonction de survie, en tenant compte des ressources, des
perceptions et des compétences dont elle dispose

e. Niveaux d'organisation des agents:
On distingue 3 niveaux d'organisation entre agents :
• Le niveau micro-social : on s'intéresse aux interactions entre agents
• Le niveau des groupes : on s'intéresse aux structures intermédiaires (différenciation des rôles
et activités, émergence de structures organisatrices...)
• Le niveau société globale : on s'intéresse à la dynamique d'un grand nombre d'agent, à sa
structure générale et a son évolution.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


141 141
VII.4. Les Système Multi – Agents

Les Systèmes Multi – Agents ( SMA) puisent leur fondement de nombreuses disciplines
(Sciences cognitives, sociologie et psychologie sociale, l’informatique) et proposent une nouvelle
approche pour le développement de systèmes à plusieurs composantes autonomes pouvant coopérer
entre elles.
Lorsqu’on parle de Système Multi – Agents, on sous entend que l’expertise est abordé en
terme des fonctions ou des tâches. Chaque fonction ou chaque tâche requiert la coopération de
plusieurs expertises.
On peut rencontrer ces genres de situations par exemple dans le pilotage des navires, dans les
porte – avions, dans la planification des missions spatiales, etc.
Un système multi – agents intègre certains mécanismes régissant la dynamique de
participation d’un individu à la vie d’un groupe ; raison pour laquelle les études sur ces systèmes
multi – agents sont pluri -disciplinaires (faisant intervenir plusieurs disciplines tel que
l’informatique, la sociologie et la psychologie au sein des milieux industriels).
Un système multi – agents ( SMA) est composé de :
1. Un environnement , disposant généralement d'une métrique
2. Un ensemble d'objets . Ces objets sont situés, c.a.d. que pour chaque objet il est possible
d'associer une position dans . Ils sont passifs, c.a.d. qu'ils peuvent être perçus, crées,
détruits et modifiés par les agents
3. Un ensemble d'agents, qui sont des objets particuliers, lesquels représentent les entités
actives du système
4. Un ensemble de relations qui unissent des objets entre eux
5. Un ensemble d'opérations permettant aux agent de percevoir, produire, consommer,
transformer et manipuler des objets
6. Des opérateurs chargés de représenter l'application de ces opérations et la réaction du monde
à cette tentative de modification (lois de l'univers)
VII.4.1. Pourquoi utiliser des SMA ?
En effet, de plus en plus de systèmes sont des systèmes répartis :
• Bases de données (ressources)
• Internet (CPU)
• IHM multi-modales (information)
Il y a une augmentation sensible des ressources informatiques :
• explosion du WWW
• augmentation des puissances CPU
• développement du haut-débit
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


142 142
VII.4.2.Quelle est la nécessité d'utiliser des SMA ?
• Pour intégrer la nouveauté, rendre le système adaptatif, modulable
• Pour faire coopérer des machines distantes
• Pour permettre l'inter-opérabilité entre systèmes hétérogènes
VII.4.3.Quand utiliser un SMA ?
• Quand le problème est trop complexe mais peut être décomposé
• Quand il n'y a pas de solution générale ou lorsque celle-ci est trop coûteuse en
CPU
• A des fins de modélisation (populations, structures moléculaires, réseaux de
spins, tas de sables...)
• Quand on peut paralléliser le problème (gain de temps)
• Quand on veut une certaine robustesse (redondance)
• Quand l'expertise provient de différentes sources
• Quand les données, contrôles, ressources sont distribués
• Quand le système doit être adaptatif
VII.5. Ecoles des agents
Concernant le niveau d’intelligence caractérisant chaque agent, Il existe deux grandes
opinions coexistant dans le domaine de l’intelligence artificielle distribuée, plus particulièrement
dans les systèmes multi - agents :

- L’une correspondant à l’école cognitive
- Et L’ autre correspondant à l’école réactive

L’école cognitive se fonde sur la coopération des agents qui sont déjà capables à eux seuls de
réaliser des opérations complexes tandis que l’école réactive suppose que les agents sont plus
simples et moins intelligents, mais beaucoup plus nombreux et actifs. Il n’est pas question ici, à
l’agent d’être individuellement intelligent.
Les agents de l’école cognitive sont dits des agents cognitifs. Ces agents sont caractérisés en
utilisant des notions mentales telles que la connaissance ( par exemple Jean connaît le fait que les
humains sont mortels), la croyance ( par exemple Jean a pris son para soleil parce qu’il croit que la
journée sera ensoleillée), les désirs, buts ( Jean désire avoir un doctorat), les intentions ( Jean a
l’intention de travailler durement pour avoir sa thèse), les choix, décisions ( Jean a décidé de faire
une thèse), les engagements ( par exemple Jean ne va pas s’arrêter de travailler avant d’avoir fini sa
thèse), des conventions ( si par hasard, Jean décide d’abandonner sa thèse, il va le dire à son
promoteur), les obligations ( Jean doit travailler pour entretenir sa famille). Ces agents ont une
représentation partielle de leur environnement, des buts explicites, sont capables de planifier leur
comportement, de mémoriser leurs actions passées, de communiquer par envoi de messages ; de
négocier, etc. Un SMA constitué d’agents cognitifs possède communément peu d’agents cognitifs.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


143 143
Dans l’école réactive, les agents sont dits réactifs. Ils sont qualifiés de ne pas être intelligents
par eux – mêmes. Ce sont des composants très simples qui perçoivent l’environnement et qui sont
capables d’agir sur celui – ci. Ils n’ont pas une représentation symbolique de l’environnement ou des
connaissances, ne possèdent pas de croyances, ni de mécanismes d’envoi de message. Les SMA
constitués d’agents réactifs possèdent généralement un grand nombre d’agents cognitifs et présentent
un comportement global intelligent. Les agents intelligents sont donc intelligents au niveau du
groupe, du système. Et par conséquent, l’intelligence est distribuée entre beaucoup d’agents réactifs
et le comportement intelligent devrait émerger de l’interaction entre ces agents réactifs et
l’environnement.

VII.6. Les Agents mobiles
Les SMA dans lequel les agents sont mobiles, présentent un intérêt dans l’étude de l'approche
client/serveur actuelle : En effet, dans ce type d'architecture, il y a beaucoup d'utilisation de la bande
passante pour faire communiquer le client et le serveur et pour le transfert de données.
Dans une approche ``agents mobiles'', il n'y a pas de communication entre le client et le serveur
mais, une fois que l'agent s'est déplacé sur le ``serveur'', les communications se font en local.
Citons quelques avantages d’une architecture SMA à agents mobiles
• En terme de performances : il y a moins d'utilisation de la bande passante (les
communications sont beaucoup plus rapides puisqu'elles sont locales), ou du moins de
manière plus ponctuelle. Il faut cependant faire un compromis entre BP ou QoS
(Qualité de service), et puissance CPU nécessaire au niveau du ``serveur'' (utilisation
du RTC).
• En termes de sécurité : les données ne circulent pas sur le web.
• Le système est plus robuste car réparti.
• Les charges sont réparties, parallélisées.
• Le ``client'' peut faire autre chose pendant ce temps (voire même être éteint) :
application en sans-fil ou utilisation nomade.
• Tout ceci est avant tout intéressant si les interactions entre agents sont nombreuses.
Or ce devrait être le cas si le serveur est conçu comme un SMA puisque l'agent mobile
doit alors interroger les différents agents ``serveurs''.
• A partir des fonctions de base fournies par les ``serveur'', le client peut composer un
agent complexe qui utilise un ensemble de ces capacités (ex: ftp récursif).
• Les agents étant dynamiques, ils peuvent évoluer au cours du temps : ils peuvent
apprendre des choses et les ramener au ``client'', leur stratégie tant du coté client que
serveur peut évoluer, ils n'agissent pas de manière automatique mais en fonction de
leur passé...

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


144 144
Parmi les inconvénients, nous pouvons citer :

Interopérabilité et portabilité : les agents peuvent fonctionner sur différentes plate-formes.

Conséquence : Une Nouvelle architecture ISO s’impose
Au niveau application, il faut prévoir de nouvelles couches ``réseau'' pour l'interaction entre
agents.
Base : langage de programmation commun multi-plateforme (ex: Java) ou architecture de
communication au niveau réseau. (AGLETS/IBM, Grasshopper, Voyager, Concordia...),
(AgentTCL...) Compréhension entre les agents : langage commun (ex: ACL : Agent Communication
Language )
Utilisation de CORBA (IIOP)
CORBA, acronyme de Common Object Request Broker Architecture, est une architecture
logicielle, pour le développement de composants et d'Object Request Broker ou ORB ( Courtier de
Requête Objet). Ces composants, qui sont assemblés afin de construire des applications complètes,
peuvent être écrits dans des langages de programmation distincts, être exécutés dans des processus
séparés, voire être déployés sur des machines distinctes.
Corba est un standard maintenu par l'Object Management Group.Corba est une norme créée
en 1992, initiée par différents constructeurs et éditeurs dont Sun, Oracle, IBM,… regroupés au sein
de l'Object Management Group.C'est avec la version 2 de Corba (fin 95) qu'est apparu le protocole
standard IIOP et l'Interface description language (IDL).
IDL : Interface description language (appelé aussi interface definition language) est un langage
voué à la définition de l'interface de composants logiciels, laquelle permet de faire communiquer les
modules implémentés dans des langages différents.
IDL est défini par l'OMG et utilisé notamment dans le cadre d'applications CORBA.
L’OMG(Object Management Group) est une association américaine à but non-lucratif créée en
1989 dont l'objectif est de standardiser et promouvoir le modèle objet sous toutes ses formes.
L'OMG est notamment à la base des standards UML (Unified Modeling Language), MOF (Meta-
Object Facility), CORBA (C0mmon Request Broker Architecture) et IDL (Interface Definition
Language).
L'OMG est aussi à l'origine de la recommandation MDA (Model Driven Architecture) ou Ingénierie
des Modèles, avec en particulier le langage standardisé de transformation de modèles QVT
(Query/View/Transformation).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


145 145
La version 2.3 rend interopérables Corba et RMI.
La version 3 de Corba spécifie 16 types de services (nommage et annuaire des objets, cycle de vie,
notification d'événements, transaction, relations et parallélisme entre objets, stockage, archivage,
sécurité, authentification et administration des objets, gestion des licences et versions,…) mais tous
ne sont pas mis en œuvre dans les ORB du marché.
VII.7. Conception des Systèmes Multi - Agents

La conception d’un SMA nécessite de se poser les questions suivantes :
• Que perçoit l'agent ?
• Quels sont ces moyens d'action ?
• Quelles sont ses capacités de décision ?
Par ailleurs, pour la tache à résoudre on peut se poser les questions suivantes ? :
• Quelles sont les capacités d'interactions avec les autres agents ?
• Quelle est leur nature ? (coopération, compétition, neutre...)
• Est-il nécessaire de leur donner des capacités de communication ?
• De quel type ? (imitation, signaux, langage...)
Il faut repenser la programmation.
Exemple: Tâches émergentes : pas besoin de coder la tache. C'est la dynamique d'interaction qui fait
émerger le comportement global. Par ailleurs, cette interaction existe mais n'est pas ``codée''.
Exemple des fourmis de Deneubourg ou des robots ramasseurs.
Exemple: Tache de déminage : la tache consiste à déminer un terrain.
Différentes approches :
• Supervision : il existe un superviseur qui planifie le déminage. On optimise alors la recherche
mais tout se fait séquentiellement.
• Tache émergente : on utilise une stratégie de type exploration aléatoire par un ensemble
d'agents qui s'évitent. La recherche est parallélisée mais il n'y a pas de coordination et l'on
peut repasser au même endroit.
• Stratégie mixte : on effectue un compromis entre supervision et parallélisme en élisant un
``gouvernement'' (3 agents : premier ministre, ministre de la défense, ministre de la
communication) dont les taches sont spécifiques (resp. récupérer les information provenant
des agent et fabriquer une représentation globale, donner les ordres stratégiques, gérer les
communications entre agents). Une stratégie intéressante consiste à élire le gouvernement
parmi les citoyens en fonction de leur mérite (changement de rôle).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


146 146
VII.7.1. Architecture des SMA
VII.7.1.1. Architecture à base de tableau noir
C’est une architecture où le contrôle est centralisé. Elle est composée de trois éléments :
- Les connaissances
- Le tableau noir
- Le mécanisme de contrôle
Il n’y a pas de communication directe.
L’interaction se fait via le partage d’un espace commun de travail.



VII.7.1.2. Architecture à contrôle distribué
C’est une architecture où le contrôle et les connaissances sont totalement distribuées. Elle est
caractérisée par :
- Un traitement local au niveau de chaque agent
- La communication se fait par envoi des messages
Agen
t
Agen
t
Agen
t
Agen
t
Tableau Noir
Contrôle
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


147 147

Le langage d’acteurs est la technique la plus utilisée pour ce genre d’architecture. Un acteur
regroupe au sein d’une même entité un ensemble de connaissances ( les accointances et un script).
VII.7.2. Environnement de développement des SMA
En plus des langages d’acteurs qui supportent l’exécution des mécanismes parallèles, les langages
de base les plus utilisés sont : LISP, C++, PROLOG, SMALLTALK.
VII.8. Applications des SMA
Les télécommunications, le commerce électronique, la robotique, l'optimisation de réseaux
(transport, routage...), gestion.
Par ailleurs, des applications spécifiques visent la simulation de sociétés (écologie, économie).
VII.9. Représentation des connaissances en IAD

Les modes de représentation des connaissances en IAD sont celles de l’Intelligence
Artificielle classique : La logique classique, les réseaux sémantiques, qui consistent à exprimer sous
forme de graphes les liaisons entre les différents concepts, les règles de production, les
représentations en langages objets, etc.
Les raisonnements révisables, les méthodes de validation des hypothèses, la logique floue, la
logique modale ou la logique de l’incertain sont utilisés pour pallier au problème d’autonomie des
agents et aux limites de leurs capacités.

Agen
t
Agen
t
Agen
t
Agen
t
Agen
t
Agen
t
Agen
t
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


148 148
VII.10. Applications de l’IAD dans le domaine militaire

L’informatique est actuellement omniprésente dans le domaine militaire. En effet, on trouve
des ordinateurs sur les missiles, les sous – marins ou les avions de combats, sur les portes avions ,
etc. Ces ordinateurs permettent d’analyser les signaux recueillis par un radar, un microphone, une
caméra infrarouge ou bien de calculer des trajectoires.
L’informatique ne peut plus être utilisée seulement pour résoudre les problèmes scientifiques
, médicaux, techniques, voire commerciaux, mais aussi des problèmes militaires.
Avec les systèmes experts , il ne s’agit plus simplement de calculer plus vite et plus
précisément que l’homme, mais bine des raisonner et de décider sur le terrain à sa place, sans mettre
sa vie en danger.
Il existe plusieurs applications de l’intelligence artificielle dans le domaine militaire, parmi
lesquelles nous pouvons citer :

- Le système avancé de reconnaissance des cibles ;
- Les véhicules autonomes ;
- Les copilotes informatiques
- la mise au point des robots sentinelles qui sont capables de surveiller des secteurs délimités,
- la mise au point des robots sacrifiables c’est à dire des robots capables de mener une
opération de reconnaissance dans une ville.
- Le pilotage des navires ou la planification des missions spatiales : Il s’agit ici par exemple de
super – tankers, de portes avions, etc.

a) Les systèmes de reconnaissances de cibles

Ce sont des systèmes capables de guider un missile vers sont objectif à partir d’une analyse
des signaux et images provenant de différents capteurs. Ces systèmes reposent
essentiellement sur la mise en œuvre de techniques statistiques.
Ils commencent généralement par distinguer dans les images des « objets » dont la surface
correspond approximativement à celle d’une cible. Un certain nombre de paramètres sont
alors calculés sur ces objets , pour être comparés à ceux caractérisant une cible idéale
( ou plusieurs), préalablement enregistrés. On calcule ensuite pour chaque objet détecté une
fonction de « proximité » qui mesure l’écart entre ses propres caractéristiques et celles de la
cible idéale. La distance calculée est interprétée comme une mesure de la probabilité
d’appartenance de chaque objet à la classe cible. Les objets pour lesquels la probabilité
d’appartenance dépasse un certain seuil préétabli sont classés dans la catégorie cible alors
que les autres sont éliminés. Cette démarche est purement statistique et présente des
inconvénients. En effet, elle suppose certaines hypothèses simplificatrices concernant
l’homogénéité de la répartition de l’intensité du signal sur la surface de la cible et elle
sensible au bruit du signal provenant des capteurs. D’où, pour remédier à ces inconvénients,
l’Intelligence Artificielle propose les principes de déduction contextuelle c’est à dire ils
confortent ou infirment l’hypothèse d’appartenance d’un objet détecté à une certaine
catégorie , à l’aide d’arguments tirés de l’analyse de son contexte.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


149 149

b) Les véhicules sans pilote (véhicules autonomes)

L‘évolution technologique actuelle a permis aux champs de bataille de l’an 2000 d’être
peuplé d’une foule d’engins de toutes sortes faisant largement appel à l’électronique. L’IAD
a permis ainsi de réaliser des véhicules autonomes qui dans un environnement hostile (armes
chimiques ou retombées radioactives) sont capables d’évaluer des situations avec précision et
d’atteindre les objectifs tactiques d’une mission. Tout cela suite à l’avènement des systèmes
experts. L’objectif visé dans la conception des véhicules sans pilotes, c’est de parvenir à
éliminer toute présence humaine à bord des appareils.
Comme véhicules sans pilotes, nous pouvons parler de véhicules terrestres autonomes,
des sous – marins (véhicules robotisés en utilisant les algorithmes de vision : robots sous –
marins), véhicules aériens autonomes (systèmes autonomes aéroportés).
Ces véhicules, qu’ils soient terrestres, marins ou aériens reposent sur la mise en œuvre de
plusieurs systèmes experts. Et ces systèmes doivent communiquer les uns avec les autres tout
en étant asservis à une unité centrale de commandes. Une telle réalisation implique la
maîtrise de plusieurs domaines de l’Intelligence Artificielle.
Un véhicule autonome doit avoir une bonne vision afin de pouvoir analyser, identifier et
interpréter son environnement local ; il doit être capable de classifier des objets et des régions
de l’espace, de détecter les mouvements, de faire une analyse contextuelle de la scène et
d’évaluer par exemple la distance qui le sépare des cibles. Il devra ensuite avoir des capacités
de planification c’est à dire capables d’élaborer à partir de cartes numériques du terrain des
itinéraires fiables, maximisant le nombre d’objectifs atteints tout en minimisant le nombre de
véhicules perdus ou endommagés. La prise en compte et la fusion d’informations provenant
de multiples sources, notamment de capteurs variés, est un autre thème de recherche
fortement sollicité pour le développement de véhicules sans pilotes.
Les capacités de raisonnement de ces systèmes experts permettent de régler des
problèmes tels que l’interprétation des objectifs de la mission ou la prise de décisions en
présence d’informations insuffisantes provenant de plusieurs sources.


c) Les Drones

Un drone est un aéronef capable de voler et d’effectuer une mission sans présence
humaine à bord. C’est la raison pour laquelle on les appelle UAV ( Uninhabited ou
Unmanned) Aerial Vehicule. Le mot « drones » est d’origine anglaise et signifie « bourdon »,
ou « bourdonnement ». Il est communément employé en français en référence au bruit que
font certains d’entre eux en volant.

d) Les hélicoptères autonomes

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


150 150
L’objectif de la mise au point de ces engins, c’est d’éliminer le pilote pour réduire non
seulement le poids, mais aussi le volume de l’appareil. Ce gain de l’espace et de poids rend
l’appareil plus rapide et plus maniable, et en fait une cible plus difficile à atteindre.
Le système de contrôle de cet hélicoptère comprend trois unités correspondant aux
fonctions de vision, de planification et de commande.
L’unité de vision permet d’établir une classification des objets et des surfaces par une
analyse à la fois locale et globale. Au niveau local, les images fournies par les capteurs sont
analysées de façon à déterminer des caractéristiques telles que la structure, la texture et la
distance des objets étudiés. Au niveau global, une carte numérique du terrain conservée en
mémoire, permet par comparaison avec une image de la région survolée de déterminer la
position de l’hélicoptère et facilite l’identification des objets et des surfaces par la mise en
correspondance d’informations accompagnant la carte avec les résultats de l’analyse locale.
D’autre part, l’unité de planification a pour rôle de combiner les informations recueillies sur
le terrain avec des données de référence embarquées afin d’évaluer la situation tactique du
moment, d’analyser cette situation en fonction de la mission à accomplir et d’élaborer un
plan d’action pour réaliser cette mission. Elle produira des plans d’exécution de sous -
objectifs qui seront confiés à l’unité de commandes. Enfin, l’unité de commande permet
d’identifier et de résoudre les conflits qui peuvent apparaître entre les prédictions et la réalité
dans l’exécution des plans et le suivi des itinéraires. Les conflits sont souvent les obstacles
inattendus, les contraintes concernant l’appareil, des dangers permanents liés à un certain
itinéraire ou d’informations contradictoires provenant de différents capteurs. Un radar
constitue un danger qui peut être détecté suite aux systèmes embarqués de l’hélicoptère,
l’unité de planification produit alors un plan d’action à risque de détection minimum
consistant à dissimuler l’appareil derrière la plus proche rangée d’arbres.

e) Les Systèmes Experts copilotes

Ce sont des systèmes experts utilisés comme assistants d’un pilote humain,
notamment pour lui présenter une information synthétique et lui prodiguer des conseils. On
les appelle aussi copilotes informatiques.
Ainsi, le copilote informatique est vu comme un ensemble de systèmes experts
communiquant avec le pilote humain notamment au moyen d’un module d’interfaces en
langue naturelle. Les fonctions du système se répartissent en deux niveaux :
- Au niveau inférieur : le copilote accomplit un certain nombre de tâches de routine sans
rapport avec le combat telles que la vérification du bon fonctionnement de l’aéronef, la
réception des communications, la navigation et la génération d’itinéraires.
- Au niveau supérieur : le copilote accomplit des tâches d’exécution difficiles pour le pilote
humain telles que la planification d’itinéraires en temps réel, la reconnaissance des cibles,
l’analyse des dangers et le diagnostic rapide des pannes de matériel. Le copilote n’est donc
pas destiné à supplanter l’opérateur humain, mais plutôt à jouer un rôle complémentaire.
Pour accomplir correctement ces tâches complexes, le système doit disposer tout comme un
expert, d’une masse de connaissances qui le guideront au moment de la prise de décisions.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


151 151
La base de connaissances du copilote informatique doit comporter donc un certain nombre
considérable d’informations lui permettant d’intervenir dans le diagnostic des pannes, la
navigation et la tactique :
- Les connaissances nécessaires au diagnostic sont sous forme d’informations détaillées sut la
structure de l’appareil, la durée de vie des composants ainsi que sur les procédures d’essai de
diagnostic.
- Les connaissances de navigation portent quant à elles sur les techniques d’assistance à la
navigation, la reconnaissance des repères, la planification d’itinéraires, ainsi que sur les
procédures permettant d’éviter les obstacles , de suivre un parcours et de faire une analyse
générale du terrain.
- Les connaissances tactiques dépendent essentiellement de la mission et regroupent toutes les
informations relatives à la mission, aux aéronefs et aux moyens défensifs de l’ennemi, ainsi
qu’aux diverses tactiques et stratégies possibles.

f) Le robots sentinelles : Ce sont des robots capables de surveiller des secteurs délimités
( comme des agents de renseignements).
g) Les robots sacrifiables : Ce sont des robots capables de mener une opération de
reconnaissance dans une ville ou une installation abandonnée. Ils peuvent prémunir une
troupe de combat contre le feu d’un tireur embusqué.
Nous pouvons encore parler de pilotage de navires, de la planification des missions spatiales,
tec.





Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


152 152
CHAPITRE VIII. Les langages de l’Intelligence Artificielle
Les langages de programmation traditionnels sont dits impératifs ou procéduraux. Ils peuvent
traduire des opérations telles que « lire », « écrire », « additionner », « transférer », « compare », etc.
Ce sont des instructions correspondant à des séquences de langage machine. En IA, le problème se
présente tout autrement, puisqu’il s’agit là de représenter des connaissances et de simuler des
raisonnements. Pour résoudre ces problèmes particuliers, il faut des outils et langages particuliers.
Les objectifs de ces outils sont les suivants :
• Résoudre les problèmes concrets rencontrés par les entreprises,
• S’adapter au problème à résoudre, grâce à la définition de formalismes de représentation
des connaissances, et faciliter l’acquisition et la validation des connaissances,
• Améliorer la communication entre l’utilisateur et le système, grâce à la définition
d’interfaces homme-machines.
Il n’y a pas à proprement parler de langage d’IA. Même si l’on parle de langages d’IA,
ceux-ci peuvent aussi être employés parfois dans des programmes classiques ; d’autre part, les
langages de programmation classiques, comme Basic, C, Pascal…, peuvent également être
utilisés pour développer des applications d’IA. Mais, il existe certains langages, comme Lisp,
Prolog ou les langages orientés objets, qui permettent d’exprimer plus directement le mode
d’expression de l’IA, c'est-à-dire la déclarativité, le raisonnement logique et les connaissances.
En particulier, ils permettent de « prototyper » assez rapidement une application, qui pourra,
ensuite, être traduite dans un langage classique pour accélérer l’exécution du programme et
son intégration avec d’autres applications.
Lisp, « langage naturelle » de l’IA, est né au début des années soixante. Il a été conçu par
John McCarthy (Massachusetts Institute of Technology) pour le traitement des données et la
résolution de problèmes, il a longtemps été considéré comme le langage le mieux adapté au
traitement d’expressions symboliques. Son fondement est la structure de données, se
présentant sous formes de listes, d’où le nom du langage provenant de l’expression List
Processing. Une liste est une sorte de tableau de longueur variable, de la forme (a b c …) ; a,
b, c, etc. peuvent être soit d’autres listes soit des éléments appelés atomes ; un atome est une
suite de caractères alphabétiques ou numériques. Les atomes peuvent être soumis à des
fonctions.
Par exemple, si PLUS désigne la fonction d’addition, cette opération s’écrit :
(PLUS a b), ce qui est équivalent à a+b. On voit bien que cette manière d’écrire est
relativement complexe pour les opérations élémentaires, auxquelles convient mieux un langage
classique comme Basic, C ou Pascal. En revanche, si les atomes représentent des expressions
oh des propositions, la fonction peut être « vrai » ou « faux », ou encore « condition », etc. Il
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


153 153
existe ainsi des milliers de fonctions Lisp, qu’il est nécessaire de connaître pour pouvoir
programmer dans ce langage.
Prolog, de Programming in Logic, est, comme son nom l’indique, un langage de
programmation fondé sur la logique. Son origine remonte aux travaux sur la démonstration de
théorèmes, avec en particulier le principe de résolution d’A. Robinson (1965). Les premières
implémentations de ce langage ont été réalisées par Alain Colmerauer et son équipe de
l’Université de Marseille en 1970, à partir de travaux sur le traitement du langage naturel.
Un programme Prolog admet une double interprétation : procédurale et déclarative.
Selon l’interprétation déclarative, la situation est décrite par une suite de règles et de faits (le
modèle sous-jacent) est celui de la logique des prédicats) et le problème à résoudre est spécifié
sous forme d’un but qui est donné au mécanisme de résolution de l’interpréteur. Celui-ci va
réduire le but en sous-buts jusqu’à la solution. Par rapport aux autres langages classiques de
programmation, Prolog offre plusieurs avantages :
C’est un langage d’expression et de résolution de problèmes : en tant que
langage déclaratif, il utilise un mécanisme de résolution automatique qui prend
en charge la recherche de la solution ;
Fondé sur une théorie formelle (logique du premier ordre), il est proche du
langage naturel ;
Il est non déterministe, dans la mesure où il fournit toutes les solutions sans
avoir à spécifier l’ordre et la séquence des instructions pour y parvenir ;
Particulièrement orienté vers le traitement symbolique, il peut aussi faire du
traitement numérique ;
Il permet de définir d’autres formalismes de représentation, tout en bénéficiant
des moyens puissants de l’interpréteur, comme l’unification, l’exploration
arborescente et le retour arrière.
Prolog est ainsi un langage particulièrement puissant et général. Il s’applique
notamment à la spécification et au prototypage d’applications (les premières phases
du développement de logiciel). Il peut aussi être vu comme un générateur de
systèmes experts.



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


154 154
VIII.1. PROGRAMMATION LOGIQUE (PROLOG)

VIII.1.1. Définition de la programmation logique

La programmation logique est dite déclarative. En effet, ici on ne s’occupe pas de la manière
d’obtenir le résultat ; par contre, le programmeur doit faire la description du problème à résoudre en
lisant les objets concernés, les propriétés et les relations qu’ils vérifient.
Ensuite, le mécanisme de résolution (pris entièrement en charge par le langage) est général et
universel. Tout d’abord insistons sur le fait que PROLOG est un langage de programmation à part
entière, tout comme le C, Java, Caml, Scheme… cependant, il se distingue de ces derniers par son
mode de programmation.

Il s’agit en effet d’un langage déclaratif, de haut niveau, interactif et particulièrement performant
pour résoudre tous les problèmes ayant une relation avec la logique : systèmes experts, langage
naturel, aide à la décision, représentation de connaissances…
PROLOG est étonnamment puissant puisqu’il suffit bien souvent de très peu de lignes de code pour
mettre en place des programmes intéressants. Il est capable à partir de quelques faits et règles, décrits
d’une façon très mathématique, d’établir une stratégie de réflexion pour répondre aux requêtes de
l’utilisateur.


VIII.1.2. Eléments fondamentaux du Prolog :

VIII.1.2.1. Faits

Les faits sont des affirmations qui décrivent des relations ou des propriétés.

-Exemples :
masculin (ben).
feminin (hermine).
pere (andre, ben). % andre est le père de ben
mere (pascaline, ben). % pascaline est la mère de ben


-La forme générale d’un fait est :
Prédicat (argument1, argument2,…).
Un prédicat est un symbole qui traduit une relation. L’arité est le nombre de ses arguments. On
identifie un prédicat par son nom et son arité :
Prédicat /arité, par exemple : mere/2.


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


155 155

De manière générale :
• Un prédicat unaire donne une propriété de l’argument :
Fifi est un chien. chien (Fifi).
Le soleil est chaud. chaud (soleil).
Le ciel est bleu. bleu (ciel).

• Un prédicat binaire exprime une relation entre 2 objets :
Hermine est plus grand que Tanya. plusGrand (Hermine, Tanya).
• Un prédicat d’arité supérieur à 2 établit un lien entre ses arguments :
Compositeur (beethoven, 1770, 1827).

VIII.1.2.2. Questions ou requêtes

En mode interactif, on peut poser des questions sur les faits :
?- masculin (ben).
Yes

?-masculin (martin).
No (Pas dans la base de connaissance)

On peut aussi utiliser des variables. Elles peuvent s’identifier à toutes les autres valeurs : aux
constantes, aux termes composés, aux variables elles-mêmes.
Les constantes commencent par une minuscule, les variables commencent par une majuscule.

?- masculin (X).
X= ben ;
X= martin ;
No
Le caractère « ; » permet de demander la solution suivante. Le caractère « ↵ » arrête la recherche des
solutions.

VIII.1.2.3. Types en Prolog

En prolog, tout est un terme :
• Les constantes ou les termes atomiques :
Les atomes sont des chaînes alphanumériques qui commencent par une minuscule : sam, dan, pas0.
On peut transformer une chaîne contenant des caractères spéciaux (point, espace, etc.) dans un atome
en l’entourant de caractères « ′ » ou « ′′ ». Ainsi ′vin de Lavaux ′, ′ lavaux′ ont des atomes.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


156 156
Les nombres : 19, -25, -3.14, 23E-5
• Les variables commencent par une majuscule ou le signe _.
_ tout seul est une variable anonyme et peut désigner n’importe quelle variable.
Ainsi X, XYZ, Xyz, _x_3_ sont des variables.
Le système renomme en interne ses variables et utilise la convention _nombre, comme _127 ou
_G127.

VIII.1.2.4. Quelques définitions

Une formule est une application d’un prédicat à ses arguments.
L’unification est le procédé par lequel on essaie de rendre 2 formules identiques en donnant des
valeurs aux variables qu’elles contiennent.
Une unification peut réussir ou échouer :
pere (X, X) et père (jean, paul)
ne peuvent pas s’unifiées.
Lors d’une question, si elle réussit, les variables s’unifient.

Exemple:
?- père (X, Y)
X= paul
Y= jean
Yes

Le Prolog unifie le terme de la question au terme contenu dans la base de données. Pour ceci, il
réalise la substitution des variables X et Y par des termes, ici des constantes. On note cette
substitution par :
{X= paul, Y= jean}

On dit qu’un terme A est une instance de B s’il existe une substitution de A à B :
• Masculin (jean) et masculin (luc) sont des instances de masculin (X)
• {X= jean} ou {X = luc} sont les substitutions correspondantes.
En Prolog, une variable ne représente pas une location contenant une valeur modifiable.
Une variable instanciée ne peut pas changer de valeur.

VIII.1.2.5. Variables partagées

On utilise une même variable pour contraindre deux arguments à avoir la même valeur.

Exemple
Pour chercher un père qui a le même nom que son fils (exemple peu idiot) :
?- père (X, X).

Les questions peuvent être des conjonctions et on peut partager des variables entre les buts.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


157 157

Exemple
Pour chercher tous les fils d’un père, on partage la variable X entre père et masculin :
?- père (X, Y), masculin (Y).

VIII.1.2.6. Règles

Les règles permettent d’exprimer des conjonctions de buts. Leur forme générale est :
<tête> : - C
1
, C
2
, C
3
,…, C
n
.
La tête de la règle est vraie si chacun des éléments du corps de la règle C
1
,…. , C
n
est vrai. On
appelle ce type de règles des clauses de Horn.
Les éléments du corps sont aussi appelés des sous-buts, car pour démontrer la tête de la règle, il faut
démonter tous ses sous-buts.

Exemples
« Si X est un homme alors X boit de la bière »
boit (X, biere) :- homme (X)
« Il n’y a pas de fumée sans feu. »
Fumée :- feu
« Jean étranglera le prof s’il échoue ce cours. »
etrangle (jean, X) :-
echoue (jean, ‘langages et paradigmes de programmation’),
enseigne (X,’ Langages et paradigmes de programmation’).

Arbre généalogique :
fils (A, B) :- père (B, A), masculin (A).
fils (A, B) :- mère (B, A) masculin (A).
parent (X, Y) :- père (X, Y).
parent (X, Y) :- mère (X, Y).
grandParent (X, Y) :- parent (X, Z), parent (Z, Y)

• Les faits sont une forme particulière de règles qui sont toujours vraies. Un fait est une clause dont la queue est
vide.
Exemples :
fait. Est en effet équivalent à fait :- true.
boit (X, biere). Signifie que tout le monde boit de la bière ou « Pour tout X, X boit de la biere. »

• On peut aussi utiliser une variable anonyme :
enfant (Y) :- parent (X, Y).
Peut s’écrire
enfant (Y) :- parent ( _,Y).
• Une requête est une clause sans tête
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


158 158
?- < corps>.
Signifiant : Détermine si <corps> est vrai.
• Les règles peuvent aussi être récursives.
Exemple : Définissons un nouveau prédicat déterminant l’ancêtre X de Y par récursivité :
1. Condition de terminaison de la récursivité si c’est un parent direct.
ancetre (X, Y) :- parent (X, Y).
2. Sinon X est ancêtre de Y si et seulement s’il existe Z, tel que X parent de Z et Z parent de Y.
ancetre (X, Y) :- parent (X, Z), ancetre (Z, Y)

VIII.1.2.7. Exécution des requêtes

Lors de l’exécution d’une requête, Prolog examine les règles ou les faits correspondants dans l’ordre
de leur écriture dans le programme : de haut en bas. Il utilise la première règle (ou le premier fait) du
prédicat pour répondre. Si elle échoue, alors il passe à la règle suivante et ainsi de suite jusqu’à
épuiser toutes les règles (ou tous les faits) définies pour ce prédicat. Lorsqu’une règle est récursive,
l’interprète Prolog rappelle le prédicat du même nom en examinant les règles (ou les faits) de ce
prédicat dans le même ordre.

Dans le corps d’une règle, la virgule «, » est le symbole représentant un ET logique : la conjonction
de buts. Le symbole « ; » représente le OU logique, la disjonction de buts :

A : - B ; C.

est équivalent à

A :- B.
A :- C

Un prédicat correspond donc à un ensemble de règles ou de faits de même nom et de même arité : les
clauses du prédicat.
Beaucoup de Prolog demandent que toutes les règles et tous les faits d’un même prédicat soient
contigus et groupés ensemble dans le fichier du programme. On note un prédicat par son nom et son
arité, par exemple fils/2, parent/2, grandParent/2.


VIII.1.2.8. Les opérateurs en Prolog

Chaque Prolog dispose d’opérateurs binaires infixés (X+Y), unaire préfixés (-X) et unaire suffixes
(X^2). Le langage considère les opérateurs comme des foncteurs et transforme les expressions en
termes.
Par exemple l’expression suivante 2*3 + 4*2 est un terme identique à +(* (2,3), *(4,2))).

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


159 159
VIII.1.2.9. Les règles de précédence et d’associativité

Les opérateurs sont définis par leurs priorités 0 à 1200 (0 étant la plus haute) et leurs associativités.
L’associativité détermine le parenthésage de A op B op C :
• Si elle est à gauche, on a (A op B) op C
• Si elle est à droite, on a A op (B op C)
• Sinon elle est non associative : les parenthèses sont obligatoires, et la syntaxe
A op B op C est interdite.
Un type d’associativité est associé à chaque opérateur :

non associatif droite Gauche
infixé xfx xfy Yfx
préfixé fx fy
suffixé xf Yf

Certains opérateurs sont prédéfinis en Prolog standard comme le montrent le tableau suivant :

Priorité Associativité Opérateurs
1200 xfx :-
1100 xfy ;
1000 xfy ,
700 xfx = \=
700 xfx = = \= =
700 xfx is = : = =\= < <= > >=
500 yfx + -
400 yfx * / (flottant) // (entier)
200 xfy & ^
200 fy -

On peut définir de nouveaux opérateurs par :

op (Précédence, Associativité, NomOpérateur).


Exemple :

op (1000, xfx, aime) définit comme un opérateur infixé non associatif

Par la suite, on peut écrire l’expression François aime Henriette au lieu de
aime(François, Henriette).



Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


160 160
VIII.1.2.10. Les opérateurs logiques d’unification

L’unification est définie de la manière suivante :

= dans X = Y signifie « X s’unifie avec Y »
Par exemple
?- a(b,X,c) = a(b,Y,c). La réponse sera X = Y
?- p(b, [A, [B,C]],25) = p(, [B, [D, E]], 25). La réponse sera A = B = D, C = E = A.
\= dans X \= Y signifie « X ne s’unifie pas avec Y »
Par exemple
?- a(b,X,c) \= a(b,Y,c). La réponse sera no
?- [A, [B,C]] \= [A,B,C]. La réponse sera Yes.

VIII.1.2.11. Les opérateurs arithmétiques

En Prolog, évaluer un terme représentant une expression arithmétique revient à appliquer les
opérateurs. Ceci se fait par le prédicat prédéfini is / 2.

Exemples

?- X = 1+1+1.
X = 1+1+1. % ( ou X = +(+(1,1), 1)
?- X = 1+1+1, Y is X.
X = 1+1+1, Y = 3.
?- X is 1+1+a. % erreur car a n’est pas un nombre
?- X is 1+1+Z. % erreur car Z n’est pas instancié à un nombre
?- 5 is (3*7+1) // 4. % (égal la division entière de 22 et 4)
Yes.
?- Z = 2, X is 1+1+Z.
Z = 2
X = 4

12. Les opérateurs numériques et littéraux

Dans l’expression

?- 1+2 < 3+4.

Il y a évaluation des 2 additions (celle de gauche puis celle de droite) avant d’évaluer la
comparaison.
Il est important de distinguer les opérateurs numériques des opérateurs littéraux, ainsi que
d’unification.

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


161 161
Numérique Littérale (terme à terme)
Opérateur d’égalité = : = = =
Opérateur
d’inégalité
=\= \= =
Plus petit < @<
Plus petit ou égal <= @=<

Exemples

?- 1+2 = : = 2+1.
Yes
?- 1+2 = 2+1.
No
?- 1+2 = 1+2.
Yes
?- 1+X = 1+2. (unification)
X = 2
?- 1+X = : = 1+2. % X n’est pas un nombre
?- 1+2 = = 1+2.
Yes
?- 1+2 = = 2+1.
No
?- 1+X = = 1+2. % « est déjà instancié ? »
No
?- 1+a = = 1+a.
Yes
?- a(b,X,c) = = a(b,Y,c).
No
?- a(b,X,c) == a(b,X,c).
Yes
?- A\= = hello. % « n’est pas déjà instancié »
Yes
?- a(b,X,c) \== a(b,Y,c).
Yes

VIII.1.2.13. Les listes et prédicats de manipulations de listes

VIII.1.2.13.1. Motivation et définition d’une liste

Si on demandait de représenter le contenu d’un congélateur. Chaque maison représenterait de sa
manière. Par exemple :

congélateur(viande, poisson, lait, eau, boisson)
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


162 162
congélateur( lait, eau, boisson)
congélateur(viande, beurre, fromage, eau)

Nous obtenons ainsi trois faits différents représentés sous la forme de structures. Pour représenter un
nombre variable d’arguments avec la même structure, on pourrait utiliser un fait d’arité : congélateur
/ 2.

congélateur(viande, congélateur(poisson, congélateur(lait, congélateur(eau, congélateur(boisson,
nil())))))
congélateur( lait, congélateur(eau, congélateur(boisson, nil())))
congélateur(viande, congélateur (beurre, congélateur (fromage, congélateur (eau, nil()))))

Cette notation est trop encombrante. Le plus simple serait d’introduire une liste. Nos exemples
deviennent alors :

.(viande, .(poisson, .(lait, .(eau, .(boisson, nil()))))
.(lait, .(eau, .(boisson, nil())))
.(viande, .(beurre, .(fromage, .(eau, nil()))))

Le foncteur « . » est le foncteur de liste. Par exemple l’intervalle [a,b] est équivalent à la liste .(a,
.(b, [])).

Exemples

.(a, .(b, .(c, [])) = [a, b, c]
.(1, .(2, .(3, [])) = [1, 2, 3]
[a]
[a, X, pere(X,jean)]
[[a,b], [[[pere(X, jean)]]]]
[] est la liste vide.

L’opérateur « | » est un constructeur de liste et peut servir pour extraire la tête de la liste.

Exemples

.(a, .(b, .(c, [] )) = [a | [b, c] ]] = [a, b | [c]] = [a, b, c | []] = [a, b, c]
.(1, .(2, .(3, .)) = [1| [2 | [3]]] = [1, 2, 3]

?- [a, b] = [X | Y]
X = a, Y = [b]

?- [a] = [X | Y]
X = a, Y = []
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


163 163

?- [a, [b]] = [X | Y]
X = a, Y = [[b]]

?- [a, b, c, d] = [X, Y | Z]
X = a, Y = b, Z = [c, d]

?- [a, b] = [X | Y]
X = a, Y = [b]

?- [[a, b, c], d, e] = [X | Y]
X = [a, b, c], Y = [d, e]


VIII.1.2.13.2. Quelques prédicats de manipulation de listes

Certains prédicats de manipulation de listes sont prédéfinis suivant les variantes de prolog

1. Prédicat member / 2 : l’appartenance d’un élément à une liste.

Le prédicat member(Element, List) réussit si son deuxième argument est une liste dont le premier
argument est un élément.
Ce prédicat peut être écrit de
plusieurs manières :
- member(X, [Tete | Queue]) :- X = Tete
- member(X, [Tete | Queue]) :- X \= Tete, member(X, Queue).
Puisque Prolog utilise des gabarits pour identifier les termes d’une expression et que les règles sont
exécutées dans l’ordre qu’elles sont écrites, on peut simplifier la définition du prédicat :

Member(Tete, [Tete | _]).
Member(Tete, [_| Queue]) :- member(Tete, Queue).

Ou autrement

member(X, [ X | _ ]).
member(X, [ _ | Xlist]) :- member(X, Xlist).

Exemples

?- member(a, [b, c, a]).
Yes

?- member(a, [c, d]).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


164 164
No

?- member(X, [a, b, c]).
X = a;
X = b;
X = c;
No

Exécution de member(X, [a, b, c]).

Trouve rune unification:
Unifie member(X, [a, b, c]) avec member (Tete, [Tete| _])
Instancie X à a
Une règle sans corps réussit, affichage de X = a

On presse « ; » pour demander la solution suivante.

Trouve une seconde unification
Unifie member(X, [a, b, c]) avec member (Tete, [_| Queue])
Instancie X à Tete, instancie Queue à [a, b]
Replace la tête de la règle par son corps et essaie de satisfaire le but member(X, [b,c])

Trouver une unification
Unifie member(X, [b, c]) avec member (Tete, [Tete, | _])
Instancie X à b
Une règle sans corps réussit, affichage de X = b

etc.


2. Prédicat append / 3 : ce prédicat permet de concaténer deux listes.

Le prédicat append(List1, List2, List3) réussit si List3 est la concaténation de List1 et List2.
Append est défini par les deux clauses :

Syntaxe

append ([], L, L).
append ([X | XS], YS, [X | Liste]) :- append (XS, YS, Liste).

Ou

append([], Xlist, Xlist).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


165 165
append([X | Xlist], Ylist, [X | Zlist]) :- append(Xlist, Ylist, Zlist).

Une requête du type ?- append([a,b], [c,d, e], List). donnera la réponse
List = [a, b, c, d, e].

Exemples

?- append ([a, b, c], [d, e, f], [a, b, c, d, e, f]).
Yes

?- append ([a, b], [c, d], [e, f]).
No

?- append ([a, b], [c, d], L]).
L = [a, b, c, d]

?- append (L, [c, d], [a, b, c ,d]).
L = [a, b]

?- (L1, L2, [a, b, c]).
L1 = [], L2 = [a, b, c] ;
L1 = [a], L2 = [b,c];
etc. avec toutes les combinaisons.

Si nous souhaitons afficher toutes les combinaisons possibles sans faire intervenir l’usager, nous
écrirons :

combinaisonListe(Liste) :-
append(L1, L2, Liste),
write(L1), write(L2), n1,
fail. % Le prédicat fail échoue toujours

Exemple

Append(L1, L2, [a, b]). La réponse sera
[] [a, b]
[a] [b]
[a, b] []
No

N.B.

member peut être redéfini par la clause :
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


166 166
member(X, Xlist) :- append( _ , [X | _ ], Xlist).

3. Prédicat length / 2: determine la longueur d’une liste:

Le prédicat length(List, N) réussit si le nombre entier naturel N est le nombre d’éléments de List.
Length est défini par les deux clauses :

length([],0).
length([X | Xlist], s(N)) :- length(Xlist, N).
où s est la fonction successor.

Ou

length([], 0).
length([Tete | Queue], N) :- length (Queue, N1), N is N1+1.

Une requête du type ?-length([a, b, c], N). donnera comme réponse N = 3.

Exemples

?- length([a, b, c], 3).
Yes
?- length([a, [a, b], c], N).
N = 3

4. Prédicat reverse / 2 : inverse l’ordre d’une liste. Deux solutions sont possibles.

Le prédicat reverse(List1, List2) réussit si List2 est la version inversée de List1.
Reverse est défini par les clauses :

Première solution (coûteuse):

reverse ([], []).
reverse ([X | XS], ZS) :- reverse (XS, YS), append (YS, [X], ZS).

Ou

reverse([], []).
reverse([X | Xlist], Ylist) :- reverse(Xlist, Zlist), append(Zlist, [X], Ylist).

Deuxième solution (par une liste intermédiaire): on passe d’une arité 2 à une arité 3 :

reverse(X, Y) :- reverse (X, [], Y).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


167 167
reverse([X | XS], Accu, ZS) :- reverse(XS, [X | Accu], ZS).
reverse([], ZS, ZS).

Une requête du type ?- reverse([a, b, c, d], List). donnera la réponse List = [d, c, b, a].

5. Le prédicat prefix(List1, List2) réussit si les éléments de List1 sont en tête de List2
Prefix est défini par la clause :
prefix(Xlist, Ylist) :- append(Xlist, _ , Ylist).

Une requête du type ?- prefix(Xlist, [a, b, c]). donnera les réponses Xlist = [], Xlist = [a], Xlist = [a,
b] et X = [a, b, c].

6. Le prédicat suffix(List1, List2) réussit les éléments de List1 sont en queue de List2
Suffix est défini par la clause :
suffix(Xlist, Ylist) :- append( _ , Xlist, Ylist).

Une requête du type ?- suffix([c, d], [a, b, c, d]). donnera la réponse yes.

7. Le prédicat last(Element, List) réussit si Element est le dernier élément de List.
Last est défini par la clause :
last(X, Xlist) :- append( _ , [X], Xlist).

Une requête du type ?- last(X, [a, b, c, d]). donnera la réponse X = d.

VIII.1.2.14. Coupure en Prolog

Le prédicat prédéfini « ! » appelé « le cut » ou la coupure en français, permet d’empêcher le retour
en arrière. La règle
p(X) :- a(X), !, b(X).
Satisfait d’abord le premier sous-but a(X), puis vérifie ensuite le second sous-but b(X). Si le second
sous – but échoue, il n’y a pas de retour en arrière à a(X).
La coupure permet d’indiquer à Prolog qu’on ne désire pas conserver les points de choix en
attente.
Le but recherché est d’améliorer l’efficacité et d’exprimer le déterminisme
Quand une coupure est franchie :
• ! coupe toutes les clauses en dessous de lui,
• ! coupe tous les buts à sa gauche,
• Par contre, il est possible de retourner en arrière sur les sous-buts à droite de la
coupure.

Exemples

factorielle (0,1) :- !.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


168 168
factorielle (1,1) :- !.
factorielle (N, Resultat) ;- N1 is N-1, factorielle (N1, ResultatPrecedent), Resultat is
ResultatPrecedent*N.

estMembre (X, [X | _]) :- !.
estMembre (X, [_| Queue]) :- estMembre (X, Queue).


Règles pratiques d’utilisation

La fonction minimum

min(X,Y, X) :- X < Y, !.
min (X, Y, Y).
Ce prédicat conduit correctement au calcul du minimum pour la première solution. La coupure est
nécessaire pour éviter de produire une seconde solution au cours d’un retour en arrière. Mais, si nous
avons la règle :

P :-
1
C , …,
1 i
C

,
min (2, 3, Z),
i
C , …,
n
C .
A la première exécution, Z = 2. Si on doit revenir en arrière à cause d’un échec des buts
i
C , …,
n
C
et si min / 3 ne comporte pas de coupure, on obtient Z = 3 car min / 3 aurait pu produire deux
solutions. On repartirait alors avec cette valeur pour prouver les buts
i
C , …,
n
C

Autre coupure

ifthenelse (P, Q, R) :- P, !, Q.
ifthenelse (P, Q, R) :- R.

Coupure dangeureuse

Tous les enfants ont 2 parents à l’exception de justin.

parents (julien, 2).
parents (justin, 0) :- !.
parents (X, 2).

?- parents (justin, N).
N = 0

?- parents (justin, 2).
Yes

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


169 169
Pour corriger le problème, il faudrait écrire :

parents (julien, 2).
parents (justin, N) :- !, N = 0.
parents (X, 2).


VIII.1.2.15. La Négation dans Prolog

Un programme logique exprime ce qui est vrai. La négation, c’est ce que l’on ne peut pas prouver.
Le prédicat not se définit par :

not (P) :- P, ! , fail.
not (P) :- true.
Exemples et precautions

Il vaut mieux que les variables soient instanciées avant d’utiliser une negation:

?- not (member (X, [a, b]).
No

Le programme identifie X à une des variables, réussit et le not le fait échouer.
Dans une règle, il faut veiller à l’instanciation des variables.

Exemple

marie (françois).
etudiant (aubin).
etudiantCelibataire (X) :- not (marie(X)), etudiant (X).

La requête suivante échoue :
?- etudiantCelibataire(X).
No
Car X s’associe à françois puis le not fait échouer le sous-but.
Alors que :
?- etudiantCelibataire (aubin).
Yes

réussit car X = aubin donc not (marie(aubin)) est vrai.
Pour que la règle produise les résultats attendus, il faut inverser les sous – buts :

etudiantCelibataire(X) :-
etudiant (X),
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


170 170
not (marié(X)).

Ainsi X sera instancié avant d’être soumis à la négation.



VIII.1.3. Les conventions de SWI-PROLOG (un interpréteur PROLOG)

• Tous les faits et règles doivent se terminer par un «. ».
• Les variables utilisées dans les faits ou règles commencent toujours par une majuscule « _ ».
• A l’inverse, tout le reste commence par une minuscule.
• Il ne faut pas mettre d’espace entre le prédicat et la parenthèse ouvrante qui l’accompagne.
• Les commentaires sont mis entre « /* » et « */ » ou commencent par « % » et se termine sur la même
ligne.
Rem : Mieux vaut faire commencer les variables classiques par des majuscules. En effet, cela
permet de différencier sans ambiguïté dans le mode débogage des variables du programme, des
variables internes générées dynamiquement par PROLOG qui commencent par « _ ».

Rem : ces conventions s’appliquent également aux faits par l’utilisateur dans l’interpréteur
de commande de SWI-PROLOG
©


VIII.1.4. Utilisations de PROLOG

VIII.1.4.1. Création d’une base de données

Il est très facile d’utiliser PROLOG pour programmer une base de données et l’interroger. En effet, il
suffit de déclarer en tant que faits toutes les données de la base.
Rem : il existe en fait une extension de PROLOG appelée DATALOG qui est justement orientée
base de données.
Grâce aux règles, on peut obtenir des sous-tables ou établir des relations entre les tables.
Rem : C’est ce qui fait la puissance d’un langage comme PROLOG ou DATALOG par rapport à
SQL où toutes les données de base doivent être explicitement énoncées.
Rem : Les bases de données sont un examen où le programme peut ne contenir que des faits sans
aucune règle même si cela fait perdre une partie de l’intérêt de PROLOG.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


171 171























Ce programme définit avec les faits une table ‘bio’ dont les attributs sont le nom du fils, son sexe,
son année de naissance, de mort, le de son père et de sa mère.

Grâce aux règles il définit également trois sous-tables ; ‘enfant’, ‘ptenfant’ et ‘descendant’ qui ont
comme attributs :
• Enfant (NomEnfant, Nomparent)
• Ptenfant (NomPetitEnfant, NomGrandParent)
• Descendant (NomDescendant, NomAncetre)


VIII.1.4.2. Interrogation de la base de données
La base de données étant en place, nous allons l’interroger grâce à des requêtes PROLOG. Il est
possible de l’interroger de nombreuses manières. En voici quelques exemples





% < !>Attention : pas d’accent dans les programmes
/******************Les faits********************/
/*
Arguments du predicat ‘bio’ :
bio(enfant, sexe, annee_naissace, annee_mort, pere, mere)
*/
bio(louis 13, h,1601,1643,henri4, marie_medicis).
bio(elisabeth_France, f,1603,1644,henri4, marie_medicis).
bio(marie_therese_Autriche, f,1638,1683,philippe4, elisabeth_France).
bio(louis14, h,1638,1715,louis13, anne_autriche).
bio(grand_dauphin, h,1661,1711,louis14, marie_therese_Autriche).
bio(louis_bourbon, h,1682,1712,grand_dauphin, marie_anne_baviere).
bio(philippe5, h,1683,1746,grand_dauphin, marie_anne_baviere).
bio(louis15, h,1710,1774,louis_bourbon, marie_adelaide_savoie).
bio(louis_dauphin, h,1729,1765,louis15, marie_leczcynska).
bio(louis16, h,1754,1793,louis_dauphin, marie_josephe_saxe).
bio(louis18, h,1755,1824,louis_dauphin, marie_josephe_saxe).
bio(charles10, h,1757,1836,louis_dauphin, marie_josephe_saxe).
bio(clodilde, f,1759,1802,louis_dauphin, marie_josephe_saxe).
bio(louis17, h,1785,1795,louis16, marie_antoinette).
bio(philipe1, h,1640,1701,louis13, anne_autriche).
bio(philipe2, h,1674,1723, philipe1, charlotte_baviere).
bio(louis_orleans, h,1703,1752, philipe, francoise_marie_bourbon).
bio(louis_philippe, h,1725,1785,louis_orleans, augusta_marie_bade).
bio(philipe_egalite, h,1747,1793, louis_philipe, louis_henriette_boubon_conti).
bio(louis_philipe2, h,1773,1850, philipe_egalite, louisemarie_adelaide_boubon_penthievre).

/******************Les regles********************/
/*enfant (enfant, parent)*/
/*R1*/ enfant (X, Y) :-bio(X,_,_,_,Y,_).
/*R2*/ enfant (X, Y) :-bio(X,_,_,_ ,_, Y).
/*ptenfant (petit-enfant, grand-parent)*/.
/*R3*/ ptenfant(X,Y) :- enfant(X,Z), enfant(Z,Y).
/*descendant (descendant, ancetre)*/
/*R4*/ descendant(X,Y) :-enfant(X,Z), descendant(Z ,Y).

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


172 172

1. Vérification de la base de données

Il est bien sûr possible de savoir si une donnée existe bien dans la base de données.
Ex : Regardons si Louis XIII qui a vécu entre 1601 et 1643 est le fils de Henri IV et Marie de
Médicis :
?-bio (louis13, h, 1601, 1643, henri4, marie_medicis)
Yes
C’est bien le cas.

Ex : Regardons si Louis XVII qui a vécu entre 1785 et 1795 est le fils de Louis XVI et Marie de
Médicis :
?-bio (louis17, h, 1785, 1795, louis16, marie_medicis)
No
Ce n’est pas le cas car sa mère est Marie-Antoinette.

2. Recherche d’une liste simple ou sous table dans la base de données

On peut extraire de la table ‘bio’ une sous-table à un seul attribut.
Cela correspond à l’opération : ∏
x

Conditions
(bio)) où
• X est un (et un seul) attribut de la table ‘bio’
• Conditions est un ensemble de conjonctions et de disjonctions
Ex : quelles sont les femmes qui figurent comme enfant ?
C'est-à-dire que contient ∏
NomEnfant

Sexe=f
(bio)) ?
?- bio (Qui,f,_,_,_,_).
Qui=elasabeth_france ;
Qui=marie_therese_autriche
Qui= clotilde ;
No
Il y a donc trois filles dans la table.

Ex : Qui sont les enfants de Henri IV ?
?- bio (Qui,_,_,_,henri4,_)
Qui= louis13 ;
Qui= elisabeth_france ;
No
Henri IV a eu 2 enfants.
La sous-table retournée par PROLOG est complète dans le sens où les possibilités solution de la
requête sont affichées autant de fois qu’elles répondent au problème.




Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


173 173
3. Recherche d’une liste multiple dans la base

On peut aussi extraire de la table ‘bio’ une sous –table ayant d’un seul attribut.
Cela peut correspondre à l’opération : ∏
X1,X2,…, Xn

Conditions
(bio)) où
• X1, X2,…, Xn sont des attributs de la table ‘bio’
• Conditions est un ensemble de conjonctions et /ou des disjonctions
Ex : Qui sont les parents de Louis XIV ?
?- bio(louis14,_,_,_, Papa, Maman)
Papa= louis13
Mama =anne_autriche ;
No
Le père de Louis XIV est louis XIII et sa mère est Anne d’Autriche.
Mais cela peut aussi correspondre à une jointure :

X1

Conditions
(bio)) ∏
X2,…, Xn

Conditions
(bio))

Ex : qui sont les parents de Louis XIV ?
?- bio (louis14,_,_,_,Père,_) , bio(louis14,_,_,_,_,Mere)
Pere=louis13
Mere=_G481;
Pere=_G473
Mere=anne_autriche ;
No

En effet, on obtient une sous-table avec deux attributs contenant non pas une réponse mais deux
_G481 et _G473 sont deux variables internes utilisées par SWI-PROLOG
©
; si elles apparaissent
dans le résultat cela signifie que le résultat est bon quelles que soient leurs valeurs.
Ce résultat peut donc s’interpréter par :
- Si le père de Louis XIV, sa mère peut être n’importe qui.
- Si la mère de Louis XIV est Anne d’Autriche, son père peut être n’importe qui.
Ce qui est bien sûr incorrect.

Par rapport à cette dernière remarque, il faut ajouter qu’il est quand même possible d’employer une
disjonction dans la requête.
Cependant, ce connecteur étant équivalent à l’opération de réunion ( ) dans l’algèbre
relationnelle, il supprime un attribut à la sous-table résultat.

Ex : Qui sont les parents de Louis XIV ?
?- bio(louis14,_,_,_,Parent,_) ; bio(louis14,_,_,_,_,Parent).
Parent =louis13 ;
Parent =anne_autriche ;
No
On obtient ici une sous-table à un seul attribut avec deux données. De ce fait, on perd l’information
sur le sexe des parents puisqu’ils sont tous les deux réunis sous le même attribut.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


174 174
4. Recherche dans un intervalle de valeurs

PROLOG peut gérer un intervalle de valeurs.

Ex : Quels sont les personnages nés entre 1750 et 1800 ?
?- bio (Qui,_,N,_,_,_), 1750=<N, N=<1800.
Qui=louis16
N=1754 ;
Qui=louis18
N=1755 ;
Qui=charles10
N=1757 ;
Qui=clotilde
N=1759 ;
Qui=louis17
N=1785 ;
Qui=louis_philipe1
N=1773 ;
No
Il y a six enfants qui sont entre 1750 et 1800.
La recherche de solutions dans un intervalle de valeur fait apparaître quelques caractéristiques
intéressantes de PROLOG :
• L’implémentation de PROLOG ne respecte pas complètement la logique du premier ordre : une
requête n’est pas traitée comme une formule complète mais elle est divisée en formules atomiques
(les buts) reliées par des disjonctions et/ou des conjonctions et ces sous-formules sont traitées les
unes après les autres dans l’ordre où elle se trouve sur la ligne (de gauche à droite).
• PROLOG considère à priori toute variable numérique faisant parti des réels.
Ex : Quelles sont les personnages nés entre 1750 et 1800 ?
?-1750=<N, N=<1800, bio (Qui,_,N,_,_,_).
ERROR: Arguments are not sufficiently instantiated
Par rapport au premier exemple, nous n’avons fait qu’inverser les formules de requête ce qui en
logique ne change rien puisque l’opérateur
^
est commutatif. Mais comme nous l’avons dit juste au-
dessus, PROLOG découpe les requêtes en formules atomiques. Il va donc d’abord s’attacher à
résoudre le but 1750 =< N. or N étant à priori un réel, il y a une infinité de solution à ce but. Il
arrive à le détecter et alors s’arrête.

Rem : nous venons de voir dans cet exemple un des rares cas où PROLOG effectue un contrôle.
Sans cela, il cherchait tous les N (réels) ≤ 1750 avant de passer à la formule atomique suivante. Donc
il ne terminerait jamais.
Pour contourner ces deux difficultés (les règles sont découpées en formules atomiques et les
variables numériques sont considérées comme des réels) dans le cas d’une recherche dans intervalle
de valeurs, PROLOG introduit le mot clé between (debut, fin, X) où X est une variable considérée
comme un entier et comprise entre ‘debut’ et ‘fin’.
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


175 175
Ex : Quels sont les personnages nés entre 1750 et 1800 ?
?- between (1750, 1800, N), bio (Qui, _, N, _, _, _).
N=1754
Qui=louis16;
N=1755;
Qui=louis18;
N=1757;
Qui=charles10;
N=1759;
Qui=clotilde;
N=1773;
Qui=louis_philippe1;
N=1785;
Qui=louis17;
No
Cette fois PROLOG veut bien s’exécuter car il y a un nombre fini d’entiers compris entre 1750 et
1800. On retrouve bien les mêmes résultats qu’avec le premier exemple.

PROLOG permet également de façon tout à fait naturelle de rechercher des solutions n’appartenant
pas à un ensemble de valeurs.

Ex : Quels sont les personnages qui ne sont pas nés entre 1750 et 1800
?- bio (Qui, _, N,_,_,_), (1750>N; N>1800)
Qui=louis13;
N=1601;
Qui=elisabeth_France;
N=1603;
Qui=marie_therese_autriche;
N=1638;
Qui=louis14;
N=1773;
Qui=louis_philippe1;
N=1638;
Qui=grand_dauphin;
N=1661;
Qui=louis_bourbon;
N=1682;
Qui=phillipe5;
N=1683;
Qui=louis_philippe1;
N=1638;
Qui=louis15;
N=1710;
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


176 176
Qui=louis_dauphin;
N=1729;
Qui= philippe1;
N=1640;
Qui=philippe2;
N=1674;
Qui=louis_orleans;
N=1703;
Qui=louis_philippe;
N=1725;
Qui=philippe_egalite;
N=1747
No


VIII.2. PROGRAMMATION FONCTIONNELLE (SCHEME)

VIII.2.1. Expression
Schème est un dialecte de LISP (List Processing), Lisp est un langage de programmation
fonctionnelle le plus connu. Toute instruction en Schème est une expression.
Le prompt dépend de la configuration de Schème : ‘ :’, ou ‘’=>’’. Ici nous employons ‘’>’’.
Une expression composée commence toujours par une parenthèse ouverte, Suivi d’une fonction, en
suite des arguments et se termine par une parenthèse fermée. Les arguments sont séparés par des
espaces (espace(s), tabulation, ligne).
-Exemple :
> (+ 30 20)
50
>
Il doit y avoir au moins un espace pour séparer deux arguments consécutifs. L’identificateur +
représente une fonction prédéfinie de Schème
Les expressions construites avec les formes spéciales tels que : define, lambda, if, cond, let, set ! ont
une syntaxe et un comportement spécifique.
Les arguments d’une fonction peuvent être des expressions composées.
-Exemple :
> (+ (* 3 (+ (* 2 4) (+ 3 5) ) ) (+ (- 10 7) 6) )
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


177 177
57
> (f (+ 3 5 4) (carre (+ 4 2) ) )
70
Les fonctions f et carre doivent avoir été préalablement définies. Certaines fonctions peuvent avoir
un nombre variable d’arguments, (Par exemple, +, --, *, /).
VIII.2.2. Indentation des programmes
Il est aussi important de créer des programmes lisibles que des programmes qui fonctionnent
correctement.
Voir aussi ‘’reindenter tout’’ dans le menu de l’onglet ‘’Schème’’. <CTRL-I>
-Exemple d’expression correctement indentée :
(+ (* 3 (+ (* 2 4 ) (+ 3 5 ) )) (+ (- 10 7 ) 6) )
(+ (* 3
(+ (* 2 4 )
(+ 3 5 ) ) )
(+ (- 10 7 )
6 ) )
Laquelle se lit facilement ?
-Exemple d’expression mal indentée :
(+ (* 3
(+ (* 2 4)
(+ 3 5 ) ) )
(+ (- 10 7)
6 ) )

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


178 178
VIII.2.3. les variables
Une variable est un identificateur. On définit des variables avec la forme define.
-Syntaxe :
(define <identificateur> <expression>)
-Exemple :
> (define size 2)
>
Remarque : une expression construite avec la forme spéciale define ne retourne aucune valeur.
- Définir des variables
> size
2
> (+ size 5)
7
> (define size (+ 4 6) )
> size
10
> (define size (+ size 7) )
> size
17
Seules les variables définies peuvent être évaluées.
> xx
Reference to undefined identifier: xx
>


Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


179 179
VIII.2.4. Affectation
On change la valeur d’une variable par la forme set !

-Syntaxe :
(set ! <variable> <expression>)
-Exemple :
> (set ! size 10)
> size
10
La variable doit être définie.
> (set ! xx 4)
Set! : cannot set undefined identifier: xx, La forme set! peut produire des ‘’effets de bord’’. On peut
écrire des programmes d’une grande complexité sans utiliser set !Par convention, les noms des
fonctions qui modifient leurs arguments sont terminées par ‘’ !’’,Il est strictement interdit d’utiliser
la forme set ! avant la section sur les données mutables que nous verrons à la fin de la session.
VIII.2.5. Les fonctions
Les fonctions sont construites avec la forme spéciale lambda.
-Syntaxe :
(lambda (<arg-1>…<arg-n>)
<expression-1> …
<expression-m>)
Le résultat est une fonction à n arguments, Son utilisation retourne la valeur de l’expression
<expression-m>.Les m-1 premières expressions sont évaluées mais leurs valeurs ne sont pas
retournées. Elles sont utiles pour leurs effets de bord (set !, define, print, …)
-Exemple:

> (lambda (x)
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


180 180
(define z 3)
(define w (+ z 3))
(+ x (* 10 w)))
La capacité de traiter aisément les fonctions comme d’autres données est une particularité de la
programmation fonctionnelle (voir plus particulièrement les fonctions d’ordre supérieur)
On peut définir des variables ayant comme valeur le résultat d’une expression lambda.
-Exemple 1
> (define fonct1 (lambda (x)
(define z 3)
(define w (+ z 3)
(+ x (* 10 w))))
> fonct1
Elle s’utilise comme une fonction prédéfinie
> (fonct1 2)
62
>
-Exemple 2
> (define carre (lambda (x) (* x x)))
> (carre 2)
4
> (+ (carre 9) 5)
86
>
Façon abrégé de nommer une fonction
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


181 181
(define <nom>)
(lambda (<parametres>)
<corp>))
Peut être aussi écrite comme suite :
(define (<nom> <parametres>)
<corp>)

-Exemple 1 : façon abrégé de nommer une fonction

(define fonct1 (lambda (x)
(define z 3)
(define w (+ z 3))
(+ x (* 10 w))))

Est équivalent à
(define (fonct1 x)
(define z 3)
(define w (+ z 3))
(+ x (* 10 w)))
-Exemple2 : façon abrégé de nommer une fonction
> (define (carre x) (* x x))
> (define (somme-carres x y)
(+ (carre x) (carre y)))
> (somme-carres 3 4)
25
> (define (distance x1 y1 x2 y2)
(sqrt (somme-carres (- y2 y1) (- x2 x1))))
> (distance 0 0 3 4)
5
> (distance 0 0 1 1)
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


182 182
1.414213562373730951
VIII.2.6. Expression conditionnelles (la forme cond)
-Syntaxe :
(cond (<p
1
> <e
11
> … <e
1n
>)

(<p
m
> <e
m1
>… <e
mn
>))
Où les p
i
sont des expressions jouant le rôle de prédicat et les e
ij
des expressions.
-Exemple : la fonction valeur absolue
> (define (f1 x)
(cond ( (> x 0) x)
( (= x 0) 0)
((< x 0) (- x))))
> (f1 -2)
2
> (define (f2 x)
(cond ((< x 0) (- x))
(else x)))
> (f2 -2)
2
>
VIII.2.7. Expressions conditionnelles (la forme if)
Est une abréviation de cond utilisée lorsqu’il n’y a que deux conditions possibles :
(if <p> <e
1
> <e
2
>)
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


183 183
Est équivalent à
(cond (<p> <e
1
>)
(else <e
2
>))
-Exemple
> (define (f3 x)
(if (< x 0)
(- x)
x))
VIII.2.8. Expressions conditionnelles (la forme case)
-Syntaxe :
(case <key> <clause1> <clause2> …)
<key> est une expression quelconque.
<clause> est une expression de la forme suivante :
((<val
1
> …) <expression
1
> <expression
2
> …),
Les <val
i
> sont des représentations externes d’une valeur possible en Schème. Les <val
i
> doivent
être distincts.
La dernière <clause> peut avoir la forme
(else <expression
1
> <expression
2
> …).
Une expression case est évalué de la façon suivante. Key est évalué et sa valeur est comparée à
chaque <val
i
>. Si le résultat de l’évaluation de <key> est équivalent (dans le sens de eqv ?; voir le
thème IX sur l’égalité) à un des <val
i
> alors les expressions de la clause correspondante sont
évaluées de gauche à droite et le résultat de la dernière expression est retourné comme le résultat de
l’expression case au complet. Si le résultat de l’évaluation de <key> est différent de chaque <val
i
>
alors s’il y a une clause else alors ce sont les expressions de la clause else qui sont évaluées et c’est
la valeur de la dernière expression qui est retournée. S’il n’y a pas de clause else alors la valeur de
l’expression case n’est pas spécifiée (il n’y a pas nécessairement un massage d’erreur).
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


184 184

-Exemple :
(case (* 2 3 )
( ( 2 3 5 7 ) ‘ premier )
( (1 4 6 8 9) ‘composé ) ) ==== composé
(case (car ‘ (c d ) )
( (a) ‘a)
( (b) ‘b ) ) ==== non spécifié
(case (car ‘ (c d ) )
( (a e i o u) ‘voyelle )
( (w y) ‘semi-voyelle )
(else ‘consonne ) ) ==== consonne

VIII.2.9. boucle do
Les boucles servent à répéter un certain nombre de fois une portion de programme, comprise entre le
début et la fin de la boucle.Voici comment déclarer une boucle dans un programme Scheme. On
utilise la fonction « do » et la variable « i » pour compter le nombre d’exécution successives de la
boucle.
Exemple :
(do ( ( i 0 (+ i 1) ) ) ( (= i 10) )
(print i)
(print (* 3 i) )
)

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


185 185
Analyse de l’exemple :

(do ( ( i 0 (+ i 1) ) ) ( (= i 10) )


(a) (b) (c)
(a) : Valeur de départ de I (ici 0)
(b) : Incrément de i à la fin de chaque passage dans la boucle
(Ici i est augmenté de 1)
(c) : Condition de fin de boucle (quand i vaut 10)
(print i) ;; insérez ici la partie du programme à
(print (* 3 i)) ;; boucler en utilisant éventuellement la
) ;; fin da la boucle

Dans cet exemple, on exécute une multiplication pour « i » allant de 0 à 9 par pas de 1 (puisque i=
10 provoque la fin de la boucle). La valeur de « i » est multipliée par 3. La valeur de « i » ainsi que
le résultat de la multiplication sont affichés dans la console grâce à la fonction « print ».

VIII.2.10. Manipuler les listes
Il est courant en Scheme de déclarer une liste d’éléments. Voici, par exemple, comment déclarer une
suite de nombres :
( define ma-liste (list 4 45 6 73 ) )
L’évaluation de cette ligne donne le message :
ma-liste.
Pour connaître le nombre d’éléments contenus dans une liste, on utilise la fonction « length », avec
comme argument, le nom de la liste dont on veut compter les éléments.
( length ma-liste)
La console doit donner le nombre d’éléments compris dans la liste :
4

Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


186 186
LISTE DES SUJETS DE SEMINAIRE : 2009 – 2010

1. Acquisition des Connaissances
2. Intelligence Artificielle Distribuée
3. Agents Intelligents
4. Cerveaux électroniques
5. Réseaux de Neurones
6. Réseaux de Neurones hybrides
7. Algorithmes génétiques
8. Apprentissage
9. Contrôle intelligent
10. Intelligence Artificielle et le Commerce électronique
11. Intelligence Artificielle sur Internet
12. Incertitude
13. Intégration d’information
14. Traitement du langage naturel
15. Logique floue et commande floue
16. Perception
17. Modélisation Cognitive
18. Planification
19. Raisonnement
20. Raisonnement par cas
21. Raisonnement probabiliste
22. Recherche des données
23. Représentation des connaissances
24. Les Systèmes de Résolution de problèmes
25. Robotique
26. Systèmes Experts en langages naturels
27. Tableau noir
28. Traitement de la parole
29. Vie artificielle
30. Vision artificielle
31. Conception Assistée par Ordinateur
32. Conception Assistée par Intelligence Artificielle
33. Les Systèmes Multi agents
34. L’Intelligence Artificielle Parallèle
35. La Résolution Distribuée des Problèmes
36. Les machines Intelligentes
37. La Robotique
38. Les Robots intelligents
39. Robot sexy
40. Chaton Robot
41. Robotique et Sémantique
Intelligence artificielle et systèmes experts

Université de Kinshasa
Faculté des Sciences
Département des Mathématiques et Informatique


187 187
42. Robotique et visionique
43. Enseignement Assisté par Ordinateur
44. Les copilotes informatiques
45. Traduction automatique
46. Traduction Assistée par Ordinateur
47. Les systèmes d’aide
48. La Reconnaissance des formes
49. La Reconnaissance de la Parole
50. Interrogation des bases de données en langages naturels
51. Analyse et compréhension des textes
52. Interfaces (communications) hommes machines
53. Commande par téléphone
54. Recherche documentaire
55. Les véhicules autonomes
56. Les explorateurs spatiaux
57. Les SIAD – EXPERT
58. Les Systèmes experts en gestion
59. Les Systèmes de reconnaissances de cibles
60. Les robots sentinelles
61. Les robot sacrifiables
62. Les moteurs de recherche
63. Les bases de données déductives et base de données actives
64. L’Intelligence Artificielle forte
65. L’Intelligence Artificielle faible
66. Les agents mobiles et la norme CORBA
67. Intelligence Artificielle et télécommunications
68. Intelligence Artificielle et réseaux
69. La reconnaissance des caractères
70. Le calcul formel
71. Les réseaux neuronaux hybrides
72. Le chatbot
73. Les ordinateurs quantiques
74. Les serviteurs électroniques
75. Les sens électroniques
76. L’ingénierie neuromorphique
77. Les ordinateurs conversationnels
78. Intelligence Artificielle ascendante
79. Intelligence Artificielle descendante
80. Le Test de Turing
81. La programmation automatique
82. Les arbres de décision