|

République Algérienne Démocratique et
Populaire Ministère de l'Enseignement Supérieur et de la
Recherche Scientifique
Université Saad Dahlab, Blida USDB.
Faculté des sciences. Département
informatique.
Mémoire pour l'obtention d'un diplôme
d'ingénieur d'état en informatique. Option :
Intelligence Artificielle
Sujet :
|
Elaboration d'un contrôleur
adaptatif pour un robot mobile
basé sur les réseaux
immunitaires artificiels
|
|
Présenté par : CHABANE Yahia
Promoteur : Dr S. OUKID-KHOUAS DJIAR Sofiane
Organisme d'accueil : Laboratoire de Recherche
pour le Développement des Systèmes Informatisés
(LRDSI).
Soutenue le: date soutenance, devant le jury
composé de :
Nom. président du jury, grade, organisme
Président
Nom examinateur 1, grade, organisme
Examinateur
Nom examinateur 2, grade, organisme
Examinateur
- promotion 2005/2006-

Nous tenons à remercier notre promot rice Mme
S. OUKID-KHOUAS de nous avoir accepté durant
cette
année et pour son suivi, ses orientations et ses
précieux
conseils, et qui a su nous faire profiter de sa grande
expérience.
Nous remercions avant tout Dieu Tout-puissant qui
nous
a donné la force, le courage et la volonté
pour réaliser ce
travail.
Nous remercions Mr BEN CHERCHALI, du
département Électronique, pour son aide et sa
disponibilité.
Un grand merci à toutes nos familles pour leur
présence,
leur préoccupation et le souci qu 'ils se sont fait
pour nous,
leurs encouragements et leur suivi, avec patience,
du
déroulement de notre projet.
Enfin, Nous remercions, de tout coeur, tous ceux qui
ont
contribué de prés ou de loin à la
réalisation de ce travail.
Remerciements
Dédicace
Je dédie ce travail :
A ma mère : même si la vie n'a pas toujours
été facile dans le foyer familial, tu as su parfois te sacrifier
pour nous offrir une vie meilleure. Et grâce à toi, je profite
aujourd'hui du meilleur de la vie. J'aimerais pouvoir te rendre tout l'amour et
la dévotion que tu nous as offerts, mais une vie entière n'y
suffirait pas. J'espère au moins que ce mémoire y contribuera en
partie,
A mon père qui m 'a soutenu durant toute ma
carrière et m 'a aidé à surmonter les moments
difficiles,
A mes deux frères Mohameiet Djamel, A toute ma
famille,
A mon binôme Sofiane et à toute sa famille, A la
mémoire de notre amis Nasr-eddine, A tous mes amis,
A tous les enseignants et étudiants du
département Informatique de l'université de Blida.
C. Yahia

A la mémoire de ma chère mère. Qui
nous a quittées le 3 0-01-1998 à jamais pour un monde meilleur.
Je lui dois ce travail et tout ce que je suis. Et je veux lui dire qu 'on
connaît l'arbre, de ses fruits.
A dieu nous appartenons, et à lui nous
retournons.
A celui qui ma aidé à découvrir le
`savoir' le trésor inépuisable A mon très cher
père, c 'est à toi que je dédie ce mémoire, pour te
dire merci pour ton soutien et tes encouragements, merci pour ta douceur et ta
compréhension.
A mes frères, soeurs, mes cousins et tous ceux qui me
sont cher pour leur encouragement et aide.
A mon binôme Yahia et à toute sa
famille,
A la mémoire de notre amis Nasr-eddine,
A tous mes amis, Hamza, Billel, Noureldine, Ibrahim
...
A tous les enseignants et étudiants du
département Informatique de l'université de Blida.
D. Sofiane

Résumé
Aujourd'hui, le marché commercial de la robotique
mobile est touj ours relativement restreint, mais il existe de nombreuses
perspectives de développement qui en feront probablement un domaine
important dans le futur. Les applications des robots peuvent se trouver dans de
nombreuses activités "ennuyeuses, salissantes ou dangereuses", mais
également pour des applications ludiques ou de service, comme
l'assistance aux personnes âgées ou handicapées.
De nos jours, une des tâches les plus difficiles en
robotique est le problème de la navigation autonome, ou un robot, ou un
ensemble de robots, doit accomplir certaines tâches sans intervention
humaine.
Ces dernières années beaucoup d'attention a
été concentrée sur l'approche comportementale de
l'intelligence artificielle, qui a déjà démontré sa
robustesse et flexibilité contre des environnements dynamiques. Notre
travail consiste à réaliser un mécanisme d'arbitrage de
comportement pour un robot mobile autonome afin de l'adapter à un
environnement inconnu et ceci en utilisant les systèmes immunitaires
artificiels et plus précisément la théorie des
réseaux immunitaires présenté par N. Jerne.
Mots dlés : robot mobile autonome,
navigation réactif, contrôleur adaptatif, système
immunitaire artificiel, réseau immunitaire.
Abstract
Today, the produce market of mobile robotics is always
relatively restricted, but there are many development prospects which will
probably make of it a significant field in the future. The applications of the
robots can be in many "tedious, dirtying or dangerous" activities, but also for
ludic applications or of service, like the assistance with the old or
handicapped people.
Nowadays, one of the most difficult tasks in robotics is the
problem of autonomous navigation, where a robot, or a whole of robots, must
achieve some tasks without human intervention.
These last years much of attentions were concentrated on the
behavioral approach of the artificial intelligence, which already showed his
robustness and flexibility in dynamic environments. Our work consists in
producing a arbitration mechanism of behavior for an autonomous mobile robot in
order to adapt it to an unknown environment by using the artificial immune
systems and more precisely the immunizing network analysis presented by N
Jerne.
Key words : autonomous mobile robot, reactive
navigation, adaptive controller, artificial immune system, immune network.

Sommaire
Introduction générale . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 1
Chapitre I Navigation autonome des robots
mobiles
1. Introduction . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2. Quelques notions sur la navigation des robots.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 4
2.1. Définition . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2. Les stratégies de navigation . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1.
La navigation par carte. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 5 2.2.2. La navigation réactive . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Les architectures de contrôles de robots . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1. Les contrôleurs hiérarchiques . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. Les contrôleurs réactives. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . 11 3.2.1. Principe. . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 11 3.2.2. L'approche
comportementale. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . 13 3.2.3. L'architecture de subsumption . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 16 3.2.4. Autres
architectures réactives. . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . 19
3.3. Les contrôleurs hybrides. . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 20
4. L'apprentissage en contrôle. . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 21
4.1. Les catégories d'apprentissage . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. Le contrôle adaptatif . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.
Conclusion. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 25
Chapitre II Systèmes immunitaires
artificiels
1. Introduction . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2. Système immunitaire naturel. . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . 27
2.1. Principe du fonctionnement . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2. Caractéristiques des systèmes
immunitaires. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 30
2.3. Théorie des réseaux immunitaires.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . 32 3. Systèmes immunitaires
artificiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 34
3.1 Passage du naturel vers l'artificiel. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 34 3.2. Les algorithmes des AIS. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . 35 3.2.1. Algorithme de la sélection
clonale. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . 36 3.2.2. Algorithme de la
sélection négative. . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 37 3.2.3.
Algorithme du réseau immunitaire. . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 38 3.3. L'apprentissage dans les réseaux
immunitaires. . . . . . .
. . . . . . . .
. . . . . . . .
. . . 39
4. Modélisation des réseaux
immunitaires. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 40 4.1. Le modèle de Farmer. . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 41
5. L'application des réseaux immunitaires aux les
robots mobile. . . . . . .
. . . . . . . .
. . . . . . . 43 6.
Conclusion. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 44
Chapitre III Conception, Réalisation et
Tests
1. Introduction . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
2. Conception et réalisation du système.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 45 2.1. Les différents éléments
nécessaires. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 45 2.2. Le choix du
principe immunitaire. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 47 2.3.
Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 49
2.3.1. Le robot Khepera . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . 49
2.3.2. Le simulateur de Khepera. . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 51 2.4. Modélisation . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.4.1. Les composants immunitaires utilisé . . . . .
. . . . . . . . . . . . . . . . . . . . . . 52
2.4.1.1. Les anticorps . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 52
2.4.1.2. Les antigènes. . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 53
2.4.2. Les différents étapes du contrôleur
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.4.2.1. Collections des données . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 55
2.4.2.2. Filtrage des actions . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 56
2.4.2.3. Choix de l'action dominante. . .
. . . . . . . .
. . . . . . . .
. . . . . . . 57
2.4.2.4. Exécution de l'action dominante . . . . . .
. . . . . . . . . . . . . . . . 60
2.4.2.5. Mécanisme d'adaptation. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 61
2.4.2.5.1. L'ajustement. . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . 61
3. Tests. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . 64 3.1. Les tests dans les
environnements simples. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . 64 3.2.
Les tests dans les environnements complexes sans pièges. .
. . . . . . . .
. . . . . . . . 78 3.3.
Les tests dans les environnements possédant des pièges . . . .
. . . . . . . . . . . . . . . 92
4. Conclusion. . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 93
Conclusion générale. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 94

Listes des figures
Figure I.1 : contrôleur
hiérarchique . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 9 Figure I.2 :
contrôleur réactive . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 12 Figure I.3
: contrôleur hybride . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Figure
I.4 : Modèle générique d'un agent
apprenant. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. 22 Figure I.5 : L'apprentissage supervisé .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 23 Figure I.6 : L'apprentissage par renforcement . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figure I.7 : L'apprentissage avec un maître distant .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figure II.1 : Interaction entre l'anticorps
et l'antigène. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . 29
Figure II.2 : Prolifération et maturation
d'affinité . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 30 Figure II.3 : Hypothèse du réseau
idiotypique de Jerne. . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 34
Figure II.4 : Classification des algorithmes de l'AIS.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . 36
Figure III.1 : Diagramme de la fonction du
filtrage. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . . 46
Figure III.2 : Diagramme de la fonction d'exécution des
actions . . . . . . . . . . . . . . . . . . . . . 46 Figure
III.3 : Mécanisme de sélection . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figure III.4 : similitude entre un contrôleur
réactif et un réseau immunitaire. . .
. . . . . . . .
. 49 Figure III.5 : Le robot Khepera . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50 Figure III.6 : Emplacement des capteurs, des moteurs et
des roues du robot Khepera. . . . . 50
Figure III.7 : L'interface du simulateur . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Figure III.8 : Représentation des anticorps . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Figure III.9 : Représentation des antigènes .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54 Figure III.10 : Champ de vision du Khepera . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Figure III.11 : Mécanisme de filtrage des actions .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Figure III.12 : Calcul d'affinité entre un
antigène et un anticorps. . . . .
. . . . . . . .
. . . . . . . . 58
Figure III.13 : Mécanisme de sélection d'action
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Figure III.14 : Premier environnement de test. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . 64 Figure III.15 : Trajectoire du robot dans
la première itération (Environnement 1, Cas 1) . . 66
Figure III.16 : Trajectoire du robot
après la phase d'apprentissage
(Environnement 1, Cas 1) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 67 Figure III.17 :
Performance du robot durant le test (Environnement 1, Cas 1).
. . . . . . . .
. . 68 Figure III.18 : Structure de
réseau après la phase d'apprentissage (de A vers
B)
(Environnement 1, Cas 1) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 70 Figure III.19 :
Structure de réseau après la phase d'apprentissage (de
B vers A)
(Environnement 1, Cas 1) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 72 Figure III.20 :
Trajectoire du robot dans la première itération
(Environnement 1, Cas 2) . . 73 Figure III.21 : Trajectoire du
robot après la phase d'apprentissage
(Environnement 1, Cas 2) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 74 Figure III.22 :
Performance du robot durant le test (Environnement 1, Cas 2).
. . . . . . . .
. . 75 Figure III.23 : Structure de
réseau après la phase d'apprentissage (de C vers
D)
(Environnement 1, Cas 2) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 76 Figure III.24 :
Structure de réseau après la phase d'apprentissage (de
D vers C)
(Environnement 1, Cas 2) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 78 Figure III.25 :
deuxième environnement de test . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . 79 Figure III.26 :
Trajectoire du robot dans la première itération
(Environnement 2, Cas 1) . . 80 Figure III.27 : Trajectoire du
robot après la phase d'apprentissage
(Environnement 2, Cas 1) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 82 Figure III.28 :
Performance du robot durant le test (Environnement 2, Cas 1).
. . . . . . . .
. . 83 Figure III.29 : Structure de
réseau après la phase d'apprentissage (de A vers
B)
(Environnement 2, Cas 1) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 84 Figure III.30 :
Structure de réseau après la phase d'apprentissage (de
B vers A)
(Environnement 2, Cas 1) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 85 Figure III.31 :
Trajectoire du robot dans la première itération
(Environnement 2, Cas 2) . . 87 Figure III.32 : Trajectoire du
robot après la phase d'apprentissage
(Environnement 2, Cas 2) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 88 Figure III.33 :
Performance du robot durant le test (Environnement 2, Cas 2).
. . . . . . . .
. . 89 Figure III.34 : Structure de
réseau après la phase d'apprentissage (de C vers
D)
(Environnement 2, Cas 2) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 90 Figure III.35 :
Structure de réseau après la phase d'apprentissage (de
D vers C)
(Environnement 2, Cas 2) . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 91 Figure III.36 :
Exemple d'un environnement qui possède des
pièges. . . . . . .
. . . . . . . .
. . . 92

Listes des tableaux
Tableau III.1 : Les affinités entre les
anticorps après la phase d'apprentissage (de A vers
B)
(Environnement 1) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 69
Tableau III.2 : Correspondance entre les anticorps et les
actions . . . . . . . .
. . . . . . . .
. . . . . 69 Tableau III.3 :
Les affinités entre les anticorps après la phase
d'apprentissage (de B vers A)
(Environnement 1) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 71
Tableau III.4 : Les affinités entre les anticorps
après la phase d'apprentissage (de C vers D)
(Environnement 1) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 76
Tableau III.5 : Les affinités entre les anticorps
après la phase d'apprentissage (de D vers C)
(Environnement 1) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 77
Tableau III.6 : Les affinités entre les anticorps
après la phase d'apprentissage (de A vers B)
(Environnement 2) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 83
Tableau III.7 : Les affinités entre les anticorps
après la phase d'apprentissage (de B vers A)
(Environnement 2) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 85
Tableau III.8 : Les affinités entre les anticorps
après la phase d'apprentissage (de C vers D)
(Environnement 2) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 90
Tableau III.9 : Les affinités entre les anticorps
après la phase d'apprentissage (de D vers C)
(Environnement 2) . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . 91
Introduction générale
Un agent autonome doit, à chaque instant, choisir
quelle action effectuer parmi un ensemble d'actions possibles, en fonction de
ses perceptions internes et externes, de son état interne et de ses
objectifs.
L'Intelligence Artificielle classique s'attache
généralement à simuler les facultés humaines telles
que le raisonnement logique ou la compréhension du langage naturel, elle
est basée sur la manipulation de connaissances symboliques,
considérée comme nécessaire et suffisante pour obtenir des
comportements intelligents. Certains de ces systèmes symboliques se sont
avérés très performants pour un domaine d'expertise
donné, mais complètement inefficaces pour des domaines connexes
car le modèle de monde introduit par le programmeur n'est souvent pas
adaptable à un environnement légèrement différent,
par exemple, un agent champion d'échecs sera incapable de jouer aux
dames. De nombreux travaux en IA classique portent en particulier sur la
planification globale symbolique, c'est-à-dire sur la sélection
d'une séquence d'actions à réaliser en fonction d'une
unique représentation symbolique de l'environnement et d'un objectif
global lui aussi unique. L'élaboration d'un plan est une
opération coûteuse dans des environnements complexes, par exemple
lorsqu'il faut calculer le chemin optimal à suivre pour traverser une
pièce contenant un grand nombre d'obstacles. Lorsque la planification
est le seul mécanisme de sélection de l'action, l'utilisation
d'un plan n'est efficace que dans un environnement prévisible, il est
évidemment impossible de prévoir tous les cas dans un
environnement dynamique et partiellement connu. La planification traditionnelle
n'est généralement pas interruptible, et ne prend donc pas en
compte l'environnement courant.
Devant le manque de réactivité, de robustesse et
d'adaptabilité des agents purement cognitifs, des chercheurs ont
posé les bases de ce qu'ils ont appelé «la nouvelle IA»
à partir de leurs expériences dans les domaines de la robotique
autonome et de la vie artificielle, en s'inspirant de la biologie et de
l'éthologie.
D'après R. Brooks, L. Steels ou encore P. Maes, il
n'est pas indispensable d'être capable de raisonner sur une
représentation abstraite du monde pour présenter un comportement
intelligent, c'est-à-dire permett ant de survivre au mieux dans son
environnement. En couplant les capteurs et les effecteurs d'un agent
situé, il est en effet possible de produire des comportements de survie
correspondant à une certaine forme d'intelligence, la
représentation symbolique n'est pas nécessaire dans ce cas,
puisqu'il suffit à l'agent de savoir interpréter les informations
en fonction de sa perception de l'environnement et du but poursuivi.
De nombreuses architectures ont été
proposées et testées avec succès sur des robots mobiles,
mais il a été rapidement démontré que ces approches
limitaitent considérablement les capacités des agents, ces
système sont robuste, mais manquent d'adaptabilité puisqu'il ne
possède ni représentation dynamique de son environnement, ni
capacité d'apprentis sage ce qui a mené les chercheurs a ce
diriger vers des architectures hybrides, qui permettent aux agents de
réagir rapidement aux modifications de leur environnement tout en
étant capables d'anticiper et de planifier quand cela est possible.
Devant ce manque d'adaptabilité plusieurs architectures
basées sur l'approche réactive ont été
couplées aux techniques d'apprentis sage (réseaux de neurones,
algorithmes génétiques et systèmes immunitaires
artificiels...) afin que le comportement de l'agent soit intelligent,
adaptatif, flexible et autorégulateur.
Le système immunitaire est un moyen de défense
remarquable, qui existe chez de très nombreux organismes comme les
insectes, les plantes ... etc. Mais dont la forme la plus évoluée
est retrouvée chez les vertébrés supérieurs. Il
comporte un ensemble de moyens (organes, tissus, cellules et molécules)
permettant de répondre rapidement, de façon souvent
spécifique et efficace contre les nombreux pathogènes auxquels
nous sommes confrontés. Il montre beaucoup de caractéristiques
cognitives intéressantes comme : la reconnaissance des formes
moléculaires étrangères, l'apprentissage de nouvelles
formes, la mise en mémoire de ces formes et l'adaptation à des
environnements dynamiques. D'où l'apparition des systèmes
immunitaires artificiels (AIS) qui ont démontré leur
efficacité dans plusieurs domaines.
Notre objectif est la construction d'un système
basé sur la théorie des réseaux immunitaires
présenté par N. Jerne pour diriger et faire adapter un robot
mobile dans un environnement inconnu en évitant des obstacles statiques
et en atteignant un but.
Le mémoire est organisé en trois chapitres :
> Chap itre I : présente le
problème de la navigation autonome des robots mobiles et les
différentes architectures proposés pour sa solution.
> Chapitre II : présente les
systèmes immunitaires artificiels, la théorie des réseaux
immunitaires et justifie leur application à la navigation autonome des
robots mobiles.
> Chap itre III : présente la
démarche de développement de notre système et les
résultats obtenus.
Pour plus de détail, nous présenterons la
bibliographie et les Annexes :
> L'annexe A présente les robots mobiles et leurs
applications.
> L'annexe B présente le robot Khepera.
> L'annexe C présente le simulateur du robot
Khepera.
CHAPITRE
I
I. Navigation autonome
des robots mobiles
1. Introduction
Un robot mobile (voir l'annexe A) est un système
mécanique, électronique et informatique agissant physiquement sur
son environnement en vue d'atteindre un objectif qui lui a été
assigné. Cette machine est polyvalente et capable de s'adapter à
certaines variations de ses conditions de fonctionnement. Elle est dotée
de fonctions de perception, de décision et d'action. Ainsi, le robot
devrait être capable d'effectuer des tâches diverses, de plusieurs
manières, et accomplir correctement sa tâche, même s'il
rencontre de nouvelles situations inattendues.
Nous nous intéressons dans ce mémoire à une
sous famille des robots mobiles existants appelée Les robots mobiles
autonomes. Un robot est dit autonome :
> S'il est capable de choisir ses actions pour atteindre son
but.
> S'il est capable d'accomplir correctement sa tâche
même s'il rencontre de nouvelles situations inattendues sans intervention
humaine.
Dans ce chapitre nous présenterons le problème
de la navigation dans la robotique mobile. On définira les
différentes stratégies de navigation et on donnera les
catégories des contrôleurs existants.
2. Quelques notions sur la navigation des robots 2.1.
Définition
D'après Levitt et Lawton (1990), la navigation est
définie comme le procédé permettant de répondre aux
trois questions suivantes :
(i) "Où suis-je ?".
(ii) "Où sont les autres lieux par rapport à moi
?".
(iii) "Comment puis-je atteindre ces autres lieux depuis
l'endroit où je me trouve ?".
Donc, la navigation est la science [WIK 2006] et l'ensemble des
techniques qui permettent de :
> connaître la position (coordonnées) d'un
mobile par rapport à un système de référence, ou
par rapport à un point fixe déterminé.
> calculer ou mesurer la route à suivre pour
rejoindre un autre point de coordonnées connues en respectant un certain
nombre de contraintes et de critères qui découlent de plusieurs
facteurs, qui dépendent généralement des
caractéristiques du robot, de l'environnement, et du type de tâche
a exécuter.
> calculer toute autre information relative au
déplacement de ce mobile (distance et durée, vitesse de
déplacement, heure estimée d'arrivée, etc.)
2.2. Les stratégies de navigation
Les stratégies de navigation qui permettent à
un robot mobile de se déplacer pour rejoindre un but sont
extrêmement diverses, de même que les classifications qui peuvent
en être faites. Nous reprenons ici une classification établie par
Trullier et Meyer [TRU 1997], qui présente l'avantage de distinguer les
stratégies sans modèles internes et les stratégies avec
modèle interne. Cette classification comporte :
2.2.1. La navigation par carte
Elle s'appuie sur un modèle interne du monde, une
carte, qui supporte une planification. Ce modèle interne mémorise
la structure spatiale de l'environnement, indépendamment d'un but
précis. Chacune des positions mémorisées dans ce
modèle interne peut alors être utilisée comme but par le
processus de planification dont le rôle est de calculer une route vers ce
but. Le principe de la navigation par carte est basé sur la
cartographie, la localisation et la planification. On peut citer deux sous
classe :
> Navigation par carte topologique : Une
carte topologique est un graphe, dans lequel chaque noeud correspond à
un endroit caractéristique (carrefour entre couloirs, entrées
dans les espaces ouverts ...), appelé meeting point dans
plusieurs travaux, ou encore lieu. Chaque lieu devra être décrit
par un ensemble de caractéristiques propres, qui permettront au robot de
le reconnaître. Une arête liant deux noeuds signifie qu'il existe
une commande référencée capteur que le robot peut
exécuter afin de se déplacer entre les deux lieux correspondants.
Cette représentation est particulièrement adaptée pour
décrire des réseaux de couloirs : les lieux
correspondent aux carrefours, les arêtes aux couloirs qui les lient. Pour
la génération d'une trajectoire entre deux lieux définis
dans une carte topologique, il suffit de rechercher un chemin dans le graphe.
Dans cette stratégie, le robot n'a nul besoin de connaître sa
position précise par rapport à un repère du monde. Il doit
seulement déterminer une localisation qualitative « Je suis
dans le lieu A » et, au mieux, une estimation de sa position relative
par rapport à un repère lié au lieu dans lequel il se
trouve.
> Navigation par carte métrique :
La navigation métrique exploite une représentation
géométrique du monde, qui peut être donné par un
utilisateur, ou construite par le robot lui-même. Elle représente
une extension de la précédente car elle permet au robot de
planifier des chemins au sein de zones inexplorées de son environnement.
Elle mémorise pour cela les positions métriques relatives des
différents lieux, en plus de la possibilité de passer de l'un
à l'autre. Ces positions relatives permettent, par simple composition de
vecteurs, de calculer une trajectoire allant d'un lieu à un autre,
même si la possibilité de ce déplacement n'a pas
été mémorisée sous forme d'un lien.
L'équivalent mathématique de la carte
métrique, est un espace vectoriel muni d'une distance, où chaque
vecteur AB exprime le chemin entre un lieu A et un lieu B en tenant compte de
la distance et de l'orientation. Les détours et raccourcis
métriques peuvent alors être manipulés via les
opérations vectorielles telles que la norme (estimation des distances),
l'addition ou la soustraction vectorielle (construction de nouveaux chemins).
Il n'est plus requis d'avoir emprunté un chemin pour pouvoir l'utiliser,
et c'est bien là la différence fondamentale avec la carte
topologique.
2.2.2. La navigation réactive
Les algorithmes de modélisation de l'environnement
sont très coûteux en temps de calcul. Le robot en plus a souvent
qu'une vue très partielle de son environnement. Ceci implique que le
robot peut remettre en cause son plan, en raison de présence
imprévue d'obstacles par exemple, entraînant une nouvelle
modélisation coûteuse de l'environnement et une
régénération de chemin. De plus, le délai entre
l'apparition d'un nouvel obstacle, sa prise en compte dans le modèle et
la régénération d'un nouveau plan pouvant être
important, il existe un risque de collision pour le robot si une réponse
immédiate est nécessaire. Pour cela
les roboticiens ont cherché à remplacer ou
compléter la navigation à base de carte par des processus rapide
qui se regroupent sous le terme de navigation réactive. La navigation
réactive utilise des actions réflexes pour guider le robot et se
différencient essentiellement par le type de perceptions
utilisées pour déclencher ces actions. Les comportements de ce
type restent essentiels dans les robots modernes car, du fait de leur
simplicité, ils sont généralement exécutés
très rapidement et ils permettent de réaliser des tâches de
bas niveau, comme l'évitement des obstacles imprévus,
essentielles à la sécurité d'un robot. On peut citer trois
sous classe :
> Navigation par approche d'un objet :
cette capacité de base permet de se diriger vers un objet
visible depuis la position courante du robot. Elle est en général
réalisée par une remontée sur la perception de l'objet,
comme dans l'exemple célèbre des véhicules de Valentino
Braitenberg qui utilisent deux capteurs de lumière pour atteindre ou
fuir une source lumineuse. Cette stratégie utilise des actions
réflexes, dans lesquelles chaque perception est directement
associée à une action. C'est une stratégie locale,
c'est-à-dire fonctionnelle uniquement dans la zone de l'environnement
pour laquelle le but est visible.
> Navigation par Guidage : Cette
capacité permet d'atteindre un but qui n'est pas un objet
matériel directement visible, mais un point de l'espace
caractérisé par la configuration spatiale d'un ensemble d'objets
remarquables, ou amers, qui l'entourent ou qui en sont voisins. La
stratégie de navigation, consiste alors à se diriger dans la
direction qui permet de reproduire cette configuration. Le robot tente donc de
mémoriser une "photo" de l'ensemble de ses perceptions lorsqu `il se
trouve dans une situation but et cherche à faire correspondre ses
perceptions courantes avec la situation mémorisée. Cette
stratégie de navigation requiert néanmoins la perception directe
des amers caractéristiques de la situation but et dès lors qu'ils
ne sont plus perçus, la stratégie échoue et ne peut donc
être utilisée que dans un contexte local. Cette capacité
semble utilisée par certains insectes, comme les abeilles, et a
été utilisée sur divers robots. Cette stratégie
utilise également des actions réflexes et réalise une
navigation locale qui requiert que les amers caractérisant le but soient
visibles. Enfin il est à noter que ce type de navigation ne requiert
aucune modélisation spatiale. En effet, la mise
en correspondance d'une mémoire perceptive avec les
perceptions courantes ne requiert en aucun cas un traitement spatial
spécifique.
> Navigation par association : Cette
capacité est la première capacité réalisant une
navigation globale, c'est-à-dire qui permette de rejoindre un but depuis
des positions pour lesquelles ce but ou les amers qui caractérisent son
emplacement sont invisibles. Elle s'applique généralement
à des environnements plus conséquents et repose sur la notion de
lieu et requiert une représentation interne de l'environnement qui
consiste à définir des lieux comme des zones de l'espace dans
lesquelles les perceptions restent similaires, et à associer une action
à effectuer à chacun de ces lieux. L'enchaînement des
actions associées à chacun des lieux reconnus définit une
route qui permet de rejoindre le but. Cependant, ce type de navigation, s'il
est plus robuste que la navigation par guidage, ne permet pas encore
l'établissement de réelle stratégie dans la mesure
où les informations mémorisées dépendent
directement du but que l'on souhaite rallier. Si le robot souhaite rallier un
autre but, il doit posséder une mémorisation différente de
l'environnement orientée vers ce nouveau but. Il n'existe pas encore de
véritable représentation interne de l'environnement à ce
niveau de navigation dans la mesure où les différents lieux
mémorisés ne possèdent pas de relations internes. Etant
donné un lieu A, un robot connaît la direction immédiate
à prendre, mais il est incapable de prédire la prochaine
direction avant de se trouver effectivement dans le nouveau lieu. Ces
modèles permettent donc une autonomie plus importante mais sont
limités à un but fixé. Une route qui permet de rejoindre
un but ne pourra en effet pas être utilisée pour rejoindre un but
différent. Changer de but entraînera l'apprentis sage d'une
nouvelle route, indépendante des routes permettant de rejoindre les
autres buts.
3. Les architectures de contrôles de robots
Les architectures de contrôles peuvent être
classées en trois grandes catégories que nous détaillerons
par la suite : les contrôleurs hiérarchiques, les
contrôleurs réactifs et les contrôleurs hybrides. Toutes ces
architectures ne diffèrent pas forcement par les méthodes
élémentaires employées mais plutôt par leur
agencement et leurs relations.
3.1. Les contrôleurs
hiérarchiques
Ces approches s'appuient sur les techniques de l'intelligence
artificielle classique. Elles visent à reproduire le mode de
raisonnement humain ou tout au moins une certaine vision du mode de
raisonnement humain. Pour cela, ils sont appuyé sur un schéma
d'intelligence artificielle conçu dans les années cinquante par
Newell et Simon. Le traitement est décomposé en une série
d'opérations successives décrites par la figure I.1.
Capteurs

