Vous êtes sur la page 1sur 22

Figure : Problèmes NP-complets (source Karp (1971)

Plan

1 Introduction

2 Complexité algorithmique

3 Heuristiques

4 Métaheuristiques

5 Hybridation
Heuristique

Méthode permettant de trouver rapidement une solution à un problème


que l’on espère bonne sans pouvoir toutefois garantir son optimalité.
Types d’heuristiques

Heuristique constructive Construit une solution réalisable à partir


des paramètres du problème ;
Recherche locale Commence d’une solution réalisable initiale puis
l’améliore de ”proche-en-proche” tant que possible
jusqu’à arriver à un minimum local.
Heuristique constructive
Exemple dans le PVC

PVC
Entrées Nombre de villes n, matrice des distances symétrique
d
Sortie Ordre de passage T “ pT1 , . . . , Tn q
Heuristique constructive
Exemple dans le PVC

Algorithme du plus-proche-voisin
k := 1 ;
Tk := sommet de départ à choisir ; lpT q := 0 ;
tant que k ă n faire
u := voisin non-visité le plus proche de Tk ;
Tk`1 := u ;
lpT q := lpT q + dpTk , Tk`1 q ;
k := k ` 1 ;
fait
lpT q := lpT q + dpTn , T1 q ;
retourner T et lpT q.
Heuristique constructive
Exemple dans le PVC
Heuristique constructive
Exemple dans le PVC
Recherche locale

Soit à résoudre le problème

optimiserx PD f px q
où,
• D = ensemble des solutions réalisables ;
• f = fonction objectif.
Recherche locale

Soit x un élément de D. Un mouvement effectué sur x est une


opération qui agit sur la structure de x . Par exemple :
• Inverser les composantes d’un vecteur de t0, 1un :

x “ p1, 0, 1, 0, 0q ÝÑ x 1 “ p0, 1, 0, 1, 1q
Recherche locale

Soit x un élément de D. Un mouvement effectué sur x est une


opération qui agit sur la structure de x . Par exemple :
• Inverser les composantes d’un vecteur de t0, 1un :

x “ p1, 0, 1, 0, 0q ÝÑ x 1 “ p0, 1, 0, 1, 1q

• Replacer une tâche dans un ordonnancement :

o “ p2, 3, 1, 5, 4q ÝÑ o 1 “ p2, 3, 4, 1, 5q
Recherche locale

Soit x un élément de D. Un mouvement effectué sur x est une


opération qui agit sur la structure de x . Par exemple :
• Inverser les composantes d’un vecteur de t0, 1un :

x “ p1, 0, 1, 0, 0q ÝÑ x 1 “ p0, 1, 0, 1, 1q

• Replacer une tâche dans un ordonnancement :

o “ p2, 3, 1, 5, 4q ÝÑ o 1 “ p2, 3, 4, 1, 5q

• Fermer un dépôt et en ouvrir un autre dans une solution de


UFLP :
S “ t1, 3u ÝÑ S 1 “ t2, 3u
Recherche locale

• Une solution x 1 est dite voisine de x si elle peut être obtenue


à partir de x en effectuant un ”mouvement”. ;
Recherche locale

• Une solution x 1 est dite voisine de x si elle peut être obtenue


à partir de x en effectuant un ”mouvement”. ;
• Soit V px q “ Ensembles des solutions ”voisines” de x .
Recherche locale

Algorithme Recherche locale


Entrées Paramètres du problème, solution réalisable initiale x
Sorties Solution réalisable x (optimum local)
Début
faire
amelioration Ð faux
Chercher x 1 dans V px q tel que f px 1 q meilleur que f px q
si x 1 existe alors
amelioration Ð vrai
x Ð x1
finSi
tant que (amelioration = vrai)
retourner x
Fin
Recherche locale
Exemple dans le PVC

Inversion
Soit T “ p1, 2, . . . , i0 , i1 , . . . , ik´1 , ik , ik`1 , . . . , nq un ordre de
passage initial. La transformation Ipi1 , ik q consiste à transformer T
en la forme p1, 2, . . . , i0 , ik , ik´1 , . . . , i1 , ik`1 , . . . , nq. Cette
transformation est appelée inversion.
Recherche locale
Exemple dans le PVC

Inversion
Soit T “ p1, 2, . . . , i0 , i1 , . . . , ik´1 , ik , ik`1 , . . . , nq un ordre de
passage initial. La transformation Ipi1 , ik q consiste à transformer T
en la forme p1, 2, . . . , i0 , ik , ik´1 , . . . , i1 , ik`1 , . . . , nq. Cette
transformation est appelée inversion.
Recherche locale
Exemple dans le PVC

Soit la mesure

ΔMpi1 , ik q “ dri0 , i1 s ` drik , ik`1 s ´ dri0 , ik s ´ dri1 , ik`1 s

Si ΔMpi1 , ik q ą 0 alors l’application de Ipi1 , ik q sur T permet de


réduire la longueur de T . Dans ce cas, Ipi1 , ik q est dit désirable.
Recherche locale
Exemple dans le PVC

Algorithme du 2-opt
Entrées entier n, matrice des distance d, ordre de passage initial t,
un réel z (valeur de t)
Sorties ordre de passage t, un réel z
Début
1 : Faire
2: amelioration Ð faux
3: Trouver i1 et ik tels que Ipi1 , ik q soit désirable
4: Si i1 et ik existent alors
5: amelioration Ð vrai
6: Appliquer Ipi1 , ik q sur t
7: z Ð z ´ ΔMpi1 , ik q
8: finSi
9 : Tant que (amelioration = vrai)
Fin
Recherche locale
Exemple dans le PVC
Recherche locale
Exemple dans le PVC
Recherche locale
Exemple dans le PVC

Vous aimerez peut-être aussi