Académique Documents
Professionnel Documents
Culture Documents
Mpsi - Activite - Modelisationweb 3
Mpsi - Activite - Modelisationweb 3
laurent.jospin.59@free.fr, http://jospin.lstl.fr
Lycée Saint-Louis, Paris
On peut modéliser le web par un graphe dans lequel on définit une arête d’un site i à un site j s’il existe un lien
sur le site i pointant sur le site j.
1. Quelle représentation numérique du graphe semble plus adaptée ?
2. Ecrire une fonction qui génère un tel graphe de façon aléatoire en ajoutant des liens sortants à un site en suivant une
loi géométrique de paramètre p pris en argument (pour chaque site, on arrête d’ajouter des liens avec une probabilité
p à chaque itération). On ajoutera un lien systématique de chaque site vers lui-même.
3. On cherche à écrire un aspirateur de pages Web : une application qui télécharge une page, puis aspire les liens
depuis cette page et ce tant que l’utilisateur n’interrompt pas l’application. Quel type de parcours va-t-on utiliser ?
Pour modéliser cette application par une fonction Python, on constituera une liste des numéros des sites visités.
Après chaque téléchargement, on réalisera une expérience de Bernoulli de probabilité de succès p prise en argument
le processus, et en cas de succès on arrête la fonction et on renverra la liste des numéros des sites visités. Ecrire cette
fonction.
L’objectif de la suite de cette activité est de classer les sites internets par ordre d’importance. On estime en
premier lieu qu’un site web est important si beaucoup de sites pointent vers lui. Le principe de l’algorithme étudié est
de modéliser un surfeur aléatoire qui, partant d’une page quelconque, suit de façon équiprobable les liens des sites
web qu’il visite.
1
Modélisation du Web et classement des pages par importance
4 Graphe probabiliste
On suppose désormais que les arêtes du graphe sont pondérées par des probabilités.
9. Ecrire une fonction qui vérifie que les pondérations d’un graphe peuvent bien être interprétées comme de telles
probabilités.
12. Adapter l’algorithme de Dijkstra pour déterminer le chemin le plus probable d’un site Web de départ vers un site
Web d’arrivée.
13. Ecrire une fonction qui calcule la probabilité qu’un surfeur finisse par atteindre un site Web d’arrivée en partant
d’un site Web de départ. La précision relative des nombres à virgule en Python est de 10−16 (autrement dit, pour
Python, 1 == 1+1e-16 renvoie True).