Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

46
Carthagène Voyager à l’aide de l’optimisation combinatoire Simon de Givry Simon de Givry

Transcript of Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Page 1: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Carthagène

Voyager à l’aide de l’optimisation combinatoire

Simon de GivrySimon de Givry

Page 2: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Trouver un tour passant par toutes les villes une seule foiset ayant une distance totale minimale

Page 3: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Matrice des distances (km)Distances Camara Caniço Funchal ...

Camara 0 15 7 ...

Caniço 15 0 8 ...

Funchal 7 8 0 ...

... ... ... ... ...

Page 4: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Trouver un ordre des marqueurs qui maximise la vraisemblance

Page 5: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Matrice des distances 2-points (Haldane)

Distances M1 M2 M3 ...

M1 0 14 7 ...

M2 14 0 8 ...

M3 7 8 0 ...

... ... ... ... ...

Page 6: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Lien

M1 M2 M3 M4 M5M6 M7

Mfictif

0 0…0…

i,j,k distance(i,j) ? distance(i,k) + distance(k,j)=,

Vraisemblance multi-points (avec manquants) la distance entre deux points dépend du tour

Page 7: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Problème du voyageur de commerce

Traveling Salesman Problem (TSP)

Graphe complet Poids positifs sur chaque arête

Cas symétrique dist(i,j) = dist(j,i) Inégalité triangulaire dist(i,j) dist(i,k) + dist(k,j)

Distance euclidienne Trouver le plus court cycle Hamiltonien

Page 8: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

78

15

Page 9: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Distance totale = xxx km

Page 10: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Problème du voyageur de commerce Intérêt théorique

Problème NP-complet 1993-2001: +150 articles sur le TSP

dans INFORMS & Decision Sciences Intérêt applicatif

Extension au problème de tournées de véhicules

Ordonnancement de marqueurs Carthagène, NCBI/Concorde, ...

Page 11: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Variantes Euclidean Traveling Salesman Selection Problem Asymmetric Traveling Salesman Problem Symmetric Wandering Salesman Problem Selective Traveling Salesman Problem TSP with distances 1 and 2, TSP(1,2) K-template Traveling Salesman Problem Circulant Travelling Salesman Problem On-line Traveling Salesman Problem Time-dependent TSP The Angular-Metric Traveling Salesman Problem Maximum Latency TSP Minimum Latency Problem Max TSP Traveling Preacher Problem Bipartite TSP Remote TSP Precedence-Constrained TSP Exact TSP The Tour Cover problem ...

Page 12: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Plan Introduction du TSP Construction d ’un tour Amélioration d ’un tour Construction arborescente

Page 13: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Construction d’un tour

Page 14: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.
Page 15: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Heuristique « plus proche voisin »(Nearest Neighbor)

Page 16: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Heuristique « plus petite distance 2-points »(Greedy, multifragment heuristic)

Page 17: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Heuristique « meilleure fusion »(Savings, Clarke-Wright 1964)

Page 18: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Heuristiques Distance moyenne à l’optimum

Meilleure fusion : 11%(Savings)

Plus petite distance 2-pts : 12%(Greedy)

Plus proche voisin : 26%(Nearest Neighbor)

Page 19: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.
Page 20: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Amélioration d’un tour

Page 21: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Quelle modification locale peut-on faire pour améliorer ce tour ?

Page 22: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Effacer deux arêtes et reconstruire un tour

inversion d’une séquence de marqueurs

Page 23: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Modification 2-change

Page 24: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Effacer trois arêtes et reconstruire un tour (7 possibilités)

échange l ’ordre de deux séquences de marqueurs

Page 25: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Recherche locale « gloutonne » 2-opt

Remarque : une succession finie de « 2-change » permet d ’atteindre n’importe quel tour, y compris un tour optimum

Stratégie : sélection du meilleur 2-change parmi N*(N-

1)/2 voisins (2-move) répétition tant que la distance totale

diminue

Page 26: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

2-opt

Page 27: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Recherches locales gloutonnes Distance moyenne à l’optimum

2-opt : 9% 3-opt : 4% LK (k-opt bridé) : 1%

Complexité 2-opt : ~N3

3-opt : ~N4

LK (k-opt bridé) : <N4 ?

Page 28: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Complexités n = nombre de sommets

Opération Complexité A-TSP (n-1)! S-TSP (n-1)! / 2 2-change 1 3-change 7 k-change (k-1)! . 2k-1 k-move (k-1)! . 2k-1 . n! / (k! . (n-k)!) ~ O( nk ) k << n

