graph_matching 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.rubocop.yml +112 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +9 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +205 -0
  9. data/Rakefile +9 -0
  10. data/benchmark/mcm_bipartite/complete_bigraphs/benchmark.rb +33 -0
  11. data/benchmark/mcm_bipartite/complete_bigraphs/compare.gnuplot +19 -0
  12. data/benchmark/mcm_bipartite/complete_bigraphs/edges_times_vertexes.data +500 -0
  13. data/benchmark/mcm_bipartite/complete_bigraphs/plot.gnuplot +21 -0
  14. data/benchmark/mcm_bipartite/complete_bigraphs/plot.png +0 -0
  15. data/benchmark/mcm_bipartite/complete_bigraphs/time.data +499 -0
  16. data/benchmark/mcm_general/complete_graphs/benchmark.rb +30 -0
  17. data/benchmark/mcm_general/complete_graphs/plot.gnuplot +19 -0
  18. data/benchmark/mcm_general/complete_graphs/plot.png +0 -0
  19. data/benchmark/mcm_general/complete_graphs/time.data +499 -0
  20. data/benchmark/mcm_general/complete_graphs/v_cubed.data +500 -0
  21. data/benchmark/mwm_bipartite/complete_bigraphs/benchmark.rb +43 -0
  22. data/benchmark/mwm_bipartite/complete_bigraphs/nmN.data +499 -0
  23. data/benchmark/mwm_bipartite/complete_bigraphs/nmN.xlsx +0 -0
  24. data/benchmark/mwm_bipartite/complete_bigraphs/plot.gnuplot +22 -0
  25. data/benchmark/mwm_bipartite/complete_bigraphs/plot.png +0 -0
  26. data/benchmark/mwm_bipartite/complete_bigraphs/time.data +299 -0
  27. data/benchmark/mwm_bipartite/misc/calc_d2/benchmark.rb +29 -0
  28. data/benchmark/mwm_general/complete_graphs/benchmark.rb +32 -0
  29. data/benchmark/mwm_general/complete_graphs/compare.gnuplot +19 -0
  30. data/benchmark/mwm_general/complete_graphs/mn_log_n.data +299 -0
  31. data/benchmark/mwm_general/complete_graphs/mn_log_n.xlsx +0 -0
  32. data/benchmark/mwm_general/complete_graphs/plot.gnuplot +22 -0
  33. data/benchmark/mwm_general/complete_graphs/plot.png +0 -0
  34. data/benchmark/mwm_general/complete_graphs/time.data +299 -0
  35. data/benchmark/mwm_general/incomplete_graphs/benchmark.rb +39 -0
  36. data/benchmark/mwm_general/incomplete_graphs/plot.gnuplot +22 -0
  37. data/benchmark/mwm_general/incomplete_graphs/plot.png +0 -0
  38. data/benchmark/mwm_general/incomplete_graphs/time_10_pct.data +299 -0
  39. data/benchmark/mwm_general/incomplete_graphs/time_20_pct.data +299 -0
  40. data/benchmark/mwm_general/incomplete_graphs/time_30_pct.data +299 -0
  41. data/graph_matching.gemspec +35 -0
  42. data/lib/graph_matching.rb +15 -0
  43. data/lib/graph_matching/algorithm/matching_algorithm.rb +23 -0
  44. data/lib/graph_matching/algorithm/mcm_bipartite.rb +118 -0
  45. data/lib/graph_matching/algorithm/mcm_general.rb +289 -0
  46. data/lib/graph_matching/algorithm/mwm_bipartite.rb +147 -0
  47. data/lib/graph_matching/algorithm/mwm_general.rb +1086 -0
  48. data/lib/graph_matching/algorithm/mwmg_delta_assertions.rb +94 -0
  49. data/lib/graph_matching/assertion.rb +41 -0
  50. data/lib/graph_matching/core_ext/set.rb +36 -0
  51. data/lib/graph_matching/directed_edge_set.rb +31 -0
  52. data/lib/graph_matching/errors.rb +23 -0
  53. data/lib/graph_matching/graph/bigraph.rb +37 -0
  54. data/lib/graph_matching/graph/graph.rb +63 -0
  55. data/lib/graph_matching/graph/weighted.rb +112 -0
  56. data/lib/graph_matching/graph/weighted_bigraph.rb +17 -0
  57. data/lib/graph_matching/graph/weighted_graph.rb +17 -0
  58. data/lib/graph_matching/integer_vertexes.rb +29 -0
  59. data/lib/graph_matching/matching.rb +120 -0
  60. data/lib/graph_matching/ordered_set.rb +59 -0
  61. data/lib/graph_matching/version.rb +6 -0
  62. data/lib/graph_matching/visualize.rb +93 -0
  63. data/profile/mcm_bipartite/compare.sh +15 -0
  64. data/profile/mcm_bipartite/publish.sh +12 -0
  65. data/profile/mwm_general/compare.sh +15 -0
  66. data/profile/mwm_general/profile.rb +28 -0
  67. data/profile/mwm_general/publish.sh +12 -0
  68. data/research/1965_edmonds.pdf +0 -0
  69. data/research/1975_even_kariv.pdf +0 -0
  70. data/research/1976_gabow.pdf +0 -0
  71. data/research/1980_micali_vazirani.pdf +0 -0
  72. data/research/1985_gabow.pdf +0 -0
  73. data/research/2002_tarjan.pdf +0 -0
  74. data/research/2013_zwick.pdf +0 -0
  75. data/research/examples/unweighted_general/1.txt +86 -0
  76. data/research/goodwin.pdf +0 -0
  77. data/research/kavathekar-scribe.pdf +0 -0
  78. data/research/kusner.pdf +0 -0
  79. data/research/van_rantwijk/mwm_example.py +19 -0
  80. data/research/van_rantwijk/mwmatching.py +945 -0
  81. data/spec/graph_matching/algorithm/matching_algorithm_spec.rb +14 -0
  82. data/spec/graph_matching/algorithm/mcm_bipartite_spec.rb +98 -0
  83. data/spec/graph_matching/algorithm/mcm_general_spec.rb +159 -0
  84. data/spec/graph_matching/algorithm/mwm_bipartite_spec.rb +82 -0
  85. data/spec/graph_matching/algorithm/mwm_general_spec.rb +439 -0
  86. data/spec/graph_matching/graph/bigraph_spec.rb +73 -0
  87. data/spec/graph_matching/graph/graph_spec.rb +53 -0
  88. data/spec/graph_matching/graph/weighted_spec.rb +29 -0
  89. data/spec/graph_matching/integer_vertexes_spec.rb +21 -0
  90. data/spec/graph_matching/matching_spec.rb +89 -0
  91. data/spec/graph_matching/visualize_spec.rb +38 -0
  92. data/spec/graph_matching_spec.rb +9 -0
  93. data/spec/spec_helper.rb +26 -0
  94. metadata +263 -0
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ # No shebang here. Usage:
4
+ # ruby -I lib benchmark/mcm_general/complete_graphs/benchmark.rb
5
+
6
+ require 'benchmark'
7
+ require 'graph_matching'
8
+
9
+ MIN_SIZE = 2
10
+ MAX_SIZE = 500
11
+
12
+ $stdout.sync = true
13
+
14
+ def complete_graph(n)
15
+ g = GraphMatching::Graph::Graph.new
16
+ 1.upto(n - 1) do |i|
17
+ (i + 1).upto(n) do |j|
18
+ g.add_edge(i, j)
19
+ end
20
+ end
21
+ g
22
+ end
23
+
24
+ MIN_SIZE.upto(MAX_SIZE) do |v|
25
+ print "%5d\t" % [v]
26
+ g = complete_graph(v)
27
+ GC.disable
28
+ puts Benchmark.realtime { g.maximum_cardinality_matching }
29
+ GC.enable
30
+ end
@@ -0,0 +1,19 @@
1
+ data_dir = "~/git/jaredbeck/graph_matching/benchmark/mcm_general/complete_graphs"
2
+
3
+ set title "MCM Should Be O(v^3) In General Graphs.\n".\
4
+ "(Gabow, 1976, p. 221)"
5
+ set key left
6
+ set term png size 800, 500
7
+ set output data_dir."/plot.png"
8
+
9
+ set linetype 1 pointtype 7 linecolor rgb "#FF0000"
10
+ set linetype 2 linewidth 3 linecolor rgb "#00B800"
11
+
12
+ set xlabel 'Number of Vertexes, v' textcolor rgb "black"
13
+ set ytics autofreq textcolor rgb "black"
14
+ set ylabel 'Time (s)' textcolor rgb "black"
15
+ set y2tics autofreq textcolor rgb "black"
16
+ set y2label 'v^3' textcolor rgb "black"
17
+
18
+ plot data_dir."/time.data" using 1:2 title "Time (s)" lt 1, \
19
+ data_dir."/v_cubed.data" using 1:2 title "v^3" with lines lt 2 axes x1y2
@@ -0,0 +1,499 @@
1
+ 2 0.0001701780129224062
2
+ 3 0.00011389300925657153
3
+ 4 9.283400140702724e-05
4
+ 5 0.0001764899934642017
5
+ 6 0.0001495169708505273
6
+ 7 0.00028164597461000085
7
+ 8 0.00024710199795663357
8
+ 9 0.00046177697367966175
9
+ 10 0.0003415480023249984
10
+ 11 0.0006634040037170053
11
+ 12 0.00046440400183200836
12
+ 13 0.0008723619976080954
13
+ 14 0.0006422839942388237
14
+ 15 0.0011820959625765681
15
+ 16 0.0008348409901373088
16
+ 17 0.001503915002103895
17
+ 18 0.0010399509919807315
18
+ 19 0.0018025870085693896
19
+ 20 0.001270829001441598
20
+ 21 0.0022275440278463066
21
+ 22 0.0015742300311103463
22
+ 23 0.002671674999874085
23
+ 24 0.0019576550112105906
24
+ 25 0.003199514001607895
25
+ 26 0.0022546559921465814
26
+ 27 0.003751054988242686
27
+ 28 0.002650321985129267
28
+ 29 0.0042577809654176235
29
+ 30 0.0030973260290920734
30
+ 31 0.004898536019027233
31
+ 32 0.0034795349929481745
32
+ 33 0.00543442799244076
33
+ 34 0.003789326990954578
34
+ 35 0.005890231986995786
35
+ 36 0.004299029998946935
36
+ 37 0.006768849969375879
37
+ 38 0.004971662012394518
38
+ 39 0.007724117022007704
39
+ 40 0.005681508977431804
40
+ 41 0.008493230969179422
41
+ 42 0.006215949018951505
42
+ 43 0.009453718026634306
43
+ 44 0.0070957529824227095
44
+ 45 0.010733653034549206
45
+ 46 0.008086364017799497
46
+ 47 0.011591452988795936
47
+ 48 0.008603599038906395
48
+ 49 0.012540986994281411
49
+ 50 0.009534774988424033
50
+ 51 0.01411486102733761
51
+ 52 0.010196679038926959
52
+ 53 0.014860928989946842
53
+ 54 0.011184128990862519
54
+ 55 0.016519086027983576
55
+ 56 0.012827526952605695
56
+ 57 0.018209278990980238
57
+ 58 0.014055520005058497
58
+ 59 0.019949384965002537
59
+ 60 0.015153321961406618
60
+ 61 0.021332603006158024
61
+ 62 0.01645326503785327
62
+ 63 0.02318966598249972
63
+ 64 0.017714682035148144
64
+ 65 0.02478071500081569
65
+ 66 0.019295724981930107
66
+ 67 0.0272510860231705
67
+ 68 0.020894736982882023
68
+ 69 0.028181103989481926
69
+ 70 0.022003979014698416
70
+ 71 0.02961109997704625
71
+ 72 0.023327879956923425
72
+ 73 0.03169254004023969
73
+ 74 0.02500217402121052
74
+ 75 0.033807987987529486
75
+ 76 0.026716825959738344
76
+ 77 0.03604279295541346
77
+ 78 0.028632869012653828
78
+ 79 0.03861124697141349
79
+ 80 0.030758428969420493
80
+ 81 0.040752583008725196
81
+ 82 0.03231668600346893
82
+ 83 0.04322135995607823
83
+ 84 0.03434933500830084
84
+ 85 0.047110349987633526
85
+ 86 0.04485087998909876
86
+ 87 0.04978235898306593
87
+ 88 0.03877229295903817
88
+ 89 0.051493445003870875
89
+ 90 0.04274237697245553
90
+ 91 0.05753560195444152
91
+ 92 0.0443121719872579
92
+ 93 0.057764980010688305
93
+ 94 0.045404725009575486
94
+ 95 0.061560571019072086
95
+ 96 0.048698690021410584
96
+ 97 0.06351352698402479
97
+ 98 0.05157624703133479
98
+ 99 0.0668500850442797
99
+ 100 0.05432769301114604
100
+ 101 0.07060002302750945
101
+ 102 0.0583404129720293
102
+ 103 0.07309731800341979
103
+ 104 0.06039315601810813
104
+ 105 0.07812707399716601
105
+ 106 0.06349242699798197
106
+ 107 0.08104158501373604
107
+ 108 0.06674185302108526
108
+ 109 0.0830337519873865
109
+ 110 0.07708615896990523
110
+ 111 0.15201349498238415
111
+ 112 0.12399068399099633
112
+ 113 0.09840869496110827
113
+ 114 0.08364949899259955
114
+ 115 0.10101343301357701
115
+ 116 0.08297955302987248
116
+ 117 0.1036859389860183
117
+ 118 0.0846960240160115
118
+ 119 0.10842583404155448
119
+ 120 0.08980205800617114
120
+ 121 0.11136563698528334
121
+ 122 0.0899206770118326
122
+ 123 0.11355245398590341
123
+ 124 0.09552603599149734
124
+ 125 0.12295564595842734
125
+ 126 0.10198476404184476
126
+ 127 0.12720494298264384
127
+ 128 0.10395715298363939
128
+ 129 0.13477005797903985
129
+ 130 0.11034817894687876
130
+ 131 0.13543970201862976
131
+ 132 0.11469467700226232
132
+ 133 0.1444600909599103
133
+ 134 0.12209696799982339
134
+ 135 0.15109747502719983
135
+ 136 0.1261657669674605
136
+ 137 0.15433759102597833
137
+ 138 0.13141312601510435
138
+ 139 0.1615072350250557
139
+ 140 0.13442936999490485
140
+ 141 0.166784834000282
141
+ 142 0.14295558398589492
142
+ 143 0.1755510339862667
143
+ 144 0.14468692103400826
144
+ 145 0.1792651159921661
145
+ 146 0.1472293980186805
146
+ 147 0.19188214099267498
147
+ 148 0.16208157397340983
148
+ 149 0.2689539540442638
149
+ 150 0.17633056902559474
150
+ 151 0.20197646896122023
151
+ 152 0.1722771369968541
152
+ 153 0.20534581900574267
153
+ 154 0.17199446400627494
154
+ 155 0.211220333003439
155
+ 156 0.1807961449958384
156
+ 157 0.23833194002509117
157
+ 158 0.18661241297377273
158
+ 159 0.2260613429825753
159
+ 160 0.1933103480259888
160
+ 161 0.23738897102884948
161
+ 162 0.19622963102301583
162
+ 163 0.2396592010045424
163
+ 164 0.20659207401331514
164
+ 165 0.25005461304681376
165
+ 166 0.2149604940204881
166
+ 167 0.2560642509488389
167
+ 168 0.22001474600983784
168
+ 169 0.2623014359851368
169
+ 170 0.22688173997448757
170
+ 171 0.2713031999883242
171
+ 172 0.2355840079835616
172
+ 173 0.2799878579680808
173
+ 174 0.24166787398280576
174
+ 175 0.2927143669803627
175
+ 176 0.25101094105048105
176
+ 177 0.29329849098576233
177
+ 178 0.25811069301562384
178
+ 179 0.33768347499426454
179
+ 180 0.2955677140271291
180
+ 181 0.3252477200003341
181
+ 182 0.2737371050170623
182
+ 183 0.3281202910002321
183
+ 184 0.28481072798604146
184
+ 185 0.34897650399943814
185
+ 186 0.2911717109964229
186
+ 187 0.3453858870198019
187
+ 188 0.29388510499848053
188
+ 189 0.3789769549621269
189
+ 190 0.3227977299829945
190
+ 191 0.377043075975962
191
+ 192 0.3202891660039313
192
+ 193 0.37249115901067853
193
+ 194 0.32974226999795064
194
+ 195 0.40013973298482597
195
+ 196 0.3425019580172375
196
+ 197 0.42571855400456116
197
+ 198 0.3496324809966609
198
+ 199 0.4252114149858244
199
+ 200 0.36039415997220203
200
+ 201 0.4233713949797675
201
+ 202 0.36829205899266526
202
+ 203 0.43751909799175337
203
+ 204 0.39666890300577506
204
+ 205 0.44695557496743277
205
+ 206 0.39361892599845305
206
+ 207 0.457311058009509
207
+ 208 0.402110334020108
208
+ 209 0.4704079340444878
209
+ 210 0.41547256702324376
210
+ 211 0.46777989802649245
211
+ 212 0.4073199940030463
212
+ 213 0.4877315109479241
213
+ 214 0.47986185998888686
214
+ 215 0.5021009470219724
215
+ 216 0.4431006890372373
216
+ 217 0.5018768750014715
217
+ 218 0.4666550909751095
218
+ 219 0.5424977010115981
219
+ 220 0.4687814859789796
220
+ 221 0.5710982540040277
221
+ 222 0.518277587951161
222
+ 223 0.5551155249704607
223
+ 224 0.489169881970156
224
+ 225 0.5631626240210608
225
+ 226 0.5041036000475287
226
+ 227 0.8228382410015911
227
+ 228 0.5154051799909212
228
+ 229 0.6047313699964434
229
+ 230 0.5422375259804539
230
+ 231 0.6215926239965484
231
+ 232 0.5438463449827395
232
+ 233 0.6238284789724275
233
+ 234 0.5535488110035658
234
+ 235 0.6560656889923848
235
+ 236 0.5674811729695648
236
+ 237 0.6395903900265694
237
+ 238 0.5819607909652404
238
+ 239 0.6715576110291295
239
+ 240 0.6298754599993117
240
+ 241 0.7329361460288055
241
+ 242 0.6125490939593874
242
+ 243 0.7051144549623132
243
+ 244 0.6302219810313545
244
+ 245 0.746109048021026
245
+ 246 0.6563357890117913
246
+ 247 0.7456931699998677
247
+ 248 0.6571530640358105
248
+ 249 0.7520588280167431
249
+ 250 0.6720351969706826
250
+ 251 0.7609891229658388
251
+ 252 0.6991442940197885
252
+ 253 0.798817426955793
253
+ 254 0.7106213270453736
254
+ 255 0.8182403199607506
255
+ 256 0.7232286360231228
256
+ 257 0.8310512669850141
257
+ 258 0.79535162699176
258
+ 259 0.8414108619908802
259
+ 260 0.7476902959751897
260
+ 261 0.8483678579796106
261
+ 262 0.7651613639900461
262
+ 263 0.8684117459924892
263
+ 264 0.7804208389716223
264
+ 265 0.9130692720063962
265
+ 266 0.7985570600139908
266
+ 267 0.958131538995076
267
+ 268 0.8180472389794886
268
+ 269 0.9284337440039963
269
+ 270 0.8309272030019201
270
+ 271 0.9529662959976122
271
+ 272 0.8630696149775758
272
+ 273 0.9800791590241715
273
+ 274 0.8686013119877316
274
+ 275 0.9853866960038431
275
+ 276 0.9626651619910263
276
+ 277 1.0056467549875379
277
+ 278 0.9437003310304135
278
+ 279 1.0319727470050566
279
+ 280 0.9344677500193939
280
+ 281 1.04744184599258
281
+ 282 0.9450857079937123
282
+ 283 1.1333237509825267
283
+ 284 0.9599924419890158
284
+ 285 1.0825070830178447
285
+ 286 0.9918581889942288
286
+ 287 1.158374545047991
287
+ 288 0.9957332030171528
288
+ 289 1.1243401360115968
289
+ 290 1.0150453749811277
290
+ 291 1.1583364879479632
291
+ 292 1.0303951879614033
292
+ 293 1.4200103129842319
293
+ 294 1.0636435599881224
294
+ 295 1.2003157880390063
295
+ 296 1.0963754230178893
296
+ 297 1.214069657959044
297
+ 298 1.0969063350348733
298
+ 299 1.2422262509935535
299
+ 300 1.1861777779995464
300
+ 301 1.2772960580186918
301
+ 302 1.1625077240169048
302
+ 303 1.3530508039984852
303
+ 304 1.1874613909749314
304
+ 305 1.2995396199985407
305
+ 306 1.1873857829486951
306
+ 307 1.3792389209847897
307
+ 308 1.2187054340029135
308
+ 309 1.3751526849810034
309
+ 310 1.2598720159730874
310
+ 311 1.405885063984897
311
+ 312 1.25879353802884
312
+ 313 1.42493627499789
313
+ 314 1.304494493000675
314
+ 315 1.464205129945185
315
+ 316 1.4781941250548698
316
+ 317 1.6405969370389357
317
+ 318 1.3248987510451116
318
+ 319 1.501620470022317
319
+ 320 1.412990890967194
320
+ 321 1.5433351480169222
321
+ 322 1.3755605629994534
322
+ 323 1.5219261590391397
323
+ 324 1.4571698980289511
324
+ 325 1.5585498469881713
325
+ 326 1.4198120490182191
326
+ 327 1.5702029980020598
327
+ 328 1.4470092339906842
328
+ 329 1.6170566320070066
329
+ 330 1.4813340859836899
330
+ 331 1.6354839850100689
331
+ 332 1.4980402590008453
332
+ 333 1.6748152879881673
333
+ 334 1.5228882069932297
334
+ 335 1.6986604129779153
335
+ 336 1.5153487049974501
336
+ 337 1.7155062269885093
337
+ 338 1.5789370610145852
338
+ 339 1.746143969008699
339
+ 340 1.6081377919763327
340
+ 341 1.788553824997507
341
+ 342 1.6621585210086778
342
+ 343 2.0458256229758263
343
+ 344 1.673394784971606
344
+ 345 1.8390153319924138
345
+ 346 1.6997915169922635
346
+ 347 1.860257463005837
347
+ 348 1.7498514400213026
348
+ 349 1.865287474996876
349
+ 350 1.7462640819721855
350
+ 351 2.003797363024205
351
+ 352 1.7814998389803804
352
+ 353 1.961912302998826
353
+ 354 1.8060409449972212
354
+ 355 1.9887862050090916
355
+ 356 1.8188661559834145
356
+ 357 1.9925057420041412
357
+ 358 1.8513211600366049
358
+ 359 2.0609442869899794
359
+ 360 1.8853847029968165
360
+ 361 2.0858314020442776
361
+ 362 1.9311359869898297
362
+ 363 2.108810003963299
363
+ 364 2.5120600039954297
364
+ 365 2.1465472920099273
365
+ 366 1.9941365759586915
366
+ 367 2.156451141985599
367
+ 368 2.026707617973443
368
+ 369 2.2104249830008484
369
+ 370 2.026227600988932
370
+ 371 2.258396507008001
371
+ 372 2.100037002004683
372
+ 373 2.2975890139932744
373
+ 374 2.133006928022951
374
+ 375 2.3167141170124523
375
+ 376 2.1514485189691186
376
+ 377 2.3427276330185123
377
+ 378 2.1947934339987114
378
+ 379 2.4142040059668943
379
+ 380 2.225397045025602
380
+ 381 2.4260547580197453
381
+ 382 2.2483308959635906
382
+ 383 2.4631855019833893
383
+ 384 2.5355804240098223
384
+ 385 2.689934191002976
385
+ 386 2.3330355130019598
386
+ 387 2.6160353459999897
387
+ 388 2.4142712529865094
388
+ 389 2.743726674991194
389
+ 390 2.4914208560367115
390
+ 391 2.6467296670307405
391
+ 392 2.5653784880414605
392
+ 393 2.680750774045009
393
+ 394 2.5107481879531406
394
+ 395 2.9715071790269576
395
+ 396 2.5930464640259743
396
+ 397 3.514729687012732
397
+ 398 2.9881148689892143
398
+ 399 2.779509646992665
399
+ 400 2.753346678975504
400
+ 401 2.8175489790155552
401
+ 402 2.652154729992617
402
+ 403 2.843306061986368
403
+ 404 2.7037517999997362
404
+ 405 2.8906310459715314
405
+ 406 2.7678814450046048
406
+ 407 2.9735237840213813
407
+ 408 2.8825316469883546
408
+ 409 2.9415978959877975
409
+ 410 2.712339227029588
410
+ 411 3.0013135769986548
411
+ 412 2.8578083429601975
412
+ 413 3.0181761339772493
413
+ 414 2.893095984996762
414
+ 415 3.1085803189780563
415
+ 416 2.9037726639653556
416
+ 417 3.127113220980391
417
+ 418 2.9148973749834113
418
+ 419 3.1924869789509103
419
+ 420 2.971348891966045
420
+ 421 3.2259343169862404
421
+ 422 3.0465259960037656
422
+ 423 3.3791337400325574
423
+ 424 3.0954227990005165
424
+ 425 3.3596816969802603
425
+ 426 3.0379071320057847
426
+ 427 3.435554206953384
427
+ 428 3.13809994305484
428
+ 429 3.5790772729669698
429
+ 430 3.752648703986779
430
+ 431 3.8220032229437493
431
+ 432 3.330101787985768
432
+ 433 3.5244018060038798
433
+ 434 3.3048378489911556
434
+ 435 3.538100986974314
435
+ 436 3.485039721999783
436
+ 437 3.5745575659675524
437
+ 438 3.367366878024768
438
+ 439 3.6219889859785326
439
+ 440 3.3992720899987034
440
+ 441 3.674065845028963
441
+ 442 3.6362784070079215
442
+ 443 3.869371960987337
443
+ 444 3.7316643230151385
444
+ 445 3.76685480697779
445
+ 446 3.57796960498672
446
+ 447 3.906033093982842
447
+ 448 3.59515728300903
448
+ 449 3.920856176991947
449
+ 450 3.728099594009109
450
+ 451 3.9929907380137593
451
+ 452 3.888758419023361
452
+ 453 4.035210346977692
453
+ 454 3.764584867982194
454
+ 455 4.097833007981535
455
+ 456 3.78764414699981
456
+ 457 4.105756208009552
457
+ 458 3.83089496899629
458
+ 459 4.199195816996507
459
+ 460 3.9621756990090944
460
+ 461 4.282353695016354
461
+ 462 4.034714171022642
462
+ 463 4.290975686977617
463
+ 464 4.113168273004703
464
+ 465 4.362890871008858
465
+ 466 4.016664460010361
466
+ 467 4.320901511004195
467
+ 468 4.240947471989784
468
+ 469 4.55450640496565
469
+ 470 4.387956844002474
470
+ 471 4.4216083670035005
471
+ 472 4.112417683005333
472
+ 473 4.441934192029294
473
+ 474 4.1771745539736
474
+ 475 4.577750994008966
475
+ 476 4.2546952230040915
476
+ 477 4.5878945519798435
477
+ 478 4.350582016981207
478
+ 479 4.671495470043737
479
+ 480 4.325448654999491
480
+ 481 4.763902965991292
481
+ 482 4.5003978200256824
482
+ 483 4.786760227987543
483
+ 484 4.624021556985099
484
+ 485 5.001271313987672
485
+ 486 4.6243650749675
486
+ 487 4.9509947809856385
487
+ 488 4.647256447002292
488
+ 489 5.079109649988823
489
+ 490 4.649792768002953
490
+ 491 5.005817756988108
491
+ 492 4.610298404993955
492
+ 493 5.12382721004542
493
+ 494 4.717409268021584
494
+ 495 5.393971771001816
495
+ 496 4.785495414980687
496
+ 497 5.191381537995767
497
+ 498 4.811558061977848
498
+ 499 5.258738886041101
499
+ 500 4.919211200962309