Percevoir
Modéliser Planifier
Agir

Effecteurs
Figure I.1 : contrôleur
hiérarchique
> La première opération consiste à
traiter les données sensorielles qui fournissent au robot des
informations sur son environnement.
> L'étape suivante consiste à construire ou
à mettre à jour, à partir des données capteurs, un
modèle du monde dans lequel évolue le robot. Ce modèle
peut être par exemple une identification du type et de la position des
obstacles que le robot doit éviter.
> Ce modèle est utilisé pour planifier une
suite d'états conduisant le robot à effectuer la tâche
recherchée.
> La dernière opération a pour but de calculer
puis d'exécuter les actions permettant au robot de suivre le plan
généré par l'étape précédente.
La partie la plus importante, et la plus gourmande en calcul,
est celle qui concerne la modélisation et la planification qui peuvent
prendre un temps assez long, et ceci notamment en environnement peu
structuré. Le temps disponible pour l'action est par conséquent
beaucoup plus court. L'intervalle de temps entre les phases de perception et
d'action peut de plus être relativement long. On parle souvent pour cette
approche de structure S.M.P.A. (pour Sense, Model, Plan, Act).
Dans une telle architecture, on essaie de construire un
modèle de l'environnement le plus complet possible et ensuite de
raisonner sur la (les) représentation(s) de celui-ci. On
privilégie l'aspect cognitif dans le but de reproduire au mieux
l'intelligence humaine. Ces architectures ont rapidement montré leurs
limites et leur incapacité à fonctionner dans un environnement
qui ne soit pas statique et simplifié à l'extrême.
Ses points forts sont :
> L'avantage essentiel de ces architectures réside
dans la possibilité d'intégrer des raisonnements de haut niveau
(niveau mission, planification) qui s'appuient sur des modèles assez
complets (cartes par exemple) de l'environnement dans lequel évolue le
robot. Cet aspect est, comme nous le verrons plus loin, absent des
architectures purement réactives.
Ses points faibles sont :
> Leur principal inconvénient provient de leur
faible vitesse de réaction. Elles sont en effet totalement incapables de
prendre en compte des obstacles dynamiques ou non détectés lors
de la modélisation. Ceci est dû à la lenteur des phases de
modélisation et de planification qui ne peuvent
généralement pas être exécutées en temps
réel, même lorsqu'elles sont implantées sur de gros
calculateurs extérieurs au robot.
> La construction du modèle sur lequel se base la
planification n'est pas une tache aisée. Il est en pratique souvent
difficile de relier les données sensorielles aux objets du monde
réel. Ceci est dû en grande partie à l'imprécision
de l'information délivrée par
les capteurs utilisés en robotique. R. A. Brooks
résume ce problème en affirmant qu'il existe une grande
différence entre capter et percevoir.
> Ces systèmes ne sont pas adaptatifs dans la
mesure où il leur est difficile de réagir à des situations
légèrement différentes de celles qu'ils connaissent. Cela
exprime une lacune dans la possibilité de généraliser des
situations possibles.
> Ces systèmes sont en général peu
robustes de par leur modèle centralisé. Une défaillance
d'un module peut provoquer le blocage de toute l'architecture.
L'intelligence artificielle traditionnelle s'est
appuyée sur la volonté de reproduire des systèmes vivants,
à travers des concepts plus ou moins valides issus d'observations
macroscopiques empiriques, ne correspondant pas aux mécanismes
réels régissant les êtres vivants.
L'utilisation de ces approches semble donc limitée aux
robots évoluant dans des environnements statiques et dont la structure
est fortement contrainte et connue a priori. Les limitations de cette approche
ont conduit certains chercheurs à développer des systèmes
réactifs.
3.2. Les contrôleurs réactives
3.2.1. Principe
Cette approche, radicalement différente de la
précédente se distingue par l'abandon des phases de
modélisation et de planification. Elle est née à partir de
considérations issues de l'éthologie et plus
particulièrement de l'entomologie. Nous savons aujourd'hui que de
nombreux êtres vivants, dont en particulier les insectes, ne
possèdent, en raison de leur taille que très peu de
capacités de modélisation et de raisonnement. Ils n'en sont pas
moins capables de mener à bien des tâches complexes. Leur
comportement semble même du point de vue d'un observateur
extérieur résulter d'une intelligence avancée, similaire
par certains cotés à la notre. Cette constatation induit
l'idée suivante : pourquoi ne pas abandonner le concept centré
sur la modélisation de l'environnement et le raisonnement, au profit
d'une architecture
totalement distribuée privilégiant un lien
étroit entre perception et action. Arkin parle de modèle
"action-oriented perception" précisant que les besoins perceptifs d'un
agent doivent être basés sur ses nécessités en
action. Cela s'oppose à une approche hiérarchique collectant des
informations, puis travaillant à différents niveaux
d'abstraction, sans vraiment prendre en considération les utilisations
ultérieures qui en seront faites (on privilégie le modèle
et sa mise à jour). Brooks va même plus loin qu' Arkin en
affirmant qu'il n'y a pas de meilleur modèle de l'environnement que
l'environnement lui-même.
En partant de cette constatation, des chercheurs ont
tenté de s'inspirer de cette autre vision de l'intelligence en proposant
une architecture de commande nouvelle basée sur la composition de
plusieurs modules implémentant des comportements simples. Le
comportement global du robot est alors le résultat de la composition des
divers comportements élémentaires. Il émerge de
l'interaction de ces derniers entre eux et avec l'environnement. Chacun des
comportements de base, réalise un couplage étroit entre les
capteurs et les effecteurs du robot. La simplicité du traitement
réalisé, ainsi que la parallélisation des comportements,
permettent une grande rapidité d'exécution.
Figure I.2 : contrôleur
réactive
On parle généralement de systèmes de
commande réactifs pour qualifier ce type de fonctionnement. On peut
toutefois distinguer deux définitions assez différentes de la
réactivité. L'informaticien parlera de système
réactif pour désigner un système apte à
réagir continûment à un environnement physique, à
une vitesse déterminée par cet environnement. Dans le domaine des
sciences cognitives, par contre, on dira d'un agent (i.e. robot) qu'il est
réactif s'il ne possède pas de représentation explicite du
monde. Ces deux définitions se recoupent toutefois en ce qui concerne
les systèmes de commande réactifs, puisque ceux-ci
réagissent directement aux stimuli provenant du monde extérieur
en évitant la construction d'un modèle forcement entaché
d'erreurs en environnement réel, ce qui autorise des vitesses
d'exécution importantes. Nous pouvons également noter que si l'on
s'en tient à la première définition, l'opposition entre
systèmes réactifs et systèmes hiérarchiques n'est
plus aussi nette. Les systèmes hiérarchiques peuvent en effet
être considérés comme réactifs dans une
échelle de temps plus lente. Rien n'interdit de plus
d'imaginer, la puissance des ordinateurs augmentant sans cesse, que des
systèmes hiérarchiques beaucoup plus rapides pourront être
réalisés dans le futur.
3.2.2. L'approche comportementale
En IA classique, les différents modules d'un
système intelligent sont organisés verticalement, par grandes
fonctions telles que la vision, la perception, la construction de la
représentation du monde ou encore la planification. Les flux de
données circulent selon un unique cycle
<<perception-décision-action>>, qui ne garantit pas la
rapidité de réponse du système. L'approche
<<orientée-comportement>> propose une organisation
horizontale, dans laquelle chaque module correspond à un cycle
perception-décision-action spécialisé dans la
réalisation d'une fonctionnalité. Ce type d'architecture
distribuée permet d'organiser des modules qui réagissent
indépendamment les uns des autres à des aspects précis de
l'environnement. Il ne repose pas sur un système centralisé de
perception, chargé d'interpréter les signaux en provenance de
l'environnement et de les traduire en données symboliques : chaque
module perçoit uniquement les stimuli qui le concernent. De plus, les
modules ne partagent pas de représentation centralisée de
l'environnement ou de l'état de l'agent : chaque module manipule
exclusivement ses données propres.
L. Steels définit un comportement d'un système
(individu ou groupe) comme une <<régularité>>
observée dans la dynamique d'interaction entre le système et son
environnement. Le comportement est qualifié d'intelligent s'il permet au
système de survivre au mieux dans son environnement. L'approche
<<orientée-comportement>> tente de dégager des motifs
représentatifs de l'interaction d'un agent avec son environnement et de
les exprimer sous la forme de règles comportementales. Le
problème de la perception et de l'action dans un environnement physique,
ou tout au moins finement simulé, est important. Dans certains cas, le
comportement peut émerger, c'est-à-dire être observé
sans pour autant avoir été décrit explicitement sous forme
de règles. L'adaptabilité et les capacités d'apprentissage
sont souvent mises en exergue, car elles améliorent l'intelligence en
permett ant au système d'évoluer dans un environnement dynamique
qu'il doit explorer.
Pour décrire les architectures basées sur les
comportements, L. Steels distingue les comportements (définis
précédemment), les systèmes comportementaux et les
mécanismes comportementaux d'un agent. Les systèmes
comportementaux sont des modules capables d'assurer une fonctionnalité
particulière pour l'agent, comme l'évitement d'obstacle ou la
recherche de nourriture. Pour être efficace, un système
comportemental doit être adapté à l'environnement et aux
objectifs de l'agent. Une fonctionnalité est réalisée par
un ou plusieurs comportements, et un système comportemental peut
contribuer à la réalisation de plusieurs
fonctionnalités.
Un système comportemental est constitué d'un
ensemble de mécanismes comportementaux. Un mécanisme
comportemental est un principe ou une technique permettant de créer un
comportement particulier, par exemple en couplant des capteurs et des
effecteurs ou en construisant une carte cognitive. Un tel mécanisme est
implémenté en utilisant des structures et des processus
(capteurs, effecteurs, programmes, structures de données, etc.).
Les mécanismes comportementaux doivent être les plus simples
possibles, afin que ce soit les interactions entre ces mécanismes qui
fassent émerger le comportement attendu. Pour résumer, un
comportement est ce qui est observé, alors qu'un système
comportemental est ce qui est implémenté dans l'agent par des
mécanismes comportementaux de façon à faire émerger
le comportement.
Enfin, les différents systèmes comportementaux
d'un agent interagissent, directement ou indirectement, et sont
généralement en compétition : pour obtenir un comportement
global cohérent, il faut les coordonner. Le problème de la
sélection de l'action est alors généralement celui du
choix des actions à réaliser en fonction d'objectifs
conflictuels. Il ne s'agit pas seulement de choisir une séquence
d'actions nécessaires à la satisfaction d'un objectif prioritaire
: il faut fréquemment faire des compromis, ou encore combiner des
actions indépendantes. T. Tyrrell a réalisé un excellent
travail de comparaison des mécanismes de sélection de l'action
pour différentes architectures basées sur les comportements.
Selon lui, une bonne architecture de sélection de l'action doit
être capable de choisir un système comportemental possédant
un certain nombre de caractéristiques, dont voici les principales :
> motivé : le système
comportemental sélectionné correspond prioritairement à
celui de plus forte motivation en fonction des objectifs et des ressources de
l'agent. Par
exemple, la faim peut être provoquée par un
niveau d'énergie faible ; la faim peut déclencher la recherche de
nourriture, à condition qu'une activité prioritaire, telle que la
fuite devant un prédateur, ne soit pas en cours.
> interruptible : en cas d'urgence, le
système comportemental courant peut être interrompu au profit d'un
autre. Par exemple, la recherche de nourriture pourra être
reportée le temps d'échapper à un prédateur.
> persistant : s'il est pertinent, le
système comportemental en cours doit continuer afin d'éviter
l'oscillation entre plusieurs systèmes comportementaux éligibles.
Par exemple, si l'agent est à la recherche de nourriture, il doit
continuer même s'il a subitement autant soif que faim.
> opportuniste : si l'occasion se
présente et si le système comportemental courant le permet, un
système comportemental de moins forte motivation peut être
sélectionné le temps de satisfaire un objectif secondaire. Par
exemple, si l'agent passe à côté d'une source de boisson
alors qu'il cherche de la nourriture sans être trop affamé, il
pourra faire un détour pour boire puis reprendre sa recherche.
> direct : le système
comportemental doit préférer les actions consommatoires aux
actions appétitives, c'est-à-dire favoriser les actions qui
mènent directement à la satisfaction d'un objectif (action
finale) par rapport aux actions qui préparent une action consommatoire.
Par exemple, l'agent a intérêt à manger ce qui est
disponible là où il se trouve plutôt que d'aller vers une
autre source de nourriture.
> conciliant : les actions choisies
doivent correspondre de préférence à un compromis entre
plusieurs solutions, de façon à satisfaire un maximum d'objectifs
concurrents plutôt que de n'en satisfaire qu'un seul de façon
optimale.
Pour conclure voici les avantages et les inconvénient
des systèmes comportementale :
Ses points forts sont :
> Rapidité de réponse qui lui donne la
capacité d'évoluer dans des environnements fortement dynamiques.
La simplicité des comportements permet d'accroître encore cette
vitesse par une réalisation sur circuit imprimé.
> Robustesse qui découle de la
parallélisation et de l'indépendance relative des comportements
qui permet au robot de continuer à fonctionner en cas de panne de l'un
d'entre eux, ce qui est très important lorsque l'on a à faire
à un robot autonome.
> L'aspect incrémental en niveau : il suffit de
mettre en place un niveau de compétence puis d'ajouter les niveaux
supérieurs sans avoir, en théorie, à remettre en question
les niveaux inférieurs. Cet aspect est primordial pour la mise au point
et la recherche de pannes. Cette approche permet également
d'accroître la complexité du comportement global du robot sans
pour autant accroître celle du contrôle global puisque celui-ci est
complètement distribué.
> Sa simplicité implique un faible coût de
production et des possibilités de miniaturisation importantes. Ceci
ouvre de nouveaux domaines d'application. Brooks s'intéresse notamment
à l'utilisation d'un grand nombre de petits robots dans le domaine
spatial.
Ses points faibles sont :
> L'approche comportementale souffre d'une absence de
capacité de modélisation et de raisonnement.
La naissance de l'approche comportementale a
été en 1986 dans l'architecture de subsumption (SA)
proposée par le chercheur Rodney Brooks qui est à la base
de toutes les autres architectures.
3.2.3. L'architecture de subsumption
L'architecture de subsomption a été
proposée par le chercheur Rodney Brooks pour la construction d'agents
réactifs. Elle consiste à décomposer un agent en modules
verticaux chacun produisant un comportement très limité. Chacun
de ses comportements peut être vu comme une fonction qui prend en
entrée des perceptions et produit des actions en sortie afin de
réaliser une tâche précise. Un point important à
noter est que ces tâches ne doivent
nécessiter pour leur résolution aucune
représentation symbolique complexe, ni mécanisme de raisonnement
sophistiqué.
Ceci permet de construire les couches incrémentalement
en partant de la couche la plus primitive. Chaque couche dépend et
communique peu avec les autres. Il s'agit plutôt d'une approche de
conception montante (bottom-up) plutôt que descendante (top-down). Brooks
propose une décomposition d'un système autonome basé sur
les manifestations extérieures du système. Chaque couche doit
provoquer un comportement observable. Chaque couche connecte ses propres
senseurs aux actions et n'est pas dépendante d'aucune autre couche pour
prendre des décisions. Les couches opèrent en parallèles.
De nouvelles couches peuvent être rajoutées au système sans
modification des couches déjà existantes.
R. Brooks définit, dans le cas d'un robot d'exploration,
8 niveaux de compétences qui sont dans l'ordre :
> Éviter les obstacles (s'arrêter avant de
rentre en collision avec un obstacle immobile, s'écarter des obstacles
qui s'approchent).
> Errer sans but (au hasard) sans rien toucher.
> Explorer le monde en observant à distance les
emplacements qui semblent atteignables et s'y rendre.
> Construire une carte de l'environnement et des routes d'un
lieu à l'autre
> Remarquer les changements dans l'environnement statique
> Raisonner sur le monde en termes d'objets identifiables et
de réalisation de tâches relativement à certains objets
> Formuler et exécuter un plan qui implique un
changement voulu de l'état du monde
> Raisonner sur les comportements des objets et modifier les
plans en conséquence
On observe que chaque niveau de comportement inclut comme
sous-ensemble le comportement des niveaux précédents. Par
exemple, pour errer sans but sans heurter d'obstacles, il faut savoir
éviter les obstacles. La couche de base doit être
complètement implémentée et testée avant de passer
à la couche supérieure. La couche de base donne un robot qui
évite les obstacles s'approchant de lui s'il est immobile et qui
s'arrête avant de frapper un obstacle. La deuxième couche donne un
robot qui se déplace au hasard en évitant
les obstacles. Cette couche supprime la direction qui est
prise par la couche qui fuit les obstacles. En fait, cette couche combine le
déplacement au hasard avec l'évitement d'obstacles. La
troisième couche subsume la deuxième couche en percevant le monde
extérieur.
Une architecture de subsomption est basée sur les
caractéristiques suivantes :
> une architecture de décomposition du comportement de
l'agent en niveaux,
> les niveaux pouvant se déclencher
simultanément, il y a une politique de priorité fixe entre les
niveaux,
> chaque module est connecté en parallèle entre
les entrées (capteurs) et les sorties (effecteurs) de l'agent,
> Les modules sont arrangés en couches dans
lesquels les couches inférieures peuvent subsumer les fonctions des
couches supérieures (i.e plus bas est la couche, plus grande est sa
priorité),
> Les couches basses gouvernent les comportements de base et
les couches supérieures ajoutent des comportements plus
sophistiqués,
> Le comportement total d'un agent peut être
changé en ajoutant une nouvelle couche au dessus des
précédentes, sans changer les couches existantes.
Les interactions entre les modules sont fixes et s'effectuent
par l'intermédiaire d'un rapport de dominance défini lors de la
conception. Les modules effectuent leurs tâches en parallèles,
mais si deux modules sont en conflits (i.e produisent des résultats
contradictoires), alors seules les informations du module dominant sont prises
en compte.
Le problème qu'il faut noter est que la
priorité entre les modules de compétence est fixe, mais la
priorité devra changer suivant l'environnement, et l'état du
robot, ce qui a conduit à un couplage de cette architecture aux
techniques d'étude qui ont été inspiré de la
biologie.
3.2.4. Autres architectures
réactives
L'approche comportementale a inspiré plusieurs travaux
concernant aussi bien la réalisation des comportements réactifs,
que la mise en place d'architectures globales permettant leur composition.
Une autre approche possible consiste à composer les
commandes préconisées par plusieurs comportements. C'est
notamment le principe des travaux de T. L. Anderson et M. Donath [AND 1990].
Chaque module de l'architecture qu'ils proposent représente un
comportement réflexe simple ne possédant aucune capacité
de mémorisation. La définition de tels comportements est
donnée par D. McFarland : « Un comportement réflexe est
la forme la plus simple de réaction à une stimulation externe.
Des stimuli tels qu 'un changement soudain dans le niveau d'illumination, ou un
contact à un endroit donné du corps, génèrent une
réponse automatique, involontaire et stéréotypée
». Ces modules génèrent des champs de potentiels dont
la composition permet de calculer la direction à suivre par le robot. Un
mécanisme permet de plus de sélectionner les comportements
à prendre en compte en fonction de la tâche à accomplir ou
de l'environnement actuel du robot.
D. W. Payton et J. K. Rosenblatt [PAY 1990] proposent
d'utiliser un réseau de neurones artificiels pour fusionner les
commandes préconisées par les différents comportements. Le
système est cependant construit à la main de manière
totalement empirique.
Certains auteurs ont également cherché à
réaliser par apprentissage un système de sélection des
différents comportements. Ces travaux font généralement
intervenir l'apprentissage par renforcement. Dans le système
proposé par M. Humphrys [HUM 1995] par exemple, chaque module
comportemental apprend et met à jour une fonction donnant une
évaluation de l'importance de l'action qu'il propose dans l'état
courant. Le comportement présentant l'action de plus grande importance
est sélectionné pour commander le robot. L. J. Lin [LIN 1993]
utilise un système similaire dans lequel il construit par apprentissage
une fonction donnant le comportement le plus adapté à
l'état courant.
3.3. Les contrôleurs hybrides
Les approches hiérarchiques et réactives sont
diamétralement opposées. Cependant, chacune présente des
caractéristiques intéressantes. Pour cela, des chercheurs ont
essayé de les combiner en mett ant au point des architectures hybrides
permettant notamment d'allier des capacités de raisonnement et de
décision de haut niveau, s'appuyant sur des représentations
abstraites des connaissances, avec des comportements réactifs
garantissant robustesse et flexibilité.
La plupart des contrôleurs actuellement utilisés
choisissent une solution intermédiaire entre ces deux approches sous la
forme d'une architecture hybride. Cette notion est à distinguer de celle
de système hybride en intelligence artificielle (ou système
hybride neurosymbolique) qui désigne un système alliant des
composantes utilisant des techniques issues de l'intelligence artificielle
symbolique classique et des réseaux de neurones artificiels.
L'architecture hybride se compose de deux niveaux. Le premier
est chargé des tâches de navigation de haut niveau, telles que la
localisation, la cartographie et la planification. Pour cela, il s'appuie sur
un second niveau réactif qui est chargé d'exécuter les
commandes avec le plus de précision possible et de gérer les
éléments non modélisés de l'environnement tels que
les obstacles inconnus ou dynamiques. L'action conjointe de ces deux niveaux
permet de réagir rapidement face aux variations imprévues de
l'environnement, tout en permettant la réalisation d'actions
planifiées à plus long terme.
Planification
Figure I.3 : contrôleur hybride
Le bas niveau de ces architectures peut être
réalisé sous forme de comportements, tels que ceux
utilisés dans les architectures réactives. Ces comportements sont
des boucles
sensorimotrices qui relient les actions aux perceptions avec
une phase de décision très courte, qui assurent la
réactivité. Dans le même temps, les informations
sensorielles sont utilisées par le haut niveau dans une boucle
sensorimotrice à une échelle de temps beaucoup plus longue. C'est
la mise en parallèles de ces deux échelles de temps qui fait la
force de ces architectures.
4. L'apprentissage en contrôle
Dans un premier temps, toute l'intelligence dans un agent,
provenait de son concepteur. L'agent est alors lâché dans un
environnement et fait du mieux qu'il peut selon la manière dont il a
été programmé. Cette approche n'est pas
nécessairement la meilleure, tant pour l'agent que pour le concepteur.
En effet, le concepteur n'a qu'une connaissance incomplète de
l'environnement dans lequel l'agent évolue, l'apprentissage étant
alors une voie possible pour que l'agent acquièrt les informations dont
il a besoin.
Les perceptions peuvent être utilisées non
seulement pour agir mais aussi, pour améliorer les capacités
d'action de l'agent dans le futur. L'apprentissage est le résultat de
l'interaction entre l'agent et l'environnement, à travers l'observation
de son propre processus de décision. Apprendre en contrôle
signifie modifier le contrôleur de manière à augmenter ses
performances telles qu'elles sont mesurées par des critères. Le
domaine d'apprentissage est vaste, allant de la mémorisation triviale
d'expériences à la modélisation de
phénomènes. Un agent apprenant peut être divisé en
quatre composants conceptuels représentés par la figure I.4.
Voici une description de chacun d'eux :
> Le composant de contrôle est responsable de la
sélection des actions. Il considère les données
sensorielles et décide des actions.
> Le composant d'apprentissage est responsable de l'apport
d'améliorations. Il se base sur la rétroaction (feedback),
c'est-à-dire l'observation du processus de décision de l'agent,
afin de déterminer les modifications à effectuer au niveau du
composant de contrôle pour obtenir de meilleurs résultats
futurs.
> Le composant d'évaluation des performances permet
de spécifier au composant d'apprentissage, la qualité des actions
de contrôle effectuées. L'évaluation est rendue possible
par la définition d'un standard de performance.
> Le composant de génération de
problème est responsable de la suggestion d'expériences nouvelles
apportant de l'information. Il permet une exploration des différentes
actions possibles qui ne sont pas optimales à court terme mais peuvent
s'avérer intéressantes à longue échéance.
Standard des performances

Buts d'apprentissage
Evaluation des performances
Apprentissage
Générateur de problème
Rétroaction
Connaissances Changements
Actuateurs
Senseurs
Contrôle
Agent
Environnement
Figure I.4 : Modèle
générique d'un agent apprenant.
Il existe trois grandes catégories de méthode
d'apprentissage que sont l'apprentissage supervisé, l'apprentissage avec
maître distant et l'apprentissage par renforcement. Elles se distinguent
par le type de rétroaction disponible.
4.1. Les catégories d'apprentissage
Comme nous l'avons cité précédemment il
existe trois grandes catégories :
> L'apprentissage supervisé : En
apprentissage supervisé, le maître fournit soit l'action qui
devrait être exécutée, soit un gradient sur l'erreur
commise (au niveau de l'action). Dans les deux cas, le maître fournit au
contrôleur une indication sur l'action qu'il devrait
générer afin d'améliorer ses performances.
Action
Erreur sur l'action
Gradient sur l'erreur d'action

Entrée
|
Contrôleurs
|
Action
|
Processus
|
Sortie
|
|
|
|
|
Figure I.5 : L'apprentissage
supervisé
> L'apprentissage par renforcement : Par
opposition, le maître en apprentissage renforcé a un rôle
d'évaluateur et non pas d'instructeur. Il est en général
appelé critique. Le rôle du critique est de fournir une mesure
indiquant si l'action générée par le robot est
appropriée ou non. Il laisse le contrôleur déterminer seul
comment il doit modifier ses actions de manière à obtenir une
meilleure évaluation dans le futur. Contrairement donc à
l'apprentissage supervisé, le critique connaît les objectifs
visés mais ne sait pas comment les atteindre.
Entrée Contrôleur
Processus
Sortie Evaluation
Critique


Action

Figure I.6 : L'apprentissage par
renforcement
> L'apprentissage avec un maître distant :
L'apprentissage par maître distant, comme l'on appelé
Jordan et Rumelhart, est une troisième catégorie d'apprentissage
située
entre l'apprentissage supervisé et l'apprentissage
renforcé. Le maître est dit distant car les informations fournies
pour l'apprentissage sont en relation avec la sortie du processus et pas
directement avec les actions générées par le
contrôleur. Ces actions sont de type "sortie", "erreur sur la sortie", ou
"gradient de cette erreur". Comme dans le cas de l'apprentissage
renforcé, le contrôleur doit découvrir seul l'action qu'il
doit générer afin d'obtenir la sortie désirée.
L'apprentissage renforcé peut alors être vu comme un cas
particulier de l'apprentissage avec maître distant.
Sortie
Erreur sur la sortie
Gradient sur l'erreur de sortie

Processus Sortie
Entrée
Contrôleur

Action
Figure I.7 : L'apprentissage avec un
maître distant
4.2. Le contrôle adaptatif
Les recherches concernant la commande adaptative ont
débuté vers le début des années 1950 et ont
été motivées par le besoin de fournir une aide de haute
performance pour le pilotage d'avions. Après une première
période de relatif succès, les premiers résultats
théoriques fondamentaux sont apparus vers 1960 et ont permis au domaine
de réaliser de grandes avancées. De plus, les progrès
rapides de la micro-électronique ont rendu possible la
réalisation de tels contrôleurs de manière simple et peu
coûteuse.
Un contrôleur adaptatif est un contrôleur de
structure classique ou de structure plus complexe muni de coefficients
ajustables dont l'ajustement à l'aide d'un algorithme convenable permet
d'étendre le domaine de fonctionnement. De manière plus
générale, on peut également définir un
contrôleur adaptatif comme toute méthode de commande utilisant une
mise à jour en temps réel du modèle mathématique du
système à régler. Les différentes méthodes
de commande adaptative se différencient par la manière choisie
pour réaliser l'ajustement des coefficients. On distingue principalement
:
> La commande adaptative à paramètres
pré-programmés.
> La commande adaptative à modèle de
référence.
> La commande adaptative avec identification du
système à régler.
5. Conclusion
Nous avons vu dans ce chapitre les différentes
architectures de contrôle pour la navigation autonome. Nous remarquons
que dans les premiers contrôleurs, l'idée était de
prévoir toutes les situations possibles, donc de fournir aux robots
toute l'intelligence, mais il a était vérifié que cette
approche était très limité, ce qui ramené les
chercheurs de s'inspirer de la nature pour crée des contrôleurs
qui peuvent s'adapter à l'environnement en appliquant les techniques
d'apprentis sage.
CHAPITRE
II
II. Systèmes
immunitaires artificiels
1. Introduction
Dans le but de résoudre des problèmes
complexes, des idées glanées à partir de mécanismes
naturels ont été exploités pour développer des
heuristiques inspirées de la nature. L'optimisation naturelle a
été largement investiguée durant la dernière
décennie ouvrant la voie à de nouveaux paradigmes de calcul comme
les réseaux de neurones, les systèmes évolutionnaires ou
encore les systèmes immunitaires artificiels. L'objectif ultime est de
développer des systèmes qui ont la capacité d'apprendre de
façon incrémentale tout en s'adaptant à leur
environnement. L'immunologie artificielle est un paradigme récent qui
tente de capturer des caractéristiques intéressantes des
systèmes immunitaires naturels, comme la mémorisation, la
reconnaissance de formes, l'apprentissage, et les capacités
d'adaptation. Un système immunitaire artificiel a été
défini comme un système adaptatif inspiré par le
système immunitaire biologique pour la résolution de
problèmes.
Un système immunitaire naturel (SIN) est un
système complexe qui peut être analysé à
différents niveaux : molécules, cellules et organes. Les
interactions complexes entre les entités de chaque niveau
résultent en un système complexe capable de protéger notre
corps de n'importe quelle entité dangereuse appelée
antigène. Les éléments de base des SIN sont les globules
blancs ou lymphocytes. Pour pouvoir identifier les autres molécules, des
lymphocytes particuliers appelés cellules B produisent des
récepteurs appelés anticorps. La partie de l'anticorps
responsable de la reconnaissance de l'antigène est appelée
paratope. Le paratope se lie à une partie spécifique de
l'antigène appelée épitope. La liaison entre un paratope
et un épitope est d'autant plus forte que leurs formes sont
complémentaires. La force de cette liaison est appelée
affinité.
Les caractéristiques intéressantes des
systèmes immunitaires ont encouragé leur adaptation au domaine
informatique pour la résolution de problèmes du monde réel
allants de la sécurité des réseaux jusqu'à la
détection de changements en passant par le web mining. En particulier,
l'investigation des capacités d'adaptation des systèmes
immunitaires a conduit la création des modèles informatiques pour
la navigation autonome des robots mobiles.
Dans ce chapitre nous présenterons le système
immunitaire naturel en indiquant ses caractéristiques cognitives et en
présentant la théorie des réseaux immunitaires de Jerne,
puis on introduira les systèmes immunitaires artificiels en expliquant
le passage vers l'artificiel.
On présentera par la suite le modèle de Farmer
des réseaux immunitaires qui est le modèle le plus connu et le
plus utilisé. Enfin on abordera l'application des réseaux
immunitaires à la navigation autonome des robots mobiles.
2. Système immunitaire naturel
2.1. Principe du fonctionnement
Le système immunitaire protège l'organisme
contre l'invasion de corps étrangers. Il est constitué de
cellules différentes réparties dans tout l'organisme. Chaque
catégorie de cellules a une fonction spécifique et se
déplace dans l'organisme selon les besoins.
La réponse immunitaire fait intervenir deux types de
mécanismes qui sont d'apparitions successives au cours de
l'évolution des espèces et sont intimement connectés :
> L'immunité naturelle non spécifique, encore
appelée innée ou naïve, repose sur
une distinction globale du soi et du non-soi. C'est une
réponse immédiate, non
spécifique de l'agresseur et non adaptative.
> L'immunité acquise spécifique,
également appelée immunité saisie ou adaptative,
représente la partie du système immunitaire qui peut identifier
spécifiquement et éliminer sélectivement le
micro-organisme et les molécules étrangères elle se
caractérise par une spécificité antigénique,
diversité, et mémoire immunologique.
Les phagocytes (une partie du système inné)
sont capables de détruire de nombreux antigènes (envahisseurs)
sur le contact. Le système immunitaire adaptatif utilise des lymphocytes
qui peuvent rapidement s'adapter, afin de détruire les antigènes
qui sont entrés dans la circulation sanguine. Une différence
importante entre ces deux systèmes est que les cellules adaptatives sont
spécifiques aux antigènes et ont une plus grande capacité
de mémoire que les cellules innées. Il existe deux types
principaux de lymphocytes, à savoir les B-cellules et les T-cellules,
qui jouent un rôle remarquable dans les deux immunités (humorale
et cellulaire). Les B-cellules participent à l'immunité humorale
et sécrètent des anticorps par la prolifération clonale
tandis que les T-cellules participent à l'immunité
communiquée par les cellules. Une classe des T-cellules, appelé
les T-cellules tueur, détruit la cellule infectée toutes
les fois qu'elle identifie l'infection. L'autre classe qui
déclenche l'expansion clonale et stimule ou supprime la formation
d'anticorps s'appelle les T-cellules d'aide. Les lymphocytes flottent librement
dans des noeuds de sang et de lymphe.
Quand un microbe pathogène étranger infectieux
attaque le corps humain, le système immunitaire inné est
lancé en première ligne de défense. L'immunité
innée n'est pas dirigée vers des envahisseurs particuliers,
plutôt contre tout microbe pathogène qui envahit le corps. Elle
s'appelle l'immuno-réaction non spécifique. La cellule la plus
importante dans l'immunité innée est un phagocyte, y compris le
monocyte, le macrophage, etc... Un phagocyte intériorise et
détruit les envahisseurs du corps humain. Ensuite le phagocyte devient
un antigène présentant la cellule (APC). L'APC interprète
l'annexe d'antigène et extrait les dispositifs, en traitant et en
présentant les peptides antigéniques sur sa surface aux
T-cellules et aux B-cellules. Ces peptides antigéniques sont un genre de
molécule appelé MHC (complexe principal
d'histocompatibilité) et peuvent distinguer le "soi" du "non-soi"
(antigènes).
Les lymphocytes reconnaîtront l'antigène et
réagissent. Les T-cellules d'aide relâchent les cytokines qui sont
des signaux proliférative agissant sur les B-cellules. Les B-cellules
deviennent stimulées et créent des anticorps quand elle identifie
l'antigène. L'identification est réalisée par l'attache
intercellulaire, qui est déterminée par la forme
moléculaire et la charge électrostatique. Les anticorps peuvent
être distribués dans tout le corps. Le paratope d'un anticorps
peut se lier avec l'épitope d'un antigène (voir figure II.1)
selon son affinité. L'affinité se rapporte au degré de
liaison du récepteur des cellules avec l'antigène. Plus
l'affinité est haute plus l'att ache est fort et ainsi plus
l'identification et la réponse immunisées sont meilleures. Les
T-cellules d'aide fonctionnent, principalement, à côté des
substances de sécrétion, connues sous le nom de cytokines. Ils
constituent des puissants messagers chimiques. Les cytokines favorisent la
croissance, le lancement et le règlement cellulaires. En outre, les
cytokines peuvent également détruire des cellules cibles et des
macrophages stimulés.

Figure II.1 : Interaction entre l'anticorps
et l'antigène
Après identification réussite d'un
antigène par une B-cellule avec une certaine affinité, la cellule
est choisie pour le clonage. Il y'aura une production d'anticorps en un volume
élevé puis leur libération de la surface des B-cellules
pour faire face aux envahisseurs. La prolifération dans le cas des
cellules immunisées est asexuelle, les cellules se divisent (il n'y aura
aucun croisement). Un important mécanisme se produit lors du clonage des
cellules, c'est la maturation d'affinité qui combine deux
processus la mutation qui affecte le récepteur qui se lie avec
l'antigène et le choix qui garantit la survie des fils qui
présente le meilleur degré d'affinité à
l'antigène. Donc la maturation d'affinité (voir figure II.2) a
pour rôle l'amélioration de la réponse à
l'antigène et la création des cellules de mémoires qui
serviront à des futures attaques et ainsi ont peut dire que le
système s'est adapté à l'attaque.
La figure II.2 illustre le mécanisme d'adaptation.
Dans le cas (a) la B-Cellule n'a pas reconnu l'antigène et aucune
réaction ne s'est produite. Dans le cas (b) la B-Cellule a reconnu
l'antigène, elle sera affecté par la mutation qui changera la
structure de son anticorps. Dans le cas (d) l'affinité entre l'anticorps
de la B-Cellule et l'antigène n'a pas été
améliorée mais dans le cas (c) la mutation a
considérablement amélioré l'affinité et c'est pour
ça que ces B-Cellule seront cloner afin de créer des cellules de
mémoire pour améliorer la réponse à de futures
attaques par le même antigène.

Figure II.2 : Prolifération et
maturation d'affinité
2.2. Caractéristiques des systèmes
immunitaires
Le rôle classiquement attribué à
l'immunité est de protéger le soi de l'étranger. Le
système immunitaire est donc censé se défendre contre les
agressions extérieures grâce à des mécanismes qui
permettent d'éliminer le non-soi. Or, pour établir un rôle
défensif, le système immunitaire doit exhiber des
propriétés qui sont typiquement cognitives : la reconnaissance
des formes moléculaires étrangères, l'apprentissage de
nouvelles formes, la mise en mémoire de ces formes. Ces trois types de
processus montrent que le système est un réseau cognitif et pas
seulement un mécanisme de défense car il se caractérise
par :
> L 'Identification : Le
système immunitaire a la capacité de reconnaître,
identifier et répondre à un vaste nombre de différents
modèles d'antigène. En plus, le système immunitaire peut
faire la différence entre les cellules de l'individu et les cellules
étrangères.
> Extraction de dispositif : Par
l'utilisation des antigènes de présentation des cellules (APC),
le système immunitaire a la capacité d'extraire des dispositifs
de l'antigène, avant d'être présentée à
d'autres cellules immunisées, y compris les lymphocytes.
> Diversité : Il y a deux
processus principaux impliqués dans la génération et
l'entretien de la diversité dans le système immunitaire. Le
premier est la génération des molécules de
récepteur par la recombinaison des segments de gène des
bibliothèques de gène. En recombinant des gènes d'un
ensemble fini, le système immunitaire est capable de produire un nombre
presque infini de types de récepteurs, de ce fait le système
immunitaire est doté d'une grande assurance dans l'univers des
antigènes. Le deuxième processus, qui assiste la diversité
dans le système immunitaire, est connu en tant que hyper mutation
somatique. Les cellules immunisées se reproduisent en réponse aux
antigènes envahissants le corps. Pendant cette reproduction, elles sont
soumises à un processus somatique de mutation avec des taux
élevés qui permettent la création des modèles de
molécules de récepteurs, de ce fait augmente la diversité
des récepteurs immunisés.
> Étude : Le
mécanisme de l'hyper mutation somatique suivi d'un mécanisme de
sélection permet également au système immunitaire
d'améliorer sa réponse à un microbe pathogène
envahissant le corps, ce processus est nommé la maturation
d'affinité. La maturation d'affinité garantit que le
système immunitaire améliore sa tâche d'identifier les
modèles d'antigène pour que la réponse sera plus
rapide.
> Mémoire : Après
une immuno-réaction à un antigène donné, quelques
ensembles de cellules et molécules seront dotés d'une grande
durée de vie afin de fournir des immuno-réactions plus rapides et
plus puissantes à des futures infections par le même
antigène ou à des antigènes semblables. Ce processus,
connu comme maturation de l'immuno-réaction, permet l'entretien de ces
cellules et molécules. C'est le principe principal des procédures
de vaccination dans la médecine et l'immunothérapie. Un
échantillon affaibli ou mort d'un antigène (par exemple, un
virus) est inoculé dans un individu afin de favoriser une
immuno-réaction (sans les symptômes de la maladie) afin de
produire des cellules et des molécules de mémoire à cet
antigène.
> Détection distribuée :
Il y a une distribution inhérente dans le système
immunitaire. Le contrôle n'est pas centralisé, chaque cellule
immunisée est spécifiquement stimulée et répond aux
nouveaux antigènes dans n'importe quel endroit.
> Autorégulation : La
dynamique du système immunitaire est telle que la population de
système immunitaire est commandée par des interactions locales
mais pas par un point central de commande. Après qu'une maladie ait
été combattue avec succès, le système immunitaire
revient à son état d'équilibre normal, jusqu'à ce
qu'il soit nécessaire de répondre à un autre
antigène. La théorie immunitaire du réseau explique
explicitement ce type de mécanisme autorégulateur.
> Métadynamique : Le
système immunitaire crée constamment de nouvelles cellules et
molécules, et élimine ceux qui sont trop vieux ou qui ne sont pas
d'une grande utilité. Métadynamique est le nom donné
à ces fonctions.
Ces caractéristiques intéressantes ont
poussé un grand nombre de chercheurs à essayer de les reproduire,
mais la construction d'un système informatique qui reproduit toutes ces
caractéristiques est impossible et c'est pour cela les chercheurs
essayent de reproduire un sous ensemble de cet énorme ensemble. Dans de
le domaine de la navigation autonome des robots mobiles ils essayent de
reproduire l'étude, la mémoire, l'autorégulation et la
métadynamique.
2.3. Théorie des réseaux immunitaires
Le système immunitaire d'un individu donné dans
son état de sollicitation minimum, exprime à l'état latent
l'ensemble de ses capacités et maintient un certain état
d'équilibre. Cet état d'équilibre se trouve
perturbé par une sollicitation immunogène qui stimule une
fraction du répertoire latent qui provoque la multiplication et
différenciation des cellules effectrices et des cellules
régulatrices. Cet état d'excitation n'est que provisoire et
progressivement un nouvel état d'équilibre est trouvé
enrichi de la mémoire de la sollicitation passée. La fonction du
réseau de régulation interne est double : le maintien permanent
du répertoire et le contrôle de l'expression de ce
répertoire.
Comment s'établit le répertoire
?
Par des mutations somatiques et des recombinaisons. On
pourrait se demander pourquoi les possibilités de reconnaissances sont
elles si grandes alors que le nombre d'antigènes qu'aura à
affronter l'organisme est si peu nombreux ? Quel est l'intérêt
d'un aussi vaste potentiel de réponses immunitaires ? ? Théorie
de Jerne
En 1970, Jerne avançait l'idée que les organes
lymphoïdes primaires éliminent les anticorps qui reconnaissent le
soi et sélectionnent ceux qui reconnaissent le non soi. Cette
première réflexion n'exploite pas l'idiotypie mais exprime
déjà une idée qui sera l'un des éléments
fondamentaux de la théorie du réseau : le système
fonctionnel se différencierait sous la pression sélective des
cellules du soi, avant toute stimulation clonale par les antigènes.
La théorie du réseau idiotypique (1974) a pour
base des faits expérimentaux établis : qu'il existe dans
l'organisme des anticorps capables de reconnaître le soi. Ces anticorps
peuvent certes, à des concentrations plus importantes engendrer des
maladies auto-immunes mais pas à leur niveau de circulation normale.
Mais ce qui est important est que les anticorps qui sont censés
effectuer la discrimination soi/ non soi sont eux-mêmes des
éléments du soi. Il doit donc exister des anticorps d'anticorps
(anticorps anti idiotypiques). Les interactions entre les anticorps signifient
que les anticorps circulants et ceux affichés à la surfaces des
cellules ne sont pas indépendants mais qu'ils sont étroitement
connectés : c'est une organisation en réseau. On se rendait ainsi
compte que le système pouvait présenter une dynamique propre.
Imaginons qu'un antigène (E) entre dans l'organisme.
On doit prendre en compte que les anticorps s'attachent aux idiotopes des
anticorps anti E . Ces anticorps seront eux mêmes reconnus par d'autres
anticorps et ainsi de suite. L'antigène pourra entrer dans le
réseau dans la mesure où circule déjà un anticorps
de profil moléculaire semblable au sien : une "image interne".
L'antigène ne devient qu'une petite perturbation dans le réseau
qui a une activité continue. Le système immunitaire
fondamentalement, ne discrimine pas le soi du non soi (mais sens et non-sens),
le réseau ne peut être perturbé que par de nouveaux
antigènes ressemblant à ce qu'il contient déjà.
Donc tout antigène qui perturbe le réseau immunitaire est par
définition un antigène de l'intérieur et ne fera que
changer la dynamique du réseau.
L'idée de Jerne est montrée
schématiquement dans la figure II.3 L'idiotype Id1 de l'anticorps 1
stimule les B-Cellules 2, par le paratope P2. Du point de vue de l'anticorps 2,
l'idiotype Id1 de l'anticorps 1 est considéré comme
antigène. En conséquence, l'anticorps 2
supprime les B-Cellules 1. D'autre part, l'anticorps 3
stimule l'anticorps 1 puisque l'idiotype Id3 fonctionne comme antigène
par rapport à l'anticorps 1. De cette façon, les chaînes de
stimulation et de suppression des anticorps forment un réseau à
grande échelle qui fonctionne comme système de reconnaissance
d'individu et de non individu. Par conséquent, le système
immunitaire peut être prévu pour fournir de nouvelles approches
parallèles de traitement distribué.

Figure II.3 : Hypothèse du réseau
idiotypique de Jerne
3. Systèmes immunitaires artificiels
3.1 Passage du naturel vers l'artificiel
L'établissement de la zone des systèmes
immunitaires artificiels (AIS) a été difficile pour un certain
nombre de raisons. D'abord, le nombre de personnes actives dans la zone de
recherches est encore petit. Deuxièmement, les
chercheurs ont trouvé des difficultés a identifier la
différence entre un AIS et un travail en immunologie théorique.
Troisièmement, les domaines d'application des systèmes
immunitaires artificiels sont très larges. En conclusion, seulement
très récemment que le premier manuel proposant un cadre
général pour concevoir l'AIS a été
édité.
Pour concevoir des solutions basées sur les
systèmes immunitaires artificiels il faut suivre les étapes
suivantes :
> Description du problème :
Identifier tous les éléments qui feront partie de
l'AIS. Ceci inclut des variables, des constantes, des agents, des fonctions, et
des paramètres nécessaires pour décrire et résoudre
le problème.
> Choix d'un certain principe immunitaire a
utiliser : Plusieurs principes, modèles et théories
immunitaires peuvent être employés dans différents
contextes pour développer les outils de calcul pour la résolution
de problèmes.
> Modéliser le système
immunitaire artificiel : Ceci concerne des aspects, tels que
décider quels composants immunisés vont être
utilisés, comment représenter (créer les modèles
abstraits de ces composants), et l'application des principes immunitaires
(algorithmes) qui contrôleront le comportement du système.
> Traduire de l'AIS vers le problème
réel : Après la résolution du
problème, il est parfois nécessaire d'interpréter (ou
décoder) les résultats présentés par le
système immunitaire artificiel dans le domaine réel du
problème.
Ce qui peut être résumé par quatre
étapes :
> Extraction des idées et des métaphores ;
> Définition d'une représentation pour les
composants de l'AIS ;
> Définition d'un ensemble de fonctions qui
déterminent les interactions des éléments de l'AIS entre
eux et avec l'environnement ;
> Définition des algorithmes immunitaires pour
régir la dynamique de l'AIS.
3.2. Les algorithmes des AIS
Afin de créer des approches inspireés du
système immunitaire, des algorithmes immunitaires ont été
proposé. Ils peuvent être classifié suivant la figure II.4.
Nous
présenteront brièvement les algorithmes du choix
négatif et de la sélection clonale et nous détaillerons
par la suite l'algorithme du réseau immunitaire car notre travail se
base sur cet algorithme, dans le cas continu.
Algorithme des AIS
|
Basé sur la population
|
|
Basé sur le réseau
|
|
|
|
|
|
|
|
|
Sélection
|
Sélection
|
Modèles
|
Modèles
|
|
clonale
|
|
négative
|
|
continus
|
|
discrets
|
Figure II.4 : Classification des algorithmes de
l'AIS
3.2.1. Algorithme de la sélection clonale
Quand les anticorps d'une B-cellule se lient avec un
antigène, la B-cellule devient activer et commence a proliférer.
Les nouvelles B-cellules qui sont produites sont des copies exactes de la
B-cellule parente, mais elles subissent le mécanisme d'hyper mutation
somatique pour produire des anticorps qui sont spécifiques à
l'antigène envahissant. Le principe de la sélection clonale est
le terme employé pour décrire les propriétés de
base d'une immuno-réaction adaptative à un stimulus
antigénique. Elle établit l'idée que seulement les
cellules capables d'identifier un stimulus antigénique
proliféreront et subiront un choix qui ne garde que les clones qui ont
les plus grands degrés d'affinité.
Ce genre d'algorithme peut être utilisé pour des
problèmes d'optimisations, de clustering, ou de reconnaissance des
formes.
L'algorithme de la sélection clonal est :
1. Produire un ensemble de solutions (répertoire
d'anticorps) de N candidat qui sont défini par le
problème à étudier ;
2. Choisir les n1 cellules qui ont la plus grande
affinité à l'antigène ;
3. Copier (produire des copies identiques de) ces cellules
choisies. Le nombre de copies est proportionnel aux affinités : plus
l'affinité est haute, plus le nombre de clone est grand;
4. Changer la structure des cellules choisies (hyper
mutation). Le taux de changement est proportionnelle à leurs
affinités : plus l'affinité est haute, plus le taux de Changement
est petit ;
5. Sélectionner les n2 cellules (du
résultat de l'étape 4) qui ont la plus grande affinité
à l'antigène pour composer le nouveau répertoire ;
6. Remplacer quelques cellules qui possèdent des valeurs
d'affinité faible par les nouvelles cellules ;
7. Répéter les étapes 2
à 6 jusqu'à ce qu'un critère d'arrêt donné
soit rencontré.
|
Algorithme général de la sélection clonal
3.2.2. Algorithme de la sélection
négative
La sélection négative est le processus qui permet
de distinguer le soi du non soi, elle a été appliquée
à des problèmes de détections d'anomalies, son algorithme
a la forme suivante :
1. Produire aléatoirement des anticorps et placez les
dans un ensemble P ,
2. Déterminer l'affinité de touts les anticorps
dans P avec toutes les cellules de l'individu S ,
3. Si l'affinité d'un anticorps de
P avec au moins une cellule de S est supérieur ou
égal à un seuil donné å, alors l'anticorps identifie
l'individu et doit être éliminée; si non l'anticorps est
accepté.
|
Algorithme général de la sélection
négative
3.2.3. Algorithme du réseau immunitaire
La théorie immunitaire de réseau semble
très attrayante pour n'importe quel chercheur sur l'intelligence
artificielle. Car premièrement, elle présente un système
dynamique capable d'exécuter des interactions entre ses propres
constituants et entre ses constituants et l'environnement externe.
Deuxièmement, elle offre les possibilités d'ajuster la structure
du système (réseau) et les paramètres du système
sur l'environnement. Son algorithme général est :
1. Initialisation : initialiser un
réseau de cellules immunisées ;
2. Boucle de population : pour chaque
antigène :
2.1. Identification antigénique :
calculez les affinité des anticorps face à
l'antigène ;
2.2. Interactions du réseau : calculez
les affinité entre tous les paires
d'anticorps ;
2.3. Métadynamique : ajoutez des
nouveaux anticorps aux réseaux et supprimez qui sont inutile (le choix
est basé sur un certain critère) ;
2.4. Niveau de stimulation : évaluez le
niveau de stimulation de chaque
cellule du réseau tenant compte des résultats des
étapes précédentes ;
2.5. Dynamique de réseau : mettre
à jour la structure et les paramètres du
réseau selon le niveau de stimulation de
différentes cellules ;
3. Cycle : répéter l'étape
2 jusqu'à ce qu'un critère donné d'arrêt soit
rencontré ;
|
Algorithme général du réseau
immunitaire
3.3. L'apprentissage dans les réseaux
immunitaires
Il a été proposé que les réseaux
immunitaires peuvent être considéré comme des
systèmes cognitifs [VAR 1988] et offrant des possibilités
d'apprentissage. Cette proposition a été justifiée par
quatre raisons :
(i) ils peuvent identifier des formes moléculaires ;
(ii) ils se rappellent des rencontres ;
(iii) ils définit les frontières des
molécules de l'individu, et
(iv) ils peuvent créer des molécules qui peuvent
identifier des molécules étrangères inconnues.
Ce travail suggère que le réseau immunitaire
soit capable de produire des modèles dynamiques de l'activité du
réseau et qu'il y a un mécanisme de fonctionnement
autorégulateur qui aide à maintenir cette structure de
réseau. Ces modèles du réseau immunitaire sont
caractérisés par le changement des concentrations des B-cellules
qui subi la sélection clonale à chaque réponse contre un
antigène. Les auteurs emploient le terme "métadynamique" pour ce
processus, qui signifie essentiellement la production et la mort continuelles
des cellules et des molécules immunisées. Une grande
variété de nouvelles Bcellules sera produite, mais elles ne
seront pas toute une addition utile au système immunitaire et beaucoup
n'entreront jamais dans la dynamique du système immunitaire
(l'interaction entre les B-cellules dans le réseau) et mourront par la
suite. Les auteurs ont produit un modèle simple en utilisant ces
idées et ont constaté qu'il y a des oscillations dans plusieurs
des variables dans leur système, en particulier le nombre de B-cellules
qui sont produites. Ils ont remarqué qu'il y avait souvent une
production rapide des B-cellules, suivie d'une descente pointu en nombre. Les
auteurs ont observé qu'un certain noyau et une structure stable de
réseau émerge avec le temps. Cette structure émerge en
raison d'une organisation individuelle topologique dans le réseau, le
résulta est que le réseau a pu enregistré l'histoire de la
rencontre avec des antigènes. Par conséquent, les auteurs ont
conclu que le réseau immunitaire est un excellent système pour
l'apprentissage des nouvelles situations et peut supporter une mémoire
des rencontres précédente par l'utilisation de l'assortiment des
modèles complexes et la propriété de l'organisation
individuelle du réseau, et peut être considérés
ainsi en tant que cognitif.
En 1990 Bersini et Varela ont soutenu les idées
présentées ci-dessus. Ils ont mis en application le modèle
et ont suggéré que les mécanismes de la mémoire
immunisée, l'adaptabilité et la capacité
d'exécution distribué pourraient être très utiles
à la résolution des problèmes, en particulier la commande
adaptative. À la suite de leur travail, en 1994, Bersini et Valera ont
exploré la dynamique et la métadynamique du réseau
immunitaire. Ils concluent que la métadynamique du système
immunitaire permet de préservée les caractéristiques dans
le temps, en permettent toujours de s'adapter à de nouvelles situations.
Les simulations d'un réseau immunitaire ont confirmé ceci.
Bersini et Varela [BER 1990] ont proposé des principes
généraux qui peuvent être extraits à partir des
réseaux immunitaires pour être appliqués à la
création des contrôleurs dans le domaine de la commande
adaptative, mais ils espèrent trouver d'autres champs d'application.
4. Modélisation des réseaux
immunitaires
La théorie du réseau immunitaire proposée
par Jerne (1974), a supposé que le système immunitaire a un
comportement dynamique même en l'absence des antigènes. Cette
proposition était différente des théories de la
sélection clonale et de la sélection négative, car elle a
supposé que les B-cellules étaient capables de s'identifier. Ceci
doterait le système immunitaire d'un réseau de communication
entre les anticorps des B-cellules.
Plusieurs immunologistes étaient
intéressés à créer des modèles des
réseaux immunitaires afin de présenter de nouvelles
manières pour expliquer comment les systèmes immunitaires
fonctionnent. Une fois que les chercheurs de l'intelligence artificiel
découvre ces travaux, l'intérêt a été grand
pour appliquer ces nouveaux modèles pour résoudre des
problèmes de différents domaines. Les premiers modèles de
réseau ont été principalement basés sur des
ensembles d'équations dirigeant les variations des tailles dans les
populations d'anticorps et les autres cellules. Ces travaux sont classés
parmi les modèles continus de réseau. Ils ont été
largement répandus par la communauté d'AIS dans les applications
telles que la robotique, l'optimisation et le contrôle.
Les réseaux immunitaires ont également servi
d'inspiration pour le développement des modèles de réseau
pour d'autres applications et principalement pour l'analyse des
données.
Ces modèles sont classés parmi les modèles
discrets de réseau, car ils ne sont pas basés sur des
équations, mais sur des procédures itératives
d'adaptation.
4.1. Le modèle de Farmer
Dans leur modèle Farmer et le autres ont fait beaucoup
de simplification afin de créer un modèle simple qui
présente les propriétés caractéristiques
essentielle du réseau. Ils ont ignoré des éléments
important dans le système immunitaire tels que les T-cellules et les
macrophages pour se concentrer sur les éléments qui sont
essentiels dans les réseaux immunitaires.
La première simplification qu'ils ont faite est qu'ils
ont supposé que les anticorps et les antigènes sont
composés de deux types d'acides aminés donc les structures
d'anticorps et d'antigènes sont représentées par des
chaînes binaires. Farmer a simplifié encore en supposant que
chaque antigène et chaque type d'anticorps a seulement un seul
épitope.
L'existence d'une réaction entre deux différents
anticorps ou entre un anticorps et un antigène est
déterminé par le calcul de l'affinité entre les deux
chaînes binaires. Puisque deux molécules n'ont pas besoin
d'être exactement complémentaires pour réagir l'une sur
l'autre, les deux chaînes binaires peuvent s'assortir en n'importe quel
alignement possible. Par exemple prenant une chaîne de longueur le
qui représente un épitope, et une autre chaîne de
longueur lp qui représente un paratope. L'affinité entre
ces deux chaînes est égale a :
|
mij = ?
K
|
G (?
N
|
ei (n+k) ? pj(n) - s+1 )
|
Tel que :
> ei(n) représente la valeur du nième bit de la
chaîne du i ème épitope ;
> pj(n) représente la valeur du nième bit de la
chaîne du j ème paratope ;
> ? représente l'opération ou exclusive ;
> s représente le seuil de l'assortiment. Une valeur
au dessus d'elle deux anticorps peuvent réagir ;
> G(x) représente une fonction qui mesure la force
d'une réaction possible entre l'épitope et le paratope pour un
alignement donné. Elle est égale à : x si x >0
0 si non
Quand une B-cellule identifie un épitope d'un
antigène, elle se divise et produit des anticorps libres. Les
résultats de ce processus est qu'il y'aura des anticorps libres et des
Bcellules avec le même type d'anticorps attaché à leur
surface. Pour la simplification, Farmer a gardé que la concentration
xi d'un anticorps i et a ignoré les B-cellules. Pour
modéliser la dynamique du réseau Farmer a utilisé
l'équation :
N N n
xi`
|
= c [?
j1=
|
mji xi xj - k1?
j 1 =
|
mij xi xj + ?
j1=
|
mji xi yj ] - k2 xi
|
|
Tel que :
> xi représente la concentration de l'anticorps i ;
> c est une constante ;
> mij l'affinité entre le paratope i et
l'épitope j ;
> k1 est une constante d'inégalité entre la
stimulation et la suppression ;
> k2 représente le coefficient de la mort normale de
l'anticorps ;
> N représente le nombre d'anticorps ; > n
représente le nombre d'antigènes ;
Dans cette équation la variation de la concentration des
anticorps est de la forme :
Taux de variation de population =
stimulation de réseau - suppression de réseau
+ afflux de nouveaux éléments - la morts des
éléments non stimulés
Une caractéristique essentielle du modèle de
Farmer est que les listes des anticorps et des antigènes sont
dynamiques, donc de nouveaux anticorps peuvent être ajouté et
même des anciens anticorps peuvent être supprimé (N et n
peuvent changer). Ils fixent une valeur minimum pour toutes les concentrations,
s'ils trouvent une concentration qui descend au dessous de la valeur fixer ils
suppriment l'anticorps. Ceci simule la mort de la dernière cellule d'un
type donné d'anticorps.
Farmer utilise des algorithmes génétiques pour
créer des nouveaux anticorps afin de les ajouter au système, en
prenant comme population les chaînes binaires des anticorps.
5. L'application des réseaux immunitaires aux
robots mobiles
Les réseaux immunitaires ont été
utilisés pour résoudre le problème de la navigation
autonome pour atteindre un but en évitant les obstacles. Ils consistent
à donner au robot les moyens d'effectuer ses déplacements de
manière autonome, c'est-à-dire sans faire appel à l'homme.
Plusieurs travaux ont été mené dans ce domaine par :
Ishiguro 1998, Watanabe 1999, Michelan & Von Zuben 2002, Hart 2003 et
Vargas 2003.
L'idée de base est que le système sera
composé de deux parties :
> Un ensemble de comportements de base (par exemple :
avancez, tournez à gauche, etc.) qui forme les modules de
compétence.
> Un mécanisme d'arbitrage de ces modules.
Les modules de compétence sont définis comme
anticorps. L'interaction entre ces modules de compétence est
représentée par la stimulation et la suppression entre les
anticorps. L'état actuel où se trouve le robot est défini
comme un antigène, qui est composé par un ensemble
d'épitope qui présenteront une information particulière
(par exemple : obstacle à gauche, but à droite, etc.). Le robot
contiendra donc un réseaux d'anticorps qui sera perturbé par
l'information collecté par les capteurs qui jouera le rôle
d'antigène et il exécutera une immuno-réaction pour
choisir l'action à exécuter. Ce choix est basé sur les
concentrations des anticorps, l'anticorps dominant (qui va être choisi)
sera celui qui possédera la plus grande valeur de concentration.
L'algorithme général qui réalise
l'arbitrage du comportement est :
Algorithme mécanisme d'arbitrage
Début
Tant que (vrai)
Faire
> Collection des informations à partir des capteurs
;
> Construction des épitopes de l'antigène ;
> Calcul des affinités entre l'antigène et tous
les anticorps ;
> Calcul des nouvelles concentrations des anticorps ;
> Choix de l'anticorps dominant et exécution de son
action ;
> Exécutez la fonction d'ajustement du réseau
qui modifiera l'affinité de l'anticorps choisit ;
> Exécution de la fonction de métadynamique qui
modifiera les anticorps (élimine ou crée) ;
Fait
Fin
|
|
6. Conclusion
Nous avons vu dans ce chapitre que les systèmes
immunitaires possèdent un grand nombre de caractéristiques
cognitives comme la mémoire, la reconnaissance des nouvelles formes,
l'adaptabilité et le traitement distribué de l'information donc
on peut dire que les systèmes immunitaires forment un excellent outil
pour la création des contrôleurs adaptatifs,
particulièrement pour la navigation réactive de robots.
CHAPITRE
III
III. Conception,
Réalisation et Tests
1. Introduction
On est bien d'accord qu'aujourd'hui, pour construire un
système informatique, il est difficile de s'attaquer directement
à l'implémentation, mais au contraire, il faut d'abord
modéliser le système.
La modélisation consiste à créer une
représentation simplifiée d'un problème : le
modèle. Grâce au modèle il est possible de
représenter simplement un problème, un concept et le simuler. La
modélisation comporte deux composantes :
> L'analyse, c'est-à-dire l'étude du
problème.
> La conception, soit la mise au point d'une solution au
problème.
Le modèle constitue ainsi une représentation
possible du système pour un point de vue donné.
Dans ce chapitre nous présenterons les étapes
les plus importantes dans la conception et la réalisation de notre
système puis nous montrerons les résultats des tests qu'on a
faits en utilisant le simulateur WSU Khepera Robot Simulator v7.2
développé par Steven Perreta et John C. Gallagher.
2. Conception et réalisation du
système
2.1. Les différents éléments
nécessaires
Le but de ce projet est de construire un contrôleur
réactif, qui fait la sélection d'action pour la navigation
autonome d'un robot mobile. Afin de réaliser cet objectif, on a
défini les différents éléments qu'on aura besoin
pour cette réalisation. Ces éléments se résument
par :
> Un ensemble d'actions : ce sont les
comportements de base (par exemple : avancez, tournez à droite, tournez
à gauche, . . . etc.) qui forme les modules de compétences et qui
sont les candidats du mécanisme de sélection.
> Une fonction de filtrage : elle prend
comme paramètre les valeurs numériques retourné par les
capteurs. Elle analyse ces valeurs et sélectionne à partir de
l'ensemble
d'actions, un sous ensemble d'actions qui peuvent être
exécutées par le robot en respectant les contraintes
d'évitement d'obstacles.

L'ensemble d'actions possible
Filtrage
L'ensemble d'actions
qui peuvent être exécuté

Valeur 1
|
|
capteur
|
|
Valeur 2
|
|
capteur
|
S
|
|
S
S
|
Valeur capteur n
|
S
|
|
|
|


Figure IIIS1 : Diagramme de la fonction du
filtrage
> Une fonction d'exécution d'action :
elle assure la transformation de l'action qui a été
choisi en un ensemble de commande pour le robot. Elle prend en argument le type
de l'action a exécuter, et retourne les valeurs des vitesses et le temps
nécessaire à l'exécution de cette action.


Numéro de l'action sélectionné
Interpréteur
Valeur de la vitesse 1 Valeur de la vitesse 2
Temps nécessaire d'exécution
Figure IIIS2 : Diagramme de la fonction
d'exécution des actions
> Un mécanisme de sélection :
à partir du sous ensemble d'actions déterminé par
la fonction de filtrage, il sélectionne l'action dominante qui va
être envoyé à la fonction d'exécution d'action. Ce
choix est basé sur un certain ensemble de paramètres qui seront
modifiés par un mécanisme d'adaptation afin d'assurer un
comportement intelligent et autorégulateur.
Action 1 Action 2
Action n
|
|
|
Sélection
|
|
|
|
|
|
|
|
|
|
|
L'action dominante
|
|
|
|
|
|
|
|
|
|
|
|
Figure III.3 : Mécanisme de
sélection
> Un mécanisme d'adaptation : Pour
plus d'utilité, l'introduction d'un mécanisme d'adaptation est
fortement indispensable. Le mécanisme d'adaptation est habituellement
classifié selon deux types : ajustement et innovation.
L'ajustement est une adaptation réalisée en
changeant les paramètres du système.
L'innovation est une adaptation réalisée par les
changements topologiques du système.
Donc pour réaliser un contrôleur adaptatif, on
doit faire un mécanisme d'adaptation, qui emploie au moins un type
d'adaptation (l'ajustement ou l' innovation).
2.2. Le choix du principe immunitaire
Notre système se base sur la théorie de Jerne.
Notre choix est inspiré des principes des réseaux immunitaires
car :
> premièrement elle présente un système
dynamique capable d'exécuter des interactions entre ses propre
constituants et entre ses constituants et l'environnement externe.
> Deuxièmement, elle offre les possibilités
d'ajuster la structure du système (réseau) et les
paramètres du système sur l'environnement.
Un réseau immunitaire se définit par :
> Sa structure : décrit les types
d'interactions et les relations entre ses composants cellulaires.
> Sa dynamique : décrit la variation
par rapport au temps des concentrations et des affinités des cellules
composants le réseau.
> Sa métadynamyque : décrit la
production continu des anticorps et la mort des cellules non stimulé ou
par des réactions d'individu.
Le robot correspond donc à une organisation d'anticorps
(qui représente les actions) qui sera perturbé par l'information
collectée par les capteurs qui jouera le rôle d'antigène et
il exécutera une immuno-réaction pour choisir l'action a
exécuter. Ce choix est guidé par les concentrations des
anticorps. L'anticorps dominant (qui va être exécuter) sera celui
qui possédera la plus grande valeur de concentration.
Dans la figure III.4 la partie (a) représente
l'architecture globale d'un contrôleur réactif et la partie (b)
représente l'architecture globale d'un réseau immunitaire. On
peut remarquer qu'il y a une grande similitude entre les deux architectures.

(a) Contrôleur réactif pour des robots mobiles
autonomes

(b) Architecture d'un réseau immunitaire
Figure III.4 : similitude entre un
contrôleur réactif et un réseau immunitaire
2.3. Environnement de travail
Nous avons utilisé le robot Khepera dans notre projet.
Les tests ont été développés avec le simulateur
WSU Khepera Robot Simulator v7.2 développé par Steven
Perreta et John C. Gallagher à l'université de Wright State. Ce
logiciel freeware peut être téléchargé à
l'adresse :
http://gozer.cs.wright.edu/classes/ceg499/sim/WSU_Sim_v7.2.zip.
Il a pour but de tester visuellement des algorithmes de commande pour les
robots. Il permet aussi de piloter à distance un robot réel.
2.3.1. Le robot Khepera
Khepera (voir l'annexe B) est un robot miniature de forme
circulaire destiné à la recherche, développé au
laboratoire de micro informatique (LAMI) de l'école Polytechnique de
Lausanne (voir Figure III.5). D'un diamètre de 55mm, d'une hauteur de
30mm, Khepera pèse 86g. Il a été développé
afin de tester les algorithmes de planification de trajectoire,
d'évitement d'obstacles, de prétraitement des données de
capteurs et de contrôle de comportement en robotique dans le monde
réel.

Figure III.5 : Le robot Khepera
Khepera est constitué de deux roues et 8 capteurs
infrarouges (IR). Ces derniers permettent la détection des obstacles
(émission/réception IR) et des sources lumineuses
(réception IR). Six capteurs sont placés à l'avant du
robot et les deux autres à l'arrière (voir Figure III.6). Pour la
mesure de distance, les capteurs renvoient des valeurs numériques
comprises entre 0 (lorsque le robot est à une distance supérieure
à 5cm de l'obstacle) et 1023 (lorsque le robot est à une distance
inférieure à 2cm de l'obstacle). Pour la mesure
d'intensité lumineuse, l'intervalle est de 50 (intensité forte)
à 520 (intensité nulle).

Figure III.6 : Emplacement des capteurs, des
moteurs et des roues du robot Khepera
La commande des moteurs entraînant les roues est
donnée par des valeurs comprises dans un intervalle entre -10 (tout
vitesse vers l'arrière) et +10 (tout vitesse vers l'avant). Les deux
moteurs sont indépendants, ce qui permet de faire des rotations par
l'intermédiaire d'une commande utilisant deux valeurs opposées
(exemple pour +5,-5 il réalise une rotation en vitesse moyenne dans le
sens horaire).
2.3.2. Le simulateur de Khepera
Le WSU Khepera Robot Simulator v7.2 (voir l'annexe C)
a été développé par Steven Perreta et John C.
Gallagher à l'université de Wright State avec le langage Java. Le
simulateur est doté d'une interface graphique conviviale (voir figure
III.7) qui permet de créer des environnements personnalisés et
d'y déplacer le robot très facilement. L'environnement
simulé est équivalent à un espace plan de 1m sur 1m.

Figure III.7 : L'interface du simulateur
1) Commande du robot, 2) L'environnement du robot, 3) Commande
de l'environnement, 4) Barre de statut, 5) Record/Playback, 6) Affichage des
capteurs, 7) Bras du robot, 8) Sortie pour le contrôleur, 9) Choix
d'objets.
Toutes les informations sur l'état du robot (par
exemple valeurs des capteurs de distance, valeurs de la commande passée
aux moteurs) sont facilement accessibles par des fonctions fournies par le
simulateur. L'annexe C présente une description des fonctions
disponibles et de leurs utilisations.
2.4. Modélisation
2.4.1. Les composants immunitaires
utilisé
Le système immunitaire naturel est un système
complexe qui possède un grand nombre de cellules différentes. Ses
éléments de base sont les phagocytes et les lymphocytes qui sont
constitué par deux types, les B-cellules et les T-cellules. Le
système immunitaire adaptatif utilise des lymphocytes qui peuvent
rapidement s'adapter.
Les cellules les plus utilisé dans l'immunité
adaptative sont les B-cellules. Elles produisent des anticorps qui peuvent
rapidement changez leur structure suivant les antigène qui envahissent
le corps. Pour des raisons de simplification nous utiliserons que des
B-cellules et plus précisément que des anticorps qui seront
caractérisé par leurs concentrations et leurs forces
d'affinités par rapport à d'autre anticorps.
2.4.1.1. Les anticorps
Les anticorps sont des récepteurs produits par les
B-cellules, ils sont responsables de la reconnaissance des antigènes. La
force de la liaison entre un anticorps et un antigène est définie
par l'affinité qui se rapporte au degré de la liaison entre les
deux récepteurs. Elle est d'autant plus forte que leurs forces sont
complémentaires.
Dans notre projet, les anticorps représente les
différentes actions (modules de compétence) que peut
exécuter le robot. Ils se caractérisent par :
> une concentration qui est une valeur comprise entre 0 et
1, elle indique un rapport du nombre de cet anticorps dans le réseau.
> le type de l'action qui est une valeur naturelle qui
indique le numéro de l'action. Les actions sont définies par un
angle qui est un multiple de 15. L'angle compris entre deux actions successive
est égale à 15, par exemple le numéro de l'action qui
permet au robot d'avancer est égale à 90/15 = 6. Donc on aura
360/15 = 24 anticorps (actions) différents.
Avancez
Numéro = 6 Concentration6 Affinité par rapport au
autres anticorps

Allez à droite Numéro = 0 Concentration0
Affinité par rapport au autres anticorps
Numéro = 18

Robot
15°
15°

Anticorps
Figure III.8 : Représentation des
anticorps
2.4.1.2. Les antigènes
Les antigènes sont les molécules
étrangères infectieuses qui attaquent le corps. Dans notre
projet, l'antigène représente l'état actuel de
l'environnement du robot, cet état est obtenu en collectant les
informations fournies à partir des capteurs du robot.
L'antigène possède six valeurs naturelles
retourné par les capteurs pour chaque anticorps, il les obtient à
partir des six premiers capteurs du robot et en faisant tourner le robot
suivant le numéro de l'anticorps pour passer aux six valeurs
suivantes.
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
|
Anticorps 1
|
|
Anticorps 2
|
Anticorps 3
|
|
Anticorps 4
|
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
|
Capteur 1 Capteur 2 Capteur 3 Capteur 4 Capteur 5 Capteur 6
|
|
Anticorps 5
|
|
Anticorps 6
|
Anticorps 7
|
|
Anticorps 8
|
|
X
|
|
Y
|
Figure III.9 : Représentation des
antigènes
2.4.2. Les différentes étapes du
contrôleur
Notre contrôleur réalise la sélection
d'action pour un robot mobile autonome, il est basé sur l'approche
comportementale, qui réalise un couplage direct entre les capteurs et
les moteurs, le fonctionnement du contrôleur peut être
décrit par cinq étapes :
a) Collection des données
b) Filtrage des actions
c) Choix de l'action dominante
d) Exécution de l'action dominante e) Application du
mécanisme d'adaptation Ces cinq étapes seront
détaillées par la suite.
2.4.2.1. Collections des données
La collection des données est une étape
très importante, elle permet de percevoir l'environnement du robot et de
positionner les obstacles dans cet environnement pour les éviter. Le
robot Khepera possède huit capteurs mais nous utiliserons que ces six
premiers capteurs pour une haute précision. La réalisation de
l'étape de collection suit les étapes suivantes :
> L'initialisation de la direction du robot pour qu'il
soit dirigé vers l'anticorps 0, c-a-d vers le nord, et cela en lisant sa
direction et le faisant tourner jusqu'il atteint la direction de l'anticorps 0.
Par exemple si le robot avait une direction qui est égale à
135°, pour initialiser sa direction, on affecte au moteur de la roue
gauche une valeur positive +4 et au moteur de la roue droite une valeur
positive -4 et on exécute cette commande pendant 0.8s.
> Le positionnement de la direction du robot suivant le
numéro du premier anticorps de l'ensemble des anticorps possible, et
cela en calculant la différence entre le numéro de l'anticorps
actuel et le numéro de l'anticorps cible, donc on obtiendra l'angle
entre les deux directions. Enfin on fait tourner le robot de la même
manière de l'étape de l'initialisation en changeant le temps de
l'exécution de la commande pour qu'il corresponde à l'angle
désiré.
> La lecture des six valeurs retournées par les six
premiers capteurs, et cela en appelant une fonction du simulateur ("int
getDistanceValue(int sensorID)" de la classe "RobotController" tel que
sensorID représente le numéro du capteur).
> La répétition des deux dernières
étapes jusqu'à la lecture de toutes les données pour tout
l'ensemble des anticorps.
> La lecture de la position actuelle du robot.
2.4.2.2. Filtrage des actions
L'ensemble des actions possible est constitué par huit
anticorps. Pour exécuter une action elle doit respecter la contrainte
d'évitement d'obstacle, et c'est pour cela qu'on filtre cet ensemble
avant de choisir l'action dominante.
Pour savoir si une action peut être
exécuté, on utilise les données collectées par
l'étape précédente. Les capteurs du robot sont des
capteurs infrarouges, il se caractérise par un angle et une distance de
détection. La figure III.10 illustre le champ de vision des six premiers
capteurs du robot.

Angle de vision du capteur
Robot Khep era
Capteur infrarouge
Figure III.10 : Champ de vision du Khepera
Les valeurs retournées par les capteurs sont des
entiers numériques compris entre 0 (lorsque le robot est à une
distance supérieure à 5cm de l'obstacle) et 1023 (lorsque le
robot est à une distance inférieure à 2cm de l'obstacle).
Les actions qu'on a réalisées font avancer le robot de 2cm, donc
les obstacles doivent se situer à une distance supérieure
à 2cm. Pour filtrer l'ensemble des actions possible on teste pour chaque
anticorps les six valeurs des capteurs, si elles sont tous inférieur
à la valeur 600 (pour assurer que la distance entre le robot et
l'obstacle le plus proche soit supérieur à 2cm) l'action fera
objet d'une candidature au mécanisme de sélection.
|
Capteur 1 = 5 Capteur 2 = 125 Capteur 3 = 45 Capteur 4 = 369
Capteur 5 = 278 Capteur 6 = 456
|
|
Dans la figure III.11, deux actions sont
présentées à la fonction de filtrage, l'action 2 et
l'action 4. Dans la partie (a), les valeurs des capteurs collectés pour
l'action 2 sont tous inférieur à 600, donc l'action 2
vérifie les contraintes et fera l'objet d'une candidature au
mécanisme de sélection, mais dans la partie (b), on remarque que
la valeur du capteur 4 est supérieur à 600 donc l'action 4 ne
sera pas candidate dans le mécanisme de sélection et elle ne
pourra pas s'exécuter à l'état courant du robot.
|
Test sur l'action 2
|
|
|
L'action 2 est acceptée
|
|


Capteur 1 = 58 Capteur 2 = 245 Capteur 3 = 23 Capteur 4 = 669
Capteur 5 = 357 Capteur 6 = 214
(a) l'action 2 vérifie les conditions
Test sur l'action 4
L'action 4 n'est pas acceptée
(b) l'action 4 ne vérifie pas les conditions
Figure III.11 : Mécanisme de filtrage des actions
2.4.2.3. Choix de l' action dominante
Pour chaque état, on doit choisir une action qui fait
passer le robot d'un état à un autre état, ce choix est
fait après la construction de l'antigène. En présentant
l'antigène au réseau il y aura une immuno-réaction qui
perturbera le réseau et il y aura un changement de concentration des
anticorps. Le choix de l'action se base sur les nouvelles concentrations des
anticorps, l'action dominante sera l'action de l'anticorps qui possède
la plus grand valeur de concentration donc le choix est dirigé par la
dynamique du réseau qui décrit la variation par rapport au temps
des concentrations des cellules du réseau, elle est liée aux
interactions entre les anticorps, et les réponses contre les
antigènes, elle a la forme suivante :
Taux de variation de population = stimulation
de réseau - suppression de réseau +
afflux de nouveaux éléments - la morts des
éléments non stimulés
La sélection de l'action passe par deux étapes :
a) Etape 1 : Le calcul de l'affinité
entre l'antigène et tous les anticorps du réseau.
L'affinité entre un anticorps et un antigène est égale
à :
> 0 Si l'action de l'anticorps ne peut pas
être exécuter (présence d'un obstacle)
> (1+cosè)/2 Si non,
tel que è est l'angle entre l'orientation de l'action
et l'orientation du but a atteindre
But à atteindre

Action = Avancez Affinité = (1+cosè)/2 = 0.841
è= 47
Robot
Figure III.12 : Calcul d'affinité entre
un antigène et un anticorps
b) Etape 2 : Le calcul des concentrations de
tous les anticorps. On a utilisé l'équation de Farmer et al [FAR
1986] pour calculer les concentrations des anticorps :
N N
dAi(t)/dt = [? mii ai(t) - ? mik ak(t)
+ mi - ki ] ai(t) (1)
i1= k1=
ai(t+1) = 1/1+exp(0.5-Ai(t))
(2)
Tel que :
> ai : concentration de l'anticorps i
> N : nombre d'anticorps
> mi : l'affinité entre l'antigène et
l'anticorps i
> mij : l'affinité entre le i éme et le j
éme anticorps
> ki : coefficient de la mort normale de l'anticorps
L'équation 2 normalise la valeur de concentration des
anticorps pour que la grande valeur possible soit égale à 1.
Dans la figure III.13, un antigène attaque le corps,
donc le réseau immunitaire sera perturbé par cet antigène.
Il exécutera une immuno-reaction qui sélectionne l'anticorps qui
a la plus grande valeur d'affinité (dans cet exemple l'anticorps 1) afin
d'exécuté son action qui sera la réponse à cet
attaque.

Figure III.13 : Mécanisme de
sélection d'action
2.4.2.4. Exécution de l' action dominante
L'exécution de l'action est une étape très
simple, elle est constituée par deux sous étapes qui sont :
> Le positionnement de la direction du robot suivant le
numéro de l'action à exécuter, et cela en calculant la
différence entre la direction courante du robot et l'angle de l'action
à exécuter.
> L'exécution d'une commande qui fait avancer le
robot d'une distance de 2cm, et cela en affectant une valeur positive qui est
égale à 8 pour les moteurs des deux roues du robot (gauche et
droite) et en exécutant cette action pendant une durée qui est
égale à 0.05s.
2.4.2.5. Mécanisme d'adaptation
Pour assurer un comportement intelligent, adaptatif, flexible
et autorégulateur il faut ajouter un mécanisme d'adaptation. Le
mécanisme d'adaptation est habituellement classifié selon deux
types : ajustement et innovation.
L'ajustement est une adaptation réalisée en
changeant les paramètres du système. Pour les systèmes
immunitaires artificiels, l'ajustement est réalisée en modifiant
des formes moléculaires des anticorps (c. -à-d. l'affinité
entre les anticorps).
L'innovation est une adaptation réalisée par
les changements topologiques du système. Pour les systèmes
immunitaires artificiels, l'innovation est réalisée par la
fonction de métadynamique (c. -à-d. en supprimont et en
créent des anticorps).
Dans notre système on a introduit le mécanisme
d'ajustement. Il est réalisé par l'attribution des
récompenses pour l'anticorps dominant afin de modifier l'affinité
entre les anticorps.
2.4.2.5.1. L'ajustement
L'ajustement est réalisé par un opérateur
de mutation, qui change la structure des anticorps, donc il modifie
l'affinité entre les anticorps.
Dans notre système l'ajustement est assuré par des
signaux de renfort qui attribuent des récompenses à l'anticorps
dominant. Ces signaux sont de quatre types :
> Les signaux envoyés après chaque action
> Les signaux envoyés après chaque cinq actions
(pour les cinq derniers anticorps dominants)
> Les signaux envoyés après chaque vingt
actions (pour les vingt derniers anticorps dominants)
> Les signaux envoyés si le robot retourne à un
point déjà visité (pour tous les anticorps dominants qui
ont causé le retour du robot)
Les signaux de renfort sont positifs si l'état du robot a
été amélioré et sont négatifs dans le cas
contraire.
Quand une récompense positive est attribuée
à un anticorps k l'affinité mik
entre tous anticorps i et l'anticorps k est augmenter
suivant la formule :
mik = mik + coeff* mik/ä
Tel que :
> ä : coefficient de l'augmentation
> coeff : poids de la récompense
Pour normaliser les valeurs des affinités afin qu'elle
soit comprises entre 1 et 0 on utilisera la formule :
mik = 1/1+exp(0.5- mik)
Quand une récompense négative est attribuée
à un anticorps k l'affinité mki
entre l'anticorps k et tous anticorps i est
augmenté suivant la formule :
mki = mki + coeff* mki/ä
Ce mécanisme d'adaptation sera activé
jusqu'à l'obtention d'une structure stable du réseau donc le
robot continuera son apprentissage jusqu'à l'obtention d'une
mémoire qui sera représenté par la structure du
réseau et les différentes interactions entre les anticorps (les
affinités).
Pour conclure cette partie, on résume le fonctionnement du
contrôleur considéré par l'algorithme suivant :
Algorithme contrôleur réactif
Début
Créé un objet antigène ;
Créé un vecteur de 8 objets anticorps ;
Initialisé les actions des objets anticorps ; Tant
que (vrai)
Faire
Collectez les données ;
Pour i = 0 à 8
Faire
Calculez l'affinité de l'anticorps i ; Calculez la
concentration de l'anticorps i ;
Fait
Sélectionnez l'anticorps dominant ; Exécuter
l'action de l'anticorps dominant ; Mémorisez l'action exécuter
;
Si (but) Alors
Stop ;
Si non
Attribuez les récompenses ; Si (la
structure du réseau est stable) Alors
Arrêtez l'attribution des récompenses ;
Fait
Fin
3. Tests
Dans cette partie, nous présenterons les
résultats de nos tests. On rappelle, une autre fois que nous avons
utilisé le simulateur WSU Khepera Robot Simulator v7.2. Nous avons
opté pour ce choix car le simulateur est développé en Java
et son code source est publié.
Les tests qu'on a fait peuvent être classé, en
trois groupes : les tests sur des environnements simples, les tests sur des
environnements complexes sans pièges et les tests sur des environnements
qui présentent des situations pièges. Notre contrôleur a
donné de bons résultats dans les deux premiers types
d'environnements, mais il a montré ses limites dans le troisième
type d'environnements. Dans ce qui suit, on va commenter les résultats
obtenus.
3.1. Les tests dans les environnements simples
La figure III.14 représente l'environnement du test. Le
problème était de faire une navigation entre deux points
jusqu'à l'amélioration de la trajectoire du robot.

Figure III.14 : Premier environnement de
test.
Comme représenté dans la figure, on a quatre buts
(A, B, C et D), la navigation se fera selon deux cas
: le premier cas entre A et B et le deuxième cas entre
C et D.
Cas 1 : Dans ce cas la navigation du robot sera
entre A et B. La trajectoire du robot à la
première itération est représentée par la figure
III.15.

Le robot a fait un grand nombre d'aller retour
à cet endroit
(a) La navigation se fait de A vers
B.

(b) La navigation se fait de B vers
A. Figure III.15 : Trajectoire du robot dans la
première itération.
On remarque que dans la première itération la
trajectoire du robot était mauvaise et la durée était
assez importante, le robot n'avait pas un comportement intelligent. Ce
comportement a était amélioré par la suite, la figure
III.16 représente la trajectoire du robot après la phase
d'apprentis sage.

(a) La navigation se fait de A vers B.

(b) La navigation se fait de B vers A.
Figure III.16 : Trajectoire du robot
après la phase d'apprentissage.
On remarque que la trajectoire du robot a été
largement améliorée, on peut dire que le robot s'est
adapté à cet environnement. Pour confirmer ces résultats
la figure III.17 présente une courbe de la performance du robot durant
ce test.

Figure III.17 : Performance du robot durant le
test.
Les deux tableaux III.1 et III.3 représentent les
valeurs des affinités entre les anticorps après la phase
d'apprentissage. Dans ces tableaux, les anticorps des lignes stimulent les
anticorps des colonnes, et les anticorps des colonnes suppriment les anticorps
des lignes, par exemple la valeur situé à la deuxième
ligne de la première colonne représente l'affinité de la
stimulation de l'anticorps 0 par l'anticorps 1(ou suppression de l'anticorps 1
par l'anticorps 0).
Tableau III.1 : Les affinités entre les
anticorps après la phase d'apprentissage (de A vers
B)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.0547
|
0.0537
|
0.0537
|
0.0537
|
0.0555
|
0.0601
|
0.9585
|
|
AC1
|
0.0623
|
0.0
|
0.0524
|
0.0524
|
0.0524
|
0.0541
|
0.0587
|
0.9350
|
|
AC2
|
0.0623
|
0.0533
|
0.0
|
0.0524
|
0.0524
|
0.0541
|
0.0587
|
0.9350
|
|
AC3
|
0.0623
|
0.0533
|
0.0524
|
0.0
|
0.0524
|
0.0541
|
0.0587
|
0.9350
|
|
AC4
|
0.0623
|
0.0533
|
0.0524
|
0.0524
|
0.0
|
0.0541
|
0.0587
|
0.9350
|
|
AC5
|
0.0623
|
0.0533
|
0.0524
|
0.0524
|
0.0524
|
0.0
|
0.0587
|
0.9350
|
|
AC6
|
0.0623
|
0.0533
|
0.0524
|
0.0524
|
0.0524
|
0.0541
|
0.0
|
0.9350
|
|
AC7
|
0.0779
|
0.0667
|
0.0655
|
0.0655
|
0.0656
|
0.0677
|
0.0734
|
0.0
|
(Sm : stimulation, Sp : suppression)
Tableau III.2 : Correspondance entre les
anticorps et les actions
|
Anticorps
|
Action
|
|
AC0 : anticorps 0
|
|
|
AC1 : anticorps 1
|
|
AC2 : anticorps 2
|
|
AC3 : anticorps 3
|
|
AC4 : anticorps 4
|
|
AC5 : anticorps 5
|
|
AC6 : anticorps 6
|
|
AC7 : anticorps 7
|
Le tableau III.1 correspond à la trajectoire de A
vers B on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 7
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation
de x par y est nettement supérieur à la
valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation
de x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC5 AC6
AC3
AC0 AC1
AC7
AC4
Figure III.18 : Structure de réseau
après la phase d'apprentissage (de A vers B).
Tableau III.3 : Les affinités entre les
anticorps après la phase d'apprentissage (de B vers
A)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.0551
|
0.0669
|
0.7549
|
0.0661
|
0.0538
|
0.0524
|
0.0524
|
|
AC1
|
0.0579
|
0.0
|
0.0739
|
0.8338
|
0.0730
|
0.0595
|
0.0579
|
0.0579
|
|
AC2
|
0.0524
|
0.0551
|
0.0
|
0.7549
|
0.0661
|
0.0538
|
0.0524
|
0.0524
|
|
AC3
|
0.0639
|
0.0673
|
0.0816
|
0.0
|
0.0807
|
0.0657
|
0.0640
|
0.0639
|
|
AC4
|
0.0524
|
0.0551
|
0.0669
|
0.7549
|
0.0
|
0.0538
|
0.0524
|
0.0524
|
|
AC5
|
0.0579
|
0.0609
|
0.0739
|
0.8338
|
0.0730
|
0.0
|
0.0579
|
0.0579
|
|
AC6
|
0.0524
|
0.0551
|
0.0669
|
0.7551
|
0.0661
|
0.0538
|
0.0
|
0.0524
|
|
AC7
|
0.0524
|
0.0551
|
0.0669
|
0.7549
|
0.0661
|
0.0538
|
0.0524
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.3 correspond à la trajectoire de B
vers A on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 3
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation de
x par y est nettement supérieur à la valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation de
x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC5 AC6
AC7
AC0 AC1
AC3
AC4
Figure III.19 : Structure de réseau
après la phase d'apprentissage (de B vers A).
Donc le contrôleur a réglé les
interactions entre les composants par rapport à la structure de
l'environnement et a crée une mémoire qui se symbolise par les
affinités entre les anticorps.
Cas 2 : Dans ce cas la navigation du robot sera
entre C et D. La trajectoire du robot à la
première itération est représentée par la figure
III.19.

(a) La navigation se fait de C vers
D.

(b) La navigation se fait de D vers
C. Figure III.20 : Trajectoire du robot dans la
première itération.
On remarque que dans la première itération la
trajectoire du robot était mauvaise et la durée était
assez importante, le robot n'avait pas un comportement intelligent. Ce
comportement a était amélioré par la suite, la figure
III.21 représente la trajectoire du robot après la phase
d'apprentis sage.

(a) La navigation se fait de C vers D.

(b) La navigation se fait de D vers C.
Figure III.21 : Trajectoire du robot après la
phase d'apprentissage.
On remarque que la trajectoire du robot a été
largement améliorée, on peut dire que le robot s'est
adapté à cet environnement. Pour confirmer ces résultats
la figure III.22 présente une courbe de la performance du robot durant
ce test.

Figure III.22 : Performance du robot durant
le test.
Les deux tableaux III.4 et III.5 représentent les
valeurs des affinités entre les anticorps après la phase
d'apprentissage. Dans ces tableaux, les anticorps des lignes stimulent les
anticorps des colonnes, et les anticorps des colonnes suppriment les anticorps
des lignes, par exemple la valeur situé à la deuxième
ligne de la première colonne représente l'affinité de la
stimulation de l'anticorps 0 par l'anticorps 1(ou suppression de l'anticorps 1
par l'anticorps 0).
Tableau III.4 : Les affinités entre les
anticorps après la phase d'apprentissage (de C vers
D)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.9972
|
0.0723
|
0.0696
|
0.0696
|
0.0696
|
0.0696
|
0.0700
|
|
AC1
|
0.4466
|
0.0
|
0.4547
|
0.4379
|
0.4379
|
0.4379
|
0.4379
|
0.4405
|
|
AC2
|
0.0684
|
0.9608
|
0.0
|
0.0671
|
0.0671
|
0.0671
|
0.0671
|
0.0675
|
|
AC3
|
0.0684
|
0.9608
|
0.0696
|
0.0
|
0.0671
|
0.0671
|
0.0671
|
0.0675
|
|
AC4
|
0.0684
|
0.9608
|
0.0696
|
0.0671
|
0.0
|
0.0671
|
0.0671
|
0.0675
|
|
AC5
|
0.0684
|
0.9608
|
0.0696
|
0.0671
|
0.0671
|
0.0
|
0.0671
|
0.0675
|
|
AC6
|
0.0684
|
0.9608
|
0.0696
|
0.0671
|
0.0671
|
0.0671
|
0.0
|
0.0675
|
|
AC7
|
0.0684
|
0.9608
|
0.0696
|
0.0671
|
0.0671
|
0.0671
|
0.0671
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.4 correspond à la trajectoire de C
vers D on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 1
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation de
x par y est nettement supérieur à la valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation de
x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC5 AC6
AC3
AC0 AC7
AC1
AC4
Figure III.23 : Structure de réseau
après la phase d'apprentissage (de C vers D).
Tableau III.5 : Les affinités entre les
anticorps après la phase d'apprentissage (de D vers
C)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.0671
|
0.0671
|
0.0671
|
0.0694
|
0.9765
|
0.0686
|
0.0672
|
|
AC1
|
0.0671
|
0.0
|
0.0671
|
0.0671
|
0.0694
|
0.9765
|
0.0686
|
0.0672
|
|
AC2
|
0.0671
|
0.0671
|
0.0
|
0.0671
|
0.0694
|
0.9765
|
0.0686
|
0.0672
|
|
AC3
|
0.0671
|
0.0671
|
0.0671
|
0.0
|
0.0694
|
0.9765
|
0.0686
|
0.0672
|
|
AC4
|
0.0671
|
0.0671
|
0.0671
|
0.0671
|
0.0
|
0.9765
|
0.0686
|
0.0672
|
|
AC5
|
0.2473
|
0.2473
|
0.2473
|
0.2473
|
0.2561
|
0.0
|
0.253 1
|
0.2476
|
|
AC6
|
0.0671
|
0.0671
|
0.0671
|
0.0671
|
0.0694
|
0.9765
|
0.0
|
0.0672
|
|
AC7
|
0.0671
|
0.0671
|
0.0671
|
0.0671
|
0.0694
|
0.9765
|
0.0686
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.5 correspond à la trajectoire de D
vers C on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 5
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation de
x par y est nettement supérieur à la valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation de
x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC3 AC6
AC7
AC0 AC1
AC5
AC4
Figure III.24 : Structure de réseau
après la phase d'apprentissage (de D vers C).
Donc le contrôleur a réglé les
interactions entre les composants par rapport à la structure de
l'environnement et a crée une mémoire qui se symbolise par les
affinités entre les anticorps.
3.2. Les tests dans les environnements complexes sans
pièges
La figure III.25 représente l'environnement du test. Le
problème était de faire une navigation entre deux points
jusqu'à l'amélioration de la trajectoire du robot.

Figure III.25 : deuxième environnement de
test.
Comme représenté dans la figure, on a quatre buts
(A, B, C et D), la navigation se fera selon deux cas
: le premier cas entre A et B et le deuxième cas entre
C et D.
Cas 1 : Dans ce cas la navigation du robot sera
entre A et B. La trajectoire du robot à la
première itération est représentée par la figure
III.26.
(a)

Le robot a fait un grand nombre d'aller retour
à cet endroit
La navigation se fait de A vers B.

(b) La navigation se fait de B vers A.
Figure III.26 : Trajectoire du robot dans la
première itération.
On remarque que dans la première itération la
trajectoire du robot était mauvaise et la durée était
assez importante, le robot n'avait pas un comportement intelligent. Ce
comportement a était amélioré par la suite, la figure
III.27 représente la trajectoire du robot après la phase
d'apprentis sage.

(a) La navigation se fait de A vers
B.

(b) La navigation se fait de B vers
A. Figure III.27 : Trajectoire du robot
après la phase d'apprentissage.
On remarque que la trajectoire du robot a été
largement améliorée, on peut dire que le robot s'est
adapté à cet environnement. Pour confirmer ces résultats
la figure III.28 présente une courbe de la performance du robot durant
ce test.

Figure III.28 : Performance du robot durant le
test.
Les deux tableaux III.6 et III.7 représentent les
valeurs des affinités entre les anticorps après la phase
d'apprentissage. Dans ces tableaux, les anticorps des lignes stimulent les
anticorps des colonnes, et les anticorps des colonnes suppriment les anticorps
des lignes, par exemple la valeur situé à la deuxième
ligne de la première colonne représente l'affinité de la
stimulation de l'anticorps 0 par l'anticorps 1(ou suppression de l'anticorps 1
par l'anticorps 0).
Tableau III.6 : Les affinités entre les
anticorps après la phase d'apprentissage (de A vers
B)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.0587
|
0.0563
|
0.0563
|
0.0567
|
0.0609
|
0.0606
|
0.8221
|
|
AC1
|
0.0789
|
0.0
|
0.0652
|
0.0652
|
0.0657
|
0.0705
|
0.0702
|
0.9517
|
|
AC2
|
0.0649
|
0.0559
|
0.0
|
0.0536
|
0.0540
|
0.0580
|
0.0577
|
0.7830
|
|
AC3
|
0.0649
|
0.0559
|
0.0536
|
0.0
|
0.0540
|
0.0580
|
0.0577
|
0.7830
|
|
AC4
|
0.0684
|
0.0588
|
0.0565
|
0.0565
|
0.0
|
0.0610
|
0.0608
|
0.8242
|
|
AC5
|
0.0789
|
0.0679
|
0.0652
|
0.0652
|
0.0657
|
0.0
|
0.0702
|
0.9517
|
|
AC6
|
0.0682
|
0.0587
|
0.0563
|
0.0563
|
0.0567
|
0.0609
|
0.0
|
0.8221
|
|
AC7
|
0.1225
|
0.1054
|
0.1012
|
0.1012
|
0.1019
|
0.1093
|
0.1089
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.6 correspond à la trajectoire de A
vers B on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 7
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation
de x par y est nettement supérieur à la
valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation
de x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC5 AC6
AC3
AC0 AC1
AC7
AC4
Figure III.29 : Structure de réseau
après la phase d'apprentissage (de A vers B).
Tableau III.7 : Les affinités entre les
anticorps après la phase d'apprentissage (de B vers
A)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.0547
|
0.0652
|
0.8429
|
0.0650
|
0.0555
|
0.0536
|
0.0536
|
|
AC1
|
0.0536
|
0.0
|
0.0652
|
0.8429
|
0.0650
|
0.0555
|
0.0536
|
0.0536
|
|
AC2
|
0.0536
|
0.0547
|
0.0
|
0.8429
|
0.0650
|
0.0555
|
0.0536
|
0.0536
|
|
AC3
|
0.1116
|
0.1137
|
0.1357
|
0.0
|
0.1351
|
0.1155
|
0.1116
|
0.1116
|
|
AC4
|
0.0536
|
0.0547
|
0.0652
|
0.8429
|
0.0
|
0.0555
|
0.0536
|
0.0536
|
|
AC5
|
0.0536
|
0.0547
|
0.0652
|
0.8429
|
0.0650
|
0.0
|
0.0536
|
0.0536
|
|
AC6
|
0.0536
|
0.0547
|
0.0652
|
0.8429
|
0.0650
|
0.0555
|
0.0
|
0.0536
|
|
AC7
|
0.0536
|
0.0547
|
0.0652
|
0.8429
|
0.0650
|
0.0555
|
0.0536
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.7 correspond à la trajectoire de B
vers A on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 3
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation de
x par y est nettement supérieur à la valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation de
x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC5 AC6
AC7
AC0 AC1
AC3
AC4
Figure III.30 : Structure de réseau
après la phase d'apprentissage (de B vers A).
Donc le contrôleur a réglé les
interactions entre les composants par rapport à la structure de
l'environnement et a crée une mémoire qui se symbolise par les
affinités entre les anticorps.
Cas 2 : Dans ce cas la navigation du robot sera
entre C et D. La trajectoire du robot à la
première itération est représentée par la figure
III.31.

(a) La navigation se fait de C vers
D.

(b) La navigation se fait de D vers
C.
Figure III.31 : Trajectoire du robot dans la
première itération.
On remarque que dans la première itération la
trajectoire du robot était mauvaise et la durée était
assez importante, le robot n'avait pas un comportement intelligent. Ce
comportement a était amélioré par la suite, la figure
III.32 représente la trajectoire du robot après la phase
d'apprentis sage.

(a) La navigation se fait de C vers D.

(b) La navigation se fait de D vers C.
Figure III.32 : Trajectoire du robot
après la phase d'apprentissage.
On remarque que la trajectoire du robot a été
largement améliorée, on peut dire que le robot s'est
adapté à cet environnement. Pour confirmer ces résultats
la figure III.33 présente une courbe de la performance du robot durant
ce test.

Figure III.33 : Performance du robot durant le
test.
Les deux tableaux III.8 et III.9 représentent les
valeurs des affinités entre les anticorps après la phase
d'apprentissage. Dans ces tableaux, les anticorps des lignes stimulent les
anticorps des colonnes, et les anticorps des colonnes suppriment les anticorps
des lignes, par exemple la valeur situé à la deuxième
ligne de la première colonne représente l'affinité de la
stimulation de l'anticorps 0 par l'anticorps 1(ou suppression de l'anticorps 1
par l'anticorps 0).
Tableau III.8 : Les affinités entre les
anticorps après la phase d'apprentissage (de C vers
D)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.8896
|
0.1006
|
0.0874
|
0.0838
|
0.0838
|
0.0838
|
0.0856
|
|
AC1
|
0.2089
|
0.0
|
0.2197
|
0.1909
|
0.1831
|
0.1831
|
0.1831
|
0.1869
|
|
AC2
|
0.0957
|
0.8896
|
0.0
|
0.0874
|
0.0838
|
0.0838
|
0.0838
|
0.0856
|
|
AC3
|
0.0957
|
0.8896
|
0.1006
|
0.0
|
0.0838
|
0.0838
|
0.0838
|
0.0856
|
|
AC4
|
0.0957
|
0.8896
|
0.1006
|
0.0874
|
0.0
|
0.0838
|
0.0838
|
0.0856
|
|
AC5
|
0.0957
|
0.8896
|
0.1006
|
0.0874
|
0.0838
|
0.0
|
0.0838
|
0.0856
|
|
AC6
|
0.0957
|
0.8896
|
0.1006
|
0.0874
|
0.0838
|
0.0838
|
0.0
|
0.0856
|
|
AC7
|
0.0957
|
0.8896
|
0.1006
|
0.0874
|
0.0838
|
0.0838
|
0.0838
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.8 correspond à la trajectoire de C
vers D on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 1
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité, puis l'anticorps 2 qui est stimulé
par les six autres anticorps. La structure du réseau se déduit du
tableau des affinités, en comparons les valeurs des affinités
entre les anticorps. On prend par exemple deux anticorps x et y
:
- si la valeur de l'affinité de la stimulation de
x par y est nettement supérieur à la valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation de
x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC3
AC5 AC6
AC2
AC0 AC7
AC1
AC4
Figure III.34 : Structure de réseau
après la phase d'apprentissage (de C vers D).
Tableau III.9 : Les affinités entre les
anticorps après la phase d'apprentissage (de D vers
C)
|
Sm
Sp
|
AC0
|
AC1
|
AC2
|
AC3
|
AC4
|
AC5
|
AC6
|
AC7
|
|
AC0
|
0.0
|
0.0253
|
0.0253
|
0.0259
|
0.0336
|
0.2738
|
0.0345
|
0.0268
|
|
AC1
|
0.0141
|
0.0
|
0.0140
|
0.0143
|
0.0187
|
0.1520
|
0.0191
|
0.0149
|
|
AC2
|
0.0862
|
0.0859
|
0.0
|
0.0878
|
0.1142
|
0.9285
|
0.1170
|
0.0910
|
|
AC3
|
0.0308
|
0.0307
|
0.0307
|
0.0
|
0.0408
|
0.33 18
|
0.0418
|
0.0325
|
|
AC4
|
0.0189
|
0.0188
|
0.0188
|
0.0192
|
0.0
|
0.2037
|
0.0256
|
0.0199
|
|
AC5
|
0.0901
|
0.0898
|
0.0899
|
0.0918
|
0.1194
|
0.0
|
0.1223
|
0.0951
|
|
AC6
|
0.0706
|
0.0704
|
0.0705
|
0.0720
|
0.0936
|
0.7610
|
0.0
|
0.0745
|
|
AC7
|
0.0279
|
0.0278
|
0.0278
|
0.0284
|
0.0370
|
0.3010
|
0.0379
|
0.0
|
(Sm : stimulation, Sp : suppression)
Le tableau III.9 correspond à la trajectoire de D
vers C on remarque qu'après l'apprentissage le
réseau est construit et sa structure devient stable. On a l'anticorps 5
qui est stimulé par tous autres anticorps donc l'action correspondante
aura la plus grande priorité. On peut aussi remarqué que
l'anticorps 2 stimule les anticorps 4 et 6. La structure du réseau se
déduit du tableau des affinités, en comparons les valeurs des
affinités entre les anticorps. On prend par exemple deux anticorps x
et y :
- si la valeur de l'affinité de la stimulation de
x par y est nettement supérieur à la valeur
de l'affinité de la suppression de x par y
alors y stimule x et x supprime y.
- si la valeur de l'affinité de la stimulation de
x par y est proche de la valeur de l'affinité
de la suppression de x par y alors il n'y a pas
d'interaction entre x et y.
La structure dans notre cas peut être illustrée par
la figure suivante :

AC2
AC6 AC3
AC7
AC4 AC1
AC5
AC0
Figure III.35 : Structure de réseau
après la phase d'apprentissage (de D vers C).
Donc le contrôleur a réglé les
interactions entre les composants par rapport à la structure de
l'environnement et a crée une mémoire qui se symbolise par les
affinités entre les anticorps.
3.3. Les tests dans les environnements possédant des
pièges
Dans ce type d'environnement les résultats des tests
n'étaient pas positifs. La durée que fait le robot pour atteindre
un objectif était très grande et dans plusieurs cas le robot se
trouve emprisonné dans l'environnement.
Le mécanisme d'adaptation n'a pas abouti à des
bons résultats dans ces environnements et le réseau d'anticorps
n'a pas convergé vers une structure stable donc il faudra modifier la
stratégie de l'adaptation.
La figure III.36 représente un exemple d'un environnement
qui possède des situations pièges.

Figure III.36 : Exemple d'un environnement qui
possède des pièges.
4. Conclusion
Nous avons présenté, au cours de ce chapitre, la
mise en oeuvre d'un contrôleur pour un robot mobile autonome, Nous avons
commencé la démarche de développement par l'identification
des différents besoins du contrôleur, en se basant sur ces
besoins, nous avons défini l'architecture de notre système afin
qu'il puisse répondre aux exigences, ensuite nous avons
élaboré la partie implémentation de notre projet, enfin
nous avons fait des tests. Nous pouvons dire que notre système
réalise une adaptation du robot dans les environnements inconnus qui ne
possèdent pas de pièges mais il est très limité
face aux environnements qui possèdent des pièges.
Conclusion générale
Dans ce travail, notre objectif était de
réaliser un mécanisme d'arbitrage de comportement pour un robot
mobile autonome, ce mécanisme doit assurer l'adaptation du robot
à des environnements inconnus. L'intérêt du projet est de
permettre au robot une navigation autonome sans faire appel à
l'homme.
L'autonomie des robots est une préoccupation
internationale, cette autonomie est nécessaire pour l'application des
robots à des activités dangereuses comme l'exploration des zones
nucléaires. Par exemple dans l'exploration spatiale, les communications
du robot vers la Terre se font pour l'instant, à très faible
débit. Il faut savoir qu'une commande classique nécessite
plusieurs heures de communication vers un robot situé sur Mars.
Dans ce mémoire, nous avons présenté les
réseaux immunitaires, et la manière de profiter des
caractéristiques de ces réseaux pour construire des
contrôleurs adaptatifs car les réseaux immunitaires artificielles
forment un excellent outil pour le contrôle adaptatif.
En première étape, on a construit un ensemble de
comportement de base qui forme les modules de compétences, et on a
construit aussi les règles qui permettent de choisir une action parmi
l'ensemble possible, ces règles doivent assurer l'évitement
d'obstacle qui est réalisé avec succès dans notre
système.
En deuxième étape, on a construit un
mécanisme d'adaptation, qui est réalisé par le changement
d'affinités entre les anticorps du réseau, afin de créer
un répertoire d'anticorps qui mémorise la structure de
l'environnement. Les tests qu'on a faits ont prouvé que notre
système était performant dans certain environnement et
était très limites dans d'autre.
Dans notre travail, c'est nous qui avons choisi les modules de
compétences du robot, il sera intéressant de créer un
système, qui crée automatiquement les modules de
compétences, en offrent au robot la possibilité de
la création et la suppression des modules sans intervention humaine.
Le mécanisme d'adaptation qu'on a fait est
l'ajustement, qui réalise le changement des paramètres du
système, il sera intéressant d'ajouter un autre mécanisme
qui assure l'innovation (par l'application des algorithmes
génétiques par exemple), cela peut être inspiré de
la fonction métadynamique du système immunitaire naturel, qui
créé des nouveaux anticorps et supprime d'autres anticorps. Cette
solution peut probablement faire face aux limites de notre contrôleur.

Annexes
1. Définition
Un robot est une machine équipée de
capacités de perception, de décision et d'action qui lui
permettent d'agir de manière autonome dans son environnement en fonction
de la perception qu'il en a. Ainsi, le robot devrait être capable
d'effectuer des tâches diverses de plusieurs manières et accomplir
correctement sa tâche même s'il rencontre de nouvelle situation
inattendues.
Cette définition s'illustre par un schéma classique
des interactions d'un robot avec son environnement (figure A. 1).
Perceptions

Architecture De Contrôle

Modèle interne
Environnement
Décision
Environnement

Actions
Figure A.1 : Schéma des interactions
d'un robot avec son environnement. Le modèle interne de
l'environnement est optionnel. Un robot peut fonctionner sans en
utiliser.
2. Aperçu historique
Le terme de robot apparaît pour la première fois
dans une pièce de Karel Capek en 1920 : Rossum's Universal Robots. Il
vient du tchèque 'robota' (servitude) et présente une
vision des robots comme serviteurs dociles et efficaces pour
réaliser les taches pénibles mais qui déjà vont se
rebeller contre leurs créateurs.
La Tortue construite par GreyWalter dans les années
1950 (Figure A.2), est l'un des tout premiers robots mobiles autonomes. Grey
Walter n'utilise que quelques composants analogiques, dont des tubes à
vide, mais son robot est capable de se diriger vers une lumière qui
marque un but, de s'arrêter face à des obstacles et de recharger
ses batteries lorsqu'il arrive dans sa niche. Toutes ces fonctions sont
réalisées dans un environnement entièrement
préparé, mais restent des fonctions de base qui sont toujours
sujets de recherche pour les rendre de plus en plus
génériques.

Figure A.2 : La tortue de Grey
Walter (nommée «machina speculatrix» et surnommée
Elsie).
Dans les années 60, les recherches en
électronique vont conduire, avec l'apparition du transistor, à
des robots plus complexes mais qui vont réaliser des tâches
similaires. Ainsi le robot "Beast" (Figure A.3) de l'université John
Hopkins est capable de se déplacer au centre des couloirs en utilisant
des capteurs ultrason, de chercher des prises électriques (noires sur
des murs blanc) en utilisant des photodiodes et de s'y recharger.
Les premiers liens entre la recherche en intelligence
artificielle et la robotique apparaissent à Stanford en 1969 avec Shakey
(Figure A.3). Ce robot utilise des télémètres à
ultrason et une caméra et sert de plate-forme pour la recherche en
intelligence artificielle, qui à l'époque travaille
essentiellement sur des approches symboliques de la planification. La
perception de l'environnement, qui à l'époque est
considérée comme un problème séparé, voire
secondaire, se révèle particulièrement complexe et conduit
là aussi à de fortes
contraintes sur l'environnement. Ces développements se
poursuivent avec le Stanford Cart dans les années 1980, avec notamment
les premières utilisations de la stéréo-vision pour la
détection d'obstacles et la modélisation de l'environnement.

Figure A.3: A gauche : Robot "Beast" de
l'université John Hopkins dans les années 1960. A droite : Le
robot Shakey de Stanford en 1969 a été une plateforme de
démonstration des recherches en intelligence artificielle.
Une étape importante est à signaler au
début des années 1990 avec l'apparition de la robotique
réactive, représentée notamment par Rodney Brooks. Cette
nouvelle approche de la robotique, qui met la perception au centre de la
problématique, a permis de passer de gros robots très lents
à de petits robots (Figure A.4), beaucoup plus réactifs et
adaptés à leur environnement. Ces robots n'utilisent pas ou peu
de modélisation du monde, problématique qui s'est
avérée être extrêmement complexe.
Ces développements ont continué depuis et
l'arrivée sur le marché depuis les années 1990 de
plates-formes intégrées a permis à de très nombreux
laboratoires de travailler sur la robotique mobile et à conduit à
une explosion de la diversité des thèmes de recherche. Ainsi,
même si les problèmes de déplacement dans l'espace restent
difficiles et cruciaux, des laboratoires ont pu par exemple travailler sur des
approches multi-robot, la problématique de l'apprentissage ou sur les
problèmes d'interactions entre les hommes et les robots.

Figure A.4 : Genghis, développé
par Rodney Brooks au MIT au début des années 1990.
3. Les sources d'information
La navigation repose sur deux types généraux
d'informations différentes : les informations proprioceptives et les
informations extéroceptives.
3.1 Informations proprioceptives
Les informations proprioceptives sont des
informations internes au robot qui le renseignent, dans le cas de la
navigation, sur son déplacement dans l'espace. Ces informations peuvent
provenir de la mesure de la rotation de ses roues ou de la mesure de
l'accélération grâce à une centrale inertielle. Un
processus d'intégration permet alors, en accumulant ces informations au
cours du temps, d'estimer la position relative de deux points par lesquels le
robot est passé.
3.2 Informations extéroceptives
Les informations extéroceptives ou plus
simplement les perceptions, sont des informations caractéristiques d'une
position que le robot peut acquérir dans son environnement. Ces
informations peuvent être de nature très variée. Par
exemple, un robot peut mesurer la distance des obstacles avec des capteurs
infrarouges ou utiliser une caméra.
4. Les applications des robots mobiles
Les applications des robots peuvent se trouver dans de
nombreuses activités "ennuyeuses, salissantes ou dangereuses", mais
également pour des applications ludiques ou de service, comme
l'assistance aux personnes âgées ou handicapées. Parmi les
domaines concernés, citons :
> La robotique de service (hôpital, bureaux)
> La robotique de loisir (robot 'compagnon')
> La robotique industrielle ou agricole (entrepôts,
récolte de productions agricoles, mines)
> La robotique en environnement dangereux (spatial,
industriel, militaire)
A cela, s'ajoute à l'heure actuelle des nombreuses
plates-formes conçues essentiellement pour les laboratoires de
recherche. La figure A.5 montre quelques exemples de robot réels.

Figure A.5 : Exemples de robots
utilisés dans différentes applications. 5
1. Présentation
Le robot Khepera est un mini-robot conçu comme outil de
recherches et d'enseignement dans le cadre d'un programme suisse de recherches.
Il a été développé la première fois en 1992,
par une équipe de recherche du laboratoire de microprocesseur et
d'interface (LAMI) à l'institut de la technologie fédéral
suisse Lausanne (EPFL). Il permet la confrontation au vrai monde des
algorithmes développés dans la simulation pour l'exécution
de trajectoire, l'action d'éviter d'obstacle, et le prétraitement
d'information sensorielle. Le robot Khepera est maintenant largement
répandu autour du monde comme plateforme pour différentes
expériences et applications de la robotique.
Khepera peut être utilisé sur un bureau, ou
connecté à une station de travail par un câble de liaison
série du type RS232. Cette liaison permet de lire les valeurs des
capteurs et d'envoyer des commandes au robot en temps réel. On peut
aussi télécharger un programme de contrôle dans sa
mémoire par la liaison série, puis de le déconnecter du
câble série afin de pouvoir rester complètement
autonome.
Le Khepera (diamètre 55 mm, hauteur 30 mm, poids 80 g
dans sa configuration de base) est montré sur la Figure B. 1 et
schématisé sur la Figure B.2. Bien que de dimension
réduite, il dispose d'un processeur embarqué performant (M6833 1,
32 bits, cadencé à 16 MHz), associé à une EEPROM de
128 K octets et une RAM statique de 256 Koctets. Le BIOS (Basic I/Os System)
est le système bas niveau embarqué dans le robot. Il offre des
capacités multi-tâches et permet la gestion de plusieurs modules
logiciels : acquisition et conversion des données sensorielles,
asservissements des moteurs, contrôle de la communication entre
différents modules du robot et l'extérieur.

Figure B.1 : Le robot Khepera
Les robots Khepera se composent tous de deux modules : le
module de bas comportant la partie motrice et la partie d'alimentation d'une
part, le module de contrôle possédant le microcontrôleur et
la mémoire d'autre part.

Vue inférieure Vue de face Vue de haut

Avant Arrière
Figure B.2 : Schéma de robot Khepera
Le robot comprend les composants suivants :
1- Un microcontrôleur
2- Une mémoire effaçable et programmable (EPROM),
qui permet de télécharger des programmes sur le robot.
3- Huit capteurs infrarouges, six dans l'avant et deux
à l'arrière du robot. Chaque capteur infrarouge se compose d'un
émetteur et d'un détecteur. L'émetteur envoie un faisceau
infrarouge, qui pourrait être reflété par des obstacles. Le
faisceau reflété est détecté par le
détecteur. De cette façon le robot peut mesurer la distance.
4- huit capteurs de lumières, encore six dans l'avant
et deux à l'arrière du robot. Ils sont utilisés pour la
mesure de l'intensité lumineuse. Les valeurs sont proches de zéro
lorsque l'intensité est forte.
5- deux moteurs actionnant les deux roues
indépendamment.
6- une ligne périodique connecteur qui peut être
utiliser pour raccorder le robot au port série de l'ordinateur.
7- quatre batteries rechargeables (non montrées dans la
figure) pour permettre au robot de fonctionner sans raccordement à un
ordinateur pendant environ 45 minutes.
2. Module de contrôle
2.1. Le microcontrôleur :
Le microcontrôleur du Khepera est du modèle
MC6833 1 de Motorola, la puissance de calcul élevée de ce
contrôleur fait du Khepera un robot bien adapté à la mise
en oeuvre de problèmes de type : réseau de neurones artificiels,
déplacements dans un milieu inconnu, ... etc. Le microcontrôleur
est responsable du module de base et comporte :
> un microcontrôleur de 32 bits ;
> de la mémoire pour le système et pour
l'utilisateur ;
> un bit d'extension ;
> un lien de commination synchrone microcontrôleur ;
> un lien série asynchrone pour la connexion à
des machines hôtes ;
2.2. Mémoire :
Le Khepera dispose au totale de 768 Ko de mémoire
répartis de la manière suivante :
> un circuit de 512 Ko de ROM, dont le champ d'adresse de
$000000 à l'adresse $800000 ;
> deux circuit de 128 Ko de RAM, avec un champ d'adresse de
$120000 à $140000 pour RAM1 et de $1A0000 à $1C0000 pour RAM2
;
Pour les fonctions de base et les initialisations, les
concepteurs ont réservé la moitié de RAM1,
c'est-à-dire le champ d'adresses de $120000 à $12FFFF.
Pour le contrôle du robot, on trouve en ROM le code
correspondant au fichier "ROM.ASM". Ce dernier contient plusieurs modules
permettant, au moment du démarrage, d'effectuer les fonctions de base et
les premières opérations, telle que :
> initialisation de la RAM ;
> configuration des différents
périphériques ;
> exécution du module sélectionné par la
configuration des cavaliers ;
> etc.
3. Module de base :
3.1. Généralité
Ce module regroupe les moteurs et les capteurs infrarouges.
Chacune des roues est contrôlé par un moteur à courant
continu. Les différents capteurs infrarouges présent sur le
Khepera lui permettent de détecter des obstacles présents sur sa
route afin de pouvoir, par exemple.
3.2. Moteurs a courant continu
Chacune des deux roues du Khepera est couplée à un
moteur à courant continu. Le robot peut fonctionner en mode vitesse ou
en mode position. Le premier donne une vitesse à
la roue qui ne sera plus modifiée jusqu'à ce qu'une
nouvelle vitesse lui soit fournie. Le deuxième sert à
déplacer le robot vers une position donnée par l'utilisateur.

Figure B.3 : Les deux moteurs du Khepera
3.3. Les Capteurs infrarouges
Le robot Khepera utilise des ondes infrarouges pour se
déplacer en évitant les obstacles. Pour cela, il se compose de
huit capteurs infrarouges pour émette et recevoir ces ondes. Ils sont
disposés et numérotés selon la figure B.4.

Figure B.4 : disposition et
numérotations des capteurs infrarouges
Chacun de ces capteurs est en fait un
émetteur/récepteur infrarouge qui peut fonctionner selon les deux
modes suivantes :
> mode pulsé
> mode continu
a) Mode pulsé : Le mode pulsé
consiste à envoyé un signal infrarouge qui, selon la
présence ou l'absence d'un obstacle, sera réfléchi ou non.
Si l'obstacle est assez près du capteur, le signal
réfléchi et mesuré. On obtient ainsi une valeur
représentative de la distance entre le capteur et l'obstacle. S'il n'y a
pas d'objet ou si l'objet est trop loin du capteur, le signal n'est pas
mesurable. La réflexion dépend du type d'objet utilisé,
car des paramètres tel que la couleur et la forme d'objet influencent la
mesure. La figure B.5 montre les performances d'un capteur face à
l'objet.
b) Mode continu : Le mode continu permet de
mesurer la lumière émise par source lumineuse. Les capteurs
prennent comme référence la lumière à
l'enclenchement. En suit, ils sont en mesure de détecter une variation
de la lumière ambiante, d'identifier la présence d'une source
lumineuse.

Figure B.5 : Mesure de la réflexion par
rapport à la distance séparant le robot de l'obstacle.
Annexe C
WSU Khepera Robot Simulator
1. Présentation
WSU Khepera Robot Simulator v7.2 a été
développé par John C. Gallagher et Steven Perretta à
l'université Wright State, Dayton, Ohio. Avec le langage Java. Ce
logiciel peut être téléchargé à l'adresse :
http://gozer.cs.wright.edu/classes/ceg499/sim/WSU_Sim_v7.2.zip.
Le simulateur est doté d'une interface graphique
conviviale (voir figureC. 1) qui permet de créer des environnements
personnalisés et d'y déplacer le robot très facilement.

Figure C.1 : L'interface du simulateur, 1)
Commande du robot, 2) L'environnement du robot, 3) Commande de
l'environnement,
4) Barre de statut, 5) Record/Playback, 6) Affichage des
capteurs, 7) Bras du robot, 8) Sortie pour le contrôleur, 9) Choix
d'objets.
2. L'interface du simulateur
Les panneaux qui nous intéres sent dans notre travail sont
:
a). Panneau de commande du robot : il contient
des boutons qui permettent de placer le robot et de commencer son
exécution. Voici la fonction de chaque bouton :
> Run : pour choisir le contrôleur a
exécuté parmi des contrôleurs existants.
> Halt : pour terminer l'exécution du
contrôleur actuel.
> Set : pour placer manuellement le robot dans
l'environnement.
> Rotate : pour tourner le robot par des
incréments de 45°.

Figure C.2 : Panneau de commande du robot
b). Panneau de l'environnement du robot : il
représente l'environnement simulé du robot c'est ici qu'on
placera les obstacles.

Figure C.3 : Panneau de l'environnement du
robot
c). Panneau de commande de l'environnement : il
contient des boutons qui permettent d'édité, de chargé, ou
de sauvegardé l'environnement. Voici la fonction de chaque bouton :
> Load : pour charger à partir d'un fichier
un environnement précédemment sauvegardé ;
> Save : pour sauvegarder un environnement
crée ;
> Add : pour ajouter des objets à
l'environnement ;
> Remove : pour supprimer des objets de
l'environnement ;
> Clear : pour supprimer tous les objets de
l'environnement ;

Figure C.4 : Panneau de commande
l'environnement.
d). Panneau d'affichage des capteurs : il
affiche la perception du robot pendant la simulation (lecture de distance ou de
lumière).

Figure C.5 : Panneau d'affichage des
capteurs.
e). Panneau de choix d'objets : il permet de
choisir des objets pour construire l'environnement du robot.

Figure C.6 : Panneau de choix d'objets.
3. L'écriture d'un contrôleur
Le fichier "Template.java" du répertoire "source"
montre le format de base pour l'écriture d'un contrôleur et fourni
la documentation approprié à chaque partie. Les règles
à respecter dans l'écriture des contrôleurs sont :
> Le contrôleur doit importer la classe
"edu.wsu.KhepheraSimulator.RobotController" ;
> La classe du contrôleur peut prendre un nom
quelconque ;
> La classe du contrôleur doit hériter de la
classe "RobotController" ;
> La classe du contrôleur doit définir les deux
méthodes : "doWork( )" et "close( )" ;
> Le constructeur de la classe peut contenir n'importe
quoi. Il est également un bon endroit pour appeler la méthode
"setWaitTime( )" qui modifie la durée d'attente entre deux appels
à la méthode "doWork( )" ;
> Ne jamais appeler la méthode "wait( )" pour les
attentes mais il faudra utiliser la méthode "sleep( )" de la classe
"RobotController" ;
Pour gérer son bon fonctionnement, le simulateur est
composé par 34 différentes classes. Pour créer un
contrôleur l'utilisateur doit utiliser les API du simulateur qui se
présente par 4 classes qui sont :
La classe CurentRobotState : elle fournit
une interface qui permet d'accédé au robot par une
référence à cette classe, on peut obtenir des
références aux capteurs et aux moteurs. Elle définit les
méthodes suivantes :
> Motor getMotorState( ) : retourne une
référence sur l'objet moteur, elle est utilisé pour
modifié la vitesse du moteur... etc.
> Sensor[ J getSensorValues( ) : retourne un
vecteurs de huit références sur des objets capteurs.
La classe Sensor : elle définit un
capteur infrarouge simple. La classe "Sensor" possède les
méthodes suivantes :
> int getDistValue( ) : retourne la valeur de la
sensation actuelle de la distance, cette valeur est comprise entre 0 et
1023.
> int getLightValue( ) : retourne la valeur de la
sensation de la lumière, qui est comprise entre 50 et 510, les valeurs
entre 500 et 510 correspondent à un manque complet de la
lumière.
La classe Motor : définit une
interface qui permet l'accès aux deux moteur du robot, chaque moteur
à une vitesse et une position de roue, la vitesse est comprise entre -9
et +9. Cette classe définit les méthodes suivantes :
> void setMotorSpeeds (int lSpeed, int rSpeed) :
modifie les vitesses des moteurs gauches et droits.
> long getLeftPosition( ) : retourne la position de
la roue gauche.
> long getRightPosition( ) : retourne la position de
la roue droite.
La classe MessagePasser : elle permet l'envoi
des objets String à partir ou vers des instances de la classe Robot.
Elle définit les méthodes suivantes :
> void postMessage (String message) : prend un
argument de type String et l'insère dans le panneau de sortie du
simulateur.
> String getMessage( ) : retourne le contenu du
panneau d'entrée du simulateur.
Références
bibliographiques
|
Bibliographies
[AND 1990] T. L. Anderson and M. Donath. Autonomous robots and
emergent behaviour: A set of primitive behaviors for mobile robot control. In
Proc. of the IEEE RSJ Int. Workshop on Intelligent Robots and Systems. volume
2, pages 723-730. Tsuchiura (JP), 1990.
[BER 1990] Bersini, H and Varela, F. (1990). Hints for
adaptive problem solving gleaned from immune networks. Parallel Problem Solving
from Nature, 1st Workshop. PPSW1. Dortmund, Germany. Pub. Springer-Verlag, pp.
343-3 54.
[CAS 1999] L.N. Castro, F.J. Von Zuben, "Artificial immune
systems : part I - Basic theory and applications», Rapport technique,
Décembre 1999.
[CAS 2002] L.N. Castro, "Immune Engineering: A Personal
Account», Université de l'Etat de Campinas, Octobre 2002.
[CAS 2002b] L.N. Castro, " Immune, Swarm, And Evolutionary
Algorithms Part I: Basic Models», Université de l'Etat de Campinas,
Novembre 2002.
[CAS 2003] L.N. Castro, J. I. Timmis, "Artificial Immune Systems
as a Novel soft computing Paradigm», Université de l'Etat de
Campinas, Juillet 2003.
[DEN 2004] A. Deneche, S. Meshoul, M. Batouche, «Une
approche hybride pour la reconnaissance de formes en utilisant un
Système Immunitaire Artificiel", Laboratoire LIRE, 2004.
[FAR 1986] J.D. Farmer, N.H. Packard, A.S. Perelson, «The
immune system, adaptation, and machine learning», Physica 22D 187-204,
1986.
[FIL 2005] D. Filliat, "Robotique mobile", Cours ENSTA, Octobre
2005.
[GAL 2005] J.C. Gallagher, S. Perretta, «WSU Khepera Robot
Simulator User's Manual», université de Wright State, Dayton, Ohio,
24 Mars 2005.
[GAU 1999] E. Gauthier, «Utilisation des réseaux
de neurones artificiels pour la commande d'un véhicule autonome",
Thèse de doctorat, Institut national polytechnique de Grenoble, 1999.
[HAI 2003] B. Haibe-Kains, «Apprentissage d'une tache de
contrôle pour un robot mobile en Lego mindstorms", Mémoire de
licence, Université libre de Bruxelles, 2003.
[HAR 1995] I. Harvey, «The artificial evolution of adaptive
behaviour», Thèse de Ph.D, University of Sussex, 1995.
[HUM 1995] M. Humphrys. W-learning: Competition among selfish
Q-learners. Technical Report 362, University of Cambridge Computer Laboratory,
1995.
[ISH 1996] A. Ishiguro, Y. Watanabe, T. Kondo, Y. Shirai, Y.
Uchikawa, "Immunoid: A Robot with a Decentralized Behavior Arbitration
Mechanisms Based on the Immune System", Université de Nagoya Japan,
1996.
[ISH 1997] A. Ishiguro, Y. Watanabe, T. Kondo, Y. Shirai, Y.
Uchikawa, "Emergent Construction of Artificial Immune Networks for Autonomous
Mobile Robots", Université de Nagoya Japan, 1997.
[LIN 1993] L. J. Lin. Reinforcement learning for robots using
neural networks. Technical Report CMU-CS-93-103, Carnegie Mellon University,
1993.
[LUH 2004] G. Luh, W. Liu, «Reactive Immune Network Based
Mobile Robot Navigation", Université de Tatung Taiwan, 2004.
[MAR 2005] A. Marie, "An idiotypic immune network for mobile
Robot control" Université de Nottingham, Septembre 2005.
[MAT 2005] N. Matur, S Karri , "Immune System Based Artificial
Intelligence for a Mobile Robot», Texas A&M University-Kingsville, 4
février 2005.
[NAD 2002] R. Nadine, "Description de comportements d'agents
autonomes évoluant dans des mondes virtuels", Thèse de doctorat,
école nationale supérieure des télécommunication,
France, 2002.
[OTE 2001] J. M. Otero, «Programmation réactive de
robots Khepera ", Laboratoire d'informatique industrielle, Ecole
d'ingénieurs de Genève, Décembre 2001.
[PAY 1990] D. W. Payton, J. K. Rosenblatt, and D. M. Keirsey.
Plan guided reaction. IEEE Trans. Systems, Man and Cybernetics, 20(6): 1370-13
82, 1990.
[REI 1994] P. Reignier, "Pilotage réactif d'un robot
mobile étude du lien entre la perception et l'action", Thèse de
doctorat, Institut national polytechnique de Grenoble, 1994.
[ROU 2000] N. Rougier, «Modèles de mémoires
pour la navigation autonome", Thèse de doctorat, Université Henri
Poincaré - Nancy 1, Octobre 2000.
[TIM 2001] J.I. Timmis, «Artificial immune systems : A
novel data analysis technique inspired by the immune network theory»,
Thèse de Ph.D, Université de Wales, Septembre 2001.
[TIM 2004] J. Timmis, T. Knight, L.N. Castro, E. Hart, «An
Overview of Artificial Immune Systems», 2004.
[TRU 1997] O. Trullier et J. A. Meyer. "Biomimetic navigation
models and strategies in animats». AI Communications, 10 :79-92, 1997.
[VAR 1988] Varela, F, Coutinho, A, Dupire, B and Vaz, N.
(1988). Cognitive Networks : Immune and Neural and Otherwise. Theoretical
Immunology: Part Two, SFI Studies in the Sciences of Complexity, 2,
pp.359-371.
[WAT 1998] Y. Watanabe, A. Ishiguro, Y. Shirai, Y. Uchikawa,
«Emergent construction of behavior arbitration mechanism based on the
immune system», Université de Nagoya Japan, 1998.
[WIK 2006] l'encyclopédie libre Wikipédia, [
http://fr.wikipedia.org/wiki/Navigation].
|