Identificarea relațiilor de tip triunghi
Acum că ai aflat despre clici, e momentul să folosești cunoștințele dobândite pentru a descoperi structuri într-o rețea. Vei începe cu triunghiurile – cele mai simple clici complexe. Să scriem câteva funcții; aceste exerciții te vor ghida prin logica fundamentală din spatele algoritmilor de rețea.
În rețeaua Twitter, fiecare nod are asociată o etichetă 'occupation', care clasifică ocupația utilizatorului în una dintre categoriile celebrity, politician și scientist. O aplicație practică a algoritmilor de găsire a triunghiurilor este să verifici dacă utilizatorii cu ocupații similare au mai multe șanse să formeze o clică împreună.
Acest exercițiu face parte din cursul
Introducere în analiza rețelelor în Python
Instrucțiuni pentru exercițiu
- Importă
combinationsdinitertools. - Scrie o funcție
is_in_triangle()cu doi parametri –Gșin– care verifică dacă un nod dat se află sau nu într-o relație de tip triunghi.combinations(iterable, n)returnează combinații de dimensiunendiniterable. Acest lucru îți va fi util, deoarece ai nevoie de combinații de dimensiune2dinlist(G.neighbors(n)).- Pentru a verifica dacă există o muchie între două noduri, folosește metoda
.has_edge(node1, node2). Dacă muchia există, înseamnă că nodul dat face parte dintr-o relație de tip triunghi și trebuie să returneziTrue.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
____
# 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