ÉíÈÚÔáÇ
ÉíØÇÑÞíãáÏÇ
ÉíÑÆÇÒáÌÇ
ÉíÑæåáÌãÇ
íãáÚáÇ
ËÍÈáÇ æ
áíÇÚáÇ
íãáÚÊáÇ
ÉÑÇÒæ
ÇíÖæÈ
ÏãÍã
ÇíÌæáæäßÊáÇ
æ ãæáÚáá
äÇÑåæ
ÉÚãÇÌ
|
|
Présentée par : Amine
BENDAHMANE
Intitulé
Contribution à l'Optimisation d'un Comportement
Collectif pour un Groupe de Robots Autonomes
Faculté : Faculté des
Mathématiques et Informatique
Département : Informatique
Domaine :Informatique
Filière : Informatique
Intitulé de la Formation : Reconnaissance
Des Formes Et Intelligence Artificielle
Devant le Jury Composé de :
|
|
|
|
Membres de Jury
|
Grade
|
Qualité
|
Domiciliation
|
CHOURAQUI Samira
|
Pr
|
Présidente
|
USTO-MB
|
TLEMSANI Redouane
|
MCA
|
Encadreur
|
USTO-MB
|
ADJOUDJ Réda
|
Pr
|
Examinateur
|
U-SBA
|
BOUKLI HACENE Sofiane
|
Pr
|
Examinateur
|
U-SBA
|
YEDJOUR Dounia
|
MCA
|
Examinatrice
|
USTO-MB
|
Année Universitaire : 2022/2023
2023
République Algérienne Démocratique et
Populaire Ministère de l'Enseignement Supérieur et de la
Recherche Scientifique Université des Sciences et de la Technologie
d'Oran Mohamed Boudiaf Faculté des Mathématiques et
Informatique Laboratoire Signal-Image-Parole (SIMPA)
Contribution à l'Optimisation d'un
Comportement Collectif pour un Groupe de Robots Autonomes
Thèse en vue de l'obtention de diplôme
de doctorat en INFoRMATIQUE
Présentée par AMINE
BENDAHMANE
Devant le jury composé de
CHOURAQUI SAMIRA
|
PR.
|
Présidente
|
USTOMB
|
TLEMSANI REDoUANE
|
MCA
|
Directeur de thèse
|
USTOMB
|
ADJOUDJ RÉDA
|
PR.
|
Examinateur
|
U-SBA
|
BOUKLI HACENE SoFIANE
|
PR.
|
Examinateur
|
U-SBA
|
YEDJOUR DoUNIA
|
MCA
|
Examinateur
|
USTOMB
|
2
A ma famille, ma femme
et mes amis.
3
REMERCIEMENTS
Je tiens à remercier mes deux directeurs de
thèse, le Pr. BENYETTOU Abdelkader et le Dr. TLEMSANI Redouane, pour
leurs conseils inestimables et pour avoir accepté d'encadrer ce travail
dont j'espère qu'il sera à la hauteur de leurs
espérances.
Je remercie également Mme la présidente du jury,
Pr. CHOURAQUI Samira, pour sa disponibilité, ainsi que l'ensemble des
membres du jury, à savoir : le Pr. ADJOUDJ Réda, Pr. BOUKLI
HACENE Sofiane et Dr. YEDJOUR Dounia, pour avoir accepté de donner de
leurs temps pour examiner ce travail.
Je remercie le Pr. BERACHED Nasreddine pour m'avoir toujours
ouvert son laboratoire et m'avoir permis de faire des expériences sur
des robots réels sans poser de conditions.
Je remercie aussi l'ensemble de mes enseignants qui m'ont
appris la méthodologie scientifique et les connaissances techniques
requises pour aboutir à ce travail, dont j'espère qu'il sera
à la hauteur de leurs espérances. Sans oublier le personnel
administratif de la faculté ainsi que le service de poste-graduation.
Pour finir, je remercie tous ceux qui ont contribué de
près ou de loin pour la réalisation de ce travail. Notamment ma
famille qui m'a accompagné tout au long de la réalisation de
travail, ainsi que mes amis et mes collègues.
4
RéSUMé
Cette thèse étudie le domaine de la robotique
collective, et plus particulièrement les problèmes d'optimisation
des systèmes multirobots dans le cadre de l'exploration, de la
planification de trajectoires et de la coordination. Elle inclut deux
contributions. La première est l'utilisation de l'algorithme
d'optimisation des papillon (BOA : Butterfly Optimization Algorithm) pour
résoudre le problème d'exploration de zone inconnue avec des
contraintes d'énergie dans des environnements dynamiques. A notre
connaissance, cet algorithme n'a jamais été utilisé pour
résoudre des problèmes de robotique auparavant. Nous avons
également proposé une nouvelle version de cet algorithme
appelée xBOA basée sur l'opérateur de croisement pour
améliorer la diversité des solutions candidates et
accélérer la convergence de l'algorithme. La deuxième
contribution présenté dans cette thèse est le
développement d'une nouvelle plateforme de simulation pour l'analyse
comparative de problèmes incrémentaux en robotique tels que les
tâches d'exploration. La plateforme est conçue de manière
à être générique pour comparer rapidement
différentes métaheuristiques avec un minimum de modifications, et
pour s'adapter facilement aux scénarios mono et multirobots. De plus,
elle offre aux chercheurs des outils pour automatiser leurs expériences
et générer des visuels, ce qui leur permettra de se concentrer
sur des tâches plus importantes telles que la modélisation de
nouveaux algorithmes. Nous avons mené une série
d'expériences qui ont montré des résultats prometteurs et
nous ont permis de valider notre approche et notre modélisation.
Mots clés :
Systèmes multirobots, comportements intelligents,
métaheuristiques, exploration robotique, benchmarking, Butterfly
Optimization Algorithm, xBOA
5
ABSTRACT
This thesis studies the domain of collective robotics, and
more particularly the optimization problems of multirobot systems in the
context of exploration, path planning and coordination. It includes two
contributions. The first one is the use of the Butterfly Optimization Algorithm
(BOA) to solve the Unknown Area Exploration problem with energy constraints in
dynamic environments. This algorithm was never used for solving robotics
problems before, as far as we know. We proposed a new version of this algorithm
called xBOA based on the crossover operator to improve the diversity of the
candidate solutions and speed up the convergence of the algorithm. The second
contribution is the development of a new simulation framework for benchmarking
dynamic incremental problems in robotics such as exploration tasks. The
framework is made in such a manner to be generic to quickly compare different
metaheuristics with minimum modifications, and to adapt easily to single and
multi-robot scenarios. Also, it provides researchers with tools to automate
their experiments and generate visuals, which will allow them to focus on more
important tasks such as modeling new algorithms. We conducted a series of
experiments that showed promising results and allowed us to validate our
approach and model.
Keywords:
Multirobot systems, intelligent behaviors, metaheuristics,
robotics exploration, bench-marking, Butterfly Optimization Algorithm, xBOA
6
` jÊÓ
~
~
ûA~KñK.ðQË@
~éÒ ~cents~~~@~á~~m~~
É~KAÓ YK~Yj~JËAK.ð ,
.1J~«AÒm.Ì @
ûA~KñK.ðQË@
ÈAm.× 6-ðQ£B@ è 11.
€PY~K B@ ~J~~~~JË@ð
~H@PAÖÏ@ J~cents~m~~ ð
~
.ú3/4J~~KAÓñ~Kð~#172;A
~°~JÉB@ LAJ~É ú~~
ôXY.:ÖÏ@ ~
~~
Ð@Y j.:É@ ú É
úÍð B@ LëAÖÏ@
· · ù~ÒÊË@
ÈAj. ÖÏ@
ú~~~á~~.:ÒëAÓ
úΫ .1kðQ£B@ è
.i,ë ÉÒ ~~~ Q~~ «~ ji.1.A1ÖÏ@ #172;A
:°.:É@ .1Ê3/4:Ó ÉmÌ (Butterfly
Optimization Algorithm) 3YK~Yg.
âJ~ÓJP@ñk~
ÕæK
~~ ÕËA~JÒÊ« Yg
úΫ. ûñK.ðQË@ 4P+
ú~~ û@QgaË@ð
3XðYjÖÏ@ alcentsË@
ðQåt ûA«@QÓ
(c)Ó ~é~ðQÖÏ@
P@Y«@~ ÐYLÉ ,
L3AJ~Ë@ · ®i
ú~~. ~A~KñK.ðQË@
É~KAÓ ÉmÌ ÉJ.~
~áÓ~éJ~Ó~PP@ñ~mÌ
@è jë Ð@Y ~j;É@
i
·ñ:,~K @1»ð
~é1YË@ I.Ag. c./Ó
AëZ@X@~á~~s
#172;YîE. xBOA
ùÒ
~éJ~Ó~PP@ñ~mÌ
~ @ è lë áÓ
YK~Yg. Aë~ðA :3@~
Õ-æK~ ú~~æË@
ÈñÊmÌ @ i Ég
ú~~
~HAJ~ÓjP@ñ:4. @
.Ê::4 Z@X~@
Õæ~J~~®~K
é9Yë l.×A;QK.
QK~ñcents~~ ú~~
É~JÒ~J~K ú~æê~ ,
.1J~.;A:Ë@ .1ÒëAÖÏ@ AÓ@
ð , ~ áÓ
é«ñÒm.×
ÈAÒ~JÉAK.
~éJ.~@QÖÏ@ð
,(c)KA ~'J.Ë@ É~®~Kð
, ~H@PAÖÏ@ J~cents~m~~
#172;A ~°~JÉB@ ÉA -t..o éJ~~.
~HA~KñK.ðQË@
~®«ñË@
`~~A'~mÌ @ ~é~KPA~®ÖÏ
ÈAÒ~JÉB@ ÉîD ð
A~ÓA« éÊm.~~
~é~®K~Qcents~.
l.×A~KQ~.Ë@
ÕæÒ' Õç
QñK~
é~K~
~@ AÒ» . 3XY:ÖÏ@ð
4K~XQ~®Ë@
ûA~KñK.ðQË@
ûAëñK~PA~J~~É
(c)Ó
AJ~°J~~KAÓñ~Kð
|
i@ J~°~JË@ð ,
4Qå4
|
~
@ Qar~@ ÐAêÓ úΫ
J~~»Q"JAK. ÑêË iÒa~É AÜØ
ÑîE.PAm.~~ .1~JÖ~ß~B û@ðX@
c4tkAJ.ÊË
ék~~~ É~JÓ
~éJ~Òë
. YÖ ß
z
i
éÖß~Y
®Ë@ ~HAJ~Ó
~PP@ñ~mÌ
~@(c)ÓAî
PA
ð6YK~Yg.
ûA»ÓJP@ñk
· ;~NJa @ H*AÒÊ3/4Ë@
N
i
€AJ~9 ,
ù~;@ñ.:Ë@ ûj.;Ë@
,úÍB@ #172;A~:°~JÉB@ , .1J»
~YË@ ûAJ~»ñÊË@ ,
âJ~«AÒm.Ì @
,:_, ·A ·.;ñK.ðQË@
416@
~
xBOA
ôJ~ÓJP@ñk~ ,
~HA~É@QaË@ ~m~
~éJ~ÓJP@ñk~ ,
ûAJ~ÓJP@ñ. @ Z@X @
7
TABLE DES MATIÈRES
Remerciements 3
Résumé 4
Table des matières 9
Liste des figures 12
Liste des tableaux 13
Introduction Générale 14
I
1
|
Etude théorique
Les systèmes multirobots
|
16
17
|
|
1.1
|
Introduction
|
18
|
|
1.2
|
Les systèmes multirobots
|
18
|
|
|
1.2.1 Présentation des systèmes multirobots
|
18
|
|
|
1.2.2 Les domaines d'applications
|
19
|
|
1.3
|
Les types de systèmes multirobots
|
22
|
|
|
1.3.1 Classification par type de comportements
|
22
|
|
|
1.3.2 Classification par type de synchronisation
|
24
|
|
|
1.3.3 Classification par type d'architecture du système
|
24
|
|
|
1.3.4 Classification par autonomie
|
26
|
|
|
1.3.5 Classification par type de robots
|
28
|
|
1.4
|
Catégorisation des problématiques liées
aux systèmes multirobots
|
29
|
|
|
1.4.1 La navigation
|
30
|
|
|
1.4.2 La cartographie
|
31
|
|
|
1.4.3 La localisation
|
36
|
|
|
1.4.4 La planification
|
38
|
|
|
1.4.5 L'exploration
|
39
|
|
|
1.4.6 La communication
|
42
|
|
|
1.4.7 Autres problématiques
|
43
|
|
1.5
|
Etat de l'art et travaux connexes
|
44
|
|
|
1.5.1 Les méthodes déterministes
|
44
|
|
|
1.5.2 Les méthodes à base d'apprentissage machine
|
46
|
|
|
1.5.3 Les méthodes stochastiques
|
46
|
|
1.6
|
Conclusion
|
48
|
2
|
Les métaheuristiques
|
49
|
|
2.1
|
Introduction
|
50
|
|
2.2
|
Les métaheuristiques
|
50
|
|
2.3
|
Les types de métaheuristiques
|
51
|
|
|
2.3.1 Les méthodes à base de trajectoires
|
51
|
|
|
2.3.2 Les méthodes à base de population
|
53
|
8
2.4 Les mécanisme des métaheuristiques 57
2.4.1 La fonction objectif 57
2.4.2 L'exploration et l'exploitation 57
2.4.3 La convergence 58
2.4.4 Les hyperparamètres 59
2.4.5 Les contraintes 60
2.4.6 Les générations 60
2.4.7 Les critères d'arrêt 60
2.4.8 L'optimalité et la dominance 61
2.5 Structure de base d'une métaheuristique 62
2.5.1 La phase d'initialisation 62
2.5.2 Le corps de l'algorithme 62
2.5.3 La phase finale 62
2.6 Fondements théoriques de métaheuristiques
populaires 64
2.6.1 Les algorithmes génétiques (GA) 64
2.6.2 L'optimisation par Essaim de Particules (PSO) 66
2.6.3 L'otimisation par Colonie de Fourmies (ACO) 67
2.7 Les Fondements théoriques de l'Algorithme
d'Optimisation des Papillons
(BOA) 69
2.8 Les variantes de l'algorithme BOA 73
2.9 Amélioration de l'Algorithme d'Optimisation des
Papillons en utilisation
l'opérateur de croisement (xBOA) 75
2.10 Conclusion 78
II Etude expérimentale 79
3 Méthodologie, modélisation et
paramétrage 80
3.1 Introduction 81
3.2 PyRoboticsLab : un nouvel outil de simulation et de
benchmarking . . . 81
3.2.1 Motivations pour la création d'une nouvelle
plateforme de simulation 82
3.2.2 Les objectifs de conception 83
3.2.3 L'architecture du système 85
3.2.4 Les outils et technologies 87
3.2.5 Les scénarios de bechmarking 89
3.3 Modélisation géométrique des robots
89
3.4 Modélisation du processus de navigation, planification
et évitement d'obs-
tacles 91
3.5 Modélisation des grilles d'occupation 93
3.6 Modélisation du problème d'exploration 97
3.6.1 Modélisation mono et multirobots 97
3.6.2 Les critères d'évaluation 100
3.6.3 La complexité du modèle 101
3.7 Paramétrage et configuration 101
3.7.1 Paramétrage des expériences 101
3.7.2 Paramétrage de l'environnement de simulation
102
9
3.8 Conclusion 104
4 Expériences et analyse 105
4.1 Introduction 106
4.2 Configuration matérielle 106
4.3 Expérience 1 : Évaluation de l'algorithme xBOA
dans un contexte multirobots107 4.4 Expérience 2 : Comparaison entre les
stratégies d'exploration à court terme
et à long terme 109
4.5 Expérience 3 : Recherche des meilleurs
hyperparamètres 110
4.6 Expérience 4 : Comparaison de l'algorithme xBOA avec
les métaheuris-
tiques populaires 112 4.7 Expérience 5 : Evaluation
de la robustesse de l'algorithme xBOA face à la
réduction de taille de la population 120 4.8
Expérience 6 : Comparaison de xBOA avec les autres variantes de
l'algo-
rithme BOA 125
4.9 Expérience 7 : Test en utilisant un robot réel
129
4.10 Conclusion 131
Conclusion générale et perspectives
132
Bibliographie 140
10
LISTE DES FIGURES
1.1
|
Images de systèmes multirobots dans le monde réel
|
18
|
1.2
|
Différents aspects étudiés selon la nature
du domaine appliqué aux systèmes
|
|
|
multirobots
|
19
|
1.3
|
Utilisation de robots pour la gestion portuaire
(système Kalmar AutoStrad
|
|
|
[33])
|
20
|
1.4
|
Exemple d'un scénario où un groupe de robots
s'entraident pour déplacer
|
|
|
un objet lourd (Université Georgia Tech)
|
21
|
1.5
|
Exemple d'un scénario de modélisation 3D d'un parc
urbain en utilisant
|
|
|
plusieurs plusieurs robots (Australian Centre for Field
Robotics)
|
22
|
1.6
|
Types d'architectures de systèmes multirobots
|
25
|
1.7
|
Exemple d'un système hétérogène
constitué d'un robot volant et d'un robot mobile terrestre pour la
supervision d'une zone agricole (Australian Centre
|
|
|
for Field Robotics)
|
29
|
1.8
|
Détection d'obstacles en utilisant la technique du
Vector Field Histogram [20]
|
31
|
1.9
|
Diagramme de relations entre l'environnement du robot et sa
représenta-
|
|
|
tion interne
|
32
|
1.10
|
Exemple d'une carte métrique 2D construite en utilisant la
technique des
|
|
|
grilles d'occupations [1]
|
34
|
1.11
|
Exemples de cartes métriques 3D
|
34
|
1.12
|
Exemple d'une carte topologique
|
35
|
1.13
|
Résultat d'un processus de fusion de cartes [74]
|
36
|
1.14
|
Schématisation des différents repères
utilisés pour la localisation relative et
|
|
|
globale [29]
|
37
|
1.15
|
Localisation par balises RFID [22]
|
38
|
1.16
|
Simulation d'un scénario industriel basé sur les
algorithmes de planification
|
|
|
de trajectoires [42]
|
40
|
1.17
|
Exemple de décomposition d'une carte et balayage en
utilisant une trajec-
|
|
|
toire en zigzag [48]
|
41
|
1.18
|
Exemple de sélection de régions à visiter
dans un scénario de surveillance
|
|
|
[49]
|
41
|
2.1
|
Classification des métaheuristiques [28]
|
51
|
2.2
|
Exemple d'une recherche à solution unique
|
52
|
2.3
|
Exemple d'une recherche à base de population de solutions
|
53
|
2.4
|
Processus de base d'un algorithme génétique
|
54
|
2.5
|
Optimisation de chemins par un ensemble de fourmis [56]
|
55
|
2.6
|
Optimisation à base d'interactions physiques entre les
atomes [67]
|
56
|
2.7
|
Difference entre les stratégies d'exploration et
d'exploitation d'une méta-
|
|
|
heuristique [70]
|
58
|
2.8
|
Exemple de convergence d'une population de solutions [21]
|
59
|
2.9
|
Visualisation d'un front optimal (Pareto Front) séparant
les solutions domi-
|
|
|
nées des solutions non dominées [65]
|
61
|
2.10
|
Structure de base d'une métaheuristique
|
63
|
2.11
|
Diagramme de l'algorithme génétique
|
65
|
2.12
|
Pseudo-code de l'algorithme ACO
|
68
|
11
2.13 Diagramme de l'algorithme BOA 70
2.14 Pseudo-code de l'algorithme BOA 72
2.15 Résumé de l'état de l'art de
l'algorithme BOA et ses différentes variantes 74
2.16 Exemple et pseudo-code de l'opérateur de
croisement 75
2.17 Pseudo-code de l'algorithme xBOA 76
2.18 Diagramme de l'algorithme xBOA 77
3.1 Exemple d'un simulateur moderne basé sur un moteur
de jeux vidéos pour
l'entraînement des voitures autonomes [31] 82
3.2 Architecture générale du simulateur
PyRoboticsLab 86
3.3 Exemple de quelques types de visualisations
générées par le simulateur Py-
RoboticsLab 87 3.4 Modélisation
géométrique du robot et des différents repères
utilisés pour la
détection d'obstacles 89 3.5 Modèle du
bruit ajouté au capteur LIDAR et calcul du degré de confiance
de
la mesure 91 3.6 Niveaux d'abstraction du processus de
navigation, planification et évite-
ment d'obstacles du simulateur PyRoboticsLab 92 3.7
Schéma général du modèle de navigation,
planification et évitement d'obs-
tacles du simulateur PyRoboticsLab 94 3.8 Diagramme de la
routine "solve conflict" pour résoudre un problème de
blo-
cage entre deux robots 95 3.9 Exemple d'exécution
d'un scénario d'exploration et décomposition de la
carte de l'environnement sous forme de grille d'occupation
96 3.10 Un exemple du processus d'évaluation de la fonction fitness
pour une po-
pulation de 4 solutions candidates 97
3.11 Diagramme du processus d'exploration d'une zone inconnue
99
3.12 Schéma du modèle utilisé pour
assurer la coordination entre les robots . 100
3.13 Cartes de l'environnement de simulation utilisé
durant les expériences . 102
3.14 Carte d'environnement utilisé pour simuler les
scénarios à large échelle . 103
4.1 Progression visuelle du scenario multirobots en utilisant
la méthode xBOA
avec 3 robots 107 4.2 Progression visuelle d'un
scénario à grande échelle en utilisant la
méthode
xBOA avec 2 robots 108 4.3 Comparaison entre les deux
stratégies d'exploration en utilisant la méthode
xBOA 110 4.4 Résultats de la simulation de la
mission d'exploration en utilisant la stratégie
à court terme 114 4.5 Résultats de la
simulation de la mission d'exploration en utilisant la stratégie
à long terme 115 4.6 Comparaison de la
durée totale de la mission d'exploration pour la stratégie
à court terme 117 4.7 Comparaison de la
durée totale de la mission d'exploration pour la stratégie
à long terme 118 4.8 Nombre d'évaluations
de la fonction de fitness et temps moyen de calcul
pour chaque métaheuristique 119
12
4.9 Comparaison des résultats en utilisant
l'algorithme BOA avec différentes
tailles de population sur l'environnement House Map
120 4.10 Comparaison du taux d'exploration et durée de la
mission en utilisant la
stratégie à court-terme et une population de
taille 5 122 4.11 Comparaison du temps moyen de calcul et
convergence de la valeur de fit-
ness en utilisant la stratégie à court-terme et
une population de taille 5 . . 123 4.12 Impact de la réduction
de la taille de population sur le temps de calcul et
temps de la mission en utilisant les différentes
métaheuristiques 124 4.13 Visualisation du front des
solutions dominantes (Pareto-front) pour les dif-
férentes métaheuristiques en utilisant une
population de taille 5 125 4.14 Comparaison des variantes de
l'algorithme BOA en utilisant la stratégie à
court terme et une population de taille 5 127 4.15
Suite de la comparaison des variantes de l'algorithme BOA en utilisant
la
stratégie à court terme et une population de
taille 5 128 4.16 Visualisation du front des solutions dominante
(Pareto-front) pour les va-
riantes de BOA en utilisant une population de taille 5
129
4.17 Expérience sur le robot réel
130
13
LISTE DES TABLEAUX
1.1
|
Comparaison entre les architectures des systèmes
multirobots
|
27
|
1.2
|
Comparaison entre les capteurs de distance et les capteurs
optiques . . . .
|
33
|
1.3
|
Récapitulatif des problématiques de bases dans le
domaine des systèmes
|
|
|
multirobots
|
43
|
1.4
|
Résumé comparatif des travaux cités
|
47
|
4.1
|
Valeurs des meilleurs hyperparamètres trouvés
après 30 essais
|
112
|
4.2
|
Taux d'exploration obtenus à la fin de la mission
d'exploration
|
113
|
4.3
|
Evolution du taux d'exploration selon la taille de la
population en utilisant
|
|
|
l'algorithme BOA
|
120
|
4.4
|
Taux d'exploration obtenus à la fin de la mission en
utilisant l'algorithme
|
|
|
BOA avec une population de taille 5
|
124
|
4.5
|
Comparatif du taux d'exploration en utilisation les variantes
de l'algorithme
|
|
|
BOA avec une population de taille 5
|
126
|
14
INTRODUCTION GÉNÉRALE
La robotique collective est un domaine actif de recherche et
développement qui a le potentiel de révolutionner de nombreux
secteurs. Elle prend une place de plus en plus importante dans l'agriculture,
l'industrie, le transport, la sécurité, le sauvetage,
l'exploration et le divertissement. Elle se base sur le principe d'utilisation
de plusieurs robots qui travaillent ensemble pour atteindre un objectif commun.
Cette collectivité implique la collaboration et/ou la coopération
des robots entre eux, ce qui la lie intimement avec le domaine de
l'in-telligence artificielle distribuée.
Ces deux domaines combinés peuvent offrir de nombreux
avantages, notamment : la réalisation de tâches plus rapidement et
plus efficacement, et de manière plus sécurisée,
même dans des environnements dangereux qui pourraient présenter
des risques pour les êtres humains. Par ailleurs, l'utilisation d'un
groupe de robots au lieu d'un seul permet d'augmenter la polyvalence et la
flexibilité du système, ainsi que la robustesse aux pannes.
Notre thèse s'inscrit dans le cadre d'optimisation d'un
comportement collectif pour un groupe de robots autonomes, nous nous
intéressons aux scénarios de planification de trajectoires et
d'exploration de zones en vue de détection d'incidents par exemple, ou
de la localisation d'une personne en détresse.
La thèse est organisée en deux parties. La
partie théorique - divisée en deux chapitres - vise à
introduire tous les fondements théoriques nécessaires à la
compréhension de notre travail. La deuxième partie - elle aussi
divisée en deux chapitres - inclut tous les détails relatifs
à la modélisation de notre solution et l'analyse des
résultats expérimentaux.
Nous introduirons le lecteur dans le premier chapitre aux
différents types de systèmes multirobots ainsi que les
mécanismes de synchronisation existants, tout en détaillant les
différentes problématiques de recherche engendrées par ce
type de systèmes. Nous aborderons également un état de
l'art sur les techniques d'intelligence artificielle utilisées pour les
résoudre.
Le deuxième chapitre sera consacré à
l'étude des métaheuristiques et leurs mécanismes de
fonctionnement. Nous présenterons les fondements théoriques de
quelques métaheu-
15
Introduction Générale
ristiques populaires que nous utiliserons durant nos
expériences. Nous présenterons par la suite notre contribution
à l'amélioration du Butterfly Optimization Algorithm, en
expliquant tous les détails mathématiques nécessaires
à son bon fonctionnement.
Dans le troisième chapitre, nous introduirons le
lecteur à la deuxième contribution de notre thèse
concrétisée dans le développement d'une plateforme de
simulation spécialisée dans le benchmarking et
l'évaluation des algorithmes d'optimisation pour les
problématiques de navigation, de planification de trajectoires,
d'exploration, de balayage et de surveillance. Nous présenterons ensuite
la méthodologie utilisée et notre modélisation du
problème d'exploration de zones inconnues avec des contraintes
d'énergie.
Le dernier chapitre regroupera l'ensemble des résultats
expérimentaux obtenus durant notre thèse. Nous
présenterons aussi notre interprétation de ces résultats
à travers une analyse dédiée pour chaque
expérience. Ce chapitre conclura nos travaux en présentant une
critique des techniques utilisées ainsi que des pistes potentielles pour
les améliorer.
16
Première partie
Etude théorique
17
CHAPITRE 1
LES SYSTÈMES MULTIROBOTS
1.1
1.2
|
Introduction
Les systèmes multirobots
1.2.1 Présentation des systèmes multirobots
1.2.2 Les domaines d'applications
|
18
18
18
19
|
1.3
|
Les types de systèmes multirobots
|
22
|
|
1.3.1
|
Classification par type de comportements
|
22
|
|
1.3.2
|
Classification par type de synchronisation
|
24
|
|
1.3.3
|
Classification par type d'architecture du système
|
24
|
|
1.3.4
|
Classification par autonomie
|
26
|
|
1.3.5
|
Classification par type de robots
|
28
|
1.4
|
Catégorisation des problématiques liées
aux systèmes multirobots
|
29
|
|
1.4.1
|
La navigation
|
30
|
|
1.4.2
|
La cartographie
|
31
|
|
1.4.3
|
La localisation
|
36
|
|
1.4.4
|
La planification
|
38
|
|
1.4.5
|
L'exploration
|
39
|
|
1.4.6
|
La communication
|
42
|
|
1.4.7
|
Autres problématiques
|
43
|
1.5
|
Etat de l'art et travaux connexes
|
44
|
|
1.5.1
|
Les méthodes déterministes
|
44
|
|
1.5.2
|
Les méthodes à base d'apprentissage machine
|
46
|
|
1.5.3
|
Les méthodes stochastiques
|
46
|
1.6
|
Conclusion
|
48
|
18
CHAPITRE 1
1.1 Introduction
L'étude de la robotique collective dans un contexte
informatique concerne l'étude des systèmes dits "multirobots".
L'objectif de ce chapitre est de donner une idée
d'ensemble sur ce sujet en essayant d'englober chacun de ses aspects. Nous
commencerons par présenter les systèmes multiro-bots, leurs types
et leurs domaines d'applications. Nous détaillerons également les
axes de recherche relatifs à ce sujet avec les différentes
problématiques qui en découlent.
Nous aborderons ensuite un état de l'art des techniques
d'intelligence artificielle en lien avec les problématiques
traitées dans cette thèse, à savoir les
problématiques d'optimisation de trajectoires et d'exploration de zones
inconnues en utilisant plusieurs robots.
1.2 Les systèmes multirobots
1.2.1 Présentation des systèmes multirobots
FIGURE 1.1 - Images de systèmes multirobots dans le
monde réel
Les systèmes multirobots (Multirobots
Systems,en anglais) sont des systèmes composés de plusieurs
robots programmés de sorte à travailler ensemble afin d'accomplir
une certaine mission. Cette mission est souvent décomposée en un
ensemble de tâches afin de réduire sa complexité. Ces
tâches peuvent être effectuées une à une
séquentiellement, ou en parallèle, selon l'interdépendance
entre elles et le type d'architecture du système.
Les robots sont des machines avec des propriétés
physiques et logiques, ils peuvent donc
être analysés d'un point de vue mécanique
et électronique pour étudier la manière dont ils
détectent et impactent l'environnement qui les entoure. Comme ils
peuvent aussi être étudiés d'un point de vue algorithmique
pour spécifier la manière dont cet environnement doit être
représenté en interne dans le but de prendre des décisions
ou d'effectuer des actions. L'intelligence artificielle est donc au coeur de ce
processus décisionnel, afin de s'assurer que ces machines s'adaptent de
manière efficace à leur environnement.
Dans le domaine de l'informatique, un robot peut être vu
comme un agent qui interagit selon certaines règles. L'étude d'un
système multirobots peut être vue comme l'étude d'un
système multiagents avec certaines limitations physiques telles que leur
degré d'autonomie et leur capacité de stockage et de traitement
de l'information.
D'un autre côté, ils peuvent être
apparentés aux systèmes embarqués en les
considérant comme un réseau d'objets connectés qui
communiquent entre eux pour échanger des informations. Le terme
Réseaux Multirobots (Multirobots Network en anglais) est
parfois utilisé dans la littérature pour décrire ce
concept.
En parallèle, ils peuvent être
considérés dans le domaine de la logistique comme des flottes de
véhicules autonomes (Autonomous Vehicules Fleet). L'objet
d'étude se concentrera donc sur les techniques de gestion de la flotte
(fleet management), suivi de la position et état des robots
(tracking), ainsi que les techniques de commande à distance
(remote control). Il est à noter que le terme «
Véhicule autonome » dans ce domaine doit être
compris au sens large, il inclut les robots de type : voitures, tracteurs,
drones et sous-marins.
(a) Intelligence Artificielle : Étude des
décisions et interactions entre les agents
(b) Réseaux et systèmes embarqués :
Connectivité, topologie réseau et protocoles
(c) Logistique autonome : Suivi, visualisation et commande
à distance
19
FIGURE 1.2 - Différents aspects
étudiés selon la nature du domaine appliqué aux
systèmes multirobots
1.2.2 Les domaines d'applications
Les systèmes multirobots sont souvent utilisés
dans des domaines industriels, sécuri-taires et ludiques. Parmi les
applications notables qui ont permis d'exploiter les pleines capacités
qu'offrent ces systèmes, nous pouvons citer:
-- La détection de feux de forêt;
20
CHAPITRE 1
-- Le nettoyage de zones contaminées ou dangereuses;
-- L'accomplissement d'opérations agricoles dans les
fermes intelligentes;
-- La recherche et localisation de survivants lors des
catastrophes naturelles;
-- La gestion des entrepôts de marchandises;
-- Le déplacement de conteneurs dans les ports;
-- L'inspection des conduits souterrains, pipe-lines,
canalisations et fonds marins;
-- Le divertissement tel que la dance coordonnée de
robots, les spectacles de lumière et les compétitions de football
robotique;
-- La surveillance et détection d'intrus;
-- Le déploiement de capteurs lors des expéditions
scientifiques, tel que les études climatologiques, environnementales et
écologiques;
-- Ainsi que d'autres applications militaires tel que
l'espionnage et la télésurveillance.
FIGURE 1.3 - Utilisation de robots pour la gestion portuaire
(système Kalmar AutoStrad [33])
L'utilisation de ces systèmes offre plusieurs avantages
tels que l'augmentation de la productivité industrielle et agricole,
l'accélération de tâches de sauvetage et lutte contre les
incendies, le renforcement de la fiabilité des systèmes
sécuritaires, l'élargissement de la surface de couverture dans
les systèmes de surveillance, ainsi que la possibilité à
effectuer des tâches impossibles à faire en utilisant un seul
robot.
21
De plus, l'utilisation de ces systèmes permet parfois
aussi de diminuer les coûts de production par rapport à
l'utilisation d'un seul robot, bien que cette idée puisse paraître
contre-intuitive. En effet, il est parfois moins coûteux de fabriquer
plusieurs petits robots bon marché avec des capacités
limitées au lieu d'un seul robot complexe et sophistiqué.
D'autant plus que la consommation énergétique d'un robot peut
augmenter rapidement avec l'augmentation de sa puissance de calcul et poids
maximal à déplacer. Afin de palier à ce type de
problèmes, certains chercheurs se sont basés sur la distribution
de charge entre plusieurs petits robots qui travaillent ensemble au lieu
d'investir sur l'augmentation de la capacité d'un seul robot.
D'un autre côté, les systèmes multirobots
permettent d'augmenter la robustesse du système en évitant
l'inconvénient du point de défaillance unique ({Single
point of failure}). Par exemple, dans un scénario de sauvetage ou
d'exploration d'une zone dangereuse, il est beaucoup moins grave qu'un ou
plusieurs petits robots tombent en panne tant que les autres robots restent
opérationnels, comparé à la situation où un seul
robot complexe est déployé risquant d'entraîner
l'échec automatique de la mission s'il tombe en panne ou se retrouve
bloqué dans les débris.
FIGURE 1.4 - Exemple d'un scénario
où un groupe de robots s'entraident pour déplacer un objet lourd
(Université Georgia Tech)
Il existe toutefois des inconvénients à utiliser
ce genre de systèmes : la nécessité à
intégrer des moyens de communication entre robots entraîne
l'augmentation de la complexité des logiciels et la
nécessité à intégrer des dispositifs
électroniques supplémentaires (Wifi, 4G/LTE, GPS...) qui peuvent
être lourds en consommation énergétique. L'ajout de ces
éléments engendre l'augmentation des coûts de production
ainsi que la consommation énergétique des robots, notamment dans
les situations où le rayon de communication est large.
Un autre problème est la nécessité
d'inclure des mécanismes de coordination et/ou collaboration entre les
robots pour éviter le chevauchement entre les tâches
effectuées, ou encore l'implémentation de processus de prise de
décision collective. Ces fonctionnalités additionnelles
entraînent souvent le recourt à l'augmentation de la puissance de
calcul des
22
CHAPITRE 1
robots ainsi que la difficulté à détecter
les bogues informatiques à cause de la nature hautement parallèle
d'un tel système.
En outre, l'utilisation des systèmes multirobots dans
certains domaines d'application requiert l'installation d'infrastructures
supplémentaires (antennes relais, serveurs de récolte de
données, balises de localisation, bornes de recharge...etc), ce qui
accroît la complexité du système.
FIGURE 1.5 - Exemple d'un scénario de
modélisation 3D d'un parc urbain en utilisant plusieurs plusieurs robots
(Australian Centre for Field Robotics)
1.3 Les types de systèmes multirobots
Les systèmes multirobots peuvent être
catégorisés selon plusieurs critères : architecture du
système, type d'interactions, type de synchronisation, autonomie ou
encore le type des robots utilisés.
Nous allons détailler ci-dessous chaque classification
en commençant de la plus abstraite vers la plus spécifique.
1.3.1 Classification par type de comportements
Un système multirobot doit intégrer des
mécanismes d'interaction entre les robots, ces interactions forment des
comportements de travail collectif qui peuvent être classés en
plusieurs catégories:
Coordination
La coordination est le fait de synchroniser ses efforts pour
réaliser une tâche en équipe. Sachant que cette tâche
pouvait être réalisée par un seul agent, mais de
manière moins efficace que lorsque celle-ci est réalisée
par une équipe d'agents.
23
L'efficacité augmente donc avec l'augmentation du
nombre d'agents dans le groupe, jusqu'à une certaine limite où
l'ajout de nouveaux membres n'ajoute aucun apport. Un exemple de missions qui
peuvent être réalisées seules ou en coordination avec
d'autres robots comprend les tâches d'exploration, la recherche de
personnes et le déploiement de capteurs.
Coopération
La coopération entre plusieurs agents est semblable
à la coordination, à la différence que la tâche en
question ne peut d'être réalisée par un seul agent, comme
l'action de déplacer un objet très lourd par exemple, ou jouer
à un match dans un sport collectif.
L'efficacité passe donc de 0% en utilisant un seul
agent à 100% en utilisant un groupe d'agents.
Collaboration
La collaboration est l'utilisation d'un groupe d'agents
différents pour effectuer une tâche ensemble qui ne pouvait pas
être réalisée en utilisant un seul type d'agents.
Ce genre de comportement nécessite souvent la
distribution de rôles selon les capacités de chaque agent. On
retrouve souvent ce type de tâches dans les chaines de production
industrielles où chaque type de robots est responsable de la
réalisation d'une sous-tâche.
L'efficacité passe dans ce cas de figure de 0% en
utilisant un type d'agents à 100% en utilisant plusieurs types
d'agents.
Compétition
Un comportement compétitif est l'opposé de la
coordination ou de la coopération dans le sens ou chaque agent agit de
manière à maximiser son gain au profit du gain des autres agents.
Un exemple d'un comportement compétitif peut être trouvé
dans les compétitions de robotiques pour collecter le maximum nombre
d'objets par exemple.
Opposition
Dans le comportement d'opposition, chaque agent agit de
manière adverse contre les autres agents de manière à
annuler leurs actions. Un exemple de ce type de comportement peut être
trouvé dans les systèmes anti-intrusion ou un groupe de robots
essaient de neutraliser un autre robot intrus.
CHAPITRE 1
Emergence de comportement
C'est le fruit d'accumulation de plusieurs actions
effectuées par un ensemble d'agents agissant de manière
séparée en suivant des règles simples, mais qui
résulte en la réalisation d'une tâche commune et souvent
complexe. La coordination émerge donc à partir d'un travail
collectif même si elle n'était pas intentionnelle à
l'échelle individuelle.
On retrouve ce genre de comportement dans les essaims de
robots inspirés à partir de colonies d'insectes et d'animaux
sociaux, pour réaliser des tâches de collecte de nourriture par
exemple.
1.3.2 Classification par type de synchronisation
Il est possible de classer la synchronisation des systèmes
multirobots en deux types: Synchronisation implicite
Ce mode se base sur l'échange de données de
manière indirecte en utilisant une mémoire partagée
stockée sur un serveur central. Elle est souvent utilisée dans le
but d'éviter le chevauchement entre les actions réalisées
par plusieurs robots sans nécessiter une communication directe entre
eux. Les robots dans ce type de scénarios ne sont pas forcément
conscients de l'existence des autres robots, ils peuvent tout de même
profiter des informations récoltées par ceux-ci en consultant les
données stockées sur le serveur.
Ce type de synchronisations est largement utilisé dans
des travaux d'exploration et de recherche de survivants où le serveur
combine les données des zones explorées par chaque robot, puis
les redistribuent aux robots pour leur permettre d'éviter de
réexplorer une zone qui a déjà été
visitée par un autre robot auparavant.
Synchronisation explicite
Ce type concerne l'échange de messages directs entre
les robots pour se partager des informations et diviser le travail. Cette
communication permet d'effectuer une coordination proactive en permettant aux
robots de décider d'une stratégie commune qui maximise les gains
du groupe.
Un cas concret de ce type de synchronisation est
l'échange d'actions futures planifiées par les robots telles que
les trajectoires de déplacement afin d'éviter les collisions, ou
l'échange d'informations sur leurs états internes (comme le
niveau de batterie disponible) afin de négocier la distribution de
tâches de manière optimale.
1.3.3 Classification par type d'architecture du système
On peut classer les architectures des systèmes
multirobots en 3 catégories principales: 24
Système centralisé
Il s'agit d'un ensemble de robots communiquant avec un noeud
central dont le rôle est de gérer le groupe en envoyant des ordres
à chaque robot, ou en combinant les données collectées par
ceux-ci. Ce noeud central peut être un serveur distant, ou un robot
leader qui évolue dans le même environnement que les autres
robots, et possède généralement des capacités de
calcul et de stockage largement supérieur aux robots
exécutants.
Il constitue le point le plus fragile du système
puisque ce dernier ne sera plus opérationnel si la communication avec ce
noeud est interrompue ou si celui-ci tombe en panne. Une pratique courante pour
diminuer ce genre de risque dans les systèmes critiques est de miser sur
la redondance de ce noeud. Ceci permet de renforcer la robustesse du
système tout en gardant l'avantage de cette topologie qui se
caractérise par sa simplicité et la disponibilité de
toutes les informations au même endroit; le noeud central possède
une vue d'ensemble sur l'état de tous les robots, des actions
effectuées, et de l'avancement de la mission, et pourra planifier de
manière efficace la distribution des tâches.
25
(a) Centralisé (b) Décentralisé (c)
Distribué
FIGURE 1.6 - Types d'architectures de
systèmes multirobots
Système décentralisé
Dans un système décentralisé, il n'y a
pas un seul noeud central, mais plutôt plusieurs petits noeuds centraux
dont chacun est responsable de gérer un groupe de robots. Ces noeuds
centraux communiquent entre eux pour se synchroniser, mais restent
indépendants dans les décisions et choix des tâches
à affecter aux robots de leurs équipes respectives.
L'avantage d'un tel système est de ne pas
posséder un seul point de défaillance (Single point
offailure) puisque chaque équipe est indépendante des
autres. Par ailleurs, il est possible de réaffecter les équipes
de sorte à ne pas pénaliser une équipe entière si
son noeud central n'est plus opérationnel.
Ces points centraux jouent souvent le rôle de relais de
communication dans les scénarios nécessitant le
déploiement de robots dans une zone à large surface, ce qui
permet d'éviter l'isolement d'un robot si son rayon de communication est
trop loin du noeud central.
26
CHAPITRE 1
Ce genre de systèmes nécessitent toutefois
l'utilisation d'un grand nombre d'agents puisqu'il y aura très peu
d'intérêts à diviser un petit groupe en plusieurs petites
équipes. Une complexité de coordination s'ajoute à cela
puisque chaque noeud ne possède qu'une partie de l'état global du
système, il est donc impératif que les noeuds centraux
échangent entre eux les informations de manière
régulière afin d'éviter le chevauchement entre les
tâches réalisées par chaque équipe.
Une autre utilité de ce genre d'architecture est de les
utiliser dans des scénarios de collaboration entre plusieurs types de
robots. Chaque équipe sera constituée par un type de robots et
sera coordonnée par un leader qui prend en considération les
capacités des membres de son équipe.
Système distribué
Dans un système distribué, il n'existe pas de
notion d'agent central ou de leader. Chaque noeud communique avec ses voisins
et décide des tâches qu'il devra accomplir, il est donc totalement
indépendant des autres noeuds, ce qui renforce la robustesse du
système puisque celui-ci reste opérationnel tant qu'il y a au
moins un robot en service. De plus, il n'y a pas l'obligation de disposer d'un
serveur central pour combiner les données.
Cette architecture se caractérise par une communication
limitée et une prise de décision au niveau local, ce qui permet
d'agrandir la taille du groupe sans avoir besoin d'augmenter les performances
des robots ou le débit du réseau. Elle est souvent
utilisée dans le cas des essaims de robots (swarm of robots)
où l'objectif est de déployer un grand nombre de petits robots
avec des capacités limitées, dans le but de faire émerger
un comportement plus intelligent pour réaliser des tâches
complexes. L'idée de base tourne donc autour de la mise à
l'échelle (scalability) du système multirobots tout en
augmentant sa robustesse.
Le principal inconvénient d'un système
distribué est la dispersion de l'information. En effet, chaque robot ne
possède qu'une vue très limitée de l'état de la
mission. Un robot peut communiquer avec d'autres robots qui ne sont pas dans
son voisinage en passant par d'autres robots qui joueront le rôle de
relais, mais ceci induira nécessairement à une certaine latence
entre l'envoi d'un message et sa réception. Afin de pallier à ces
inconvénients, les chercheurs se tournent souvent vers la
synchronisation implicite entre les agents et éliminent la
nécessité de communiquer entre eux, un exemple peut être
trouvé dans les applications de déploiement de capteurs où
chaque robot calcule la distance entre les capteurs déployés par
ses voisins et adapte sa propre position en conséquence. Un autre
exemple se trouve dans les applications de déplacement en groupe ou les
robots adaptent leurs vitesses et directions selon la vitesse moyenne et
direction de leurs voisins.
Le tableau 1.1 résume les différentes entre ces
trois types d'architectures.
1.3.4 Classification par autonomie
Les systèmes multirobots peuvent aussi être
classifiés par type d'autonomie:
27
TABLE 1.1 - Comparaison entre les architectures des
systèmes multirobots
Type d'architecture
|
Centralisée
|
Décentralisée
|
Distribuée
|
Dépendance au noeud central
|
Elevée
|
Moyenne
|
Basse
|
Latence de communica- tion
|
Basse
|
Basse
|
Elevée
|
Robustesse
|
Basse
|
Moyenne
|
Elevée
|
Simplicité de coordina- tion et
synchronisation
|
Très facile
|
Relativement fa- cile
|
Difficile
|
Mise à l'échelle
|
Limitée
|
Limitée
|
Sans limite
|
Disponibilité de l'infor- mation
|
Regroupée dans
le noeud central
|
Répliquée dans
les noeuds centraux
|
Dispersée
|
Adaptabilité au change- ment
d'objectifs
|
Facile
|
Relativement fa- cile
|
Difficile
|
Système autonome
Un système autonome est un système totalement
indépendant de l'intervention de l'être humain. Il est responsable
d'affecter les tâches, les réaliser, faire le suivi de
l'avancement de la mission et regrouper les informations collectées par
chaque robot.
Le rôle de l'être humain pendant la mission se
limite donc dans la mise en marche ou l'arrêt du système, et
l'intervention en cas de dysfonctionnement.
Les systèmes autonomes sont souvent utilisés
dans des environnements contrôlés impliquant des risques
limités. Les scénarios les plus communs sont l'automatisation des
chaines de production industrielles, la gestion des entrepôts de
marchandises, et le nettoyage de surfaces.
Système semi-autonome
Un système semi-autonome possède une certaine
dépendance à l'être humain, qui jouera un rôle plus
ou moins important selon la nature de la mission. L'opérateur humain
pourra effectuer des tâches de suivi par exemple, de redéfinition
des priorités pendant la mission, ou encore le contrôle manuel du
robot leader. Les autres robots devront donc s'adapter automatiquement aux
décisions de l'opérateur humain; ils jouent un rôle de
support/assistants.
On retrouve ce genre d'organisation dans les scénarios
où l'intervention de l'être hu-
28
CHAPITRE 1
main est limitée, mais nécessaire pour le bon
déroulement de la mission, par exemple : la surveillance, la recherche
des survivants dans les catastrophes naturelles, ainsi que la détection
de feux de forêt.
Système contrôlé
Il s'agit d'un système contrôlé
manuellement par un opérateur humain, souvent à distance à
travers une interface de commande offrant une visualisation complète de
l'état du système et un retour visuel sur les
opérations.
Une problématique de base de ce type de systèmes
est la manière qu'un seul opérateur humain peut contrôler
plusieurs robots à la fois. Une solution serait d'offrir à
l'opérateur la possibilité d'affecter les tâches pour
chaque robot, et laisser les robots effectuer ces tâches de
manière automatique. La différence clé avec un
système semi-autonome est que dans un système
contrôlé, les robots n'ont pas la liberté de choisir une
tâche ou de se déplacer vers un point sauf s'ils reçoivent
l'ordre explicite de la part de l'opérateur.
Ce type de systèmes est utilisé dans les
scénarios à fort risque dont la prise de décisions
requiert une expertise élevée dans le domaine ou lorsqu'elle est
liée à une responsabilité morale qui ne peut être
automatisée, tels que les interventions à distance dans les zones
contaminées, le diagnostic des pipe-lines, et les applications
militaires.
1.3.5 Classification par type de robots
Les systèmes multirobots peuvent aussi être
classifiés par type de robots qui compose le système:
Classification par
homogénéité
Un système homogène est un système
constitué par des robots similaires du même type, et qui ont les
mêmes capacités. Ceci simplifie beaucoup la distribution des
tâches puisque les robots sont interchangeables et chaque tâche
peut être effectuée par n'importe quel membre du groupe.
Un système hétérogène est en
revanche composé de robots de différents types. La distribution
de tâches doit être adaptée selon les capacités de
chaque type de robots, ce qui implique un mécanisme de prise de
décisions plus spécifique.
Classification par mobilité
Un système mobile est constitué de robots qui
peuvent se déplacer dans l'espace où ils sont
déployés, tels que les robots de type véhicule, les robots
volants et les robots marins.
29
FIGURE 1.7 - Exemple d'un système
hétérogène constitué d'un robot volant et d'un
robot mobile terrestre pour la supervision d'une zone agricole (Australian
Centre for Field Robotics)
Un système statique est constitué de robots
fixés dans le sol, tel que les bras manipulateurs dans les chaines de
production industrielles.
À noter qu'un système
hétérogène peut aussi être constitué de
robots mobiles et robots statiques qui travaillent en collaboration pour
effectuer une mission commune.
Classification par mode de locomotion
Il existe plusieurs types de locomotion pour les robots
mobiles : on trouve par exemple les robots humanoïdes qui ressemblent
à des êtres humains ou à des animaux et se déplacent
en utilisant des pieds. Il existe aussi des robots de type véhicule, qui
se déplacent en utilisant des roues ou des chaînes. Ou encore des
robots à propulsion qui se déplacent dans l'air (drones) ou dans
l'eau (bateaux, sous-marins). On trouve également un mode de
déplacement par frottement, inspiré de certains animaux tels que
les serpents.
1.4 Catégorisation des problématiques liées
aux systèmes multirobots
Les problématiques liées à la robotique
en général touchent à plusieurs disciplines dont la
mécanique, l'électronique, l'informatique ou encore
l'énergétique et les sciences sociales.
Nous nous intéressons dans cette thèse aux
problématiques liées à l'informatique et
30
CHAPITRE 1
l'intelligence artificielle en général, et plus
précisément et au traitement de l'information et à la
prise de décisions.
Nous pouvons distinguer dans la littérature plusieurs
problématiques qui se chevauchent et qui constituent chacune un axe de
recherche très actif dans la communauté:
1.4.1 La navigation
La navigation est l'une des problématiques de base dans
le domaine de la robotique. Elle soulève la question de comment
permettre à un robot de se déplacer tout en évitant les
collisions avec les obstacles présents dans son environnement.
Un obstacle peut être de nature statique comme les murs
et les objets. Il peut aussi être de nature dynamique comme les
êtres humains, les véhicules et les autres robots.
L'axe de recherche de la navigation s'intéresse
à la modélisation géométrique des robots et de leur
mode de déplacement, les degrés de liberté d'un robot, et
les techniques de détection et d'évitement d'obstacles.
La modélisation géométrique du robot est
essentielle pour pouvoir contrôler sa vitesse et sa direction de
mouvement. Un robot à roues ne se déplace pas de la même
manière qu'un drone volant ou qu'un robot à deux pieds. Cette
modélisation peut aussi varier pour des robots de même type selon
leur nombres de moteurs, leur forme et le nombre de degrés de
liberté qu'ils possèdent.
La navigation nécessite également de pouvoir
mesurer l'accélération du robot, qui est souvent obtenue en
calculant le nombre de rotations des roues pour les robots de type
véhicule par exemple, mais elle nécessite l'utilisation de
dispositifs électroniques plus complexes pour les robots volants tels
qu'un gyroscope pour mesurer l'orientation, un altimètre pour mesurer
l'attitude et un accéléromètre pour mesurer
l'accélération.
D'autres dispositifs doivent aussi être utilisés
pour l'évitement d'obstacles, il s'agit souvent de capteurs de distance
de type laser, ultrason ou infrarouge pour pouvoir construire un histogramme de
distances et choisir une direction de mouvement sans danger. Mais on peut aussi
utiliser des méthodes plus complexes comme des caméras 2D ou 3D
pour la reconnaissance d'objets, qui s'avèrent utiles lorsqu'il est
nécessaire d'interagir avec l'obstacle en question (ouverture de portes
par exemple, collecte d'objets...etc.).
Dans un système multirobots, chaque agent
considère les autres robots comme des obstacles à éviter.
Toutefois, dans un scénario de déplacement en groupe la
navigation devient plus compliquée car elle prend en
considération des critères supplémentaires dont la
distance maximale autorisée entre chaque robot, la vitesse des robots
à proximité, et leur direction de mouvement. Un scénario
typique est le déplacement en formation où les robots se
déplacent en suivant les mouvements d'un robot leader, ou bien en
essayant de garder une certaine formation (ligne droite, cercle,
triangle...etc.). Lorsque les robots rencontrent un obstacle, ils sont souvent
obligés de rompre la formation pour l'éviter, ils doivent ensuite
retourner à la formation initiale en réajustant leurs vitesses et
positions.
31
FIGURE 1.8 - Détection d'obstacles en
utilisant la technique du Vector Field Histogram [20]
1.4.2 La cartographie
La problématique de cartographie tente de
répondre à la question « à quoi ressemble
l'environnement? ». Le but est de permettre à un robot de
créer un modèle interne de son environnement à partir de
ses observations.
Ce processus de modélisation représente l'espace
qui entoure le robot dans une structure de données qui permettra de
faciliter les autres opérations tel que la planification des
trajectoires, distribution de tâches, et localisation des points
d'intérêts. Cela permet aussi d'optimiser la navigation puisque le
robot pourra savoir à l'avance la position des obstacles qu'il faudra
éviter.
Afin de pouvoir créer une carte de l'environnement, le
robot devra traduire les observations récoltées en données
utiles. Ces observations sont souvent obtenues soit en utilisant des
dispositifs électroniques de mesure de distances
(télémètres, radars...) qui permettent de calculer
rapidement et avec grande précision l'emplacement des obstacles dans un
rayon
32
CHAPITRE 1
FIGURE 1.9 - Diagramme de relations entre l'environnement du
robot et sa représentation interne
allant de 180° à 360°, soit en utilisant des
capteurs optiques (caméras) qui permettent d'ex-traire des informations
plus riches tels que les couleurs, les formes ou les textures. Chaque
méthode à des avantages et des inconvénients, et il n'est
pas rare dans les applications réelles de combiner les deux
méthodes afin de maximiser la qualité des cartes crées, au
profit d'une augmentation des besoins en puissance de calcul et de la
capacité de stockage. Le tableau 1.2 présente une comparaison
entre les deux méthodes.
Les cartes peuvent être classées en deux
catégories selon le type de la structure de données
utilisée pour les représenter:
Cartes métriques
Elles sont le résultat de la représentation de
l'environnement sous forme matricielle, afin de représenter les
obstacles avec des formes géométriques simples, telles que des
lignes, cercles et polygones.
Elle s'intéresse à la représentation des
périmètres des objets et leur emplacement sans forcément
connaître leurs natures, puisque l'objectif est souvent de pouvoir
distinguer entre l'espace « vide » où le robot peut naviguer
en toute sécurité, et l'espace « occupé »
où il y a un grand risque de collision.
Dans la figure 1.10 par exemple, nous retrouvons une
représentation d'une carte métrique 2D construire en utilisant la
méthode des grilles d'occupations : la zone blanche représente
l'espace vide de l'environnement, les lignes noires représentent la
périphérie des murs et obstacles, tandis que l'espace gris
représente l'espace non accessible.
Ce type de cartes est simple à réaliser à
partir des observations, mais nécessite de connaître la position
exacte des obstacles et du robot, ce qui la lie fortement à la
problématique de localisation décrite un peu plus loin dans ce
chapitre.
Un autre inconvénient est la nature limitée du
modèle. En effet, ces cartes 2D représentent l'environnement par
vue d'oiseau, ce qui rends difficile l'estimation de la hauteur d'un objet ou
de connaître sa nature. Afin de pallier à cette limitation, une
tendance récente est l'utilisation de télémètres 3D
ou de caméras 3D pour représenter ces cartes sous forme de nuage
de points comme on peut le voir sur la figure 1.11. L'avantage de cette
représentation est d'offrir la notion de « profondeur » qui
est très utile pour pouvoir distinguer entre les murs, les êtres
vivants et les objets mobiles.
33
TABLE 1.2 - Comparaison entre les capteurs de distance et les
capteurs optiques
Type
|
Capteurs de distance
|
Capteurs optiques
|
Exemples
|
Télémètres (laser / infra-
rouge), radars (ultrason)
|
Caméras 2D, caméras 3D
|
Type d'information
|
Distance des obstacles
|
Couleurs, formes, textures + distance en utilisant des
caméras 3D
|
Fréquence de me- sure
|
100 à 1000 observations par seconde
|
15 à 30 observations par se-conde pour la majorité
des caméras
|
Rapidité de traite- ment*
|
Supérieur à 100 observations par seconde
|
1 à 10 observations par se-conde. Peut être
augmenté en relayant les calculs à une carte graphique
|
Distance maximale
|
10, 20, 40m pour le laser selon la gamme; 0.5 à 10m pour
l'ul-trason
|
Techniquement pas de limite
|
Angle d'observation
|
180° à 360° pour les
télémètres laser; 30° à 60° pour les cap-
teurs ultrason.
|
Varie selon l'objectif; 100° à 180° pour la
majorité des ca-méras.
|
Précision
|
0.1° pour le laser; 1° à 3° l'ul- trason
|
Dépends de la distance avec l'objet
|
Nature de la donnée
|
Vecteur de nombre réels
|
Matrice de pixels
|
Taille de la donnée
|
Quelques kilo-octets
|
> 2 méga-octets selon la résolution de
l'image
|
*Rapidité de traitement: temps nécessaire pour
effectuer les opérations d'extraction d'in-formations utiles à
partir d'observations brutes en utilisant un processeur moyen
CHAPITRE 1
34
FIGURE 1.10 - Exemple d'une carte métrique 2D
construite en utilisant la technique des grilles d'occupations [1]
FIGURE 1.11 - Exemples de cartes métriques 3D
Cartes topologiques
Elles sont le résultat de la représentation de
l'environnement sous forme de graphe. Ce type de cartes est plus indulgent
quant à l'erreur dans la position exacte du robot puisque
l'environnement est plutôt schématisé sous forme de graphe.
Pour y arriver, cet environnement est d'abord divisé en plusieurs
régions, qui sont par la suite représentées par des
noeuds, puis reliées entre elles par des arêtes
représentant les chemins possibles pour se déplacer d'une
région à une autre.
Ces cartes sont plus difficiles à construire et
à mettre à jour comparé aux cartes métriques, mais
elles sont plus adaptées d'un point de vue algorithmique à la
planification de chemins à long terme et à la distribution de
tâches entre plusieurs robots. De plus, elles ont l'avantage de consommer
moins d'espace mémoire.
Les cartes topologiques peuvent être enrichies
d'informations supplémentaires comme la distance entre les noeuds ou la
densité d'occupation (pourcentage du nombre d'obstacles
35
FIGURE 1.12 - Exemple d'une carte topologique
par rapport à la surface de l'espace vide). Ces
informations peuvent s'avérer utiles pour la recherche du chemin optimal
entre deux points.
Elles peuvent être aussi être combinées
avec des cartes métriques afin de profiter des avantages des deux types.
La partie métrique sera utilisée pour la navigation à
court terme tandis que la partie topologique sera utilisée pour la
planification à long terme.
La cartographie dans un contexte multirobots
Dans un contexte multirobots, les cartes sont utilisées
comme moyen de communication et de coordination. En combinant les observations
partielles récoltées par chaque robot nous obtenons une carte
complète de l'environnement.
Cette carte est souvent construite dans une machine centrale.
Au début, chaque robot construira sa propre carte locale à partir
des observations qu'il enregistre. Ces cartes sont ensuite envoyées au
serveur pour les combiner dans une seule carte globale. Plusieurs techniques
existent pour effectuer cette combinaison comme la corrélation de scans,
la superposition de cartes, ou la fusion de graphes.
Cette opération peut être difficile surtout
lorsque la position des robots n'est pas connue avec précision, ou
lorsque les observations sont bruitées à cause de capteurs de
mauvaise qualité, ce qui peut induire à des inconsistances dans
la carte globale.
Le facteur temps est également important, deux robots
peuvent passer par un même endroit, mais générer quand
même deux cartes différentes si la position des obstacles a
changé entre temps. Il sera donc encore plus difficile de les superposer
sans avoir recours à des informations supplémentaires comme le
temps de passage de chaque robot ou la position de points de repères.
Un autre défi concerne la manière de fusionner
des cartes construites par une équipe de robots
hétérogènes. Puisque des robots différents peuvent
avoir des capteurs différents ou des points de vue différents
(robot aérien et robot terrestre par exemple), il faudra veiller
à transformer leurs observations vers un format uniforme qui facilitera
la fusion des cartes.
36
CHAPITRE 1
FIGURE 1.13 - Résultat d'un processus
de fusion de cartes [74]
Les cartes sont aussi un moyen de communication avec
l'être humain, car elles permettent à un opérateur de
facilement comprendre la structure de l'environnement et visualiser
l'état d'avancement d'une mission. Aussi, il sera plus facile de
sélectionner graphiquement des points sur une carte pour
délimiter une région d'intérêt, que d'insérer
un ensemble de coordonnées dans un tableau.
1.4.3 La localisation
Dans la problématique de localisation, le but est de
répondre à la question « où est le robot? ». On
s'intéresse ici à connaître la position du robot par
rapport à un repaire fixe.
Étant donné la nature incertaine de
l'environnement en général, cette position est souvent
estimée selon une certaine probabilité en se
référant à des objets externes, bien qu'il soit possible
d'estimer sa position en utilisant des informations internes telles que la
vitesse de déplacement du robot et son orientation.
La position d'un robot qui se déplace sur une surface
2D (sol par exemple) est déterminée par deux coordonnées
(x, y) et une orientation définie par un angle è. D'un autre
côté, un robot qui se déplace sur un espace 3D (robot
volant par exemple), nécessite l'utilisation de trois coordonnées
(x, y, z) pour déterminer sa position, et trois angles pour
déterminer son orientation (á, â, ã). Ces
coordonnées définissent la position du robot par rapport à
un certain repère.
37
Dans les applications réelles de robotique, il est
fréquent d'utiliser plusieurs repères pour le calcul des
positions. L'un d'entre eux -appelé repère global- est un
repère de référence fixe qui sert à calculer la
position du robot par rapport au monde qui l'entoure, ce qui permet d'effectuer
l'opération de cartographie.
De manière opposée, un repère mobile dont
le point d'origine est la position du robot est utilisé pour
déterminer la position relative des obstacles en utilisant la distance
mesurée par ses capteurs, ce qui est particulièrement utile
pendant la phase de navigation pour éviter les collisions. La position
de ces obstacles est ensuite recalculée par rapport au repère
fixe afin de pouvoir déterminer leurs positions réelles dans la
carte de l'environnement. Nous remarquons donc que les problématiques de
navigation, de localisation et de cartographie sont fortement liées.
FIGURE 1.14 - Schématisation des différents
repères utilisés pour la localisation relative et globale [29]
Le choix du point d'origine pour un repère de
référence présente lui aussi son lot de
difficultés. Dans un environnement contrôlé, ce point peut
être défini par l'utilisateur et sera utilisé pour
positionner tout objet modélisé dans l'environnement. Toutefois,
ceci n'est pas toujours possible dans le cas où le robot est
déployé dans un environnement inconnu au préalable. Il est
donc plus judicieux de fixer la position initiale du robot comme point de
référence.
Dans un contexte multirobots, ceci devient plus difficile
puisque chaque robot possède son propre point de
référence. Il est donc important que ces robots synchronisent
leurs positions par rapport à un repère commun comme la
sélection d'un objet fixe comme point de référence ou en
utilisant un moyen de localisation externe, telle que la
géolocalisation.
Certains travaux ont démontré que
l'échange des positions des robots entre eux permettrait aussi de
réduire les erreurs dans leur localisation. Pour cela, chaque robot
détermine la position de l'autre robot lorsque celui-ci rentre dans son
champ de vision, puis la lui envoie. Celui-ci comparera la valeur reçue
avec celle calculée en utilisant ses propres in-
38
CHAPITRE 1
FIGURE 1.15 - Localisation par balises RFID [22]
formations. Ceci permet d'avoir un « point de vue externe
» lorsqu'un robot recalcule sa position pendant un déplacement.
Une autre difficulté liée au problème de
localisation est l'estimation exacte de la position du robot en utilisant des
informations incomplètes ou bruitées. En effet, les capteurs du
robot sont souvent limités et sujets à de petites erreurs, qui
peuvent rapidement s'accu-muler pour donner résultat à une
localisation incorrecte. Plusieurs méthodes ont été
utilisées dans la littérature pour améliorer la
localisation des robots en utilisant des informations visuelles recueillies
à partir de caméras comme l'identification de points
d'intérêts par exemple (portes, fenêtres, objets...) ou
l'utilisation de marqueurs placés préalablement dans
l'environnement (bornes, balises...) tel que décrit dans la figure
1.15.
Dans certains travaux, la localisation est externalisée
vers un serveur central lié à des caméras placées
en hauteur. C'est le cas lorsque les capacités de calcul des robots ne
permettent pas de faire un traitement assez complexe pour les besoins de
l'expérience.
1.4.4 La planification
La planification est une problématique très
importante dans le domaine de la robotique parce qu'elle est au centre du
processus décisionnel. Elle répond à la question : quelle
est la meilleure façon pour accomplir une certaine tâche?
Le but est de décomposer cette tâche en plusieurs
actions (ou sous-tâches) afin de choisir le meilleur ordre d'actions
parmi la liste des combinaisons possibles.
Dans un contexte multirobots, ce choix devient plus
compliqué puisqu'il faut répartir ces sous-tâches de
manière optimale sur plusieurs agents. Ceci correspond à un type
de problèmes mathématiques dont la complexité est
combinatoire (NP-complet) [54], il n'est donc pas toujours envisageable de
vérifier toutes les combinaisons possibles.
39
Dans un système centralisé, cette
répartition est généralement effectuée par le noeud
central qui affecte les tâches à chaque agent. Dans le cas d'un
système décentralisé ou distribué, un consensus
doit être trouvé par les robots pour se diviser les tâches
de sorte à maximiser le profit cumulé du groupe, même si
cela implique que les actions effectuées séparément par
chaque robot ne maximisent pas ses profits au plan individuel.
Lorsque le groupe est constitué de robots
hétérogènes, l'affectation de tâches doit aussi
prendre en considération leur capacités. En effet, certaines
tâches ne sont pas effectuées de la même manière par
tous les robots et il se pourrait que certaines tâches ne puissent
être réalisées que par un type spécifique de robots.
Il faudra donc veiller à inclure ces contraintes au processus
d'affectation.
Un type particulier de planification concerne le calcul de
chemins (path planning ou path finding en anglais). Il s'agit
d'un axe de recherche très actif qui vise à trouver le meilleur
ordre d'actions pour se déplacer d'un point A vers un point B. Ces
actions prennent la forme de mouvements, d'où l'appellation «
planification de mouvements » (motion planning). Il y a là
aussi des contraintes à prendre en compte telles que la présence
d'obstacles, la longueur du chemin choisi, ainsi que les restrictions
géométriques du robot.
La planification de chemins peut aussi prendre la forme de
répartitions de tâches dans les systèmes multirobots :
étant donné plusieurs points de destinations à visiter, le
but est de trouver la meilleure combinaison possible pour répartir ces
points de destination entre les robots de sorte que chaque point ne soit
visité que par un seul robot pour éviter la redondance. Ce type
de problèmes est populaire dans les applications de transport de
marchandises et de gestion des entrepôts.
Un autre aspect à prendre en compte lors de la
planification de chemins dans les systèmes multirobots est
l'évitement des collisions. Le critère du temps est très
important dans ce contexte puisqu'il n'est pas interdit que deux chemins se
chevauchent tant que deux robots ne sont pas présents au même
moment au même endroit. Il faut donc veiller à intégrer une
stratégie de gestion de conflits entre les robots, en gérant les
priorités de passage des robots par exemple ou en intégrant des
contraintes supplémentaires lors du calcul de chemins.
1.4.5 L'exploration
La tâche d'exploration consiste à parcourir une
zone dont le robot n'a aucune information au préalable (ou peu
d'informations). Le but est de collecter le maximum de données utiles
afin de pouvoir mener à bien la mission.
La problématique d'exploration peut devenir
particulièrement difficile avec l'augmen-tation de la surface de la zone
à parcourir et des contraintes de mouvement et d'énergie du
robot. Ceci devient particulièrement critique lorsque le facteur temps
est limité en raison de nature même de la mission, comme les
opérations de sauvetage et recherches de personnes pendant les
catastrophes naturelles par exemple.
40
CHAPITRE 1
FIGURE 1.16 - Simulation d'un scénario industriel
basé sur les algorithmes de planification de trajectoires [42]
La tâche d'exploration est souvent couplée avec
d'autres problématiques selon la nature de la mission. Ceci ouvre la
possibilité à plusieurs variantes que nous pouvons classer selon
les catégories suivantes:
-- Exploration: Consiste à visiter une zone inconnue
dans le but de collecter le maximum de données possibles, souvent sous
forme de positions de points d'intérêts ou d'ensemble de routes et
chemins possibles.
-- Target Searching: Consiste à explorer une zone dans
le but de trouver un individu
ou un certain objet.
-- Patroling : Consiste à explorer une zone de
manière répétitive, souvent dans le but de
détecter des intrus dans un contexte de surveillance.
-- Consistent Surveillance (Consistent Monitoring): Consiste
à surveiller une zone de
sorte que chaque point de l'environnement soit toujours dans
le champ de vision des robots. Le but est de déployer les robots de
sorte qu'aucun angle mort ne soit toléré.
-- Total Coverage (Complete Coverage) : Consiste à faire
le balayage complet d'une zone, c'est à dire l'explorer en visitant tous
les points atteignables par les robots. On ne se contente pas d'observer et
détecter les obstacles à distance, mais de se déplacer et
parcourir chaque petite parcelle de la surface de la zone dans le but de la
nettoyer par exemple, ou détecter la présence de danger (mines,
fuite de gaz...).
La problématique d'exploration avec ses
différentes variantes est une tâche qu'on peut décomposer
en plusieurs sous-tâches. En effet, plusieurs stratégies peuvent
être employées pour répartir cet ensemble de
sous-tâches sur un groupe de robots afin d'accélérer sa
réalisation.
La stratégie la plus intuitive est de diviser la zone
à parcourir en plusieurs régions, puis d'affecter à chaque
robot une ou plusieurs régions à explorer. Le problème se
transforme donc en un problème d'affectation pouvant prendre en compte
un ou plusieurs critères
41
d'optimisation, tel que la distance du robot par rapport à
la région affectée, la taille de la région, ou encore
l'énergie restante du robot.
Toutefois, ceci soulève aussi plusieurs questions : quel
est le nombre optimal de régions? Quelle est la forme des
régions? Quel type de trajectoire faut-il utiliser?
Les réponses à ces questions varient selon la
nature de la mission et des techniques à utiliser. Les figures 1.17 et
1.18 montrent des exemples de ce genre de décisions dans deux
scénarios différents.
FIGURE 1.17 - Exemple de décomposition d'une carte et
balayage en utilisant une trajectoire en zigzag [48]
FIGURE 1.18 - Exemple de sélection de régions
à visiter dans un scénario de surveillance [49]
Une stratégie d'exploration efficace poussera les
robots à minimiser le chevauchement entre les régions
visitées et éviter de retourner par le même chemin, sauf si
cela est inévitable comme lorsqu'un robot atteint une route
fermée et doit faire demi-tour, ou dans le cas d'une intersection de
plusieurs chemins (ex : couloir, hall).
42
CHAPITRE 1
Dans les scénarios de surveillance par contre, la
visite répétitive d'une même région est obligatoire
puisque le but est de s'assurer qu'aucun intrus n'a
pénétré la zone explorée. Les robots devront faire
en sorte de toujours revenir vers les régions visitées à
une fréquence régulière. Les critères
d'optimisation devront donc être adaptés selon chaque type de
scénario.
1.4.6 La communication
La problématique de communication est au coeur des
systèmes multirobots. Plusieurs stratégies de communication
peuvent être employées selon le type de coordination et
l'ar-chitecture générale du système.
Type de communication:
-- Communication passive:
Il s'agit d'échanger des informations indirectement,
soit en détectant les autres robots et en calculant leurs positions et
trajectoires lorsqu'ils rentrent dans le champ de vision. Soit en
déposant ou déplaçant des objets dans l'environnement,
similai-rement au mode de communication de certains insectes qui
dégagent des produits chimiques lorsqu'ils se déplacent (odeurs,
phéromones...) et déposent des morceaux de nourriture dans les
endroits de stockage (fourmilières).
Ce type de communication est souvent facile à mettre en
oeuvre, mais ne garantit pas la réception du message de la part des
autres robots. Aussi, il est difficile de garantir la confidentialité ou
de vérifier l'authenticité de l'émetteur puisqu'un robot
intrus peut copier le mode d'interaction avec l'environnement pour influencer
la décision du système.
-- Communication active:
Il s'agit d'échanger des messages de manière
intentionnelle en utilisant un protocole de communication qui garantit
l'adressage unique de chaque robot. Le protocole le plus souvent utilisé
est le TCP/IP à travers une liaison Wifi ou Bluetooth, ce qui introduit
une augmentation de la consommation d'énergie du robot, notamment pour
les dispositifs à rayon large. Mais d'autres moyens peuvent aussi
être utilisés comme l'échange de messages avec des balises
qui jouent le rôle de relais pour augmenter le rayon de couverture du
dispositif de communication installé sur les robots.
Mode de communication:
Un autre point important lié à cette
problématique est le choix du mode de communication. En effet dans une
communication décentralisée, les robots s'échangent des
messages directement lorsqu'ils sont à proximité. Ceci permet
d'identifier qui est l'émetteur et le destinataire afin d'envoyer des
messages de manière ciblée. Toutefois, il est difficile de
combiner les informations de tous les robots afin d'avoir une vue d'ensemble
générale.
43
De l'autre côté, le mode de communication
centralisé permet de combiner toutes les informations dans un même
endroit. Les robots ne communiquent pas directement entre eux, mais passent par
un serveur qui sera responsable de traiter et distribuer les informations. Ce
serveur fera en sorte que chaque robot ait accès à la même
information que les autres, ou au contraire de choisir quel robot a
accès à quelle information.
Dans ce dernier mode de communication, il est important de
spécifier l'endroit où sera installé le noeud central. En
effet, une première solution est de mettre ce noeud dans le même
réseau local que le système multirobots ce qui permet d'avoir un
débit de communication élevé. Une autre solution est
d'accéder à ce noeud à distance -- souvent en utilisant le
réseau internet -- afin de pouvoir profiter de fonctionnalités
plus évoluées telles que l'accès aux serveurs Cloud par
exemple, ou la visualisation des actions des robots à travers un centre
de commandement.
TABLE 1.3 - Récapitulatif des
problématiques de bases dans le domaine des systèmes
mul-tirobots
Problématique
|
Objectif
|
Types
|
Navigation
|
Se déplacer tout en évitant les obstacles
|
-
|
Cartographie
|
Dessiner la structure de l'en- vironnement
|
Métrique (grille), Topologique (graphe)
|
Localisation
|
Calculer la position du robot
|
Localisation relative, géoloca-lisation
|
Planification
|
Calculer un chemin d'un point A vers un point B
|
Planification à court terme, à long terme
|
Exploration
|
Visiter une zone inconnue pour collecter des informa- tions
|
Exploration, Balayage, Sur-
veillance
|
Communication
|
Échanger des informations
|
Communication robot-server, communication inter-robot
|
Contrôle et gestion de flotte
|
Envoi des ordres aux robots par l'opérateur humain
|
Contrôle de robot individuel, contrôle
groupé
|
Interfaces homme- machines
|
Visualiser l'état des robots et l'avancement de leurs
tâches
|
-
|
1.4.7 Autres problématiques
D'autres problématiques liées aux
systèmes multirobots comprennent des sujets rattachés
généralement à d'autres domaines scientifiques, citons par
exemple:
44
CHAPITRE 1
-- L'étude de l'assemblage de plusieurs robots en un seul
(mécanique et électronique); -- Les dispositifs
d'interconnectivité des robots (télécommunications);
Par ailleurs, d'autres sujets liés au domaine de la
robotique en général comprennent l'étude des:
-- Moyens de locomotion des robots;
-- Dispositifs de détection (détecteurs de
distances, caméras, capteurs spécifiques : gaz,
température, métaux...etc);
-- Dispositifs de mesures internes (vitesse,
accélération, orientation, géolocalisation, force
exercée, énergie consommée);
-- Ressources énergétiques du robot (batteries,
combustibles...);
-- Effets psychologies liés à l'utilisation des
robots en présence des êtres humains: -- Sujets liés
à l'éthique et réglementations dans le domaine de la
robotique.
1.5 Etat de l'art et travaux connexes
Cette section présente un aperçu des techniques
d'apprentissage machine et d'optimi-sation utilisées pour
résoudre les problématiques liées aux systèmes
multirobots, nous nous intéresserons surtout aux problématiques
liées à notre présente thèse à savoir la
navigation, la planification et l'exploration.
De nombreuses techniques ont été
utilisées en robotique pour l'exploration de zones. Ces techniques
peuvent être classées selon plusieurs critères concernant
leur déterminisme, la nécessité d'utiliser des
informations préalables, ou l'adaptabilité à un contexte
multiro-bots.
1.5.1 Les méthodes
déterministes
Une méthode déterministe populaire pour
résoudre le problème d'exploration de zone inconnue a
été introduite par [89] où le robot continue de se
déplacer vers le point de frontière le plus proche
(frontier-based exploration). Les frontières sont les lignes
séparant les régions explorées et inexplorées d'une
zone. Cette technique est facile à mettre en oeuvre, nécessite
peu de ressources de calcul, et donne de bons résultats en pratique.
Ceci a encouragé les chercheurs à développer de nombreuses
variantes du même algorithme dans le but de trouver la meilleure
stratégie pour sélectionner les points de frontières les
plus intéressants [47].
Une version multirobots a aussi été
proposée par les auteurs initiaux [90] où chaque robot se
déplace vers sa frontière la plus proche tout en envoyant la mise
à jour de l'opéra-tion de cartographie aux autres robots;
cependant, cette stratégie ne parvient pas à éviter la
redondance puisque plusieurs robots peuvent se déplacer vers la
même frontière. L'auteur de [15] a essayé de
résoudre ce problème en utilisant la technique de propagation
d'onde
45
(wavefront propagation) pour dispatcher les robots.
Les frontières sont classées en fonction du nombre de robots
à proximité. Chaque robot est alors affecté à une
frontière différente, ce qui lui permet de s'éloigner le
plus possible des autres robots et maximiser la zone d'ex-ploration.
Les auteurs de [7] se sont orientés vers une
stratégie différente pour les environnements d'intérieurs
: le premier robot explore tout le couloir et détecte les portes, puis
chacun des autres robots sélectionne une porte différente et
explore la pièce correspondante en utilisant la technique des
frontières les plus proches. Le robot ne sort pas d'une pièce
tant qu'il ne l'a pas entièrement explorée. Cette
stratégie encourage les robots à explorer les pièces
individuellement et à réduire le chevauchement entre les
régions qui leur sont assignées, ce qui contribue à
réduire le temps total de mission. Plus récemment, [62]
a utilisé des données incomplètes telles que des
cartes d'évacuation simplifiées ou des plans d'ar-chitecture
comme entrée à l'algorithme afin de choisir la meilleure
frontière à explorer. Les expériences ont montré
que l'exploitation de cartes approximatives peut accélérer la
mission d'exploration, même si les données sont inexactes.
Cependant, cela nécessite que ces cartes soient importées,
prétraitées et alignées manuellement par un
opérateur humain.
Une autre famille d'approches déterministes repose sur
la décomposition de l'environ-nement en plusieurs sous-régions,
puis sur l'exploration de chaque région indépendamment à
l'aide d'une stratégie simple telle qu'un mouvement en zigzag ou en
forme circulaire. Une technique populaire de cette famille est la
Boustrophédon Decomposition proposé par [23].
Le principe est de décomposer la carte en régions
polygonales en fonction de la position des obstacles. Elle a été
utilisée avec succès pour effectuer des tâches de
couverture complète (Complete Coverage). Cependant, elle
suppose que l'environnement soit statique, c'est-à-dire que tous les
obstacles sont fixes et ne changent pas de position. Elle nécessite
aussi que la structure de l'environnement (carte métrique) soit connue
à l'avance puisqu'elle figure parmi les paramètres
d'entrée de l'algorithme à fournir par l'utilisateur. D'autres
techniques utilisent les diagrammes de Voronoï pour décomposer la
carte en régions plus flexibles [39, 63]. [26] a utilisé
la propagation d'onde pour adapter l'algorithme D* au problème de
couverture. Au lieu de planifier un chemin à partir d'une position de
départ vers une position d'arrivée, le D* modifié
génére un chemin pour visiter tous les points d'une carte
donnée. La fonction de replanification rapide de l'algorithme D* lui
permet de s'adapter aux environnements dynamiques en modifiant rapidement la
trajectoire en cas de changement de position d'un obstacle..
Les auteurs de [79] ont proposé une nouvelle
approche pour générer des chemins de couverture efficaces. Elle
utilise une représentation de cartes multicouches appelée
Exploratory Turing Machine pour produire une trajectoire en zigzag
avec une direction de déplacement réglable. Cette
stratégie se traduit par des longueurs de trajectoire plus courtes par
rapport aux méthodes classiques basées sur des mouvements de
va-et-vient. Les auteurs de [77] l'ont étendu récemment
en ajoutant des contraintes d'énergie : le robot exécute le
trajet de couverture jusqu'à ce que son énergie soit faible,
avant de retourner à la borne de recharge de batteries. Après
cela, il redémarre la couverture à partir de la région
inexplorée la plus proche afin d'éviter de faire un long trajet
pour retourner jusqu'au point précédent où il
s'était arrêté. Cette approche garantit la couverture
complète de l'environnement avec un chevauchement réduit.
46
CHAPITRE 1
1.5.2 Les méthodes à base d'apprentissage
machine
Des méthodes basées sur l'apprentissage ont
également été utilisées pour résoudre le
problème d'exploration robotique. Dans l'approche proposée par
[82], le robot ne s'appuie sur aucune carte pour explorer
l'environnement, il utilise plutôt un réseau de neurones par
renforcement de type Deep Q-Network de bout en bout pour choisir la
direction la plus appropriée à suivre en utilisant uniquement les
images de la caméra comme paramètre d'entrée. Cette
méthode a été testée pour naviguer dans un
environnement sous forme de couloir inconnu tout en évitant les murs.
D'autre part, l'approche de [81] utilise une base de
données de cartes déjà vues pour prédire les
régions inconnues d'une carte partiellement explorée. Elle
utilise une technique inspirée du sac de mots (bag of words)
pour détecter les similitudes entre des cartes sous forme de grilles et
apprendre à compléter les zones manquantes. Cela avait permis la
planification des chemins au-delà de la région explorée,
ce qui a réduit la distance parcourue par le robot comparé
à la méthode d'exploration à base de frontières. De
même, le modèle de [78] prédit l'emplacement et la
forme des obstacles se trouvant au-delà des frontières dans les
régions inconnues. Pour celà, les auteurs ont utilisé un
auto-encodeur variationnel (Variational Autoencoders) pour la
prédiction des régions à explorer, et une heuristique pour
évaluer leur coûts et utilité.
Récemment, les auteurs de [95] ont
proposé une approche où les robots utilisent l'ap-prentissage par
renforcement dans un contexte multirobots afin d'apprendre une stratégie
leur permettant d'explorer une zone efficacement. Une autre approche
basée sur l'appren-tissage par renforcement, proposée par
[97], permet à un robot d'apprendre à explorer une zone
tout en utilisant les images de sa caméra afin de faire une
reconnaissance visuelle et éviter les endroits déjà
visités. L'approche proposée par [32] se base aussi sur
la classification d'images à base de réseaux convolutionnels,
mais cette fois dans le but de guider un robot à naviguer dans un
environnement sous forme de labyrinthe afin de le cartographier. Les
résultats expérimentaux ont montré que l'algorithme a
appris à choisir la direction de mouvement du robot de telle
façon à éviter les obstacles.
1.5.3 Les méthodes stochastiques
Les métaheuristiques ont été largement
utilisées dans différents domaines de la robotique [38]
et sont encore largement utilisées pour les robots terrestres et
aériens.
[6] a utilisé un algorithme génétique
(Genetic Algorithms) pour surveiller une zone connue à l'aide
d'un robot aérien, tout en satisfaisant certaines contraintes telles que
la longueur et la régularité du chemin.
Les auteurs de [98] ont utilisé l'algorithme
des particules en essaim (Particle Swarm Optimization) afin de
distribuer un groupe de robots sur plusieurs régions différentes
de l'environnement. Chaque robot explore la région où il se
trouve puis utilise l'algorithme des particules en essaim afin de se diriger
vers la prochaine région à explorer en se basant sur
l'optimisation des frontières.
47
TABLE 1.4 - Résumé comparatif
des travaux cités
Ref.
|
Carte
|
Famille d'approche
|
Type
d'approche
|
Energie limitée
|
Expérience
|
Nbr robots
|
Type exploration
|
[89]
|
Inconnue
|
Frontier- based
|
Déterministe
|
Non
|
Robot réel
|
Un seul
|
Exploration
|
[7]
|
Inconnue
|
Frontier- based
|
Déterministe
|
Non
|
Simulation
|
Plusieurs
|
Exploration
|
[15]
|
Inconnue
|
Wavefront propagat.
|
Déterministe
|
Non
|
Simulation
|
Plusieurs
|
Exploration
|
[62]
|
Connue Partiellement
|
Frontier- based
|
Déterministe
|
Non
|
Simulation et Robot réel
|
Un seul
|
Exploration
|
[26]
|
Connue
|
D*
|
Déterministe
|
Non
|
Simulation
|
Un seul
|
Complete coverage
|
[79]
|
Connue
|
?*
|
Déterministe
|
Non
|
Simulation et Robot réel
|
Un seul
|
Complete coverage
|
[77]
|
Inconnue
|
?*
|
Déterministe
|
Oui
|
Simulation
|
Un seul
|
Complete coverage
|
[6]
|
Connue
|
GA
|
Stochastique
|
Oui
|
Simulation
|
Un seul
|
Exploration
|
[52]
|
Inconnue
|
GWO
|
Stochastique
|
Non
|
Simulation et Robot réel
|
Un seul
|
Exploration
|
[53]
|
Inconnue
|
GWO
|
Stochastique
|
Non
|
Simulation
|
Plusieurs
|
Exploration
|
|
[82]
|
/
|
Deep
Q-Network
|
Apprentissage
|
Non
|
Simulation
|
Un seul
|
Exploration
|
[81]
|
Inconnue
|
FabMap2
|
Apprentissage
|
Non
|
Robot réel
|
Un seul
|
Exploration
|
[78]
|
Connue Partiellement
|
Variational autoencod.
|
Apprentissage
|
Non
|
Simulation
|
Un seul
|
Exploration
|
[16]*
|
Inconnue
|
BOA/xBOA
|
Stochastique
|
Oui
|
Simulation
|
Un seul et Plusieurs
|
Exploration
|
* Notre approche
48
CHAPITRE 1
[86] ont utilisé l'algorithme de colonies de fourmis
(Ant Colony Optimization) pour effectuer une tâche d'exploration
dans un contexte multirobots. L'approche est modélisée sous forme
de problème d'affectation, où l'algorithme de colonies de fourmis
affecte à chaque robot une frontière à explorer tout en
minimisant certaines contraintes de distance et de densité des robots
dans une même région.
Récemment, [52] ont utilisé l'algorithme
d'optimisation des loups (Grey Wolf Optimizer) pour affecter au robot
un point de frontière à explorer. Une fois ce point atteint, le
robot répète l'opération afin de sélectionner le
prochain point, et ainsi de suite. Les mêmes auteurs ont également
proposé une version multiobjectifs de cet algorithme dans le but de
maximiser la surface de la zone explorée et la précision de la
carte produite [53].
Quant à l'approche proposée dans [43], elle
utilise la méthode stochastique de l'opti-misation arithmétique
(Arithmetic Optimizer) pour renforcer les capacités d'une méthode
déterministe à maximiser l'utilité lors d'une tâche
d'exploration.
Bien que les métaheuristiques les plus utilisées
dans le domaine de la robotique soient généralement des
techniques classiques utilisées pour résoudre des
problèmes d'optimisa-tion globale, d'autres métaheuristiques
peuvent également être appliquées conformément au
théorème No-Free-Lunch [85] qui stipule qu'aucun algorithme n'est
meilleur qu'un autre algorithme dans tous les types de problèmes. Cela
signifie que si une technique montre des résultats supérieurs
dans certaines classes de problèmes, elle ne peut pas montrer des
résultats optimaux pour toutes les autres classes.
Ce théorème a motivé les chercheurs
à inventer de nouvelles métaheuristiques et à les
appliquer à différents domaines, dont la robotique [73].
Cependant, il existe de nombreuses nouvelles métaheuristiques qui n'ont
pas encore été utilisées dans le contexte de
l'explo-ration de zones. Quelques exemples de ces techniques récemment
développées incluent les algorithmes suivants : Butterfly
Optimization Algorithm (BOA) [11], Atomic Orbital Search [14],
Dwarf Mongoose Optimization Algorithm [5], Arithmetic Optimization
Algorithm [3], Tuna Swarm Optimization [87], et Reptile
Search Algorithm [2].
1.6 Conclusion
Nous avons présenté dans ce chapitre les types
de systèmes multirobots, leurs domaines d'applications, ainsi que les
problématiques clés formant les principaux axes de recherche de
cette discipline.
Nous avons aussi présenté un état de
l'art sur la problématique d'exploration, avec un état
récapitulatif des principales approches citées, ceci nous a
permis de positionner notre travail et donner au lecteur un aperçu de
nos objectifs.
Le prochain chapitre sera dédié aux fondements
théoriques des métaheuristiques. Nous y présenterons leur
structure et mécanismes internes. Nous aborderons également le
mode de fonctionnement de quelques métaheuristiques populaires, ainsi
que notre contribution à améliorer l'algorithme d'optimisation
des papillons (Butterfly Optimization Algorithm).
49
CHAPITRE 2
LES MÉTAHEURISTIQUES
2.1 Introduction 50
2.2 Les métaheuristiques 50
2.3 Les types de métaheuristiques 51
2.3.1 Les méthodes à base de trajectoires
51
2.3.2 Les méthodes à base de population 53
2.4 Les mécanisme des métaheuristiques 57
2.4.1 La fonction objectif 57
2.4.2 L'exploration et l'exploitation 57
2.4.3 La convergence 58
2.4.4 Les hyperparamètres 59
2.4.5 Les contraintes 60
2.4.6 Les générations 60
2.4.7 Les critères d'arrêt 60
2.4.8 L'optimalité et la dominance 61
2.5 Structure de base d'une métaheuristique 62
2.5.1 La phase d'initialisation 62
2.5.2 Le corps de l'algorithme 62
2.5.3 La phase finale 62
2.6 Fondements théoriques de métaheuristiques
populaires 64
2.6.1 Les algorithmes génétiques (GA) 64
2.6.2 L'optimisation par Essaim de Particules (PSO) 66
2.6.3 L'otimisation par Colonie de Fourmies (ACO) 67
2.7 Les Fondements théoriques de l'Algorithme
d'Optimisation des
Papillons (BOA) 69
2.8 Les variantes de l'algorithme BOA 73
2.9 Amélioration de l'Algorithme d'Optimisation des
Papillons en uti-
lisation l'opérateur de croisement (xBOA) 75
2.10 Conclusion 78
50
CHAPITRE 2
2.1 Introduction
L'optimisation dans le domaine mathématique est un
terme utilisé pour désigner la recherche de la meilleure solution
à un problème donné. L'optimisation peut être
considérée comme un processus essayant de répondre
à la question suivante: « existe-t-il ou non une meilleure solution
au problème? ».
Nous allons présenter dans ce chapitre une famille de
méthodes utilisées dans le domaine de l'optimisation
numérique qui ont connu un grand succès durant le
demi-siècle dernier en raison de leur capacité à s'adapter
à différents types de problèmes et fournir des
résultats satisfaisants.
Nous introduisons aussi dans ce chapitre les fondements
théoriques d'une nouvelle technique appelée xBOA [16] et qui
constitue l'une des contributions principales de cette thèse.
2.2 Les métaheuristiques
Avec l'augmentation rapide des ressources de calcul
introduites par les ordinateurs, le besoin de résoudre des
problèmes plus complexes est devenu de plus en plus important. Des
techniques d'optimisation stochastique ont été
développées pour fournir des solutions efficaces à ce type
de problèmes.
Les heuristiques sont une classe d'algorithmes visant à
trouver des solutions approximatives à des problèmes
d'optimisation dont la complexité est combinatoire. L'optimisation
stochastique est un type de techniques d'optimisation se basant sur une
recherche aléatoire afin d'explorer plus efficacement l'espace de
solutions possibles.
Les métaheuristiques combinent le concept d'heuristique
avec l'optimisation stochastique dans le but de trouver des solutions
acceptables à des problèmes non linéaires dans un
intervalle de temps raisonnable comparé aux techniques de programmation
mathématique traditionnelles qui garantissent l'optimalité, mais
peuvent entraîner une explosion du temps d'exécution [57].
Le succès des métaheuristiques est causé
par leur capacité à résoudre des problèmes à
très haute complexité ainsi que des problèmes
d'optimisation ayant des objectifs contradictoires. Elles peuvent
également gérer des contraintes non linéaires et
être appliquées à une variété de
problèmes du monde réel sans nécessiter de gros changement
du point de vue de la programmation. Un autre avantage important des
métaheuristiques est leur capacité à résoudre des
problèmes dont le formalisme mathématique n'est pas connu avec
précision.
Toutefois, elles peuvent être coûteuses en temps
de calcul dans certains cas et ne garantissent pas toujours de trouver la
solution optimale. De plus, elles sont difficiles à paramé-trer
à cause de leur sensibilité aux valeurs initiales, ce qui peut
amener à une convergence prématurée.
Elles fournissent un moyen efficace pour trouver des solutions
optimales lorsque l'es-
51
pace de recherche est trop grand ou lorsque les données
sont incomplètes. Elles sont facilement adaptables et peuvent être
utilisées dans une variété de domaines, tels que
l'ingénierie, l'informatique, l'économie ou les finances.
2.3 Les types de métaheuristiques
Les métaheuristiques peuvent être classées
en deux grandes catégories : les algorithmes à trajectoire et les
algorithmes à base de population.
Les algorithmes à trajectoire, aussi appelés
algorithmes à solution unique (Single-Solution Based) proposent
une seule solution et la modifient afin de la faire déplacer dans
l'espace de recherche, tandis que les algorithmes basés sur une
population (Population Based) maintiennent un groupe de solutions
potentielles et les font évoluer itérativement, puis
sélectionnent la meilleure.
FIGURE 2.1 - Classification des
métaheuristiques [28]
2.3.1 Les méthodes à base de trajectoires
Ce type de méthodes se concentre sur
l'amélioration d'une solution en la faisant déplacer dans
l'espace de recherche formant ainsi une trajectoire.
Les trajectoires qui améliorent la solution seront
automatiquement acceptées, tandis qu'une trajectoire qui
décroît la qualité de la solution n'est pas
forcément refusée.
52
CHAPITRE 2
Elle pourra être acceptée avec une certaine
probabilité afin de permettre à l'algorithme d'éviter un
blocage dans une région non optimale, tel que l'on peut voir dans
l'exemple présenté dans la figure 2.2.
FIGURE 2.2 - Exemple d'une recherche à solution
unique
Ces méthodes se basent généralement sur
des stratégies de recherche locale et recherche de voisinage
couplée avec des mécanismes de mémorisation ou de sauts
[64]
Parmi les méthodes les plus connues de cette
catégorie, nous pouvons citer les suivantes:
-- La méthode du recuit simulé
(Simulated Annealing) [59]
Inspirée de la technique de traitement des
métaux, cet algorithme choisit à chaque étape s'il faut
accepter de déplacer la solution vers un état voisin qui risque
de décroître sa qualité ou s'il faut maintenir le
même état.
Ce choix se fait sur la base d'un calcul de probabilité
dont la valeur décroît régulièrement après
chaque itération jusqu'à atteindre zéro. En d'autres
termes, l'algorithme aura de moins en moins de chances d'accepter les mauvaises
solutions au fur et à mesure que le nombre d'itérations augmente.
Il finira par converger vers une solution de meilleure qualité.
-- La recherche tabou (Tabu Search)
[40]
Cet algorithme se base sur une recherche locale, tout en
évitant activement les points de l'espace de recherche
déjà visités. Ceci se fait en gardant en mémoire
ces points visités dans le but d'éviter les boucles dans les
trajectoires de recherche qui conduiront vers le blocage dans un minimum
local.
53
-- La recherche guidée (Guided Local Search)
[27]
Cet algorithme se base sur une recherche locale classique,
à la différence que lors-qu'un minimum local est
détecté (aucune amélioration de la qualité de la
solution n'est possible), une pénalité est rajoutée
à la fonction objective de sorte à encourager la solution
à sortir du voisinage courant et passer vers un nouveau voisinage.
2.3.2 Les méthodes à base de population
Ce type de méthodes démarre avec une population
de solutions et les améliore toutes en même temps afin d'explorer
plusieurs régions de l'espace de recherche en parallèle. Ceci
permet une plus grande flexibilité et une robustesse plus
élevée par rapport aux minimas locaux (voir figure
2.3).
FIGURE 2.3 - Exemple d'une recherche à
base de population de solutions
Le choix de la population initiale est crucial pour la
réussite du processus d'optimisation. En effet, si toutes les solutions
de la population initiale sont presque identiques, il n'y aura pas suffisamment
de diversité et elles convergeront prématurément vers la
même solution.
Généralement les solutions sont
initialisées aléatoirement, cependant, des heuristiques peuvent
être utilisées pour influencer cette initialisation de
façon à avoir une population suffisamment diversifiée pour
pouvoir explorer la plus grande partie de l'espace de recherche.
Les méthodes à base de population peuvent
être classées en plusieurs catégories selon le type
d'inspiration:
CHAPITRE 2
Algorithmes évolutionnaires
Les algorithmes évolutionnaires ont vu le jour au
milieu des années 70 avec les travaux de John Holland [75] puis ceux de
David Goldberg [41] sur les algorithmes génétiques (GA :
Genetic Algorithms),
Ces algorithmes, inspirés des principes de
l'évolution biologique des êtres vivants, se basent sur le
processus d'autoadaptation des espèces dont l'idée
générale est que les individus d'une population qui s'adaptent le
mieux aux conditions de leur environnement survivent le plus longtemps, ce qui
résulte en une évolution progressive de cette population au cours
du temps vers des générations meilleures.
D'autres algorithmes évolutionnaires ont vu le jour
depuis la fin des années 80, tous utilisent des populations d'individus
représentant un ensemble de solutions potentielles. Ces individus sont
mélangés et modifiés en utilisant certains
opérateurs spécifiquement créés pour ce type
d'algorithmes inspirés des principes de reproduction et de mutation
biologique. Seuls les meilleurs individus seront gardés pour la
prochaine itération en analogie au processus de la sélection
naturelle.
54
FIGURE 2.4 - Processus de base d'un algorithme
génétique
Après les succès des algorithmes
génétiques, d'autres algorithmes bio-inspirés ont
été proposés. Les systèmes immunitaires artificiels
(AIS : Artificial Immune Systems) [36] comptent parmi les premiers et
utilisent le principe de fonctionnement des systèmes immunitaires des
vertébrés basés sur l'adaptation et la
mémorisation.
D'autres types d'algorithmes sont aussi apparus tels que la
programmation génétique (Genetic Programming) [25]
où le but est de faire évoluer un programme sous forme d'arbre en
adaptant les opérateurs des algorithmes génétiques
à ce type de modèles, ou l'évolution différentielle
(Differential Evolution) [80] qui se basent sur l'évolution
d'individus codés sous forme de vecteurs de nombres réels, et
dont l'opérateur de croisement se base sur un calcul de distances.
Algorithmes d'intelligence en essaim (Swarm
Intelligence)
Le terme d'intelligence en essaim, ou intelligence collective,
désigne un phénomène où une population d'agents
simples et réactifs interagissent les uns avec les autres de
manière à ce qu'un comportement intelligent émerge
à la suite de ces interactions.
Ce phénomène est souvent observé dans les
essaims de créatures sociales comme les fourmis, les abeilles et les
oiseaux.
L'analogie la plus facile pour expliquer ce
phénomène est la manière dont les fourmis travaillent.
À l'échelle individuelle, une fourmi n'est pas intelligente et
son comportement obéit à un ensemble de règles simples,
toutefois, en combinant le comportement de toutes les fourmis d'une colonie,
nous remarquons l'émergence d'un comportement complexe et
auto-organisé. Nous disons donc que le groupe est intelligent, mais que
l'individu ne l'est pas.
55
FIGURE 2.5 - Optimisation de chemins par un
ensemble de fourmis [56]
Des métaheuristiques à base de population sont
apparues au début des années 90 s'ins-pirant de ce
phénomène. Elles se basent généralement sur le
principe de modéliser les solutions sous forme de vecteurs de nombres
réels. Ces vecteurs évolueront à travers les
itérations en se rapprochant ou s'éloignant des autres individus
selon certaines probabilités et en obéissant à certaines
contraintes. L'une des méthodes les plus populaires dans ce contexte est
l'algorithme d'Optimisation par Colonie de Fourmis (ACO : Ant Colony
Optimization) [24] qui fut créée pour la recherche de
chemins optimaux dans les graphes en modélisant le comportement des
fourmis lorsqu'elles se dirigent vers la nourriture.
CHAPITRE 2
Une autre méthode populaire dans cette catégorie
est appelée Optimisation par Essaim de Particules (PSO : Particle
Swarm Optimization) [58]. Elle imite le comportement social de groupe de
poissons et d'oiseaux en vol où chaque individu modifie sa direction de
mouvement en réponse à ses propres expériences et à
celles de ses voisins. Elle a été appliquée avec
succès dans de nombreux domaines et a donné des résultats
satisfaisants, en particulier pour les problèmes non
linéaires.
Le nombre de métaheuristiques qui rentre dans la
catégorie de l'intelligence en essaim ne cesse de croître, et il
est difficile de toutes les citer. Il s'agit d'un axe de recherche très
actif puisant sa source d'inspiration de la nature. Citons par exemple les
algorithmes d'op-timisation inspirés du comportement des abeilles par
exemple (ABC : Artificial Bee Colony) [55], les loups (GWO : Grey
Wolf Optimizer) [66], les chauves-souris (Bat Algorithm) [91],
les lucioles (Firefly Algorithm)[93]...etc.
Algorithmes inspirés de la physique
Il s'agit d'un type d'algorithmes à base de populations
-toujours inspiré de la nature-mais cette fois des
phénomènes physiques. Ces techniques suivent les mêmes
principes que les algorithmes d'intelligence en essaim et sont parfois
considérées comme une sous-catégorie de ceux-ci.
Parmi ces algorithmes nous retrouvons ceux basés sur
les principes d'interaction entre les masses telles que l'algorithme de
recherche à gravitation (GSA : Gravitational Search Algorithm)
[71] dont les équations sont inspirées de la loi de la
gravité de Newton.
La population de solution dans cet algorithme est
représentée par un ensemble d'atomes qui interagissent entre eux
proportionnellement à leurs masses. Plus une solution sera de meilleure
qualité, plus sa masse augmentera et attirera donc les autres atomes
vers elle.
Nous retrouvons aussi des méthodes basées sur
les principes de la mécanique des fluides, telles que le Vortex
Search Algorithm [30]. Ainsi que d'autres inspirées des principes
d'élec-tromagnétisme tel que l'algorithme des champs
électriques artificiels (Artificial Electric Field Algorithm)
[88].
56
FIGURE 2.6 - Optimisation à base d'interactions
physiques entre les atomes [67]
57
2.4 Les mécanisme des métaheuristiques
2.4.1 La fonction objectif
Une fonction d'évaluation - communément
appelée fonction objectif ou fonction fitness - est
une fonction mathématique qui évalue la qualité d'une
solution dans un problème d'optimisation spécifique.
Elle prend une solution candidate en entrée et retourne un
nombre scalaire (voir équation 2.1). Ce scalaire sera utilisé par
l'algorithme pour comparer les solutions trouvées et sélectionner
la meilleure. De ce fait, elle dirige le processus de recherche de
l'algorithme.
En d'autres termes, pour chaque solution s E S(I), une
valeur de fitness f(s) existe définie par la
formulation suivante:
f : S -? R (2.1)
0
s = {Xi/i = 1..n}
Sachant que S est l'espace de recherche à n
dimensions lié à notre problème, et I est l'ensemble
des contraintes du problème.
2.4.2 L 'exploration et l'exploitation
L'exploration et l'exploitation sont deux concepts clés
des métaheuristiques qui doivent constamment être balancées
afin de garantir une bonne convergence vers la solution optimale.
L'exploration, aussi appelée diversification,
est l'habilité de l'algorithme à diversifier les solutions en
couvrant plusieurs régions de l'espace de recherche. Tandis que
l'exploitation, aussi appelée intensification, est l'aptitude
à se concentre sur une seule région de l'espace de recherche dans
le but d'améliorer une solution en cherchant une meilleure solution dans
son voisinage.
La figure 2.7 schématise cette différence. La
phase d'intensification revient donc à faire une recherche locale. Alors
que la phase de diversification à pour but d'explorer l'espace de
manière générale.
58
CHAPITRE 2
FIGURE 2.7 - Difference entre les
stratégies d'exploration et d'exploitation d'une métaheu-ristique
[70]
2.4.3 La convergence
On dit qu'une métaheuristique converge, lorsque la
majorité des individus constituant sa population aboutissent à la
même solution (voir figure 2.8).
Cette convergence est le résultat d'une comparaison
avec différentes solutions trouvées de l'espace de recherche,
puis l'élimination des solutions de mauvaise qualité, de sorte
à ne garder à la fin que la solution optimale.
Dans le cas idéal, la convergence vers la meilleure
solution se fait après que l'algorithme ait exploré toutes les
régions de l'espace de recherche afin de garantir de tomber sur la
solution optimale. On appelle cette solution Optimum Global ou
Minima Global. Toutefois, il se pourrait dans certains cas que
l'algorithme converge vers une certaine région sans avoir exploré
d'autres, et pourra donc rater la solution optimale en convergeant vers une
solution de moindre qualité. On appelle cette solution Optimum Local
ou Minima Local.
L'objectif d'une métaheuristique est donc de trouver un
compromis entre les phases d'exploration et d'exploitation afin d'éviter
de converger trop rapidement vers un optimum local, mais sans pour autant
perdre trop de temps à explorer chaque région en détail.
L'idée est d'éliminer les mauvaises régions rapidement
afin de pouvoir se concentrer sur les régions les plus prometteuses.
D'un point de vue mathématique, une solution
s* est appelée optimum global si et seulement si
elle respecte l'équation 2.2.
f(s*) f(s)Vs E S. (2.2)
Sachant que S est l'espace de recherche et f : S ?- R+ 0 est la
fonction objectif à minimiser.
59
FIGURE 2.8 - Exemple de convergence d'une
population de solutions [21]
2.4.4 Les hyperparamètres
Ce sont les paramètres spéciaux que l'utilisateur
doit définir manuellement pour réguler le comportement de
l'algorithme. Ces hyperparamètres sont définis avant le
début de l'exécution, souvent de manière
expérimentale en essayant plusieurs combinaisons.
Parmi les hyperparamètres les plus utilisés dans
les métaheuristiques, nous retrouvons:
-- La taille de la population : qui représente le nombre
d'individus (ou nombre de solutions candidates).
-- La taille de l'individu : nombre de variables constituant une
solution.
60
CHAPITRE 2
-- Nombre d'itérations : nombre maximal
d'itérations avant l'arrêt de l'algorithme. -- Le taux de mutation
: probabilité à laquelle une solution est modifiée.
-- ...etc.
2.4.5 Les contraintes
Des contraintes peuvent être ajoutées à la
modélisation d'un problème d'optimisation. Ces contraintes
divisent l'espace de recherche en deux catégories : d'une part
l'ensemble des solutions valides satisfaisant toutes les contraintes du
problème, d'autre part l'ensemble des solutions non valides où au
moins une contrainte est violée.
Le moyen le plus simple pour intégrer une contrainte
à la fonction objectif d'un problème est d'ajouter un facteur qui
pénalise les solutions non conformes. Ceci prend
généralement la forme d'une multiplication entre le nombre de
contraintes violées et un paramètre de pénalité
fixé manuellement par l'utilisateur.
2.4.6 Les générations
Les métaheuristiques se basent sur un principe de
répétition d'un ensemble d'opéra-tions. Suivant l'analogie
des algorithmes évolutionnaires, une itération dans le
contexte des métaheuristiques à base de population est souvent
appelée génération ou
évolution.
Le principe est qu'à chaque génération,
la population subit plusieurs transformations de sorte qu'elle devienne
meilleure que ce qu'elle n'était durant la génération
précédente.
Le meilleur individu de la dernière
génération constitue donc la meilleure solution trouvée au
cours du processus d'optimisation. Il est parfois appelé le
champion.
2.4.7 Les critères d'arrêt
Les métaheuristiques étant un processus
itératif, des critères d'arrêts doivent être mis en
place afin d'éviter le prolongement de l'exécution de
l'algorithme indéfiniment.
Les critères d'arrêts les plus populaires
utilisés dans le domaine de l'optimisation combinatoire sont les
suivants:
-- Atteindre un nombre maximal d'itérations.
-- Atteindre un nombre maximal de solutions
évaluées en utilisant la fonction objectif.
-- Atteindre un nombre maximal d'itérations où
aucun changement n'a été mesuré sur les valeurs de la
fonction objectif (early stopping).
-- Atteindre une certaine valeur de la fonction fitness.
61
2.4.8 L'optimalité et la dominance
FIGURE 2.9 - Visualisation d'un front optimal
(Pareto Front) séparant les solutions dominées des solutions non
dominées [65]
Les métaheuristiques peuvent résoudre des
problèmes d'optimisation ayant plusieurs objectifs contradictoires.
Une stratégie est de réduire ces objectifs
à un seul facteur d'optimisation en utilisant une somme
pondérée. Une autre stratégie consiste à garder ces
objectifs contradictoires et explorer plusieurs espaces de recherches en
parallèle, selon le nombre d'objectifs à optimiser.
Lorsque l'algorithme optimise un problème
mono-objectif, la meilleure solution est celle qui obtient la meilleure valeur
de fitness.
Dans le cas d'une optimisation multi-objectifs nous pouvons
avoir deux cas de figure: soit une solution obtient la valeur optimale dans
tous les espaces de recherches, nous disons donc que cette solution domine les
autres solutions. Soit, nous nous retrouvons avec plusieurs solutions, chacun
domine l'autre dans un objectif en particulier, mais pas dans l'autre. Ces
solutions sont donc toutes les deux optimales et on les appelle solutions non
dominées. L'ensemble des solutions non dominées est appelé
Pareto-front. La figure 2.9 illustre ceci d'une manière graphique.
62
CHAPITRE 2
2.5 Structure de base d'une métaheuristique
Malgré la diversité des métaheuristiques et
leurs types, elles partagent toutes la même structure de base.
L'algorithme de base d'une métaheuristique se découpe en 3
parties:
2.5.1 La phase d'initialisation
Cette phase est exécutée une seule fois au
début de l'algorithme, son but est de définir toutes les
variables et les paramètres nécessaires pour son bon
fonctionnement. Ceci implique généralement d'effectuer les
actions suivantes:
-- Définir le problème : taille de la population,
dimensions des individus, contraintes.
-- Définir la fonction objectif et ses
paramètres.
-- Définir les autres hyperparamètres : nombre
d'itérations, critère d'arrêt...etc.
-- Générer la solution - ou la population de
solutions - initiale.
-- Evaluer les solutions initiales en utilisant la fonction
objectif.
2.5.2 Le corps de l'algorithme
Il s'agit d'exécuter les opérations constituant le
coeur du processus d'optimisation. Cette phase est répétée
jusqu'à ce que le critère d'arrêt soit atteint:
-- Exécuter l'ensemble des opérations constituant
la logique de l'algorithme. -- Evaluer la qualité des solutions.
-- Mémoriser la meilleure solution trouvée
jusqu'ici.
-- Répéter les opérations jusqu'à ce
que le critère d'arrêt soit atteint.
2.5.3 La phase finale
C'est la dernière phase qui sera exécutée
lorsque le processus d'optimisation est terminé. Elle comprend
généralement des actions d'aide à l'analyse des
résultats:
-- Sauvegarder les résultats : meilleure solution,
qualité de la solution finale, temps d'exécution...etc.
-- Tracer les graphes de performances, historique
d'évolution de la fonction objectif...etc. La figure 2.10
schématise la structure de base d'une métaheuristique.
63
Début
Initialiser N (nombre d'individus), max gen (nombre
d'itérations), Pc (probabilité de croisement), et Pm
(probabilité de mutation)
t
Sélectionner N individus et supprimer les
autres
Nbr génération: max atteint ?
Générer la population initiale et évaluer
les individus
Croiser des individus selon une probabilité
Pc
Muter les individus selon une probabilité Pm
Fin
FIGURE 2.10 -- Structure de base d'une
métaheuristique
64
CHAPITRE 2
2.6 Fondements théoriques de métaheuristiques
populaires
Dans cette section, nous allons présenter les
fondements théoriques et le principe de fonctionnement de quelques
métaheuristiques populaires. Ces métaheuristiques seront
utilisées dans les chapitres suivants lors des expériences de
benchmarking et de résolution du problème d'exploration
multirobots.
Les algorithmes seront présentés en suivant l'ordre
chronologique de leur apparition.
2.6.1 Les algorithmes génétiques (GA)
Les Algorithmes Génétiques utilisent des
concepts issus de la génétique et de la sélection
naturelle. Ils ont été introduits par les travaux de John Holland
[75] et D. Goldberg [41].
La population dans un algorithme génétique est
constituée d'un certain nombre d'indi-vidus, eux-mêmes
constitués d'un ensemble de gènes (regroupés en
chromosomes). Un gène représente une variable spécifique
au problème qu'on veut optimiser et est généralement
codé par un nombre binaire ou réel.
Les individus dans cet algorithme sont soumis aux 3
opérations suivantes: Sélection
Durant cette opération, les meilleurs candidats sont
choisis pour servir de parents à la génération
suivante. Ce processus est similaire au processus de sélection naturelle
: les individus les plus adaptés à leur environnement
sont conservés tandis que les moins adaptés meurent avant la
reproduction.
Toutefois, des stratégies sont parfois mises en place
pour conserver certains individus de mauvaise qualité afin de
diversifier la population et éviter une convergence trop rapide vers
l'optimum local.
L'adaptation d'un individu est calculée en fonction de
sa valeur de fitness. L'opération de sélection nécessite
donc d'évaluer l'ensemble des individus de la population à
chaque itération afin de pouvoir les comparer, ce qui a un impact
sur la complexité globale de l'algorithme. Pour une population de N
individus et M itérations, la complexité sera
égale à N x M.
Croisement (crossover)
Cette opération est parfois appelée
reproduction, elle vise à combiner deux individus au
hasard afin d'en produire d'autres. Pour ce faire, l'algorithme
sélectionne quelques gènes
65
FIGURE 2.11 - Diagramme de l'algorithme
génétique
66
CHAPITRE 2
du premier individu et les mélange avec des
gènes du deuxième individu de sorte à créer un tout
nouvel individu différent des deux autres. Cette opération est
répétée plusieurs fois jusqu'à ce que le nombre de
nouveaux individus créés (appelées enfants) soit
égal au nombre des individus déjà présent dans la
population (parents).
Bien que la taille de la population augmente après
l'exécution de cette opération, elle sera réduite à
sa taille originale lors de la prochaine itération après avoir
appliqué l'opéra-teur de sélection.
Il est important à noter que l'opérateur de
croisement n'est pas forcément appliqué systématiquement
à tous les individus. Un facteur de probabilité est
utilisé pour contrôler le taux de croisement dans la population.
Ce facteur est souvent choisi dans un intervalle entre 0.7 à 1.0.
Mutation
Cette opération apporte des changements mineurs aux
individus en modifiant aléatoirement la valeur de certains gènes.
Ceci permet à l'algorithme d'examiner une plus grande
variété de solutions potentielles et l'empêche de rester
coincé dans des optimums locaux. Cependant, il ne faut pas que cette
opération soit effectuée trop souvent pour éviter de
tomber dans une recherche aléatoire. Elle est donc appliquée avec
une probabilité relativement faible (souvent inférieure à
5%).
Le diagramme présenté dans la figure 2.11 montre
les étapes de l'algorithme génétique.
2.6.2 L'optimisation par Essaim de Particules (PSO)
Cette méthode a été publiée en
1995 [58]. Elle se base sur le comportement social des essaims observés
dans la nature.
Dans cet algorithme, une population de particules
représentant des solutions potentielles est générée
aléatoirement. Ces particules se déplacent dans l'espace de
recherche en modifiant leurs emplacements actuels en fonction de leurs
emplacements précédents et de ceux de leurs voisins.
L'équation qui gouverne le déplacement d'une
particule met à jour à chaque itération deux informations
: la vitesse de la particule et sa position (voir les équations 2.3 et
2.4). Ces deux informations sont calculées en fonction de 3
composants:
-- Composant social : attire la particule à se diriger
vers la position de la meilleure solution connue par la population
(dénotée g*).
-- Composant cognitif: attire la particule à se diriger
vers la position de la meilleure solution qu'elle a visité dans le
passé (dénotée x.*).
-- Composant inertiel : pousse la particule à garder sa
direction courante.
L'utilisateur attribue au début de l'algorithme un
facteur de pondération pour chaque composant pour contrôler le
degré d'influence de ces composants sur le mouvement des
67
particules. Plus le facteur du composant social est grand,
plus l'algorithme s'oriente vers la diversification de la population. Plus le
facteur du composant cognitif est grand, l'algo-rithme s'oriente vers une
stratégie d'intensification.
Vitesse : vt+1
i = wvt i +
c1r1(pt_best
i xt i) +
c2r2(gt_bestxt
i) (2.3)
Position: xt+1
i = xt i + vt+1
(2.4) i
Où :
-- w est le poids d'inertie
-- r1 et r2 sont des vecteurs
aléatoires distribués uniformément dans l'interval
[0,1]
-- c1 et c2 sont des hyperparamètres
appelés facteurs d'accélération, ou facteur cognitif et
facteur social respectivement.
2.6.3 L'otimisation par Colonie de Fourmies
(ACO)
Cet algorithme a été introduit par Colorni et
Dorigo en 1991 [24]. Il simule la façon dont les fourmis naviguent pour
trouver la source de nourriture la plus proche de leur nid.
Étant donné que les fourmis dans le monde
réel dégagent des odeurs (ou phéromones) volatiles
lorsqu'elles trouvent une source de nourriture, et que les autres fourmis ont
tendance à suivre les chemins qui contiennent ces phéromones. Les
itinéraires les plus courts entre la source de nourriture et le nid
seront favorisés puisque la quantité de phéromones non
volatilisée sera plus grande en raison de la courte distance. Ces
chemins optimaux seront donc de plus en plus empruntés par les fourmis.
Ce qui résulte en un effet de renforcement.
De la même manière, les agents de l'ACO utilisent
des phéromones virtuelles pour marquer les meilleures solutions
trouvées. Au début de l'algorithme, les fourmis se
déplacent de manière aléatoire tout en mettant à
jour une matrice de phéromones. Cette matrice contient la
quantité de phéromones pour chaque solution trouvée, qui
est incrémentée avec une valeur proportionnelle à la
qualité de la solution.
Cette valeur décroit avec le temps suivant
l'équation 2.5 afin de simuler l'effet d'évapo-ration:
ôi ?- (1 - ñ)ôi
(2.5)
Où ñ est une constante
d'évaporation à définir par l'utilisateur et
ôi est la quantité de phéromones de la solution
i
CHAPITRE 2
68
FIGURE 2.12 - Pseudo-code de l'algorithme ACO
69
Après un certain nombre d'itérations, les
solutions les plus visitées auront une quantité de
phéromones plus grande, ce qui augmente la probabilité que les
fourmis les choisissent. La baisse régulière de la
quantité de phéromones permet aux fourmis d'explorer des
solutions différentes pendant le processus de recherche. C'est un
mécanisme de diversification sans lequel l'algorithme risque de
converger rapidement vers un optimum local. Un autre mécanisme est de
garder en mémoire la liste des solutions que la fourmi a
déjà visitées, de sorte à les éliminer dans
ses futurs mouvements.
2.7 Les Fondements théoriques de l'Algorithme
d'Opti-misation des Papillons (BOA)
Butterfly Optimization Algorithm (BOA) est une
métaheuristique à base de populations s'inspirant du comportement
des papillons, elle a été proposée par S. Arora
et S. Singh [11] en tant qu'algorithme d'optimisation globale.
Au départ, l'algorithme génère une
population de solutions aléatoires (les papillons), puis les modifie
à travers plusieurs itérations jusqu'à ce qu'un
critère d'arrêt soit atteint.
Dans la nature, les papillons utilisent l'odorat pour trouver
des sources de nourriture et des partenaires de reproduction, pour y arriver,
ils utilisent des cellules dans leurs corps pour percevoir les odeurs
(fragrance) et mesurer leurs intensités [11]. Plus la fragrance
est intense, plus le papillon est attiré vers la source de cette
odeur.
L'algorithme BOA modélise ce comportement en calculant
une valeur de fragrance proportionnelle à la valeur de fitness de
l'individu. Plus la valeur de fitness d'un papillon est de meilleure
qualité, plus sa fragrance est grande, et plus les autres papillons y
sont attirés. Toutefois, la fragrance émise par un papillon dans
la nature est souvent altérée par les conditions
météorologiques. Deux paramètres sont donc introduits dans
l'algorithme pour simuler ce phénomène et modifier
l'intensité de la fragrance qui sera captée par les autres
papillons.
Ces paramètres sont les suivants:
-- Sensor modality (c) : Un facteur de multiplication
contrôlant la proportion de la fragrance qui sera perçue.
-- Power exponent (a) : Un exposant qui
contrôle la puissance à laquelle l'intensité originale de
la fragrance est amplifiée.
L'équation 2.6 décrit la règle de calcul de
la fragrance:
F = c * Ia (2.6)
Où :
-- c = sensor modality;
-- a = power exponent; et
-- I = intensité originale de la fragrance, qui est
égale à la valeur de fitness du papillon.
CHAPITRE 2
Générer une population de n papillons
Calculer la fragrance de chaque papillon
Sélectionner le meilleur papillon
r N
Mettre à jour
la valeur de c
ti
Générer un nombre aléatoire r
Non
Se déplacervers le meilleur papillon en utilisant
l'équation 2
i
Remplacer l'ancienne solution par la nouvelle si
meilleure
N
Se déplacer aléatoirement en utilisant
l'équation 3
70
FIGURE 2.13 -- Diagramme de l'algorithme
BOA
71
Une fois les fragrances calculées, les papillons vont
se déplacer graduellement vers le meilleur papillon qui
représente la meilleure solution trouvée jusqu'à
présent dans l'espace de recherche. Cette étape est
appelée « recherche globale » [11]
Afin d'éviter une convergence prématurée,
une phase de recherche locale a été introduite par les auteurs de
l'algorithme pendant laquelle les papillons se déplacent
aléatoirement dans la région où ils se trouvent.
À chaque itération, l'algorithme
exécutera soit la phase de recherche globale, soit celle de la recherche
locale, selon la valeur d'une probabilité d'alternance (switching
probability).
Les équations suivantes décrivent respectivement
comment les individus sont mis à jour pendant les phases de recherche
globale et locale:
xt+1
i = xt i + (r2 * g* - xt
) * fi (2.7)
i
xt+1
i = xt i + (r2 * xt j - xt )
* fi (2.8) k
Où :
-- xi est le papillon n° i;
-- r est un nombre aléatoire appartenant à
l'interval [0, 1];
-- g* est le meilleure papillon dans la population;
-- fi est la fragrance du papillon n° i;
-- xj et xk sont deux papillons sélectionnés
aléatoirement parmi la population.
En exécutant l'équation 2.7 plusieurs fois
à travers les itérations, les papillons convergeront vers
l'individu ayant la meilleure valeur de fitness qui représente la
meilleure solution connue. Toutefois, une convergence trop rapide pourrait
piéger les individus dans le voisinage d'un optimum local alors qu'une
meilleure solution se trouve ailleurs dans l'espace de recherche.
L'équation 2.8 évite à ce problème en poussant les
papillons à se déplacer aléatoirement pour explorer de
nouvelles solutions.
À chaque itération, les valeurs de fitness des
papillons augmenteront en qualité, et leurs fragrances seront de plus en
plus grandes. Afin d'éviter une convergence trop rapide engendrée
par une trop grande augmentation de la fragrance, les auteurs de l'algorithme
ont introduit une règle pour diminuer le facteur de multiplication c
(sensor modality) à la fin de chaque itération [9].
L'ajout de cette règle - décrite par l'équation 2.9 - leur
a permis d'améliorer les résultats de l'algorithme.
f 0.025 )
ct+1 = ct + (2.9) ct * nbr_iterations
72
CHAPITRE 2
La simplicité de l'approche produit un pseudo-code
facile à comprendre, ce qui constitue un avantage considérable
lors de l'implémentation et débogage de l'algorithme (voir la
figure 2.14). Par ailleurs, l'utilisation de formules simples et rapides
à calculer permet de l'utiliser dans des machines à faible
puissance de calcul tels que les petits robots ou les ordinateurs d'ancienne
génération.
Le diagramme présenté dans la figure 2.13
résume toutes les étapes de l'algorithme.
FIGURE 2.14 - Pseudo-code de l'algorithme BOA
73
2.8 Les variantes de l'algorithme BOA
Bien que le pseudo-code tel que décrit dans la section
précédente a été publié en 2019 en
tant que version officielle du Butterfly Optimization Algorithm [11],
une version préliminaire avait déjà été
présentée dans un article de conférence en 2015 [10]
avec un pseudo-code assez similaire du Flower Pollination Algorithm
(FPA) [92] utilisant une distribution Lèvy pour les
règles de mises à jour des positions des papillons. Dans les
articles ultérieurs, les auteurs du BOA ont changé les
équations et ont ajouté la règle de mise à jour
automatique du paramètre c (sensor modality), ce qui a permis
d'améliorer le taux de convergence de l'algorithme [9] [11].
Dans un autre article paru la même année, ils ont
proposé une variante binaire de la méthode pour résoudre
le problème de sélection d'attributs [8].
D'autres auteurs ont proposé l'hybridation de
l'algorithme avec différentes méthodes. Les auteurs de [51]
ont utilisé un modèle de Perceptron Multicouches (MLP :
Multi-Layer Perceptron) hybridé avec BOA pour résoudre le
problème de classification supervisé. Les résultats des
expériences ont démontré que l'introduction du MLP a
permis de garder une bonne balance entre les phases d'exploration et
d'exploitation de l'algorithme BOA et améliorer les résultats.
Les auteurs de [96] ont proposé une approche hybride entre PSO
(Particle Swarm Optimization) et BOA couplée avec la
théorie des systèmes chaotiques afin d'obte-nir de meilleurs
résultats pour les problèmes à grande dimension. Ils ont
aussi proposé une règle de mise à jour non-linéaire
des paramètres qui a amélioré les résultats par
rapport à l'utilisation de la règle classique linéaire de
l'équation 2.9. Les auteurs de [84] ont utilisé
une hybridation basée sur le mécanisme de mutualisme avec le
Flower Pollination Algorithm (FPA). L'approche a donné de bons
résultats mais nécessite un long temps d'exécution. Le
principe de mutualisme a aussi été utilisé par [76]
pour une hybridation avec l'algorithme Symbiosis Organisms Search.
Les auteurs de [99] ont combiné l'algorithme BOA avec la
méthode ANFIS (Adaptive Neuro-Fuzzy Inference System) et ont
obtenu de meilleures performances par rapport à l'approche ANFIS
classique ou de l'approche hybride entre ANFIS et FireFly
Algorithm.
Une autre direction pour l'amélioration de la
méthode consiste à modifier la logique de l'algorithme. Dans
cette perspective, les auteurs du BOA ont proposé une variante
appelée mBOA [12] qui introduit une nouvelle étape
d'exploitation intensive juste après les phases de recherches locale et
globale de l'algorithme. Le but de cette nouvelle étape est
d'éviter à la population de solutions d'être bloquée
dans un optimum local. Les résultats des expériences ont
montré une convergence plus rapide par rapport à la version
classique du BOA. Les auteurs de [83] ont inclus une étape de
recherche locale basée sur l'opération de mutation afin
d'améliorer les performances de la méthode, ce qui a donné
de meilleurs résultats dans 15 parmi les 20 corpus de
tests utilisés par les auteurs, mais a nécessité un temps
d'exécution plus long. Les auteurs de [13] ont utilisé
la théorie des systèmes chaotiques comme phase de recherche
locale pour augmenter les traits d'exploitation de l'algorithme. Ils l'ont
utilisé pour résoudre le problème de sélection
d'attributs. Les auteurs de [61] ont utilisé la méthode
de cross-entroy et une technique de co-évolution pour
résoudre 3 problèmes classiques d'engineering. Les
auteurs de [35] ont opté pour la réduction du nombre de
paramètres en remplaçant la formule de calcul de la fragrance par
une nouvelle règle
74
CHAPITRE 2
autoadaptative qui ne nécessite plus l'utilisation des
deux paramètres c (sensory modality) et a (power exponent).
Cette nouvelle variante est appelée SABOA (Self-Adaptative
BOA). D'un autre côté, les auteurs de [44] ont modifié
l'équation de la recherche globale dans le but d'améliorer la
convergence de l'algorithme, couplé avec une stratégie de
réinitialisation périodique de la population afin d'éviter
le blocage dans un minima local.
Les variantes citées ci-haut ont montré des
résultats prometteurs pour la résolution des problèmes
d'optimisation globaux à grandes dimensions, ce qui constituait une des
faiblesses de l'approche BOA classique. Une autre faiblesse consiste en la
lenteur de la convergence de l'algorithme causée par le faible taux de
diversité des solutions dans la population.
Pour résoudre ces deux problèmes, nous proposons
de modifier la méthode en introduisant l'opérateur de croisement
et modifiant la stratégie de mouvement des papillons dans les phases de
recherches globale et locale. Ces changements ont permis l'introduction d'une
nouvelle variante de l'algorithme appelée xBOA (crossover BOA)
[16].
La figure 2.15 résume l'état de l'art des variantes
de BOA citées ci-haut.
FIGURE 2.15 - Résumé de l'état de l'art de
l'algorithme BOA et ses différentes variantes
75
2.9 Amélioration de l'Algorithme d'Optimisation des
Papillons en utilisation l'opérateur de croisement (xBOA)
L'équation 2.7 déplace tous les papillons vers
la meilleure solution de la population, ce qui ignore les autres solutions qui
ont la même valeur de fitness ou qui ont le potentiel de devenir de
meilleures solutions après quelques itérations. Afin de
dépasser cette limitation, nous proposons de modifier l'algorithme BOA
en remplaçant cette équation avec l'opérateur de
croisement durant la phase de recherche globale.
L'opérateur de croisement a été introduit
dans l'Algorithme Génétique [41]. Il consiste à combiner
deux individus parents pour créer de nouveaux individus appelés
enfants (ou offsprings en anglais). L'idée de base
inspirée de la nature simule la manière dont les enfants
héritent une partie des caractéristiques de chaque parent.
Plusieurs stratégies de combinaisons ont
été proposées dans la littérature [69]. Pour des
raisons de simplicité, nous allons utiliser la stratégie de
croisement à un point (Single-point Crossover). Elle consiste
à diviser le vecteur de données du premier parent en deux
sous-vecteurs, puis les permuter avec les sous-vecteurs du deuxième
parent afin de produire deux nouveaux individus.
L'exemple présenté dans la figure 2.16 montre le
résultat de cette opération pour deux individus de taille 5 ainsi
que le pseudo-code de cette opération.
FIGURE 2.16 - Exemple et pseudo-code de l'opérateur de
croisement
76
CHAPITRE 2
Vu que l'insertion de nouveaux individus dans la population
peut rapidement faire croître sa taille, nous avons choisi de remplacer
un individu parent par un de ses enfants; le meilleur enfant est choisi dans ce
cas. Ceci nous permet de garder une taille de population fixe pendant toute la
durée du processus d'optimisation.
FIGURE 2.17 - Pseudo-code de l'algorithme xBOA
En utilisant l'opérateur de croisement, nous
encourageons les papillons à se déplacer vers plusieurs
potentielles solutions au lieu de converger tous vers la meilleure solution
connue. Ceci crée une diversité dans la population et permet
à l'algorithme d'échapper au piège de converger
prématurément vers un minima local. En d'autres termes, la
population de papillons va inspecter plusieurs régions de l'espace de
recherche simultanément afin de
77
trouver la solution globale plus rapidement.
L'utilisation de l'opérateur de croisement à
chaque itération pourrait toutefois déséquilibrer la
balance entre les propriétés d'exploration et d'exploitation de
l'algorithme xBOA, nous utilisons donc un paramètre qui
déterminera à quelle fréquence cet opérateur est
utilisé. Ce paramètre est appelé probabilité de
croisement (crossover probability). Il remplacera le paramètre
Switch Probability utilisé dans l'algorithme BOA original.
Une autre différence entre les deux algorithmes se
situe au niveau de la recherche locale. En effet, dans xBOA l'équation
2.8 est utilisée même si elle engendre une dégradation de
la qualité des solutions, contrairement à l'algorithme original.
Ceci semble contre-productif, néanmoins cela permet à
l'algorithme d'augmenter la diversité des solutions en leur permettant
de se déplacer aléatoirement dans l'espace de recherche et
d'explorer de nouvelles régions qui pourraient cacher la solution
globale. La stratégie est d'accepter une perte en qualité
à court terme pour pouvoir découvrir des solutions encore
meilleures que celles trouvées jusqu'ici.
Les résultats des expériences effectuées
durant notre thèse ont montré que les modifications
proposées ont permis à xBOA de trouver la solution globale plus
rapidement que l'algorithme BOA original, et d'être plus robuste aux
minima locaux.
Le diagramme de la figure 2.18 décrit toutes les
opérations de l'algorithme xBOA, son pseudo-code est
présenté dans la figure 2.17.
FIGURE 2.18 - Diagramme de l'algorithme xBOA
78
CHAPITRE 2
2.10 Conclusion
Nous avons présenté dans ce chapitre le principe
de fonctionnement des métaheuris-tiques et leurs mécanismes
internes. Nous avons également présenté les fondements
théoriques de plusieurs métaheuristiques populaires
utilisées dans la littérature pour résoudre divers
problèmes d'optimisation globale, dont les problèmes de
robotique.
Ce chapitre a aussi présenté les fondements
mathématiques de la méthode BOA (Butterfly Optimization
Algorithm) ainsi que ses avantages et limitations. Nous avons
proposé des modifications visant à l'améliorer ce qui a
donné lieu à une nouvelle variante de l'algo-rithme que nous
avons appelé xBOA (crossover Butterfly Optimization
Algorithm).
Cette variante se base sur l'intégration de
l'opérateur de croisement durant la recherche globale afin de lui
permettre de diversifier les solutions et échapper aux optimums locaux.
Elle intègre aussi une modification dans la stratégie de la
recherche locale pour éviter de converger trop rapidement vers un
optimum local.
Ce chapitre conclut la partie théorique de notre
thèse. Les deux autres chapitres restants seront consacrés
à l'étude expérimentale.
79
Deuxième partie
Etude expérimentale
80
CHAPITRE 3
MÉTHODOLOGIE, MODÉLISATION ET
PARAMÉ-TRAGE
3.1 Introduction 81
3.2 PyRoboticsLab : un nouvel outil de simulation et de
benchmarking 81 3.2.1 Motivations pour la création d'une nouvelle
plateforme de
simulation 82
3.2.2 Les objectifs de conception 83
3.2.3 L'architecture du système 85
3.2.4 Les outils et technologies 87
3.2.5 Les scénarios de bechmarking 89
3.3 Modélisation géométrique des robots
89
3.4 Modélisation du processus de navigation, planification
et évite-
ment d'obstacles 91
3.5 Modélisation des grilles d'occupation 93
3.6 Modélisation du problème d'exploration 97
3.6.1 Modélisation mono et multirobots 97
3.6.2 Les critères d'évaluation 100
3.6.3 La complexité du modèle 101
3.7 Paramétrage et configuration 101
3.7.1 Paramétrage des expériences 101
3.7.2 Paramétrage de l'environnement de simulation
102
3.8 Conclusion 104
81
3.1 Introduction
Nous allons présenter dans ce chapitre la
méthodologie utilisée, ainsi que la modélisation de la
problématique d'exploration d'une zone inconnue avec des contraintes
d'énergie. Nous présenterons également les outils,
l'environnement de test, ainsi que les critères de performance
utilisés pour la validation de l'approche proposée. Étant
donné la difficulté rencontrée pour la comparaison de
notre approche avec des cas d'études similaires, nous
présenterons un nouvel outil créé afin de faciliter la
comparaison et l'évaluation des algorithmes de navigation, d'exploration
et de planification de trajectoires pour les robots mobiles, ainsi que les
métaheuristiques appliquées au domaine de la robotique.
Cette plateforme de benchmarking a été
créée d'une telle manière à nécessiter peu
de ressources de calcul, et être facile à utiliser et à
automatiser afin d'offrir aux chercheurs du domaine un moyen de prototypage
rapide et une suite d'expérimentation unifiée. Elle fait partie
des principales contributions de cette thèse et sera accessible en open
source pour l'utilisation générale de la communauté
scientifique.
3.2 PyRoboticsLab : un nouvel outil de simulation et de
benchmarking
Le teste et l'évaluation comparative de nouveaux
algorithmes constitue une étape importante de la validation des
idées de recherche. Étant donné que les expériences
réelles en robotique exigent des investissements en temps et en
équipements, de nombreux chercheurs préfèrent utiliser des
environnements virtuels pour tester et valider leurs algorithmes avant de les
déployer sur des robots réels. Même si les simulateurs de
robotique ont été largement critiqués au début des
années 90 [50], nous pouvons aujourd'hui identifier de nombreux
avantages à les utiliser:
-- Expérimentation plus rapide, en
accélérant l'horloge de simulation par rapport à l'horloge
du monde réel.
-- Automatisation des expériences à l'aide de
scripts
-- Mise en pause, enregistrement et reproduction d'une
expérience particulière pour une analyse approfondie.
-- Réduction des coûts en évitant
l'endommagement du matériel en cas d'erreurs de programmation.
-- Évitement des problèmes techniques liés
aux défaillances matérielles.
-- Expérimentation de plusieurs configurations
matérielles sans devoir acheter des pièces de rechange ou de
modifier la partie électronique du robot.
-- Évitement des inconvénients liés
à la limitation des batteries et au temps de recharge pendant les
expériences longues et/ou répétitives.
-- Éliminer les artefacts causés par les
interférences et la faible qualité du matériel.
-- Accélération du processus de validation et de
débogage des logiciels, ce qui réduit les délais de
livraison.
82
CHAPITRE 3
Cette section présente PyRoboticsLab : un nouvel outil
de simulation dédié au bench-marking des algorithmes de
navigation, de planification de chemins, ainsi que l'exploration de zones en
utilisant un ou plusieurs robots. Ce simulateur est disponible en open source
sur le lien cité en bas de page 1.
3.2.1 Motivations pour la création d'une
nouvelle plateforme de simulation
De nombreux simulateurs modernes ont été
introduits par la communauté robotique ces dernières
années [72] [37] [31] [60]. Ces simulateurs offrent un grand
degré de fidélité au monde réel qui leur permet
d'entrainer des algorithmes d'intelligence artificielle avec une grande
précision avant de les déployer en production [31].
Toutefois, pour atteindre ce degré élevé
de fidélité, il faut effectuer des calculs complexes, ce qui
entraine des charges élevées en termes de mémoire et de
puissance du processeur, même pour les petites expériences. Ceci
est un facteur de frein pour la portabilité et le passage à
l'échelle des applications.
Certains chercheurs tentent de surpasser ces limites en
utilisant des services Cloud [94]. Néanmoins, cette mise à
l'échelle implique des frais supplémentaires et affecte
négativement la reproductibilité de l'ensemble du projet.
D'autre part, les simulateurs modernes ont tendance à
être de plus en plus polyvalents, ce qui rend leurs bases de code
difficiles à comprendre et à maintenir. De nombreux projets
1. https ://
github.com/amineHorseman/PyRoboticsLab
FIGURE 3.1 - Exemple d'un simulateur moderne basé sur un
moteur de jeux vidéos pour l'entraînement des voitures autonomes
[31]
83
open source souffrent de la difficulté de trouver de
nouveaux contributeurs en raison de leur courbe d'apprentissage croissante [4].
Cela crée une barrière psychologique pour les étudiants et
les jeunes développeurs, tout en décourageant les chercheurs trop
occupés à les utiliser pour prototyper de nouvelles idées
[4]. Souvent, ces chercheurs finissent par mettre en oeuvre des environnements
simplifiés et personnalisés pour leurs expériences afin
d'ob-tenir des résultats rapides, ce qui rend difficile la comparaison
de leurs algorithmes avec d'autres approches puisque chaque article utilise des
données, une structure d'environne-ment ou des critères
d'évaluation différents.
Afin de standardiser l'évaluation des algorithmes dans
certaines problématiques de robotique, nous avons
développé un nouveau simulateur spécialement conçu
pour évaluer les performances des algorithmes de navigation, de
planification de chemins, d'exploration, et d'optimisation dans des
environnements de type grille.
Notre simulateur est dédié à la
simulation d'un type spécifique de scénarios et ne vise pas
à remplacer les simulateurs modernes polyvalents. Il nécessite
moins de ressources CPU et de mémoire; peut simuler une centaine de
robots dans un ordinateur portable ordinaire sans carte graphique; et est
conçu pour être facile à utiliser et à porter vers
différents systèmes d'exploitation, ce qui convient plus à
un usage éducatif ou pour accélérer les expériences
de recherche dans les axes cités ci-haut.
3.2.2 Les objectifs de conception
Avant de pouvoir établir l'architecture du
système, nous devons d'abord fixer les objectifs de conception de notre
simulateur. La liste ci-dessous décrit les caractéristiques
souhaitées pour notre cas d'études:
Modularité
Le simulateur doit offrir plusieurs modules agencés de
façon à pouvoir facilement ajouter, modifier ou étendre
les fonctionnalités d'un module sans affecter les autres. Ceci permet
par exemple d'ajouter de nouveaux types de capteurs, de nouveaux algorithmes de
planification, ou modifier le fonctionnement de base du système de
navigation.
Le but est d'augmenter l'extensibilité du projet, et
faciliter la maintenance et la mise à jour de la plateforme au fil du
temps.
Flexibilité
Le simulateur doit être suffisamment flexible pour
s'adapter à différents types de problèmes d'optimisation
et d'algorithmes de contrôle. Cela inclut la possibilité de :
-- Modéliser différentes formes de fonctions
objectif. -- Définir différents scénarios
d'expérimentation. -- Paramétrer la position des obstacles.
84
CHAPITRE 3
-- Personnaliser les caractéristiques de robots telles que
les distances et rayons de détection; niveau d'énergie
disponible; mouvements autorisés...etc.
Passage à l'échelle
Le simulateur doit permettre de simuler un grand nombre de
robots et s'adapter à l'évo-lution des ressources de la machine
sans nécessiter des retouches de la part de l'utilisateur sur le code
source. Il doit intégrer des fonctionnalités permettant à
l'utilisateur de configu-rer des expériences à large
échelle et offrir la possibilité de paralléliser
instantanément ses expériences en déterminant le nombre de
processeurs à utiliser.
Ceci a pour but de permettre aux chercheurs de porter
facilement leur code sur des machines plus puissantes afin
d'accélérer leurs expériences sans devoir maîtriser
les techniques de la programmation parallèle.
Efficacité
Le simulateur doit minimiser l'utilisation des ressources de
la machine telles que le temps de calcul et la mémoire virtuelle, il
doit permettre aux utilisateurs d'exécuter les expériences sans
nécessiter l'acquisition de cartes graphiques couteuses ou de serveurs
de calcul.
Ceci a pour but d'améliorer l'accessibilité
à la recherche pour les étudiants et les jeunes chercheurs
n'ayant pas forcément les moyens d'investir sur un matériel plus
coûteux.
Automatisation
Le simulateur doit automatiser tout le processus
d'expérimentation, allant du paramé-trage automatique,
l'exécution répétitive des expériences, la
génération des graphes et tableaux de statistiques, ainsi que la
sauvegarde des résultats pour analyse ultérieure.
Ceci a pour but d'alléger le temps dédié
à la gestion des expériences et permettre aux chercheurs de se
concentrer sur des tâches plus importantes, telles que
l'amélioration des algorithmes d'optimisation et le développement
de nouveaux modèles.
Facilité d'utilisation
Le simulateur doit permettre aux utilisateurs de facilement
apprendre à l'utiliser sans nécessiter de fortes
compétences en programmation ou en mathématique.
Ceci a pour but de réduire la barrière
d'entrée pour les développeurs et les chercheurs
intéressés par le domaine de la robotique sans vouloir
s'aventurer sur certains détails mathématiques tels que la
modélisation géométrique du déplacement des robots
ou du calcul de probabilité des grilles d'occupation.
85
L'objectif est de leur permettre de tester et de valider
rapidement et facilement de nouveaux algorithmes, et positionner leur travail
en comparant facilement leurs résultats avec ceux obtenus par d'autres
chercheurs.
Visualisation
Le simulateur doit fournir des outils de visualisation afin de
permettre de dresser une représentation visuelle de l'état des
robots; les mesures des capteurs; les obstacles détectés; et les
signaux de commandes. Il doit aussi permettre de visualiser l'objectif de
chaque robot, les chemins planifiés, ainsi que les différentes
statistiques utiles pour l'utilisateur.
Un autre point important dans notre contexte est la
génération de graphes pour l'analyse et l'évaluation des
performances des métaheuristiques, telles que la courbe de convergence;
le taux d'erreur; ou le temps d'exécution.
Abstraction
Le simulateur doit fournir une interface de programmation
(API) à haut niveau pour simplifier et abstraire les
fonctionnalités du simulateur. Cette interface doit être
conçue pour faciliter l'utilisation du simulateur en supprimant les
détails de bas niveau du fonctionnement du simulateur tels que les
modèles géométriques du robot, la simulation des faisceaux
laser, la gestion du parallélisme et la visualisation de
l'environnement.
Ceci a pour but d'augmenter la productivité des
utilisateurs en leur permettant de se concentrer sur ce qui est essentiel pour
leurs travaux de recherche.
3.2.3 L'architecture du système
Le simulateur PyRoboticsLab se base sur une architecture MVC
(Modèle-Vue-Contrôleur). Ce concept vise à séparer
le programme en plusieurs couches:
-- Le modèle représente les
caractéristiques physiques des robots, des leurs capteurs et de
l'environnement dans lequel ils opèrent.
-- La vue permet de visualiser la simulation et afficher les
données telles que les cartes, les obstacles, la position des
robots...etc.
-- Le contrôleur définit les algorithmes de
contrôle des robots pour les différentes tâches de
navigation, planification et exploration...etc.
La figure 3.2 schématise cette architecture.
Séparer la simulation en composants distincts nous
permet de créer une architecture plus modulaire et maintenable. Chaque
composant est divisé en plusieurs modules qui sont responsables de
gérer un aspect spécifique de la simulation:
-- Modèle de robot : définit les
caractéristiques physiques du robot, telles que son mode
CHAPITRE 3
FIGURE 3.2 - Architecture générale du simulateur
PyRoboticsLab
de déplacement et sa consommation d'énergie,
ainsi que toutes les routines pour lui permettre de se déplacer dans
l'environnement et se localiser.
-- Modèle de capteur: définit les
caractéristiques des capteurs montés sur les robots, tels le
LIDAR ainsi que toutes les routines pour la simulation des données
produites par ces capteurs, en incluant l'intégration du bruit
artificiel dans les mesures afin de reproduire les conditions imparfaites du
monde réel ainsi que les routines de raytra-cing.
-- Modèle de carte : définit les
caractéristiques des cartes utilisées par le robot, y compris les
cartes locales et la carte globale. Chaque carte est modélisée en
plusieurs couches pour séparer les données relatives aux
probabilités d'occupation (position des obstacles) des données
relatives à l'exploration (marquage des cellules visitées...).
-- Modèle d'environnement: définit les
caractéristiques de l'environnement dans lequel les robots se
déplacent dans la surface opérationnelle ainsi que les routines
nécessaires pour le chargement, copie et sauvegarde des modèles
d'environnement.
-- Modèle de simulation : permet de sauvegarder
l'historique de toutes les opérations réalisées et les
mesures de performances instantanées, dans le but de pouvoir retracer
l'expérience étape par étape, ou de visualiser les courbes
de convergence, de consommation d'énergie ou du temps d'exécution
des algorithmes.
-- Contrôleur du robot: inclut les routines pour
contrôler le robot en lui permettant de naviguer, planifier les
trajectoires, et choisir des points de destination. Ce module contient un
sous-module définissant toutes les routines nécessaires pour le
fonc-
86
87
tionnement des algorithmes d'optimisation et
métaheuristiques. L'utilisateur peut étendre ce module en
ajoutant ces algorithmes afin de les intégrer facilement dans le
scénario de simulation sans modifier les autres modules.
-- Contrôleur des cartes : Ce module définit les
routines nécessaires à la cartographie telles que la mise
à jour des probabilités d'occupation, la fusion de cartes ainsi
que le calcul des statistiques d'exploration.
-- Contrôleur de la simulation : inclut les routines
pour définir le scénario de simulation, et charger les
modèles d'environnement et des robots. Ce module est responsable
d'initialiser les expériences, de mesurer les performances des robots,
et d'arrêter la simulation lorsque les critères d'arrêts
sont atteints.
-- Interface visuelle : inclut toutes les routines qui
permettent l'affichage des aspects relatifs à la simulation et à
l'état des robots.
-- Générateur de graphes : inclut toutes les
routines permettant de visualiser et manipuler les courbes de statistiques.
La figure 3.3 montre quelques exemples de visualisations
générées automatiquement par le simulateur pendant les
expériences. Elles peuvent être facilement paramétrables
pour afficher différents types de cartes, statistiques, graphes et
autres informations utiles.
FIGURE 3.3 - Exemple de quelques types de
visualisations générées par le simulateur
PyRo-boticsLab
3.2.4 Les outils et technologies
Notre plateforme de simulation est entièrement
développée en Python, avec une attention particulière
portée à la réduction des dépendances afin de
permettre une portabilité facile vers tous les systèmes
d'exploitation (Linux, Windows, OS X...).
88
CHAPITRE 3
Python est un langage de programmation
interprété, créé avec l'intention d'offrir une
syntaxe simple et facile à apprendre. Toutefois, ceci ne réduit
en rien sa puissance puisqu'il est versatile et peut être utilisé
pour créer des plateformes web, logicielles, applications mobiles, et
systèmes embarqués. Son interpréteur permet
d'exécuter le même code sur des systèmes d'exploitation
différents sans nécessiter une modification dans le code source
ou sa recompilation.
L'utilisation de Python pour développer un outil de
recherche nous permet de tirer profit de la puissance des librairies
disponibles pour le calcul scientifique. Afin de respecter les objectifs
définis par l'architecture globale du système, nous avons
réduit l'utilisation des dépendances externes aux trois
librairies suivantes:
-- Numpy : Est la librairie Python de référence
lorsqu'il s'agit de calcul scientifique et manipulation de tableaux
multidimensionnels. Elle offre une multitude de routines pour les calculs
d'algèbre linaires, opérations de tri, statistiques, nombres
aléatoires, manipulation de dates...etc. Nous utilisons Numpy dans notre
plateforme pour gérer toutes les opérations de calcul matriciel
nécessaires pour les opérations de cartographie et la
manipulation des populations.
-- Matplotlib : Est une librairie destinée à la
création de visualisations scientifiques, telles que les graphes, les
histogrammes, les nuages de points...etc. Elle permet de générer
des figures interactives hautement personnalisables, et exporter les
résultats sous différents formats. Nous utilisons Matplotlib dans
notre projet pour la génération de l'interface utilisateur
permettant de visualiser la position des robots, les obstacles
détectés, les chemins planifiés, ainsi que les
différentes statistiques et cartes d'exploration
générées par les robots.
-- Pygmo2 [19] : Est une librairie réalisée par
l'Agence Spatiale Européenne offrant une interface pour
implémenter des algorithmes d'optimisation massivement
parallèles. Elle supporte des fonctionnalités avancées
telles que la parallélisation des métaheu-ristiques, le tri de
populations, la visualisation des solutions non dominées (Pareto
front)...etc. Nous utilisons cette librairie pour uniformiser
l'implémentation des mé-taheuristiques que nous utilisons pour
résoudre les problèmes d'exploration et de planification de
trajectoires. Cette uniformisation est un aspect important pour notre projet
puisqu'elle permet de s'assurer que la différence entre les
résultats expérimentaux des algorithmes n'est pas causée
par une différence entre les techniques d'im-plémentation
utilisées à bas niveau par les librairies.
L'intégration d'un nombre réduit de libraires
Python permet de faciliter la portabilité du code et minimiser les
dépendances. Ceci offre les avantages suivants:
-- Facilité à comprendre, déboguer ou
modifier le code source de la plateforme d'afin d'y intégrer les
changements souhaités.
-- Facilité d'installation et de configuration,
à la différence de nombreux simulateurs qui sont plus
concentrés sur des environnements Linux et les systèmes de type
UNIX.
-- Possibilité d'intégration avec les librairies
d'apprentissage machine populaires, pour
l'ajout de fonctionnalités additionnelles tel que le Deep
Learning par exemple.
89
-- Possibilité de déployer rapidement le projet en
tant que service web dans un serveur Cloud pour une utilisation ouverte au
public.
-- Facilité à ajouter un nouvel algorithme et
comparer ses performances avec les autres algorithmes déjà
implémentés sur la plateforme.
Nous pensons que ces caractéristiques sont un atout pour
permettre son adoption par les étudiants et les enseignants comme outil
pédagogique et de recherche.
3.2.5 Les scénarios de bechmarking
La plateforme de benchmarking proposée permet de simuler
les scénarios suivants:
-- Path Planning : Planification de trajectoires.
-- Exploration : Découverte, balayage, surveillance,
détection d'intrus.
-- Target Searching : Rechercher une personne ou un objet.
-- Foraging : Déplacement et tri d'objets.
-- Map Decomposition : décomposition d'environnement en
plusieurs régions.
-- Formation Control : Coordination pour le déplacement en
formation de plusieurs robots.
3.3 Modélisation géométrique des robots
Le simulateur PyRoboticsLab se base sur une représentation
géométrique en 2 dimensions des robots mobiles. Il simule les
robots terrestres à commande différentielle ainsi que
(a) Robot P3DX utilisé (b) Schéma
géométrique [68]
FIGURE 3.4 - Modélisation géométrique du
robot et des différents repères utilisés pour la
détection d'obstacles
90
CHAPITRE 3
les robots aériens de type quadrirotors. Les moteurs de
ces robots ont la particularité d'être commandés
séparément, ce qui permet de faire des rotations en 360° sur
place sans nécessiter des manoeuvres tel que les véhicules de
type voiture par exemple.
La commande différentielle permet de contrôler la
direction du robot en variant les vitesses de rotation de chaque moteur. Si
tous les moteurs tournent à la même vitesse, le robot se dirigera
tout droit. Si un des moteurs tourne à une vitesse plus
élevée que les autres, le robot fera une rotation dans une
direction opposée à l'emplacement de ce moteur. L'angle de cette
rotation est influencé par plusieurs paramètres dont la distance
du moteur par rapport au centre de gravité du robot, ainsi que le
diamètre des roues pour les robots terrestres par exemple.
Afin de faciliter la commande des robots dans notre
simulateur, nous mettons à la disposition de l'utilisateur des routines
permettant de faire abstraction des détails de calcul pour ne se
focaliser que sur l'action souhaitée. Nous présenterons un
exemple de ce type de routine dans la section suivante (voir section 3.4).
Notre modélisation des robots terrestres se base sur un
robot de type Pioneer P3DX dont nous avons eu l'occasion d'utiliser pour faire
des expériences dans le laboratoire LARESI situé au
département d'électronique à l'USTOMB. Ce robot
très populaire dans le domaine de la recherche possède un
télémètre laser qui lui permet de détecter les
obstacles aux alentours dans un rayon de 180° jusqu'à 270°
selon les modèles. La distance de détection maximale du
télémètre est de 10 mètres; toutefois, nous avons
choisi de la limiter à 4 mètres pour des raisons pratiques
(adaptation aux endroits étroits).
Étant donné que le Lidar du robot était
sujet à un taux d'erreur conséquent lors des expériences
réelles, nous avons choisi de modéliser cette erreur
estimée à 5% en intégrant dans notre simulateur un bruit
gaussien. Nous avons aussi intégré la distance aveugle du Lidar
comprise entre 0 et 30cm, c'est-à-dire que si l'obstacle est trop proche
du Lidar il ne sera pas détecté, et ceci à cause de la
limite physique de ce type de capteurs. La figure 3.5 schématise de ce
modèle d'erreurs.
L'intégration de ces imperfections dans le
modèle géométrique de PyRoboticsLab permet d'effectuer des
simulations plus réalistes. En effet, l'intégration de ces
imperfections permettra de tester la validité des algorithmes
d'évitement d'obstacles et de cartographie à s'adapter plus
facilement aux conditions du monde réel lorsqu'ils sont
déployés en production, contrairement aux tests effectués
dans des simulateurs qui assument l'hypothèse du monde parfait.
La modélisation des rayons laser du Lidar a
été implémentée en utilisant la technique du
Ray Casting, qui consiste à tracer des rayons virtuels et
suivre leur trajectoire pixel par pixel jusqu'à trouver le plus proche
objet bloquant le chemin de ce rayon. Ceci nous permet de calculer la distance
entre le robot et cet objet.
Le Lidar modélisé possède une
résolution de 1°, nous projetons donc 181 rayons virtuels avec
chacun un angle différent allant de 0° à 180°, ce qui
nous permet de connaître la distance et l'angle des objets
détectés. Si le rayon tracé n'est bloqué par aucun
obstacle, nous concluons que l'espace traversé par ce rayon est vide et
peut être parcouru par le robot en toute sécurité.
Étant donné que l'environnement dans notre
simulateur est échantillonné sous forme de grille dont chaque
cellule représente un espace de 10cm2 (voir section 3.5) il
peut arriver qu'un rayon projeté ne traverse qu'une partie infime de
cette cellule, ce qui ne permet pas d'être sûr que cette cellule
soit réellement vide. Ceci nous a poussés à
modéliser une fonction gaussienne pour mesurer le degré de
confiance de la mesure du rayon laser : plus le rayon est proche du centre de
la cellule, plus la confiance de mesure est élevée, tel qu'est
modélisé par la figure 3.5. Ce degré de confiance de la
mesure est linéairement proportionnel à la probabilité de
détection. Lorsque plusieurs rayons laser traversent une même
cellule, cette probabilité de détection est cumulée et
augmente le taux de confiance de la mesure. Le calcul des probabilités
sera détaillé dans la section 3.5 dédiée à
la cartographie.
91
(a) Le degré de confiance que la cellule soit (b) Le
degré de confiance de la distance mesurée
vide est plus élevé lorsque le rayon traverse est
faible lorsque l'obstacle est trop proche ou
cette cellule près de son centre. trop loin du capteur.
FIGURE 3.5 - Modèle du bruit ajouté au capteur
LIDAR et calcul du degré de confiance de la mesure
Une fois un obstacle détecté avec un
degré de confiance suffisamment élevé, nous effectuons une
transformation géométrique pour calculer la position des
obstacles par rapport au repère fixe à partir de sa position
relative au robot. Ce repère fixe est défini au point (0,0) de la
carte globale, et ceci afin de faciliter les calculs par rapport au
repère relatif du Lidar puisque celui-ci est attaché à un
robot qui se déplace. En d'autres termes : les distances des obstacles
mesurées par le Lidar sont toutes relatives au repère du robot
mobile et il faut donc les transformer vers des positions globales relatives au
repère fixe de l'environnement afin de pouvoir les dessiner sur la
carte. Ce processus est illustré par la figure 3.4
3.4 Modélisation du processus de navigation,
planification et évitement d'obstacles
Afin de faciliter la commande des robots dans notre
simulateur, nous mettons à la disposition de l'utilisateur des routines
permettant de faire abstraction des détails de calcul et
92
CHAPITRE 3
FIGURE 3.6 - Niveaux d'abstraction du processus de navigation,
planification et évitement d'obstacles du simulateur PyRoboticsLab
ne se focaliser que sur l'action souhaitée. Il suffit
d'utiliser par exemple la commande ro-bot.move(forward) pour le
déplacer un mètre en avant, et robot.turn(45) pour faire
une rotation de 45° dans le sens des aiguilles d'une montre. D'autres
routines permettent d'effectuer des tâches relatives à la
détection d'obstacles et de cartographie telle que lidar.scan()
pour récupérer la liste des obstacles
détectés, lidar.get_measurement_confidence() pour
calculer le degré de confiance dans la mesure du lidar selon le
modèle du bruit, et robot.update_map() pour mettre à
jour la carte.
Afin de simplifier encore plus le processus de
développement de nouveaux algorithmes, le simulateur offre un autre
niveau d'abstraction permettant à l'utilisateur de définir
directement les coordonnées (x, y) du point auquel le robot devra se
diriger sans se soucier des commandes de direction (move) et de rotations
(turn). Ceci peut se faire en utilisant donc la commande
robot.move_toward_point(x,y). De même il suffit d'utiliser les
commandes ro-bot.set_goals() et robot.plan_path() pour
définir un ou plusieurs points à visiter et planifier une
trajectoire vers ces points.
L'idée est donc d'offrir plusieurs niveaux
d'abstraction permettant aux utilisateurs de choisir différentes
commandes à utiliser selon leurs objectifs. Un utilisateur qui souhaite
utiliser le simulateur pour développer un nouvel algorithme
d'exploration choisira de préférence un niveau d'abstraction
simple afin de ne se focaliser que sur la stratégie du robot, alors
qu'un utilisateur souhaitant tester de nouvel algorithme de navigation ou de
cartographie choisira sûrement l'utilisation de routines de bas niveau
pour contrôler les chaque action individuellement.
Nous laissons aussi la flexibilité aux utilisateurs de
pouvoir redéfinir n'importe quelle fonction et apporter des
modifications dans l'implémentation à bas niveau afin de leur
permettre d'adapter le simulateur à leurs besoins spécifiques. Il
pourront pour cela utiliser les variables de classe pour avoir accès aux
informations internes du robot telles que le niveau de batterie restant,
l'état du robot (en mouvement, en attente, bloqué par un
obstacle), la distance parcourue, le nombre de mouvements
effectués...etc.
La figure 3.7 présente un schéma
général de notre modélisation du processus de naviga-
93
tion, planification et évitement d'obstacles. Cette
modélisation se base sur l'implémentation en interne d'un
automate à états finis.
Chaque état présenté dans ce
schéma possède une routine définissant l'ensemble des
opérations à effectuer. La figure 3.8 par exemple décrit
les détails de l'opération "solve conflict" dont l'objectif est
de trouver un compromis entre deux robots qui se bloquent mutuellement le
chemin. Cette routine poussera un des robots à changer de trajectoire,
ou de se mettre dans un état d'attente pour laisser l'autre robot
passer.
3.5 Modélisation des grilles
d'occupation
L'exploration de zones inconnues est étroitement
liée au problème de navigation et de cartographie. Le robot doit
se déplacer dans l'environnement et le découvrir progressivement.
Lors de cette opération, il est fort probable de rencontrer des impasses
et autres obstacles bloquant le chemin. Le robot mémorisera alors la
position des obstacles et les utilisera pour planifier des chemins alternatifs
et découvrir de nouvelles régions.
Les robots utilisent des capteurs pour détecter les
murs et les obstacles. Étant donné que ces capteurs ont une
portée limitée, il n'est pas possible d'observer l'ensemble de
l'environ-nement à la fois. Dans ce cas, nous devons sauvegarder les
positions des obstacles détectés dans une structure de
données qui permet au robot d'agréger facilement de nouvelles
observations et de les combiner de manière à simplifier le calcul
des trajectoires.
La Grille d'Occupation (Occupancy Grid Map [34]) est la
structure de données la plus utilisée pour représenter
l'environnement en robotique. C'est une matrice 2D où chaque cellule
représente une partie de l'environnement. La taille des cellules
influence le degré de détails affichés sur la grille, elle
est généralement définie sur une taille égale ou
inférieure à la circonférence du robot. La figure 3.9
montre un exemple de carte quadrillée.
La valeur de chaque cellule de la grille représente la
probabilité que la région correspondante de l'environnement soit
vide ou occupée par un obstacle. Puisque le robot n'a aucune information
à priori sur la région à explorer, toutes les cellules ont
une probabilité d'occupation initiale de 0,5. Cette probabilité
sera mise à jour à l'aide de la règle de Bayes
(équation 3.1) chaque fois que les capteurs du robot détectent
une cellule vide ou occupée.
p(A/B) = p(B/A) * p(A) (3.1)
p(B)
A est la valeur d'occupation, et
B est l'observation
Une pratique courante dans le domaine de cartographie vise
à utiliser les valeurs logarithmiques d'occupation au lieu des
probabilités, et ceci afin de convertir les opérations de
multiplication en additions tel que décrit par les équations 3.2
et 3.3.
94
CHAPITRE 3
FIGURE 3.7 - Schéma général du modèle
de navigation, planification et évitement d'obstacles du simulateur
PyRoboticsLab
95
FIGURE 3.8 - Diagramme de la routine "solve
conflict" pour résoudre un problème de blocage entre deux
robots
odds(A) = p(A)
P(-A)
odds(A/B) = p(A/B) (3.2)
P(-A/B)
Après avoir appliqué l'équation 3.2 dans
la règle de Bayes, nous obtenons l'équation 3.3. La valeur
logarithmique varie entre [-oo,+oo], ce qui est utile pour éviter la
multiplication de petits nombres lors de l'implémentation qui pourront
causer des problèmes en raison de la précision limitée des
valeurs flottantes dans l'ordinateur.
logodds(A/B) = log p(B/A)
P (B/-A) + logodds(A) (3.3)
En conséquence, nous pouvons classer chaque cellule Cij
de la grille dans l'une des trois catégories suivantes : cellule vide,
cellule occupée par un obstacle et cellule inconnue. L'équation
3.4 formalise ceci.
96
CHAPITRE 3
Cij is
|
?
?????
?????
|
Occupied if Occ(Cij) > 0 Empty if Occ(Cij) < 0 Unknown
if Occ(Cij) = 0
|
(3.4)
|
Où Occ(Cij) est la valeur logarithmique de
l'occupation calculée en utilisant l'équation
3.3.
Dans l'équation 3.4, la valeur 0
représente le seuil pour savoir si une cellule contient un obstacle
où non. Ce seuil a été défini à cette valeur
parce qu'il correspond à la probabilité d'occupation initiale
fixée à 0.5 (logodds(0.5) = 0)
Dans un scénario de navigation, le robot aura donc pour
objectif d'éviter toutes les cellules occupées dont la valeur
logarithmique d'occupation est supérieure à ce seuil. De
même, l'objectif d'une mission d'exploration serait de diriger le robot
vers toutes les cellules ayant une valeur égale à ce seuil
puisqu'elles représentent les cellules inconnues qui n'ont pas encore
été balayées par les capteurs du robot. Ceci nous permet
de modéliser notre problème sous forme de problème
d'optimisation dont le but est de minimiser le nombre de ces cellules. La
figure 3.9 montre un exemple d'exécution d'un tel scénario.
La section suivante présentera les détails
relatifs à la modélisation de ce type de scénarios.
A gauche: carte à haute résolution
(0.1m2/px). A droite: carte à basse résolution
(1m2/px). Les pixels blancs représentent la zone
explorée; les pixels gris représentent la zone inconnue; les
pixels noirs représentent les obstacles détectés.
FIGURE 3.9 - Exemple d'exécution d'un
scénario d'exploration et décomposition de la carte de
l'environnement sous forme de grille d'occupation
3.6 Modélisation du problème d'exploration 3.6.1
Modélisation mono et multirobots
(a) Générer une population de points de
destinations
(b) Calculer les plus courts chemins pour visiter les points
de destinations de chaque solution candidate
(c) Estimer le gain en terme de surface de la zone
explorée pour chaque chemin
(d) La meilleure solution est celle qui maximize la surface
d'exploration de régions pas encore explorées
FIGURE 3.10 - Un exemple du processus d'évaluation de
la fonction fitness pour une population de 4 solutions candidates
La tâche d'exploration de zones inconnues est souvent
modélisée comme un problème 97
98
CHAPITRE 3
d'optimisation. Le but de ce processus est d'attribuer une
probabilité d'occupation à chaque cellule de la carte. Afin
d'atteindre cet objectif, le robot doit maximiser la surface de la zone
explorée tout en minimisant l'énergie utilisée.
Le rôle des métaheuristiques dans notre
modélisation est au coeur de ce processus. Elles commencent par
générer une population aléatoire de points de destination
à visiter, puis améliorent la position de ces points cibles
à travers une succession d'opérations d'optimi-sation.
Mathématiquement, chaque solution candidate Xk
dans la population représente un ensemble d'emplacements de cellules
cibles Cij, où (i, j) sont les coordonnées
(x, y) à l'in-térieur des limites de la grille.
X = Cij
Par conséquent, la fonction fitness peut être
modélisée comme une maximisation du nombre de cellules qui ont
une valeur d'occupation logarithmique égale à 0 (cellules
inexplorées). L'équation 3.5 définit la formulation
mathématique de cette fonction.
F = max(Observed Cells)
X= min( ä(Cij,0)) (3.5)
i,j
Where ä(Cij,0) =
|
?
??
??
|
1 if Occ(Cij) =? 0
0 otherwise
|
Avec la contrainte suivante:
X E(Cij) < current battery
level i,j
Où E(Cij) est l'énergie
nécessaire pour déplacer le robot de la position actuelle
à la cellule Cij.
La figure 3.10 montre un exemple d'application de cette
opération pour sélectionner le meilleur ensemble d'emplacements
cibles à visiter parmi 4 solutions candidates.
Une fois que le meilleur ensemble d'emplacements cibles qui
satisfait la contrainte d'énergie est trouvé, le robot calcule le
chemin le plus court qui relie ces emplacements cibles en utilisant
l'algorithme A* [46], puis il exécute ce chemin
jusqu'à visiter tous les emplacements cibles. Après cela, il
répète l'algorithme d'optimisation pour générer un
nouvel ensemble d'emplacements à visiter et continue le processus
jusqu'à ce que toutes les cellules de la carte aient été
observées (c'est-à-dire que le robot a exploré toute la
zone).
Il est important de rappeler que la trajectoire prévue
n'est pas nécessairement optimale, puisque le robot ne peut pas
détecter les obstacles hors de portée de ses capteurs. De
plus,
Selecting Goals:
Yes
Generate a set of target locations using xBOA (or any other
metaheuristic)
Path Planning:
Plan a path toward the next target location using A*
Path Execution:
Move toward the target location
Obstacles Detection:
Scan the environment using Lidar sensor and detect the
surrounding obstacles
J
Mapping:
Update the occupancy probability of the grid cells
r ~
Path Updating: Plan an alternative path avoiding
the obstacle
l J
99
FIGURE 3.11 -- Diagramme du processus
d'exploration d'une zone inconnue
100
CHAPITRE 3
il n'a aucune information préalable sur la
région à explorer. Ainsi, il est fort probable qu'il rencontre
des impasses et autres obstacles barrant le chemin lors de la navigation. Il
sera alors obligé de trouver un chemin alternatif pour sortir de
l'impasse, même si cela nécessite de retourner dans une
région précédemment visitée et de consommer plus
d'énergie.
Par conséquent, la solution est construite de
manière incrémentale, en commençant par un chemin
sous-optimal, puis en le mettant à jour régulièrement au
fur et à mesure que de nouveaux obstacles sont observés, ce qui
garantit également que le robot s'adapte aux environnements dynamiques
et évite les obstacles mobiles.
La figure 3.11 schématise le processus
modélisé pour résoudre le problème d'explora-tion,
et la figure 3.12 présente le schéma de coordination
utilisé pour produire un comportement collectif dans les
scénarios multirobots.
FIGURE 3.12 - Schéma du modèle utilisé pour
assurer la coordination entre les robots
3.6.2 Les critères d'évaluation
Afin de pouvoir analyser les performances des
métaheuristiques utilisées durant les expériences et
comparer leurs résultats, nous allons utiliser les critères
d'évaluation suivants:
-- Nombre de pas (step number) : Nombre de mouvement
et rotations effectué par le robot. Ce nombre est proportionnel à
la quantité d'énergie consommée.
-- Temps d'exécution (execution time) :
Durée totale de la mission, mesurée en secondes.
-- Taux d'exploration (exploration rate) : Surface de
la zone observée par le robot pendant la mission, mesurée en
pourcentage par rapport à la surface totale.
-- Nombre d'évaluation de la fonction de fitness
(Fitevals) : Nombre de solutions évaluées par la
métaheuristique pendant le processus d'optimisation.
-- Temps de calcul (computation time) : Durée
d'exécution de l'ensemble des opérations de calculs requis par la
métaheuristique pour effectuer toutes les itérations et
sélectionner la solution optimale, mesurée en secondes.
101
3.6.3 La complexité du modèle
L'utilisation de l'équation 3.5 comme fonction
de fitness signifie que pour chaque solution candidate dans la population, nous
allons planifier un chemin vers les emplacements cibles définis par
cette solution, puis estimer combien de nouvelles cellules seront
observées si ce chemin est exécuté par le robot. La
complexité de cette opération est O(M) où M est
la longueur du chemin.
Étant donné que la valeur de fitness est
évaluée pour chaque solution candidate à chaque
génération, la complexité globale devient O(NxKxM)
où N est la taille de la population, K est le nombre de
générations et M est la longueur du chemin.
Si la taille de la population ou le nombre de
générations est défini sur une grande valeur, le processus
deviendra coûteux en calcul. Une approche alternative consisterait
à calculer une estimation approximative des cellules observées
(en utilisant un vecteur de distance par exemple) comme critère de
fitness, mais cela diminuerait la qualité des solutions
générées. Afin d'éviter cette perte d'informations,
nous garderons notre modélisation tout en essayant de réduire la
taille de la population au minimum afin d'obtenir un compromis acceptable entre
la qualité des solutions générées et le temps
d'exécution.
3.7 Paramétrage et configuration
3.7.1 Paramétrage des
expériences
Afin d'évaluer les performances des algorithmes BOA et
xBOA, nous allons les comparer à cinq autres métaheuristiques
fréquemment utilisées dans la littérature, à
savoir:
-- Artificial Bees Colony (ABC) [55]
-- Covariance Matrix Analysis Evolution Strategy (CMAES)
[45]
-- Genetic Algorithm (GA) [41]
-- Grey Wolf Optimizer (GWO) [66]
-- Particle Swarm Optimization (PSO) [58]
Pour ces cinq méthodes, nous avons utilisé les
implémentations fournies par Pygmo2 [19] qui est une
bibliothèque Python offrant une interface unifiée pour
implémenter des algorithmes d'optimisation parallèles.
Étant donné que ces méthodes sont
basées sur des opérations stochastiques, nous allons utiliser la
même population initiale pour chacune d'elles et répéter
l'exécution 10 fois afin d'obtenir une comparaison plus objective. Le
critère d'arrêt sera défini tel que suit:
"arrêter l'expérience si l'énergie du robot atteint
zéro, ou la surface de la zone explorée atteint un taux
supérieur ou égal à 99%".
Nous allons effectuer une autre série
d'expériences pour comparer les performances de l'algorithme xBOA par
rapport aux autres variantes de l'algorithme BOA citées ci-dessous:
-- Self-adaptative BOA (SABOA) [35]
CHAPITRE 3
-- BOA with intensive search (mBOA) [12]
-- BOA with non-linear adaptative rule (ABOA) [96]
Nous avons réimplémenté BOA et chacune de
ces variantes en langage Python, et les avons adaptés à la
bibliothèque Pygmo2 pour s'assurer que la différence des
performances n'est pas causée par l'utilisation de techniques
d'implémentation différentes, ou par des outils
différents.
Finalement, nous allons effectuer un test en modifiant le
nombre de robots pour valider l'adaptabilité de notre
modélisation à des scénarios mono et multirobots.
3.7.2 Paramétrage de l'environnement de simulation
102
. Empty Map (24x24m) House Map (24x24m)
FIGURE 3.13 - Cartes de l'environnement de simulation
utilisé durant les expériences
La figure 3.13 montre la cartographie en 2D des deux
environnements qui seront utilisés pour effectuer les
expériences. La première (dénommée Empty map)
représente une zone vide ne contenant aucun obstacle à
l'exception du mur d'entourage qui délimite son périmètre.
La deuxième zone (dénommée House map) est
inspirée de l'architecture d'une maison et est partiellement couverte
d'obstacles à un taux d'occupation de 27% après suppression des
portes et fenêtres. Ces deux zones ont une taille de 24x24m soit une
surface totale de 576m2 chacune.
Pour chaque zone, deux types d'expériences seront
effectuées en variant le nombre d'emplacements cibles (points de
destinations) générés par le processus d'optimisation. Ce
paramètre influencera la stratégie d'exploration des robots : un
nombre de destinations réduit poussera le robot à effectuer une
planification à court terme, alors qu'un nombre plus élevé
le poussera à effectuer une planification à long terme. Pour
chaque expérience, nous enregistrerons le temps d'exécution, le
taux d'exploration ainsi que les performances de chaque
métaheuristique.
Nous utiliserons également une carte d'environnement
inspirée d'une usine avec une superficie de 1500m2 afin
d'effectuer des expériences de validation de l'approche sur des zones
à plus large échelle. Cet environnement contient un nombre plus
important d'obs-tacles et plusieurs couloirs étroits et des chemins dont
l'extrémité finale conduit à une im-
103
passe, ce qui sera utile pour tester les capacités des
robots à naviguer efficacement sans se bloquer mutuellement le chemin.
La figure 3.14 montre la cartographie de cette usine.
Factory Map (30x50m)
FIGURE 3.14 - Carte d'environnement utilisé pour simuler
les scénarios à large échelle
Dans le but de réduire la variabilité des
expériences causées par différentes initialisations, nous
allons fixer les mêmes conditions de départ pour chaque session de
test:
-- Position de départ du robot : dans les
coordonnées (1,1) avec un angle de 0° vers le nord.
-- Distance de mesure du capteur LIDAR : 4m, avec un taux de 5%
d'erreurs.
-- Plage de mesure angulaire du capteur LIDAR : 180°,
avec une résolution de 1°. -- Taille de la population: 20
individus.
-- Nombre maximal de générations : 30
itérations.
-- Condition d'arrêt prématuré :
arrêt si aucune amélioration de la valeur de fitness pendant 10
générations consécutives.
-- Population initiale : même population pour toutes les
méthodes.
-- SEED du générateur de nombre aléatoires :
25 (choisi arbitrairement).
Le nombre de simulations prévues pour pouvoir
réaliser les objectifs fixés peut être calculé en
multipliant le nombre des expériences x nombre de méthodes x
nombre de répétitions. Ce chiffre s'élève donc
à 380 exécutions en total. Nous diviserons ces exécutions
sur plusieurs machines en utilisant la configuration suivante:
-- Python 3.9.5 -- Numpy 1.21 -- Matplotlib 3.4.2 -- Pygmo
2.16.1
104
CHAPITRE 3
Ces machines utilisent des systèmes d'exploitation
différents:
-- Ubuntu 20.04 -- CentOS 7.7 -- Windows 10
À noter que la possibilité de porter notre
simulateur sur des environnements de type Linux et Windows sans
nécessiter l'apport de changements dans le code source, ou de son
encapsulation dans des containers virtuels, est un point positif
augmentant la facilité d'uti-lisation de l'outil.
3.8 Conclusion
Nous avons présenté dans ce chapitre la
méthodologie utilisée pour la résolution du
problème d'exploration d'une zone inconnue avec des contraintes
d'énergie. Nous avons expliqué notre modèle en formalisant
la fonction objectif sur la base des informations récoltées
à partir d'une grille d'occupation.
Nous avons également présenté une
nouvelle plateforme de simulation dédiée à
l'éva-luation et le benchmarking de métaheuristiques ainsi que
d'autres algorithmes d'optimi-sation. Cet outil a été
implémenté de façon à abstraire les détails
de bas niveau des tâches de navigation, de cartographie et de
planification de chemins, et ceci afin de permettre aux chercheurs de se
concentrer sur des tâches plus importantes telles que la
modélisation de nouveaux algorithmes pour résoudre les
problèmes d'exploration ou d'optimisation de trajectoires. Une attention
particulière a été donnée à
l'intégration de fonctionnalités dédiées à
l'automatisation du processus d'expérimentation (paramétrage,
répétition des expériences, génération de
graphes) ainsi que la facilité du passage à l'échelle en
la déployant sans difficulté sur des serveurs Cloud pour simuler
des environnements à très large échelle.
Dans le chapitre suivant, nous allons effectuer une
série d'expériences afin de valider notre modélisation, et
évaluer les performances de l'algorithme xBOA. Nous présenterons
également une analyse des résultats et une comparaison entre
plusieurs variantes de l'al-gorithme BOA récemment introduit dans la
littérature.
105
CHAPITRE 4
EXPÉRIENCES ET ANALYSE
4.1
|
Introduction
|
106
|
4.2
|
Configuration matérielle
|
106
|
4.3
|
Expérience 1 : Évaluation de l'algorithme
xBOA dans un contexte
|
|
|
multirobots
|
107
|
4.4
|
Expérience 2 : Comparaison entre les
stratégies d'exploration à
|
|
|
court terme et à long terme
|
109
|
4.5
|
Expérience 3 : Recherche des meilleurs
hyperparamètres
|
110
|
4.6
|
Expérience 4 : Comparaison de l'algorithme xBOA
avec les méta-
|
|
|
heuristiques populaires
|
112
|
4.7
|
Expérience 5 : Evaluation de la robustesse de
l'algorithme xBOA
|
|
|
face à la réduction de taille de la
population
|
120
|
4.8
|
Expérience 6 : Comparaison de xBOA avec les autres
variantes de
|
|
|
l'algorithme BOA
|
125
|
4.9
|
Expérience 7 : Test en utilisant un robot
réel
|
129
|
4.10
|
Conclusion
|
131
|
106
CHAPITRE 4
4.1 Introduction
Ce chapitre présente la série
d'expériences effectuées afin de valider notre
modélisation du problème d'exploration et évaluer les
performances de l'algorithme xBOA.
Nous utiliserons notre plateforme de benchmarking afin de
comparer les performances de cet algorithme avec les différentes
métaheuristiques incluses dans le simulateur (GA, ACO, PSO, CMAES, GWO,
ABC) pour la résolution du problème d'exploration de zones
inconnues. Nous comparerons également les performances du xBOA avec
l'algorithme BOA original et ses autres variantes (MBOA, SABOA, ABOA).
Nous analyserons ensuite les résultats d'une
série d'expériences visant à accélérer la
vitesse d'exécution de l'algorithme tout en analysant la robustesse des
méthodes citées face à la réduction de la taille de
la population.
Nous présenterons aussi une expérience pour
évaluer l'adaptabilité de notre approche dans un contexte
multirobots. Le but étant de valider les capacités du
modèle à pouvoir générer un comportement collectif
pour les robots sans besoin d'intégrer des mécanismes de
synchronisation explicite. Pour finir, nous testerons l'approche sur un robot
réel.
4.2 Configuration matérielle
Dans le but d'effectuer les expériences souhaitées,
nous avons utilisé trois machines.
La première consiste en un ordinateur portable de
moyenne gamme avec une mémoire vive de 8Go et un processeur Intel i7
de 4ème génération. Ce processeur possède 4
cores ayant chacun une fréquence d'horloge de 2.8Ghz. Bien que cet
ordinateur inclut aussi une carte graphique, celle-ci n'a pas été
utilisée pour les raisons citées dans la section 3.2.2, ainsi que
le fait que les deux autres machines utilisées pour effectuer les
expériences ne possédaient pas de capacités de calcul
graphique.
La deuxième machine utilisée consiste en un
service cloud de Google appelé Collabora-tory (ou Google
Colab) offrant une machine virtuelle utilisant un processeur Intel
Xeon de 2 cores cadencés à 2.3Ghz avec une mémoire
vive de 12Go. L'utilisation de ce service est gratuite pour des sessions de
calcul dont la durée est inférieure à 12h.
La troisième machine utilisée consiste en un
cluster disponible au Plateau Technique de Calcul Intensif IBN-BAJA
à l'Université des Sciences et de la Technologie d'Oran
Mohamed Boudiaf - USTOMB. Ce cluster destiné à effectuer des
calculs à hautes performances (High Performance Computing)
possède une mémoire vive de 32Go et 24 processeurs Intel
Xeon de 6 cores chacun cadencés à 2Ghz. Ce cluster nous a
permis d'effectuer des sessions de simulation de longue durée en
répétant la même expérience plusieurs fois.
Chaque machine utilise un système d'exploitation
différent. Le code a été déployé sur ces
machine sans nécessiter de changement ou de compilation, ce qui a
démontré la portabilité de notre simulateur sur des
systèmes de type Linux et Windows. Le code n'a pas encore
été testé sur un système de type iOS mais ne
devrait présenter aucun problème de compatibilité.
107
4.3 Expérience 1: Évaluation de l'algorithme
xBOA dans un contexte multirobots
La série d'expériences présentée
dans cette section vise à valider l'adaptabilité de l'ap-proche
dans un scénario multirobots. Selon ce que l'on peut observer sur la
figure 4.1, les robots déployés à partir de la même
position de départ ont pu se disperser dans l'environne-ment pour
explorer la surface entière sans aucun changement nécessaire dans
l'algorithme pour coordonner leurs déplacements. Ceci montre la
flexibilité de la modélisation proposée pour s'adapter aux
scénarios mono et multirobots.
En effet, chaque robot possède sa propre population de
solutions candidates et essaie de maximiser sa propre valeur de fitness
indépendamment des autres robots. Ces robots n'échangent pas de
messages entre eux, mais collaborent passivement en modifiant une carte globale
qui est stockée dans une mémoire centrale. Lorsqu'un robot se
déplace, il met à jour cette carte partagée afin d'y
insérer les obstacles détectés et marquer la zone
observée comme étant visitée. Les autres robots vont donc
automatiquement éviter cette
(a) Environnement Empty Map
(b) Environnement House Map
FIGURE 4.1 - Progression visuelle du scenario multirobots en
utilisant la méthode xBOA avec 3 robots
108
CHAPITRE 4
zone lorsqu'ils planifient les prochaines trajectoires puisque
la fonction fitness pénalisera ces régions déjà
visitées.
Étant donné que les robots ne sont pas
conscients de la présence des autres robots, ils n'échangent pas
de messages entre eux par rapport à leurs chemins planifiés ou
des régions prévues à être visitées dans le
futur. Tout ce qu'ils échangent c'est la position des obstacles
détectés et les zones déjà visitées
auparavant. De ce fait, il arrive que plusieurs robots décident de se
diriger vers la même direction puisque cela maximise leur valeur de
fitness. Ce comportement est observé au départ de
l'expérience lorsqu'ils choisissent tous le chemin diagonal maximisant
la zone à observer, ou parfois au milieu de l'expérience tel
qu'on peut le voir sur la figure 4.1. Cependant, nous observons que dans
l'ensemble, le système arrive quand même à faire disperser
les robots dans des régions séparées, ce qui a pour effet
d'accélérer le temps d'exploration de la zone comparé aux
scénarios où on n'utilise qu'un seul robot.
Afin de montrer l'adaptabilité de l'approche à
des environnements beaucoup plus larges, nous avons effectué une autre
expérience en utilisant une carte inspirée d'une usine ayant une
superficie égale à 30x50 mètres. La figure 4.2 montre un
résultat intermédiaire enregistré pendant
l'exécution. Cette expérience a été
répétée plusieurs fois en changeant le nombre de robots,
elle a montré la capacité de l'approche à les pousser
à explorer la zone entière même en cas de forte
densité d'obstacles ou de l'augmentation de la superficie de
l'environnement.
Par ailleurs, cette série d'expériences a permis
aussi d'apprécier la facilité d'utilisation de notre simulateur,
puisqu'il s'adapte automatiquement à l'ajout de nouveaux
scénarios et au changement du nombre de robots. L'utilisateur n'aura
qu'à effectuer un paramétrage de
FIGURE 4.2 - Progression visuelle d'un scénario à
grande échelle en utilisant la méthode xBOA avec 2 robots
109
l'expérience sans se soucier des mécanismes
internes de détection des obstacles, de mise à jour de la carte
globale, ou de l'évitement des collisions entre les robots. Ce genre de
tâches sont souvent un frein à beaucoup de chercheurs venant de
domaines différents puisqu'elles nécessitent d'avoir une bonne
compréhension des problématiques de navigation robotique et du
fonctionnement des grilles d'occupation.
4.4 Expérience 2 : Comparaison entre les
stratégies d'ex-ploration à court terme et à long terme
Cette expérience vise à comparer deux
stratégies d'exploration. La première consiste à planifier
la mission à long terme en sélectionnant plusieurs points de
destination au départ de l'exécution; calculer un chemin pour
visiter ces points selon leur ordre de sélection; puis
répéter l'opération après avoir visité tous
ces points. Quant à la deuxième stratégie, elle consiste
à faire une planification à court terme en ne
sélectionnant qu'un seul point à la fois; le robot devra donc
attendre jusqu'à avoir visité sa destination actuelle avant de
choisir la prochaine.
La figure 4.3 montre un exemple d'exécution des deux
stratégies en utilisant la méthode xBOA. Cette visualisation
étape par étape montre que la stratégie à long
terme est moins efficace que la stratégie à court terme lorsque
l'environnement est inconnu à l'avance. En effet, la planification
à long terme de plusieurs points de destination au début de la
mission se base sur des informations très limitées puisque le
robot n'a aucune connaissance à priori de l'emplacement des murs et des
obstacles avant de les avoir détectés grâce à son
LIDAR. Le processus d'optimisation choisit donc ces destinations en ne tenant
compte que de l'information de distance à vue d'oiseau par rapport au
robot. Cependant, lorsque celui-ci commence à se déplacer pour
visiter ces points, il met à jour sa carte en collectant les
informations des positions des obstacles et des différents chemins
possibles. Toutefois, il n'utilisera ces informations que lors de la prochaine
phase de sélection après avoir visité tous les points
planifiés. En d'autres termes : le robot continuera donc à
visiter les destinations prévues initialement sans profiter de l'apport
des nouvelles informations récoltées en chemin, et tombera
souvent dans une redondance poussant le robot à revisiter une zone
déjà explorée auparavant.
Pour illustrer ce problème de redondance, la figure 4.3
montre un exemple où la visite du 3ème point en utilisant la
stratégie à long terme n'a apporté aucun gain, et ceci
à cause du manque de visibilité lors de la phase de
sélection. Alors que la stratégie à court terme a permis
d'éviter cette redondance en utilisant les informations
récoltées lors de la visite du 1er et 2ème point pour
pousser le robot à visiter une nouvelle zone.
Dans la stratégie à court terme, le robot ne
sélectionne qu'un seul point de destination. Il se déplacera pour
le visiter tout en mettant à jour la carte de l'environnement puis
resé-lectionnera un nouveau point en utilisant les nouvelles
informations récoltées en chemin. La qualité du choix est
donc meilleure puisqu'il élimine les destinations n'apportant aucun gain
supplémentaire ou qui sont trop coûteuses par rapport aux gains
qu'ils pourront apporter. Cette stratégie est aussi avantageuse dans le
cas des environnements dynamiques où les positions des obstacles
changent à cause de portes ouvertes et fermées par exemple,
110
CHAPITRE 4
(a) État d'avancement de la mission d'exploration en
utilisant la stratégie à long terme (surface explorée
64%)
(b) État d'avancement de la mission d'exploration en
utilisant la stratégie à court terme (surface explorée
91%)
FIGURE 4.3 - Comparaison entre les deux stratégies
d'exploration en utilisant la méthode xBOA
ou à cause d'objets déplacés. Le robot
pourra prendre en compte les derniers changements de la carte à chaque
fois qu'une destination est atteinte.
L'inconvénient de cette stratégie cependant est
la nécessité de répéter le processus de
sélection des points de destination plus fréquemment. Il est donc
nécessaire que le temps d'exécution de ce processus soit court
puisque le robot restera en état d'attente le temps de finir ses
calculs.
Aussi nous remarquons que cette stratégie à
réussi à explorer presque la totalité de la zone dans
l'exemple montré par la figure 4.3 en visitant 3 points seulement. Elle
a pu atteindre un taux d'exploration de 91% contrairement à la
stratégie à long terme qui n'a réussi à explorer
que 64% de la surface de la zone, soit un résultat inférieur de
27% comparé à la stratégie à court terme.
4.5 Expérience 3 : Recherche des meilleurs
hyperpara-mètres
Les métaheuristiques sont sensibles aux choix des
paramètres initiaux. Une pratique courante dans la littérature
consiste à comparer les performances des méthodes en utilisant
les paramètres originaux utilisés par les auteurs dans leurs
premières publications [11]. Ceci peut être un bon choix si nous
comparons ces méthodes en utilisant les fonctions
111
de benchmarking standards; toutefois, le problème
d'exploration de zones inconnues est par nature un problème
incrémental et partiellement observable, ce qui peut rendre les
paramètres par défaut moins optimaux.
De ce fait, nous avons effectué une expérience
préliminaire afin de rechercher les meilleurs paramètres de
chaque méthode pour ce problème en particulier. Ceci nous
permutera de comparer les résultats de ces métaheuristiques dans
leurs performances optimales et éviter qu'elles soient
piégées dans des optimums locaux à cause de mauvaises
initialisations.
Il n'existe pas de formule mathématique précise
pour trouver les meilleurs hyperpara-mètres d'une méthode, ceci
doit se faire expérimentalement en essayant plusieurs valeurs et
comparer leurs résultats. Bien que beaucoup de chercheurs utilisent la
méthode manuelle, nous avons préféré utiliser la
bibliothèque Hyperopt [18]. Cette bibliothèque permet
d'op-timiser les paramètres d'entrée d'un algorithme en
effectuant une recherche sélective sur une plage de valeurs. Elle offre
plusieurs stratégies de recherche dont principalement la méthode
de recherche aléatoire (Random Search [17]) et recherche par
l'algorithme TPE (Tree-structured Parzen Estimator [18]) qui montrent
des résultats meilleurs comparés aux méthodes classiques
telles que la stratégie de recherche par grille (Grid Search)
[17].
Le fonctionnement de base de la bibliothèque
Hyperopt consiste à exécuter plusieurs fois l'algorithme
qu'on veut optimiser en utilisant des valeurs aléatoires pour
l'initialisation des hyperparamètres, puis d'adapter ces valeurs selon
les résultats obtenus après plusieurs essais. En
répétant cette opération un nombre suffisant de fois, la
bibliothèque arrive à réduire la plage de
paramétrage afin de choisir une combinaison qui donne de bons
résultats.
En profitant de la puissance de calcul du cluster de calcul
intensif de l'USTOMB, nous avons lancé l'optimisation des
hyperparamètres de toutes les métaheuristiques incluses dans
notre simulateur à raison de 30 essais par méthode en
répétant chaque essai 3 fois, ce qui donne un total de 90
exécutions chacune. Le Tableau 4.1 liste les meilleurs paramètres
trouvés durant cette expérience, nous nous baserons sur ces
valeurs pour effectuer les prochaines expériences.
Certaines méthodes telles que ABC, GWO et CMAES ne
requièrent pas de paramétrage manuel. Pour les autres
méthodes, les paramètres suivants ont été
sélectionnés:
-- GA : nous avons utilisé une stratégie de
sélection par tournoi de taille 2 et une mutation polynomiale
avec un index de distribution de 76.
-- PSO : nous avons utilisé une taille de voisinage de
4 avec un facteur d'accélération cognitif supérieur au
facteur d'accélération social, ce qui attire chaque particule
vers la meilleure position dans son voisinage au lieu de retourner à sa
meilleure position trouvée précédemment.
-- Variantes de BOA: ces paramètres sont
expliqués en détail dans la section 2.8. Les valeurs des
meilleurs paramètres sont présentées dans le tableau
4.1.
112
CHAPITRE 4
TABLE 4.1 - Valeurs des meilleurs hyperparamètres
trouvés après 30 essais
Methods
|
Hyperparameters
|
Values
|
Methods
|
Hyperparameters
|
Values
|
|
Power exponent
|
0.547
|
|
Power exponent
|
0.73
|
BOA
|
|
|
BOA
|
|
|
|
Sensor modality
|
0.602
|
|
Sensor modality
|
0.577
|
(pop size 20)
|
|
|
(pop size 5)
|
|
|
|
Switch probability
|
0.395
|
|
Switch probability
|
0.331
|
xBOA
|
Power exponent
|
0.905
|
xBOA
|
Power exponent
|
0.994
|
|
Sensor modality
|
0.257
|
|
Sensor modality
|
0.518
|
(pop size 20)
|
|
|
(pop size 5)
|
|
|
|
Crossover probability
|
0.593
|
|
Crossover probability
|
0.583
|
|
Crossover probability
|
0.11
|
mBOA
|
Power exponent
|
0.61
|
GA
|
Mutation probability
|
0.215
|
|
Sensor modality
|
0.356
|
|
|
|
(pop size 5)
|
|
|
|
Mutation distribution index
|
76.026
|
|
Switch probability
|
0.762
|
|
Social component coef.
|
1.506
|
|
Power exponent
|
0.992
|
|
Cognitive component coef.
|
3.379
|
ABOA
|
Sensor modality
|
0.98
|
PSO
|
|
|
|
|
|
|
Max velocity
|
0.329
|
(pop size 5)
|
Switch probability
|
0.983
|
|
Inertia weight
|
0.449
|
|
u
|
1.356
|
ABC, GWO,
|
No parameters to optimize
|
SABOA
|
Switch probability
|
0.237
|
CMAES
|
(auto-tuning)
|
(pop size 5)
|
|
|
4.6 Expérience 4 : Comparaison de l'algorithme xBOA
avec les métaheuristiques populaires
Dans cette série d'expériences, nous allons
comparer les performances des différentes métaheuristiques
incluses dans notre simulateur pour la résolution du problème
d'explora-tion de zones inconnues.
Selon ce qu'on peut voir sur les Figures 4.4 et 4.5 ainsi que
le Tableau 4.2, les méthodes xBOA, PSO, GA et CMAES ont
présenté des résultats presque similaires sur la plupart
des scénarios, surtout dans le cas de l'exploration à court
terme. Ceci signifie que le processus d'optimisation a convergé avec
succès vers la solution optimale. Toutefois, nous observons une
dégradation de la convergence de BOA et GWO à certaines
périodes provoquées par leur blocage dans un optimum local
poussant le robot à revisiter une zone déjà
explorée pendant un certain intervalle de temps. Cependant, ces
méthodes finissent par échapper à ce minimum local
après un certain nombre de pas et rattraper leur retard.
Il est important de noter que la métrique du «
nombre de pas » (step number) correspond au nombre de mouvements
et de rotations effectués par le robot. Il est fortement
corrélé avec la durée de la mission, mais de
manière non linéaire puisque le temps nécessaire pour
effectuer une rotation à 45° est différent de celui requis
pour se déplacer un mètre en avant.
113
Nous avons choisi d'analyser le nombre de pas au lieu du temps
d'exploration à cause de l'importance du facteur énergie dans le
domaine de la robotique; le nombre de mouvements qu'un robot peut effectuer est
limité par la capacité de sa batterie. Si dans notre cas le robot
avait une capacité de batterie pour effectuer seulement 100 pas par
exemple, il ne pourra explorer que 80% de la première scène
(Empty map) en utilisant l'algorithme BOA, au lieu de 85% s'il
utilisait xBOA, PSO ou CMAES. L'algorithme BOA apparaît donc moins
efficace que les autres méthodes en considérant ce critère
d'évaluation.
TABLE 4.2 - Taux d'exploration obtenus à la fin de la
mission d'exploration
Short-term exploration
|
|
Empty map
|
House map
|
Method
|
Average
|
Min
|
Max
|
Average
|
Min
|
Max
|
ABC
|
98.12
|
97.22
|
= 99
|
90.1
|
88.36
|
92.7
|
BOA
|
96
|
94.79
|
= 99
|
93.4
|
91.84
|
95.13
|
CMAES
|
98.49
|
95.66
|
= 99
|
93.29
|
89.4
|
96.18
|
GA
|
97.38
|
82.81
|
= 99
|
93
|
92.01
|
94.96
|
GWO
|
93.03
|
92.88
|
93.05
|
67.7
|
67.7
|
67.7
|
PSO
|
98.16
|
97.39
|
= 99
|
93.19
|
88.71
|
94.79
|
xBOA
|
98.23
|
93.92
|
= 99
|
91.63
|
82.63
|
94.44
|
Long-term exploration
|
Method
|
Average
|
Min
|
Max
|
Average
|
Min
|
Max
|
ABC
|
98.02
|
96.52
|
= 99
|
86.38
|
80.38
|
92.18
|
BOA
|
93.87
|
91.49
|
97.74
|
84.61
|
73.26
|
92.36
|
CMAES
|
94.16
|
83.85
|
= 99
|
82.23
|
77.43
|
86.45
|
GA
|
97.63
|
96.52
|
= 99
|
87.67
|
79.86
|
95.48
|
GWO
|
93.4
|
93.4
|
93.4
|
83.68
|
83.68
|
83.68
|
PSO
|
96.44
|
92.88
|
= 99
|
87.06
|
84.2
|
90.97
|
xBOA
|
96.37
|
93.57
|
98.61
|
89.9
|
79.16
|
94.1
|
Les Figures 4.6 et 4.7 nous permettent d'analyser le temps de
calcul total pour chaque méthode durant la mission d'exploration.
Étant donné que les processeurs sont une ressource coûteuse
en termes de prix de fabrication et d'énergie consommée, la
tendance dans le domaine des systèmes multirobots est de réduire
au maximum le temps de calcul requis pour accomplir la mission afin de
permettre l'utilisation de processeurs plus petits et moins gourmands. La
méthode idéale devrait donner une qualité d'exploration
maximale tout en nécessitant un minimum de temps de calcul. Toutefois,
il est rarement le cas d'obtenir un tel résultat, ce qui nous contraint
souvent à trouver un compris entre ces deux critères de
comparaisons.
114
CHAPITRE 4
*Les résultats présentent les valeurs
moyennes de 10 exécutions
FIGURE 4.4 - Résultats de la simulation de la mission
d'exploration en utilisant la stratégie à court terme
115
Exploration rate -- Empty Map
20 40 60 80 100 120 140 160
Step number
Exploration rate -- House Map
80 -
60 -
ABC
t BOA CMAES GA
- 1- GWO
- c- PS
t XBOA
20 -
200 250
1E:D 150
Step number
*Les résultats présentent les valeurs
moyennes de 10 exécutions
FIGURE 4.5 -- Résultats de la simulation
de la mission d'exploration en utilisant la stratégie à long
terme
116
CHAPITRE 4
Nous remarquons dans les résultats
présentés par ces figures la présence de plusieurs pics
sur l'axe du temps de calcul. Ces pics correspondent au temps requis par le
robot pour calculer les prochains points à visiter en utilisant l'une
des métaheuristiques, sachant que le robot est figé pendant ce
temps puisqu'il n'a pas encore de point de destination pour pouvoir planifier
un chemin de déplacement. Nous remarquons aussi que le temps de calcul
pendant le déplacement du robot est relativement négligeable,
ceci s'explique par le fait que le robot ne nécessite pas d'effectuer
des opérations de calculs compliquées pendant le
déplacement puisque cette phase se limite à mesurer la distance
avec l'obstacle le plus proche pour éviter les collisions ainsi que la
mise à jour des probabilités d'occupation dans la carte.
Bien que les méthodes xBOA, GA et ABC donnent de
meilleurs résultats en termes de taux d'exploration comparés
à BOA, elles nécessitent un temps de calcul plus long. Ceci
s'explique par la simplicité des opérations de l'algorithme BOA
et sa complexité réduite comparée aux autres
méthodes. Les résultats présentés dans la Figure
4.8 renforcent cette explication; nous observons clairement que le temps de
calcul de la méthode BOA est inférieur à celui de xBOA, GA
et ABC, et que le nombre d'appels à la fonction de fitness (fitness
evaluations) est inférieur.
Nous observons aussi que la méthode ABC requiert un
temps de calcul considérable dans toutes les expériences, qui est
supérieur au double du temps requis par les autres méthodes. Ceci
est causé par la nature de l'algorithme ABC qui est divisé en 3
phases dont chacune nécessite la réévaluation des
individus, ce qui conduit à un grand nombre d'exécu-tions de la
fonction objectif. Cette lenteur le rend inadapté aux scénarios
en situation réelle, car les robots ne doivent pas rester
immobilisés pendant une longue période.
Par ailleurs, nous remarquons que la méthode CMAES
domine les autres méthodes sur le critère du temps de calcul,
mais elle est parfois dominée par la méthode BOA en termes de
taux d'exploration, alors que cette dernière est elle-même
dominée par xBOA dans tous les scénarios sur ce même
critère. La méthode GWO est elle aussi dominée par xBOA
sur ce critère, mais elle enregistre un temps de calcul plus rapide.
Il est important de noter à partir de la figure 4.8 que
le temps de calcul moyen pour sélectionner le prochain point de
destination est relativement long; moyennant 150 à 450 secondes durant
lesquelles le robot est à l'arrêt en attendant le résultat
du processus d'opti-misation. Ceci n'est pas recommandé pour des
scénarios où le temps est un facteur critique tel que les
missions de sauvetage par exemple. Deux potentielles solutions sont possibles
dans ce cas. La première consiste à profiter des
fonctionnalités de parallélisme offertes par les processeurs
modernes pour évaluer plusieurs individus de la population en même
temps. Des résultats préliminaires nous ont permis de
réduire de moitié le temps d'exécution en utilisant cette
technique.
La deuxième stratégie consiste à
réduire la taille de la population, ce qui revient donc à
réduire le nombre de solutions candidates évaluées par la
fonction objectif. Dans la série d'expériences suivante, nous
allons analyser l'impact de cette deuxième stratégie sur la
qualité des solutions générées.
117
Execution time -- Empty Map
1000 -
A
4000 -
3000 -
V
N
0
2000 -
·
· · · · · ·
· · t
· · ·
0
·
·
tt~+ir
-ç
· t · ABC
t BOA t CMAES t GA
- · - GWO -X- PSO
t XBOA
0 20 40 60 80
Exploration rate
Execution time -- House Map
· · · ABC
- 0- BOA CMAES GA
- ·- GWO -~ Pso
t XBOA
4000 -
3000 -
2000 -
1000 -
0 10 20 30 40 50 60 70 80
Exploration rate
*Les résultats présentent les valeurs
moyennes de 3 exécutions
FIGURE 4.6 -- Comparaison de la durée
totale de la mission d'exploration pour la stratégie à court
terme
118
CHAPITRE 4
*Les résultats présentent les valeurs
moyennes de 3 exécutions
FIGURE 4.7 - Comparaison de la durée totale de la mission
d'exploration pour la stratégie à long terme
119
(a) Nombre d'évaluations de la fonction de fitness
(b) Temps moyen de calcul pour chaque métaheuristique
*Les résultats présentent les valeurs
moyennes de 3 exécutions
FIGURE 4.8 - Nombre d'évaluations de la
fonction de fitness et temps moyen de calcul pour chaque
métaheuristique
120
CHAPITRE 4
4.7 Expérience 5 : Evaluation de la robustesse de
l'algo-rithme xBOA face à la réduction de taille de la
population
Afin d'étudier la possibilité
d'accélérer les algorithmes BOA et xBOA en réduisant la
taille de la population, nous avons effectué une série
d'expériences afin de mesurer l'in-fluence de la taille de la population
sur ces algorithmes et la robustesse de ces derniers.
Dans un premier temps, nous avons effectué une
expérience sur l'algorithme BOA original en variant la taille de la
population de 20 à 5 papillons tout en gardant les autres
paramètres fixes.
Les résultats présentés sur la figure 4.9
montrent que la réduction du nombre de solutions candidates (papillons)
réduit considérablement le temps d'exécution de la
métaheu-ristique. En effet, ce temps a diminué de 320 secondes
à 110 secondes en divisant la taille de la population en quatre.
Toutefois, ceci affecte aussi la qualité de l'exploration puisque
TABLE 4.3 - Evolution du taux d'exploration selon la taille de
la population en utilisant l'algorithme BOA
Short-term exploration - House map
|
Pop size
|
Average
|
Min
|
Max
|
05 butterflies
|
86.11
|
81.77
|
95.13
|
10 butterflies
|
88.66
|
79.68
|
95.13
|
20 butterflies
|
92.84
|
89.75
|
94.27
|
*Les résultats présentent les valeurs
moyennes de 3 exécutions
FIGURE 4.9 - Comparaison des résultats en utilisant
l'algorithme BOA avec différentes tailles de population sur
l'environnement House Map
121
le taux total de la surface explorée a baissé de
6.73%, tel que nous pouvons le voir sur le tableau 4.3.
Bien que cette baisse du taux d'exploration est importante, le
gain apporté de pouvoir calculer le prochain point de destination en
moins de 110 secondes apporte son lot d'avan-tages puisque ce temps d'attente
est acceptable pour beaucoup de scénarios de robotique dans le monde
réel par rapport au temps initial qui était trois fois plus
long.
En prenant ces résultats comme ligne de base, nous
avons effectué d'autres expériences pour mesurer les performances
de notre méthode ainsi que celles des autres métaheuris-tiques
lorsque la taille de la population est réduite à 5
solutions. Les résultats sont présentés sur le
tableau 4.3 et les figures 4.10 et 4.11.
La première remarque notable que nous pouvons constater
en observant les graphes se trouve au niveau du taux d'exploration des
méthodes PSO et GWO dont l'amélioration s'est
arrêtée après avoir atteint les valeurs de 75% et
62% respectivement, malgré qu'elles démontraient des
résultats proches de ceux des autres méthodes lorsque la taille
de la population était plus grande.
La deuxième observation notable c'est que la surface de
la zone visitée à la fin de la mission n'a pas pu dépasser
le taux de 97% pour l'environnement Empty Map et 93.35%
pour l'environnement House Map, et ceci, même si le niveau
d'énergie du robot n'a pas encore atteint 0. Après la
visualisation des trajectoires des robots dans le simulateur, nous avons
remarqué que ceci est dû au blocage des robots dans un minima
local où ils revisitent des régions déjà
explorées. Ceci s'explique par le manque de diversification dans les
solutions puisque le nombre très réduit de la population a
engendré une convergence prématurée vers une solution
unique. C'est-à-dire que tous les cinq individus de la population
avaient (presque) la même valeur.
Une potentielle solution pour éviter ce problème
serait d'augmenter l'espace de recherche graduellement en augmentant la taille
de la population lorsque le taux de la surface explorée dépasse
un certain seuil (par exemple 80%). En d'autres termes : commencer la recherche
en utilisant une taille de population réduite afin
d'accélérer le temps de calcul, puis augmenter le nombre
d'individus à la fin de la mission pour diversifier la population et
échapper aux minimas locaux. Ceci devrait être une meilleure
stratégie pour profiter des avantages des deux paramétrages, sans
sacrifier la qualité du résultat obtenu à la fin de la
mission.
Nous observons également que la méthode xBOA
domine toutes les autres méthodes sur les critères du taux
d'exploration et de la convergence de la valeur de fitness, mais elle souffre
d'un temps d'exécution élevé. De l'autre
côté, la méthode CMAES est dominante sur le critère
du temps moyen de calcul qui avoisine les 25 secondes, mais elle
souffre d'un taux d'exploration inférieur à xBOA de 10%. La
méthode ABC est la plus lente de toutes les méthodes, elle
nécessite 175 secondes de temps de calcul pour arriver à
un résultat presque similaire à celui de xBOA. Tandis que GA
offre un bon compromis entre qualité et vitesse d'exécution. La
figure 4.12 montre la différence de ces résultats avec
ceux obtenus lors de la série d'expériences
précédente qui utilisait une taille de population de 20
individus.
Étant donné que la méthode xBOA a pu
garder un taux d'exploration supérieur aux
122
CHAPITRE 4
*Les résultats présentent les valeurs
moyennes de 3 exécutions
FIGURE 4.10 - Comparaison du taux d'exploration et durée
de la mission en utilisant la stratégie à court-terme et une
population de taille 5
123
Average computation time -- House Map
20
- 30
ABC
t BOA
CMAES --At-- GA
-~- GWO
PSO
t XBOA
- 40 - N
73 -50-
v -60 C
u-
- 70 -
- 80 -
- 90 -
200 -
175 -
150 -
V
125 -
av
100 -
I-
75 -
50 -
25 -
ABC BOA CMAES
GWO PSO XBOA
To
Progression of fitness value -- House Map
-100
0 10 20 30 40 50
Step number
*Les résultats présentent les valeurs
moyennes de 3 exécutions
FIGURE 4.11- Comparaison du temps moyen de calcul et
convergence de la valeur de fitness en utilisant la stratégie à
court-terme et une population de taille 5
CHAPITRE 4
autres méthodes pendant toute la durée de la
mission (voir la figure 4.10), et étant donné que les autres
méthodes n'ont pu approcher le taux de xBOA que vers la fin de la
mission, nous pouvons conclure que cette méthode est la plus robuste
d'entre eux face à la réduction de la taille de la population et
qu'elle serait plus avantageuse à utiliser dans beaucoup des situations.
Par exemple, Si la batterie était limitée, xBOA permettrait
d'explorer 10% à 20% plus de surface que les autres
métaheuristiques en général.
Une solution alternative serait d'utiliser la méthode
GA qui offre un résultats proches de xBOA vers la fin de la mission avec
un temps d'exécution similaire à l'algorithme BOA classique.
Toutefois, dans le cas où le temps d'exécution
est critique, nous pouvons envisager d'uti-liser la méthode CMAES qui
donne des résultats très rapides en sacrifiant la qualité
des
TABLE 4.4 - Taux d'exploration obtenus à la fin de la
mission en utilisant l'algorithme BOA avec une population de taille 5
Short-term exploration
|
|
Empty map
|
House map
|
Method
|
Average
|
Min
|
Max
|
Average
|
Min
|
Max
|
ABC
|
97.32
|
95.83
|
98.61
|
90.59
|
84.72
|
96
|
BOA
|
96.09
|
92.01
|
=99
|
87.13
|
83.68
|
95.13
|
CMAES
|
94.46
|
89.4
|
98.61
|
82.8
|
76.73
|
93.22
|
GA
|
96.09
|
87.5
|
=99
|
92.36
|
89.23
|
96
|
GWO
|
89.61
|
84.37
|
92.53
|
62.03
|
60.76
|
62.32
|
PSO
|
93.03
|
84.37
|
98.26
|
74.9
|
70.83
|
77.6
|
xBOA
|
96.14
|
92.88
|
98.26
|
93.35
|
92.18
|
93.92
|
124
(a) Temps de calcul moyen (en minutes) (b) Temps total de la
mission (en minutes)
FIGURE 4.12 - Impact de la réduction de la taille de
population sur le temps de calcul et temps de la mission en utilisant les
différentes métaheuristiques
125
solutions.
Ces trois méthodes appartiennent au front des solutions
non dominées (Pareto-front) et sont donc simultanément
optimales. Toutes les autres méthodes sont dominées et
appartiennent à la liste des solutions non optimales. La figure 4.13
illustre cette classification.
*Toutes les solutions sous la ligne rouge sont
dominées
FIGURE 4.13 - Visualisation du front des solutions dominantes
(Pareto-front) pour les différentes métaheuristiques en utilisant
une population de taille 5
4.8 Expérience 6 : Comparaison de xBOA avec les
autres variantes de l'algorithme BOA
Ayant constaté les avantages et les
inconvénients de l'algorithme xBOA par rapport aux autres
métaheuristiques, nous avons effectué une dernière
série d'expériences dont le but est de comparer les performances
de cet algorithme face aux autres variantes du BOA citées auparavant
dans l'état de l'art (voir section 2.8). Nous avons gardé la
même taille de population que la série d'expériences
précédente, à savoir 5 papillons.
Selon ce que l'on peut voir sur la figure 4.14 et 4.15 ainsi
que le tableau 4.5, la méthode xBOA domine les autres variantes dans le
critère du taux d'exploration durant toute la durée de la
mission. Elle atteint un résultat supérieur à celui de
l'algorithme BOA original de 4.24%. Elle les domine également dans le
critère de la convergence de la valeur de fitness.
Cette amélioration est due à l'utilisation de
l'opérateur de croisement qui augmente la diversité de la
population. En effet, en remplaçant les solutions existantes par de
nouvelles solutions, nous encourageons l'algorithme à explorer diverses
zones dans l'espace
126
CHAPITRE 4
TABLE 4.5 - Comparatif du taux d'exploration en utilisation les
variantes de l'algorithme BOA avec une population de taille 5
Short-term exploration - House map
|
Method
|
Average
|
Min
|
Max
|
BOA
|
89.11
|
81.77
|
95.13
|
ABOA
|
90.38
|
81.77
|
95.13
|
mBOA
|
89.14
|
81.07
|
95.13
|
SABOA
|
85.13
|
82.98
|
85.93
|
xBOA
|
93.35
|
92.18
|
93.92
|
de recherche au lieu d'intensifier la recherche au niveau
local. Ceci permet à l'algorithme d'échapper au piège de
converger prématurément vers un minima local, ce qui augmente les
chances de trouver l'optimum global.
Toutefois, chaque nouvel individu créé doit
être évalué, ce qui engendre l'augmentation du nombre
d'évaluations de la fonction fitness. Par conséquent, le temps de
calcul de l'al-gorithme augmente aussi. Étant donné que le
paramètre de probabilité de croisement était
fixé à 0.583, il y a donc 58% plus d'individus à
évaluer dans l'algorithme xBOA comparé au BOA classique.
L'algorithme mBOA souffre aussi d'un temps de calcul
élevé, ceci est causé par les calculs
supplémentaires ajoutés à cette variante dans la phase
d'exploitation intensive. Bien que cette nouvelle phase permet
d'accélérer la convergence de l'algorithme par rapport à
la méthode BOA classique, elle reste tout de même dominée
par l'algorithme xBOA que ce soit dans les critères du temps, de la
convergence ou du taux d'exploration de la zone.
ABOA domine les autres variantes dans le critère du
temps d'exécution, mais n'est pas parvenue à dépasser
à un taux d'exploration de 90.38%, alors que xBOA a pu atteindre un
résultat supérieur. Quant à l'algorithme SABOA, il a
donné le résultat le moins performant avec un taux d'exploration
de 85.13%, mais possède néanmoins l'avantage de n'avoir qu'un
seul hyperparamètre en entrée, ce qui réduit la
complexité du paramétrage.
Les deux solutions dominantes sont donc:
-- ABOA : qui possède le meilleur temps de calcul; et --
xBOA : qui obtient le meilleur taux d'exploration.
Il faut donc considérer le choix d'un bon compris entre
la maximisation de la surface explorée et le temps de calcul
nécessaire. Ce choix dépendra de la nature de la mission: dans un
contexte d'une mission de sauvetage par exemple, le facteur « temps »
est très important, ce qui rend envisageable la décision de
privilégier la réduction de la durée d'exécution au
profit de la qualité d'exploration. En revanche, dans un contexte de
déminage, de nettoyage ou de surveillance, il serait judicieux de
privilégier la maximisation de la zone explorée au
dépourvu du temps de calcul, jusqu'à une certaine mesure.
Exploration rate -- House Map
0
Exploration rate
127
50 100 150 250
Step number
Execution time -- House Map
1200 -
1000
!- AB OA
- 0- BOA MBOA SA B OA
- - XBOA
800 -
V
N
V)
600 -
CDE
i-
400-
200 -
sn
0 2 a 40 610
Exploration rate
*Les résultats présentent les valeurs
moyennes de 10 exécutions
FIGURE 4.14 -- Comparaison des variantes de l'algorithme
BOA en utilisant la stratégie à court terme et une population de
taille 5
128
CHAPITRE 4
*Les résultats présentent les valeurs
moyennes de 10 exécutions
FIGURE 4.15 - Suite de la comparaison des variantes de
l'algorithme BOA en utilisant la stratégie à court terme et une
population de taille 5
129
Un autre facteur a prendre en considération aussi est
la stabilité des résultats. En effet, après avoir
répété l'expérience 10 fois, le xBOA a
enregistré un taux de stabilité élevé avec un
résultat presque similaire à chaque exécution (~1 à
2% d'écart). Alors que l'algorithme ABOA vacillait dans une marge de 15%
de différence entre les résultats.
*Toutes les solutions sous la ligne rouge sont
dominées
FIGURE 4.16 - Visualisation du front des solutions dominante
(Pareto-front) pour les variantes de BOA en utilisant une population de taille
5
4.9 Expérience 7 : Test en utilisant un robot
réel
Afin de valider l'adaptabilité de notre approche aux
expériences du monde réel, nous avons effectué des tests
sur le robot P3DX du laboratoire LARESI situé dans le département
d'électronique de USTOMB. Pour cela, nous avons séparé le
système en deux parties. D'un côté, un ordinateur portable
connecté au réseau local du laboratoire via une connexion wifi
joue le rôle de serveur. Il exécute le processus d'optimisation
pour générer le prochain point de destination à visiter
ainsi que l'algorithme de planification de chemin pour calculer les positions
intermédiaires, qui sont ensuite transformées en un ensemble de
commandes de mouvements puis envoyées au robot via une socket TCP.
Une fois que le robot reçoit une commande de mouvement
(move, turn, stop), il la transforme en une commande de vitesse pour le
contrôle des moteurs en utilisant les routines du système ROS
(Robot Operating System), celui-ci communiquera directement avec le
mi-crocontrôleur du robot via l'interface ROSARIA pour exécuter
les commandes. En parallèle à cela, un autre programme
basé sur ROS s'occupe de collecter les informations mesurées par
le Lidar à une fréquence de 10Hz puis les envoyer au serveur pour
mettre à jour la carte de l'environnement.
CHAPITRE 4
Un problème rencontré durant les
expériences était l'accumulation de l'erreur de localisation
causée par le glissement du robot sur le sol. En effet, notre simulateur
supposait que la localisation du robot était connue à chaque
instant t, toutefois, dans le monde réel ceci ne pouvait se faire sans
l'intégration d'un dispositif électronique de positionnement. La
méthode que nous avons utilisée sur le robot P3DX se base sur
l'odométrie, qui est une technique peu chère se basant sur le
calcul du nombre de rotations des roues pour estimer la distance parcourue par
le robot et son angle. Cependant, nous avons remarqué des
mini-glissements du robot à la fin de chaque mouvement qui le fait
dévier de 1 ou 2 centimètres de sa trajectoire. Bien que cette
déviation n'est pas importante, son accumulation après plusieurs
mouvements s'accroit et engendre une localisation erronée.
Afin de résoudre ce problème sans avoir besoin
d'utiliser des dispositifs de localisation plus complexes, nous avons
intégré un mécanisme de contrôle en boucle
fermée (contrôl-leur PID) pour réduire la vitesse de
rotation des roues lorsque le robot se rapproche de l'emplacement prévu,
avec une possibilité de revenir légèrement en
arrière pour corriger sa position si nécessaire.
Les codes sources de ce contrôleur PID basé sur
le système ROS ainsi que le programme pour le contrôle du robot en
utilisant les commandes distantes par TCP sont disponible en open source sur le
lien cité en bas de page 1. La figure 4.17 montre des photos
prises durant les expériences dans le laboratoire.
Dans les travaux futurs, nous allons optimiser le
système en intégrant directement les calculs des points de
destination et de la planification de trajectoires dans l'ordinateur de bord du
robot, et ceci afin qu'il puisse être autonome et continuer sa mission
même si la connexion avec le serveur est interrompue. Étant
donné les faibles capacités de calcul de cet ordinateur de bord,
il serait judicieux de profiter des résultats obtenus durant
l'expérience
1. https ://
github.com/amineHorseman/pioneer_bci
FIGURE 4.17 - Expérience sur le robot réel
130
131
précédente par rapport à la
réduction de la taille de population afin d'alléger les calculs.
L'utilisation du xBOA dans ce contexte serait donc appropriée
étant donné ses capacités de diversification des solutions
dans les populations à petite taille, ainsi que sa stabilité
à atteindre un taux d'exploration élevé lors de chaque
exécution.
4.10 Conclusion
Nous avons présenté dans ce chapitre une
série d'expériences effectuées dans le but
d'évaluer les performances de l'algorithme xBOA. Nous l'avons
comparé à plusieurs autres métaheuristiques, ainsi que les
autres variantes de BOA récemment introduites dans la
littérature.
L'évaluation des méthodes s'est basée sur
5 critères de comparaison. Les résultats montrèrent que
l'algorithme xBOA surpasse BOA et ses autres variantes, mais requiert un temps
de calcul élevé. L'algorithme proposé surpasse aussi les
autres métaheuristiques telles que PSO, GA, GWO et ABC dans certains
scénarios.
Nous avons aussi effectué une expérience pour
évaluer l'adaptabilité de notre approche dans un contexte
multirobots. Les résultats nous ont permis de valider notre
modélisation du mécanisme de synchronisation implicite et
observer l'émergence d'un comportement collectif au sein des robots leur
permettant de se disperser dans l'environnement et minimiser la redondance
même pour des zones à large échelle. Nous avons
également effectué une expérience sur un robot réel
de type P3DX au sein du laboratoire LARESI basé sur le middleware ROS et
une communication avec le serveur via une connexion wifi en utilisant des
sockets TCP.
Les résultats obtenus durant ces expériences ont
été satisfaisants sur certains critères, mais ont
démontré aussi les limites de l'algorithme xBOA. Nous
présenterons dans la conclusion générale quelques
perspectives d'amélioration de cette méthode.
132
CONCLUSION GÉNÉRALE ET PERSPECTIVES
Nous avons présenté dans cette thèse nos
travaux sur l'optimisation du comportement collectif d'un groupe de robots
autonomes en utilisant les métaheuristiques.
Ce travail était divisé en deux parties
principales. La première était consacrée à
l'étude des fondements théoriques des systèmes multirobots
et des métaheuristiques pour l'optimi-sation globale. Tandis que la
deuxième présentait notre modélisation du problème
d'explo-ration de zones inconnues avec des contraintes d'énergie, ainsi
que la série d'expériences réalisées pour la
valider.
Cette thèse a introduit deux contributions principales.
D'un côté le développement d'une nouvelle plateforme de
simulation appelée PyRoboticsLab pour l'évaluation et le
benchmarking d'algorithmes dédiés à la résolution
des problèmes de navigation robotique, planification de trajectoires,
exploration et surveillance. Et de l'autre côté l'introduction
d'un nouvel algorithme xBOA que nous avons proposé comme nouvelle
variante de la mé-taheuristique BOA.
Nous avons utilisé notre plateforme de benchmarking
afin de comparer les performances de notre nouvel algorithme à plusieurs
autres métaheuristiques utilisées dans la littérature.
L'évaluation des méthodes s'est basée sur cinq
critères de comparaison. Les résultats ont montré que
l'algorithme xBOA surpasse BOA et ses autres variantes, mais requiert un temps
de calcul plus long. L'algorithme proposé surpasse aussi les autres
mé-taheuristiques telles que PSO, GA, GWO et ABC dans certains
scénarios.
Nous avons procédé aussi à une
série d'expériences pour évaluer l'adaptabilité de
notre approche dans un contexte multirobots, et optimiser la coordination entre
les robots en introduisant des mécanismes d'échange
d'informations pour permettre aux robots de se disperser efficacement et
minimiser la redondance.
D'autres améliorations d'ordre programmatique ont aussi
été introduites telles que l'uti-lisation du parallélisme
dans le processus d'évolution pour permettre d'évaluer plusieurs
individus en même temps et accélérer le temps global de
calcul des points de destinations.
Nous avons également effectué une
expérience réelle sur un robot de type P3DX dont le
133
Conclusion générale et perspectives
but était de vérifier le bon fonctionnement des
outils proposés. Cette expérience nous a permis de
détecter et résoudre les problèmes de localisation
basée sur l'odométrie et d'adapter notre approche au middleware
ROS.
Dans les travaux futurs, nous nous consacrerons à
améliorer la plateforme de simulation afin d'y intégrer plus
d'algorithmes, et ce afin d'offrir aux chercheurs de ce domaine une suite
complète de benchmarking et un outil uniformisé pour positionner
leurs travaux. L'outil pourra aussi intégrer plus de scénarios et
des environnements variés avec l'intégra-tion d'obstacles
dynamiques.
Le simulateur pourra aussi être utilisé à
des fins pédagogiques afin de faire découvrir aux
étudiants en informatique le domaine de l'intelligence artificielle
appliquée aux problématiques de la robotique collective, sans
qu'ils aient à se soucier des détails théoriques relatifs
à la modélisation des capteurs laser, ou du calcul des
probabilités d'occupation.
Du côté de l'algorithme xBOA, nous projetons de
le tester sur d'autres types de problématiques d'optimisation
combinatoire. Nous pourrons considérer la piste d'améliorer cet
algorithme en introduisant un mécanisme plus adaptatif pour
équilibrer les phases d'ex-ploration et d'exploitation, ou de tester
différents opérateurs de croisement pour analyser leur effet sur
la convergence de l'algorithme.
134
BIBLIOGRAPHIE
[1] Nur Aira ABD RAHMAN et al. « A
coverage path planning approach for autonomous radiation mapping with a mobile
robot ». In : International Journal of Advanced Robotic Systems
19.4 (2022), p. 17298806221116483.
[2] Laith ABUALIGAH et al. « Reptile
Search Algorithm (RSA): A nature-inspired meta-heuristic optimizer ». In :
Expert Systems with Applications 191 (2022), p. 116158.
[3] Laith ABUALIGAH et al. « The
arithmetic optimization algorithm ». In : Computer methods in applied
mechanics and engineering 376 (2021), p. 113609.
[4] Afsoon AFZAL et al. « A study on
the challenges of using robotics simulators for testing ». In : arXiv
preprint arXiv:2004.07368 (2020).
[5] Jeffrey O AGUSHAKA, Absalom E
EZUGWU et Laith ABUALIGAH. « Dwarf
mongoose optimization algorithm ». In : Computer methods in applied
mechanics and engineering 391 (2022), p. 114570.
[6] Somaye AHMADI, H. KEBRIAEI
et Hadi MORADI. « Constrained coverage path
planning: evolutionary and classical approaches ». In : Robotica
36 (fév. 2018), p. 1-21. DOI :
10.1017/S0263574718000139.
[7] Mohammad AL KHAWALDAH et Andreas
NUCHTER. « Enhanced frontier-based exploration for indoor
environment with multiple robots ». In : Advanced Robotics 29
(avr. 2015). DOI : 10.1080/01691864.2015.1015443.
[8] Sankalap ARORA et Priyanka
ANAND. « Binary butterfly optimization approaches for
feature selection ». In : Expert Systems with Applications 116
(2019), p. 147-160.
[9] Sankalap ARORA et Satvir
SINGH. « An improved butterfly optimization algorithm for
global optimization ». In : Advanced Science, Engineering and Medicine
8.9 (2016), p. 711-717.
[10] Sankalap ARORA et Satvir
SINGH. « Butterfly algorithm with levy flights for global
optimization ». In : 2015 International conference on signal
processing, computing and control (ISPCC). IEEE. 2015, p. 220-224.
[11] Sankalap ARORA et Satvir
SINGH. « Butterfly optimization algorithm: a novel
approach for global optimization ». In : Soft Computing 23.3
(2019), p. 715-734.
[12] Sankalap ARORA, Satvir SINGH
et Kaan YETILMEZSOY. « A modified butterfly
optimization algorithm for mechanical design optimization problems ». In :
Journal of the Brazilian Society of Mechanical Sciences and Engineering
40.1 (2018), p. 1-17.
[13] Adel Saad ASSIRI. « On the
performance improvement of Butterfly Optimization approaches for global
optimization and Feature Selection ». In : Plos one 16.1 (2021),
e0242612.
[14] Mahdi AZIZI. « Atomic orbital
search: A novel metaheuristic algorithm ». In : Applied Mathematical
Modelling 93 (2021), p. 657-683.
[15] Antoine BAUTIN, Olivier SIMONIN
et François CHARPILLET. « MinPos : A
Novel Frontier Allocation Algorithm for Multi-robot Exploration ». In :
oct. 2012, p. 496-508. ISBN : 978-3-642-33514-3. DOI
: 10.1007/978-3-642-33515-0_49.
135
Bibliographie
[16] Amine BENDAHMANE et Redouane TLEMSANI. « Unknown
area exploration for robots with energy constraints using a modified Butterfly
Optimization Algorithm ». In : Soft Computing 27 (2023), p.
3785-3804. DOI : 10.1007/s00500-022-07530w.
[17] James BERGSTRA et Yoshua BENGIO. « Random search
for hyper-parameter optimization. » In : Journal of machine learning
research 13.2 (2012).
[18] James BERGSTRA, Dan YAMINS, David D COx et al. «
Hyperopt: A python library for optimizing the hyperparameters of machine
learning algorithms ». In : Proceedings of the 12th Python in science
conference. T. 13. Citeseer. 2013, p. 20.
[19] Francesco BISCANI et Dario IZZO. « A parallel
global multiobjective framework for optimization: pagmo ». In :
Journal of Open Source Software 5.53 (2020), p. 2338. DOI :
10.21105/joss.02338.
[20] Johann BORENSTEIN, Yoram KOREN et al. « The vector
field histogram-fast obstacle avoidance for mobile robots ». In : IEEE
transactions on robotics and automation 7.3 (1991), p. 278-288.
[21] Ersin BÜYÜK. « Pareto-based
multiobjective particle swarm optimization: examples in geophysical modeling
». In : Optimisation Algorithms and Swarm Intelligence.
In-techOpen, 2021.
[22] Byoung-Suk CHOI et al. « A hierarchical algorithm
for indoor mobile robot localization using RFID sensor fusion ». In :
IEEE Transactions on industrial electronics 58.6 (2011), p.
2226-2235.
[23] Howie CHOSET et Philippe PIGNON. « Coverage path
planning: The boustrophedon cellular decomposition ». In : Field and
service robotics. Springer. 1998, p. 203-209.
[24] Alberto COLORNI, Marco DORIGO, Vittorio MANIEZZO et al.
« Distributed optimization by ant colonies ». In : Proceedings of
the first European conference on artificial life. T. 142. Paris, France.
1991, p. 134-142.
[25] Nichael Lynn CRAMER. « A representation for the
Adaptive Generation of Simple Sequential Programs ». In : Proceedings
of an International Conference on Genetic Algorithms and the Applications.
Sous la dir. de John J. GREFENSTETTE. Carnegie-Mellon University, Pittsburgh,
USA, juin 1985, p. 183-187.
[26] Marija DAKULOVIc, Sanja HORVATIc et Ivan
PETROVIé. « Complete Coverage D* Algorithm for Path Planning of a
Floor-Cleaning Mobile Robot ». In : IFAC Proceedings Volumes 44.1
(2011). 18th IFAC World Congress, p. 5950-5955. ISSN : 1474-6670. DOI :
https://doi.org/10.3182/20110828-6-IT-1002.03400.
[27] Andrew DAVENPORT et al. « GENET: A connectionist
architecture for solving constraint satisfaction problems by iterative
improvement ». In : AAAI. 1994, p. 325-330.
[28] Susana Estefany DE LEÔN-ALDACO, Hugo CALLEJA et
Jesús Aguayo ALQuICIRA. « Me-taheuristic optimization methods
applied to power converters: A review ». In : IEEE Transactions on
Power Electronics 30.12 (2015), p. 6791-6803.
[29] Sihao DENG et al. « Application of external axis in
robot-assisted thermal spraying ». In : Journal of thermal spray
technology 21 (2012), p. 1203-1215.
136
Bibliographie
[30] Berat DoðAN et Tamer ÖLMEZ. « A new
metaheuristic for numerical function optimization: Vortex Search algorithm
». In : Information sciences 293 (2015), p. 125-145.
[31] Alexey DosovITsKIY et al. « CARLA: An open urban
driving simulator ». In : Conference on robot learning. PMLR.
2017, p. 1-16.
[32] Akif DURDU et al. « Convolutional Neural Networks
Based Active SLAM and Exploration ». In : Avrupa Bilim ve Teknoloji
Dergisi 22 (2021), p. 342-346.
[33] Hugh DuRRANT-WHYTE et al. « Field and service
applications-an autonomous straddle carrier for movement of shipping
containers-from research to operational autonomous systems ». In :
IEEE Robotics & Automation Magazine 14.3 (2007), p. 14-23.
[34] Alberto ELFEs. « Using occupancy grids for mobile
robot perception and navigation ». In : Computer 22.6 (1989), p.
46-57.
[35] Yuqi FAN et al. « A self-adaption butterfly
optimization algorithm for numerical optimization problems ». In :
IEEE Access 8 (2020), p. 88026-88041.
[36] J.D. FARMER, N. PACKARD et A. PERELsoN. « The immune
system, adaptation and machine learning ». In : Physica D 2
(1986), 187-204.
[37] Diego FERIGo et al. « Gym-ignition: Reproducible
robotic simulations for reinforcement learning ». In : 2020 IEEE/SICE
International Symposium on System Integration (SII). IEEE. 2020, p.
885-890.
[38] Simon FoNG, Suash DEB et Ankit CHAuDHARY. « A
review of metaheuristics in robotics ». In : Computers &
Electrical Engineering 43 (2015), p. 278-291.
[39] Miguel GARCíA et al. « Voronoi-Based Space
Partitioning for Coordinated Multi-Robot Exploration ». In : JoPha:
Journal of Pysical Agents, ISSN 1888-0258, Vol. 1, N°. 1, 2007, pags. 37-44
1 (jan. 2007). DoI: 10.14198/JoPha.2007.1.1.05.
[40] Fred GLovER. « Future paths for integer programming
and links to artificial intelligence ». In : Computers &
operations research 13.5 (1986), p. 533-549.
[41] David E. GoLDBERG. Genetic Algorithms in Search,
Optimization, and Machine Learning. New York: Addison-Wesley, 1989.
[42] Nir GREsHLER et al. « Cooperative multi-agent path
finding: beyond path planning and collision avoidance ». In: 2021
International Symposium on Multi-Robot and Multi-Agent Systems (MRS).
IEEE. 2021, p. 20-28.
[43] Faiza GuL, Suleman MIR et Imran MIR. « Coordinated
multi-robot exploration: Hybrid stochastic optimization approach ». In :
AIAA SCITECH2022 Forum. 2022, p. 1414.
[44] Yanju Guo, Xianjie LIu et Lei CHEN. « Improved
butterfly optimisation algorithm based on guiding weight and population restart
». In : Journal of Experimental & Theoretical Artificial
Intelligence 33.1 (2021), p. 127-145.
[45] Nikolaus HANsEN, Sibylle MüLLER et Petros
KouMouTsAKos. « Reducing the Time Complexity of the Derandomized Evolution
Strategy with Covariance Matrix Adaptation (CMA-ES) ». In :
Evolutionary computation 11 (fév. 2003), p. 1-18. DoI : 10.
1162/106365603321828970.
[46] Peter E. HART, Nils J. NILssoN et Bertram RAPHAEL.
« A Formal Basis for the Heuristic Determination of Minimum Cost Paths
». In : IEEE Transactions on Systems Science and Cybernetics 4.2
(1968), p. 100-107. DoI : 10.1109/TSSC.1968.300136.
137
Bibliographie
[47] Dirk HOLz et al. « Evaluating the Efficiency of
Frontier-based Exploration Strategies ». In : t. 1. Juill. 2010, p. 1
-8.
[48] Erno HORVATH, Claudiu POzNA et Radu-Emil PRECUP. «
Robot coverage path planning based on iterative structured orientation ».
In : Acta Polytechnica Hungarica 15.2 (2018), p. 231-249.
[49] Luca IOCCHI, Luca MARCHETTI et Daniele NARDI. «
Multi-robot patrolling with coordinated behaviours in realistic environments
». In : 2011 IEEE/RSJ International Conference on Intelligent Robots
and Systems. IEEE. 2011, p. 2796-2801.
[50] Nick JAKOBI, Phil HUSBANDS et Inman HARVEY. « Noise
and the reality gap: The use of simulation in evolutionary robotics ». In
: Advances in Artificial Life: Third European Conference on Artificial Life
Granada, Spain, June 4-6, 1995 Proceedings 3. Springer. 1995, p.
704-720.
[51] Seyed Mohammad Jafar JALALI et al. « Evolving
artificial neural networks using butterfly optimization algorithm for data
classification ». In : International conference on neural information
processing. Springer. 2019, p. 596-607.
[52] Albina KAMALOVA, Ki Dong KIM et Suk Gyu LEE. «
Waypoint Mobile Robot Exploration Based on Biologically Inspired Algorithms
». In : IEEE Access 8 (2020), p. 190342190355.
[53] Albina KAMALOVA et al. « Multi-Robot Exploration
Based on Multi-Objective Grey Wolf Optimizer ». In : Applied Sciences
9 (juill. 2019), p. 2931. DOI : 10 . 3390/ app9142931.
[54] Pierre KANCIR. « Méthodologie de conception
de système multi-robots: De la simulation à la
démonstration ». Thèse de doct. Université de
Bretagne Sud, 2018.
[55] Dervis KARABOGA. « An Idea Based on Honey Bee Swarm
for Numerical Optimization, Technical Report - TR06 ». In : Technical
Report, Erciyes University (jan. 2005).
[56] Géza KATONA, Balázs LÉNART et
János JUHASz. « Parallel ant colony algorithm for shortest path
problem ». In : Periodica Polytechnica Civil Engineering 63.1
(2019), p. 243-254.
[57] Ali KAVEH et Taha BAKHSHPOORI. « Metaheuristics:
outlines, MATLAB codes and examples ». In : (2019).
[58] J. KENNEDY et R. EBERHART. « Particle swarm
optimization ». In : Proceedings of ICNN'95 - International Conference
on Neural Networks. T. 4. 1995, 1942-1948 vol.4. DOI :
10.1109/ICNN.1995.488968.
[59] Scott KIRKPATRICK, C Daniel GELATT JR et Mario P VECCHI.
« Optimization by simulated annealing ». In : science
220.4598 (1983), p. 671-680.
[60] Nathan KOENIG et Andrew HOWARD. « Design and use
paradigms for gazebo, an open-source multi-robot simulator ». In :
2004 IEEE/RSJ International Conference on Intelligent Robots and Systems
(IROS)(IEEE Cat. No. 04CH37566). T. 3. IEEE. 2004, p. 21492154.
[61] Guocheng LI et al. « An improved butterfly
optimization algorithm for engineering design problems using the cross-entropy
method ». In : Symmetry 11.8 (2019), p. 1049.
138
Bibliographie
[62] Matteo LUPERTO et al. « Robot
exploration of indoor environments using incomplete and inaccurate prior
knowledge ». In : Robotics and Autonomous Systems 133 (2020), p.
103622.
[63] Ellips MASEHIAN et MR
AMIN-NASERI. « A voronoi diagram-visibility
graph-potential field compound algorithm for robot path planning ». In :
Journal of Robotic Systems 21.6 (2004), p. 275-300.
[64] Ashkan MEMARI, Robiah AHMAD
et Abd Rahman Abdul RAHIM. « Metaheuristic
algorithms: guidelines for implementation ». In : Journal of Soft
Computing and Decision Support Systems 4.6 (2017), p. 1-6.
[65] PE MERGOS et Anastasios
SEXTOS. Multi-objective optimum selection ofground motion
records with genetic algorithms. IEEE, juin 2018.
[66] Seyedali MIRJALILI, Seyed Mohammad
MIRJALILI et Andrew LEWIS. « Grey Wolf
Optimizer ». In : Advances in Engineering Software 69 (2014), p.
46-61. ISSN : 0965-9978. DOI :
https://doi.org/10.1016/j.advengsoft.2013.12.007.
[67] Himanshu MITTAL et al. «
Gravitational search algorithm: A comprehensive analysis of recent variants
». In : Multimedia Tools and Applications 80 (2021), p.
7581-7608.
[68] Sing Yee NG et Nur Syazreen
AHMAD. « A Bug-Inspired Algorithm for Obstacle Avoidance
of a Nonholonomic Wheeled Mobile Robot with Constraints ». In :
Intelligent Computing. Sous la dir. de Kohei ARAI,
Rahul BHATIA et Supriya KAPOOR. Cham :
Springer International Publishing, 2019, p. 1235-1246.
[69] G PAVAI et TV GEETHA.
« A survey on crossover operators ». In : ACM Computing Surveys
(CSUR) 49.4 (2016), p. 1-43.
[70] Hindriyanto Dwi PURNOMO et Hui-Ming
WEE. « Soccer game optimization with substitute players
». In : Journal of computational and applied mathematics 283
(2015), p. 79-90.
[71] Esmat RASHEDI, Hossein
NEZAMABADI-POUR et Saeid SARYAZDI. «
GSA: a gravitational search algorithm ». In : Information sciences
179.13 (2009), p. 2232-2248.
[72] Eric ROHMER, Surya PN SINGH
et Marc FREESE. « V-REP: A versatile and
scalable robot simulation framework ». In : 2013 IEEE/RSJ
international conference on intelligent robots and systems. IEEE. 2013, p.
1321-1326.
[73] Ali El ROMEH et Seyedali
MIRJALILI. « Multi-Robot Exploration of Unknown Space
Using Combined Meta-Heuristic Salp Swarm Algorithm and Deterministic
Coordinated Multi-Robot Exploration ». In : Sensors 23.4 (2023),
p. 2156.
[74] Sajad SAEEDI et al. « Occupancy
grid map merging for multiple robot simultaneous localization and mapping
». In : International Journal ofRobotics and Automation 30.2
(2015), p. 149-157.
[75] Jeffrey R SAMPSON. Adaptation in
natural and artificial systems (John H. Holland). 1976.
[76] Sushmita SHARMA et al. « MPBOA-A
novel hybrid butterfly optimization algorithm with symbiosis organisms search
for global optimization and image segmentation ». In : Multimedia
Tools and Applications 80.8 (2021), p. 12035-12076.
139
Bibliographie
[77] Zongyuan SHEN, James P. WiLsoN
et Shalabh GUPTA. «
E*+: An Online
Coverage Path Planning Algorithm for Energy-constrained Autonomous Vehicles
». In : Global Oceans2020:Singapore- U.S. GulfCoast. 2020,p. 1-6.
Doi: 10.1109/IEEECONF38699. 2020.9389353.
[78] Rakesh SHREsTHA et al. « Learned
map prediction for enhanced mobile robot exploration ». In : 2019
International Conference on Robotics and Automation (ICRA). IEEE. 2019, p.
1197-1204.
[79] Junnan SoNG et Shalabh
GUPTA. « c*: An Online Coverage Path Planning Algorithm
». In : IEEE Transactions on Robotics 34 (fév. 2018), p.
526-533. Doi: 10.1109/ TRO.2017.2780259.
[80] Rainer SToRN et Kenneth
PRiCE. « Differential evolution-a simple and efficient
heuristic for global optimization over continuous spaces ». In :
Journal of global optimization 11.4 (1997), p. 341.
[81] Daniel Perea STROM, Igor
BoGosLAVsKYi et Cyrill STACHNiss. «
Robust exploration and homing for autonomous robots ». In : Robotics
and Autonomous Systems 90 (2017), p. 125-135.
[82] Lei TAi et Ming LiU.
« A robot exploration strategy based on q-learning network ». In :
2016 IEEE international conference on real-time computing and robotics
(RCAR). IEEE. 2016, p. 57-62.
[83] Mohammad TUBisHAT et al. « Dynamic
butterfly optimization algorithm for feature selection ». In : IEEE
Access 8 (2020), p. 194303-194314.
[84] Zhongmin WANG, Qifang LUo
et Yongquan ZHoU. « Hybrid metaheuristic
algorithm using butterfly and flower pollination base on mutualism mechanism
for global optimization problems ». In : Engineering with Computers
37.4 (2021), p. 3665-3698.
[85] David H WoLPERT et William G
MACREADY. « No free lunch theorems for optimization
». In : IEEE transactions on evolutionary computation 1.1 (1997),
p. 67-82.
[86] Benjie XiAo et al. « Ant colony
optimisation algorithm-based multi-robot exploration ». In :
International Journal of Modelling, Identification and Control 18.1
(2013), p. 41-46.
[87] Lei XiE et al. « Tuna swarm
optimization: a novel swarm-based metaheuristic algorithm for global
optimization ». In : Computational intelligence and Neuroscience
2021 (2021).
[88] Anupam YADAV et al. « AEFA:
Artificial electric field algorithm for global optimization ». In :
Swarm and Evolutionary Computation 48 (2019), p. 93-108.
[89] Brian YAMAUCHi. « A frontier-based
approach for autonomous exploration ». In : Proceedings 1997 IEEE
International Symposium on Computational Intelligence in Robotics and
Automation CIRA'97. 'Towards New Computational Principles for Robotics and
Au-tomation'. 1997, p. 146-151. Doi :
10.1109/CIRA.1997.613851.
[90] Brian YAMAUCHi. « Frontier-based
exploration using multiple robots ». In : jan. 1998, p. 47-53.
isBN : 0-89791-983-1. Doi:
10.1145/280765.280773.
[91] Xin-She YANG. « A new
metaheuristic bat-inspired algorithm ». In : Nature inspired
cooperative strategies for optimization (NICSO 2010) (2010), p. 65-74.
140
Bibliographie
[92] Xin-She YANG. « Flower pollination algorithm for
global optimization ». In : International conference on unconventional
computing and natural computation. Springer. 2012, p. 240-249.
[93] Xin-She YANG. Nature-inspired metaheuristic
algorithms. Luniver press, 2010.
[94] Zuozhong YIN et al. « A Delivery robot cloud
platform based on microservice ». In : Journal of Robotics 2021
(2021), p. 1-10.
[95] Chao Yu et al. « Asynchronous Multi-Agent
Reinforcement Learning for Efficient Real-Time Multi-Robot Cooperative
Exploration ». In : arXiv preprint arXiv:2301.03398 (2023).
[96] Mengjian ZHANG et al. « A Chaotic Hybrid Butterfly
Optimization Algorithm with Particle Swarm Optimization for High-Dimensional
Optimization Problems ». In : Symmetry 12.11 (2020), p. 1800.
[97] Xiangyang ZHI, Xuming HE et Sören SCHWERTFEGER.
« Learning autonomous exploration and mapping with semantic vision ».
In : Proceedings of the 2019 International Conference on Image, Video and
Signal Processing. 2019, p. 8-15.
[98] Yi ZHOu et al. « A PSO-inspired Multi-Robot Map
Exploration Algorithm Using Frontier-Based Strategy ». In :
International Journal of System Dynamics Applications, 2 (avr. 2013),
p. 1-13. DOI : 10.4018/ijsda.2013040101.
[99] Mohammad ZOuNEMAT-KERMANI, Amin MAHDAVI-MEYMAND et
Reinhard HINKELMANN. « Nature-inspired algorithms in sanitary engineering:
modelling sediment transport in sewer pipes ». In : Soft Computing
25.8 (2021), p. 6373-6390.
|