Začněte nyníZačněte zdarma

Hledání trojúhelníkových vztahů

Teď, když už víš, co jsou kliky, je čas využít tyto znalosti k hledání struktur v síti. Začneme trojúhelníky – jsou to nejjednodušší komplexní kliky. Napíšeme několik funkcí, které tě provedou základní logikou síťových algoritmů.

V síti Twitter má každý uzel přiřazený atribut 'occupation', který rozděluje uživatele podle jejich povolání na celebrity, politician a scientist. Algoritmy pro hledání trojúhelníků lze využít například k tomu, abys zjistil/a, jestli uživatelé se stejným povoláním mají větší tendenci tvořit spolu kliky.

Toto cvičení je součástí kurzu

Úvod do analýzy sítí v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Importuj combinations z modulu itertools.
  • Napiš funkci is_in_triangle() se dvěma parametry – G a n – která zkontroluje, jestli se daný uzel nachází v trojúhelníkovém vztahu.
    • combinations(iterable, n) vrací kombinace velikosti n z iterable. Hodí se ti to zde, protože budeš chtít kombinace velikosti 2 z list(G.neighbors(n)).
    • K ověření, jestli mezi dvěma uzly existuje hrana, použij metodu .has_edge(node1, node2). Pokud hrana existuje, daný uzel je součástí trojúhelníkového vztahu a funkce by měla vrátit True.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

____

# 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
Upravit a spustit kód