CommencerCommencer gratuitement

Identifier les nœuds impliqués dans des triangles

NetworkX fournit une API pour compter le nombre de triangles dans lesquels chaque nœud est impliqué : nx.triangles(G). Elle renvoie un dictionnaire dont les clés sont les nœuds et les valeurs, le nombre de triangles. Votre tâche dans cet exercice est de modifier la fonction définie plus tôt pour extraire tous les nœuds impliqués dans une relation de triangle avec un nœud donné.

Cet exercice fait partie du cours

Introduction à l’analyse de réseaux en Python

Afficher le cours

Instructions

  • Écrivez une fonction nodes_in_triangle() avec deux paramètres — G et n — qui identifie tous les nœuds en relation de triangle avec un nœud donné.
    • Dans la boucle for, itérez sur toutes les combinaisons possibles de relations de triangle.
    • Vérifiez si les nœuds n1 et n2 ont une arête entre eux. Si c’est le cas, ajoutez les deux nœuds à l’ensemble triangle_nodes.
  • Utilisez votre fonction dans une instruction assert pour vérifier que le nombre de nœuds impliqués dans une relation de triangle avec le nœud 1 du graphe T est égal à 35.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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(____(____, ____)) == ____
Modifier et exécuter le code