特定のプロパティを使用したグラフ生成のアルゴリズム


7

いくつかの一般的なプロパティ(たとえば、クラスタリング係数、平均最短経路長、次数分布など)を満たすグラフを生成するために提案された多数のアルゴリズムが存在する場合があります。

私の質問は特定のケースに関するものです。異なるクラスタリング係数と平均最短パス長を使用して、いくつかの無向の通常のグラフ(つまり、これらのグラフのすべてのノードが同じ数の隣接ノードを持っている)を生成したいと思います。より一般的には、次数の分布を修正することで、異なるクラスタリング係数と平均最短経路長を持つグラフを生成したいと思います。

これを行うためのよく知られたアルゴリズムは何ですか(または実際に何かありますか?)、同じ目的で推奨されるソフトウェアは何ですか?


回答:


5

あなたの問題に対する一般的なアルゴリズムはありませんが、(小さなオーダーのグラフに対して)通常行うことは

  1. nautyを使用して、いくつかの大まかな制約を満たすグラフを生成します(nautyは、(bi)連結グラフ、通常のグラフ、三角形/四角形のないグラフのみを生成できます。)

  2. 外部プログラムを使用して、必要な追加のプロパティに関して必要なグラフのみを抽出します。

あなたはセージで 1と2の両方を行うことができます!たとえば、平均距離10(ウィーナーインデックス??)といくつかのクラスタリング係数を持つ、次数20のすべての接続された5正規グラフを生成するとします。あなたは次のことをします

for G in graphs.nauty_geng(" 20 -c -d5 -D5" ):
    if G.wiener_index() == 10 and G.clustering_coeff() == SOMETHING:
       print G.adjacency_matrix()

セージに関する具体的な回答が必要な場合はお知らせください。

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