Aller au contenu principal

Informatique · Seconde · 5 min de lecture

Réseaux sociaux : distances, diamètre et centre d'un graphe

Un réseau social se représente par un graphe (sommets = personnes, arêtes = relations) ; distance entre deux sommets = nombre minimal d'arêtes d'un chemin qui les relie ; écartement d'un sommet = sa plus grande distance aux autres ; diamètre = plus grand écartement ; rayon = plus petit écartement ; centre = sommet(s) d'écartement égal au rayon ; notion de « petit monde » et expérience de Milgram (1967).

Chapitre du programme : Sciences numériques et technologie

Bloc 1 sur 7 · Comprendre

Comprendre : un réseau social est un graphe

Dans les exemples de cette leçon, on étudie un graphe connexe, non orienté et non pondéré : toute personne est reliée aux autres par une chaîne, l’amitié est réciproque et chaque lien compte pour un. Un réseau social se représente ici par un graphe : chaque personne est un sommet, et deux sommets sont reliés par une arête quand les deux personnes sont amies.

La distance entre deux personnes est le plus petit nombre de liens à suivre pour aller de l'une à l'autre. Exemple, avec six personnes :

Tableau : Personne, Amis
PersonneAmis
AnaBruno, Clara
BrunoAna, Clara, Dina
ClaraAna, Bruno
DinaBruno, Ethan
EthanDina, Fanny
FannyEthan

Ana et Dina ne sont pas amies, mais Ana → Bruno → Dina les relie en deux liens : leur distance est 2. Ana et Fanny sont à distance 4 (Ana → Bruno → Dina → Ethan → Fanny).

Bloc 2 sur 7 · Approfondir

Approfondir : écartement, diamètre, rayon, centre

Sur le graphe connexe étudié, tous les sommets sont accessibles. Dans un réseau non connexe, on travaille séparément par composante ; le programme donné ne définit pas une distance finie vers une personne inaccessible.

  • L'écartement d'une personne est sa plus grande distance à une autre personne du réseau.
  • Le diamètre du graphe est le plus grand des écartements.
  • Le rayon est le plus petit des écartements.
  • Le centre est formé des personnes dont l'écartement est égal au rayon.

Le programme ci-dessous est une vérification facultative ; sa syntaxe avancée n’est pas un attendu à maîtriser en SNT. Il calcule les distances depuis chaque personne en explorant le réseau couche par couche (les amis, puis les amis des amis…), puis en déduit ces grandeurs :

amis = {
    "Ana": ["Bruno", "Clara"],
    "Bruno": ["Ana", "Clara", "Dina"],
    "Clara": ["Ana", "Bruno"],
    "Dina": ["Bruno", "Ethan"],
    "Ethan": ["Dina", "Fanny"],
    "Fanny": ["Ethan"],
}

def distances(depart):
    dist = {depart: 0}
    file = [depart]
    while file:
        p = file.pop(0)
        for q in amis[p]:
            if q not in dist:
                dist[q] = dist[p] + 1
                file.append(q)
    return dist

ecart = {p: max(distances(p).values()) for p in amis}
print(ecart)
print("diamètre", max(ecart.values()), "rayon", min(ecart.values()))
print("centre", [p for p in amis if ecart[p] == min(ecart.values())])
{'Ana': 4, 'Bruno': 3, 'Clara': 4, 'Dina': 2, 'Ethan': 3, 'Fanny': 4}
diamètre 4 rayon 2
centre ['Dina']

Dina est le centre : aucune personne n'est à plus de deux liens d'elle.

Petit monde. Les expériences de chaînes de connaissances de Milgram, décrites notamment par Travers et Milgram en 1969, ont observé des chaînes courtes parmi celles ayant atteint une personne cible. L’échantillon était particulier et de nombreuses chaînes n’ont pas abouti : cela ne prouve pas une distance universelle entre deux personnes quelconques. La longueur d’un chemin dans un graphe compte des liens ; elle ne mesure pas une vitesse réelle de diffusion, qui dépend aussi des délais, des choix et de l’activité des personnes.

Bloc 3 sur 7 · Exemple

Exemple guidé : l'écartement de Bruno

Énoncé. Dans le réseau précédent, quel est l'écartement de Bruno ?

Méthode : par couches.

  1. Distance 1 : ses amis Ana, Clara, Dina.
  2. Distance 2 : les amis de ceux-ci, pas encore atteints : Ethan (ami de Dina).
  3. Distance 3 : Fanny (amie d'Ethan).

Toutes les personnes sont atteintes ; la plus éloignée, Fanny, est à distance 3. L'écartement de Bruno est 3.

Bloc 4 sur 7 · Visualiser

Voir : le tableau des distances

Tableau : Ana, Bruno, Clara, Dina, Ethan, Fanny, Écartement
AnaBrunoClaraDinaEthanFannyÉcartement
Ana0112344
Bruno1011233
Clara1102344
Dina2120122
Ethan3231013
Fanny4342104

La dernière colonne donne les écartements : le plus grand (4) est le diamètre, le plus petit (2) le rayon.

Continuez sur votre lancée

Vous avez découvert l’essentiel et un exemple. Retrouvez la suite du cours et les points à retenir, puis passez à l’entraînement guidé dans votre compte.

  • Les formules et les repères à retenir
  • Les erreurs fréquentes expliquées
  • Un exercice avec des aides et sa correction

L’accès gratuit comprend les cours et exercices de votre niveau choisi.

Sources

  • BO spécial n°1 du 22 janvier 2019 — programme de sciences numériques et technologie de seconde, thème « Les réseaux sociaux »
  • J. Travers et S. Milgram, An Experimental Study of the Small World Problem, Sociometry 32(4), 1969, pages 425 et 431 : échantillon, chaînes abouties et abandons. https://www.csc2.ncsu.edu/faculty/mpsingh/local/Social/f16/wrap/readings/Travers%2BMilgram-Sociometry-1969-2786545.pdf
  • NetworkX, documentation officielle eccentricity et implémentation : distances vers tous les sommets et contrôle de connexité. https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.distance_measures.eccentricity.html ; https://networkx.org/documentation/stable/_modules/networkx/algorithms/distance_measures.html

Vous pensez avoir trouvé une erreur dans cette leçon ? Signalez-la par e-mail.

Explorer les autres cours

Accès rapide