Download pptx

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Persistent Data Structures (Version Control)
Ephemeral
v0
Partial
persistence
version
list
Full
persistence
version
tree
v0
Confluently
persistence
version
DAG
v0
Purely
functional
v0
car cdr
update
v1
v1
v2
v3
v3
v4
v4
v5
v5
v2
v3
v6
v4
v5
query
v6
update
& query
v3
v5
updates at leaves
any version can be copied
query all versions
update/merge/query
all versions
Retroactive
v0
v6
v1
v2
query only
v2
v1
never modify
only create new pairs
only DAGs
v1
v2
v3
update & query all versions
updates in the past propragate
v4
1
Retroactive Data Structures
[E.D. Demaine, J. Iacono, S. Langerman, Retroactive Data Structures, Proc. 15th Annual ACMSIAM Symposium on Discrete Algorithms, 274-283, 2004]
r
v0
v1
v2
v3
v4
m
m Total number of updates/versions
r Distance from current time
n Maximal data structure size at any time
Partial retroactive Update all versions & query current
Full retroactive
Update & query all versions
2
Rollback  Full Retroactivity
current
v0
Update u1
Change 1
v1
v2
u2
2
v3
u3
3
+ Generic, can always be applied, space efficient
v4
u4
4
- Slow retroactive operations
3
Lower bounds for Retroactivity
a0 + a1x + a2x2 + ∙∙∙ + anxn
( requires Ω(n) multiplications given x by Motzkin’s theorem )
*
x0
x1
x2
∙∙∙
xi
∙∙∙
xn
( prefix sum queries require Ω(log n) )
* [M. Patrascu, E.D. Demaine, Logarithmic Lower Bounds in the Cell-Probe Model,
SIAM J. of Computing 35(4): 932-963, 2006]
4
Partial  Full Retroactivity
(m)
v0
u1
v1
u2
partial retroactive structures
(remember using full persistence)
current
v2
v3
u3
u4
v4
v4
u5
v5
u6
v6
u7
v7
u8
v8
u9
v9
v5
temporary during
queries to V5 (rollback)
5
Partial Retroactive
Commutative Data Structures
commutative = state independent of order of operations
6
Decomposable Search Problems
n
C
A
AD
B
D
A
C
insert(D)
CD
B
D
B
delete(D)
time
7
Specific Retroactive Data Structures
?
*
* [D.D. Sleator, R.E. Tarjan, A Data Structure for Dynamic Trees, Proc. 13th
Annual ACM Symposium on Theory of Computing, 114-122, 1981]
8
Related documents