TY - CHAP
T1 - Efficient pebbling for list traversal synopses
AU - Matias, Yossi
AU - Porat, Ely
PY - 2003
Y1 - 2003
N2 - We show how to support efficient back traversal in a unidirectional list, using small memory and with essentially no slowdown in forward steps. Using O(lg n) memory for a list of size n, the i'th back-step from the farthest point reached so far takes O(lg i) time worst case, while the overhead per forward step is at most epsilon for arbitrary small constant ε > 0. An arbitrary sequence of forward and back steps is allowed. A full trade-off between memory usage and time per back-step is presented: k vs. kn1/k and vice versa. Our algorithm is based on a novel pebbling technique which moves pebbles on a "virtual binary tree" that can only be traversed in a pre-order fashion. The list traversal synopsis extends to general directed graphs, and has other interesting applications, including memory efficient hash-chain implementation. Perhaps the most surprising application is in showing that for any program, arbitrary rollback steps can be efficiently supported with small overhead in memory, and marginal overhead in its ordinary execution. More concretely: Let P be a program that runs for at most T steps, using memory of size M. Then, at the cost of recording the input used by the program, and increasing the memory by a factor of O(lg T) to O(M lg T), the program P can be extended to support an arbitrary sequence of forward execution and rollback steps, as follows. The i'th rollback step takes O(lg i) time in the worst case, while forward steps take O(l) time in the worst case, and 1 + ε amortized time per step.
AB - We show how to support efficient back traversal in a unidirectional list, using small memory and with essentially no slowdown in forward steps. Using O(lg n) memory for a list of size n, the i'th back-step from the farthest point reached so far takes O(lg i) time worst case, while the overhead per forward step is at most epsilon for arbitrary small constant ε > 0. An arbitrary sequence of forward and back steps is allowed. A full trade-off between memory usage and time per back-step is presented: k vs. kn1/k and vice versa. Our algorithm is based on a novel pebbling technique which moves pebbles on a "virtual binary tree" that can only be traversed in a pre-order fashion. The list traversal synopsis extends to general directed graphs, and has other interesting applications, including memory efficient hash-chain implementation. Perhaps the most surprising application is in showing that for any program, arbitrary rollback steps can be efficiently supported with small overhead in memory, and marginal overhead in its ordinary execution. More concretely: Let P be a program that runs for at most T steps, using memory of size M. Then, at the cost of recording the input used by the program, and increasing the memory by a factor of O(lg T) to O(M lg T), the program P can be extended to support an arbitrary sequence of forward execution and rollback steps, as follows. The i'th rollback step takes O(lg i) time in the worst case, while forward steps take O(l) time in the worst case, and 1 + ε amortized time per step.
UR - http://www.scopus.com/inward/record.url?scp=35248885103&partnerID=8YFLogxK
U2 - 10.1007/3-540-45061-0_71
DO - 10.1007/3-540-45061-0_71
M3 - ???researchoutput.researchoutputtypes.contributiontobookanthology.chapter???
AN - SCOPUS:35248885103
SN - 3540404937
SN - 9783540404934
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 918
EP - 928
BT - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
A2 - Baeten, Jos C. M.
A2 - Lenstra, Jan Karel
A2 - Parrow, Joachim
A2 - Woeginger, Gerhard J.
PB - Springer Verlag
ER -