CommencezCommencez gratuitement

Détecter des relations en triangle

Maintenant que vous avez vu les cliques, mettez vos nouvelles connaissances à profit pour repérer des structures dans un réseau. Commencez par les triangles. Ils nous intéressent parce qu'ils représentent la clique complexe la plus simple. Écrivons quelques fonctions ; ces exercices vous feront parcourir la logique de base des algorithmes de réseaux.

Dans le réseau Twitter, chaque nœud possède une étiquette 'occupation' où le type d'emploi de l'utilisateur Twitter est classé en celebrity, politician et scientist. Une application possible des algorithmes de détection de triangles consiste à vérifier si des utilisateurs ayant des occupations similaires sont plus susceptibles de former une clique entre eux.

Cette activité fait partie du cours

Introduction à l'analyse des réseaux en Python

Voir le cours

Instructions de l’exercice

  • Importez combinations depuis itertools.
  • Écrivez une fonction is_in_triangle() qui prend deux paramètres — G et n — et vérifie si un nœud donné fait partie d'une relation en triangle ou non.
    • combinations(iterable, n) retourne les combinaisons de taille n à partir de iterable. C'est utile ici, car vous voulez des combinaisons de taille 2 à partir de list(G.neighbors(n)).
    • Pour vérifier si une arête existe entre deux nœuds, utilisez la méthode .has_edge(node1, node2). Si une arête existe, alors le nœud donné fait partie d'un triangle et vous devez retourner True.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

____

# Define is_in_triangle()
def is_in_triangle(G, n):
    """
    Checks whether a node `n` in graph `G` is in a triangle relationship or not.

    Returns a boolean.
    """
    in_triangle = False

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

        # Check if an edge exists between n1 and n2
        if ____:
            in_triangle = ____
            break
    return in_triangle
Modifier et exécuter le code