Compare commits
5 commits
b7973fecc7
...
379bd05f52
Author | SHA1 | Date | |
---|---|---|---|
Glenn Y. Rolland | 379bd05f52 | ||
Glenn Y. Rolland | acd211ba7c | ||
Glenn Y. Rolland | 801512f47d | ||
Glenn Y. Rolland | e927349536 | ||
Glenn Y. Rolland | 3902a833dc |
|
@ -1,5 +1,6 @@
|
|||
SUBDIRS = src
|
||||
|
||||
CFLAGS = -Wall
|
||||
EXTRA_DIST = doc INSTALL README Doxyfile autogen.sh
|
||||
|
||||
|
||||
|
|
|
@ -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 -
|
||||
```
|
||||
|
|
|
@ -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
BIN
data/by_hand.0.10.gz
Normal file
Binary file not shown.
|
@ -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
BIN
data/by_hand.0.11.gz
Normal file
Binary file not shown.
|
@ -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
BIN
data/by_hand.0.9.gz
Normal file
Binary file not shown.
|
@ -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
BIN
data/tp1_ex2_web.0.200.gz
Normal file
Binary file not shown.
701654
data/tp1_ex3_web
701654
data/tp1_ex3_web
File diff suppressed because it is too large
Load diff
BIN
data/tp1_ex3_web.gz
Normal file
BIN
data/tp1_ex3_web.gz
Normal file
Binary file not shown.
BIN
data/tp1_ex4_web.gz
Normal file
BIN
data/tp1_ex4_web.gz
Normal file
Binary file not shown.
5332
data/tp3_ex1_web
5332
data/tp3_ex1_web
File diff suppressed because it is too large
Load diff
BIN
data/tp3_ex1_web.gz
Normal file
BIN
data/tp3_ex1_web.gz
Normal file
Binary file not shown.
1000
data/tp3_ex2_web
1000
data/tp3_ex2_web
File diff suppressed because it is too large
Load diff
10000
data/tp3_ex2_web.2
10000
data/tp3_ex2_web.2
File diff suppressed because it is too large
Load diff
BIN
data/tp3_ex2_web.2.gz
Normal file
BIN
data/tp3_ex2_web.2.gz
Normal file
Binary file not shown.
BIN
data/tp3_ex2_web.gz
Normal file
BIN
data/tp3_ex2_web.gz
Normal file
Binary file not shown.
21
data/tp3_ex4
21
data/tp3_ex4
|
@ -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
BIN
data/tp3_ex4.gz
Normal file
Binary file not shown.
100
data/tp3_ex7_gen
100
data/tp3_ex7_gen
|
@ -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
BIN
data/tp3_ex7_gen.gz
Normal file
Binary file not shown.
100
data/tp3_ex7_web
100
data/tp3_ex7_web
|
@ -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
BIN
data/tp3_ex7_web.gz
Normal file
Binary file not shown.
288
doc/tp1.md
Normal file
288
doc/tp1.md
Normal 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
|
||||
s’exé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
263
doc/tp2.md
Normal 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...
|
||||
|
||||
|
||||
|
Loading…
Reference in a new issue