ComenzarEmpieza gratis

Encontrar triángulos abiertos

¡Pasemos ahora a encontrar triángulos abiertos! Recuerda que son la base de los sistemas de recomendación de amistades; si "A" conoce a "B" y "A" conoce a "C", es probable que "B" también conozca a "C".

Este ejercicio forma parte del curso

Introducción al análisis de redes en Python

Ver curso

Instrucciones del ejercicio

  • Escribe una función node_in_open_triangle() con dos parámetros, G y n, que identifique si un nodo está en un triángulo abierto con sus vecinos.
    • En el bucle for, itera por todas las posibles combinaciones de relaciones de triángulos.
    • Si los nodos n1 y n2 no tienen una arista entre ellos, establece in_open_triangle a True, sal del if y devuelve in_open_triangle.
  • Usa esta función para contar cuántos triángulos abiertos existen en T.
    • En el bucle for, itera por todos los nodos de T.
    • Si el nodo actual n está en un triángulo abierto, incrementa num_open_triangles.

Ejercicio interactivo práctico

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

from itertools import combinations

# Define node_in_open_triangle()
def node_in_open_triangle(G, n):
    """
    Checks whether pairs of neighbors of node `n` in graph `G` are in an 'open triangle' relationship with node `n`.
    """
    in_open_triangle = False

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

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

            in_open_triangle = ____

            break

    return ____

# Compute the number of open triangles in T
num_open_triangles = 0

# Iterate over all the nodes in T
for n in ____:

    # Check if the current node is in an open triangle
    if ____:

        # Increment num_open_triangles
        ____ += 1

print(num_open_triangles)
Editar y ejecutar código