【24h】

The input/output complexity of transitive closure

机译:传递闭包的输入/输出复杂度

获取原文

摘要

Suppose a directed graph has its arcs stored in secondary memory, and we wish to compute its transitive closure, also storing the result in secondary memory. We assume that an amount of main memory capable of holding s "values" is available, and that s lies between n, the number of nodes of the graph, and e, the number of arcs. The cost measure we use for algorithms is the I/O complexity of Kung and Hong, where we count 1 every time a value is moved into main memory from secondary memory, or vice versa.

In the dense case, where e is close to n2, we show that I/O equal to &Ogr;(n3 / √s) is sufficient to compute the transitive closure of an n-node graph, using main memory of size s. Moreover, it is necessary for any algorithm that is "standard," in a sense to be defined precisely in the paper. Roughly, "standard" means that paths are constructed only by concatenating arcs and previously discovered paths. This class includes the usual algorithms that work for the generalization of transitive closure to semiring problems. For the sparse case, we show that I/O equal to &Ogr;(n2e/s) is sufficient, although the algorithm we propose meets our definition of "standard" only if the underlying graph is acyclic. We also show that &OHgr;(n2e/s) is necessary for any standard algorithm in the sparse case. That settles the I/O complexity of the sparse/acyclic case, for standard algorithms. It is unknown whether this complexity can be achieved in the sparse, cyclic case, by a standard algorithm, and it is unknown whether the bound can be beaten by nonstandard algorithms.

We then consider a special kind of standard algorithm, in which paths are constructed only by concatenating arcs and old paths, never by concatenating two old paths. This restriction seems essential if we are to take advantage of sparseness. Unfortunately, we show that almost another factor of n I/O is necessary. That is, there is an algorithm in this class using I/O &Ogr;(n3e/s) for arbitrary sparse graphs, including cyclic ones. Moreover, every algorithm in the restricted class must use &OHgr;(n3e/s/log3 n) I/O, on some cyclic graphs.

机译:

假设有向图的弧线存储在辅助存储器中,我们希望计算其传递闭包,并将结果也存储在辅助存储器中。我们假定有一定容量的主存储器能够保存 s “值”,并且 s 位于 n (节点数)之间的图形和 e 的弧数。用于算法的成本度量是Kung和Hong的 I / O复杂度,每次将值从辅助存储器移入主存储器时,我们将其计数为1,反之亦然。

在密集情况下,其中 e 接近 n 2 ,我们显示I / O等于&Ogr; n 3 /√ s )足以计算 n -的传递闭包节点图,使用大小为 s 的主内存。此外,从某种意义上说,必须在本文中精确定义“标准”的任何算法。粗略地说,“标准”是指仅通过连接弧和先前发现的路径来构造路径。此类包括用于将传递闭环推广到半环问题的常用算法。对于稀疏情况,我们表明I / O等于&Ogr; n 2 e / s )就足够了,尽管仅当基础图是非循环的时,我们提出的算法才符合我们对“标准”的定义。我们还表明&OHgr;( n 2 e / s )对于稀疏情况下的任何标准算法都是必需的。对于标准算法,这解决了稀疏/非循环情况的I / O复杂性。通过标准算法在稀疏循环的情况下是否可以实现这种复杂性,尚不清楚,并且可以通过非标准算法克服界限。

然后,我们考虑一种特殊的标准算法,其中仅通过串联弧和旧路径来构造路径,而不是通过串联两个旧路径来构造路径。如果要利用稀疏性,此限制似乎必不可少。不幸的是,我们证明了 n I / O几乎是另一个必要的因素。也就是说,此类中有一种算法使用I / O &Ogr; n 3 e / s )用于任意稀疏图,包括循环图。此外,受限类中的每个算法都必须使用&OHgr;( n 3 e / s / log 3 n )I / O,在某些循环图中。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号