12
Tutoriel Algorithmes génétiques Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter Emploi Contacts http://khayyam.developpez.com/articles/algo/genetic/ (1 sur 12)19/07/2010 23:38:19 ACCUEIL ALGO COURS ALGO FAQ ALGO FORUM ALGO LIVRES ALGO SOURCES ALGO Les algorithmes génétiques Date de publication : 25/08/2005 Par khayyam90 (mon site perso) Ce tutoriel montre comment fonctionne un algorithme génétique général. Il a été écrit dans le but d'être accessible à tous les programmeurs, amateurs ou confirmés. Il ne sera donc fait mention d'aucune particularité liée à un langage de programmation ou à un autre. Accueil Conception Java .NET Dév. Web EDI Langages SGBD Office Solutions d'entreprise Applications Systèmes

Tutoriel Algorithmes génétiques

Embed Size (px)

Citation preview

Tutoriel Algorithmes gntiques

Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter Emploi Contacts

q

Accueil

q

Conception

q

Java

q

.NET

q

Dv. Web

q

EDI

q

Langages

q

SGBD

q

Office

q

Solutions d'entreprise

q

Applications

q

Systmes

ACCUEIL ALGO COURS ALGO FAQ ALGO FORUM ALGO LIVRES ALGO SOURCES ALGO

Les algorithmes gntiquesDate de publication : 25/08/2005

Par khayyam90 (mon site perso)

Ce tutoriel montre comment fonctionne un algorithme gntique gnral. Il a t crit dans le but d'tre accessible tous les programmeurs, amateurs ou confirms. Il ne sera donc fait mention d'aucune particularit lie un langage de programmation ou un autre.http://khayyam.developpez.com/articles/algo/genetic/ (1 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Introduction 1. La cration de la population initiale1.1. Et le hasard dans tout a ? 1.2. La taille de la population manipuler

2. L'valuation des individus2.1. Deux mthodes d'valuation d'individus en contexte multi-critres

3. La cration de nouveaux individus3.1. La slection 3.1.1. 3.1.2. 3.1.3. 3.1.4. La roulette La slection par rang La slection par tournoi L'litisme

3.2. Les croisements 3.2.1. Les croisements multi-points 3.3. Les mutations

4. L'insertion des nouveaux individus dans la population4.1. Comment choisir le nombre N d'individus conserver ? 4.2. Et on passe la gnration suivante

5. Ritration du processus 6. Conclusion Liens Remerciements

IntroductionParmi tous les types d'algorithmes existants, certains ont la particularit de s'inspirer de l'volution des espces dans leur cadre naturel. Ce sont les algorithmes gntiques. Les espces s'adaptent leur cadre de vie qui peut voluer, les individus de chaque espce se reproduisent, crant ainsi de nouveaux individus, certains subissent des modifications de leur ADN, certains disparaissent .... Un algorithme gntique va reproduire ce modle d'volution dans le but de trouver des solutions pour un problme donn. Il sera fait usage dans ce cours de termes emprunts au monde des biologistes et des gnticiens et ceci afin de mieux reprsenter chacun des concepts abords :http://khayyam.developpez.com/articles/algo/genetic/ (2 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiquesq q q q

Dans notre cas, une population sera un ensemble d'individus. Un individu sera une rponse un problme donn, qu'elle soit ou non une solution valide du problme. Un gne sera une partie d'une rponse au problme, donc d'un individu. Une gnration est une itration de notre algorithme.

Un algorithme gntique va faire voluer une population dans le but d'en amliorer les individus. Et c'est donc, chaque gnration, un ensemble d'individus qui sera mis en avant et non un individu particulier. Nous obtiendrons donc un ensemble de solutions pour un problme et pas une solution unique. Les solutions trouves seront gnralement diffrentes, mais seront d'une qualit quivalente. Nous reviendrons sur cette notion de qualit des solutions dans la partie 2. Le droulement d'un algorithme gntique peut tre dcoup en cinq parties : 1. 2. 3. 4. 5. La cration de la population initiale L'valuation des individus La cration de nouveaux individus L'insertion des nouveaux individus dans la population Ritration du processus

