グラフアルゴリズムをテストするためのデータ


36

グラフアルゴリズムの実装をテストするために、膨大なデータセットのソースを探しています。また、ソース内のグラフのタイプ/分布(たとえば、有向/無向、単純/非単純、加重/無加重)に関する情報がわかっている場合は、その情報も提供してください。



理論的にはどうですか?:-)
Nils

回答:



17

私は他の答えよりも高レベルの答えをしようとします。

次のクラスの入力は、提案されたアルゴリズムのパフォーマンスまたはグラフ理論の推測の妥当性をテストするのに役立ちます。

  1. ランダムグラフ:多くのグラフのプロパティでは、ランダムグラフは期待値です。たとえば、サブグラフがランダムグラフで最小化されるときに、特定の完全な2部グラフが発生する回数。(Erdős-SimonovitsSidorenkoの美しい推測ですが2部グラフである場合、エッジ密度pのランダムグラフは、同じ次数とエッジ密度のすべてのグラフにわたって、Hの最小コピー数を漸近的に予想します。)ランダムグラフで指定された分布は、Yaoのミニマックス原理による、ランダムグラフアルゴリズムの多くの下限のソースです。 HpH

  2. 構造化グラフ:これは、手元の問題に対して何らかの形で特別に構造化されたグラフのクラスの大まかな指定です。たとえば、Turánの定理によれば、三角形を含まない頂点の最も密なグラフは完全な2部グラフK n / 2 n / 2です。このグラフは、三角形を避けるために特別に作成されたものです。nKn/2n/2

  3. 「非ランダム」グラフ:これらは、ランダムグラフのように完全に一般的なものと、構造化グラフのように問題に完全に固有のものの中間です。たとえば、そのようなファミリは、構造化グラフのランダムなサブグラフである可能性があります。このような例は、セメレディの規則性補題のより強力な変形を作成する際にしばしば出てきます。これらの例を生成する1つの方法は、ランダム入力をモデル化する「擬似ランダム性」の定義を考え出すことです。これにより、擬似ランダム入力に対して、アルゴリズムまたは推測が機能することを示すことができます。次に、疑似ランダム性に対する障害物を特定すると、これらの障害物を持つグラフは、反例である非ランダムグラフの大規模なコレクションを生成できます。この原則のより複雑な議論は、で見つけることができます2006年のTerry TaoのICMトーク。これらの非ランダムグラフは、Ben Greenなどとの彼の作品のいくつかの「ゼロシーケンス」にほぼ対応しています。


14

グラフを生成するには、通常geng、付属のプログラムを使用しnautyます。

http://cs.anu.edu.au/~bdm/nauty/

これにより、無向グラフ(「グラフ」とも呼ばれます)が生成されます。有向グラフを生成するためにdirectg、nautyに付属する出力をパイプ処理できます。

gengの使用は、n頂点まで(たとえば)すべてのグラフをテストしたい場合や、mエッジなどの接続されたすべてのグラフをテストしたい場合に適しています。より具体的な要件がある場合は、質問にそれらを明記してください。


11

Stanford GraphBaseはあなたの役に立つかもしれません:http ://www-cs-staff.stanford.edu/~knuth/sgb.html

ただし、ほとんどの場合、グラフを自分で生成し、生成されたグラフにはすべて特定のプロパティを設定する(または設定しない)ことをお勧めします。ランダムグラフは、多くの場合、アルゴリズムが実際に使用されるグラフの不十分な近似です。


9

巨大ではありませんが、おそらく便利です。MathematicaのGraphDataコレクションの3054「標準の名前付きグラフ」

形式は、1行に1つのグラフで、次のような名前と隣接ノードのリストがあります

{<グラフ名>、{{1、4}、{1、5}、{1、6}、{2、5}、{2、6}、{3、6}}

<グラフ名>の形式は、「AGraph」または{「Andrasfai」、6}


これらのグラフまたは有向グラフですか?
エミール



3

9回DIMACS実装の課題-最短経路は、「ベンチマークインスタンスとジェネレーターの標準セット、および既知の最短パスアルゴリズムのベンチマーク実装」を作成することを目標に2005〜2006年に実行されました。

ダウンロードページには、距離と時間の両方の重みを持つ2MBから335MBの範囲の圧縮されたUSA道路ネットワークグラフが含まれています。

http://www.dis.uniroma1.it/challenge9/download.shtml

これは、グラフ関数の独自のおもちゃ実装のベンチマークに役立ちます。


0

マスケット銃兵を使用できます。

https://people.cs.clemson.edu/~isafro/musketeer/index.html

これは、いくつかの入力グラフを受け入れ、元のグラフに任意に類似した別のグラフを生成するマルチスケールグラフジェネレータです。パラメーターは、異なる粗視化解像度で新しい構造を生成するのに十分な柔軟性を備えています。ギャラリーの例を参照してください。このパッケージは、検証およびベンチマークアルゴリズムの実験インスタンスを作成するのに最適です。

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