Üç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ş
Egzersiz talimatları
itertoolsiçindencombinations'ı içe aktar.- İki parametre alan —
Gven— ve verilen bir düğümün üçgen ilişki içinde olup olmadığını kontrol eden biris_in_triangle()fonksiyonu yaz.combinations(iterable, n),iterableiçinden boyutunolan kombinasyonları döndürür. Burada işine yarayacak, çünkülist(G.neighbors(n))içinden boyutu2olan 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 veTruedö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