{ "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": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A tibble: 10 × 8
nRunpreprocessingTimeStateCoderTimeForwardTimeBacktrackingTimeNumericalSolverSumTimeadditionalTime
<dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
20 1252650211259047754 9384
20 22091408 7456457068 7242
20 32981353 8847248865 9243
20 41772307 5955107406 6593
20 52123349 7865808281 9641
20 61554308 6706907610 7545
20 71405245 612547796715679
20 81764232 588409555915092
20 91091151 2692283226 5018
20101974319 8216877977 6758
\n" ], "text/latex": [ "A tibble: 10 × 8\n", "\\begin{tabular}{llllllll}\n", " n & Run & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n", " & & & & & & & \\\\\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": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\n", "
A tibble: 1 × 7
npreprocessingTimeStateCoderTimeForwardTimeBacktrackingTimeNumericalSolverSumTimeadditionalTime
<dbl><dbl><dbl><dbl><dbl><dbl><dbl>
201.8730.31350.70750.61257.6828.394
\n" ], "text/latex": [ "A tibble: 1 × 7\n", "\\begin{tabular}{lllllll}\n", " n & preprocessingTime & StateCoderTime & ForwardTime & BacktrackingTime & NumericalSolverSumTime & additionalTime\\\\\n", " & & & & & & \\\\\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\n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\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\nEBIECAkCniUh/QtMaEKCACFBgJAgQEgQICQIEBIECAkChAQBQoIAIUGAkCBASBAgJAgQEgQI\nCQKEBAFCggAhQYCQIEBIECAkCBASBIxFSD+9bO5JFy4XEn1kLEK66OwHH7rkjI1Con+MQUgD\ns5e0PpWOukdI9I8xCOnOYza1pmfeICT6xxiEdPOp7em5V7Qmi2a3nHjvyq7qPgzQm65DfPmR\nWxzSvC0PiTG1YmBF3bvQ97Y8pLuGTu0+Nvx4c07tGFPrBtbWvQt9b8tP7VbMXlyWq+Z8d/ix\nkGonpPpVuP198TsfXHrBuzYNPxRS7YRUvwohrVl4yskLVo48FFLthFS/8fknQowpIdVPSA0g\npPoJqQGEVD8hNYCQ6iekBhBS/YTUAEKqn5AaQEj1E1IDCKl+QmoAIdVPSA0gpPoJqQGEVD8h\nNYCQ6iekBhBS/YTUAEKqn5AaQEj1E1IDCKl+QmoAIdVPSA0gpPoJqQGEVD8hNYCQ6iekBhBS\n/YTUAEKqn5AaQEj1E1IDCKl+QmoAIdVPSA0gpPoJqQGEVD8hNYCQ6iekBhBS/QIhvf/D1OvK\nf/hg3bvQ967qOaQ7PkHNPjD/krp3gc/3GhK1u3Xfa+veBZ4ipIlKSM8qQpqohPSsIqSJSkjP\nKkKCACFBgJAgQEgQIKQJaMUlbzz+nPvK8qeXzT3pwuV17w1tQpqA/vTsJQ9fevJgedHZDz50\nyRkb694dSiFNRKsX/GdZPjrr/oHZS1qfSkfdU/f+UAppwvr+nJV3HrOptXDmDXXvCqWQJqrV\nb/9QefOp7aVzr6h7XyiFNEH96C2XbypvntdeFNKzgpAmontOurE1vWvo1O5jde8NpZAmpH8/\n8Rvt2YrZi8ty1Zzv1r07lEKaiH725usHWgbLi9/54NIL3rWp7v2hFNJEdM+sjs+UaxaecvKC\nlXXvDm1CggAhQYCQIEBIECAkCBASBAgJAoQEAUIaH+cXOz8xtHRacdAv/viE7UY/OmiP4aWB\nv/ntHbfZ+Q9ubi0esMcvvGqUx6bPb00/cVxZPvrCrjvz9K0NO/fXf9D1lfwyQhof50/a+lOd\nhbXPm7z5Ia34jW3P/Mj1f/2bk64vy4ULfsXbb5w5o/23Kc5trXPzH3XdmWcOacOh+67r+lJ+\nCSGNj/O3OXDoLxdcN3m/zQ/pfcVH27OVL5re5fvk1xa3t2eva310LTiv6848c0jl9yZd2vWl\n/BJCGh/nFwu2eaS9MHPmQe2QPnvw9s/Z87JNZbnpwt2n7vWxztC+/Yhpz93nqnJUSH9WLO7M\nf7S2c2p3dzHk3lHrdmx4xSGd+S6PluWxn3zyyYNf+83Dpu38x8u7be3h018yddejv99aOn6X\nx8fhUDSTkMbH+cXizv/vl066+jWtkD611ev+7QvvKv6sLP+2OPnWG/baozW0v7D1ITfe8tbi\n0lEhXV+84cfD79AKafWtLZ/ZefefjFq3447i6rK8ZOrUYurUqVtNnbq08+ThL/6dW5d/fOu5\n3bb2mhdcedt1r95lTVneVPjaelVCGh/nF4NH7Nma/5/nrj6gFdIrX/Kz1oOjJj+2abe9WgsP\nT24N7X1e1hrL5expg0+FtPH4Yuof/e1dnfO64ZsN86Z+bfS6HX9ZdNr5+NFl+chuw5s8vPhq\ne7pbl62tKs5pLTyw4KGyXDPltDE/EE0lpPHRCukjxdfL8lUnlq2QHire2n7yquIz/1H8z/bS\n725XLi/OGmz5p9ZaT921K28+abei2OmcNSMhXV58sBy9bsfrd+3M/vR9ZfmJY4dfevi27enc\nSV229sSO078wfAU2Y++xPAaNJqTx0QppzbS3lV8vPtcO6evFRe0nP1tc8bWhpWO2K7/15AVQ\n8cnRIbUs+eDBxe9ufDKkO6e8pTUdtW7H/nt2Zr/ztaGYhhw+vT09rei2ta/+t2LHY65b3/7B\nYbuP4SFoNiGNj1ZI5fxfGzzjhRvaId1dXNh+8qbiyruGhvZR7aE9f1HHwM+FVJab5hd3DIW0\nbLcD2mdpo9bteOWBrcmLhi6RpkydN/TkSEhdtlZu+OJ7/nuxX/v2+dHbj/VxaCwhjY92SHcU\nn97p3WU7pGVF+3OlvKK4eUlxRntp7+3KFcXc4ZWHQ1r3kaHfPZXXFB/phPTEwbt2LoZGrdsx\n9Il052vLcv32I78LGgmpy9Y6Li8+3Joe9qLUf2/fEdL4aIe06Tf3K77dCanca7f2bYLXbbtq\n404vbV2g3LdV6/J//x3ad+iuOXf9SEibXr7zkvZ8w5HFdzohnbnNHUM/eWrdjqFrpMvPLMtv\n/9bIJkdC+tVb+8YJ7RvkDxSXlK6ReiCk8dEOqbygaA/zdkg3TZr56c+9rbi4fcPt6E/84/R9\nW0P79skzrvn8eZNPHXX7+0vbT3vz+6/83zOKd3RuNtxQHN++AX7rklHrdpzbuWv3livL8sPz\nRjb5VEi/cmvLps246taPHvi8B8pyzdR5JdUIaXx0Qnpwq8vKoZDKW1673dR9rm4tbDjnBVNe\n/akzp7QWv/I/pk1+xXvXj/63dv8+/6VTt9n1Dz9edkI668kbBOePWrfjS8WH2mt8oyzP+sDI\nJp8K6Vdv7dtv2GXybm/4Ztm+HXH92B+JhhJSE6x/6e8n3uaPd/pp4m36kpAa4Zriy72/yfcn\nvbf3N+lXQmqEjUfsPdjzexy+T8/v0b+E1AwDne8j9eQvn/9gYk/6lJAgQEgQICQIEBIECAkC\nhAQBQoIAIUHAfwG0KGlJcWymTQAAAABJRU5ErkJggg==", "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 }