平面图中计算三角形的时间复杂度


16

可以在时间内对普通图形中的三角形进行计数,而我认为这样做要快得多是困难的(欢迎参考)。平面图呢?下面的简单过程表明可以在O n log n时间内完成此过程。我的问题有两个:O(n3)O(nlogn)

  • 此过程有什么参考?
  • 时间可以设为线性吗?

根据Lipton-Tarjan平面分离器定理的算法证明,我们可以在时间上以线性于图的大小的形式,将图的顶点划分为三组,从而不存在带有端点的边AB中的另一个,S的大小由O A,B,SABSAB的大小均以 2为上限O(n)A,B顶点的数目。注意,图中的任一完全位于内部的任何三角形或全部内部或用途中的至少一个顶点小号与来自另两个顶点小号或两者从小号。因此,它足以计算三角形的在图表上的数小号和的邻居小号(以及类似地为)。请注意,S及其A邻居诱发了一个k外平面图(该图是直径为4的平面图的子图。23ABSASBSSSABSAk4)。因此,可以通过动态编程或应用库尔塞勒定理直接计算这种图中三角形的数量(我确信Elberfeld等人已经在Logspace世界中找到了这种计数版本,并且我猜想它也存在)在线性时间世界中),因为形成无向三角形是性质,并且由于从嵌入的k外平面图很容易获得有界宽度树分解。MSO1k

因此,我们将问题简化为一对问题,每对问题都减少了一个恒定的分数,但以线性时间程序为代价。

请注意,可以扩展该过程以查找时间内输入图内任何固定连接图的实例数。O(nlogn)


6
您可以通过获取邻接矩阵并计算t r A 3/ 6来计算普通图中的三角形。这需要Ñ ω时间,其中ω < 2.373是矩阵乘法指数。Atr(A3)/6nωω<2.373
瑞安·威廉姆斯

@RyanWilliams当然,您是正确的!我将更新问题。
2015年

Answers:



19

尽管Bart Jansen的答案解决了子图计数的一般情况,但众所周知,计数(或列出)平面图中的所有三角形(或更普遍的是任何有界的任意图形)的线性时间要长得多。看到

C. Papadimitriou和M. Yannakakis,平面图的集团问题,通知。程序 Letters 13(1981),第131-133页。

N. Chiba和T.Nishizeki,树度和子图列出算法,SIAM J. Comput。14(1985),第210-223页。

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.