Advanced Algorithm Design and Analysis Student: Gertruda Grolinger

Download Report

Transcript Advanced Algorithm Design and Analysis Student: Gertruda Grolinger

CSE 4080
Computer Science Project
Advanced Algorithm Design
and Analysis
Student:
Supervisor:
Gertruda Grolinger
Prof. Jeff Edmonds
Topics:
 Divide and Conquer: Fast Fourier Transformations
 Recursion: Parsing
 Greedy Algorithms: Matroids
 Dynamic Programming: Parsing CFG
 Network Flow: Steepest Assent, Edmonds-Karp,
Matching
 Classifying problems
 NP-completeness: Reductions
 Approximation Algorithms: Knapsack
 Linear Programming: “What to put in a hotdog?”
The Pebble Game
The Pebble Game
• One player game, played on a DAG
• Used for studying time-space
trade-off
Formalization:
• Directed acyclic graph
• Bounded in-degree
Output nodes
Nodes
Input nodes
Three main rules:
1. A pebble can be placed
on any input node
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’
The Goal:
to place a pebble on some
previously distinguished node
f while minimizing the number
of pebbles used
f
A move:
placing or removing one of the
pebbles
according to the three given rules
Strategy:
sequence of legal moves which ends in
pebbling the distinguished node f
Example 1
70
60
50
30
10
40
20
7 moves and 7 pebbles
Example 2
70
60
50
30
10
40
20
11 moves and 3 pebbles
Interpretation:
output
nodes
nodes
1. A pebble can be placed
on any input node ~ LOAD
input nodes
2. A pebble can be placed on
a node v if all predecessors of the node
v are marked with pebbles ~ COMPUTE
3. A pebble can be removed form a
node at any time ~ DELETE
• Use as few pebbles as possible ~ # REGISTERS
• Use as few moves as possible ~ TIME
In general:
How many pebbles
are required to pebble a graph
with n nodes?
Pyramid graph Pk:
Pyramid graph Pk:
Fact 1:
Every pebbling strategy for Pk (k > 1)
must use AT LEAST k + 1 pebbles.
That is Ω( √ n ) pebbles
expressed in number of edges n.
Pyramid graph Pk:
k=5
We need
at least:
k+1=6
Pyramid graph Pk:
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):
O(n/log n)
Proof:
• Recursive pebbling strategy
• Cases
• Recursions for each case
• Solutions:
P(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).
For each node v (not on the bottom row),
h d nodes In(v) = {u , u ,…u }
there will be
1
2
d
on the previous row
with edges to v.
w
v
The goal is to put a pebble on any single
node on the
top
row.
u
u
u
1
2
…
d
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
LoopaInvariant
 Next iteration: place
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
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 ui In(v)
to place a pebble on ui
 Once there is a pebble on all nodes ui 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: Q(h * w)
RB: Q(d (h-1))
 Space comparison
DP: Q(w)
RB:
Q(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 
Questions ?