НачатьНачать бесплатно

Поиск узлов, входящих в треугольники

NetworkX предоставляет API для подсчёта количества треугольников, в которых участвует каждый узел: nx.triangles(G). Функция возвращает словарь, где ключи — это узлы, а значения — количество треугольников. В этом упражнении вам нужно доработать ранее определённую функцию так, чтобы она извлекала все узлы, участвующие в треугольнике с заданным узлом.

Это упражнение является частью курса

Введение в анализ сетей на Python

Посмотреть курс

Инструкции к упражнению

  • Напишите функцию nodes_in_triangle() с двумя параметрами — G и n — которая находит все узлы, образующие треугольник с заданным узлом.
    • В цикле for перебирайте все возможные комбинации связей в треугольниках.
    • Проверьте, существует ли ребро между узлами n1 и n2. Если да, добавьте оба узла в множество triangle_nodes.
  • Используйте написанную функцию в операторе assert, чтобы убедиться, что количество узлов, образующих треугольник с узлом 1 графа T, равно 35.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

from itertools import combinations

# Write a function that identifies all nodes in a triangle relationship with a given node.
def nodes_in_triangle(G, n):
    """
    Returns the nodes in a graph `G` that are involved in a triangle relationship with the node `n`.
    """
    triangle_nodes = set([n])

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____:

        # Check if n1 and n2 have an edge between them
        if ____:

            # Add n1 to triangle_nodes
            ____

            # Add n2 to triangle_nodes
            ____

    return triangle_nodes

# Write the assertion statement
assert len(____(____, ____)) == ____
Редактировать и запускать код