informatique (tronc commun des prépas scientifiques) · Chapitre 13 · Exercice de TD
Six degrés de séparation — mesurer un petit monde
Parcours de graphes · niveau 3 (difficile)
É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".
Exercices semblables
- Sortir du labyrinthe corrigé
- Le graphe est-il un arbre ? corrigé
- Le graphe biparti, ou le coloriage en deux couleurs corrigé
- L'échelle des mots corrigé
- Les arbres, preuve du théorème corrigé