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
|
SUBDIRS = src
|
||||||
|
|
||||||
|
CFLAGS = -Wall
|
||||||
EXTRA_DIST = doc INSTALL README Doxyfile autogen.sh
|
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
|
```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
|
```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