始める無料で始める

サイズ "n" の極大クリークをすべて見つける

三角形(と開いた三角形)を確認できたところで、次は極大クリークの概念に進みましょう。極大クリークは、隣接する辺を追加してもそれ以上拡張できないクリークのことで、コミュニティを見つける際に有用なグラフの性質です。NetworkX には、グラフ内の各極大クリークに含まれるノードを特定できる関数 nx.find_cliques(G) があります。IPython Shell で T に対してこの関数を試し、そのあとで演習に取り組んでください。

この演習はコースの一部です

Pythonで学ぶネットワーク分析入門

コースを見る

演習の手順

  • 2つの引数 Gsize を取り、サイズ n の極大クリークをすべて見つける関数 maximal_cliques() を作成します。
    • for ループでは、nx.find_cliques() 関数を使って G 内のすべてのクリークを反復処理します。
    • 現在のクリークのサイズが size なら、リスト mcs に追加します。
  • assert 文と作成した maximal_cliques() 関数を使って、グラフ T にサイズ 3 の極大クリークが 33 個あることを確認します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define maximal_cliques()
def ____:
    """
    Finds all maximal cliques in graph `G` that are of size `size`.
    """
    mcs = []
    for clique in ____:
        if ____ == ____:
            ____
    return mcs

# Check that there are 33 maximal cliques of size 3 in the graph T
assert ____ == ____
コードを編集して実行