• Aucun résultat trouvé

Améliorations proposées par la communauté

Dans le document The DART-Europe E-theses Portal (Page 79-82)

3.3.1 Initialisation contextuelle

L'initialisation contextuelle d'un algorithme génétique (plus connue sous le nom de case-based initialization) consiste à initialiser la population de départ à l'aide de résultats obtenus aupara-vant. Le principe consiste à enregistrer les meilleurs résultats et de leur associer des informations caractérisant la situation dans laquelle ils ont bien fonctionné. Par la suite, il est possible de sélectionner un ensemble de génomes qui sont susceptibles d'être intéressants pour une nouvelle instance du problème. Cette sélection se faisant en fonction du contexte de la nouvelle instance.

Ce principe provient d'un rapprochement des algorithmes génétiques avec des concepts tirés du raisonnement par cas (case-based reasonning), dont Aamodt et Plaza ont proposé un intéres-sant survol en 1994 [1]. Le principe consiste à dire qu'une solution adaptée dans un contexte peut être intéressante aussi dans des contextes similaires. On entend par contexte d'une évaluation une caractérisation de l'environnement dans lequel se déroule cette évaluation. Par exemple, dans le cadre du dessin de graphe, le contexte correspond au graphe qui est dessiné. L'idée revient alors à dire que des paramètres permettant de bien dessiner un graphe permettront probable-ment d'obtenir de bon résultats pour des graphes similaires.De ce fait, il est possible d'utiliser ce principe lors de la génération de la première initiale d'un AG. C'est l'idée proposée par Ramsey et Grefenstette en 1993 [80]. Cette idée sera par la suite reprise et améliorée par Louis et al., qui proposeront d'abord une application concrète du principe en 1997 [61] puis une généralisation en

permettant l'injection d'anciens résultats au fur et à mesure de l'algorithme génétique en 2004 [62].

Ce principe a aussi mené à une réexion sur l'hybridation des populations. En eet, injecter ainsi des génomes venant d'autres exécutions peut parfois aboutir à des résultats décevants, car les nouveaux génomes ainsi injectés sont trop diérents pour fonctionner correctement avec ceux déjà présents. Il est donc nécessaire de contrôler ces mélanges an de ne pas casser la dynamique d'exploration de l'AG. Par exemple, il est intéressant que les génomes injectés aient été obtenus après un temps de calcul similaire à celui de l'AG courant. Plus simplement, lors d'une injec-tion qui se déroule après la 10e génération de l'AG, il est déconseillé d'injecter des génomes obtenus après 100000 générations. Cela permet d'éviter d'injecter des génomes trop spécialisés dès le début, ce qui provoquerait une convergence prématurée vers ces derniers. Ces idées ont été développées plus en détail dans un article de Ashlock et al. en 2008 [5]. Le principe pro-posé consiste à injecter régulièrement des génomes obtenus précédement dans l'algorithme, tout en veillant à ce que la complexité des génomes injectés soit cohérente avec l'état courant de l'AG.

Des problématiques similaires avaient été approchées auparavant dans le cadre des algo-rithmes génétiques en îles dans lesquels plusieurs sous population servent de base à l'algorithme génétique et s'échangent des individus ponctuellement. La question a été abordée plus en détail dans le papier de Whitley et al. en 1997 [96].

Il est intéressant de noter que l'ensemble des idées de cette partie sont presque directement issues de l'observation du comportement des algorithmes génétiques naturels, dans lesquels la taille de la population et le fait de mélanger des populations indépendantes permet d'obtenir des résultats très intéressants (et généralement une spéciation plus forte et plus rapide).

3.3.2 Dispersion contrôlée de la population

Une des grandes problématiques des algorithmes génétiques concerne la convergence de la population, et en particulier une convergence prématurée. Lors d'une convergence extrême, l'ensemble des génomes d'une population sont identique et de ce fait, les croisements n'ont plus aucun eet. Cela peut se produire très rapidement lorsque la sélection est très stricte (par exem-ple en ne sélectionnant que les 5 meilleurs génomes) et que les mutations sont trop peu courantes ou trop faibles. Ce type d'AG se bloque alors très facilement dans des maximums locaux. C'est une problématique au centre de nombreux papier sur le domaine [3, 97, 67].

Une des solutions consiste à maintenir une répartition uniforme des tness dans la popu-lation. Pour cela, lorsqu'un nouveau génome est évalué, il n'est ajouté à la population qu'en remplacement de celui qui a obtenu le score le plus proche de lui (et de préférence un score in-férieur). Cela permet d'empêcher strictement toute convergence trop forte de la population. Une limite de cette approche concerne le fait que deux génomes qui obtiennent exactement le même score peuvent quand même être très diérents. De ce fait, en empêchant toute convergence, cette méthode limite aussi d'une certaine manière la diversité de la population.