Pour illustrer ce tutoriel, je montrerai comment appliquer un algorithme gntique au problme bien connu de "l'informaticien en vacances", inspir du problme du voyageur de commerce. L'informaticien en vacances doit visiter plusieurs villes durant ses vacances : { A,B,C,D,E,F,G,H,I,J }. Il cherche donc le chemin le plus court pour passer par chacune d'elles. Il souhaite galement assister un maximum de festivals musicaux (ayant lieu dans les villes A,B et C). Il s'agit donc d'un problme bi-critres (la distance entre les villes minimiser et le nombre de festivals auxquels il pourra assister maximiser). Chaque festival a lieu une date donne. Nous connaissons aussi les distances entre toutes les villes.

1. La cration de la population initialePour dmarrer un algorithme gntique, il faut lui fournir une population faire voluer. La manire dont le programmeur va crer chacun des individus de cette population est entirement libre. Il suffit que tous les individus crs soient de la forme d'une solution potentielle, et il n'est nullement besoin de songer crer des bons individus. Ils doivent juste fournir une rponse, mme mauvaise, au problme pos. Par exemple, si vous cherchez un chemin entre 2 points, les individus crs devront simplement possder le bon point de dpart et le bon point d'arrive, peu importe par o ils passent. De mme si vous cherchez des solutions pour un jeu d'checs, il suffira que les individus crs possdent des mouvements autoriss sur des pices existantes. Mme si les individus crs n'ont aucune chance d'tre des solutions acceptables pour le problme pos, ils peuvent en avoir la forme. Il n'y a donc aucune objection les mettre dans la population initiale.

1.1. Et le hasard dans tout a ?Il est tout fait possible de crer les individus de manire alatoire. Et cette mthode amne un concept trs utile dans les algorithmes gntiques : la diversit. Plus les individus de la population de dpart seront diffrents les uns des autres, plus nous aurons de chance d'y trouver, non pas la solution parfaite, mais de quoi fabriquer les meilleures solutions possibles.http://khayyam.developpez.com/articles/algo/genetic/ (3 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Problme de l'informaticien en vacances Nous n'allons pas parcourir tous les chemins possibles, il y en aurait trop. Nous crons une population d'individus au hasard : par exemple {A,B,C,D,E,F,G,H,I,J}, {D,A,F,J,C,E,G,H,B,I}, {J,A,H,F,D,C,I,G,E,B} ou encore {J,F,A,C,B,E,I,H,G,D}. Une population intressante pourrait tre de taille 100, l'essentiel tant que les individus contiennent toutes les villes une et une seule fois, et qu'ils soient relativement diffrents les uns des autres.

1.2. La taille de la population manipulerLa taille de la population initiale est galement laisse l'apprciation du programmeur. Il n'est souvent pas ncessaire d'utiliser des populations dmesures. Une taille de 100 ou 150 individus s'avrera souvent amplement suffisante, tant pour la qualit des solutions trouves que pour le temps d'excution de notre algorithme. Evidemment, ce n'est qu'un ordre de grandeur. Ensuite, libre vous de modifier la taille de la population initiale en fonction du problme rsoudre si les solutions trouves ne vous conviennent pas

2. L'valuation des individusUne fois que la population initiale a t cre, nous allons en sortir les individus les plus prometteurs, ceux qui vont participer l'amlioration de notre population. Nous allons donc attribuer une 'note' ou un indice de qualit chacun de nos individus. La mthode d'valuation des individus est laisse au programmeur en fonction du problme qu'il a optimiser ou rsoudre. Cette tape intermdiaire d'valuation peut mme devenir une tape importante du processus d'amlioration de notre population. En effet, les diffrents individus ne sont pas toujours comparables, il n'est pas toujours possible de dire qu'un individu est meilleur ou moins bon qu'un autre. C'est le cas des problmes multi-critres, lorsqu'une solution dpend de plusieurs paramtres. Vous pourrez toujours dire qu'un nombre est suprieur ou non un autre, mais vous ne pourrez pas dire si un vecteur est suprieur ou non un autre. La notion de supriorit pour les vecteurs n'existe pas. Vous pouvez comparer leur norme, mais pas les vecteurs eux-mmes. Par exemple si vous souhaitez diminuer un cot de production et un temps de production ; ces deux facteurs ne vont pas forcment de pair et un individu pourra tre trs bon sur un critre et trs mauvais sur un autre. Le recours l'optimisation d'un problme multi-critres empche de privilgier un critre par rapport un autre, sans quoi on pourrait tout de suite rcrire le problme pour ne chercher optimiser que le cot de production sans tenir compte du temps de production. On se ramnerait ainsi des individus ne dpendant plus que d'un seul critre, ils seraient donc tous comparables. Oui, mais si on ne peut pas privilgier un critre par rapport un autre, comment comparer deux individus, puisqu'on ne peut pas, a priori, comparer deux vecteurs ? Libre vous d'implmenter votre propre mthode d'valuation des individus. Si vous n'tes pas inspirs, je vous en prsente deux. Il en existe une foultitude d'autres et il ne tient qu' vous de crer la vtre, en fonction du problme que vous avez rsoudre.

