Six degrés de séparation — mesurer un petit monde
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 13 — Parcours de graphes
Énoncé
Calculer la distance moyenne dans un modèle de graphe de type "petit monde" après recâblage aléatoire d'une fraction d'arêtes.
Corrigé
On estime la distance moyenne en sélectionnant un échantillon représentatif de sources et en exécutant des BFS :
import random
def distance_moyenne(G: dict, nb_sources: int = 50) -> float:
total, compte = 0, 0
for s in random.sample(list(G), nb_sources):
d = distances(G, s) # BFS complet
total += sum(d.values())
compte += len(d) - 1
return total / compte
L'introduction de seulement 1 % d'arêtes aléatoires (raccourcis) divise la distance moyenne par un facteur 5, illustrant de façon algorithmique le concept des "six degrés de séparation".
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.