Encontrando nós envolvidos em triângulos
O NetworkX fornece uma API para contar o número de triângulos dos quais cada nó participa: nx.triangles(G). Ela retorna um dicionário com os nós como chaves e o número de triângulos como valores. Sua tarefa neste exercício é modificar a função definida anteriormente para extrair todos os nós envolvidos em um relacionamento de triângulo com um determinado nó.
Este exercício faz parte do curso
Introdução à Análise de Redes em Python
Instruções do exercício
- Escreva uma função
nodes_in_triangle()que tenha dois parâmetros —Gen— e identifique todos os nós em um relacionamento de triângulo com um nó dado.- No laço
for, itere por todas as combinações possíveis de relacionamentos em triângulo. - Verifique se os nós
n1en2têm uma aresta entre eles. Se tiverem, adicione ambos os nós ao conjuntotriangle_nodes.
- No laço
- Use sua função em uma instrução
assertpara verificar se o número de nós envolvidos em um relacionamento de triângulo com o nó1do grafoTé igual a35.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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(____(____, ____)) == ____