Partitionnement de territoire à l'aide d'un algorithme génétique
Partitionnement de territoire à l'aide d'un algorithme génétique
Partitionnement de territoire à l'aide d'un algorithme génétique
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CHAPITRE 3. ALGORITHMES ÉVOLUTIONNISTES 44<br />
Opérateur <strong>de</strong> mutation La procédure <strong>de</strong> mutation est un opérateur binaire qui est<br />
appliqué sur un chromosome. Elle consiste <strong>à</strong> induire <strong>de</strong> légères variations aléatoires<br />
au sein <strong>de</strong> celui-ci, exactement comme les mutations apparaissent dans la nature.<br />
Ces <strong>de</strong>ux opérateurs <strong>génétique</strong>s s’inscrivent en fait, dans le cadre plus général <strong>de</strong>s<br />
métaheuristiques, dans <strong>de</strong>ux classes <strong>de</strong> métho<strong>de</strong> ayant un but bien précis.<br />
Les <strong>de</strong>ux buts poursuivis sont l’intensification et la diversification parfois appelés respectivement<br />
exploitation et exploration.<br />
Au début <strong>de</strong> ce chapitre (3.2) nous avions introduit le problème du voyageur <strong>de</strong> commerce,<br />
problème NP-Hard. Nous avions insister sur le fait qu’il était impensable d’énumérer<br />
l’ensemble <strong>de</strong>s solutions possibles du problème en un temps raisonnable, celles-ci étant<br />
beaucoup trop nombreuses. Pour parcourir 50 villes, 3 ◊ 10 64 solutions existent. Dans<br />
le cadre d’une métaheuristique, il convient donc <strong>de</strong> générer <strong>de</strong> nouvelles solutions <strong>de</strong><br />
manière intelligente.<br />
Le processus d’intensification consiste <strong>à</strong> utiliser <strong>de</strong> bonnes solutions trouvées jusque l<strong>à</strong><br />
afin d’en générer <strong>de</strong> nouvelles. Par exemple, si un grand nombre <strong>de</strong> bonnes solutions<br />
trouvées jusqu’ici visite la ville j juste après avoir visité la ville i, il parait cohérent<br />
<strong>de</strong> gar<strong>de</strong>r ce tronçon lors <strong>de</strong> la génération <strong>de</strong> nouvelles solutions. Au même titre, si le<br />
tronçon allant <strong>de</strong> la ville k <strong>à</strong> la ville m n’apparaît dans aucune <strong>de</strong>s meilleures solutions,<br />
il semble inutile <strong>de</strong> générer <strong>de</strong> nouvelles solutions le contenant.<br />
Toutefois, en utilisant uniquement le processus d’intensification, l’<strong>algorithme</strong> converge<br />
vers un optimum local. Si aucune <strong>de</strong>s bonnes solutions trouvées jusque l<strong>à</strong> ne contient<br />
le tronçon k,m, cela ne signifie pas pour autant qu’il n’existe aucune meilleure solution<br />
le contenant. La meilleure solution du problème le contient même peut-être. C’est pour<br />
palier <strong>à</strong> se problème que le processus <strong>de</strong> diversification est utilisé. Celui-ci consiste <strong>à</strong><br />
ajouter une composante aléatoire lors <strong>de</strong> la génération <strong>de</strong> nouvelles solutions afin d’éviter<br />
<strong>de</strong> rester bloqué dans un optimum local.<br />
Trop d’intensification risque <strong>de</strong> bloquer l’<strong>algorithme</strong> dans un optimum local du problème.<br />
Au contraire, trop <strong>de</strong> diversification risque <strong>de</strong> rendre l’<strong>algorithme</strong> trop lent <strong>à</strong> converger.<br />
Dans le <strong>de</strong>sign d’une métaheuristique, il convient donc <strong>de</strong> trouver une bonne balance<br />
entre intensification et diversification.<br />
Nous allons maintenant décrire plus en détail un <strong>de</strong>s grands standards dans le domaine<br />
<strong>de</strong>s <strong>algorithme</strong>s <strong>génétique</strong>s, NSGA-II.<br />
3.4.1 NSGA-II<br />
NSGA-II est une version améliorée <strong>de</strong> l’<strong>algorithme</strong> NSGA (Non-dominated Sorting Genetic<br />
Algorithm) initialement proposé par Deb et Srinivas en 1994 [103] auquel on reprochait<br />
: une complexité trop importante <strong>à</strong> la procédure <strong>de</strong> tri <strong>de</strong>s chromosomes, un<br />
manque d’élitisme et la nécessité <strong>de</strong> préciser un paramètre pour une procédure <strong>de</strong> la<br />
métaheuristique [38].<br />
Nous allons d’abord présenter le pseudoco<strong>de</strong> <strong>de</strong> NSGA-II et ensuite passer en revue la<br />
façon dont sont implémentées les procédures caractéristiques <strong>de</strong> cette métaheuristique,<br />
<strong>à</strong> savoir l’assignation <strong>de</strong> fitness, la préservation <strong>de</strong> la diversité et l’élitisme.