ПочатиПочніть безкоштовно

Визначення трикутних зв'язків

Тепер, коли ви дізналися про кліки, час застосувати знання, щоб знаходити структури в мережі. Спершу зосередимося на трикутниках. Вони цікаві тим, що це найпростіший приклад складної кліки. Напишімо кілька функцій; ці вправи проведуть вас крізь базову логіку мережевих алгоритмів.

У мережі Twitter кожен вузол має мітку 'occupation', де фах користувача Twitter поділено на celebrity, politician та scientist. Один із можливих застосунків алгоритмів пошуку трикутників — з'ясувати, чи користувачі зі схожими професіями частіше утворюють кліку один з одним.

Ця вправа є частиною курсу

Вступ до аналізу мереж у Python

Переглянути курс

Інструкції до вправи

  • Імпортуйте combinations з itertools.
  • Напишіть функцію is_in_triangle(), яка має два параметри — G і n — та перевіряє, чи перебуває заданий вузол у трикутному зв'язку.
    • combinations(iterable, n) повертає комбінації розміру n з iterable. Це стане в пригоді тут, адже вам потрібні комбінації розміру 2 з list(G.neighbors(n)).
    • Щоб перевірити, чи існує ребро між двома вузлами, скористайтеся методом .has_edge(node1, node2). Якщо ребро існує, то заданий вузол перебуває у трикутному зв'язку, і слід повернути True.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

____

# 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
Редагувати та запускати код