Download presentation
Presentation is loading. Please wait.
Published byThomasina McDaniel Modified over 8 years ago
1
Kinetic Heaps K, Tarjan, and Tsioutsiouliklis
2
Broadcast Scheduling Parametric and Kinetic Heaps Broadcast Scheduling Using a Kinetic Heap The Computational Geometry View What is known Four New Structures Simple Heap Balanced Heap Fibonacci Heap Incremental Heap Open problems Outline
3
(Lecture by Mike Franklinresearch papers) Users One server, many possible items to send (say, all the same length) One broadcast channel. Users submit requests for items. Goal: Satisfy users as well as possible, making decisions on-line. (say, minimize sum of waiting times) Server: many data items Broadcast channel (single-item) Broadcast Scheduling
4
Greedy = Longest Wait first (LWF): Send item with largest sum of waiting times. R x W : send item with largest ( # requests x longest waiting time) Scheduling policies (vs. number of requests or longest single waiting time)
5
5 Results of Franklin and others: LWF schedules well “in practice” (in simulations) but too expensive (linear-time) This claim used to justify approximations to R x W, still linear-time but with a smaller (parameterized) constant.
6
Questions (for an algorithm guy or gal) LWF does well compared to what? Try a competitive analysis Can we improve the cost of LWF? What data structure? Open question 1 Will talk about this
7
A collection of items, each with an associated key. key (i) = a i x + b i a i,, b i reals, x a real-valued parameter a i = slope, b i = constant Operations: make an empty heap. insert item i with key a i x + b i into the heap: insert(i,a i,b i ) find an item i of minimum key for x = x 0 : find-min( x 0 ) delete item i : delete(i) Parametic Heap
8
A parametric heap such that successive x-values of find mins are non-decreasing. (Think of x as time.) x c = largest x in a find min so far (current time) Additional operation: decrease the key of an item i, replacing it by a key that is no larger for all x x c : decrease-key(i,a,b) Kinetic Heap
9
Need a max-heap (replace find min by find max, decrease key by increase key, etc) Can implement LWF or R x W or any similar policy: Broadcast decision is find max plus delete Request is insert (if first) or increase key (if not) Only find max need be real-time, other ops can proceed concurrently with broadcasting Slopes are integers that count requests Broadcast scheduling via kinetic heap
10
LWF: Suppose a request for item i arrives at time t s If i is inactive then insert(i, t-t s ) If i is active with key at+b then increase-key(i, (a+1)t+(b-t s )) To broadcast an item at time t s we perform delete-max(t s ) and broadcast the item returned. Broadcast scheduling via kinetic heap (Cont.)
11
A key is a line computational geometry Equivalent problems: maintain the lower envelope of a collection of lines in 2D projective duality maintain the convex hull of a set of points in 2D under insertion and deletion “kinetic” restriction = “sweep line” query constraint What is known about parametric and kinetic heaps?
12
Overmars and Van Leeuwen (1981) O( log n) time per query O(log 2 n) time per update, worst-case Chazelle (1985), Hershberger and Suri (1992) (deletions only) O( log n) time per query, worst-case O(n log n) for n deletions Results I
13
Results II Chan (1999) Dynamic hulls and envelopes O( log n) time per query O(log 1+ n) time per update, amortized Brodal and Jacob (2000) O( log n) time per query O( log n log log log n) time per insert, O( log n log log n) timer per delete, amortized
14
Results III Basch, Guibas, and Hershberger (1997) “Kinetic” data structure paradigm
15
Four different data structures, each one best in a different setting. Simple Heap Balanced Heap Fibonacci Heap Incremental Heap Our results
16
A balanced binary tree, with items in the leaves in left-right order by decreasing key slope. The tree is a tournament on items by current key. Simple heap (highlights) We get O(log 2 n) for delete and insert O(1) for find-min All bounds are amortized
17
A better deletions only data structure Dynamize using the technique of Bently and Saxe Balanced heap (highlights) We get O(log n loglog n) for delete O(log n) for find-min and insert
18
Based one Fibonacci heaps with lazy linking. We link only when it is safe Fibonacci heap (highlights) We get O(log 2 n) for delete O(log n) for find-min and insert O(log n) for decrease-key
19
Incremental heap (highlights) Assumptions insertion of i: a i = 1, increase key of i: a i := a i + 1 Group items by key slope, each group is an ordinary Fibonacci heap Move items among groups as key slopes change (“displaced” items because entire subtrees are moved) We get find-max, insert : O(1) The k th increase-key : O(log min{k,n}) delete : O(log n)
20
A balanced binary tree, with items in the leaves in left-right order by decreasing key slope. The tree is a tournament on items by current key. Simple heap (details)
21
a b e d c a b d c e a a c a
22
Simple kinetic heaps (Cont) Add swap times at internal nodes
23
a b e d c a b d c e a a c a 3 6 6.8 4.4
24
Simple kinetic heaps (Cont) Add minimum future swap time
25
a b e d c a b d c e a a c a 3 3 6.8 3 6 3 4.4 6.8
26
Simple kinetic heaps (Cont) When we do a find-min if the current time moves forward, we act as follows: Locate all nodes whose winner changes. The paths from the root to those nodes form a subtree. Update this subtree
27
a b e d c a b d c e a a c a 3 3 6.8 3 6 3 4.4 6.8
28
a b e d c a b d c e a a c a 3 3 3 6 3 4.4 6.8
29
a b e d c a b d c e b a c a 3 3 6 3 4.4 6.8
30
a b e d c a b d c e b b 20 3 c a 3 4.4 6.8
31
a b e d c a b d c e b b 20 3 c b 5 5 6.8
32
a b e d c a b d c e b b c b 20 5 3 5 6.8
33
a b e d c a b d c e b b c b 20 5 3 5 6.8
34
a b e d c a b d c e b b e e 20 3 6.8 20 5
35
a b e d c a b d c e b b e e 3 5 6.8
36
Simple kinetic heaps – insert & delete Use the regular mechanism of (say) red-black trees
37
a b e d c a b d c e b b e e f 20 3 5 6.8 20
38
a b e d c a b d c e b b e e 3 5 6.8 20 f f f -20
39
a b e d c a b d c e b f e e -10 3 6.9 6.8 f f f -20
40
Simple kinetic heaps (analysis) Find-min takes O(1) time if we do not advance the current time. Advancing the current time can be expensive on the worst-case Amortization: Assign O(log n) potential to each node whose swap time is in the future. This potential pays for advancing the time. So find-min takes O(1) amortized time. Insert and delete take O(log 2 n) amortized time
41
How do we make this a parametric heap ? (Overmars-Van Leeuwen)
42
a b e d c a b c e d
43
Looks like we use non linear space ? Each node keeps the chain of segments that are on its envelope but not on its parent envelope. This makes the space linear.
44
a b e d c a b c e d
45
Analysis Using search trees to represent the envelopes sorted by slopes then: Find-min takes O(log n) time Insert and delete take O(log 2 n) time: You split and concatenate O(log n) such envelopes.
46
Balanced kinetic heaps Def: The level of a line is the depth of the highest node where it is stored. Plan: first we’ll do only deletions faster and then we’ll add insertions. Our starting point is the previous data structure.
47
Deletion-only data structure The level of a line is the depth of the highest node where it is stored.
48
a b e d c a b c e d d
49
Deletion-only data structure What happens when we delete a line ?
50
a b e d c a b c e d d
51
a b e d c a b e d d
52
a b e d c a b e d d
53
a b e d c a b e d d
54
Balanced kinetic heaps When we delete a line, lines only decrease their level.
55
56
57
Analysis Key idea: Implement the envelopes using finger search trees How much time it takes to delete an element ? O(log n) + log (# lines get on the replacement piece) + log (# lines get off the replacement piece) If in all nodes # lines get on/off the replacement piece < log 2 n we are ok --- the delete takes O(log n loglog n) time However it could be that # lines get on/off the replacement piece > log 2 n
58
Analysis (Cont) If a line gets on the replacement piece it changes its level Since the total number of level changes is nlog(n) The number of chains of length > log 2 n is at most n/log(n) So the total work in moving long chain is O(n) and can be charged to the initialization phase.
59
A better deletions only data structure O(n) init. time and then O(log n loglog n) per delete. O(1) find-min if we are kinetic. Now we add insert. Summary so far
60
Balanced kinetic heaps (finalle) Balanced heaps (step 2): Use a well known reduction by Bently and Saxe to add insertions....... Maintain a binary counter of deletion only data structures
61
Balanced kinetic heaps Delete : O(log n loglog n)....... Insert : O(log n) Find-min : O(log n) (kinetic)
62
Based one Fibonacci heaps with lazy linking. We link only when it is safe Fibonacci heap (highlights) We get O(log 2 n) for delete O(log n) for find-min and insert O(log n) for decrease-key
63
Fibonacci Kinetic Heap Mimic Fibonacci heap, but only do links for permanent comparisons. Store unlinked tree roots of equal rank in a sorted list O(log n) find min, insert, decrease key, O(log 2 n) delete, amortized
64
Fibonacci heaps (Fredman & Tarjan 84) Want to do decrease-key(x,h, ) faster than delete+insert. ( in O(1) time.)
65
55 6 2 6 1 85 95 10 Heap ordered (Fibonacci) trees
66
Linking Operations are defined via a basic operation, called linking, of Fibonacci trees: Produce a F k from two F k-1, keep heap order. 1 6 5 8 2 9 5 10 4 116 9 5 96 10
67
Basic idea: delay the linking until they are safe S1S1 S0S0 SrSr Regular heap
68
Linking The basic operation is inserting a tree of rank r into S r, making the appropriate linking if needed. Insert(i) : Insert a new node containing i into S 0 This may cascade, but we have one tree less every time we do the linking Decrease-key(i, a’.b’) : Decrease the key of i in the tree containing it making cascading cuts, link the resulting trees back into the structure.
69
Analysis Similar to the analysis of F-heaps Multiply the potential by log n
70
Incremental heap (highlights) Assumptions insertion of i: a i = 1, increase key of i: a i := a i + 1 Group items by key slope, each group is an ordinary Fibonacci heap Move items among groups as key slopes change (“displaced” items because entire subtrees are moved) We get find-max, insert : O(1) The k th increase-key : O(log min{k,n}) delete : O(log n)
71
Open problems Experiments: What is the best structure in practice? Better bounds: kinetic heaps in ordinary F-heap bounds? parametric heaps in O(log n) amortized time per operation? Simple kinetic heaps via splay trees?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.