# Traveling Salesman Problem III

```Traveling Salesman Problem
Approximate solutions for TSP
NNA, RNN, SEA
Greedy Heuristic Algorithms
Spring 2015
Mathematics in
Management Science
Traveling Salesman Problem
Given a complete weighted graph, find
a minimum weight Hamilton circuit.
A Hamilton circuit visits each
vertex exactly once.
A complete graph has one
edge btwn each pair of vtxs.
A weighted graph has a
weight (cost) for each edge.
Solving a TSP
Brute Force Algorithm –
exhaustive search
Nearest Neighbor Algorithm
Repetitive Nearest Neighbor
Algorithm
Sorted Edges Algorithm
Counting Hamilton Circuits
The complete graph KN with N vertices has
(N – 1)!/2 distinct Hamilton circuits.
Here (N – 1)!/2 =(N-1)x(N-2)x&middot;&middot;&middot;3x2x1.
For N=30, the number of HCs is
4,420,880,996,869,850,977,271,808, 000,000 .
Generating 1 million HCs per second, say, it
would take over 10 billion years to
generate all of them. 
The BFA will take a loooong time to finish.
Approximate Solutions
Number of HCs in even modest sized
problems is so large that we cannot
examine them all to find exact solutions
by brute force.
Instead we must rely on fast algorithms
that find approximate solutions.
NNA, RRN, SEA
Go Cheap – NNA
Start from the home city.
Go to the city that is the cheapest to
get to. Repeat this.
From each new city go to the next city
that is the cheapest to get to.
When there are no more new cities to
go to, go back home
Nearest Neighbor Algorithm
From a vertex, go to nearest vertex not
already visited. Repeat until no more
new vtxs; then go home.
An example of a greedy algorithm:
– doesn’t look at the “big picture”,
– goes for immediate/short-term gains
– can paint itself into a corner and be
forced to accept a bad solution
From Chicago, find shortest route that
visits each of Minneapolis, St. Louis,
and Cleveland, and returns to Chicago.
Repetitive Nearest Neighbor
Do NNA with each vertex of the graph
as the starting vertex.
Of all the circuits obtained, keep the
best one.
If there is a designated starting vertex,
rewrite this best circuit using that
vertex as the reference point.
From Chicago, find shortest route that
visits each of Minneapolis, St. Louis,
and Cleveland, and returns to Chicago.
Sorted Edges Algorithm
At each stage, use the cheapest (least
cost) edge which is OK.
Stop when have an HC.
An edge is NOT OK if
It closes a circuit that is not an HC, or
It meets a vertex that already has 2 edges
which have been chosen.
Sorted Edges Algorithm
Pick the cheapest link (edge with
smallest weight) available.
available that does not
close a circuit which is not an HC, nor
create three edges coming out of a single
vertex.
Done when get a Hamilton circuit.
Sorted Edges Algorithm
Sort edges in order of increasing cost.
Select edges in order from this list to
subject to these rules:
never reuse an edge
skip edges that connect to vtx already
having two used edges meeting there
skip edges that create “premature” loops,
(small circuits in graph that don’t include
all vtxs). No circuits created until last edge
Comparison of Algorithms
Both are approximate; typically give
different approximate solutions; typically
neither is the “real” solution.
Neither better than the other.
NNA adds edges in order as you would
traverse the circuit.
SEA adds edges “at random” in the graph.
Neither algorithm says what to do in the
case of a “tie”.
Example
Find an approximate solution to the
following TSP using the Sorted-Edges
Algorithm.
A
E
B
60
80
20
10
D
70
40
C
Example
First (smallest) edge: acceptable.
A
E
B
60
80
70
20
10
D
40
C
Example
Second (next smallest) edge: acceptable.
A
E
B
60
80
70
20
10
D
40
C
Example
Third edge: acceptable.
A
E
B
60
80
70
20
10
D
40
C
Example
Fourth edge: reject (creates premature
loop; three edges into one vertex)
A
E
B
60
80
70
20
10
D
40
C
Example
Fifth edge: reject (creates premature loop)
A
E
B
60
80
70
20
10
D
40
C
Example
Sixth edge: reject (three edges at one vtx)
A
E
B
60
80
20
10
D
70
40
C
Example
Seventh edge: acceptable
A
E
B
60
80
20
10
D
70
40
C
Example
possible to close up loop.
A
E
B
60
80
70
20
10
D
40
C
Example do NNA from B
600
A
700
950
B
500
650
750
E
550
C
850
400
800
D
TSP – Conclusion
How does one find an optimal
Hamilton circuit in a complete
weighted graph?
NNA &amp; SEA are fairly simple
strategies for attacking TSPs,
which quickly give good HCs.
The search for an optimal and
efficient general algorithm….
```