2.1. Deux mthodes d'valuation d'individus en contexte multi-critresLes mthodes que je vous prsente utilisent abondamment la notion de dominance d'individu. On dit qu'un individu en domine un autre s'il est meilleur dans chacun des critres, pris sparment.

http://khayyam.developpez.com/articles/algo/genetic/ (4 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Attention : pour chaque couple d'individus, il n'y en a pas forcment un qui domine l'autre.

Problme de l'informaticien en vacances L'valuation du critre relatif la distance parcourue est simplement la somme de toutes les distances parcourues. Et l'valuation du critre relatif au nombre de festivals est simplement le nombre de festivals auxquels l'informaticien a pu assister (0,1,2 ou 3). Une solution amenant {50 km, 2 festivals} dominera une solution {60 km, 1 festivals}, mais ne dominera pas une solution {40 km, 1 festival} car elle n'est pas meilleure sur tous les critres. Mthode 1 : le rang d'un individu est le nombre d'individus qui le dominent + 1. Les meilleurs individus au sens de cette premire mthode sont ceux de rang le plus faible. Inconvnient: plusieurs individus peuvent avoir le mme rang, tout en tant trs diffrents. Mthode 2 : le rang d'un individu est l'indice de la population dans laquelle il a t remarqu comme n'tant domin par aucun autre individu. J'explique. De votre ensemble d'individus, vous sortez ceux qui ne sont domins par aucun autre individu, et vous leur attribuez le rang 1. Sur les individus qui ne sont pas sortis du lot, vous recommencez l'opration, en cherchant ceux qui ne sont domins par aucun des individus restants et vous leur attribuez le rang 2 et ainsi de suite jusqu' puisement de la population. Les individus jugs les meilleurs sont ceux de rang le plus faible. Vous trouverez de plus amples informations sur les mthodes d'valuation en contexte multi-critres dans les documentations des algorithmes NDS et NSGA dont sont tires les mthodes ci dessus. L'tape d'valuation des individus peut tre effectue avant et/ou aprs les tapes de croisement et de mutation expliques plus loin. Une fois encore, le programmeur est libre d'implmenter cette mthode comme bon lui semble.

3. La cration de nouveaux individus3.1. La slectionNous allons maintenant enrichir notre population en croisant des individus. Nous allons essayer de prendre des morceaux de solution de certains individus et d'autres morceaux d'autres individus pour crer de nouveaux individus qui, on l'espre, seront de meilleures solutions notre problme. Il est tout fait possible de choisir des individus au hasard et de les mlanger alatoirement pour crer de nouveaux individus. Je vais dtailler ici quelques unes de mthodes de slections souvent utilises : la roulette, la slection par rang, la slection par tournoi et l'litisme.

3.1.1. La roulette

http://khayyam.developpez.com/articles/algo/genetic/ (5 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

La slection des individus par le systme de la roulette s'inspire des roues de loterie. A chacun des individus de la population est associ un secteur d'une roue. L'angle du secteur tant proportionnel la qualit de l'individu qu'il reprsente. Vous tournez la roue et vous obtenez un individu. Les tirages des individus sont ainsi pondrs par leur qualit. Et presque logiquement, les meilleurs individus ont plus de chance d'tre croiss et de participer l'amlioration de notre population.

Schma d'une roulette

3.1.2. La slection par rang La slection par rang est une variante du systme de roulette. Il s'agit galement d'implmenter une roulette, mais cette fois ci les secteurs de la roue ne sont plus proportionnels la qualit des individus, mais leur rang dans la population trie en fonction de la qualit des individus. D'une manire plus parlante, il faut trier la population en fonction de la qualit des individus puis leur attribuer chacun un rang. Les individus de moins bonne qualit obtiennent un rang faible ( partir de 1). Et ainsi en itrant sur chaque individu on finit par attribuer le rang N au meilleur individu (o N est la taille de la population). La suite de la mthode consiste uniquement en l'implmentation d'une roulette base sur les rangs des individus. L'angle de chaque secteur de la roue sera proportionnel au rang de l'individu qu'il reprsente.

