次数分布からグラフを再構築する


12

次数分布が与えられた場合、与えられた次数分布に従うグラフをどのくらい速く構築できますか?リンクまたはアルゴリズムのスケッチが良いでしょう。アルゴリズムは、グラフを作成できない場合は「no」を、複数のグラフを作成できる場合はいずれかの例を報告する必要があります。


ようこそ!「次数分布」はどのように与えられますか?確率分布として、度のリストとして、...?
ラファエル

1
こちらの演習2.6をご覧ください。与えられた次数シーケンスからグラフを作成するためのアルゴリズムが与えられます。
utdiscant

2
ラファエルのコメントを明確にするために、学位分布を読むとき、学位の確率分布を考えます。控えめに言ったように、学位の順序はおそらくあなたが望むものです。確率的な意味を意味するなら、おそらく分布を「近似」しようとするランダム化された構築アルゴリズムを探しているでしょう。しかし、ほとんどのグラフは何らかの異常値になると思うので、この設定で「いいえ」と報告することはあまり意味がありませんか?
ルーカスクック

そして、あなたが実際に与えられた次数分布でグラフを生成したいなら、この論文にはトリックがあるようです。私の以前のコメントで説明されたアルゴリズムは、実際には呉陰の回答のHavel-Hakimiアルゴリズムのようです。
utdiscant

回答:


9

このような単純なグラフ(自己ループも平行エッジもなし)の作成方法を意味する場合、Havel-Hakimiの定理が探しているのかもしれません。あなたは自分でそれをグーグルで検索できます。また、ウィキペディアのページ度(グラフ理論)も役立ちます。


ありがとう。はい、この場合はWikiページが役立ちます
。– singhsumit

11

度分布は度のリストとして指定された場合、その後、あなたは次のことを行うことができ、与えられたの学位を持つノードは、dは1をd nnd1,...,dn

n頂点に完全なグラフを作成します。各頂点のV IK 、N、に分割D Iコピー。ここではスプリット手段、すべての頂点にエッジを持つ部数を作成vの私はに端を持っていることは、ないエッジの他のコピーにV I。場合D 私は = 0を、単に頂点を削除します。新しいグラフでは、これらの頂点が呼び出すV I jのための1 jのD IをKnnviKndivividi=0vij1jdi

完了すると、に非常に密なグラフができます+ d n頂点; このグラフをHと呼びます。最大のマッチングのためにお気に入りのアルゴリズムを選択し(グラフが非常に密であるため、おそらく高速な行列乗算ベースのアルゴリズムのいずれかを使用する必要があります)、それをHで実行します。これは、一致するMを返します。マッチングが完全でない場合(つまり、すべての頂点をカバーしていない場合)、次数分布は不可能でした。そのため、noを返します。N=d1+...+dnHHM

あなたは完璧なマッチングがある場合は、そしてないですべてのエッジを削除するMからHおき、次いで、かつ1 I n個マージDを私は多くの頂点は、V I 1v i d iを1つの頂点u iに変換します。2つの頂点をマージするということは、結果の頂点がすべての頂点にエッジを持つように、それらを1つに結合することを意味します。元の少なく​​とも1つにエッジがあります。結果のグラフGを呼び出します。希望する次数分布を持っています。MMH1indivi1,...,vidiuiG

得られたランタイムはωは(執筆時点で約ある最速の行列乗算アルゴリズムの定数である2.373)。得られたグラフの頂点の数の点で、緻密である次数分布の最悪の場合、我々はO N 2 ωにO(Nω)ω2.373O(n2ω)


あなたの(非常に明確な)説明から、行列乗算が方程式に入る理由はまったく明らかではありません。
ラファエル

2
@Raphael行列乗算は、最大マッチングを解決する方法の一つ、それは最高のバージョンから、緻密グラフの好ましい方法であるエドモンズのマッチングアルゴリズムで実行O(|V||E|)O(N2.5)H
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.