Notes sur les algorithmes génétiques - 1° partie, Notes de Application informatique. Université Vincennes Saint-Denis (Paris VIII)
Francine88
Francine88

Notes sur les algorithmes génétiques - 1° partie, Notes de Application informatique. Université Vincennes Saint-Denis (Paris VIII)

7 pages
482Numéro de visites
Description
Notes d'informatique sur les algorithmes génétiques - 1° partie.Les principaux thèmes abordés sont les suivants:Les algorithmes génétiques (AGs),Leur fonctionnement,John Holland,Définitions,codage et population initiale,...
20 points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 7
Ceci c'est un aperçu avant impression
3 pages affichées sur 7 total
Télécharger le document
Ceci c'est un aperçu avant impression
3 pages affichées sur 7 total
Télécharger le document
Ceci c'est un aperçu avant impression
3 pages affichées sur 7 total
Télécharger le document
Ceci c'est un aperçu avant impression
3 pages affichées sur 7 total
Télécharger le document

Les algorithmes génétiques (AGs) sont des algorithmes d'optimisation stochastiques itérés

fondés sur les mécanismes de la sélection naturelle et de la génétique.

Leur fonctionnement est relativement simple :

1. Nous partons avec une population de solutions potentielles (chromosomes) initiales

arbitrairement choisies

2. Nous évaluons leur performance (fitness) relative

3. Sur la base de ces performances, nous créons une nouvelle population de solutions

potentielles en utilisant des opérateurs évolutionnaires simples : la sélection, le croisement et la

mutation.

4. Nous recommençons ce cycle jusqu'à ce que nous trouvions une solution satisfaisante.

Les AGs ont été initialement développés par John Holland (1975). C'est au livre de Goldberg

(1989) que nous devons leur popularisation. Leurs champs d'application sont très vastes. Outre

l'économie (minimisation du risque des portefeuilles), ils sont utilisés pour l'optimisation de

fonctions, en finance, en théorie du contrôle optimal (recherche opérationnelle), ou encore en

théorie des jeux répétés et différentiels (en l'occurence dans les jeux évolutionnaires et le

dilemme du prisonnier) et la recherche d'information (Google) ainsi que la recherche des plus

courts chemins en théorie des graphes (routages Internet ou GPS). La raison de ce grand

nombre d'applications est claire : simplicité et efficacité. Bien sûr, d'autres techniques

d'exploration stochastiques existent, la méthode de Monte-Carlo peut-être considéré comme

un concept similaire.

Pour résumer, Lerman et Ngouent (1995) distinguent quatre principales propriétés qui font la

différence fondamentale entre ces algorithmes et les autres méthodes :

P1. Les algorithmes génétiques utilisent un codage des paramètres, et non les paramètres eux-

mêmes.

P2. Les algorithmes génétiques travaillent sur une population de points, au lieu d'un point

unique.

P3. Les algorithmes génétiques n'utilisent que les valeurs de la fonction étudiée, pas sa dérivée,

ou une autre connaissance auxiliaire.

P4. Les algorithmes utilisent des règles de transition probabilistes, et non déterministes.

La simplicité de leurs mécanismes, la facilité de leur mise en application et leur efficacité même

pour des problèmes complexes ont conduit à un nombre croissants de travaux ces dernières

années.

Définitions:

D1. Un "algorithme génétique" est défini par un individu/chromosome/séquence et une

solution potentielle au problème donné.

D2. Une "population" est un ensemble de chromosomes ou de points de l'espace de recherche

D3. "L'environnement" est assimilé à l'espace de recherche

D4. La fonction que nous cherchons à optimiser est appelée "fonction de fitness"

Avant d'aller plus loin, il faut définir de manière plus formelle les concepts précédents (mais

sous l'hypothèse particulière ! de codage binaire).

Définition: Les organismes en compétitions sont appelées "individus". Soit un alphabet ,

nous supposerons que chaque individu peut être représenté par un mot de longueur fixe l pris

dans . Le mot A associé à un individu de la population sera appelé "chromosome" ou

"séquence" (le terme n'est pas tout à fait équivalent à son homonyme biologique, cependant

c'est une pratique courant que d'utiliser ce terme ici aussi) et donné donc par A de longueur l(A)

avec (cause : hypothèse du codage binaire).

Dans la mesure où il n'y aura pas de risque de confusion, nous identifierons les termes

individus et chromosome.

Les individus forment une population P de taille N, notée :

(57.104)

Nous allons faire une autre assertion importante, c'est-à-dire, qu'il existe une fonction f d'une

