ComenzarEmpieza gratis

Encontrar nodos que forman triángulos

NetworkX proporciona una API para contar el número de triángulos en los que participa cada nodo: nx.triangles(G). Devuelve un diccionario con los nodos como claves y el número de triángulos como valores. Tu tarea en este ejercicio es modificar la función definida antes para extraer todos los nodos que están en una relación de triángulo con un nodo dado.

Este ejercicio forma parte del curso

Introducción al análisis de redes en Python

Ver curso

Instrucciones del ejercicio

  • Escribe una función nodes_in_triangle() con dos parámetros —G y n— que identifique todos los nodos en una relación de triángulo con un nodo dado.
    • En el bucle for, itera por todas las combinaciones posibles de relaciones en triángulo.
    • Comprueba si los nodos n1 y n2 tienen una arista entre ellos. Si la tienen, añade ambos nodos al conjunto triangle_nodes.
  • Usa tu función en una instrucción assert para comprobar que el número de nodos en una relación de triángulo con el nodo 1 del grafo T es igual a 35.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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(____(____, ____)) == ____
Editar y ejecutar código