• Aucun résultat trouvé

CHAPITRE II. Les approches de modélisation et d’optimisation au profit de la gestion

II. 2.2.1.2 Caractéristiques

II.3 Approche d’optimisation

II.3.3 Heuristiques et méta heuristiques

En optimisation combinatoire, une heuristique est un algorithme approché permettant d’identifier en temps polynomial au moins une solution réalisable rapide, pas obligatoirement optimale. Pour le calcul d’une solution approchée d’un problème, le recours à une heuristique s’avère efficace ce qui peut accélérer le processus de résolution exacte. Nous pouvons classer les heuristiques en deux catégories :

69

– Méthodes de fouilles locales qui démarrent avec une solution initialement complète (probablement moins intéressante), et de manière répétitive essaie d’améliorer cette solution en explorant son voisinage.

– Méthodes constructives qui génèrent des solutions à partir d’une solution initiale en essayant d’en ajouter petit à petit des éléments jusqu’à ce qu’une solution complète soit obtenue.

Face aux difficultés rencontrées par les heuristiques pour avoir une solution réalisable de bonne qualité pour des problèmes d’optimisation difficiles, les métaheuristiques ont fait leur apparition. Ces algorithmes sont plus complets et complexes qu’une simple heuristique, et permettent généralement d’obtenir une solution de très bonne qualité pour des problèmes issus des domaines de la recherche opérationnelle ou de l’ingénierie dont on ne connait pas de méthodes efficaces pour les traiter ou bien quand la résolution du problème nécessite un temps élevé ou une grande mémoire de stockage. Le rapport entre le temps d’exécution et la qualité de la solution trouvée d’une métaheuristique reste alors dans la majorité des cas très intéressant par rapport aux différents types d’approches de résolution. Une métaheuristique peut être adaptée pour différents types de problèmes, tandis qu’une heuristique est utilisée à un problème donné. Plusieurs d’entre elles sont souvent inspirées par des systèmes naturels dans de nombreux domaines tels que : la biologie (algorithmes évolutionnaires et génétiques) la physique (recuit simulé), et aussi l’éthologie (algorithmes de colonies de fourmis). Les métaheuristiques peuvent être classées de nombreuses façons. On peut distinguer celles qui travaillent avec une population de solutions de celles qui ne manipulent qu’une seule solution à la fois. Les méthodes qui tentent itérativement d’améliorer une solution sont appelées méthodes de recherche locale ou méthodes de trajectoire. Ces méthodes construisent une trajectoire dans l’espace des solutions en tentant de se diriger vers des solutions optimales. Les exemples les plus connus de ces méthodes sont : La recherche Tabou et le Recuit Simulé. Les algorithmes génétiques, l’optimisation par essaim de particules et Les algorithmes de colonies de fourmis présentent les exemples les plus connus des méthodes qui travaillent avec une population.

II.3.3.1 Algorithme de Lin-Kernighan

L’algorithme de Lin-Kernighan [88] représente l’une des meilleures heuristiques pour le PVC. Il consiste à commencer avec une tournée donnée puis chercher dans le voisinage de la solution courante défini par l’opération λ-opt move toute tournée pouvant améliorer la configuration courante.

70

L’algorithme examine, à chaque étape de l’itération, pour des valeurs croissantes de λ (à partir de 2) si l’échange de λ liens produit une tournée plus courte. Il poursuit ainsi jusqu’à ce qu’on ne peut plus avoir d’amélioration. L’opération λ-opt move consiste à supprimer λ liens (arêtes) et à reconnecter les segments restants par de nouveaux liens, en renversant si possible le sens de parcours d’un ou de plusieurs de ces segments. Plus la valeur de λ est grande, plus la solution finale est proche de l’optimum et plus le temps d’exécution devient élevé. En général, on utilise des valeurs entières de λ ∈ {2, 3, 4, 5}. La Figure II.5 illustre l’opération 2- opt move.

Figure II-5. 2-opt move [86]

II.3.3.2 Les algorithmes génétiques

Cet algorithme consiste en une population de N permutations de solutions du problème représentées par des individus. Cette population choisie aléatoirement est appelée population parent. Le degré d’adaptation (Fitness ou coût) d’un individu à l’environnement est exprimé par la valeur de la fonction de coût f(x)= + , où x est la solution que l’individu représente [86]. Un individu est d’autant mieux adapté à son environnement que le coût de la solution qu’il représente est plus faible. Au sein de cette population, intervient alors la sélection au hasard d’un ou de deux parents, qui produisent une nouvelle solution, à travers les opérateurs génétiques qui sont le croisement et la mutation. La nouvelle population, obtenue par le choix de N individus parmi les populations parent et enfant, est appelée génération suivante. En itérant ce processus, on produit une population plus riche en individus mieux adaptés.

On parle d’algorithmes stochastiques itératifs qui opèrent sur des individus codés, à partir d’une population initiale. Cette population évolue de la génération k à la génération k+1 à l’aide de trois opérateurs :

- Opérateur de Sélection - Opérateur de Croisement

-

Opérateur de Mutation.

Chaque individu est reproduit en fonction de son adaptation au problème (fitness). On code les individus de manière à les faire “évoluer” grâce aux opérateurs. On effectue des

71

croisements sur les individus destinés à être reproduits et des mutations aléatoires d’où la génération de nouveaux individus. La figure II.6 illustre les étapes d’un algorithme génétiques. Pc représente la probabilité de croisement et Pm la probabilité de mutation.

Figure II-6. Les étapes d'un algorithme génétique

II.3.3.3 Algorithme de colonies de fourmis (Ant System)

Ces algorithmes s’inspirent des comportements collectifs de suivi de piste et de dépôt observés dans les colonies de fourmis. Cet algorithme peut être utilisé pour résoudre le PVC. En effet, un ensemble d’agents, appelés fourmis, recherchent en parallèle une meilleure solution au PVC en coopérant indirectement à travers les phéromones qu’ils déposent sur le graphe du PVC (Figure II.7).

Figure II-7. Des fourmis suivant une piste de phéromone [89]

Dans le système de colonies de fourmis, m fourmis (agents) sont initialement positionnées sur n villes choisies par une règle d’initialisation (e.g. aléatoirement). Chaque fourmi construit une tournée représentant une solution admissible du TSP en choisissant les villes à visiter par la règle de transition d’état. Pendant la construction de sa tournée, la fourmi modifie également la quantité de phéromone sur l’arc visité en appliquant la règle de mise à jour

72

locale. Une fois que toutes les fourmis ont terminé leurs tournées, une certaine quantité de phéromones est déposée sur la plus courte tournée par la règle de mise à jour globale.

Soit N le nombre de villes et M le nombre de fourmis, d(i,j) la distance entre les villes i et j et P(i,j) la quantité de phéromone sur le chemin entre ces deux villes.

Initialisation

for iteration:=1 to NbIteration for i:=1 to N

for k:=1 to M

choix de la prochaine ville pour la fourmi k dépôt de la trace locale

endfor endfor

Choix de la fourmi ayant le plus court chemin dépôt de la trace globale

endfor