3.1.3. La slection par tournoi Le principe de la slection par tournoi augmente les chances pour les individus de pitre qualit de participer l'amlioration de la population. Le principe est trs rapide implmenter. Un tournoi consiste en une rencontre entre plusieurs individus pris au hasard dans lahttp://khayyam.developpez.com/articles/algo/genetic/ (6 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

population. Le vainqueur du tournoi est l'individu de meilleure qualit. Vous pouvez choisir de ne conserver que le vainqueur comme vous pouvez choisir de conserver les 2 meilleurs individus ou les 3 meilleurs. A vous de voir, selon que vous souhaitez crer beaucoup de tournois, ou bien crer des tournois avec beaucoup de participants ou bien mettre en avant ceux qui gagnent les tournois haut la main. Vous pouvez faire participer un mme individu plusieurs tournois. Une fois de plus, vous tes totalement libre quant la manire d'implmenter cette technique de slection.

3.1.4. L'litisme Cette mthode de slection permet de mettre en avant les meilleurs individus de la population. Ce sont donc les individus les plus prometteurs qui vont participer l'amlioration de notre population. Cette mthode a l'avantage de permettre une convergence (plus) rapide des solutions, mais au dtriment de la diversit des individus. On prend en effet le risque d'carter des individus de pitre qualit, mais qui auraient pu apporter de quoi crer de trs bonnes solutions dans les gnrations suivantes. Cette mthode est extrmement sensible la prsence d'optimas locaux, c'est dire la prsence de solutions paraissant optimales tant que l'on ne s'en loigne pas trop le vritable optimum pouvant alors tre situ dans une toute autre partie du domaine de recherche. Une autre possibilit relevant aussi du domaine de l'litisme, pour s'assurer que les meilleurs individus feront effectivement partie de la prochaine gnration, est tout simplement de les sauvegarder pour pouvoir les rajouter coup sr dans la population suivante (en tape 4). Le nombre d'individus que vous allez slectionner en vue d'un croisement ou d'une mutation est encore une fois laiss votre apprciation. Pensez juste qu'il n'est pas ncessaire (et pas recommand non plus) de modifier tous les individus d'une population. Les mthodes de slection permettent de dterminer quels individus nous allons croiser. Reste maintenant dfinir comment nous allons les croiser.

3.2. Les croisementsLes croisements permettent de simuler des reproductions d'individus dans le but d'en crer de nouveaux. Il est tout fait possible de faire des croisements alatoires. Toutefois, une solution largement utilise est d'effectuer des croisements multi-points.

3.2.1. Les croisements multi-points Il faut dcouper en N morceaux (2 ou 3 peuvent suffire) chacun des individus choisis, puis il faut prendre un gne de chaque individu pour crer un nouvel individu.

Notez qu'il est possible de crer ainsi plusieurs individus : si un gne d'un individu ne sert pas la cration d'un individu, il peut servir la cration d'un autre.

Donc en prenant X individus croiser, vous pouvez potentiellement obtenir X nouveaux individus. Mais rien ne vous empche d'utiliser plusieurs fois certains gnes, pour obtenir plus de X nouveaux individus. Notez aussi qu'il n'est pas ncessaire et surtout pas recommand de croiser tous les individus d'une population, car rien ne nous dit si le rsultat d'un croisement sera meilleur ou moins bon que les individus parents.http://khayyam.developpez.com/articles/algo/genetic/ (7 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Individus parents Gne1 Gne1 Gne1 Gne2 Gne2 Gne2 Gne3 Gne3 Gne3 Gne4 Gne4 Gne4

