Vous êtes sur la page 1sur 19

Problème

du voyageur de commerce

Un voyageur de commerce doit visiter un certain nombre de villes, Il doit visiter


chaque ville une et une seule fois.

Étant donné des distances entre chaque paire de villes, il doit minimiser la distance
totale parcourue.

Problème :
Trouver le trajet de longueur minimale passant par toutes les villes(une fois) et
revenant au point de départ.
C’est un problème d’optimisation combinatoire : X est l’ensemble des tours
possibles dans un graphe complet, il y a (n-1)!/2 tours possibles, donc X est
de très grande taille !

Raisonnement direct :

• Construire tous les chemins possibles et de calculer leurs longueurs.

• Avec 10 villes on a 9! /2 soit 181 440 possibilité !!

• Avec 36 villes on trouve :

35!/2 soit 5166573983193072464833325668761600000000

possibilité !!
Cette méthode est donc inutilisable, sauf si le nombre de villes est
très petit

Il est indispensable d’élaborer des techniques performantes de résolution


pour trouver rapidement la meilleure solution, ou du moins
une solution de bonne qualité (approchée en un temps raisonnable).
Domaines d’applications

Le PVC a aussi des applications directes :


En réseau informatique : minimiser le temps d’acheminement des messages
entre plusieurs nœuds d’un réseau
En transport :
Trouver le chemin le plus court pour les bus de ramassage scolaire .

Dans l'industrie :

Trouver la plus courte distance que devra parcourir le bras mécanique d'une
machine pour percer les trous d'un circuit imprimé (les trous représentent les
villes).
Méthodes de résolutions du problème

Algorithmes exactes :
Etude de toutes les possibilités, On trouve la solution optimale :

Algorithme de Little (basé sur la méthode de séparation et d’évaluation)

Algorithmes d'approximation:
Se contentent de trouver une solution presque optimale dans un temps
beaucoup plus court qu'avec des algorithmes exactes.

• Algorithme de descente,

• Algorithme tabou,

• Algorithmes génétique,

• Algorithmes de colonies de fourmis,


• ….ect
Vocabulaires

ü Résoudre le problème du voyageur de commerce revient à trouver dans ce


graphe un cycle passant par tous les sommets une unique fois (un tel cycle est
dit « hamiltonien » ) et qui soit de longueur minimale.

ü Un graphe est « non orienté », signifie qu’une arête peut être parcourue
indifféremment dans les deux sens, cela explique que la matrice soit symétrique.

Cette symétrie n’est pas forcément respectée dans le cas d’un graphe orienté. Il existe
alors deux catégories de problèmes :

• le cas symétrique (le poids de l’arc du sommet X vers Y est égal au poids de l’arc du
sommet Y vers X)

• le cas asymétrique (le poids de l’arc du sommet X vers Y peut être différent du poids de
l’arc du sommet Y vers X).
Modélisation
Algorithme de Little
• Chercher une première solution de démarrage
(une réduction de la matrice lignes et colonnes suffit pour démarrer) :
La valeur de tout circuit hamiltonien est supérieure ou égale à la somme des
coefficients soustraits:
En effet :
Soit

le tableau de départ représentant le graphe du PVC

le tableau réduit après soustraction du pp élément des lignes et


colonnes
si 𝛼𝑖 = min 𝑡𝑖𝑗
𝑗

𝛽𝑗 = min(𝑡𝑖𝑗 − 𝛼𝑖 )
𝑖

0
Alors : 𝑡𝑖𝑗 =𝑡𝑖𝑗 −𝛼𝑖 − 𝛽𝑗
La valeur d’un circuit hamiltonien est :
𝑧 = # #𝑡𝑖𝑗 𝑥𝑖𝑗
𝑖 𝑗

𝑥𝑖𝑗 = 0 𝑜𝑢 1

𝑧 = # #𝑡𝑖𝑗 𝑥𝑖𝑗 =
𝑖 𝑗

