線形時間で直径を計算できるグラフクラス


11

思い出して直径グラフ最長の最短経路の長さG。グラフが与えられると、直径G を計算するための明白なアルゴリズムは、すべてのペアの最短経路問題(APSP)を解決し、見つかった最長経路の長さを返します。GGdiam(G)

APSP問題は、いくつかのグラフクラスの最適な時間で解決できることが知られています。一般的なグラフには、O M n log n 時間で実行される代数グラフ理論的アプローチがあります。ここで、M n は行列乗算の限界です。ただし、Yuster が示すように、直径の計算は明らかにAPSPに厳密にはリンクされていません。O(n2)O(M(n)logn)M(n)

直径をより高速に、たとえば線形時間で計算できる、自明でないグラフクラスがいくつかありますか?

コードグラフ、およびブロックグラフなどのコードグラフのサブクラスに特に興味があります。たとえば、Gがクリークツリーとして一意に表現できる場合、弦グラフ直径はO n + m 時間で計算できると思います。このようなグラフはur-chordalとしても知られています。GO(n+m)G


直径の計算では、クリークツリーが与えられると、弦グラフは(ほぼ)ツリーと同じように動作します。同様に、区間グラフでは、支配的なペア(ATフリーグラフに存在する)が必ず直径を決定します。
Yixin Cao

@YixinCaoしかし、一般に、コードグラフが持つことができる個別のクリークツリーの数は、頂点の数で指数関数的です。さらに、私はすべてのクリークツリーで直径が同じであるとは思わない。これは問題だと思いますが、ウル・コードのグラフでは、クリークの木の直径は明確です。他に何か考えたことはありますか?
ジュホ

コードグラフの直径がそのクリークツリーの直径と同じであるとは言いません。(kの星頂点の、 kノードのパスであるクリークツリーを持つことができます。)私が意味したのは、クリークツリーのリーフのペア(その中の任意の頂点)の間にあるグラフの直径でなければなりません。k+1k
Yixin Cao

@YixinCao OK、今ではよく理解できました。それでも、(高速の)アルゴリズムは私にはまだ明らかではありません。追加の詳細または参照がある場合は、お気軽に!
ジュホ

回答:


9

vv

{AT,claw}

LBFSとBFSは両方ともグラフのサイズで線形ですが、もちろんm=Ω(n2)Knなど)の場合、ランタイムはo(n2)なりません。あなたの議論は、おそらく線形アルゴリズムO(m+n)o(n2)

したがって、コードグラフの一部のサブクラスでは、線形アルゴリズムはLBFSを実行し、頂点を取得してから、その頂点からBFSを実行します。弦グラフの場合、これは最大で1の誤差で直径を決定します。これが正確であるグラフは、偶数のべき乗が弦であるグラフのようです。これらはまさに、昇る太陽や(rising sunK2)

日の出グラフ
(ソース:graphclasses.org

  • Feodor F. Dragan、Falk Nicolai、AndreasBrandstädtLexBFS-orderings and powers of graph、WG 1996、LNCS 1197、166–180。土井:10.1007 / 3-540-62559-3_15

logn


O(n+m)o(n2)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.