Individus enfants Gne1 Gne1 Gne1 Problme de l'informaticien en vacances Dans notre exemple, nous ne pouvons pas juste prendre des morceaux des individus parents pour crer les individus enfants. Il faut que les nouveaux individus crs conservent la forme d'une solution potentielle. Ils doivent donc possder chacune des villes une seule fois. La mthode de croisement que je propose pour ce problme est la suivante : on commence faire un croisement "simple" entre deux individus, puis on corrige les individus crs pour qu'ils aient la forme d'une solution. Par exemple, si nous souhaitons croiser {A,B,C,D,E,F,G,H,I,J} avec {D,A,F,J,C,E,G,H,B,I}, nous pouvons dcider que la premire moiti du premier parent deviendra la premire moiti du premier enfant, et que la seconde moiti du premier parent deviendra la seconde moiti du deuxime enfant. Et inversement pour le second parent. Nous obtiendrions ainsi les enfants {A,B,C,D,E,E,G,H,B,I} et {D,A,F,J,C,F,G,H,I,J}. On s'aperoit tout de suite du problme pos, certaines villes sont visites 2 fois et d'autres ne le sont pas. Je propose donc de supprimer les doublons et de les remplacer par les villes non visites. Ainsi le premier enfant {A,B,C,D,E,E,G,H,B,I} serait remplac par {A,B,C,D,E,F,G,H,J,I} ou par {A,B,C,D,E,J,G,H,F,I} De mme le deuxime enfant passerait de {D,A,F,J,C,F,G,H,I,J} {D,A,F,J,C,B,G,H,I,E} ou {D,A,F,J,C,E,G,H,I,B} Gne2 Gne2 Gne2 Gne3 Gne3 Gne3 Gne4 Gne4 Gne4

3.3. Les mutationsUne autre solution que le croisement pour crer de nouveaux individus est de modifier ceux dj existants. Une fois de plus, le hasard va nous tre d'une grande utilit. Il peut s'avrer efficace de modifier alatoirement quelques individus de notre population en en modifiant un gne ou un autre. Rien ne nous dit que l'individu mut sera meilleur ou moins bon, mais il apportera des possibilits supplmentaires qui pourraient bien tre utiles pour la cration de bonnes solutions. De mme que pour les croisements, il n'est pas recommand de faire muter tous les individus. Il est possible de faire muter un individu de la manire qu'il vous plaira. Une seule contrainte : l'individu mut doit tre de la forme d'une solution potentielle. Gnralement, on ne modifie qu'un gne pour passer d'une solution une autre solution de forme similaire mais qui peut avoir une valuation totalement diffrente. Problme de l'informaticien en vacances La mthode de mutation que je vous propose consiste en une permutation de deux villes. Nous sommes certains que les individus muts auront toujours la forme d'une solution potentielle car nous ne changeons que l'ordre des villes. Par exemple, {A,B,C,D,E,F,G,H,I,J} pourra tre mut en {A,B,H,D,E,F,G,C,I,J}http://khayyam.developpez.com/articles/algo/genetic/ (8 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

4. L'insertion des nouveaux individus dans la populationUne fois que nous avons cr de nouveaux individus que ce soit par croisement ou par mutation, il nous faut slectionner ceux qui vont continuer participer l'amlioration de notre population. Une fois encore, libre au programmeur de choisir ceux qu'il souhaite conserver. Il est possible de refaire une tape d'valuation des individus nouvellement crs. De mme qu'il est possible de conserver tous les nouveaux individus en plus de notre population. Il n'est toutefois pas recommand de ne conserver que les nouveaux individus et d'oublier la population de travail. En effet, rien ne nous dit que les nouveaux individus sont meilleurs que les individus de dpart. Une mthode relativement efficace consiste insrer les nouveaux individus dans la population, trier cette population selon l'valuation de ses membres, et ne conserver que les N meilleurs individus.

4.1. Comment choisir le nombre N d'individus conserver ?Le nombre d'individus N conserver est choisir avec soin. En prenant un N trop faible, la prochaine itration de l'algorithme se fera avec une population plus petite et elle deviendra de plus en plus petite au fil des gnrations - elle pourrait mme disparatre. En prenant un N de plus en plus grand, nous prenons le risque de voir exploser le temps de traitement puisque la population de chaque gnration sera plus grande. Une mthode efficace est de toujours garder la mme taille de population d'une gnration l'autre, ainsi il est possible de drouler l'algorithme sur un grand nombre de gnrations.

4.2. Et on passe la gnration suivanteUne fois la nouvelle population obtenue, vous pouvez recommencer le processus d'amlioration des individus pour obtenir une nouvelle population et ainsi de suite ...