en pratique : o( n ) 2-opt et 3-opt ~ O( nk+1 )

en pratique : o( n1.2 ) time(3-opt) ~ 3 x time(2-opt)

Page 29: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Pour chaque arête (uv), maintenir la liste des sommets wtels que dist(w,v) < dist(u,v)

u

v

Implémentation efficace du 2-opt :

Page 30: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Lin & Kernighan (1973) k-change : e1->f1,e2->f2,...

=> Sumki=1( dist(ei) - dist(fi) ) > 0

Il existe un ordre sur les i tel que toutes lessommes partielles soient positives :Sl = Suml

i=1( dist(ei) - dist(fi) ) > 0

=> Construit un cycle alterné valide augmentant :xx ’->yx ’, yy’ -> zy’, zz’ -> wz’, etc.dist(f1)<dist(e1),dist(f1)+dist(f2)<dist(e1)+dist(e2),..+ Backtrack sur le choix de y et z + Restart

Page 31: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

x

x’

y

y’

z

z’

w

(maximisation)

e2

e3

e4

e1

f1

f3

f2

f4

w’

{x,y,z,w,..} ^ {x’,y’,z’,w’,..} = 0y parmi 5 meilleurs voisins de x’, idem pour z et w.

Page 32: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Est-ce que le tour 2-opt est un tour optimum ?

Page 33: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

2-opt + réinsertion de sommet

Page 34: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Optimum local versus global

Page 35: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Recherches locales &« méta-heuristiques » Recherche Taboue

Sélection du meilleur voisin même s ’il dégrade la qualité du tour

Interdiction temporaire de refaire une modification locale faite précédemment

liste de modifications « taboues » Ré-initialisation avec différents tours de

départ lorsque la recherche sélectionne un tour déjà

vu construction aléatoire d ’un tour

Page 36: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Expérimentations ds CartaGèneN=50 K=100 Err=30% Abs=30%

Légende : partial 2-opt = arrêt prématuré , guided 2-opt 25% = arrêt prématuré & trie avec X = 25 %

Page 37: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Expérimentations - suite

Page 38: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Autres méta-heuristiques Recuit simulé (simulated annealing)

Choix aléatoire des modifications locales Acceptation d’un voisin en fonction de sa

qualité ; processus de + en + glouton Algorithmes génétiques

Population d’individus (tours) Mutation, croisement,…

Page 39: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Recherche locale

Démonstration

Page 40: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Construction arborescente

Page 41: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Arbre de recherche

M2M1 M3

M2 M3 M1 M3 M1 M2

M3 M2 M3 M1 M2 M1

M1,M2,M3

Profondeur 1:

Profondeur 2:

Profondeur 3:

feuilles

nœud

branches

racine

= point de choix

= alternatives

= solutions

Page 42: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Recherche globale Complexité : n!/2 ordres différents

Éviter les ordres symétriques (1ère moitié de l’arbre)

Utilisation des heuristiques gloutonnes pour ordonner les alternatives

Algorithme de « séparation & évaluation » Élagage des branches qui ne conduisent

pas vers une solution meilleure Possibilité de combiner recherche locale

et recherche globale

Page 43: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Elagage de brancheArbre couvrant de poids minimum

Algorithme de Prim (1957)

Algorithme de Held & Karp (arbre plus « filiforme ») (1971) linear programming relaxation of TSP, LB(I)/OPT(I) 2/3

Page 44: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Heuristique de Christofides (1976)

=> A(I) / OPT(I) 3/2 (avec inégalité triangulaire)

Page 45: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Complexité

Complexité

Ordinateur de référence

Ordinateur 100 fois plus rapide

Ordinateur 1000 fois plus rapide

N N1 100*N1 1000*N1

N2 N2 10*N2 31,6*N2

N3 N3 4,64*N3 10*N3

2N N4 N4+6,64 N4+9,97

3N N5 N5+4,19 N5+6,29

Page 46: Carthagène Voyager à laide de loptimisation combinatoire Simon de Givry.

Méthodes complètes 1954 : 49 villes 1971 : 64 villes 1975 : 100 villes 1977 : 120 villes 1980 : 318 villes 1987 : 2,392 villes 1994 : 7.397 villes 1998 : 13.509 villes 2001 : 15.112 villes (585936700 sec. 19 ans CPU)