Menemukan node yang terlibat dalam segitiga
NetworkX menyediakan API untuk menghitung jumlah segitiga yang melibatkan setiap node: nx.triangles(G). Fungsi ini mengembalikan dictionary dengan node sebagai kunci dan jumlah segitiga sebagai nilai. Tugas Anda dalam latihan ini adalah memodifikasi fungsi yang didefinisikan sebelumnya untuk mengekstrak semua node yang terlibat dalam relasi segitiga dengan sebuah node tertentu.
Latihan ini adalah bagian dari kursus
Pengantar Analisis Jaringan di Python
Petunjuk latihan
- Tulis fungsi
nodes_in_triangle()yang memiliki dua parameter —Gdann— dan mengidentifikasi semua node yang memiliki relasi segitiga dengan sebuah node tertentu.- Di dalam
forloop, iterasi semua kemungkinan kombinasi relasi segitiga. - Periksa apakah node
n1dann2memiliki sisi di antara keduanya. Jika ya, tambahkan kedua node ke himpunantriangle_nodes.
- Di dalam
- Gunakan fungsi Anda dalam pernyataan
assertuntuk memeriksa bahwa jumlah node yang terlibat dalam relasi segitiga dengan node1pada grafTsama dengan35.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
from itertools import combinations
# Write a function that identifies all nodes in a triangle relationship with a given node.
def nodes_in_triangle(G, n):
"""
Returns the nodes in a graph `G` that are involved in a triangle relationship with the node `n`.
"""
triangle_nodes = set([n])
# Iterate over all possible triangle relationship combinations
for n1, n2 in ____:
# Check if n1 and n2 have an edge between them
if ____:
# Add n1 to triangle_nodes
____
# Add n2 to triangle_nodes
____
return triangle_nodes
# Write the assertion statement
assert len(____(____, ____)) == ____