5. Ritration du processusLe programmeur a l'opportunit d'valuer les individus de sa population avant et/ou aprs les phases de cration d'individus. En effet, il peut s'avrer pertinent de les valuer avant de les insrer dans la future population, de mme qu'il peut tre utile de les rvaluer au dbut de la gnration suivante, si par exemple la mthode d'valuation dpend de la taille de la population (qui a trs bien pu changer). Ainsi on peut tre amen valuer deux fois par gnration chacun des individus. Le nombre de gnration est aussi laiss l'apprciation du programmeur. Gnralement il n'est pas possible de trouver des solutions convenables en moins de 10 gnrations et au bout de 500 gnrations, les solutions n'voluent plus. Mais ceci n'est qu'un ordre de grandeur, tout dpend du problme rsoudre.http://khayyam.developpez.com/articles/algo/genetic/ (9 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Une fois le nombre maximum de gnrations atteint, vous obtenez une population de solutions. Mais rien ne vous dit que la solution thorique optimale aura t trouve. Les solutions se rapprochent des bonnes solutions, mais sans plus. Ce n'est pas une mthode exacte. Qui plus est, dans la recherche d'un optimum multi-critres, il est rare d'obtenir une solution unique. En effet, les rponses optimales notre problme peuvent provenir de valeurs largement diffrentes tant au niveau des donnes d'entre (les gnes) que des donnes de sortie (les critres d'valuation). Ainsi, l'on considre gnralement que l'on obtient un ensemble de solutions optimales, dtes "codominantes" : toute amlioration d'une solution selon l'un des critres entrainera obligatoirement une dgradation de l'valuation des autres critres. Cet ensemble de solutions, aussi appel ensemble de Pareto, ou frontire de Pareto ou encore front Pareto constitue l'ensemble des solutions valides au problme. Il est possible de le tracer, dans diffrents plans, en prenant deux deux les critres de notre problme comme axes de trac (tracer par exemple le cot de production en fonction du temps de production, ou pour notre informaticien en vacances, le nombre de festivals auxquels il assiste en fonction de la distance totale parcourue). Ce trac permet une reprsentation plus naturelle l'oeil humain du processus de recherche men par l'algorithme gntique. La seconde mthode d'valuation d'individus en contexte multi-critres propose en section 2.1 se base justement sur ce concept de fronts Pareto. Il s'agit de mettre en avant les fronts Pareto successifs pour obtenir le rang d'un individu.

6. ConclusionUn algorithme gntique vous donne une grande libert dans le paramtrage et dans l'implmentation des diffrents traitements. Libre vous ensuite de modifier tel ou tel paramtre si les solutions obtenues ne vous conviennent pas. Les algorithmes gntiques ont l'norme avantage de pouvoir tre appliqus dans un grand nombre de domaines de recherche de solution, lorsqu'il n'est pas ncessaire d'avoir la solution optimale, qui prendrait par exemple trop de temps et de ressources pour tre calcule (ou tout simplement si personne n'est capable de la trouver de manire thorique). Les algorithmes gntiques sont aussi particulirement adapts l'valuation de problmes multi-critres et la ralisation de recherches de valeurs optimales selon plusieurs objectifs simultans.

http://khayyam.developpez.com/articles/algo/genetic/ (10 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Schma gnral d'un algorithme gntique

LiensL'implmentation de l'algorithme NSGA2 - sources en C et binaires q La thorie de l'volution selon Darwin q Une bibliothque de gestion d'algorithmes gntiques en C++ Une applet java de recherche de maximum dans un paysage, via un algorithme gntiqueq

q

Remerciementshttp://khayyam.developpez.com/articles/algo/genetic/ (11 sur 12)19/07/2010 23:38:19

Tutoriel Algorithmes gntiques

Merci Loulou24 et 2Eurocents pour leur relecture et leurs complments d'informations.

Les sources prsents sur cette pages sont libre de droits, et vous pouvez les utiliser votre convenance. Par contre cette page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright Pierre Schwartz . Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrets.

Responsable bnvole de la rubrique Algorithmique : Romuald Perrot (PRomu@ld) - Contacter par email Vos questions techniques : forum d'entraide Algorithmique - Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'quipe de rdaction du club d'entraide des dveloppeurs francophones Nous contacter - Hbergement - Participez - Copyright 2000-2010 www.developpez.com - Legal informations.

http://khayyam.developpez.com/articles/algo/genetic/ (12 sur 12)19/07/2010 23:38:19