360 likes | 687 Views
Algorithm-Centric Definition of Computer Science . Computer science is the study of algorithms, their applications, and their realization in computing systems (computers, programs and networks). ?Algorithms are tiny but powerful" Richard Lipton. What Makes an A
E N D
1. What Makes an Algorithm Great? Richard M. Karp
FOCS 50 & ACO 20
October 24, 2009
2. Algorithm-Centric Definition of Computer Science Computer science is the study of algorithms, their applications, and their realization in computing systems (computers, programs and networks).
“Algorithms are tiny but powerful”
Richard Lipton
3. What Makes an Algorithm Great? Elegant
Surprising
Interesting analysis
Asymptotically efficient
Efficient in practice
Key to an important application
Historically important
Broadly applicable
Has implications for complexity theory
Produces beautiful output
4. Ancient and Classical Algorithms Positional number representation (Alkarismi)
Chinese remainder theorem
Euclidean algorithm
Gaussian elimination
Fast Fourier Transform
5. Key Tools and Techniques Divide-and-conquer
Quicksort, FFT, Odd-even merge
Recursion
Strassen matrix multiplication
Change of representation
Reducibility
Matrix inversion reducible to matrix multiplication
Fundamental data structures
dictionary, priority queue, union-find
Potential functions, amortized analysis
Dynamic programming
Smith-Waterman algorithm
Greed
Minimum spanning tree
6. Key Tools and Techniques Local search
Simplex algorithm
Randomization
Primality, string matching, min cut,…
Hashing
Bloom filter, consistent hashing,
locality sensitive hashing
Markov chain Monte Carlo, random walks
Counting bipartite matchings, computing volume
Separation vs. optimization
Minimizing a linear function over a convex set using a
separation oracle
Linear programming duality theory
7. Several Great Algorithms for the Same Problem Linear Programming
Primality testing
Sorting Network
Matrix multiplication
Traveling-Salesman Problem
Integer Factoring
8. Linear Programming Min c’x subject to Ax = b, x = 0
Simplex algorithm: local improvement, following edges of polyhedron
Cornerstone of optimization, exponential time in worst case, but highly efficient in practice, yields proof of duality theorem.
9. Linear Programming Ellipsoid algorithm: encloses optimal point in shrinking sequence of ellipsoids
Establishes that linear programming lies in P; polynomial time but quite inefficient in practice. Yields separation = optimization principle.
Interior-point algorithms: follow central path through interior of polyhedron. Polynomial time and efficient in practice. Competitive with simplex algorithm. Elegant in concept, but analysis is complicated.
10. Primality Testing Miller-Rabin randomized algorithm: random trials for witnesses of compositeness.
Low-degree polynomial time, negligible false positive probability, highly efficient and widely used, essential for public key cryptography.
AKS algorithm: verifies identity
(x-a)n = xn -a mod (n, x r -1) for polynomial-size range of a,r
Establishes that primality lies in P, but not useful in practice despite improvements by Lenstra. Pomerance and others.
11. Sorting Network Sorts n keys using fixed sequence of comparison-exchange operations.
Batcher Odd-Even Merge
Merge(n,n) = 2 Merge(n/2,n/2) + n
Merge(n,n) = O(n log n),
Sort(n) = O(n log2 n)
Best practical sorting network
12. AKS Sorting Network Requires C n log n comparisons, for large C.
Asymptotically optimal up to constant factor,
but not useful in practice.
Beautiful analysis: based on uniform binary tree with n leaves; tries to assign each key to leaf corresponding to its rank. Keys enter at root, migrate down tree. Error recovery: if key goes in wrong direction it eventually backs up and returns to correct path.
13. Matrix Multiplication/Matrix Inversion Gaussian elimination O(n3)
Strassen algorithm (1969) O(n2.81)
Shocking breakthrough. Elegant recursive structure. Useful in practice.
Coppersmith-Winograd (1990) O(n2.38)
Deep mathematical structure.
Not useful in practice.
14. Traveling-Salesman Problem Greedy linear-time heuristics
Christofides factor-1.5 approximation algorithms
Lin-Kernighan local improvement heuristic
Arora- Mitchell PTAS for Euclidean TSP
Cutting-plane methods (Applegate, Bixby, Chvatal, Cook) exact solution of huge TSPs. Not practically useful, but a tour de force.
15. Integer Factoring Quadratic Sieve
Number field sieve:
Time exp(c (log n) 1/3 (log log n)2/3)
Shor’s polynomial-time quantum algorithm
16. Early Discoveries in Combinatorial Optimization Greedy algorithms for minimum spanning tree. Boruvka(1926), Prim, Kruskal
Dijkstra/Dantzig shortest path algorithms
Max flow/min cut theorem and Ford-Fulkerson algorithm
Hungarian algorithm for assignment problem
Gale-Shapley stable matching algorithm
Edmonds “blossom” algorithm for maximum matching
17. Stable Matching n boys, n girls. Each person ranks members of opposite sex according to desirability as partner.
A 1-1 matching is stable if no pair are motivated to abandon their partners and elope.
O(n2) algorithm to find stable matching: in each round, an unmatched man proposes to the most desirable woman who has not rejected him; she tentatively accepts him if he is more desirable than her current partner.
18. Paths, Trees and Flowers (1965) Edmonds polynomial-time algorithm for
non-bipartite matching based on shrinking odd cycles contracted in search for an augmenting path, recursively finding
an augmenting path, and unshrinking.
Edmonds also discussed polynomial-time computation and verification, and gave informal definitions of P and NP.
19. Basic Data Structures Dictionary based on k-ary search trees
B-trees
Splay trees
Priority queue based on heaps
Union-Find data structures
Improvements based on these ideas, plus randomization and other algorithmic ideas, greatly improved the running times of all the basic combinatorial algorithms.
20. Randomized Algorithms Primality testing (Solovay-Strassen, Miller-Rabin) raised consciousness of TCS community
Volume of a convex body
Counting bipartite matchings (Jerrum, Sinclair, Vigoda)
Min-cut and min s-t cut (Karger, Bencur)
String matching
Hashing: Bloom filter, universal hashing, consistent hashing, locality-sensitive hashing.
21. Estimating the Volume of a Convex Body No deterministic polynomial-time algorithm based on membership tests can approximate the volume to within an exponential factor.
Approximating the volume is reducible to approximate uniform sampling.
Different random walks (grid walk, ball walk, hit-and-run) within a convex body converge rapidly to a uniform distribution. Beginning with Dyer, Frieze, Kannan (1991) a series of successively improved algorithms sample from a n-dimensional convex body with bounded relative error in time polynomial in n. Current champion O(n4) [Lovasz, Vempala (2003)].
22. Probabilistic Analysis For many problems, simple algorithms work well with high probability on Erdos-Renyi random graphs and instances drawn from other simple distributions. Rarely do algorithms perform well both in worst case and on average:
Two examples: Hopcroft-Karp bipartite matching algorithm and differencing heuristic for number partitioning.
23. Number Partitioning Partition a set of n integers into two subsets to minimize the difference of their sums.
Differencing algorithm [Karmarkar, Karp]
Repeat until only one number remains:
replace the two largest numbers by their difference
if the final number is d, can easily reconstruct a partition with difference d.
If the numbers are drawn independently from a uniform [0,1] or exponential distribution then the expected value of d is O(2 - n logn ). [B. Yakir].
The differencing algorithm and the standard LPT algorithm have the same worst-case performance.
24. Lin-Kernighan Heuristic Algorithm Euclidean traveling-salesman problem: find the shortest tour that visits a set of n points.
Lin-Kernighan algorithm repeatedly improves current tour by breaking a small number of links and reconnecting the resulting sub-tours. Key is an efficient algorithm for finding such an improvement if it exists.
25. Shotgun Sequencing of Human Genome Problem: reconstruct genetically active part of human genome from millions of reads (short substrings) and paired reads (pairs of reads at approximately known distance).
Acquisition of data and reconstruction algorithms based on detailed knowledge of structure of repeated sequences within the human genome. Method is tailored to one important instance.
26. Simulated Annealing Metaheuristic Applies to broad class of combinatorial optimization problems. Based on analogy with
controlled cooling in metallurgy.
Requires a neighborhood structure on the set of feasible solutions.
Repeat: given current solution x, choose a random neighbor x’; move to x’ with probability min(1, exp(-(cost(x’) – cost(x))/T));
Temperature T gradually reduced according to a cooling schedule, making cost-increasing moves increasingly unlikely to be accepted.
27. Algorithmic Proofs in Complexity Theory A nondeterministic Turing machine accepts an input if there exists a computation on that input leading to an accepting state.
NONDETERMINISTIC SPACE(s(n)) is closed under complement (Immerman, Szelepscenyi). Proof based on an inductive algorithm for computing the number of Turing machine configurations reachable from a given initial configuration.
Undirected connectivity is in LOGSPACE (Reingold)
Some problems require more time than space (Hopcroft, Paul, Valiant). Proved by showing that a n-step straight-line algebraic algorithm can be simulated with o(n) working storage.
28. IP = PSPACE (Shamir) IP: set of properties having interactive proofs,
in which a prover convinces a verifier that the property holds.
IP=PSPACE proven by giving a generic interactive proof of the validity of a quantified boolean formula using arithmetization to convert the formula to an algebraic identity over a finite field.
29. Algorithms Enabling Important Applications Fast Fourier transform
RSA public key encryption
Miller-Rabin primality testing
Berlekamp and Cantor-Zassenhaus polynomial factoring (Reed-Solomon decoding)
Lempel-Ziv text compression
Page rank (Google)
Consistent hashing (Akamai)
Viterbi algorithm for hidden Markov model
30. Algorithms Enabling Important Applications Smith-Waterman sequence alignment
Whole-genome shotgun sequencing
Spectral decomposition of matrices; approximation of matrices by low rank or sparse matrices.
Model checking algorithms using temporal logic and binary decision diagrams
31. Randomized Algorithms for Information Transmission Digital Fountain erasure codes for content delivery
Code Division Multiple Access (CDMA) (Qualcomm)
Compressed sensing of images
32. LT Code (Luby) A file consists of n packets (source symbols).
Goal: encode the file so that it can be decoded at many destinations, each of which may unpredictably receive a different set of transmitted code symbols.
The LT code operates like a “digital fountain,” generating an unlimited number of random code symbols, each of which is the XOR of some set of source symbols. Reception of slightly more than n code symbols enables efficient decoding of the file (with high probability).
To generate a code symbol, draw a positive integer d from a “magical” probability distribution, and transmit the XOR of a random set of d source symbols.
Decoding algorithm is based on simple value propagation.
33. Code Division Multiple Access (Viterbi) Allows multiple users to send information simultaneously over a single communication channel. Adapts to asynchronous transmission and arrrival and departure of users.
Each sender-receiver pair is assigned a pseudorandom sequence v in
{1, -1}k. To send a binary sequence, each 1 is encoded as v, each 0 as –v.
The encoded messages of the senders are summed and transmitted.
To decode one bit, the decoder takes the inner product of a transmitted k-tuple with v. Values greater than 0 are interpreted as 1, values less than 0, as 0.
The contributions of the other sender-receiver pairs nearly cancel and do not affect reception (with high probability).
34. Compressed Sensing (Candes, Romberg, Tao, Donoho) A spectacular advance in compression of images and other signals.
Principle: sparse signals can be approximated accurately by a small number of random projections.
Problem: compress a vector f in Rn without significant information loss.
Assumption: There is a basis (v1,v2,…,vn)
for Rn (for example, the wavelet basis) in which f has a sparse representation; i.e.,
f = ? <f,vj> vj in which most of the coefficients <f, vj> are negligible.
35. Compressed Sensing f = ? <f,vj > vj
Choose a random set (w1, w2, …, wm) of m orthonormal vectors in Rn where m << n.
Transmit <f, wk>, k = 1,2,…m
Using linear programming, approximately reconstruct f as f* = ? <z,vj> vj
where z in Rn is the vector of minimum L1 norm satisfying <f*,wk> = <f, wk>, k = 1,2,…,m
36. Et Cetera Parallel algorithms
Geometric algorithms
Approximation algorithms
On-line algorithms
Property Testing
Sublinear-time algorithms
Streaming algorithms
Quantum algorithms
Cryptographic algorithms
and more …