Académique Documents
Professionnel Documents
Culture Documents
du voyageur de commerce
É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 :
possibilité !!
Cette méthode est donc inutilisable, sauf si le nombre de villes est
très petit
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 :
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,
ü 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
𝛽𝑗 = min(𝑡𝑖𝑗 − 𝛼𝑖 )
𝑖
0
Alors : 𝑡𝑖𝑗 =𝑡𝑖𝑗 −𝛼𝑖 − 𝛽𝑗
La valeur d’un circuit hamiltonien est :
𝑧 = # #𝑡𝑖𝑗 𝑥𝑖𝑗
𝑖 𝑗
𝑥𝑖𝑗 = 0 𝑜𝑢 1
𝑧 = # #𝑡𝑖𝑗 𝑥𝑖𝑗 =
𝑖 𝑗
# #(𝑡𝑖𝑗0 + 𝛼𝑖 + 𝛽𝑗 ) 𝑥𝑖𝑗 =
𝑖 𝑗
! 𝑥𝑖𝑗 = ! 𝑥𝑖𝑗 = 1
𝑗 𝑖
Donc :
𝑧 ≥ #𝛼𝑖 + #𝛽𝑗
𝑖 𝑗
On définit le regret d’un arc BA par :
0 0
𝑟𝐵𝐴 =min 𝑡𝐵𝑗 +min 𝑡𝑖𝐴
𝑗≠𝐴 𝑖≠𝐵
2. Choisir la case nulle dont le regret est le plus élevé ( déterminer d’abord le regret de chaque 0 du
tableau)
RQ: Ne pas ajouter à une solution la valeur d’une réduction d’un arc si c’est déjà compté à travers son
regret
7. Examiner tous les chemins dont le cout est inférieure au premier cout final trouvé
Un voyageur doit visiter successivement chacune des 6 villes suivantes : A, B, C, D, E,F et revenir à son point
de départ.
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
∞ 11 7 13 11
5 ∞ 13 15 15
13 15 ∞ 23 11
9 13 5 ∞ 3
3 7 7 7 ∞