ค้นหา maximal clique ทั้งหมดที่มีขนาด "n"
หลังจากที่ได้สำรวจ triangle (และ open triangle) แล้ว มาทำความรู้จักกับ maximal clique กัน Maximal clique คือ clique ที่ไม่สามารถขยายได้ด้วยการเพิ่ม edge ที่ติดกัน และเป็นคุณสมบัติที่มีประโยชน์ของกราฟในการค้นหา community NetworkX มีฟังก์ชันที่ช่วยระบุโหนดที่อยู่ใน maximal clique แต่ละอันในกราฟ ได้แก่ nx.find_cliques(G) ลองใช้ฟังก์ชันนี้กับ T ใน IPython Shell เพื่อทดสอบดู แล้วจึงทำแบบฝึกหัด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์เครือข่ายเบื้องต้นด้วย Python
คำแนะนำการฝึกหัด
- เขียนฟังก์ชัน
maximal_cliques()ที่มีพารามิเตอร์สองตัว คือGและsizeเพื่อค้นหา maximal clique ทั้งหมดที่มีขนาดn- ใน
forloop ให้วนซ้ำผ่าน clique ทั้งหมดในGโดยใช้ฟังก์ชันnx.find_cliques() - หาก clique ปัจจุบันมีขนาดเท่ากับ
sizeให้เพิ่มเข้าไปในลิสต์mcs
- ใน
- ใช้คำสั่ง
assertร่วมกับฟังก์ชันmaximal_cliques()เพื่อตรวจสอบว่ากราฟTมี maximal clique ขนาด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 ____ == ____