séquence à valeurs positives que nous noterons , dite "fonction de fitness" qui à

tout associe un réel tel que :

(57.105)

si et seulement si est mieux adapté au milieu que .

Remarquons que le terme "adapté" n'est pas défini. Pour cela, il faudrait caractériser le milieu

dans lequel évoluent les individus, ce que nous ne ferons pas. En fait, puisque nous supposons

l'existence d'une telle fonction et que nous posons l'équivalence avec le degré d'adaptation,

celui-ci est automatiquement défini par la donnée de f.

Nous nommerons "génération" une population à un instant t, ce qu'il faut mettre en relation

avec la notion de durée de vie ou d'âge. Cependant, nous nous placerons ici dans le cas

particulier où chaque individu a une durée de vie égale à 1, donc la génération (t+1) est

constituée d'individus différents de la génération t, nous les appellerons les "descendants".

Réciproquement, les individus de la génération t seront les "ancêtres" des individus de la

génération (t+1). Nous désignerons la génération t par P(t) soit la population à l'instant t.

Ainsi, un chromosome est vu comme une suite de bits en codage binaire appelé aussi "chaîne

binaire". Dans le cas d'un codage non binaire, tel que le codage réel par exemple, alors la

suite A ne contient qu'un point, nous avons avec

Remarque: La fitness (efficacité) est donc donnée par une fonction à valeurs positives réelles.

Dans le cas d'un codage binaire, nous utiliserons souvent une fonction de décodage d qui

permettra de passer d'une chaîne binaire à un chiffre à valeur réelle :

(57.106)

La fonction de fitness est alors choisie telle qu'elle transforme cette valeur en valeur positive soit

:

(57.107)

Le but d'un algorithme génétique est alors simplement de trouver la chaîne qui maximise cette

fonction f. Bien évidemment, chaque problème particulier nécessitera ses propres

fonctions d et f.

Les AGs sont alors basés sur les phases suivantes :

1. Initialisation : une population initiale de N chromosomes est tirée aléatoirement

2. Évaluation : chaque chromosome est décodé puis évalué

3. Sélection : création d'une nouvelle population de N chromosomes par l'utilisation d'une

méthode de sélection appropriée.

4. Reproduction : possibilité de croisement et mutation au sein de la nouvelle population

5. Retour à la phase d'évaluation jusqu'à l'arrêt de l'algorithme

CODAGE ET POPULATION INITIALE Il existerait trois principaux type de codage : (1) Binaire, (2) Gray, (3) Réel. Nous pouvons

facilement passer d'un codage à l'autre. Certains auteurs n'hésitent pas, par ailleurs, à faire le

parallèle avec la biologie en parlent de génotype (cf. chapitre de Dynamique Des Populations)

en ce qui concerne la représentation binaire d'un individu, et de phénotype (cf. chapitre de

Dynamique Des Populations) pour ce est de sa valeur réelle correspondante dans l'espace de

recherche.

Rappelons que la transformation la plus simple (fonction de décodage d) d'une chaîne

binaire A en nombre entierx s'opère par la règle suivante (cf. chapitre sur les Nombres) :

(57.108)

Ainsi le chromosome vaut trivialement :

(57.109)

Evidemment, la fonction d sera modifiée (par tâtonnements!) selon le problème. Ainsi, si nous

cherchons à maximiser une fonction une méthode possible serait la suivante

(la taille du chromosome dépendant bien évidemment de la précision voulue) :

(57.110)

ce qui peut s'assimiler à une série harmonique. Pour une précision au cinquième chiffre après la

virgule nous imposerons puisque :

(57.111)

Une autre façon de faire serait de choisir d telle que :

(57.112)

Petite explication :

(57.113)

Posons :

(57.114)

Ainsi, avec nous avons et :

(57.115)

La précision demandée y étant toujours vérifiée puisque :

(57.116)

Cette dernière règle peut se généraliser. Ainsi, admettons que nous cherchons à maximiser

(normaliser serait un terme peut-être plus correct) f en fonction d'une variable réelle x.

Soit , avec , l'espace de recherche permis avec et les bornes

inférieures et supérieures. Soit prec la précision (chiffre après la virgule) avec laquelle nous

cherchons x. Soit la longueur de l'intervalle D. Nous devons alors diviser cet

intervalle au pire en :

(57.117)

sous-intervalles égaux afin de respecter la précision. Par exemple, soit nous avons

donc si nous voulions une précision , alors il nous faut diviser cet intervalle

en sous intervalles.

Avec s l'entier naturel tel que (dans notre

