Advanced Algorithm Design and Analysis Student: Gertruda Grolinger Supervisor: Prof. Jeff Edmonds CSE 4080 Computer Science Project
Linear Programming: “What to put in a hotdog?” Approximation Algorithms: Knapsack NP-completeness: Reductions Classifying problems Network Flow: Steepest Assent, Edmonds-Karp, Matching Matching Dynamic Programming: Parsing CFG Greedy Algorithms: Matroids Recursion: Parsing Divide and Conquer: Fast Fourier Transformations Topics:
The Pebble Game
Used for studying time-space trade-off Used for studying time-space trade-off One player game, played on a DAG One player game, played on a DAG
Output nodes Nodes Input nodes Formalization: Directed acyclic graph Directed acyclic graph Bounded in-degree Bounded in-degree
Three main rules: 2. A pebble can be placed on a node v if all predecessors of the node v are marked with pebbles 3. A pebble can be removed from a node at any time Note: a pebble removed from the graph can be ‘reused’ 1. A pebble can be placed on any input node on any input node
Strategy: sequence of legal moves which ends in pebbling the distinguished node f The Goal: to place a pebble on some previously distinguished node f while minimizing the number of pebbles used A move: placing or removing one of the pebbles according to the three given rules f
moves and 7 pebbles Example 1
moves and 3 pebbles Example 2
Interpretation: 1. A pebble can be placed on any input node ~ LOAD on any input node ~ LOAD 2. A pebble can be placed on a node v if all predecessors of the node a node v if all predecessors of the node v are marked with pebbles ~ COMPUTE v are marked with pebbles ~ COMPUTE 3. A pebble can be removed form a node at any time ~ DELETE ~ # REGISTERS Use as few pebbles as possible ~ # REGISTERS ~ TIME Use as few moves as possible ~ TIME input nodes nodes output nodes
In general: How many pebbles are required to pebble a graph with n nodes? with n nodes?
Pyramid graph P k :
Fact 1: Every pebbling strategy for P k (k > 1) must use AT LEAST k + 1 pebbles. That is Ω ( ) pebbles expressed in number of edges n. n √
Pyramid graph P k : k = 5 We need at least: k + 1 = 6
Pyramid graph P k : Let’s consider having k = 5 pebbles
Arbitrary graph with restricted in-degree (d =2): Fact 2: Every graph of in-degree 2 can be pebbled with O(n/log n) pebbles (n = # nodes in the graph).
Arbitrary graph with restricted in-degree (d =2): Proof : Recursive pebbling strategy Cases Recursions for each case Solutions: P(n) = O(n/log n) O(n/log n)
A Pebble problem Pebble a DAG that has a rectangle of nodes that is w wide and h high (h <<w). h w The goal is to put a pebble on any single node on the top row. For each node v (not on the bottom row), there will be d nodes In(v) = {u 1, u 2,…u d } on the previous row with edges to v. v u1u1 u2u2 udud …
Dynamic Programming 1.Algorithm that uses as many pebbles (memory) as needed, but does not redo any work 2.Loop invariant 3.How much time and how many pebbles?
Dynamic Programming algorithm Place a pebble on each of the nodes on the bottom row After the i th iteration: there is a pebble on each node of the i th row from the bottom Next iteration: place a pebble on each node on the (i +1) st row and remove pebbles from the i th row so they can be reused Exit when i =h Loop Invariant Progress made, LI maintained
Time and pebbles (space) needed Time = O(h *w) Pebbles = 2 *w = O(w)
Recursive Backtracking Task: to place a pebble on some node v which is r rows from the bottom Algorithm (recursive) to accomplish this task that re-does work but uses as few pebbles as possible Time(r ) and Pebbles(r) are time and pebbles used to place a pebble on one node r rows from the bottom
Recursive Backtracking algorithm My task is to place a pebble on some node v which is r rows from the bottom I ask a friend, for each of the d nodes u i In(v) to place a pebble on u i Once there is a pebble on all nodes u i In(v), I place a pebble on node v
Time(r ) and Pebbles(r) Time(r) = d * Time(r-1) + 1 ≈ d * Time(r-1) = = d (r-1) Pebbles(r ) = Pebbles(r-1) + (d – 1) = = (d - 1) * (r – 1) + 1
Conclusion : time-space trade-off Time comparison DP: (h * w) RB: (d (h-1) ) Space comparison DP: (w) RB: (d * h) where h << w
References: 1.Gems of theoretical computer science U. Schöning, R. J. Pruim 2. Asymptotically Tight Bounds on Time-Space Trade-offs in a Pebble Game T. Lengauer, R. E. Tarjan 3. Theoretical Models 2002/03 P. van Emde Boas
Thank you for your attention Thank you for your attention Questions ?