Cette idée s'inspire du principe de crowding [36], qu'il étend en se focalisant sur la sélection et la suppression de génomes qu'ils adaptent an de toujours préserver une bonne diversité.

3.3.3 Algorithmes génétiques interactifs

Une évolution importante des AG a été l'ajout d'une composante interactive dans leur com-portement. Cela se fait en général en demandant à l'utilisateur de réaliser lui-même l'évaluation des diérents candidats. Ce changement ouvre de nombreuses possibilités autant au niveau de l'ecacité de l'exploration que de la variété des espaces qu'il est possible d'explorer [95, 88]. En eet, l'être humain est capable d'évaluer relativement facilement toute sorte de candidats pour lesquels il serait dicile de réaliser une évaluation automatique. De plus, il se révèle particulière-ment doué pour déterminer des objectifs intermédiaires intéressants et permettant d'avancer rapidement vers un résultat nal [98].

Le domaine pour lequel ces AG ont été les plus utilisés est sûrement l'aide à la créativité.

Que ce soit dans un cadre strictement informatique, avec l'assistance à la réalisation d'interface graphique [64], ou des domaines plus liés à la vie réelle, comme la mode [54]. Les algorithmes génétiques sont en eet relativement ecaces pour générer des idées de design en grand nombre. Ces dernières sont ensuite sélectionnées par l'utilisateur qui peut par là même orienter la suite de l'exploration.

Une autre utilisation des algorithmes génétiques a été la recherche d'images ou d'éléments qu'il est dicile d'indexer textuellement. Un article publié par Cho et Lee en 2002 [19] propose un système de recherche d'images au sein d'une base de données à l'aide d'un AG interactif. De manière analogue, le système PicBreeder [84], proposé par Secretan et al., permet quant à lui de générer des images en utilisant un type d'algorithmes diérents des AG (NEAT, un réseau de neurones évolutif), mais qui s'appuie sur le même type d'interaction que le ferait un AG.

Plusieurs autres systèmes interactifs dédiés spéciquement au dessin de graphes seront présen-tés dans le chapitre suivant. Cependant, tous les systèmes interactifs partagent une même con-trainte : la fatigue de l'utilisateur. En eet, les êtres humains sont relativement limités en termes de temps et de concentration qu'ils peuvent dédier à une tâche d'évaluation (en opposition avec une machine qui peut à priori le faire indéniment). Or dans le cadre d'un algorithme génétique, le nombre d'évaluations devant être réalisées est très important (il peut atteindre plusieurs millions dans certains cas). Le nombre d'évaluation nécessaires étant obtenu en multipliant simplement le nombre de générations par la taille de la population principale. Il est donc vital d'adapter les AG à cette contrainte humaine. La première solution consiste à limiter fortement le nombre d'é-valuations en réduisant la taille de la population et le nombre de générations, mais cela impacte fortement la part de l'espace explorée. Une autre possibilité consiste à demander à l'utilisateur d'évaluer d'un petit échantillon des candidats et en utilisant une évaluation automatique pour les autres.

3.3.4 La curiosité

La curiosité est dans la nature un des moteurs les plus forts de l'apprentissage. L'identication et l'exploration volontaire de situations inconnues permet d'accélérer énormément la découverte d'un domaine. C'est en grande partie autour de ce principe que s'est basé le travail de Stan-ley et Lehman [60, 59, 58]. Le principe de leur idée consiste à évaluer les nouveaux candidats d'un système évolutif en fonction de la nouveauté qu'ils apportent au système. Cela mène à l'apparition de comportements complexes qui permettent généralement d'aboutir à des solutions intéressantes.

D'une autre manière, Goldberg a initialement donné une très forte importance à l'exploration de nouvelles solutions dans sa description initiale des algorithmes génétiques. Il dénit en eet un opérateur de croisement bien plus complexe que celui généralement considéré. Son idée de base était en eet de construire progressivement des groupes de gènes fonctionnant ecacement ensemble. L'objectif de l'opérateur de croisement étant alors de préserver ces groupes tout en essayant progressivement d'en faire apparaître de plus complexes. Toutefois, cette idée n'a pas été retenue dans l'archétype des algorithmes génétiques à cause des problèmes de mises en ÷uvre qu'elle soulève et de la complexité du processus de sélection.

Ces deux manières de simuler une curiosité , bien que très diérente dans leur modalité d'application tente d'atteindre un même but qui est la lutte pour un maintien d'une diversité optimale tout en explorant régulièrement de nouvelles zones de l'espace. Cette idée à eu un rôle central dans la structuration du système que nous avons mis en place.

Dans le document The DART-Europe E-theses Portal (Page 79-82)