×

为有效的版本控制而进行的持续尝试。 (英语) Zbl 1201.68042号

摘要:我们考虑一个数据结构问题,该问题是由Subversion等系统中分层目录结构的版本控制引起的。模型是,除了在任意版本中添加或删除目录和文件之外,还可以在两个任意版本之间移动和复制目录和文件。等效地,我们希望维护一个汇合的持久trie(其中内部节点表示目录,叶表示文件,边缘标签表示路径名),可以在两个任意版本之间复制子树,向现有节点添加新的子节点,并删除任意版本中的现有子树。
我们的第一个数据结构表示每个版本中的节点度(Delta)trie和“手指”(O(1)),同时支持每个操作在(O(text{lg},Delta)时间和空间中手指附近的手指移动(导航)和修改(包括子树副本)。这种数据结构本质上是标准做法的位置敏感版本——路径复制——为修改深度节点计算\(d\,\text{lg}\,\Delta)\(O(d\,\text{lg}\,\Delta)\)时间和空间,这在执行许多深度但附近的更新时是昂贵的。我们的第二个数据结构支持手指在\(O(\text{lg}\,\Delta)\)时间和空间中移动,而修改占用\(O(\text{lg}\,n)\)时间和空间。对于深度更新,即不平衡尝试,此数据结构的速度要快得多。这两种数据结构都是功能性的,这是一种比合流持久性更强的属性。如果没有这个更强大的属性,我们将展示如何加快这两个数据结构的速度,以支持在\(O(\text{lg}\,\text{1g}\、\Delta)\)中的移动,这基本上是最佳的。在此过程中,我们提出了一种全面重建完全持久化数据结构的通用技术,这很重要,因为摊销和持久化通常不会混合使用。特别是,该技术改进了之前对于完全持久化数组的最佳结果,并获得了第一个高效的完全持久化哈希表。

MSC公司:

68第05页 数据结构

软件:

LISP公司;颠覆
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Bent,S.W.,Sleator,D.D.,Tarjan,R.E.:偏向搜索树。SIAM J.计算。14(3), 545–568 (1985) ·Zbl 0568.68045号 ·doi:10.1137/0214041
[2] Blelloch,G.E.,Maggs,B.M.,Woo,S.L.M.:在平衡度搜索树上进行节省空间的手指搜索。摘自:2003年1月于马里兰州巴尔的摩举行的第14届ACM-SIAM离散算法年会论文集,第373–383页·Zbl 1092.68575号
[3] Carter,J.L.,Wegman,M.N.:哈希函数的通用类(扩展抽象)。In:程序。第九届ACM计算理论年会,第106–112页(1977年)
[4] Cormen,T.H.,Leiserson,C.E.,Rivest,R.L.,Stein,C.:算法导论,第二版。麻省理工学院出版社,剑桥(2001)·Zbl 1047.68161号
[5] Dietz,P.F.:完全持久数组(扩展抽象)。In:程序。算法和数据结构研讨会。计算机科学课堂讲稿,第382卷,第67-74页。施普林格,柏林(1989)·Zbl 0767.68017号
[6] Douceur,J.R.,Bolosky,W.J.:文件系统内容的大规模研究。SIGMETRICS执行评估。第27版(1),59–70(1999)·doi:10.1145/301464.301480
[7] Driscoll,J.R.,Sarnak,N.,Sleator,D.D.,Tarjan,R.E.:使数据结构持久化。J.计算。系统。科学。38(1), 86–124 (1989). 最初出现在STOC'86·Zbl 0667.68026号 ·doi:10.1016/0022-0000(89)90034-2
[8] Driscoll,J.R.,Sleator,D.D.K.,Tarjan,R.E.:具有链接的完全持久化列表。J.ACM 41(5),943–959(1994)·数字对象标识代码:10.1145/185675.185791
[9] Fiat,A.,Kaplan,H.:使数据结构融合持久。《算法》48(1),16-58(2003)·Zbl 1078.68021号 ·doi:10.1016/S0196-6774(03)00044-0
[10] 哈斯克尔·维基:拉链。http://www.haskell.org/haskellwiki/Zipper网站 (2008)
[11] Iacono,J.:用o(log n)最坏情况访问时间展开树的替代方法。In:程序。第十二届ACM-SIAM离散算法年会,第516–522页(2001)·Zbl 0987.68023号
[12] Kaplan,H.,Tarjan,R.E.:通过递归减慢连接的持久列表。In:程序。第27届ACM计算理论年会,第93–102页(1995)·Zbl 0978.68516号
[13] Krijnen,T.J.G.,Meertens,L.:为B.数学中心报告IW 219制作B树,荷兰阿姆斯特丹数学中心(1983)
[14] Mitzenmacher,M.:文件大小和双Pareto分布的动态模型。互联网数学。1(3), 305–333 (2003) ·Zbl 1171.68833号 ·doi:10.1080/15427951.2004.10129092
[15] Myers,E.W.:平均值。技术报告82-9,图森市亚利桑那大学计算机科学系。亚利桑那州(1982)
[16] Myers,E.W.:高效的应用数据类型。摘自:1984年1月于犹他州盐湖城举行的第11届美国计算机学会编程语言原理研讨会论文集,第66-75页
[17] Okasaki,C.:纯功能数据结构。剑桥大学出版社,剑桥(1998)·Zbl 0941.68032号
[18] Pátrašcu,M.,Thorup,M.:随机性无助于搜索前人。In:程序。第18届ACM-SIAM离散算法研讨会,第555–564页(2007年)·Zbl 1302.68102号
[19] 皮彭格,N.:纯粹与不纯正的口齿不清。ACM事务处理。程序。语言系统。19(2), 223–238 (1997) ·数字对象标识代码:10.1145/244795.244798
[20] Ports,D.R.K.,Clements,A.T.,Demaine,E.D.:PersiFS:一个具有高效表示的版本化文件系统。In:程序。第20届ACM操作系统原理研讨会,2005年10月
[21] Reps,T.、Teitelbaum,T.和Demers,A.:基于语言的编辑器的增量上下文相关分析。ACM事务处理。程序。语言系统。5(3), 449–477 (1983) ·数字对象标识代码:10.1145/2166.357218
[22] Sarnak,N.,Tarjan,R.E.:使用持久搜索树进行平面点定位。Commun公司。ACM 29(7),669–677(1986)·兹比尔0732.68102 ·数字对象标识代码:10.1145/6138.6151
[23] Sleator,D.D.,Tarjan,R.E.:动态树的数据结构。J.计算。系统。科学。26(3), 362–391 (1983) ·Zbl 0509.68058号 ·doi:10.1016/0022-0000(83)90006-5
[24] Swart,G.:计算几何交点的高效算法。技术报告85-01-02,华盛顿大学计算机科学系,西雅图,华盛顿(1985)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。