exemple, car ), la transformation d'une

chaîne binaire en un nombre réel x peut alors s'exécuter en trois étapes :

1. Conversion (base 2 en base 10) :

(57.118)

2. Normalisation :

(57.119)

3. Maximisation :

(57.120)

ou ce qui revient au même directement en une seule étape par :

(57.121)

Ainsi pour , et nous retrouvons bien :

(57.122)

Pour ce qui est de la phase d'initialisation, la procédure est assez simple. Elle consiste en un

tirage aléatoire de Nindividus dans l'espace des individus permis. En codage binaire, selon la

taille l de la chaîne, nous effectuons pour un chromosome l tirages dans avec

équiprobabilité.

LES OPÉRATEURS

Les opérateurs jouent un rôle prépondérant dans la possible réussite d'un AG. Nous en

dénombrons trois principaux : l'opérateur de sélection, de croisement et de mutation. Si le

principe de chacun de ces opérateurs est facilement compréhensible, il est toutefois difficile

d'expliquer l'importance isolée de chacun de ces opérateurs dans la réussite de l'AG. Cela tient

pour partie au fait que chacun de ces opérateurs agit selon divers critères qui lui sont propres

(valeur sélective des individus, probabilité d'activation de l'opérateur, etc.).

OPÉRATEUR DE SÉLECTION

Cet opérateur est peut-être le plus important puisqu'il permet aux individus d'une population

de survivre, de se reproduire ou de mourir. En règle générale, la probabilité de survie d'un

individu sera directement reliée à son efficacité relative au sein de la population.

Il existe plusieurs méthodes pour la reproduction .La méthode la plus connue et utilisée est

sans nul doute, la roue de loterie biaisée (roulette wheel) de Goldberg (1989). Selon cette

méthode, chaque chromosome sera dupliqué dans une nouvelle population

proportionnellement à sa valeur d'adaptation. Nous effectuons, en quelque sorte, autant de

tirages avec remises qu'il y a d'éléments dans la population. Ainsi, dans le cas d'un codage

binaire, la fitness d'un chromosome particulier étant f(d(A)), la probabilité avec laquelle il sera

réintroduit dans la nouvelle population de taille N est:

(57.123)

Les individus ayant une grande fitness ont donc plus de chance d'être sélectionnées. Nous

parlons alors de "sélection proportionnelle".

L'inconvénient majeur de cette méthode repose sur le fait qu'un individu n'état pas le meilleur

pourrait tout de même dominer la sélection (imaginez la recherche du maxima d'une fonction

dans , il peut y en a avoir plusieurs - de maxima - et donc mauvaise sélection...), nous

parlerons alors à juste titre de "convergence prématurée" et c'est l'un des problèmes les plus

fréquents lors de l'utilisation des algorithmes génétiques. Elle peut aussi donc engendrer une

perte de diversité par la domination d'un super individu. Un autre inconvénient est sa faible

performance vers la fin quand l'ensemble des individus se ressemblent.

Une solution à ce problème ne tient pas dans l'utilisation d'une autre méthode de sélection mais

dans l'utilisation d'une fonction de fitness modifiée. Ainsi, nous pouvons utiliser un

changement d'échelle (scaling) afin de diminuer ou accroître de manière artificielle l'écart relatif

entre les fitness des individus.

Brièvement, il existe d'autres méthodes, la plus connue étant celle du tournoi (tournament

selection) : nous tirons deux individus aléatoirement dans la population et nous reproduisons le

meilleur des deux dans la nouvelle population. Nous refaisons cette procédure jusqu'à ce que la

nouvelle population soit complète. Cette méthode donne de bons résultats. Toutefois, aussi

important que soit la phase de sélection, elle ne crée pas de nouveau individus dans la

population. Ceci est le rôle des opérateurs de croisement et de mutation.

OPÉRATEUR DE CROISEMENT

L'opérateur de croisement permet la création de nouveaux individus selon un processus fort

simple. Il permet donc l'échange d'information entre les chromosomes (individus). Tout

d'abord, deux individus, qui forment alors un couple, sont tirés au sein de la nouvelle

population issue de la reproduction. Puis un (potentiellement plusieurs) site de croisement est

tiré aléatoirement (chiffre entre 1 et l-1). Enfin, selon une probabilité que le croisement

s'effectue, les segments finaux (dans le cas d'un seul site de croisement) des deux parents sont

alors échangés autour de ce site :

Aucun commentaire n'a été pas fait
Ceci c'est un aperçu avant impression
3 pages affichées sur 7 total
Télécharger le document