1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
|
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data analysis for the paper \"Automated Generation of Consistent Models with Structural and Attribute Constraints\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, let's load some packages."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Loading required package: tidyverse\n",
"\n",
"── \u001b[1mAttaching packages\u001b[22m ─────────────────────────────────────── tidyverse 1.3.0 ──\n",
"\n",
"\u001b[32m✔\u001b[39m \u001b[34mggplot2\u001b[39m 3.3.2 \u001b[32m✔\u001b[39m \u001b[34mpurrr \u001b[39m 0.3.4\n",
"\u001b[32m✔\u001b[39m \u001b[34mtibble \u001b[39m 3.0.3 \u001b[32m✔\u001b[39m \u001b[34mdplyr \u001b[39m 1.0.0\n",
"\u001b[32m✔\u001b[39m \u001b[34mtidyr \u001b[39m 1.1.0 \u001b[32m✔\u001b[39m \u001b[34mstringr\u001b[39m 1.4.0\n",
"\u001b[32m✔\u001b[39m \u001b[34mreadr \u001b[39m 1.3.1 \u001b[32m✔\u001b[39m \u001b[34mforcats\u001b[39m 0.5.0\n",
"\n",
"Warning message:\n",
"“package ‘ggplot2’ was built under R version 4.0.1”\n",
"Warning message:\n",
"“package ‘tibble’ was built under R version 4.0.2”\n",
"── \u001b[1mConflicts\u001b[22m ────────────────────────────────────────── tidyverse_conflicts() ──\n",
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mfilter()\u001b[39m masks \u001b[34mstats\u001b[39m::filter()\n",
"\u001b[31m✖\u001b[39m \u001b[34mdplyr\u001b[39m::\u001b[32mlag()\u001b[39m masks \u001b[34mstats\u001b[39m::lag()\n",
"\n",
"Warning message in dir.create(\"plots\"):\n",
"“'plots' already exists”\n"
]
}
],
"source": [
"require(tidyverse)\n",
"dir.create('plots')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"ProcessDetailedStatistics <- function(str) {\n",
" str <- sub('TransformationExecutionTime', 'TransformationExecutionTime:', str)\n",
" str <- sub('Backtrackingtime', 'BacktrackingTime', str)\n",
" str <- gsub('\\\\(|\\\\)', '', str)\n",
" str <- lapply(strsplit(str, '\\\\||:'), function (v) {\n",
" dim(v) <- c(2, 12)\n",
" values <- as.double(v[2,])\n",
" names(values) <- v[1,]\n",
" as.data.frame(t(values))\n",
" })\n",
" str\n",
"}\n",
"Load10Log <- function(filename, size) {\n",
" read_csv(filename, col_types = cols(\n",
" .default = col_double(),\n",
" Result = col_character(),\n",
" Solution1DetailedStatistics = col_character(),\n",
" Solution2DetailedStatistics = col_character(),\n",
" Solution3DetailedStatistics = col_character(),\n",
" Solution4DetailedStatistics = col_character(),\n",
" Solution5DetailedStatistics = col_character(),\n",
" Solution6DetailedStatistics = col_character(),\n",
" Solution7DetailedStatistics = col_character(),\n",
" Solution8DetailedStatistics = col_character(),\n",
" Solution9DetailedStatistics = col_character(),\n",
" Solution10DetailedStatistics = col_character()\n",
" )) %>% transmute(\n",
" n = size,\n",
" Run = Run,\n",
" preprocessingTime = get('Domain to logic transformation time') + get('Logic to solver transformation time') + ExplorationInitializationTime,\n",
" Solution0FoundAt = Solution0FoundAt,\n",
" additionalTime = Solution9FoundAt - Solution0FoundAt,\n",
" Solution1DetailedStatistics = ProcessDetailedStatistics(Solution1DetailedStatistics)\n",
" ) %>% unnest() %>% mutate(\n",
" # (Logical) constraint evluation should count as refinement.\n",
" ForwardTime = ForwardTime + GlobalConstraintEvaluationTime + FitnessCalculationTime,\n",
" preprocessingTime = preprocessingTime,\n",
" BacktrackingTime = Solution0FoundAt - (StateCoderTime + ForwardTime + NumericalSolverSumTime)\n",
" ) %>% select(n, Run, preprocessingTime, StateCoderTime, ForwardTime, BacktrackingTime, NumericalSolverSumTime, additionalTime)\n",
"}\n",
"Load1Log <- function(filename, size) {\n",
" read_csv(filename, col_types = cols(\n",
" .default = col_double(),\n",
" Result = col_character(),\n",
" Solution1DetailedStatistics = col_character()\n",
" )) %>% filter(Result == \"ModelResultImpl\") %>% transmute(\n",
" n = size,\n",
" Run = Run,\n",
" preprocessingTime = get('Domain to logic transformation time') + get('Logic to solver transformation time') + ExplorationInitializationTime,\n",
" Solution0FoundAt = Solution0FoundAt,\n",
" Solution1DetailedStatistics = ProcessDetailedStatistics(Solution1DetailedStatistics)\n",
" ) %>% unnest(cols = c(Solution1DetailedStatistics)) %>% mutate(\n",
" ForwardTime = ForwardTime + GlobalConstraintEvaluationTime + FitnessCalculationTime,\n",
" BacktrackingTime = Solution0FoundAt - (StateCoderTime + ForwardTime + NumericalSolverSumTime)\n",
" ) %>% select(n, Run, preprocessingTime, StateCoderTime, ForwardTime, BacktrackingTime, NumericalSolverSumTime)\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"ProcessRQ1 <- function(df) {\n",
" df %>% group_by(n) %>% summarize(\n",
" .groups = 'drop',\n",
" time = median(preprocessingTime + StateCoderTime + ForwardTime + BacktrackingTime + NumericalSolverSumTime) / 1000.0\n",
" )\n",
"}\n",
"ProcessRQ2 <- function(df) {\n",
" df %>% group_by(n) %>% summarize(\n",
" .groups = 'drop',\n",
" preprocessingTime = median(preprocessingTime) / 1000.0,\n",
" StateCoderTime = median(StateCoderTime) / 1000.0,\n",
" ForwardTime = median(ForwardTime) / 1000.0,\n",
" BacktrackingTime = median(BacktrackingTime) / 1000.0,\n",
" NumericalSolverSumTime = median(NumericalSolverSumTime) / 1000.0,\n",
" additionalTime = median(additionalTime) / 1000.0\n",
" )\n",
"}\n",
"ProcessRQ3 <- ProcessRQ1"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"RQ2Plot <- function(df, name) {\n",
" df <- df %>% gather(name, value, -n) %>% filter(name != \"preprocessingTime\")\n",
" df$name <- factor(df$name, levels=rev(c('ForwardTime', 'BacktrackingTime', 'StateCoderTime', 'NumericalSolverSumTime', 'additionalTime')))\n",
" plot <- df %>% ggplot(aes(x=n, y=value, fill=name)) +\n",
" geom_bar(stat='identity') +\n",
" scale_fill_brewer(palette='Set2',\n",
" labels=rev(c('Refinement', 'Backtracking', 'State Coding', 'SMT Solver Calls', 'Additional Model Generation')),\n",
" guide=FALSE) +\n",
" scale_x_continuous(breaks=c(20, 30, 40, 50, 100), name=\"Model Size (# nodes)\") +\n",
" scale_y_continuous(name=\"Runtime (s)\") +\n",
" theme_bw()\n",
" ggsave(plot=plot, filename=paste0('plots/plot_RQ2_', name, '.pdf'), width=3.5, height=2.5)\n",
" plot\n",
"}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fam domain"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message:\n",
"“`cols` is now required when using unnest().\n",
"Please use `cols = c(Solution1DetailedStatistics)`”\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
"<caption>A tibble: 10 × 8</caption>\n",
"<thead>\n",
"\t<tr><th scope=col>n</th><th scope=col>Run</th><th scope=col>preprocessingTime</th><th scope=col>StateCoderTime</th><th scope=col>ForwardTime</th><th scope=col>BacktrackingTime</th><th scope=col>NumericalSolverSumTime</th><th scope=col>additionalTime</th></tr>\n",
"\t<tr><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th></tr>\n",
"</thead>\n",
"<tbody>\n",
"\t<tr><td>20</td><td> 1</td><td>2526</td><td>502</td><td>1125</td><td>904</td><td>7754</td><td> 9384</td></tr>\n",
"\t<tr><td>20</td><td> 2</td><td>2091</td><td>408</td><td> 745</td><td>645</td><td>7068</td><td> 7242</td></tr>\n",
"\t<tr><td>20</td><td> 3</td><td>2981</td><td>353</td><td> 884</td><td>724</td><td>8865</td><td> 9243</td></tr>\n",
"\t<tr><td>20</td><td> 4</td><td>1772</td><td>307</td><td> 595</td><td>510</td><td>7406</td><td> 6593</td></tr>\n",
"\t<tr><td>20</td><td> 5</td><td>2123</td><td>349</td><td> 786</td><td>580</td><td>8281</td><td> 9641</td></tr>\n",
"\t<tr><td>20</td><td> 6</td><td>1554</td><td>308</td><td> 670</td><td>690</td><td>7610</td><td> 7545</td></tr>\n",
"\t<tr><td>20</td><td> 7</td><td>1405</td><td>245</td><td> 612</td><td>547</td><td>7967</td><td>15679</td></tr>\n",
"\t<tr><td>20</td><td> 8</td><td>1764</td><td>232</td><td> 588</td><td>409</td><td>5559</td><td>15092</td></tr>\n",
"\t<tr><td>20</td><td> 9</td><td>1091</td><td>151</td><td> 269</td><td>228</td><td>3226</td><td> 5018</td></tr>\n",
"\t<tr><td>20</td><td>10</td><td>1974</td><td>319</td><td> 821</td><td>687</td><td>7977</td><td> 6758</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A tibble: 10 × 8\n",
"\\begin{tabular}{llllllll}\n",
" n & Run & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n",
" <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
"\\hline\n",
"\t 20 & 1 & 2526 & 502 & 1125 & 904 & 7754 & 9384\\\\\n",
"\t 20 & 2 & 2091 & 408 & 745 & 645 & 7068 & 7242\\\\\n",
"\t 20 & 3 & 2981 & 353 & 884 & 724 & 8865 & 9243\\\\\n",
"\t 20 & 4 & 1772 & 307 & 595 & 510 & 7406 & 6593\\\\\n",
"\t 20 & 5 & 2123 & 349 & 786 & 580 & 8281 & 9641\\\\\n",
"\t 20 & 6 & 1554 & 308 & 670 & 690 & 7610 & 7545\\\\\n",
"\t 20 & 7 & 1405 & 245 & 612 & 547 & 7967 & 15679\\\\\n",
"\t 20 & 8 & 1764 & 232 & 588 & 409 & 5559 & 15092\\\\\n",
"\t 20 & 9 & 1091 & 151 & 269 & 228 & 3226 & 5018\\\\\n",
"\t 20 & 10 & 1974 & 319 & 821 & 687 & 7977 & 6758\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 10 × 8\n",
"\n",
"| n <dbl> | Run <dbl> | preprocessingTime <dbl> | StateCoderTime <dbl> | ForwardTime <dbl> | BacktrackingTime <dbl> | NumericalSolverSumTime <dbl> | additionalTime <dbl> |\n",
"|---|---|---|---|---|---|---|---|\n",
"| 20 | 1 | 2526 | 502 | 1125 | 904 | 7754 | 9384 |\n",
"| 20 | 2 | 2091 | 408 | 745 | 645 | 7068 | 7242 |\n",
"| 20 | 3 | 2981 | 353 | 884 | 724 | 8865 | 9243 |\n",
"| 20 | 4 | 1772 | 307 | 595 | 510 | 7406 | 6593 |\n",
"| 20 | 5 | 2123 | 349 | 786 | 580 | 8281 | 9641 |\n",
"| 20 | 6 | 1554 | 308 | 670 | 690 | 7610 | 7545 |\n",
"| 20 | 7 | 1405 | 245 | 612 | 547 | 7967 | 15679 |\n",
"| 20 | 8 | 1764 | 232 | 588 | 409 | 5559 | 15092 |\n",
"| 20 | 9 | 1091 | 151 | 269 | 228 | 3226 | 5018 |\n",
"| 20 | 10 | 1974 | 319 | 821 | 687 | 7977 | 6758 |\n",
"\n"
],
"text/plain": [
" n Run preprocessingTime StateCoderTime ForwardTime BacktrackingTime\n",
"1 20 1 2526 502 1125 904 \n",
"2 20 2 2091 408 745 645 \n",
"3 20 3 2981 353 884 724 \n",
"4 20 4 1772 307 595 510 \n",
"5 20 5 2123 349 786 580 \n",
"6 20 6 1554 308 670 690 \n",
"7 20 7 1405 245 612 547 \n",
"8 20 8 1764 232 588 409 \n",
"9 20 9 1091 151 269 228 \n",
"10 20 10 1974 319 821 687 \n",
" NumericalSolverSumTime additionalTime\n",
"1 7754 9384 \n",
"2 7068 7242 \n",
"3 8865 9243 \n",
"4 7406 6593 \n",
"5 8281 9641 \n",
"6 7610 7545 \n",
"7 7967 15679 \n",
"8 5559 15092 \n",
"9 3226 5018 \n",
"10 7977 6758 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<table>\n",
"<caption>A tibble: 1 × 7</caption>\n",
"<thead>\n",
"\t<tr><th scope=col>n</th><th scope=col>preprocessingTime</th><th scope=col>StateCoderTime</th><th scope=col>ForwardTime</th><th scope=col>BacktrackingTime</th><th scope=col>NumericalSolverSumTime</th><th scope=col>additionalTime</th></tr>\n",
"\t<tr><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th><th scope=col><dbl></th></tr>\n",
"</thead>\n",
"<tbody>\n",
"\t<tr><td>20</td><td>1.873</td><td>0.3135</td><td>0.7075</td><td>0.6125</td><td>7.682</td><td>8.394</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A tibble: 1 × 7\n",
"\\begin{tabular}{lllllll}\n",
" n & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n",
" <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl> & <dbl>\\\\\n",
"\\hline\n",
"\t 20 & 1.873 & 0.3135 & 0.7075 & 0.6125 & 7.682 & 8.394\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A tibble: 1 × 7\n",
"\n",
"| n <dbl> | preprocessingTime <dbl> | StateCoderTime <dbl> | ForwardTime <dbl> | BacktrackingTime <dbl> | NumericalSolverSumTime <dbl> | additionalTime <dbl> |\n",
"|---|---|---|---|---|---|---|\n",
"| 20 | 1.873 | 0.3135 | 0.7075 | 0.6125 | 7.682 | 8.394 |\n",
"\n"
],
"text/plain": [
" n preprocessingTime StateCoderTime ForwardTime BacktrackingTime\n",
"1 20 1.873 0.3135 0.7075 0.6125 \n",
" NumericalSolverSumTime additionalTime\n",
"1 7.682 8.394 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"1.873"
],
"text/latex": [
"1.873"
],
"text/markdown": [
"1.873"
],
"text/plain": [
"[1] 1.873"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC91BMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZmwqVoaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2NoMuOjo6Pj4+RkZGSkpKTk5OV\nlZWWlpaXl5eYmJiampqbm5ucnJydnZ2enp6fn5+goKChoaGjo6OkpKSlpaWmpqam2FSnp6eo\nqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGzs7O0tLS1tbW2tra3t7e4uLi5ubm6urq7\nu7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vMzMzO\nzs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh\n4eHi4uLj4+Pk5OTl5eXm5ubnisPn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy\n8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8jWL8/Pz9/f3+/v7////wEBAMAAAACXBI\nWXMAABJ0AAASdAHeZh94AAAWwElEQVR4nO3dfZwddWHv8SGQRIFILU+KaHrrA3rBFAoFC0LL\nw01tJQnyWEAJCWhV8GLVXmihBS5tuBWosZYWAQVpkfpUEUVQBPUSFBXFKoSgrYEbwpJoIslG\ncpPMHz3nLLssip5kznd32Dnv9x8zc87OOTPM6/fhzMzmvLYogZ4Vde8ANIGQIEBIECAkCBAS\nBAgJAoQEAUKCgIoh/cVsajbryFl17wJv7jWkt/xntdcRs25gbd270PeemD2yKKSJSkj1E1ID\nCKl+QmoAIdVPSA0gpPoJqQGEVD8hNYCQ6iekBhBS/YTUAEKqn5AaQEj1E1IDCKl+QmoAIdVP\nSA0gpPoJqQGEVD8hNYCQ6iekBhBS/YTUAEKqn5AaQEj1E1IDCKl+QmoAIdVPSA0gpPoJqQGE\nVD8hNYCQ6iekBhBS/YTUAEKqn5AaQEj1E1IDCKl+QmoAIdVPSA0gpPoJqQGEVD8hNYCQ6iek\nBhBS/YTUAEKqn5AaQEj1E1IDCKl+4xPSn8CEJiQIEBIECAkChAQBQoIAIUHAOIR0+n2Pd1X3\nYYDedB3iP57Vc0iLB7uq+zBAb7oO8dU9h+TUjubrOsRdI0F3QoIAIUGAkCBASBAgJAgQEgQI\nCQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIA\nIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQ\nICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJ\nAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAh\nQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQEA1p6bvntGfvmNVynJDoI8mQvnzKwk5I\n824cGBhYIST6SDKkLz66qBPSsXc/7Wkh0XzJkMqyE9ITs/7+rPkLlgqJPjIGIf3kTe+7774L\n3vR4a/Erh7ac8J3Huqr7MEBvug7xZUduaUgda4+7pf14dsuJ967squ7DAL3pOsSXVwupfPs/\nDy85taP5ug7xLT+1++EH1pfl4HG3CYn+kQxp5cAtcwYGBleftHDZ0gXz1gmJ/pEM6bT2L2Jn\nfbpcct4Jb7zokZGnhUTzJUP6JYRE8wkJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIA\nIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQ\nICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJ\nAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAh\nQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAg\nJAgQEgQICQKEBAFCggAhQYCQIGAcQjr9/rVd1X0YoDddh/iqWT2HtHiwq7oPA/Sm6xBf3XNI\nTu1ovq5D3DUSdCckCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBA\nSBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIE\nCAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKC\nACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBI\nECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQI\nCQKEBAHRkJa+e0579tPL5p504XIh0UeSIX35lIWdkC46+8GHLjljo5DoH8mQvvjoonZIA7OX\ntD6VjrpHSPSPZEhl2QnpzmM2taZn3iAk+scYhHTzqe3Fc69oTb5yaMsJ33msq7oPA/Sm6xBf\nduQzh/T4R+fvvfv2L9p7/kcf//mQ5o2EtGh2y4n3ruyq7sMAvek6xJc/Y0jrLt25mDLjsKMP\nmzGl2PnSdU8L6a6hU7uPDT/p1I7m6zrEn/HU7gf7Tjr+pjWdxTU3HT9p3x+MDmnF7MVluWrO\nd4VE/6gW0vMP/d6oVb536K935isHbpkzMDBYXvzOB5de8K5NQqJ/VAvpvA1PW2fDuZ3ZabPa\nPl2uWXjKyQtWjvxUSDRftZDa1jxclms/dOmSru8gJJqvckjf3+Xicv1+RbHDN4UElUM6+tUP\nlNcWlz9w4LFCgsoh7XJdWb5hr7K87sVCgsohTbmt3PD8/1WWt0wRElQO6cVXlrcUt5XlVS8U\nElQO6bQXnDP9pRvK5TNcI0H1kB5+TbHTorI8YYdvCwkqh1SWq55oTe5+pOs7CInmqxbSvLVP\nW2ftfCHR36qFNH3G7aNWuX3GdCHR36qF9NjM4pCrl3YWl159SDHzMSHR36qFVG689mVFseue\nB+65a1G8/NqNz/A6IdFPKoZUlhtuP+/1+79y/9efd/uGX3iNkOg3lUPafEKi+YQEAUKCACFB\ngJAgQEgQ0ENIg1//5EC5XkjQS0iXTiuKReVfnNo1JSHRfJVDuqKY/U+tkK7Z5r2JkP4/TGiV\nQ5rx1nKwFVL5568QElQO6Tm3DoX0+clCgsoh7XLjUEj/+jwhQeWQjvi9te2QVuw1U0hQOaQv\nbf2ys4r5c583+atCgsohlV/Yp2jZ//aff4GQ6EPVQyrL5d/61sqyOyHRfL2EtPrHHUKCyiEt\nef12xRAhQeWQfn+Hk99zdoeQoHJI2/3f7nkIiX5ROaRdHhISDKsc0rsvEhIMqxzSz4446D0X\ndwgJKod0cVG4awdPqhzSC4/56gM/6BASVA5pqpsNMKJySPvcIyQYVjmkOw7r+qf6hETfqBzS\nQbsX20/vEBJUDungw4cJCSqHtPmERPMJCQKqhbTHgnKPEUKCaiEdsLA8YISQoFpIW0RINF/l\nkPb93tD8468SElQOqbi7M1t/4RQhQcWQiqf8tpCgYkj3vL+Yc1rb6X/1IyFBxZDK8g/u756H\nkOgXlUPafEKi+SqHtHzubpN8QxaGVA7puG0On9u5SjpNSFA5pB3/rXseQqJfVA5p20eFBMMq\nh3Twl4QEwyqH9I397xQSPKlySAe9uNjWV81hSOWQfNUcnlI5pM0nJJpPSBBQOaQdh00TElQO\naU7H/s/d6wwhQeWQnrTskM8ICXoNqbx7XyFBzyEte66QoNeQNv3N7kKCyiH9VsdeOxXvERL0\nGNI+h73/Z0KCyiFtPiHRfL2H5G/IQtWQ7pj5spmfbS+s+2t37aBiSIsmb/WSyVv9a1l+/uWF\nv0YBFUOas8M95fL9XvWjY4tfW/iEkKBaSL9xVmvyueI5W79toHskQqL5qoW0zT+0Jj8sfu/e\n7okIiX5QLaTig63JsuJzm9ORkOgDQoIAIUFAxZD+fNGiRTcVCxe1CQkqhjSakKBaSOePJiSo\nFtIWERLNJyQIEBIECAkChAQBQoIAIUGAkCBgHEI6/f61XdV9GKA3XYf4qlk9h7R4sKu6DwP0\npusQX91zSE7taL6uQ9w1EnQnJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKC\nACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBI\nECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQI\nCQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIA\nIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQ\nICQIEBIECAkChAQBYxHSO2a1HCck+shYhDTvxoGBgRVCoo+MRUjH3v20h0Ki+cYgpCdm/f1Z\n8xcsFRJ9ZAxC+smb3nfffRe86fHW4lcObTnhO491VfdhgN50HeLLjtzSkDrWHndLa7podsuJ\n967squ7DAL3pOsSXVwupfPs/Dy85taP5ug7xLT+1++EH1pfl4HG3CYn+MQYhrT5p4bKlC+at\nExL9YwxCKpecd8IbL3pk5KGQaL6xCOnnCInmExIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQI\nCQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIA\nIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQ\nICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJ\nAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFCggAh\nQYCQIEBIECAkCBASBAgJAoQEAUKCACFBwDiEdPr9a7uq+zBAb7oO8VWzeg5p8WBXdR8G6E3X\nIb6655Cc2tF8XYe4ayToTkgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKEBAFC\nggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCDg\nWRLS38GEJiQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQICQKeJSH9P5jQhAQBQoIAIUGA\nkCBASBAgJAgQEgQICQKEBAFCggAhQYCQIEBIECAkCBASBAgJAoQEAUKCACFBgJAgQEgQICQI\n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",
"text/plain": [
"plot without title"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
},
"text/plain": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"FamilyTreeRQ2Raw <- rbind(\n",
"# Load10Log(\"measurements/stats/FamilyTree//size010to-1r10n10rt300nsdrealstats_06-0249.csv\", 10),\n",
" Load10Log(\"measurements2/stats/FamilyTree/size020to-1r10n10rt3600nsdreal-localstats_06-1949.csv\", 20)\n",
"# Load10Log(\"measurements1/stats1010.csv\", 20),\n",
"# Load10Log(\"measurements1/stats1515.csv\", 30),\n",
"# Load10Log(\"measurements1/stats2020.csv\", 40),\n",
"# Load10Log(\"measurements1/stats2525.csv\", 50)\n",
")\n",
"FamilyTreeRQ2Raw\n",
"FamilyTreeRQ2 <- FamilyTreeRQ2Raw %>% ProcessRQ2\n",
"FamilyTreeRQ2\n",
"median(FamilyTreeRQ2Raw$preprocessingTime) / 1000.0\n",
"FamilyTreeRQ2 %>% RQ2Plot('FamilyTree')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "4.0.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
|