Adloun

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.