Vous êtes sur la page 1sur 101

Introduction à

l’optimisation
combinatoire
S. Ben Ismail
Majeure Informatique – INF413 – C5
2e semestre 2012
Objectifs pédagogiques

À l'issue de ce cours, vous devriez être capables de :


connaitre la diérence entre "heuristique" et "méta-heuristique"
comprendre la classication générale des méthodes d'optimisation
combinatoire et les concepts sous-jacents
décrire le fonctionnement des méthodes classiques
modéliser un problème et lui appliquer une méthode d'optimisation
(cf PC)

Avec un peu plus de temps et de pratique :


évaluer et comparer plusieurs méthodes d'optimisation sur un
problème donné
combiner diérentes méthodes de manière performante

1 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Plan du cours

1 Introduction
2 Méthodes d'optimisation
3 Construction
4 Recherche locale
5 Évolution
6 Hybridation
7 Conclusion

2 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

3 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Optimisation : késako ?

Langue française
optimiser (v.) : permettre d'obtenir le meilleur résultat possible par
une action adaptée
synonymes : améliorer, maximiser, mettre au point, optimaliser

Mathématiques : la branche optimisation


soit f : Ω 7→ R, trouver x ∗ ∈ Ω tel que f (x ∗) = minx ∈Ω f (x )
(notation x ∗ = arg min(f ))
Terminologie
Ω (ou S ) : espace de recherche, espace des {états, congurations,
solutions, alternatives}
f : fonction objectif, coût/perte à minimiser (si gain à maximiser,
considérer g = −f )
x ∗ (ou s ∗ ) : optimum, minimum

4 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Exemples de problèmes d'optimisation : cas continu

Ω = Rn , fonction de Ackley
f (x ) =
−0.2 1 2 1
q
cos(2πxi )
Pn
−20e −en + 20 − e
Pn
i =0 i =1
Ω=R n
x
i

n = 2, x ∗ = (0, 0)
optimum global : x tq ∀x ∈ Ω, f (x ≤ f (x )
∗ ∗)

optimum local : x ∗ tq ∃∀x ∈ Ω, f (x ∗ ) ≤ f (x )


5 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Exemples de problèmes d'optimisation : cas discret

Problème du Voyageur du Commerce


(Traveling Salesman Problem (TSP))
données : n villes, une matrice de distances
D = (d )
ij

problème : trouver un chemin passant une


fois et une seule par chaque ville et
minimisant la distance totale parcourue
Ω ' ensemble des partitions d'un ensemble à n éléments
(n−1)!
|Ω| = 2 pour un problème symétrique
optimisation discrète ( vs continue )

Optimisation combinatoire
minimisation d'une fonction sur un ensemble ni (mais potentiellement

très grand)
6 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Énumération exhaustive

1. générer tous les trajets possibles


2. calculer leurs distances
3. choisir le trajet ayant la distance minimale
n |Ω| Temps de calcul 1

5 12 12 microsecondes
10 181 440 0,18 seconde
15 43 milliards 12 heures
20 6 E+16 19 siècles
25 3 E+23 9,8 milliards d'années
30 4 E+30 1,4 millions de millards de siècles

1. un trajet évalué en une microseconde (1 million de solutions par seconde)

7 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Et avec des machines plus puissantes ?

On exécute un algorithme de complexité


linéaire/quadratique/cubique/exponentielle sur une machine
N : taille maximale de problème pouvant être traité
Machine actuelle 100x plus rapide 1000x plus rapide
n N 1 100 N 1 1000 N 1

n² N 2 10 N 2 31.6 N 2

n³ N 3 4.64 N 3 10 N 3

2 n N 4 N + 6.64
4 N + 9.97 4

Puissance de calcul vs avancées algorithmiques


écart entre la croissance de la rapidité des machines et la taille des
données traitables
ne pas compter uniquement sur l'augmentation des capacités
matérielles mais surtout sur l'innovation algorithmique
8 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Et à part le TSP ?

sac à dos (Knapsack Problem) : découpage de matière première


allocation de fréquences pour les réseaux radio-mobiles
positionnement d'antennes pour les réseaux radio-mobiles
routage dans les réseaux télécom
résolution de conits de trac aérien, roulage en aéroport
(ENAC/Eurocontrol)
ordonnoncement de tâches dans un atelier de production (Jobshop
Scheduling) (Airbus)
aectation de personnel (Air France)
répartition des charges dans les camions/conténaires (Bin Packing)
...
équipes de R&D à EDF, SNCF, France Télécom etc.
ores de travail en optimisation :
https ://portail.telecom-bretagne.eu

