200 likes | 217 Views
Explore advanced algorithm implementation methods, such as network flow, dynamic programming, and local improvement, to solve complex real-world problems efficiently. Learn the optimal approaches to tackle large-scale instances and derive lower bounds for solutions.
E N D
Great Ideas:Algorithm Implementation Richard Anderson University of Washington IUCEE: Algorithm Implementation
Theory and Practice • What is the connection between theory and practice IUCEE: Algorithm Implementation
Algorithm Implementation Challenge • Solve large instances of problems on real world data IUCEE: Algorithm Implementation
Network Flow • DIMACS Network Flow Challenge • Compare standard flow algorithms on different data sets • Dramatic speedups over simpler algorithms • Not all theoretical algorithms were good IUCEE: Algorithm Implementation
N-Body Problem • Simulate large scale phenomena • O(n2) algorithm reduces to O(n log n) algorithm • Interesting questions – what types of spatial decomposition trees to use IUCEE: Algorithm Implementation
Speeding up algorithms • Approximation algorithms • TSP with triangle inequality • Dist(a, c) Dist(a, b) + Dist(b, c) • Theorem 1: • A minimum spanning tree gives a 2 approximation of the TSP • Theorem 2 (Christophides) : • There exists a 3/2 approximation algorithm for the TSP • Construct matching of vertices of odd degree to get an eulerian tour IUCEE: Algorithm Implementation
Local Improvement • Improve solution until a local maximum is reached • Two-Opting IUCEE: Algorithm Implementation
Simulated Annealing • Local improvement algorithm that is allowed to make things worse • Over time the “temperature” is lowered, reducing variation IUCEE: Algorithm Implementation
Brute Force Solution • Look at all possible tours • n = 10 takes 1 second • n = 12 • n = 14 • n = 16 • n = 18 • n = 20 n = 10, 1 second, 1 n = 12, 2 minutes, 132 n = 14, 6 hours, 24024 n =16, 2 months, 5765760 n=18, 50 years, 1764322560 n=20, 200 centuries 670442572800 IUCEE: Algorithm Implementation
Dynamic programming algorithm • Reduces complexity from n! to n22n IUCEE: Algorithm Implementation
Euclidean TSP • Cities on a map • Distance function is Euclidean distance IUCEE: Algorithm Implementation
Exact Solution of Euclidean TSP IUCEE: Algorithm Implementation
Sweden Tour • Applegate et al. • 24,978 cities IUCEE: Algorithm Implementation
Finding an optimal tourSweden Tour Log IUCEE: Algorithm Implementation
TSP Solving • Finding good tours • Proving Lower Bounds IUCEE: Algorithm Implementation
Local Improvement IUCEE: Algorithm Implementation
Tour Merging IUCEE: Algorithm Implementation
Lower Bound • Optimal solution to an easier problem gives a lower bound • Assignment problem • Select one outgoing edge from each vertex • Select one incoming edge to each vertex • Minimize the cost of the selected edges
Making a TSP out of an Assignment Problem • Need to make sure edge cross every cut • This adds many constraints • To get lower bounds we progressively add more cuts
Summary for TSP Solution • Heuristics to find good tours • Improve lower bounds by adding cutting plans • Know we have the optimal when the lower bound meets the upper bound IUCEE: Algorithm Implementation