Compare commits

...

5 commits

Author SHA1 Message Date
Glenn Y. Rolland 379bd05f52 Compress data 2020-05-18 12:32:59 +02:00
Glenn Y. Rolland acd211ba7c Show all warnings 2020-05-18 01:54:22 +02:00
Glenn Y. Rolland 801512f47d Remove empty files 2020-05-18 01:53:39 +02:00
Glenn Y. Rolland e927349536 Add markdown documentation 2020-05-18 01:51:51 +02:00
Glenn Y. Rolland 3902a833dc
Update README.md 2020-05-18 01:32:52 +02:00
31 changed files with 554 additions and 718800 deletions

View file

View file

@ -1 +0,0 @@
/usr/share/automake-1.7/INSTALL

View file

@ -1,5 +1,6 @@
SUBDIRS = src
CFLAGS = -Wall
EXTRA_DIST = doc INSTALL README Doxyfile autogen.sh

0
NEWS
View file

View file

@ -29,9 +29,9 @@ $ ./alobe -N -i by_hand.0.10 -c 10 -r 3 -n 1 -o -
```
```shell-session
./alobe -N -i by_hand.0.11 -c 11 -r 0 -n 1 -o -
$ ./alobe -N -i by_hand.0.11 -c 11 -r 0 -n 1 -o -
```
```shell-session
./alobe -N -i by_hand.0.9 -c 9 -r 4 -n 1 -o -
$ ./alobe -N -i by_hand.0.9 -c 9 -r 4 -n 1 -o -
```

View file

@ -1,13 +0,0 @@
0 1
0 2
1 3
1 7
2 3
2 4
2 5
3 5
3 6
3 7
3 8
5 7
6 7

BIN
data/by_hand.0.10.gz Normal file

Binary file not shown.

View file

@ -1,10 +0,0 @@
0 1
0 2
1 3
1 4
3 5
4 6
5 7
5 8
6 9
9 10

BIN
data/by_hand.0.11.gz Normal file

Binary file not shown.

View file

@ -1,12 +0,0 @@
0 1
0 2
1 3
1 7
2 3
2 4
2 5
3 5
3 7
3 8
5 7
6 7

BIN
data/by_hand.0.9.gz Normal file

Binary file not shown.

View file

@ -1,555 +0,0 @@
0 1
0 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
27 31
27 32
27 33
27 34
27 35
27 36
27 37
27 38
27 39
27 40
27 41
27 42
27 43
27 44
27 45
27 46
27 47
27 48
9 49
9 50
9 51
2 52
2 53
2 54
2 55
2 56
2 57
2 58
2 59
2 60
2 61
2 62
2 63
2 64
2 65
2 66
2 67
2 68
2 69
2 70
2 71
2 72
2 73
2 74
2 75
2 76
2 77
2 78
2 79
2 80
2 81
2 82
2 83
2 84
2 85
2 86
2 87
2 88
2 89
2 90
2 91
2 92
2 93
2 94
2 95
2 96
2 97
2 98
2 99
2 100
2 101
2 102
2 103
2 104
2 105
2 106
2 107
2 108
2 109
2 110
2 111
2 112
2 113
2 114
2 115
2 116
2 117
2 118
2 119
2 120
2 121
2 122
2 123
2 124
2 125
2 126
2 127
56 128
56 129
54 130
54 131
54 132
52 133
52 134
63 135
63 136
63 137
3 4
3 5
3 6
3 7
3 8
3 138
3 24
3 25
3 26
3 139
3 17
3 140
3 14
3 13
3 10
3 141
3 142
3 143
65 144
65 145
65 146
65 147
53 148
53 149
53 150
53 151
72 152
72 153
72 154
72 155
72 156
72 157
72 158
72 159
72 160
72 161
64 152
64 162
64 163
64 164
64 165
64 166
64 167
75 168
75 169
75 170
75 171
75 172
75 173
75 174
75 175
75 176
66 177
66 178
66 179
89 180
89 152
89 154
89 181
89 182
89 183
89 184
89 185
89 186
89 187
71 188
71 189
71 190
71 191
71 192
71 193
71 194
71 195
71 196
71 152
71 197
93 198
93 199
88 155
88 152
79 152
91 152
95 152
95 168
95 1
94 152
92 124
96 152
97 152
97 1
82 152
106 152
103 152
103 1
125 152
90 152
111 152
87 152
112 152
121 152
59 1
59 152
98 152
16 3
16 4
16 5
16 6
16 7
16 8
16 24
16 25
16 26
16 143
49 51
58 152
62 152
80 152
198 199
180 152
180 154
180 187
156 155
156 154
156 153
133 152
69 152
120 152
4 5
4 6
4 7
4 8
4 24
4 25
4 26
4 15
4 143
162 152
31 24
31 33
31 34
31 35
31 36
31 44
31 45
31 46
31 47
31 48
31 1
31 43
50 51
134 152
5 6
5 7
5 8
5 24
5 25
5 26
5 19
5 18
5 20
5 139
5 143
32 31
32 33
32 34
32 35
32 36
32 43
32 44
32 45
32 46
32 47
32 48
6 7
6 8
6 24
6 25
6 26
6 143
33 34
33 35
33 36
33 43
33 44
33 45
33 46
33 47
33 48
147 146
7 8
7 24
7 25
7 26
7 22
7 21
7 19
7 18
7 17
7 143
34 35
34 36
34 43
34 44
34 45
34 46
34 47
34 48
35 36
35 1
35 43
35 44
35 45
35 46
35 47
35 48
8 24
8 25
8 26
8 143
10 4
10 5
10 6
10 7
10 8
10 24
10 25
10 26
10 139
10 17
10 140
10 143
36 23
36 43
167 166
176 169
176 95
176 171
176 170
176 173
176 174
11 59
11 143
12 59
38 39
38 40
39 40
39 1
13 4
13 5
13 6
13 7
13 8
13 24
13 25
13 26
13 14
13 143
14 4
14 5
14 6
14 7
14 8
14 24
14 25
14 26
14 139
14 17
14 140
14 143
15 3
15 5
15 6
15 7
15 8
15 24
15 25
15 26
15 143
17 4
17 5
17 6
17 8
17 24
17 25
17 26
17 139
17 140
17 142
17 143
18 3
18 4
18 6
18 8
18 24
18 25
18 26
18 19
18 22
18 143
43 24
43 1
43 30
43 44
43 45
43 46
43 47
43 48
44 36
44 3
44 45
44 46
44 47
44 48
20 3
20 4
20 6
20 7
20 8
20 24
20 25
20 26
20 143
45 36
45 46
45 47
45 48
46 36
46 47
46 48
22 3
22 4
22 5
22 6
22 143
22 8
22 24
22 25
22 26
22 19
22 21
47 36
47 1
47 48
23 138
23 18
23 21
23 143
23 30
48 36
24 25
24 26
24 28
25 26
25 28
25 139
25 140
25 19
25 143
26 28
26 143
28 3
28 4
28 5
28 6
28 7
28 8
28 27
28 143
29 3
29 4
29 5
29 6
29 7
29 8
29 24
29 25
29 26
29 28
29 143
139 4
139 6
139 7
139 8
139 24
139 26
139 140
139 13
139 143
140 4
140 5
140 6
140 7
140 8
140 24
140 26
140 9
140 143
141 4
141 5
141 6
141 7
141 8
141 24
141 25
141 26
141 14
141 143
142 4
142 5
142 6
142 7
142 8
142 24
142 25
142 26
142 139
142 140
142 143

BIN
data/tp1_ex2_web.0.200.gz Normal file

Binary file not shown.

File diff suppressed because it is too large Load diff

BIN
data/tp1_ex3_web.gz Normal file

Binary file not shown.

View file

BIN
data/tp1_ex4_web.gz Normal file

Binary file not shown.

File diff suppressed because it is too large Load diff

BIN
data/tp3_ex1_web.gz Normal file

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

BIN
data/tp3_ex2_web.2.gz Normal file

Binary file not shown.

BIN
data/tp3_ex2_web.gz Normal file

Binary file not shown.

View file

@ -1,21 +0,0 @@
0 0
1 7787
2 34612
3 78012
4 118064
5 132409
6 119996
7 90643
8 58481
9 32729
10 16671
11 7486
12 3037
13 1128
14 418
15 126
16 42
17 12
18 0
19 0
20 1

BIN
data/tp3_ex4.gz Normal file

Binary file not shown.

View file

@ -1,100 +0,0 @@
0 1
10 12
20 22
30 33
40 43
50 53
60 66
70 78
80 88
90 99
100 109
110 119
120 129
130 140
140 150
150 160
160 170
170 181
180 191
190 201
200 212
210 222
220 232
230 242
240 252
250 263
260 274
270 285
280 295
290 305
300 315
310 326
320 337
330 347
340 357
350 368
360 378
370 388
380 398
390 409
400 419
410 430
420 440
430 450
440 460
450 470
460 480
470 490
480 500
490 511
500 521
510 531
520 542
530 553
540 564
550 575
560 586
570 596
580 606
590 616
600 627
610 637
620 648
630 658
640 668
650 678
660 688
670 700
680 711
690 722
700 734
710 745
720 756
730 766
740 776
750 786
760 796
770 806
780 816
790 826
800 836
810 847
820 857
830 867
840 877
850 888
860 899
870 909
880 919
890 929
900 939
910 950
920 960
930 970
940 980
950 990
960 1000
970 1010
980 1020
990 1031

BIN
data/tp3_ex7_gen.gz Normal file

Binary file not shown.

View file

@ -1,100 +0,0 @@
0 970
10 1058
20 1116
30 1148
40 1186
50 3164
60 3181
70 5589
80 5666
90 5693
100 6307
110 7543
120 7559
130 9436
140 10780
150 11432
160 11523
170 12103
180 13031
190 13073
200 13101
210 13622
220 15476
230 15524
240 16375
250 16807
260 16829
270 17246
280 17567
290 18388
300 20095
310 20488
320 20560
330 21052
340 21445
350 22525
360 23259
370 23474
380 23825
390 24074
400 24132
410 24243
420 24319
430 25663
440 26289
450 26585
460 26867
470 26905
480 27424
490 27947
500 29720
510 30353
520 31274
530 32002
540 33204
550 33792
560 33809
570 34350
580 35203
590 35723
600 36534
610 37216
620 38241
630 38533
640 38923
650 39661
660 39918
670 40431
680 40707
690 40962
700 41220
710 41936
720 42637
730 43116
740 43383
750 43603
760 43614
770 43862
780 44082
790 44422
800 44538
810 44715
820 45058
830 45648
840 45878
850 46149
860 46351
870 47336
880 47988
890 48116
900 48477
910 48593
920 48968
930 49382
940 50015
950 50543
960 51422
970 51956
980 52362
990 53035

BIN
data/tp3_ex7_web.gz Normal file

Binary file not shown.

288
doc/tp1.md Normal file
View file

@ -0,0 +1,288 @@
# Alobe
## Description
Alobé est un logiciel libres permettant de manipuler de grands graphes non-orientes décrits par la liste de leurs arrêtes. Il possède les
caractéristiques suivantes :
* Il est distribue sous la licence [GNU General Public License](http://www.gnu.org/copyleft/gpl.html)
* Il est ecrit en C (bien quécrit au départ en C++, comme en témoigne le dépôt subversion) et possède une interface en ligne de commande,
* Il implémente le filtrage du graphe pour l'extraction d'un sous-ensemble (exercice 2).
* Il implémente le calcul des degrés (exercice 3)
* Il implémente les statistiques sur le calcul des degrés (degré moyen, degré maximum, densité du graphe) (exercice 5)
* Il implémente le stockage des données de façon contiguë en mémoire (en un unique tableau) (exercice 4).
* Il implémente le calcul des composantes connexes de façon efficace (exercice 5).
* Il implémente une méthode de calcul alternatif des composantes connexes (exercice 6 - defi).
### Auteurs
Alobe a ete entierement realise par Glenn ROLLAND
<[glenux@fr.st](mailto:glenux@fr.st)> a l'occasion de travaux pratiques du
cours de Grand Reseaux du Master 2 Ingenierie Informatique \- Systemes,
Reseaux et Internet.
## Pre-requis
Alobé ne nécessite pas de bibliothèques de fonctions particulières pour
fonctionner.
## Se procurer Alobe
Vous pouvez recharger la dernière archive des sources, ou bien directement
la version la plus récente du projet sur le dépôt Subversion du projet.
## 4. Utiliser Alobe
### 4.1. Compilation
Commencez par decompressez l'archive.
$ tar -xzvf alobe-0.1.tar.gz
Rendez vous ensuite dans le dossier qui vient d'etre cree lors de la
decompression.
$ cd alobe-0.1
Puis lancez l'auto-configuration du logiciel, puis la compilation.
$ ./autogen
$ ./configure
$ make
Le binaire produits se trouve dans le dossier `src/alobe`
### 4.2. Utilisation
Les binaires de Alobe doivent etre appeles avec la syntaxe suivante:
Usage: alobe <commande> <parametres_obligatoires> [options]
Les commandes sont les suivants:
-F, --filter
Filtrage du fichier d'entree pour extraire un sous-graphe.
-D, --degree
Calcul du degre des noeuds du graphe pris en entree.
-S, --store
Stockage et remplissage du tableau representant le graphe en memoire.
-A, --average
Calcul des statistiques sur les noeuds du graphe d'entree (degre moyen, degre max, densite).
-C, --connexity
Calcul des composantes connexes par la methode du tableau unique.
-E, --defi
Calcul des composantes connexes par ensembles d'intervalles de noeuds.
Les parametres obligatoires sont les suivants:
-c, --count <entier>
Nombre de noeuds du fichier d'entree.
-s, --size <entier>
Taille du filtre
-t, --offset <entier>
Offset du filtre
Les parames optionnels sont les suivants:
-i, --input <fichier>
Le fichier d'entree, "-" designant l'entree standard,
-o, --output <fichier>
Le fichier de sorftie, "-" designant la sortie standard.
-v, --verbose
Passe l'affichage en mode verbeux.e numero du noeud a lire et afficher a partir du fichier compresse
## 5. Documentation
### 5.1. Code
Vous pouvez trouver la documentation de Alobe dans le dossier doc/html de
l'application, ou en suivant [ce lien](html/index.html).
### 5.2. Remarques sur les differents exercices
#### 5.2.1. Exercice 1
#### 5.2.2. Exercice 2
Il est possible de filtrer le graphe d'entree pour extraire un sous ensemble
de noeuds de la façon suivante :
./src/alobe -F -t 0 -s 30 -i ../web.data.gz -c 701654
Ce qui produit en sortie
Command -> FILTER
Offset -> 0
Size -> 30
Input Data -> ../web.data.gz
Input Index -> 701654
Filtering between [ 0 .. 30 ]...
0 1
0 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
[...]
( uniquement les noeuds x compris entre 0 <= x < 30 )
#### 5.2.3. Exercice 3
Le calcul du degré des noeuds se fait par la commande suivante :
./src/alobe -D -i ../web.data.gz -c 701654
Ce qui produit (en premiere colone l'index du noeud et en seconde le degre):
Command -> DEGREE
Input Data -> ../web.data.gz
Input Index -> 701654
Computing degree of each node...
done
0 2
1 1194
2 77
3 496
4 227
5 339
6 337
7 340
8 337
9 10
10 16
11 31
12 15
13 22
[...]
Le calcul du degre est effectue dans un tableau de sizeof(long) * N (ou N est
le nombre de noeuds), initialise a zero, et ou les valeurs des cases sont
incrementees a la lecture des arcs.
#### 5.2.4. Exercice 4
Le simple stockage du graphe en mémoire ne produit pas de sortie visible, mais
sexécute en tapant :
./src/alobe -S -i ../web.data.gz -c 701654
Le programme commence par calculer les degres, puis initialise un tableau de
taille N (N = nombre de noeuds) pointeurs vers les cases d'un tableau de
taille (M + 3) * sizeof(long) (ou M est la somme des degres des noeuds)
destine a contenir les arcs de chaque noeud. Les 3 cases supplementaires ne
servent qu'au calcul des composates connexes et seront decrites plus loin.
#### 5.2.5. Exercice 5
Le calcul des statistiques sur les noeuds du graphe se fait de la façon
suivante:
./src/alobe -A -i ../web.data.gz -c 701654
Command -> AVERAGE
Input Data -> ../web.data.gz
Input Index -> 701654
Computing degree of each node...
done
Degree average: 5.517015
Degree maximum: 5331
Density : 0.000000
Cet exercice reutilise la structure de donnees l'exercice 3, et en la
parcourant effectue le calcul.
#### 5.2.6. Exercice 6
Le calcul des composantes connexes se fait de la façon suivante :
./src/alobe -C -i ../web.data.gz -c 701654
Command -> CONNEXITY
Input Data -> ../web.data.gz
Input Index -> 701654
Computing degree of each node...
done
Filling the Big Table...
done
Found connex component at 0
Found connex component at 9484
Found connex component at 15516
Found connex component at 17477
Found connex component at 20073
Found connex component at 20100
[...]
Found connex component at 699413
Found connex component at 700568
Found connex component at 701306
Found connex component at 701313
Found 970 connex components
Pour le fichier IP.data.gz on obtient :
Command -> CONNEXITY
Input Data -> /home/warbrain/Films/IP.data.gz
Input Index -> 467273
Computing degree of each node...
done
Filling the Big Table...
done
Found connex component at 0
Found connex component at 324896
Found 2 connex components
Et pour le fichier P2P.data.gz les machines a ma disposition ne possedaient
pas suffisament de memoire...
Le calcul des composantes connexes utilise le meme tableau que l'exercice 4.
Le calcul se fait dans les 3 cases supplementaires :
* une case pour le degre du noeud
* une case pour l'offset du noeud traite
* une case pour le noeud "pere" dans le parcours en profondeur.
Lorsqu'on parcours un noeud x en provenance de y, on inscrit la reference du
noeud pere dans la case 3, puis pour chaque noeud adjacent non visite, on
indique le noeud adjacent parcouru actuellement puis on parcourt recursivement
le noeud adjacent.
Remarque: jusque la le TP etait programme en C++, et pour un eventeuel gain de
performances il fut reecrit entierement (en conservant les structures de
donnees) en C. Cependant seules 0.3 secondes furent gagnees sur le graphe
web.data.gz... sur un temps de calcul total de 14 sec... (sur un iBook G4 1Ghz
avec 256 Mo de RAM sous GNU/Linux).
#### 5.2.7. Defi
On suppose que dans le graphe du web, les noeud adjacents ont de fortes
chances d'appartenir a la même composante connexe.
Ainsi, pour décrire en mémoire une composante regroupant les nœuds {0, 1, 2
,3 ,4, 5, 6, 7, 8, 9, 10, 14,15,16, 17, 19, 20} nul besoin de stocker en
mémoire autre chose que les ensembles d'intervalles suivants: [0 .. 10] U [14
.. 17] U [19 .. 20] ...
Cependant, les fusions d'ensembles nécessitent de nombreuses recopies de
données et d'allocations de mémoire. L'algorithme s'en trouve par conséquent
fort ralenti...
On peut lancer le défi en tapant :
./src/alobe -E -i ../web.data.gz -c 701654
..et admirer les résultats (s'il apparaissent, car il y a encore pas mal de
soucis de pointeurs se baladant librement...)

263
doc/tp2.md Normal file
View file

@ -0,0 +1,263 @@
# Alobe (TP2)
## 1\. Description
Alobe est un logiciel libre permettant de manipuler de grands graphes non-
orientes decrits par la liste de leurs arretes. Il possede les
caracteristiques suivantes :
* Il est distribue sous la licence [GNU General Public License](http://www.gnu.org/copyleft/gpl.html)
* Il est ecrit en C (bien qu'ecrit au depart en C++, comme en temoigne le depot subversion) et possede une interface en ligne de commande,
* Il implemente le calcul de la distance d'un noeud a tous les autres (exercice 1).
* Il fournit en sortie des donnees permettant de tracer la distribution des distance a un noeud donne (exercice 2)
* Il fournit en sortie les donnees permettant de tracer l'evolution de l'estimation de la distance moyenne en fonction du nombre de parcours effectues. (exercice 3)
* Il implemente le calcul de la borne inferieure du diametre, en prenant la distance maximale d'un noeud donne a tous les autres (exercice 4).
* Il implemente le calcul de la borne superieure du diametre, en prenant la distance maximale dans l'arbre du parcours en largeur (exercice 5).
* Il fournit en sortie des donnees permettant de tracer les courbes des meilleurs bornes inferieures et superieure en fonction du nombre de parcours effectues. (exercice 6 - defi).
### 1.1. Auteurs
Alobe a ete entierement realise par Glenn ROLLAND
<[glenux@fr.st](mailto:glenux@fr.st)> a l'occasion de travaux pratiques du
cours de Grand Reseaux du Master 2 Ingenierie Informatique \- Systemes,
Reseaux et Internet.
## 2\. Pre-requis
Alobe ne necessite pas de bibliotheques de fonctions particulieres pour
fonctionnner.
## 3\. Se procurer Alobe
Vous pouvez telecharger la derniere archive des sources, ou bien directement
la version la plus recente du projet sur le depot Subversion du projet.
### 3.1. L'archive des sources
Elle est disponible a l'adresse :
<http://glenux2.free.fr/pub/projets/Alobe/archives/>
### 3.2. Le depot Subversion
Afin d'obtenir les sources les plus a jour, vous pouvez utiliser le logiciel
de controle 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 "Entree"
pour l'utilisateur "anonymous", si ce dernier vous est demande.
## 4\. Utiliser Alobe
### 4.1. Compilation
Commencez par decompressez l'archive.
$ tar -xzvf alobe-0.2.tar.gz
Rendez vous ensuite dans le dossier qui vient d'etre cree lors de la
decompression.
$ 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 :
* src/alobe
### 4.2. Utilisation
Les binaires de Alobe doivent etre appeles avec la syntaxe suivante:
Usage: alobe <commande> <parametres_obligatoires> [options]
Les commandes sont les suivants:
-I, --tp2distance
Calcule les distances a partir du noeud donne.
-J, --tp2distanceplot
Donne la distribution des distances a partir du noeud donne.
-L, --tp2distevolution
Donne l'evolution de l'estimation de la distance moyenne.pour un noeud donne, ou au hasard, en fonction du nombre d'iterations.
-M, --tp2limitinf
Calcule la borne inferieure du diametre pour un noeud donne ou au hasard, en fonction du nombre d'iterations.
-N, --tp2limitsup
Calcule la borne superieure du diametre pour un noeud donne ou au hasard, en fonction du nombre d'iterations.
-O, --tp2defi
Fournit les donnees permettant de tracer les courbes de meilleures bornes inferieures et superieures du diametre en fonction du nombre d'iteration.
Les parametres obligatoires sont les suivants:
-c, --count <entier>
Nombre de noeuds du fichier d'entree.
Les parames optionnels sont les suivants:
-i, --input <fichier>
Le fichier d'entree, "-" designant l'entree standard,
-o, --output <fichier>
Le fichier de sorftie, "-" designant la sortie standard.
-v, --verbose
Passe l'affichage en mode verbeux.e numero du noeud a lire et afficher a partir du fichier compresse
-r, --root <entier>
Noeur servant de racine a la premiere iteration.
-n, --iterations <entier>
Nombre d'iterations a effectuer.
## 5\. Documentation
### 5.1. Code
Vous pouvez trouver la documentation de Alobe dans le dossier doc/html de
l'application, ou en suivant [ce lien](html/index.html).
### 5.2. Remarques sur les differents exercices
#### 5.2.1. Exercice 1
On calcule la distance d'un noeud (le 24 par exemple) a 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
#### 5.2.2. Exercice 2
On obtient la distribution des distances pour un noeud donne (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 :
![exercice 2 plot](exercice2.png)
#### 5.2.3. Exercice 3
On trace l'evolution de l'estimation de la distance moyenne (en fonction du
nombre d'iteration) 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 :
![exo 3 plot](exercice3.png)
#### 5.2.4. Exercice 4
Pour calculer la borne inferieure, on fera:
./alobe -M -i web.data.gz -o result.txt -c 701654 -n 5 -r 24
Iteration 0 \-- choosing root 24
\-- borne inferieure 17
Iteration 1 -- choosing root 60401
\-- borne inferieure 18
Iteration 2 -- choosing root 700018
\-- borne inferieure 24
Iteration 3 -- choosing root 77852
\-- borne inferieure 24
Iteration 4 -- choosing root 45944
\-- borne inferieure 24
#### 5.2.5. Exercice 5
Pour le calcul de la borne superieure, on fait :
./alobe -N -i ~/web.data.gz -o result.txt -c 701654 -n 10 -r 24
Iteration 0 \-- choosing root 24
\-- borne superieure 33
Iteration 1 -- choosing root 96542
\-- borne superieure 33
Iteration 2 -- choosing root 49208
\-- borne superieure 33
Iteration 3 -- choosing root 436498
\-- borne superieure 33
Iteration 4 -- choosing root 309990
\-- borne superieure 32
Iteration 5 -- choosing root 538890
\-- borne superieure 32
Iteration 6 -- choosing root 266656
\-- borne superieure 32
Iteration 7 -- choosing root 529998
\-- borne superieure 32
Iteration 8 -- choosing root 140145
\-- borne superieure 32
Iteration 9 -- choosing root 640316
\-- borne superieure 32
#### 5.2.6. Exercice 6 - Defi
Le cumul des courbes precedentes 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 : ![defi plot](defi.png)
Remarque: pour le defi, il aurait fallu en plus utiliser une heuristique de
choix des noeuds permettant de faire converger les deux courbes bornant le
diametre au plus vite. Par exemple, choisir les noeuds par degre decroissant
dans la composante connexe, en supposant qu'un noeud a fort degre comme racine
donne un arbre plus plat et donc la borne supperieure par la meme occasion...