9 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

10 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Optimisation = modélisation + résolution

1. modélisation d'un problème : espace de recherche, solutions


2. formulation mathématique : fonction objectif, contraintes
3. application d'une méthode d'optimisation
4. obtention d'une solution

11 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Terminologie

méthode complète trouve toujours une solution


méthode optimale trouve toujours la meilleure solution (optimum global)
méthode exacte (exhaustive) explore l'espace de recherche dans sa
totalité (énumération intelligente) => optimale
méthode approchée (approximative) explore une sous-partie de l'espace
de recherche
méthode déterministe exécute toujours la même suite d'opérations
méthode probabiliste (ou stochastique) fait des choix probabilistes
guidés par des tirages aléatoires

12 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Classication des méthodes d'optimisation combinatoire

1. Les méthodes exactes ne sont ecaces que pour les instances de


problèmes de petite taille,
2. On ne s'intéressera ici qu'aux méthodes approchées.
13 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Heuristique

étymologie : du grec ancien eurisko,  trouver 


méthode approchée conçue pour un problème d'optimisation
particulier permettant de trouver des solutions avec un temps de
calcul raisonnable
traduit une stratégie, une manière de penser, s'appuyant sur notre
connaissance du problème

indispensable pour les problèmes NP − diciles car généralement en


temps polynomial

Heuristique 6= Algorithme exact


algorithme exact : garantit une solution optimale
heuristique : pas de garantie d'optimalité

14 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Métaheuristique (ou méta-heuristique)

une heuristique est spécique à un problème et ne peut pas être


