BaşlayınÜcretsiz başlayın

Üçgen ilişkilerini belirleme

Artık klikleri öğrendiğine göre, bildiklerini kullanarak bir ağda yapıları bulmayı deneme zamanı. İlk olarak üçgenlere odaklanacağız. Üçgenler, en basit karmaşık klik oldukları için ilgi çekicidir. Birkaç fonksiyon yazalım; bu egzersizler seni ağ algoritmalarının temel mantığına götürecek.

Twitter ağında, her düğüme o kullanıcının mesleğini belirten bir 'occupation' etiketi atanmıştır ve bu etiket celebrity, politician ve scientist olarak sınıflandırılır. Üçgen bulma algoritmalarının olası bir kullanım alanı, benzer mesleklere sahip kullanıcıların birbirleriyle bir klik içinde olma olasılıklarının daha yüksek olup olmadığını keşfetmektir.

Bu egzersiz, kursun bir parçasıdır

Python ile Ağ Analizine Giriş

Kursa Göz Atın

Egzersiz talimatları

  • itertools içinden combinations'ı içe aktar.
  • İki parametre alan — G ve n — ve verilen bir düğümün üçgen ilişki içinde olup olmadığını kontrol eden bir is_in_triangle() fonksiyonu yaz.
    • combinations(iterable, n), iterable içinden boyutu n olan kombinasyonları döndürür. Burada işine yarayacak, çünkü list(G.neighbors(n)) içinden boyutu 2 olan kombinasyonlara ihtiyacın var.
    • İki düğüm arasında bir kenar olup olmadığını kontrol etmek için .has_edge(node1, node2) metodunu kullan. Eğer bir kenar varsa, verilen düğüm bir üçgen ilişki içindedir ve True döndürmelisin.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

____

# 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
Kodu Düzenle ve Çalıştır