实际中是否已将链接剪切树用于最大流量计算或其他应用程序?


20

通过使用动态树(也称为链接剪切树),我通常会看到许多实现的最大流算法,狄尼克算法,推入重贴标签以及其他算法可以改善其渐近时间成本。

  • 推重贴标签通常在或或,但带有动态树ØV2ËØV3ØV2ËØVË日志V2/Ë
  • Dinic的算法在,但具有动态树ØV2ËØVË日志V

但是,大多数库中的最大流算法的实际实现似乎并未利用此数据结构。在实践中是否曾使用动态树进行最大流量计算?还是它们承担了过多的开销以至于无法解决现实世界中的问题规模?

是否还有其他使用链接剪切树的问题域?

这个问题与我在cstheory上提出的一个问题有关:现有技术中的最大流量算法是否可行?


链接剪切树的概述/描述,但仅声明“对于诸如网络流之类的应用程序有用”
vzn

根据reza引用的tarjan调查,基本上,线性时间算法在中等数量的顶点/边缘时表现非常好/最佳,然后在较大的顶点/边缘处出现了对数算法优于线性算法的阈值。因此对数访问fns很有用,并且对于非常大的图可能会更好。
vzn

Answers:


7

有一篇名为“ 动态树的实践 ”的文章,其中回顾了实际的实现。

Link-Cut树可以有效使用的其他类别在Database Indexing中。您可以在《数据库索引技术》一书中找到。


认为这需要一些阐述。一般而言,树对于索引很有用,但是在什么条件下会修改树?
vzn

@vzn:B +树,R树,H树和X树是一些示例。
Reza

当然,但是怀疑到目前为止,可能没有人尝试过在数据库索引中使用链接剪切树。它似乎是一个合理的应用程序,但似乎尚不清楚它们是否针对数据库索引中发生的相同操作进行了优化。
vzn

5

本文最后发现,使用标准Dimacs随机图生成器,对于Sleator / Tarjan最大流算法,链接剪切(LC)树的性能优于rake-compress(RC)树。

本文着重于将变化传播作为动态树的一种应用。例如,更改传播类似于必须基于单元格/公式依赖性对某些单元格的更改重新计算excel电子表格单元格的方式。作者将其代码作为开放库发布。

动态树 Acar,Blelloch,Vittes中的变化传播的实验分析

更改传播是一种用于自动调整算法输出以适应输入更改的技术。更改传播背后的想法是跟踪数据和函数调用之间的依赖关系,以便在输入发生更改时,可以重新执行受该更改影响的函数以更新计算和输出。更改传播使编译器可以动态化静态算法。


谢谢。很高兴看到涉及动态树的算法的一些基准。
罗伯·拉克兰
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.