généralisée
méta + heuristique =  au-delà  +  trouver  =⇒ trouver avec
un plus haut niveau d'abstraction
une méta-heuristique est un ensemble de concepts : voisinage
(modication d'une solution), utilisation de la mémoire, inspiration
de la physique ou la nature ...
une méta-heuristique est une heuristique généraliste, pouvant
s'appliquer à plusieurs problèmes d'optimisation
classication habituelle des métaheuristiques : en fonction du
nombre de solutions qu'elles manipulent
métaheuristiques à solution unique
métaheuristiques à population de solutions

15 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Paradigmes des méthodes approchées (heuristiques et
métaheuristiques)

Construction solution construite par une suite de choix


Recherche locale (ou voisinage) une solution initiale modiée
itérativement
Évolution une population de solutions évolue par des opérateurs
génétiques (sélection, croisement, mutation)
Hybridation mélange des approches précédantes
16 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

17 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Principe des heuristiques constructives

Fonction HeuristiqueConstructive() : solution s


s : solution,
s ← ∅;

Tant que ( s n'est pas une solution complete) faire


choisir un nouvel element de solution e
s ← s +e;
Fait

Retourner s;
Fin

18 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristiques constructives gloutonnes

Dénition
Un algorithme glouton (greedy ) est un algorithme qui, à
chaque étape de la résolution d'un problème, fait un
choix optimal dans l'espoir que le résultat nal soit
optimal.
Heuristique constructive gloutonne : à chaque étape, ajouter le
meilleur élément de solution e
Exemple : rendu de monnaie
comment rendre 8¿ avec des pièces de 6¿, 4¿ et 1¿ ?
8 = 6 + 1 + 1 (or 8 = 4 + 4)
les valeurs des pièces de monnaie du système monétaire sont
choisies pour qu'un algorithme glouton soit optimal

19 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Problème du sac à dos (Knapsack Problem (KP))

données : sac à dos vide, objets ayant chacun un poids et une valeur
objectif : maximiser la valeur totale des objets dans le sac
contrainte : poids maximal autorisé dans le sac

$4
12
kg
? $2
2k
g

15 kg
$2 g
1k

$1 1 k g

$10 g
4k

http ://fr.wikipedia.org/wiki/Problème_du_sac_à_dos

20 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
valeur=0, poids=0

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì valeur=10, poids=9

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì Ê valeur=10+7=17, poids=9+12=21

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì Í valeur=10+1=11, poids=9+2=11

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì Í Ë valeur=11+3=14, poids=11+7=18

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì Í Î valeur=11+2=13, poids=11+5=16

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì Í - - - - valeur=11 ¿, poids=11 kg

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristique constructive gloutonne pour le KP

stratégie : rajouter en priorité les objets ayant le meilleur rapport


valeur/poids, jusqu'à ce que le sac soit rempli.
objet valeur ($) poids (kg) rapport valeur/poids ($/kg)
Ê 7 12 0.58
Ë 3 7 0.43
Ì 10 9 1.11
Í 1 2 0.5
Î 2 5 0.4
Ì Í - - - - valeur=11 ¿, poids=11 kg
or Ì Î - - - - valeur=10+2=12 ¿, poids=9+5=14 kg

21 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


TSP : heuristique du plus proche voisin

plus proche voisin (nearest neighbour )


1. initialisation : choisir aléatoirement une première ville
2. à chaque étape, une suite de villes a été construite
y rajouter la ville la plus proche de la ville courante (dernière
ville)
3. relier la dernière ville à la première (pour obtenir un cycle)

22 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
Rouen
Reims Metz
Chartres
Rennes

Poitiers
Annecy
Lyon

Nice
Toulouse
23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

23 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Heuristiques d'insertion pour le TSP

idée de construction :
1. initialisation : choisir aléatoirement une première ville
2. à chaque étape, un cycle de villes a été constuit
y insérer LA ville qui minimise un critère donné
insertion du plus proche voisin (nearest insertion) : insérer la ville la
plus proche des villes déjà visitées

moindre coût (cheapest insertion) : insérer la ville ayant le


moindre coût d'insertion (engeandrant la plus petite
augmentation de la longueur du cyle)
illustration : OptimGUI.jar
(http ://mr-nutz.no-ip.org/Valentin/projets.php ?page=0)

24 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion du PPV : illustration
v 10
v
8 v 9

v
v6
7

v
5
v
4

v3

v
v
2

25 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Récapitulatif

Approches constructives gloutonnes


en O (n) (ou polynomial)
une succession de choix localement optimaux ne garantit pas une
solution optimale

26 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

27 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Introduction à la recherche locale

La fable des randonneurs : il était une fois ... [1]


4 randonneurs perdus à la montagne en 4 endroits diérents
il faut rejoindre la vallée de plus basse altitude, là où les secours
passent régulièrement
brouillard (ou la nuit avec une lampe frontale) => observation de
l'environnement immédiat
à un croisement de sentiers : on ne peut examiner qu'un chemin à la
fois, en s'y ebgageant
moyens : un altimètre et une boussole

Stratégies déployées : que faire quand on se trouve


à croisement de sentiers ?
Dernières nouvelles (selon l'équipe de secours qui
est allée les chercher) ?
28 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Randonneur 1 a oublié son cours de complexité

stratégie :  je suis sportif, j'explore tous les chemins possibles ! 

résultat : le pauvre, il court toujours dans la montagne ! ... mais il


n'est pas encore mort de lassitude.
Il doit être bien motivé -
Moralité
la recherche exhaustive énumérative ne fut pas un choix judicieux !

29 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Randonneur 2 meilleur que son ami

stratégie :  descendre pour aller en bas, quoi de plus normal ? :


tant que je peux descendre, je le fais ! 

résultat : pas de chance /, il a terminé dans une cuvette.


Après une nuit glaciale il s'est rendu compte que ce n'était pas le
point le plus bas. Il s'est remis en marche pour enn descendre,
épuisé, au bon endroit.
Moralité
la recherche gloutonne basique peut marcher, mais pas cette fois-ci !
avec un autre point de départ ça aurait pu mieux se passer.
descendre toujours peut conduire à une impasse !

30 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Randonneur 3 a suivi la MAJ INFO

stratégie :  je descends, mais j'autorise, de temps à autre (joue aux


dés), des chemins qui montent. 
tient compte de l'inclinaison des chemins qui montent
à un certain moment, il a marché (sans le savoir) sur les pas du
2ème randonneur

résultat : il est arrivé à un point très bas, qu'il n'a pas quitté, et les
équipes de secours l'ont trouvé ,
Moralité
des dégradations occasionnelles de la fonction objectif peuvent nous
faire échapper d'un optimum local

31 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Randonneur 4 était attentif en INF 413

stratégie :  tant que je peux descendre, je le fais en empruntant le


chemin de plus grande pente
si je ne peux plus descendre, j'emprunte le chemin qui remonte avec
la plus faible pente
je mémorise les derniers chemins que je viens d'emprunter pour ne
pas emprunter les emprunter tout de suite. 

résultat : idem que le 3ème


mais qui du 3ème et du 4ème arriva premier ? l'histoire ne le dit pas
Moralité
avec une mémoire à court terme, on peut s'épargner des boucles
innies

32 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Principe de la recherche locale

Idée
on s'attend à ce que les bonnes solutions partagent des structures
similaires donc, les meilleures solutions devraient pouvoir être
obtenues après des petites modications de bonnes solutions, etc ...
Principe
solution initiale
transformations successives

Voisinage
fonction Ω → 2Ω : x 7→ ϑ(x ) ⊂ Ω
traduit la notion de solutions proches, semblables, voisines
suite de solutions : une trajectoire dans l'espace de recherche

33 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Structure générale d'une recherche locale

Fonction RechercheLocale(f , Ω, s ) : meilleure solution s ∗


s∗ : , z : reel
0

solution

s ∗ ← s ; z ← f (s ∗) ;
0

Tant que (∃ s 0 dans ϑ(s ∗) ET acceptable(s 0 )) faire


s∗ ← s0 ;
z ← f (s ∗) ;
Fait

Retourner s∗ ;
Fin

34 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Exemples de voisinages pour le TSP

Soit u et v deux villes, x et y leurs villes consécutives respectives


dans la solution d'un TSP
opérateurs de voisinage :
insertion
- supprimer u et l'insérer après v
- supprimer u et x, et insérer (u,x) après v
- supprimer u et x, et insérer (x,u) après v
échange (swap )
- échanger u et v
- échanger (u,x) et v
- échanger (u,x) et (v,y)
2-opt
- remplacer (u,x) et (v,y) par (u,v) et (x,y)

35 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion : illustration 1

u=7
v = 10
v 10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v 1
2
v 1
2

36 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion : illustration 1

u=7
v = 10
v 10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v 1
2
v 1
2

36 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion : illustration 2

u = 7, x = 3
v = 10
v 10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v1
2
v 1
2

37 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Insertion : illustration 2

u = 7, x = 3
v = 10
v 10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v1
2
v 1
2

37 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Échange : illustration

u=7
v = 10
v10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v 1
2
v 1
2

38 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Échange : illustration

u=7
v = 10
v10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v 1
2
v 1
2

38 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


2-opt : illustration

u = 7, x = 3
v = 10 y = 8
v 10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v1
2
v 1
2

39 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


2-opt : illustration

u = 7, x = 3
v = 10 y = 8
v 10
v
8 v
9
v10
v 8 v
9

v6
v 7
v 6
v 7

v
5
v
4
v 5
v
4

v
3 v
3

v v
v1
2
v 1
2

39 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Méthodes de descente du gradient

Algorithme du gradient en optimisation continue 2

schéma itératif utilisé : xk + = xk − αk ∇f (xk )


1

Adaptation au cas discret : méthode de descente du gradient (Hill


Climbing )
choix de la solution s 0 : première (descente simple) ou meilleure
amélioration (plus grande pente)
2. cf TC131 : Méthodes et outils pour l'analyse numérique - PC1 - STP2

Introduction à l'optimisation
40 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Descente du gradient

Fonction HillClimbing(f , Ω, s ) : meilleure solution s ∗


s∗ : , z : reel
0

solution

s ∗ ← s ; z ← f (s ∗) ;
0

Tant que (∃ s 0 dans ϑ(s ∗) ET f (s 0) < z ) faire


s∗ ← s0 ;
z ← f (s ∗) ;
Fait

Retourner s∗ ;
Fin

41 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Plus grande pente

Fonction SteepestHillClimbing(f , Ω, s ) : meilleure solution s ∗


s∗ : , z : reel
0

solution

s ∗ ← s ; z ← f (s ∗) ;
0

Tant que (∃ s 0 dans ϑ(s ∗) ET ∀s 00 s s fs


∈ ϑ( )\{ 0 }, ( 0 ) <
f (s )
00 ) faire

s∗ ← s0 ;
z ← f (s ∗) ;
Fait

Retourner s∗ ;
Fin

42 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Méthodes de descente : avantages et inconvénients

une méthode locale basique, rapide, mais s'arrête au premier


optimum local trouvé
elle s'y trouve piégée (2ème randonneur de la fable)
Idée d'amélioration : 3ème et 4ème randonneurs de la fable
autoriser, de temps en temps, une dégradation de la solution
courante
contrôler la dégradation pour éviter la divergence de l'algorithme

43 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Recuit simulé (Simulated Annealing ), 1983

analogie avec la thermodynamique (métallurgie)


1. initialement, un métal est chaué à haute température
2. puis refroidissement de la température
brutalement (trempe) ⇒ état solide amorphe
progressivement⇒ état solide cristallin
métallurgie optimisation
énergie f
état amorphe minimum local
état cristallin minimum global
température paramètre de contrôle
recuit recuit simulé : déplacement
dans Ω
(recherche locale)

44 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Principe du RS

Fonction RecuitSimule(f , Ω, s , T , , k ) : meilleure solution s∗


s∗ :
0 0

solution

T : //temperature
reel

s∗ ← s ; T ← T ;
(T > )
0 0

Tant que faire


choisir s 0 aleatoirement dans ϑ(s ∗), 4f fs
← ( 0) − ( ) fs
(4f ≤ 0)
Si Alors

s ∗ ← s 0 ; //accepter s 0
Sinon

s ∗ ← s 0 ; avec la probabilite e − Tf 4

Fin Si

T ← k .T //refroidir la temperature (k = 0.999 par ex.)


Fait

45 / 68
Retourner
S. Ben Ismail
s∗ ; Introduction à l'optimisation combinatoire
Fin
Remarque

méthode stochastique
probabilité d'acceptation p(4f , T ) = e − T
4f

probabilité de Métropolis en thermodynamique : e − T


E 0 −E

4f : si dégradation énorme ⇒ probabilité plus petite


T : plus la température descent, plus la probabilité d'acceptation
devient petite
on autorise plus de dégradation au début qu'à la n : convergence
vers un état d'énergie minimale

46 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Recherche tabou (Tabu Search), 1989 (Glover)

Principe (4ème randonneur)


mémoire à court terme : on mémorise les dernières congurations
visitées (liste tabou)
choisir un des meilleurs voisins qui n'appartient pas à la liste tabou,
même s'il dégrade f
pas de tirages aléatoires

paramètres :
nombre maximal d'itérations
fonctionnement de la liste tabou : le
taille de la liste tabou : statique ou dynamique

47 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Recherche locale : conclusion I

L'élément qui caractérise une recherche locale est le choix de la solution


voisine s 0 dans le voisinage V (s )
Descente :
s 0 est une solution voisine plus performante que s : f (s 0 ) ≤ f (s )
s 0 est LA solution voisine LA plus performante f (s 0 ) ≤ f (s ) et
∀s 00 ∈ V (s ) f (s 0 ) ≤ f (s 00 )
Recuit simulé :
s 0 est choisie au hasard
- acceptée si plus performante que s
- acceptée si moins performante que s avec une probabilité donnée

Recherche tabou :
s 0 est l'une des meilleures solutions voisines de s , n'apparteneant

pas à la liste tabou

48 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Recherche locale : conclusion II
Comparaison
Descente (2ème randonneur) : méthode rapide, mais se termine au
premier optimum local rencontré
Recuit & Tabou (3ème et 4ème randonneurs) : ne s'arrêtent pas au
premier optimum local rencontré (grâce aux dégradations de f )

49 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Dilemme Intensication vs Diversication

Intensication (exploitation) : focaliser l'eort de recherche sur une


zone particulière de l'espace de recherche (autour des meilleures
solutions rencontrées)
Diversication (exploration) : explorer des nouvelles zones
prometteuses de l'espace de recherche pour trouver potentiellement
d'autres bonnes solutions
Un bon compromis à trouver !
En recherche locale : essentiellement de l'exploitation, diversication
dans RS et RT

