180 likes | 913 Views
TSP (Travelling Salesman Problem) - 소개. 순회판매원 문제 ? n 개의 도시 및 각 도시 사이의 거리가 주어질때 , 어떤 도시에서 시작하여 모든 도시를 최단 거리로 한번씩만 방문하고 돌아올 수 있는 경로를 찾는 문제 Easy to Describe the Problem Difficult to Solve. TSP (Travelling Salesman Problem) - 소개. 순회판매원 문제. ACBDA with weight 16. ABCDA with weight 17.
E N D
TSP (Travelling Salesman Problem) - 소개 • 순회판매원 문제? • n개의 도시 및 각 도시 사이의 거리가 주어질때, 어떤 도시에서 시작하여 모든 도시를 최단 거리로 한번씩만 방문하고 돌아올 수 있는 경로를 찾는 문제 • Easy to Describe the Problem • Difficult to Solve
TSP (Travelling Salesman Problem) - 소개 • 순회판매원 문제 ACBDA with weight 16 ABCDA with weight 17 ABDCA with weight 17
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 A B B 0 0 0 0 A B
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
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)
Printed Circuit Board 2392 cities - 1987 Padberg and Rinaldi
USA Towns of 500 or more population (13509 cities) - 1998 Applegate, Bixby, Chvátal and Cook
Towns in Germany 15112 Cities - 2001 Applegate, Bixby, Chvátal and Cook
Sweden 24978 Cities - 2004 Applegate, Bixby, Chvátal, Cook and Helsgaun
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
TSP – Dynamic Programming (1/5) • v1이 출발점이라고 가정 • vk가 최적 일주여행길상에서 v1다음에 오는 첫 번째 정점이면, vk에서 v1으로 가는 나머지부분 일주여행경로는 다른 정점(vk와 v1 제외)을 각각 정확히 한번씩만 거치면서 vk에서 v1으로 가는 최단경로 (Hamilton Path)이다. • 나머지 부분 경로들도 같은 방식으로 생각할 수 있다. • 즉, 최적의 원칙이 성립함 의미 DP를 사용하여 알고리즘 설계 가능 인접행렬 W
TSP – Dynamic Programming (2/5) • V = 모든 정점의 집합 • A = V의 임의의 부분집합 • v1이 출발점이라고 가정 • D[vi][A] = A에속한 각 정점을 한번씩만 거쳐서 vi에서 v1으로 가는 최단경로의 길이 D[v2][A] D[v2][A]
TSP – Dynamic Programming (3/5) D[v1][A-{v1}] =
TSP – Dynamic Programming 시간복잡도 • 알고리즘 3.11 (pp. 126 참조) • 외판원 문제(Traveling Salesman Problem: TSP)의 복잡도 • 무작정 알고리즘 (n!) • 교재의 DP 알고리즘 시간복잡도 (n22n) – 지수시간 복잡도공간 복잡도 (n2n) – 지수공간 복잡도 • 최악의 경우 시간복잡도가 지수시간보다 좋은 TSP 알고리즘을 찾은 사람은 아무도 없다. • 또한, 지수시간보다 좋은 알고리즘을 찾는 것이 불가능하다고 증명한 사람도 없다.