MulaiMulai sekarang secara gratis

Mengidentifikasi relasi segitiga

Sekarang setelah Anda mempelajari tentang clique, saatnya memanfaatkan pengetahuan tersebut untuk menemukan struktur dalam sebuah jaringan. Target pertama Anda adalah segitiga. Kita mungkin tertarik pada segitiga karena ini adalah clique kompleks yang paling sederhana. Mari menulis beberapa fungsi; latihan-latihan ini akan membawa Anda melalui logika dasar di balik algoritma jaringan.

Dalam jaringan Twitter, setiap node memiliki label 'occupation' yang menunjukkan pekerjaan pengguna Twitter, diklasifikasikan menjadi celebrity, politician, dan scientist. Salah satu penerapan potensial dari algoritma pencarian segitiga adalah mengetahui apakah pengguna dengan pekerjaan serupa lebih mungkin berada dalam sebuah clique satu sama lain.

Latihan ini adalah bagian dari kursus

Pengantar Analisis Jaringan di Python

Lihat Kursus

Petunjuk latihan

  • Impor combinations dari itertools.
  • Tulis fungsi is_in_triangle() dengan dua parameter — G dan n — yang memeriksa apakah sebuah node berada dalam relasi segitiga atau tidak.
    • combinations(iterable, n) mengembalikan kombinasi berukuran n dari iterable. Ini akan berguna di sini, karena Anda memerlukan kombinasi berukuran 2 dari list(G.neighbors(n)).
    • Untuk memeriksa apakah ada sisi antara dua node, gunakan metode .has_edge(node1, node2). Jika sisi ada, maka node tersebut berada dalam relasi segitiga, dan Anda harus mengembalikan True.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

____

# Define is_in_triangle()
def is_in_triangle(G, n):
    """
    Checks whether a node `n` in graph `G` is in a triangle relationship or not.

    Returns a boolean.
    """
    in_triangle = False

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____:

        # Check if an edge exists between n1 and n2
        if ____:
            in_triangle = ____
            break
    return in_triangle
Edit dan Jalankan Kode