diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..8c6739f --- /dev/null +++ b/src/README.md @@ -0,0 +1,45 @@ +# Compte Rendu - Mini Projet 1 - Algorithme PageRank +## Utilisation + +Pour lancer le programme : +javac Node.java +javac Simulation.java +java Simulation + +Le programme renvoi directement le résultat du PageRank sous forme d'un tableau trié du haut vers le bas en fonction des scores. +La pertinence est également affiché pour que l'on puisse constater la corrélation (plus ou moins forte) entre pertinence et score. +Exemple d'un tableau : + +java Simulation 4 + +les sites sont classés dans l'ordre du plus haut score au plus bas: + 1) site1 - score:3 - pertinence:98.0 + 2) site4 - score:2 - pertinence:96.0 + 3) site2 - score:0 - pertinence:76.0 + 4) site3 - score:0 - pertinence:80.0 + +fin programme + +## Fonctionnement +La simulation repose sur une distribution aléatoire des pertinences au début du programme. +Lorsque la simulation commence, et à chaque instant t (tours de boucle), deux sites sont choisis aléatoirement avec certaines +conditions pour amélorier les performances ainsi que le rendu : + +le premier site, x, ne peut pas avoir formé un lien avec tous les autres +sites au moment où il est choisi et il ne peut pas être le même site que le x de l'instant t précédent; si une de ces conditions n'est +pas respectés, le programme choisi un autre x. + +Le site y ne peut pas être le même que x et ne peut pas avoir une association dirigée provenant de x. L'algorithme est donc simple, +puisque si l'on associe x à y, x ne considérera plus y lors de prochaines explorations de graphe. + +Si toute les conditions sont respectés, les pertinences de chaque site auquel x s'est précedemment associé (s'il y en a) sont récupérées +et comparées une par une à celle du nouveau site y. Si cette dernière est supérieure ou égale pour chaque comparaison, x s'associe à y (lien dirigé de x vers y). Après tout cela, on passe au tour de boucle suivant. + +Il y a deux conditions d'arrêt, choisies arbitrairement : + - la première est qu'il doit y avoir au moins un site lié à tous les autres sites du graphe et que le nombre d'arêtes créés sur l'ensemble + du graphe doit être de n*(n+1)/2 -n, où n désigne le nombre de sites. Dans ce cas, on arrête la simulation. + + - la deuxième est que si au bout de 10000 tours de boucles (choisi arbitrairement) aucune nouvelle liaision a été créée, on arrête la + simulation. + +A la fin du programme, les sites sont triés en fonction de leur score, et le résultat est affiché à la console. \ No newline at end of file