Algorithm de Little
Little,J.D.,Murty,K.G.,Sweeney,D.W.,&Karel,C. An
algorithm for the traveling salesman problem.
Operations research,11(6),972-989,1963
Principe:
L'algorithme de Little est un algorithme de résolution du TSP
par Branch&Bound
•La séparation consiste à considérer l'inclusion ou l'exclusion
d'un trajet (i,j) dans une tournée. Chaque séparation produisant
deux branches, l'arbre de recherche est binaire(fig.1b)
•L’évaluation fournit une borne inférieure du coût de la tournée
en effectuant des opérations sur la matrice de coûts (fig1a)
tirée de l'article
Optimisation sans contrainte : conditions d’optimalité
On développe l'arbre de façon préférentielle vers
la droite (inclusion de trajets) pour rapidement
aboutir à une tournée complète T, de coût c
6 villes:
B:Bordeaux
L:Lyon
N:Nantes
P:Paris
M:Montpellier
D:Dijon
60 tournées
possibles
(120 si coûts
asymétriques)
L'algorithme de Little Visite du nœud 1
Arbre de recherche
1 La racine va contenir une première
borne inférieure pour le coût de la
tournée optimale, tous les trajets étant
encore possibles
Réduction de la matrice:
lignes
Réduction de la matrice:
lignes
B L N P M D
B L N P M D
min ligne :
B 460 0(130) 200 60 340
min colonne: 70
B L N P M D
min colonne: 60
B L N P M D
B L N P M D
L 500 200 0 0
P 150 70 340 0
D 0 430 50 200
L 500 200 0 0
P 150 70 340 0
D 0 430 50 200
Réduction de la matrice
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 5
PN PN L 150 0 0
M 0 340 200
4 2350 5
D 0 0 200
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 5
PN PN L 150 0 0
D 0 0 200
Élimination du trajet BP
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 5
PN PN L 150 0 0
0
4 2350 5 1990
M 0 340 200
0
D 0 0 200
0
= 1990 + 0
supprimé: 0 0 0 0
Total supprimé:
0
Réduction de la matrice
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 5
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 5
6 21
2470 7
Regret maximal: Bordeaux-Montpellier (280)
= 1990 + 280
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 7
PN PN M 0 200
4 2350 5 1990 D 0 0
BM BM
6 224
70 7
Élimination du trajet MP
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 7
PN PN M 0 200
0
4 2350 5 1990 D 0 0 0
6 227
40 7 1990 0
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 7
PN PN M 0(200) 200
BM BM
6 224
70 7 1990 Calcul des regrets
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 7
PN PN M 0(200) 200
BM BM
6 224
70 7 1990 Regret maximal: Lyon-Dijon (350)
LD LD
- Création des fils 8 et 9.
8 21
340 9 - Affectation de la valeur de 8
= 1990 + 350
- Empilage de 8
8
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 9
2 1990 3 1990 M 0
PN PN D 0 0
4 2350 5 1990
BM BM
6 224
70 7 1990
LD LD
8 21
340 9
8
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 9
2 1990 3 1990 M 0
PN PN D 0
4 2350 5 1990
BM BM Élimination du trajet DL
6 224
70 7 1990
(aboutissant à la sous-tournée LD-DL)
LD LD
8 2340 9
8
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 9
4 2350 5 1990
supprimé: 0 0 Total supprimé:
BM BM 0
6 224
70 7 1990
Réduction de la matrice
LD LD
8 2340 9 1990
= 1990 + 0
8
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Visite du nœud 9
2 1990 3 1990 M 0
PN PN D 0
4 2350 5 1990
BM BM
6 224
70 7 1990 Il n'y a plus de choix possible: il faut
LD LD, ML, DP intégrer les trajets ML et DP pour finir
la tournée
8 2340 9 1990
8
6
4
nœud nœud en nœud
à visiter cours de visite visité
Pile 2
L'algorithme de Little
Premier résultat
Branche terminée.
Arbre de re
echerche
Une première solution trouvée,
1 1810 contenant les trajets:
NB NB
Arbre de re
echerche
1 1810
NB NB
2 1990 3 1990
PN PN
On visite à présent les nœuds
4 2350 5 1990
empilés pour tenter d'améliorer
BM
BM cette première solution.
6 227
40 7 1990
LD LD, ML, DP
8 2340 9* 1990
8
6
4
nœud nœud en nœud
à visiter cours de visite visité * référence :1990 Pile 2
L'algorithme de Little
Visite du nœud 8
Arbre de re
echerche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 8: 2340 référence.
4 2350 5 1990
BM BM
6 227
40 7 1990
LD LD, ML, DP
8 2340 9* 1990
6
4
nœud nœud en nœud
à visiter cours de visite visité * référence :1990 Pile 2
L'algorithme de Little
Visite du nœud 8
Arbre de re
echerche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 8: 2320 référence.
4 2350 5 1990
BM BM
Pas d'amélioration possible.
6 227
40 7 1990
LD LD, ML, DP
8 2340 9* 1990
6
4
nœud nœud en nœud
à visiter cours de visite visité * référence :1990 Pile 2
L'algorithme de Little
Visite du nœud 6
Arbre de re
echerche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 6: 2270 référence.
4 2350 5 1990
BM BM
6 227
40 7 1990
LD LD, ML, DP
8 2340 9* 1990
4
nœud nœud en nœud
à visiter cours de visite visité * référence :1990 Pile 2
L'algorithme de Little
Visite du nœud 6
Arbre de reche
erche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 6: 2270 référence.
4 2350 5 1990
BM BM
Pas d'amélioration possible.
6 224
70 7 1990
LD LD, ML, DP
8 234
40 9* 1990
4
nœud nœud en nœud
à visiter cours de visite visité * référence :1990 Pile 2
L'algorithme de Little
Visite du nœud 4
Arbre de re
eche
erche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 4: 2350 référence.
4 2350 5 1990
BM BM
6 224
70 7 1990
LD LD, ML, DP
8 234
40 9* 1990
Arbre de re
eche
erche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 4: 2350 référence.
4 2350 5 1990
BM BM
Pas d'amélioration possible.
6 224
70 7 1990
LD LD, ML, DP
8 234
40 9* 1990
Arbre de re
eche
erche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 2: 1990 référence.
4 2350 5 1990
BM BM
6 224
70 7 1990
LD LD, ML, DP
8 234
40 9* 1990
Arbre de recherche
1 1810
NB NB
2 1990 3 1990
PN PN
Valeur du nœud 2: 1990 référence.
4 2350 5 1990
BM BM
Pas d'amélioration possible.
6 21
2740 7 1990
LD LD, ML, DP
8 2340 9* 1990
Arbre de re
echerche
1 1810
Fin de l'algorithme.
NB NB
BM BM
7
Valeur: 1990 km
6 224
70 1990
LD LD, ML, DP
#nœuds visités: 9 << 565
8 2340 9* 1990
Nombre maximal de nœuds visités
(cf. exercice d'approfondissement)
Arbre de re
echerche
1 1810
NB NB
2 1990 3 1990
Arbre de recherche
1 1810
NB NB
2 1990 3 1990
PN PN
4 2350 5 1990
Arbre de re
echerche
1 1810
NB NB
2 1990 3 1990
PN PN
4 2350 5 1990
BM BM
6 224
70 7 1990
Arbre de recherche
1 1810
NB NB
2 1990 3 1990
PN PN
4 2350 5 1990
BM BM
6 224
70 7 1990
LD LD
8 2340 9* 1990
Arbre de recherche
1 1810
NB NB
2 1990 3 1990
PN PN
4 2350 5 1990
BM BM
6 224
70 7 1990
LD LD, ML, DP
8 2340 9* 1990
Réduction de la matrice
· évaluation par défaut E
oui Fin de la
E ≥ C* ? branche
non non Suppression de la
Suppression du oui ligne i et de la
trajet (i,j) Matrice 2x2 ? E < C* ? colonne j
non oui
C* ← E
Calcul des regrets
Màj meilleure tournée
non
oui Identification du Fin de la
E + R ≥ C* ? trajet (i,j) de regret branche
maximal R
Fin de la
branche
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
Solution partielle
Arbre de recherche
16
BE BE
Tournée optimale au départ de A:
22 16
DA DA
AC-CF-FB-BE-ED-DA (coût: 20)
19 19
CA CA AC AC
29 20 22 20
CF CF, ED, FB
32 20