The Traveling Salesman Problem
Definition: A complete graph KN is a graph with N
vertices and an edge between every two vertices.
The Traveling Salesman Problem
Definition: A complete graph KN is a graph with N
vertices and an edge between every two vertices.
Definition: A Hamilton circuit is a circuit that uses every
vertex of a graph once.
The Traveling Salesman Problem
Definition: A complete graph KN is a graph with N
vertices and an edge between every two vertices.
Definition: A Hamilton circuit is a circuit that uses every
vertex of a graph once.
Definition: A weighted graph is a graph in which each
edge is assigned a weight (representing the time, distance, or
cost of traversing that edge).
The Traveling Salesman Problem
Definition: A complete graph KN is a graph with N
vertices and an edge between every two vertices.
Definition: A Hamilton circuit is a circuit that uses every
vertex of a graph once.
Definition: A weighted graph is a graph in which each
edge is assigned a weight (representing the time, distance, or
cost of traversing that edge).
Definition: The Traveling Salesman Problem (TSP) is
the problem of finding a minimum-weight Hamilton circuit
in KN .
The Traveling Saleswitch Problem
Example: : Sabrina has the following list of errands:
I
I
I
I
I
Pet store (the black cat needs a new litterbox) (P)
Greenhouse (replenish supply of deadly nightshade) (G)
Pick up black dress from cleaners (C)
Drugstore (eye of newt, wing of bat, toothpaste) (D)
Target (weekly special on cauldrons) (T)
In witch which order should she do these errands in order to
minimize the time spent on her broom?
The Traveling Saleswitch Problem
D
T
C
H
G
P
The Traveling Saleswitch Problem
D
20
45
50
42
92
71
36
32
58
54
67
54
40
36
22
The Traveling Saleswitch Problem
D
20
45
50
42
92
54
40
71
36
32
58
54
67
Hamilton circuit:
HDTGPCH
36
22
The Traveling Saleswitch Problem
D
20
45
50
42
92
54
40
71
36
32
58
54
67
Hamilton circuit:
HDTPCGH
36
22
The Traveling Saleswitch Problem
D
20
45
50
42
92
54
40
71
36
32
58
54
67
Hamilton circuit:
HCDTPGH
36
22
The Traveling Saleswitch Problem
Times between each pair of locations (minutes):
Home (H)
Pet store (P)
Greenhouse (G)
Cleaners (C)
Drugstore (D)
Target (T)
H
0
36
32
54
20
40
P G
36 32
0 22
22 0
58 36
54 42
67 71
C
54
58
36
0
50
92
D
20
54
42
50
0
45
T
40
67
71
92
45
0
Possible Hamilton Circuits
H
Home (H) 0
Pet store (P) 36
Greenhouse (G) 32
Cleaners (C) 54
Drugstore (D) 20
Target (T) 40
P
36
0
22
58
54
67
G
32
22
0
36
42
71
C
54
58
36
0
50
92
D
20
54
42
50
0
45
T
40
67
71
92
45
0
Weight(HDTGPCH) = 20 + 45 + 71 + 22 + 58 + 54 = 270
Possible Hamilton Circuits
H
Home (H) 0
Pet store (P) 36
Greenhouse (G) 32
Cleaners (C) 54
Drugstore (D) 20
Target (T) 40
P
36
0
22
58
54
67
G
32
22
0
36
42
71
C
54
58
36
0
50
92
D
20
54
42
50
0
45
T
40
67
71
92
45
0
Weight(HDTGPCH) = 20 + 45 + 71 + 22 + 58 + 54 = 270
Weight(HDTPCGH) = 20 + 45 + 67 + 58 + 36 + 32 = 258
Possible Hamilton Circuits
H
Home (H) 0
Pet store (P) 36
Greenhouse (G) 32
Cleaners (C) 54
Drugstore (D) 20
Target (T) 40
P
36
0
22
58
54
67
G
32
22
0
36
42
71
C
54
58
36
0
50
92
D
20
54
42
50
0
45
T
40
67
71
92
45
0
Weight(HDTGPCH) = 20 + 45 + 71 + 22 + 58 + 54 = 270
Weight(HDTPCGH) = 20 + 45 + 67 + 58 + 36 + 32 = 258
Weight(HDTPCGH) = 20 + 45 + 67 + 58 + 36 + 32 = 258
Possible Hamilton Circuits
The number of vertices is N = 6, so. . .
Possible Hamilton Circuits
I
I
The number of vertices is N = 6, so. . .
. . . the number of Hamilton circuits is
5! = 5 4 3 2 1 = 120
.
How about listing all possible circuits?
Possible Hamilton Circuits (Page 1)
Hamilton circuit Weight Hamilton circuit
H,C,D,G,P,T,H
275
H,C,P,D,G,T,H
H,C,P,D,T,G,H
H,C,D,G,T,P,H
320
H,C,D,P,G,T,H
291
H,C,P,G,D,T,H
H,C,D,P,T,G,H
328
H,C,P,G,T,D,H
H,C,D,T,G,P,H
278
H,C,P,T,D,G,H
H,C,D,T,P,G,H
270
H,C,P,T,G,D,H
H,C,G,D,P,T,H
293
H,C,T,D,G,P,H
H,C,G,D,T,P,H
280
H,C,T,D,P,G,H
H,C,G,P,D,T,H
251
H,C,T,G,D,P,H
H,C,G,P,T,D,H
244
H,C,T,G,P,D,H
H,C,G,T,D,P,H
296
H,C,T,P,D,G,H
H,C,G,T,P,D,H
302
H,C,T,P,G,D,H
Weight
319
314
261
270
298
312
291
299
349
313
341
297
Possible Hamilton Circuits (Page 2)
Hamilton circuit Weight Hamilton circuit
H,D,C,G,P,T,H
235
H,D,P,C,G,T,H
H,D,P,C,T,G,H
H,D,C,G,T,P,H
280
H,D,C,P,G,T,H
261
H,D,P,G,C,T,H
H,D,C,P,T,G,H
298
H,D,P,G,T,C,H
H,D,C,T,G,P,H
291
H,D,P,T,C,G,H
H,D,C,T,P,G,H
283
H,D,P,T,G,C,H
H,D,G,C,P,T,H
263
H,D,T,C,G,P,H
H,D,G,C,T,P,H
293
H,D,T,C,P,G,H
H,D,G,P,C,T,H
274
H,D,T,G,C,P,H
H,D,G,P,T,C,H
297
H,D,T,G,P,C,H
H,D,G,T,C,P,H
319
H,D,T,P,C,G,H
H,D,G,T,P,C,H
312
H,D,T,P,G,C,H
Weight
279
327
264
313
301
302
251
269
266
270
258
244
Possible Hamilton Circuits (Page 3)
Hamilton circuit Weight Hamilton circuit
H,G,C,D,P,T,H
279
H,G,P,C,D,T,H
H,G,P,C,T,D,H
H,G,C,D,T,P,H
266
H,G,C,P,D,T,H
265
H,G,P,D,C,T,H
H,G,C,P,T,D,H
258
H,G,P,D,T,C,H
H,G,C,T,D,P,H
295
H,G,P,T,C,D,H
H,G,C,T,P,D,H
301
H,G,P,T,D,C,H
H,G,D,C,P,T,H
289
H,G,T,C,D,P,H
H,G,D,C,T,P,H
319
H,G,T,C,P,D,H
H,G,D,P,C,T,H
318
H,G,T,D,C,P,H
H,G,D,P,T,C,H
341
H,G,T,D,P,C,H
H,G,D,T,C,P,H
305
H,G,T,P,C,D,H
H,G,D,T,P,C,H
298
H,G,T,P,D,C,H
Weight
247
269
290
299
283
270
335
327
292
314
298
328
Possible Hamilton Circuits (Page 4)
Hamilton circuit Weight Hamilton circuit
H,P,C,D,G,T,H
297
H,P,G,C,D,T,H
H,P,G,C,T,D,H
H,P,C,D,T,G,H
292
H,P,C,G,D,T,H
257
H,P,G,D,C,T,H
H,P,C,G,T,D,H
266
H,P,G,D,T,C,H
H,P,C,T,D,G,H
305
H,P,G,T,C,D,H
H,P,C,T,G,D,H
319
H,P,G,T,D,C,H
H,P,D,C,G,T,H
287
H,P,T,C,D,G,H
H,P,D,C,T,G,H
335
H,P,T,C,G,D,H
H,P,D,G,C,T,H
300
H,P,T,D,C,G,H
H,P,D,G,T,C,H
349
H,P,T,D,G,C,H
H,P,D,T,C,G,H
295
H,P,T,G,C,D,H
H,P,D,T,G,C,H
296
H,P,T,G,D,C,H
Weight
229
251
282
291
291
278
319
293
266
280
280
320
Possible Hamilton Circuits (Page 5)
Hamilton circuit Weight Hamilton circuit
H,T,C,D,G,P,H
282
H,T,G,C,D,P,H
H,T,G,C,P,D,H
H,T,C,D,P,G,H
290
H,T,C,G,D,P,H
300
H,T,G,D,C,P,H
H,T,C,G,P,D,H
264
H,T,G,D,P,C,H
H,T,C,P,D,G,H
318
H,T,G,P,C,D,H
H,T,C,P,G,D,H
274
H,T,G,P,D,C,H
H,T,D,C,G,P,H
229
H,T,P,C,D,G,H
H,T,D,C,P,G,H
247
H,T,P,C,G,D,H
H,T,D,G,C,P,H
257
H,T,P,D,C,G,H
H,T,D,G,P,C,H
261
H,T,P,D,G,C,H
H,T,D,P,C,G,H
265
H,T,P,G,C,D,H
H,T,D,P,G,C,H
251
H,T,P,G,D,C,H
Weight
287
279
297
319
261
291
289
263
279
293
235
275
Solving the TSP by Brute Force
What we have just done is the Brute-Force Algorithm:
I
I
Make a list of all possible Hamilton circuits
Calculate the weight of each Hamilton circuit by adding
up the weights of its edges.
Choose the Hamilton circuit with the smallest total
weight.
Solving the TSP by Brute Force
What we have just done is the Brute-Force Algorithm:
I
I
Make a list of all possible Hamilton circuits
Calculate the weight of each Hamilton circuit by adding
up the weights of its edges.
Choose the Hamilton circuit with the smallest total
weight.
The Brute-Force Algorithm is optimal: it is guaranteed
to find a solution.
OTOH, the algorithm is inefficient: it has to look at all
(N 1)! Hamilton circuits, and this can take a long time.
Solving the TSP by Brute Force
If your computer can compute one million Hamilton circuits
per second. . .
I N = 6, 7, 8, 9: instantaneous
I N = 10: about 1/3 second
I N = 11: about 4 seconds
I N = 12: about 40 seconds
I N = 13: about 8 minutes
I N = 14: nearly 2 hours
I N = 15: a little over a day
I N = 20: over a million years
Solving the TSP Without Brute Force
Is there a better way to tackle the TSP?
That is, is there an optimal algorithm that is also
efficient?
Solving the TSP Without Brute Force
Idea: At each stage in your tour, choose the closest vertex
that you have not visited yet.
This is called the Nearest-Neighbor Algorithm.
The Traveling Saleswitch Problem
Home (H)
Pet store (P)
Greenhouse (G)
Cleaners (C)
Drugstore (D)
Target (T)
H
0
36
32
54
20
40
P G
36 32
0 22
22 0
58 36
54 42
67 71
C
54
58
36
0
50
92
D
20
54
42
50
0
45
T
40
67
71
92
45
0
The Traveling Saleswitch Problem
Home (H)
Pet store (P)
Greenhouse (G)
Cleaners (C)
Drugstore (D)
Target (T)
H
0
36
32
54
20
40
P G
36 32
0 22
22 0
58 36
54 42
67 71
C D T
54 20 40
58 54 67
36 42 71
0 50 92
50 0 45
92 45 0
If Sabrina starts at home, the closest destination is the
drugstore.
The Traveling Saleswitch Problem
Home (H)
Pet store (P)
Greenhouse (G)
Cleaners (C)
Drugstore (D)
Target (T)
H
0
36
32
54
20
40
P G
36 32
0 22
22 0
58 36
54 42
67 71
C D T
54 20 40
58 54 67
36 42 71
0 50 92
50 0 45
92 45 0
If Sabrina starts at home, the closest destination is the
drugstore.
So, perhaps the Hamilton circuit ought to begin H,D.
The Traveling Saleswitch Problem
D
20
45
50
42
92
71
36
32
58
54
67
54
40
36
22
The Traveling Saleswitch Problem
Eventually, we end up with the Hamilton circuit
H, T, C, P, G, D, H.
I
I
I
Weight of this circuit: 274
Weight of an optimal circuit: 229
Average weight of a circuit: 287.6
Comparing Brute-Force and Nearest-Neighbor
The Brute-Force Algorithm is optimal but inefficient.
I
It is guaranteed to find a solution, but it may take an
unreasonably long time to do so.
The Nearest-Neighbor Algorithm is efficient but nonoptimal.
I
It is quick and easy, but does not always find the
lowest-weight Hamilton circuit.