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