尋找大小為「n」的所有 maximal cliques
既然你已經探索過三角形(以及開放三角形),接下來我們來看 maximal cliques。Maximal cliques 指的是無法再透過加入相鄰邊來擴展的 clique,對於在圖中尋找社群很有幫助。NetworkX 提供一個函式,可以找出圖中每個 maximal clique 所包含的節點:nx.find_cliques(G)。請先在 IPython Shell 中對 T 試用這個函式,熟悉它的輸出,然後再來解題。
本練習屬於課程
Python 網路分析入門
練習說明
- 撰寫函式
maximal_cliques(),包含兩個參數G與size,用來找出所有大小為 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 ____ == ____