Alobé est un logiciel libre permettant de manipuler de grands graphes non-orientés décrits par la liste de leurs arrêtes. Il possède les caractéristiques suivantes :
Alobé a été entièrement réalisé par Glenn ROLLAND <glenux@fr.st> à l'occasion de travaux pratiques du cours de Grand Réseaux du Master 2 Ingénierie Informatique - Systèmes, Réseaux et Internet.
Alobé ne nécessite pas de bibliothèques de fonctions particulières pour fonctionnner.
Afin d'obtenir les sources les plus à jour, vous pouvez utiliser le logiciel de contrôle de sources Subversion
$ svn checkout http://repository.glenux.ath.cx/svn/Cours/M2/Grand_Reseaux/TP1/
Il n'y a pas de mot de passe, il suffit donc de presser la touche "Entrée" pour l'utilisateur "anonymous", si ce dernier vous est demandé.
Commencez par décompressez l'archive.
$ tar -xzvf alobe-0.2.tar.gz
Rendez vous ensuite dans le dossier qui vient d'être créé lors de la décompression.
$ cd alobe-0.2
Puis lancez l'auto-configuration du logiciel, puis la compilation.
$ ./autogen
$ ./configure
$ make
Le binaire produits se trouve dans le dossier :
Usage:
alobe <commande> <parametres_obligatoires>
[options]
Les commandes sont les suivants:
Les paramètres obligatoires sont les suivants:
Les parames optionnels sont les suivants:
Vous pouvez trouver la documentation de Alobé dans le dossier doc/html de l'application, ou en suivant ce lien.
On calcule la distance d'un noeud (le 24 par exemple) à tous les autres, ainsi que la moyenne de toutes ses distances, par la commande suivante:
./alobe -I -i web.data.gz -o result.txt -c 701654 -r 24
Ce qui produit le fichier result.txt suivant :
Maximum
distance : 1
Average distance : 0.666667
On obtient la distribution des distances pour un noeud donné (le 24 par exemple) de la façon suivante:
$ ./alobe
-J -i web.data.gz -o result.txt -c 701654 -r 24
Ce qui produit en sortie
0 1
1 336
2 3017
3 21100
4 89398
5 146225
6 145567
7 118491
8 77830
9 47189
10 21247
11 8628
12 1550
13 532
14 112
15 7
16 4
Soit le
graphique suivant :
On trace l'évolution de l'estimation de la distance moyenne (en fonction du nombre d'itération) par la commande suivante:
./alobe
-L -i web.data.gz -o result.txt -c 701654 -n 100 -r 24
Ce qui produit en sortie:
0 6.228710
1 7.560919
2 9.514071
3 9.537433
4 9.504442
5 9.567365
6 9.542382
7 9.429151
8 9.426282
9 9.566440
10 9.583777
11 9.450484
12 9.548250
13 9.503499
14 9.508191
15 9.475249
16 9.297400
17 9.210398
[...]
Soit sous forme graphique
:
Pour calculer la borne inférieure, on fera:
./alobe -M -i web.data.gz -o result.txt -c 701654 -n 5 -r 24
Iteration 0
-- choosing root 24
-- borne inférieure 17
Iteration 1 -- choosing root 60401
-- borne inférieure 18
Iteration 2 -- choosing root 700018
-- borne inférieure 24
Iteration 3 -- choosing root 77852
-- borne inférieure 24
Iteration 4 -- choosing root 45944
-- borne inférieure 24
Pour le calcul de la borne supérieure, on fait :
./alobe -N -i ~/web.data.gz -o result.txt -c 701654 -n 10 -r 24
Iteration 0
-- choosing root 24
-- borne supérieure 33
Iteration 1 -- choosing root 96542
-- borne supérieure 33
Iteration 2 -- choosing root 49208
-- borne supérieure 33
Iteration 3 -- choosing root 436498
-- borne supérieure 33
Iteration 4 -- choosing root 309990
-- borne supérieure 32
Iteration 5 -- choosing root 538890
-- borne supérieure 32
Iteration 6 -- choosing root 266656
-- borne supérieure 32
Iteration 7 -- choosing root 529998
-- borne supérieure 32
Iteration 8 -- choosing root 140145
-- borne supérieure 32
Iteration 9 -- choosing root 640316
-- borne supérieure 32
Le cumul des courbes précédentes se fait par :
$ ./alobe -O -i web.data.gz -o result.txt -c 701654 -n 100 -r 24
Puis :
$ ./defiplot.sh result.txt
Pour obtenir :
Remarque: pour le défi, il aurait fallu en plus utiliser une heuristique de choix des noeuds permettant de faire converger les deux courbes bornant le diamètre au plus vite. Par exemple, choisir les noeuds par degré décroissant dans la composante connexe, en supposant qu'un noeud a fort degré comme racine donne un arbre plus plat et donc la borne suppérieure par la même occasion...