50 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

51 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Algorithmes génétiques, 1975 (Holland)

Idée générale :
inspiration naturelle
recherche dans l'espace de congurations : faire évoluer (recombiner
et modier) un ensemble de solutions du problème, et en
sélectionner la meilleure à la n
Terminologie :
une solution constitue un individu ayant une évaluation (ou fonction
de performance) (tness )
un ensemble de solutions constitue une population
une combinaison de deux solutions est un croisement (parents,
enfants )
une modication d'une solution est une mutation

52 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Principe

Fonctionnement
1. évaluation des individus
2. sélection des meilleurs parmi eux
3. croisements
4. mutations
convergence : apparition des individus
les plus performants
les bons parents donnent lieu à
de bons enfants par héritage
les mutation permettent de
diversier la population (explorer
ailleurs)
53 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
Ingrédients principaux

codage des solutions (chromosomes )


génération d'une population initiale
processus de sélection
opérateurs de mutation et de croisement
paramètres : taille de la population, critère d'arrêt (nombre total de
générations, stagnation), probabilité de mutation

54 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Opérateurs génétiques

55 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Exemple basique : optimisation de fonction réelle alliot

minimiser f (x ) = 4x (x − 1), Ω = [0, 1[


codage d'une solution : séquence de 8 bits égale à la représentation
binaire de E (x ∗ 2 ) 8

exemple : x = 0.3 ∈ [0, 1[, x ∗ 2 =76.8, E (x ∗ 2 ) ∈ [0, 2 − 1[


8 8 8

76 en binaire donne 01001100


séquence valeur f (x )
01110010 0.7266255 0.794678
11011110 0.8671875 0.460693
00011010 0.1015625 0.364990
01101100 0.4218750 0.975586

56 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Application au TSP

chromosome : tableau contenant l'indice des villes


tness : distance totale parcourue
croisement : cf PC
mutation : échange de 2 villes
tout à l'heure en PC : extension au problème de routage de
véhicules (VRP : plusieurs TSP en même temps)

57 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Autres méthodes à base de population

colonies de fourmis (ACO )

essaims particulères (PSO )

58 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

59 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Hybridation

exploitation de la recherche locale dans un algorithme génétique


population initiale
opérateur de mutation remplacé par une procédure de recherche
locale => algorithme mémétique
amélioration des enfants générés
cf PC

60 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Sommaire

1 Introduction

2 Méthodes d'optimisation

3 Construction

4 Recherche locale

5 Évolution

6 Hybridation

7 Conclusion

61 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Adéquation méthode/problème

étant donné un problème d'optimisation, quelle méthode choisir


pour produire une solution optimale (ou acceptable)
avec un temps de calcul raisonnable ?
Pas de recette miracle !
essayer plusieurs méthode (avec plusieurs paramétrages) peut être
nécessaire pour trouver la bonne
appel au savoir-faire et à l'expérience de l'utilisateur

No Free Lunch Theorm (1997) : En moyenne, sur toutes les


fonctions de coût possibles, tous les algorithmes d'optimisation ont
des performances équivalentes avec un temps d'exécution ni
⇒ il n'y pas d'algorithme d'optimisation meilleur que tous les autres

62 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Directives pour bien utiliser les métaheuristiques [2]

méthodes de recherche locale


on doit pouvoir générer facilement une solution dans S
les solutions dans le voisinage V (s ) doivent être "proches" de s
méthodes de recherche à base de population
il faut que l'information pertinente se transmette durant la phase de
croisement
la combination de deux parents équivalents ne doit pas produire une
progéniture diérente des parents
la diversité doit être préservée dans la population
Do it simple !

63 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Quelques recettes

tuning des paramètres : source de diculté


algorithmes stochastiques => ne jamais se contenter d'une seule
exécution
exécutions (runs) nombreuses, indépendantes
faire des mesures statistiques (moyennes, écart-types)
faire des tests statistiques pour appuyer des conclusions

choses à mesurer :
résultat moyen pour un temps donné
temps moyen pour atteindre un résultat
proportion des exécutions à % de l'optimum
meilleures solutions obtenues

64 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Pour terminer

domaine de recherche riche et en constante évolution (revues et


conférences spécialisées)
en tant qu'ingénieurs : savoir qu'on dispose de plusieurs méthodes
choisir la mieux adaptée :
au problème d'optimisation (espace de recherche, fonction objectif
...)
à ce que l'on cherche : une "bonne" solution trouvée rapidement, ou
LA solution à x% de l'optimum
pour une bonne performance :
bonne fomalisation/modélisation du problème
adaptation "intelligente" d'une métaheuristique : intégration des
connaissances spéciques + structures de données ecaces

65 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Lectures complémentaires

3. http ://cs.gmu.edu/ ∼sean/book/metaheuristics/


66 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire
La suite en PC

Un problème d'optimisation résolu avec plusieurs heuristiques et


métaheuristiques

67 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire


Références Bibliographiques I

I. Charon, A. Germa, and O. Hudry.


Méthodes d'optimisation combinatoire.
Masson, 1996.
Alain Hertz and Marino Widmer.
Guidelines for the use of meta-heuristics in combinatorial
optimization.
European Journal of Operational Research, 151(2) :247  252, 2003.
Meta-heuristics in combinatorial optimization.

68 / 68 S. Ben Ismail Introduction à l'optimisation combinatoire

Vous aimerez peut-être aussi