# #(𝑡𝑖𝑗0 + 𝛼𝑖 + 𝛽𝑗 ) 𝑥𝑖𝑗 =
𝑖 𝑗

# #𝑡𝑖𝑗0 𝑥𝑖𝑗 + #𝛼𝑖 # 𝑥𝑖𝑗 + #𝛽𝑗 # 𝑥𝑖𝑗


𝑖 𝑗 𝑖 𝑗 𝑗 𝑖
Comme on doit passer une fois et une seule par chaque sommet alors :

! 𝑥𝑖𝑗 = ! 𝑥𝑖𝑗 = 1
𝑗 𝑖

Donc :

𝑧 ≥ #𝛼𝑖 + #𝛽𝑗
𝑖 𝑗
On définit le regret d’un arc BA par :

0 0
𝑟𝐵𝐴 =min 𝑡𝐵𝑗 +min 𝑡𝑖𝐴
𝑗≠𝐴 𝑖≠𝐵

On essaye de choisir au mieux si un couple de deux villes est


ou n’est pas dans le chemin optimal selon le degré des regrets
associés à chaque zéro du tableau réduit.
ØL’élément nul de regret maximal est celui qui provoque la plus forte
augmentation de la fonction économique s’il n’est pas inclus dans le circuit
hamiltonien construit.

ØConstruire alors l’Arborescence du problème jusqu’à obtenir la


solution minimale.
( on étudie d’abord les solutions appartenant au sommet ayant la plus
petite valeur)

Øl’intérêt de cette méthode est qu’ on passe d’un problème a n villes a


un problème a (n-1) villes. Donc, si n=6, on passe de 60 tournées a 12
tournées !
Etapes de l’algorithme de LITTLE
1. Réduction de la matrice ( ligne/colonne)

2. Choisir la case nulle dont le regret est le plus élevé ( déterminer d’abord le regret de chaque 0 du
tableau)

3. Supprimer la ligne de la ville de départ et la colonne de la ville d’arrivée correspondantes

4. Élimination des sous-tournées (rendre infini le cout de retour)

5. Recommencer avec le tableau partiel en vérifiant l’étape1.

RQ: Ne pas ajouter à une solution la valeur d’une réduction d’un arc si c’est déjà compté à travers son
regret

6. Présenter l’algorithme sous forme d’une arborescence ( Branch and Bound)

7. Examiner tous les chemins dont le cout est inférieure au premier cout final trouvé

8. Dérouler l’arborescence jusqu’au bout.

9. Lecture des trajets possibles et de la valeur optimale du circuit hamiltonien


Organigramme de l’Algorithme de Little
Application 1:

Un voyageur doit visiter successivement chacune des 6 villes suivantes : A, B, C, D, E,F et revenir à son point
de départ.

1. Donner la valeur de deux tournées possible


2. En utilisant l’algorithme de LITTLE, donner l’arborescence du problème puis la valeur d’une tournée
minimale au départ de n’importe quelle ville.

A B C D E F
A ∞ 1 7 3 14 2

B 3 ∞ 6 9 1 24

C 6 14 ∞ 3 7 3

D 2 3 5 ∞ 9 11

E 15 7 11 2 ∞ 4

F 20 5 13 4 18 ∞
En apliquant l’algorithme de Little, On trouve l’arborescence suivante :
( voir correction en TD)
Application 2

Voici le tableau des temps moyens de transfert t_ij pour un réseau informatique comportant cinq nœuds
A,B,C,D et E.
Le tableau t_ij n’est pas symétrique.
On désire constituer la liste ordonnée des nœuds, de telle sorte que le temps total d’acheminement des
messages soit minimal

Répondre à la question en utilisant l’algorithme de LITTLE.

∞ 11 7 13 11

5 ∞ 13 15 15

13 15 ∞ 23 11

9 13 5 ∞ 3

3 7 7 7 ∞

Vous aimerez peut-être aussi