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 :
| Personne | Amis |
|---|---|
| Ana | Bruno, Clara |
| Bruno | Ana, Clara, Dina |
| Clara | Ana, Bruno |
| Dina | Bruno, Ethan |
| Ethan | Dina, Fanny |
| Fanny | Ethan |
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.
- Distance 1 : ses amis Ana, Clara, Dina.
- Distance 2 : les amis de ceux-ci, pas encore atteints : Ethan (ami de Dina).
- 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
| Ana | Bruno | Clara | Dina | Ethan | Fanny | Écartement | |
|---|---|---|---|---|---|---|---|
| Ana | 0 | 1 | 1 | 2 | 3 | 4 | 4 |
| Bruno | 1 | 0 | 1 | 1 | 2 | 3 | 3 |
| Clara | 1 | 1 | 0 | 2 | 3 | 4 | 4 |
| Dina | 2 | 1 | 2 | 0 | 1 | 2 | 2 |
| Ethan | 3 | 2 | 3 | 1 | 0 | 1 | 3 |
| Fanny | 4 | 3 | 4 | 2 | 1 | 0 | 4 |
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.