開始使用免費開始

尋找大小為「n」的所有 maximal cliques

既然你已經探索過三角形(以及開放三角形),接下來我們來看 maximal cliques。Maximal cliques 指的是無法再透過加入相鄰邊來擴展的 clique,對於在圖中尋找社群很有幫助。NetworkX 提供一個函式,可以找出圖中每個 maximal clique 所包含的節點:nx.find_cliques(G)。請先在 IPython Shell 中對 T 試用這個函式,熟悉它的輸出,然後再來解題。

本練習屬於課程

Python 網路分析入門

檢視課程

練習說明

  • 撰寫函式 maximal_cliques(),包含兩個參數 Gsize,用來找出所有大小為 n 的 maximal cliques。
    • for 迴圈中,使用 nx.find_cliques() 走訪 G 中所有的 cliques。
    • 若當前 clique 的大小等於 size,就把它加入清單 mcs
  • 使用一個 assert 敘述,搭配你實作的 maximal_cliques() 函式,檢查圖 T 中大小為 3 的 maximal cliques 是否共有 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 ____ == ____
編輯並執行程式碼