Transcript Ch03-4

TSP (Travelling Salesman Problem) - 소개
 순회판매원 문제?
• n개의 도시 및 각 도시 사이의 거리가 주어질때, 어떤 도시에서
시작하여 모든 도시를 최단 거리로 한번씩만 방문하고 돌아올 수
있는 경로를 찾는 문제
• Easy to Describe the Problem
• Difficult to Solve
Page 1
TSP (Travelling Salesman Problem) - 소개
 순회판매원 문제
ACBDA with weight 16
ABCDA with weight 17
ABDCA with weight 17
Page 2
TSP (Travelling Salesman Problem) - 소개
 Although there is no condition to return to the beginning,
it can still be regarded as a TSP
 Suppose we wish to go from A to B visiting all cities.
 Connect A and B to a ‘dummy’ city at zero distance
 Create a TSP Tour around all cities
A
B
A
0
B
0
A
0
B
0
Page 3
TSP (Travelling Salesman Problem) - 소개
 A route returning to the beginning is known as a
Hamiltonian Circuit
 A route not returning to the beginning is known as a
Hamiltonian Path
 The above two problems are essentially the same class of
problem
Page 4
TSP (Travelling Salesman Problem) - 소개
 History of TSP
• 1800’s: Irish Mathematician, Sir William Rowan Hamilton
• 1930’s: Studied by Mathematicians Menger, Whitney, Flood etc.
• 1954: Dantzig, Fulkerson, Johnson, 49 cities (capitals of USA
states) problem solved
• 1971: 64 Cities
• 1975: 100 Cities
• 1977: 120 Cities
• 1980: 318 Cities
• 1987: 666 Cities, 2392 Cities (in printed circuit board)
• 1994: 7397 Cities
• 1998: 13509 Cities (all towns in the USA with population > 500)
• 2001: 15112 Cities (towns in Germany)
• 2004: 24978 Cities (places in Sweden)
Page 5
Printed Circuit Board 2392 cities
- 1987 Padberg and Rinaldi
Page 6
USA Towns of 500 or more population
(13509 cities) - 1998 Applegate, Bixby,
Chvátal and Cook
7
Towns in Germany 15112 Cities
- 2001 Applegate, Bixby, Chvátal and
Cook
8
Sweden 24978 Cities
- 2004 Applegate, Bixby, Chvátal, Cook
and Helsgaun
9
TSP – Brute-Force Algorithm
 Try every possibility
• 출발정점에서 2번째 정점은 n-1개의 정점 중 하나가 될
수 있고,
• 3번째 정점은 n-2 개의 정점 중 하나가 될 수 있고, …
그러므로…
• (n-1)! possibilities – grows faster than exponentially
• If it took 1 microsecond to calculate each possibility,
it will take 10140 centuries to calculate all possibilities
when n = 100
Page 10
TSP – Dynamic Programming (1/5)

v1이 출발점이라고 가정

vk가 최적 일주여행길상에서 v1 다음에 오는 첫 번째 정점이면, vk에서
v1으로 가는 나머지 부분 일주여행경로는 다른 정점(vk와 v1 제외)을
각각 정확히 한번씩만 거치면서 vk에서 v1으로 가는 최단경로
(Hamilton Path)이다.

나머지 부분 경로들도 같은 방식으로 생각할 수 있다.
 즉, 최적의 원칙이 성립함 의미  DP를 사용하여 알고리즘 설계 가능
인접행렬 W
Page 11
TSP – Dynamic Programming (2/5)

V = 모든 정점의 집합

A = V의 임의의 부분집합

v1이 출발점이라고 가정

D[vi][A] = A에 속한 각 정점을 한번씩만 거쳐서
vi에서 v1으로 가는 최단경로의 길이
D[v2][A]
D[v2][A]
Page 12
TSP – Dynamic Programming (3/5)
D[v1][A-{v1}] =
Page 13
TSP – Dynamic Programming (4/5)
Page 14
TSP – Dynamic Programming (5/5)
Page 15
TSP – Dynamic Programming 시간복잡도
 알고리즘 3.11 (pp. 126 참조)
 외판원 문제(Traveling Salesman Problem: TSP)의 복잡도
• 무작정 알고리즘  (n!)
• 교재의 DP 알고리즘
시간 복잡도  (n22n) – 지수시간 복잡도
공간 복잡도  (n2n) – 지수공간 복잡도
• 최악의 경우 시간복잡도가 지수시간보다 좋은 TSP 알고리즘을 찾은
사람은 아무도 없다.
• 또한, 지수시간보다 좋은 알고리즘을 찾는 것이 불가능하다고 증명한
사람도 없다.
Page 16