diff --git a/auxiliary_packages/funman_benchmarks/src/funman_benchmarks/_version.py b/auxiliary_packages/funman_benchmarks/src/funman_benchmarks/_version.py index f5590fbd..88ff4b64 100644 --- a/auxiliary_packages/funman_benchmarks/src/funman_benchmarks/_version.py +++ b/auxiliary_packages/funman_benchmarks/src/funman_benchmarks/_version.py @@ -1,4 +1,4 @@ """Version information.""" # The following line *must* be the last in the module, exactly as formatted: -__version__ = "1.10.0" +__version__ = "1.11.0" diff --git a/auxiliary_packages/funman_demo/src/funman_demo/_version.py b/auxiliary_packages/funman_demo/src/funman_demo/_version.py index f5590fbd..88ff4b64 100644 --- a/auxiliary_packages/funman_demo/src/funman_demo/_version.py +++ b/auxiliary_packages/funman_demo/src/funman_demo/_version.py @@ -1,4 +1,4 @@ """Version information.""" # The following line *must* be the last in the module, exactly as formatted: -__version__ = "1.10.0" +__version__ = "1.11.0" diff --git a/auxiliary_packages/funman_demo/src/funman_demo/helpers.py b/auxiliary_packages/funman_demo/src/funman_demo/helpers.py index 77e5215a..41ca71c0 100644 --- a/auxiliary_packages/funman_demo/src/funman_demo/helpers.py +++ b/auxiliary_packages/funman_demo/src/funman_demo/helpers.py @@ -5,6 +5,7 @@ import logging import matplotlib.pyplot as plt +import numpy as np import pandas as pd from funman import ( @@ -163,7 +164,7 @@ def relax_parameter_bounds(funman_request, factor=0.1): interval.ub = interval.ub + (factor / 2 * width) -def plot_last_point(results, states): +def plot_last_point(results, states, plot_logscale=False): pts = results.parameter_space.points() print(f"{len(pts)} points") @@ -171,8 +172,14 @@ def plot_last_point(results, states): # Get a plot for last point df = results.dataframe(points=pts[-1:]) # pd.options.plotting.backend = "plotly" + for s in states: + df[s] = df[s].mask(np.isinf) + ax = df[states].plot() + if plot_logscale: + ax.set_yscale("symlog") + fig = plt.figure() # fig.set_yscale("log") # fig.savefig("save_file_name.pdf") @@ -196,12 +203,41 @@ def pretty_print_request_params(params): print(df.T) -def report(results, name, states, request_results, request_params): +def runtime_stats_dataframe(request_params): + df = pd.DataFrame(request_params).T + df.index.name = "Model" + df = ( + df[["model_size", "total_time", "time_horizon"]] + .rename( + columns={ + "model_size": "Model Size", + "total_time": "Total Time", + "time_horizon": "Time Horizon", + } + ) + .sort_index() + ) + return df + + +def report( + results, + name, + states, + request_results, + request_params, + plot_logscale=False, + plot=True, +): request_results[name] = results - plot_last_point(results, states) + if plot: + plot_last_point(results, states, plot_logscale=plot_logscale) param_values = get_last_point_parameters(results) # print(f"Point parameters: {param_values}") if param_values is not None: + param_values["total_time"] = results.timing.total_time + param_values["model_size"] = results.model.num_elements() + param_values["time_horizon"] = results.time_horizon() request_params[name] = param_values pretty_print_request_params(request_params) diff --git a/auxiliary_packages/funman_demo/src/funman_demo/plot.py b/auxiliary_packages/funman_demo/src/funman_demo/plot.py index ca11e269..8e0d5fc6 100644 --- a/auxiliary_packages/funman_demo/src/funman_demo/plot.py +++ b/auxiliary_packages/funman_demo/src/funman_demo/plot.py @@ -108,7 +108,9 @@ def summarize_results( boxes = ( results.parameter_space.boxes() if not print_last_time - else results.parameter_space.last_boxes() + else results.parameter_space.last_boxes( + steps=[results.parameter_space.last_step()] + ) ) if parameters_to_plot is None: diff --git a/auxiliary_packages/funman_dreal/src/funman_dreal/_version.py b/auxiliary_packages/funman_dreal/src/funman_dreal/_version.py index f5590fbd..88ff4b64 100644 --- a/auxiliary_packages/funman_dreal/src/funman_dreal/_version.py +++ b/auxiliary_packages/funman_dreal/src/funman_dreal/_version.py @@ -1,4 +1,4 @@ """Version information.""" # The following line *must* be the last in the module, exactly as formatted: -__version__ = "1.10.0" +__version__ = "1.11.0" diff --git a/auxiliary_packages/funman_dreal/src/funman_dreal/converter.py b/auxiliary_packages/funman_dreal/src/funman_dreal/converter.py index a50a3e70..b84170c8 100644 --- a/auxiliary_packages/funman_dreal/src/funman_dreal/converter.py +++ b/auxiliary_packages/funman_dreal/src/funman_dreal/converter.py @@ -30,6 +30,8 @@ ) from pysmt.walkers import DagWalker +from funman.utils.smtlib_utils import str_smtlib + l = logging.getLogger(__name__) @@ -119,15 +121,15 @@ def __init__(self, env=None): r"(-?\d+\.\d+e-?\d+)", self.real_constant, True ), # decimals scientific ] - + self.rules[0:-1] + + self.rules[0:-2] + [ Rule( - r"(([A-Za-z_]|[^\u0000-\u007F])([A-Za-z_]|[^\u0000-\u007F])*)", + r"(([A-Za-z_]|[^\u0000-\u007F])([\w\.\{\}_]|[^\u0000-\u007F])*)", self.identifier, True, ), # unicode identifiers ] - + self.rules[-1:] + + self.rules[-2:] ) self.compile() @@ -218,6 +220,7 @@ def back(self, dreal_formula: dreal.Formula) -> FNode: ) new_symbols = self.create_dreal_symbols(str(dreal_formula)) formula = CoreParser().parse(str(dreal_formula)) + l.debug(f"Extracted SMTLib: {str_smtlib(formula)}") except Exception as e: raise e return formula diff --git a/auxiliary_packages/pde2petri/src/pde2petri/_version.py b/auxiliary_packages/pde2petri/src/pde2petri/_version.py index fcfdf383..f84c53b0 100644 --- a/auxiliary_packages/pde2petri/src/pde2petri/_version.py +++ b/auxiliary_packages/pde2petri/src/pde2petri/_version.py @@ -1 +1 @@ -__version__ = "1.10.0" +__version__ = "1.11.0" diff --git a/docker/docker-bake.hcl b/docker/docker-bake.hcl index d0ec4ca0..344df0d3 100644 --- a/docker/docker-bake.hcl +++ b/docker/docker-bake.hcl @@ -20,7 +20,7 @@ variable "DREAL_REPO_URL" { default = "https://github.com/danbryce/dreal4.git" } variable "DREAL_COMMIT_TAG" { - default = "03a1055c7768ba609f33897ad91c361da6582871" + default = "acc5a255e0245f05458b1041a4e163c11e89880e" } variable "AUTOMATES_COMMIT_TAG" { default = "e5fb635757aa57007615a75371f55dd4a24851e0" diff --git a/notebooks/abstraction-bounding-demo.ipynb b/notebooks/abstraction-bounding-demo.ipynb index d783137c..d7c86da0 100644 --- a/notebooks/abstraction-bounding-demo.ipynb +++ b/notebooks/abstraction-bounding-demo.ipynb @@ -2,14 +2,17 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ + "# Imports and other setup\n", + "\n", "import os\n", + "import random\n", "import pandas as pd\n", "from funman import MODE_ODEINT, FunmanWorkRequest, GeneratedPetriNetModel\n", - "from funman_demo.helpers import run, get_model, setup_common, get_request, report\n", + "from funman_demo.helpers import run, get_model, setup_common, get_request, report, runtime_stats_dataframe\n", "\n", "\n", "RESOURCES = \"../resources\"\n", @@ -35,23 +38,23 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Constants for the scenario\n", "\n", - "MAX_TIME=50\n", - "STEP_SIZE=10\n", - "MODE=MODE_ODEINT\n", - "model_str = \"sir\"\n", - "beta_modifier = 0.00001\n", + "MAX_TIME=40 # Number of timesteps for simulation\n", + "STEP_SIZE=1 # Granularity of steps reported (not the granularity of simulation)\n", + "MODE=MODE_ODEINT # Use numeric integration (not SMT)\n", + "model_str = \"sir\" # Model to use\n", + "beta_modifier = 0.00001 # Amount to adjust +/- beta parameter \n", "timepoints = list(range(0, MAX_TIME+STEP_SIZE, STEP_SIZE))" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -59,8 +62,8 @@ "output_type": "stream", "text": [ "1 points\n", - " beta gamma\n", - "sir 0.000315 0.1\n" + " beta gamma model_size time_horizon total_time\n", + "sir 0.000315 0.1 7 40 0 days 00:00:00.152909\n" ] }, { @@ -150,16 +153,16 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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", + "image/png": "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Ucfn+2r6Mdb044Oaf4w6vspXYzvxioiISM2lKzAiIiLicxRgRERExOcowIiIiIjPUYARERERn6MAc5qmT59O48aNCQgIoEePHixdutTskirE448/jsViKbe0atXK7LLOyqJFi7j88suJj4/HYrHwxRdflFtvGAYTJ06kXr16BAYG0q9fP7Zu3WpOsWfgr47v1ltv/cM5HTBggDnFnoFJkybRrVs3QkNDiYmJ4aqrriIlJaXcNsXFxYwaNYo6deoQEhLC4MGDycjIMKni03Mqx3fBBRf84RzeddddJlV8+l599VXat2/vHewsKSmJ7777zrvel88f/PXx+fr5+73JkydjsVgYO3ast83Mc6gAcxo++ugjxo8fz2OPPcbKlSvp0KED/fv3JzMz0+zSKsQ555zD/v37vcsvv/xidklnpaCggA4dOjB9+vQTrp8yZQrTpk1jxowZLFmyhODgYPr3709xcXEVV3pm/ur4AAYMGFDunM6ePbsKKzw7CxcuZNSoUSxevJh58+bhdDq55JJLKCgo8G4zbtw4vv76az755BMWLlxIWloaV199tYlVn7pTOT6AESNGlDuHU6ZMMani09egQQMmT57MihUrWL58ORdddBFXXnklGzZsAHz7/MFfHx/49vk73rJly3jttddo3759uXZTz6Ehp6x79+7GqFGjvK9dLpcRHx9vTJo0ycSqKsZjjz1mdOjQwewyKg1gfP75597XbrfbiIuLM6ZOnepty87ONhwOhzF79mwTKjw7vz8+wzCMYcOGGVdeeaUp9VSGzMxMAzAWLlxoGIbnfPn5+RmffPKJd5tNmzYZgJGcnGxWmWfs98dnGIbRp08f49577zWvqEoQGRlpvPnmmzXu/B119PgMo+acv7y8PKN58+bGvHnzyh2T2edQV2BOUWlpKStWrKBfv37eNqvVSr9+/UhOTjaxsoqzdetW4uPjadKkCUOHDmX37t1ml1RpUlNTSU9PL3c+w8PD6dGjR405nwALFiwgJiaGli1bcvfdd3Po0CGzSzpjOTk5AERFRQGwYsUKnE5nuXPYqlUrGjZs6JPn8PfHd9T7779PdHQ0bdu2ZcKECRQWFppR3llzuVx8+OGHFBQUkJSUVOPO3++P76iacP5GjRrFoEGDyp0rMP/vYI2dzLGiHTx4EJfLRWxsbLn22NhYNm/ebFJVFadHjx7MnDmTli1bsn//fp544gnOP/981q9fT2hoqNnlVbj09HSAE57Po+t83YABA7j66qtJTExk+/btPPLIIwwcOJDk5GRsNpvZ5Z0Wt9vN2LFjOe+882jbti3gOYf+/v5ERESU29YXz+GJjg/gxhtvpFGjRsTHx7N27VoeeughUlJS+Oyzz0ys9vSsW7eOpKQkiouLCQkJ4fPPP6dNmzasXr26Rpy/kx0f1Izz9+GHH7Jy5UqWLVv2h3Vm/x1UgBEABg4c6H3evn17evToQaNGjfj4448ZPny4iZXJmRoyZIj3ebt27Wjfvj1NmzZlwYIF9O3b18TKTt+oUaNYv369z/fLOpmTHd/IkSO9z9u1a0e9evXo27cv27dvp2nTplVd5hlp2bIlq1evJicnh//7v/9j2LBhLFy40OyyKszJjq9NmzY+f/727NnDvffey7x58wgICDC7nD/QT0inKDo6GpvN9ofe1RkZGcTFxZlUVeWJiIigRYsWbNu2zexSKsXRc1ZbzidAkyZNiI6O9rlzOnr0aL755ht++uknGjRo4G2Pi4ujtLSU7Ozsctv72jk82fGdSI8ePQB86hz6+/vTrFkzunTpwqRJk+jQoQP/+c9/asz5O9nxnYivnb8VK1aQmZlJ586dsdvt2O12Fi5cyLRp07Db7cTGxpp6DhVgTpG/vz9dunRh/vz53ja32838+fPL/d5ZU+Tn57N9+3bq1atndimVIjExkbi4uHLnMzc3lyVLltTI8wmwd+9eDh065DPn1DAMRo8ezeeff86PP/5IYmJiufVdunTBz8+v3DlMSUlh9+7dPnEO/+r4TmT16tUAPnMOT8TtdlNSUuLz5+9kjh7fifja+evbty/r1q1j9erV3qVr164MHTrU+9zUc1jp3YRrkA8//NBwOBzGzJkzjY0bNxojR440IiIijPT0dLNLO2v33XefsWDBAiM1NdX49ddfjX79+hnR0dFGZmam2aWdsby8PGPVqlXGqlWrDMB4/vnnjVWrVhm7du0yDMMwJk+ebERERBhffvmlsXbtWuPKK680EhMTjaKiIpMrPzV/dnx5eXnG/fffbyQnJxupqanGDz/8YHTu3Nlo3ry5UVxcbHbpp+Tuu+82wsPDjQULFhj79+/3LoWFhd5t7rrrLqNhw4bGjz/+aCxfvtxISkoykpKSTKz61P3V8W3bts148sknjeXLlxupqanGl19+aTRp0sTo3bu3yZWfuocffthYuHChkZqaaqxdu9Z4+OGHDYvFYnz//feGYfj2+TOMPz++mnD+TuT3d1aZeQ4VYE7TSy+9ZDRs2NDw9/c3unfvbixevNjskirE9ddfb9SrV8/w9/c36tevb1x//fXGtm3bzC7rrPz0008G8Idl2LBhhmF4bqV+9NFHjdjYWMPhcBh9+/Y1UlJSzC36NPzZ8RUWFhqXXHKJUbduXcPPz89o1KiRMWLECJ8K2yc6NsB45513vNsUFRUZ99xzjxEZGWkEBQUZf/vb34z9+/ebV/Rp+Kvj2717t9G7d28jKirKcDgcRrNmzYwHHnjAyMnJMbfw03D77bcbjRo1Mvz9/Y26desaffv29YYXw/Dt82cYf358NeH8ncjvA4yZ59BiGIZR+dd5RERERCqO+sCIiIiIz1GAEREREZ+jACMiIiI+RwFGREREfI4CjIiIiPgcBRgRERHxOQowIiIi4nMUYERERMTnKMCIiIiIz1GAEREREZ+jACMiIiI+RwFGREREfM7/AyXZr/IYhkuAAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -173,7 +176,7 @@ "\n", "(base_model, _) = get_model(models[model_str])\n", "funman_request = get_request(requests[model_str])\n", - "setup_common(funman_request, timepoints, debug=True, mode=MODE, synthesize=False,dreal_precision=1)\n", + "setup_common(funman_request, timepoints, mode=MODE)\n", "base_results = run(funman_request, model_str, models)\n", "report(base_results, model_str, base_model._state_var_names() + base_model._observable_names(), request_results, request_params)\n", "base_model.to_dot()" @@ -181,9 +184,30 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 4, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 points\n", + " beta gamma total_time model_size time_horizon \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 7 40 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 20 40 \n", + "\n", + " beta_lb beta_ub gamma_lb gamma_ub \n", + "sir NaN NaN NaN NaN \n", + "sir_bounded 0.000305 0.000325 0.1 0.1 \n" + ] + }, { "data": { "image/svg+xml": [ @@ -376,26 +400,37 @@ "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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+++/v+hjdTrd5d9qUaku+vZOV+Dh4cG1117Ltddey5/+9Cfuu+8+/vznP18wyKjVjkY4pUWfHIvF0tGlCiGEEB3ikoPMo48++rO/8ffr1++izhUSEoJGo6G0tLTV9tLSUiIiIi61tKve0KFDzzsy7KzQ0FAAiouLGTVqFECrjr8tbd26lZiYGACqq6s5fPgwQ4YMabd6hRBCiCt1yUEmNDTU+WF4pdzd3RkzZgyZmZnMmjULALvdTmZmJgsXLmyXa/RElZWV3HrrrSxYsICRI0fi6+vLzp07ee6557jpppsu+F5PT09SUlJ45pln6Nu3L2VlZfy///f/znnsX//6V4KDgwkPD+e///u/CQkJcf53EkIIIbqCDu0jYzAYKCgocL4uKioiNzeXoKAg52/6GRkZzJ07l8TERJKSkli6dClGo9E5ikm05ePjQ3JyMi+99BKFhYVYLBaio6O5//77eeKJJ372/W+88Qb33nsvY8aMYdCgQTz33HNcd911bY575plneOSRRzhy5AgJCQl8/vnnuLu7d8S3JIQQQlwWlaJcwgQmlygrK4u0tLQ22+fOncvKlSudr5ctW8aSJUsoKSkhISGBl19+meTk5HapQa/X4+/vT21tLX5+fq32NTY2UlRURN++ffHw8GiX613N5M9TCCFEe7nQ53dLHdoiM2XKFC4mJy1cuFBuJQkhhBDiknWLtZbExXv33XedE+b99DFs2DBXlyeEEEK0K5fOIyPa38yZM897W05m5BVCCNHTSJDpYXx9fWWlcCGEEFcNubUkhBBCiG5LgowQQgghui0JMkIIIYTotiTICCGEEKLbkiAjhBBCiG5LgkwPNmXKFH73u985X8fGxrJ06VKX1SOEEEK0Nwky3dC8efNk8UYhhBACCTJCCCGE6MYkyFxl6urquPPOO/H29qZ3794sX77c1SUJIYQQl01m9m1BURQarA0uuban1hOVStXh11myZAlPPPEETz31FN9++y2PPPIIAwcO5Nprr+3wawshhBDtTYJMCw3WBpLfO/c6RR1t213b8HLz6vDrjB8/nkWLFgEwcOBAsrOzeemllyTICCGE6Jbk1tJVJjU1tc3rQ4cOuagaIYQQ4spIi0wLnlpPtt21zWXXFkIIIcSlkSDTgkql6pTbO660devWNq+HDBniomqEEEKIKyNB5iqTnZ3Nc889x6xZ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "# 1.1) Bound the Base Model\n", + "# 1.1) Bound the Base Model (support parameter synthesis for beta)\n", "\n", "bounded_model: GeneratedPetriNetModel = base_model.formulate_bounds()\n", "\n", - "# Modify the beta_1 and beta_2 parameters\n", + "# Modify the beta parameter bounds by beta_modifier\n", "parameters = bounded_model.petrinet.semantics.ode.parameters\n", "beta_1 = next(p for p in parameters if p.id == \"beta_lb\")\n", "beta_2 = next(p for p in parameters if p.id == \"beta_ub\")\n", "beta_1.value -= beta_modifier\n", "beta_2.value += beta_modifier\n", "\n", + "# Save the modified model\n", "bounded_model_str = f\"{model_str}_bounded\"\n", "bounded_model_path = os.path.join(EXAMPLE_DIR, bounded_model_str+\".json\")\n", "models[bounded_model_str] = bounded_model_path\n", @@ -408,23 +443,420 @@ "bounded_request = FunmanWorkRequest() \n", "setup_common(bounded_request, timepoints, mode=MODE)\n", "bounded_results = run(bounded_request, bounded_model_str, models)\n", - "# report(bounded_results, bounded_model_str, bounded_model._state_var_names() + bounded_model._observable_names(), request_results, request_params)\n", + "report(bounded_results, bounded_model_str, bounded_model._state_var_names() + bounded_model._observable_names(), request_results, request_params, plot_logscale=True)\n", "bounded_model.to_dot()" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 points\n", - " beta gamma beta_1_2_0 beta_1_2_1\n", - "sir 0.000315 0.1 NaN NaN\n", - "sir_stratified NaN 0.1 0.000305 0.000325\n" + " beta gamma total_time model_size \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 7 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 20 \n", + "sir_stratified_100 NaN 0.1 0 days 00:00:46.197466 304 \n", + "\n", + " time_horizon beta_lb beta_ub gamma_lb gamma_ub \\\n", + "sir 40 NaN NaN NaN NaN \n", + "sir_bounded 40 0.000305 0.000325 0.1 0.1 \n", + "sir_stratified_100 40 NaN NaN NaN NaN \n", + "\n", + " beta_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_0 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "\n", + " ... \\\n", + "sir ... \n", + "sir_bounded ... \n", + "sir_stratified_100 ... \n", + "\n", + " beta_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_90 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000316 \n", + "\n", + " beta_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_91 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.00031 \n", + "\n", + " beta_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_92 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000321 \n", + "\n", + " beta_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_93 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "\n", + " beta_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_94 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000306 \n", + "\n", + " beta_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_95 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000319 \n", + "\n", + " beta_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_96 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000311 \n", + "\n", + " beta_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_97 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000316 \n", + "\n", + " beta_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_98 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000315 \n", + "\n", + " beta_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_99 \n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000321 \n", + "\n", + "[3 rows x 109 columns]\n", + " beta gamma total_time model_size \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 7 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 20 \n", + "sir_stratified_100 NaN 0.1 0 days 00:00:46.197466 304 \n", + "sir_stratified_050 NaN 0.1 0 days 00:00:11.679174 154 \n", + "\n", + " time_horizon beta_lb beta_ub gamma_lb gamma_ub \\\n", + "sir 40 NaN NaN NaN NaN \n", + "sir_bounded 40 0.000305 0.000325 0.1 0.1 \n", + "sir_stratified_100 40 NaN NaN NaN NaN \n", + "sir_stratified_050 40 NaN NaN NaN NaN \n", + "\n", + " beta_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_0 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "sir_stratified_050 NaN \n", + "\n", + " ... \\\n", + "sir ... \n", + "sir_bounded ... \n", + "sir_stratified_100 ... \n", + "sir_stratified_050 ... \n", + "\n", + " beta_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_40 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000306 \n", + "\n", + " beta_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_41 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000321 \n", + "\n", + " beta_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_42 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000314 \n", + "\n", + " beta_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_43 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000319 \n", + "\n", + " beta_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_44 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000324 \n", + "\n", + " beta_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_45 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000312 \n", + "\n", + " beta_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_46 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000324 \n", + "\n", + " beta_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_47 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000308 \n", + "\n", + " beta_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_48 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000319 \n", + "\n", + " beta_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_49 \n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 0.000323 \n", + "\n", + "[4 rows x 159 columns]\n", + " beta gamma total_time model_size \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 7 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 20 \n", + "sir_stratified_100 NaN 0.1 0 days 00:00:46.197466 304 \n", + "sir_stratified_050 NaN 0.1 0 days 00:00:11.679174 154 \n", + "sir_stratified_025 NaN 0.1 0 days 00:00:03.674596 79 \n", + "\n", + " time_horizon beta_lb beta_ub gamma_lb gamma_ub \\\n", + "sir 40 NaN NaN NaN NaN \n", + "sir_bounded 40 0.000305 0.000325 0.1 0.1 \n", + "sir_stratified_100 40 NaN NaN NaN NaN \n", + "sir_stratified_050 40 NaN NaN NaN NaN \n", + "sir_stratified_025 40 NaN NaN NaN NaN \n", + "\n", + " beta_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_0 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "\n", + " ... \\\n", + "sir ... \n", + "sir_bounded ... \n", + "sir_stratified_100 ... \n", + "sir_stratified_050 ... \n", + "sir_stratified_025 ... \n", + "\n", + " beta_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_15 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.00031 \n", + "\n", + " beta_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_16 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.000309 \n", + "\n", + " beta_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_17 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.000305 \n", + "\n", + " beta_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_18 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.000313 \n", + "\n", + " beta_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_19 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.000307 \n", + "\n", + " beta_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_20 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.00032 \n", + "\n", + " beta_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_21 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.00031 \n", + "\n", + " beta_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_22 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.000313 \n", + "\n", + " beta_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_23 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.000314 \n", + "\n", + " beta_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_24 \n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 0.00032 \n", + "\n", + "[5 rows x 184 columns]\n", + " beta gamma total_time model_size \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 7 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 20 \n", + "sir_stratified_100 NaN 0.1 0 days 00:00:46.197466 304 \n", + "sir_stratified_050 NaN 0.1 0 days 00:00:11.679174 154 \n", + "sir_stratified_025 NaN 0.1 0 days 00:00:03.674596 79 \n", + "sir_stratified_010 NaN 0.1 0 days 00:00:01.209570 34 \n", + "\n", + " time_horizon beta_lb beta_ub gamma_lb gamma_ub \\\n", + "sir 40 NaN NaN NaN NaN \n", + "sir_bounded 40 0.000305 0.000325 0.1 0.1 \n", + "sir_stratified_100 40 NaN NaN NaN NaN \n", + "sir_stratified_050 40 NaN NaN NaN NaN \n", + "sir_stratified_025 40 NaN NaN NaN NaN \n", + "sir_stratified_010 40 NaN NaN NaN NaN \n", + "\n", + " beta_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_0 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 NaN \n", + "\n", + " ... beta_1_2_3_4_5_6_7_8_9_10_0 \\\n", + "sir ... NaN \n", + "sir_bounded ... NaN \n", + "sir_stratified_100 ... NaN \n", + "sir_stratified_050 ... NaN \n", + "sir_stratified_025 ... NaN \n", + "sir_stratified_010 ... 0.000323 \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_1 beta_1_2_3_4_5_6_7_8_9_10_2 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000324 0.000321 \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_3 beta_1_2_3_4_5_6_7_8_9_10_4 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000322 0.000306 \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_5 beta_1_2_3_4_5_6_7_8_9_10_6 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000313 0.000313 \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_7 beta_1_2_3_4_5_6_7_8_9_10_8 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000317 0.000322 \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_9 \n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 0.000307 \n", + "\n", + "[6 rows x 194 columns]\n", + " beta gamma total_time model_size \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 7 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 20 \n", + "sir_stratified_100 NaN 0.1 0 days 00:00:46.197466 304 \n", + "sir_stratified_050 NaN 0.1 0 days 00:00:11.679174 154 \n", + "sir_stratified_025 NaN 0.1 0 days 00:00:03.674596 79 \n", + "sir_stratified_010 NaN 0.1 0 days 00:00:01.209570 34 \n", + "sir_stratified_002 NaN 0.1 0 days 00:00:00.316371 10 \n", + "\n", + " time_horizon beta_lb beta_ub gamma_lb gamma_ub \\\n", + "sir 40 NaN NaN NaN NaN \n", + "sir_bounded 40 0.000305 0.000325 0.1 0.1 \n", + "sir_stratified_100 40 NaN NaN NaN NaN \n", + "sir_stratified_050 40 NaN NaN NaN NaN \n", + "sir_stratified_025 40 NaN NaN NaN NaN \n", + "sir_stratified_010 40 NaN NaN NaN NaN \n", + "sir_stratified_002 40 NaN NaN NaN NaN \n", + "\n", + " beta_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_0 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 NaN \n", + "sir_stratified_002 NaN \n", + "\n", + " ... beta_1_2_3_4_5_6_7_8_9_10_2 \\\n", + "sir ... NaN \n", + "sir_bounded ... NaN \n", + "sir_stratified_100 ... NaN \n", + "sir_stratified_050 ... NaN \n", + "sir_stratified_025 ... NaN \n", + "sir_stratified_010 ... 0.000321 \n", + "sir_stratified_002 ... NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_3 beta_1_2_3_4_5_6_7_8_9_10_4 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000322 0.000306 \n", + "sir_stratified_002 NaN NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_5 beta_1_2_3_4_5_6_7_8_9_10_6 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000313 0.000313 \n", + "sir_stratified_002 NaN NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_7 beta_1_2_3_4_5_6_7_8_9_10_8 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000317 0.000322 \n", + "sir_stratified_002 NaN NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_9 beta_1_2_0 beta_1_2_1 \n", + "sir NaN NaN NaN \n", + "sir_bounded NaN NaN NaN \n", + "sir_stratified_100 NaN NaN NaN \n", + "sir_stratified_050 NaN NaN NaN \n", + "sir_stratified_025 NaN NaN NaN \n", + "sir_stratified_010 0.000307 NaN NaN \n", + "sir_stratified_002 NaN 0.000308 0.000324 \n", + "\n", + "[7 rows x 196 columns]\n" ] }, { @@ -436,171 +868,165 @@ "\n", "\n", - "\n", + "\n", "\n", "petrinet\n", - "\n", - "\n", + "\n", + "\n", "\n", - "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000305*I*S_1]\n", - "\n", - "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000305*I*S_1]\n", + "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000308097035846837*I*S_1]\n", + "\n", + "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000308097035846837*I*S_1]\n", "\n", "\n", "\n", "I\n", - "\n", - "I\n", + "\n", + "I\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000305*I*S_1]->I\n", - "\n", - "\n", - "1.0\n", + "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000308097035846837*I*S_1]->I\n", + "\n", + "\n", + "1.0\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000305*I*S_1]->I\n", - "\n", - "\n", - "1.0\n", + "inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000308097035846837*I*S_1]->I\n", + "\n", + "\n", + "1.0\n", "\n", "\n", "\n", "S_1\n", - "\n", - "S_1\n", + "\n", + "S_1\n", "\n", - "\n", + "\n", "\n", - "S_1->inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000305*I*S_1]\n", - "\n", - "\n", + "S_1->inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000308097035846837*I*S_1]\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000325*I*S_2]\n", - "\n", - "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000325*I*S_2]\n", + "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000323958905067972*I*S_2]\n", + "\n", + "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000323958905067972*I*S_2]\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000325*I*S_2]->I\n", - "\n", - "\n", - "1.0\n", + "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000323958905067972*I*S_2]->I\n", + "\n", + "\n", + "1.0\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000325*I*S_2]->I\n", - "\n", - "\n", - "1.0\n", + "inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000323958905067972*I*S_2]->I\n", + "\n", + "\n", + "1.0\n", "\n", "\n", "\n", "rec([I*gamma]) = [0.1*I]\n", - "\n", - "rec([I*gamma]) = [0.1*I]\n", + "\n", + "rec([I*gamma]) = [0.1*I]\n", "\n", "\n", "\n", "R\n", - "\n", - "R\n", + "\n", + "R\n", "\n", "\n", "\n", "rec([I*gamma]) = [0.1*I]->R\n", - "\n", - "\n", - "1.0\n", + "\n", + "\n", + "1.0\n", "\n", "\n", "\n", "S_2\n", - "\n", - "S_2\n", + "\n", + "S_2\n", "\n", - "\n", + "\n", "\n", - "S_2->inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000325*I*S_2]\n", - "\n", - "\n", + "S_2->inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000323958905067972*I*S_2]\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "I->inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000305*I*S_1]\n", - "\n", - "\n", + "I->inf_1_2_0([I*S_1*beta_1_2_0]) = [0.000308097035846837*I*S_1]\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "I->inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000325*I*S_2]\n", - "\n", - "\n", + "I->inf_1_2_1([I*S_2*beta_1_2_1]) = [0.000323958905067972*I*S_2]\n", + "\n", + "\n", "\n", "\n", "\n", "I->rec([I*gamma]) = [0.1*I]\n", - "\n", - "\n", + "\n", + "\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" - }, - { - "data": { - "image/png": "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ILnOZcTHx4eGDRty4sSJCvH3WQIK9v9w2rZty7p16xzP2Ww21q1bR1RUlBMrq9rq1KlDcHBwseuek5PDtm3b5LqXgKIoDB8+nOXLl/PHH39Qp06dYvvbtm2LTqcrdp2PHj1KbGysXOdSYLPZMBqNcp1LSdeuXdm/fz979+51bO3ataN///6O38t1Lht5eXmcPHmSkJCQivH3uVxuxa0Eli1bphgMBmXRokXKoUOHlKefflrx8fFRkpKSnF1apZabm6vs2bNH2bNnjwIo7733nrJnzx7l7NmziqIoyvTp0xUfHx9lxYoVyr59+5RevXopderUUQoLC51ceeUxZMgQxdvbW1m/fr2SmJjo2AoKChzHPPvss0pERITyxx9/KDt37lSioqKUqKgoJ1ZdOb366qvKhg0blNOnTyv79u1TXn31VUWlUilr1qxRFEWuc1m5dBSPosh1Li0vvPCCsn79euX06dPK5s2blW7duin+/v5KSkqKoijOv84SUC7x0UcfKREREYper1c6dOigbN261dklVXp//vmnAlyxDRw4UFEU+1DjcePGKUFBQYrBYFC6du2qHD161LlFVzJXu77A/9u1Q9wKgSgMo6kZ8RwCQRAshhWg8Eg2xcbwLAH51yGqKtq+2+QcOyNurvoymRzH8dy57zv7vqfrurxeryzLkuu63jf0P7VtW6ZpSmstfd9nnucnThJ7/i1fA8Wef8a6rhmGIa21jOOYdV1znudz/u49fyTJ37zVAAB8jz8oAEA5AgUAKEegAADlCBQAoByBAgCUI1AAgHIECgBQjkABAMoRKABAOQIFAChHoAAA5QgUAKCcT/UUMqCLXHTgAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ "# 2.1) Stratify and Analyze the Base model with vaccination status\n", "\n", - "NUM_STRATA=2\n", - "stratified_model = base_model.stratify(\"S\", [str(i+1) for i in range(0,NUM_STRATA)], strata_parameters=[\"beta\"], self_strata_transition=False)\n", "\n", - "# 2.2) Analyze Stratified Base Model \n", - "stratified_request = FunmanWorkRequest()\n", + "STRATA_SIZES = [2, 10, 25, 50, 100]\n", + "STRATA_SIZES.reverse()\n", "\n", - "# Modify the beta_1 and beta_2 parameters\n", - "parameters = stratified_model.petrinet.semantics.ode.parameters\n", - "beta_1 = next(p for p in parameters if p.id == \"beta_1_2_0\")\n", - "beta_2 = next(p for p in parameters if p.id == \"beta_1_2_1\")\n", - "beta_1.value -= beta_modifier\n", - "beta_2.value += beta_modifier\n", + "for NUM_STRATA in STRATA_SIZES:\n", + " stratified_model = base_model.stratify(\"S\", [str(i+1) for i in range(0,NUM_STRATA)], strata_parameters=[\"beta\"], self_strata_transition=False)\n", + "\n", + " # 2.2) Analyze Stratified Base Model \n", + " stratified_request = FunmanWorkRequest()\n", + "\n", + " # Modify the beta_1 and beta_2 parameters\n", + " parameters = stratified_model.petrinet.semantics.ode.parameters\n", + " for beta in (p for p in parameters if \"beta\" in p.id):\n", + " beta.value += random.uniform(-beta_modifier, beta_modifier)\n", + "\n", + " stratified_model_str = f\"{model_str}_stratified_{str(NUM_STRATA).zfill(3)}\"\n", + " stratified_model_path = os.path.join(EXAMPLE_DIR, stratified_model_str+\".json\")\n", + " models[stratified_model_str] = stratified_model_path\n", + " with open(stratified_model_path, \"w\") as f:\n", + " f.write(stratified_model.petrinet.model_dump_json())\n", "\n", - "stratified_model_str = f\"{model_str}_stratified\"\n", - "stratified_model_path = os.path.join(EXAMPLE_DIR, stratified_model_str+\".json\")\n", - "models[stratified_model_str] = stratified_model_path\n", - "with open(stratified_model_path, \"w\") as f:\n", - " f.write(stratified_model.petrinet.model_dump_json())\n", + " setup_common(stratified_request, timepoints, mode=MODE)\n", + " stratified_results = run(stratified_request, stratified_model_str, models)\n", + " report(stratified_results, stratified_model_str, stratified_model._state_var_names() + stratified_model._observable_names(), request_results, request_params, plot=False)\n", "\n", - "setup_common(stratified_request, timepoints, mode=MODE)\n", - "stratified_results = run(stratified_request, stratified_model_str, models)\n", - "report(stratified_results, stratified_model_str, stratified_model._state_var_names() + stratified_model._observable_names(), request_results, request_params)\n", + "# Only show the smallest\n", "stratified_model.to_dot()" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -690,10 +1116,10 @@ "
\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -714,9 +1140,137 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 points\n", + " beta gamma total_time \\\n", + "sir 0.000315 0.1 0 days 00:00:00.152909 \n", + "sir_bounded NaN NaN 0 days 00:00:00.682955 \n", + "sir_stratified_100 NaN 0.1 0 days 00:00:46.197466 \n", + "sir_stratified_050 NaN 0.1 0 days 00:00:11.679174 \n", + "sir_stratified_025 NaN 0.1 0 days 00:00:03.674596 \n", + "sir_stratified_010 NaN 0.1 0 days 00:00:01.209570 \n", + "sir_stratified_002 NaN 0.1 0 days 00:00:00.316371 \n", + "sir_abstract_stratified_bounded NaN NaN 0 days 00:00:00.672809 \n", + "\n", + " model_size time_horizon beta_lb beta_ub \\\n", + "sir 7 40 NaN NaN \n", + "sir_bounded 20 40 0.000305 0.000325 \n", + "sir_stratified_100 304 40 NaN NaN \n", + "sir_stratified_050 154 40 NaN NaN \n", + "sir_stratified_025 79 40 NaN NaN \n", + "sir_stratified_010 34 40 NaN NaN \n", + "sir_stratified_002 10 40 NaN NaN \n", + "sir_abstract_stratified_bounded 20 40 NaN NaN \n", + "\n", + " gamma_lb gamma_ub \\\n", + "sir NaN NaN \n", + "sir_bounded 0.1 0.1 \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 NaN NaN \n", + "sir_stratified_002 NaN NaN \n", + "sir_abstract_stratified_bounded 0.1 0.1 \n", + "\n", + " beta_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_0 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 0.000314 \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 NaN \n", + "sir_stratified_002 NaN \n", + "sir_abstract_stratified_bounded NaN \n", + "\n", + " ... beta_1_2_3_4_5_6_7_8_9_10_4 \\\n", + "sir ... NaN \n", + "sir_bounded ... NaN \n", + "sir_stratified_100 ... NaN \n", + "sir_stratified_050 ... NaN \n", + "sir_stratified_025 ... NaN \n", + "sir_stratified_010 ... 0.000306 \n", + "sir_stratified_002 ... NaN \n", + "sir_abstract_stratified_bounded ... NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_5 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 0.000313 \n", + "sir_stratified_002 NaN \n", + "sir_abstract_stratified_bounded NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_6 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 0.000313 \n", + "sir_stratified_002 NaN \n", + "sir_abstract_stratified_bounded NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_7 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 0.000317 \n", + "sir_stratified_002 NaN \n", + "sir_abstract_stratified_bounded NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_8 \\\n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 0.000322 \n", + "sir_stratified_002 NaN \n", + "sir_abstract_stratified_bounded NaN \n", + "\n", + " beta_1_2_3_4_5_6_7_8_9_10_9 beta_1_2_0 \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 0.000307 NaN \n", + "sir_stratified_002 NaN 0.000308 \n", + "sir_abstract_stratified_bounded NaN NaN \n", + "\n", + " beta_1_2_1 agg_beta_1_2_0_beta_1_2_1_lb \\\n", + "sir NaN NaN \n", + "sir_bounded NaN NaN \n", + "sir_stratified_100 NaN NaN \n", + "sir_stratified_050 NaN NaN \n", + "sir_stratified_025 NaN NaN \n", + "sir_stratified_010 NaN NaN \n", + "sir_stratified_002 0.000324 NaN \n", + "sir_abstract_stratified_bounded NaN 0.000308 \n", + "\n", + " agg_beta_1_2_0_beta_1_2_1_ub \n", + "sir NaN \n", + "sir_bounded NaN \n", + "sir_stratified_100 NaN \n", + "sir_stratified_050 NaN \n", + "sir_stratified_025 NaN \n", + "sir_stratified_010 NaN \n", + "sir_stratified_002 NaN \n", + "sir_abstract_stratified_bounded 0.000324 \n", + "\n", + "[8 rows x 198 columns]\n" + ] + }, { "data": { "image/svg+xml": [ @@ -726,11 +1280,11 @@ "\n", "\n", - "\n", + "\n", "\n", "petrinet\n", - "\n", + "\n", "\n", "\n", "rec_in_I_lb([I_ub*gamma_lb]) = [0.1*I_ub]\n", @@ -740,181 +1294,191 @@ "\n", "\n", "rec_in_I_ub([I_lb*gamma_ub]) = [0.1*I_lb]\n", - "\n", - "rec_in_I_ub([I_lb*gamma_ub]) = [0.1*I_lb]\n", + "\n", + "rec_in_I_ub([I_lb*gamma_ub]) = [0.1*I_lb]\n", "\n", "\n", "\n", "I_lb\n", - "\n", - "I_lb\n", + "\n", + "I_lb\n", "\n", "\n", "\n", "I_lb->rec_in_I_ub([I_lb*gamma_ub]) = [0.1*I_lb]\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_in_I_ub([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_lb*S_ub]\n", - "\n", - "inf_1_2_in_I_ub([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_lb*S_ub]\n", + "inf_1_2_in_I_ub([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_lb*S_ub]\n", + "\n", + "inf_1_2_in_I_ub([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_lb*S_ub]\n", "\n", - "\n", + "\n", "\n", - "I_lb->inf_1_2_in_I_ub([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_lb*S_ub]\n", - "\n", - "\n", + "I_lb->inf_1_2_in_I_ub([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_lb*S_ub]\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_in_S_lb([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_ub]\n", - "\n", - "inf_1_2_in_S_lb([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_ub]\n", + "inf_1_2_in_S_lb([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_ub]\n", + "\n", + "inf_1_2_in_S_lb([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_ub]\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_in_S_ub([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_lb]\n", - "\n", - "inf_1_2_in_S_ub([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_lb]\n", + "inf_1_2_in_S_ub([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_lb]\n", + "\n", + "inf_1_2_in_S_ub([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_lb]\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_in_I_lb([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_ub*S_lb]\n", - "\n", - "inf_1_2_in_I_lb([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_ub*S_lb]\n", + "inf_1_2_in_I_lb([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_ub*S_lb]\n", + "\n", + "inf_1_2_in_I_lb([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_ub*S_lb]\n", "\n", "\n", "\n", "rec_out_R_lb([I_lb*gamma_lb]) = [0.1*I_lb]\n", - "\n", - "rec_out_R_lb([I_lb*gamma_lb]) = [0.1*I_lb]\n", + "\n", + "rec_out_R_lb([I_lb*gamma_lb]) = [0.1*I_lb]\n", "\n", "\n", "\n", "R_lb\n", - "\n", - "R_lb\n", + "\n", + "R_lb\n", "\n", "\n", "\n", "rec_out_R_lb([I_lb*gamma_lb]) = [0.1*I_lb]->R_lb\n", - "\n", - "\n", - "0.0\n", + "\n", + "\n", + "0.0\n", "\n", "\n", "\n", "rec_out_R_ub([I_ub*gamma_ub]) = [0.1*I_ub]\n", - "\n", - "rec_out_R_ub([I_ub*gamma_ub]) = [0.1*I_ub]\n", + "\n", + "rec_out_R_ub([I_ub*gamma_ub]) = [0.1*I_ub]\n", "\n", "\n", "\n", "R_ub\n", - "\n", - "R_ub\n", + "\n", + "R_ub\n", "\n", "\n", "\n", "rec_out_R_ub([I_ub*gamma_ub]) = [0.1*I_ub]->R_ub\n", - "\n", - "\n", - "0.0\n", + "\n", + "\n", + "0.0\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_lb]\n", - "\n", - "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_lb]\n", + "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_lb]\n", + "\n", + "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_lb]\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_lb]->I_lb\n", - "\n", - "\n", - "0.0\n", + "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_lb]->I_lb\n", + "\n", + "\n", + "0.0\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_lb]->I_lb\n", - "\n", - "\n", - "0.0\n", + "inf_1_2_out_I_lb([I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_lb]->I_lb\n", + "\n", + "\n", + "0.0\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_ub]\n", - "\n", - "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_ub]\n", + "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_ub]\n", + "\n", + "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_ub]\n", "\n", "\n", "\n", "I_ub\n", - "\n", - "I_ub\n", + "\n", + "I_ub\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_ub]->I_ub\n", - "\n", - "\n", - "0.0\n", + "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_ub]->I_ub\n", + "\n", + "\n", + "0.0\n", "\n", - "\n", + "\n", "\n", - "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_ub]->I_ub\n", - "\n", - "\n", - "0.0\n", + "inf_1_2_out_I_ub([I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_ub]->I_ub\n", + "\n", + "\n", + "0.0\n", "\n", "\n", "\n", "I_ub->rec_in_I_lb([I_ub*gamma_lb]) = [0.1*I_ub]\n", - "\n", - "\n", + "\n", + "\n", "\n", - "\n", + "\n", "\n", - "I_ub->inf_1_2_in_I_lb([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_ub*S_lb]\n", - "\n", - "\n", + "I_ub->inf_1_2_in_I_lb([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_ub*S_lb]\n", + "\n", + "\n", "\n", "\n", "\n", "S_lb\n", - "\n", - "S_lb\n", + "\n", + "S_lb\n", "\n", - "\n", + "\n", "\n", - "S_lb->inf_1_2_in_S_ub([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000325*I_ub*S_lb]\n", - "\n", - "\n", + "S_lb->inf_1_2_in_S_ub([I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub]) = [0.000323958905067972*I_ub*S_lb]\n", + "\n", + "\n", "\n", "\n", "\n", "S_ub\n", - "\n", - "S_ub\n", + "\n", + "S_ub\n", "\n", - "\n", + "\n", "\n", - "S_ub->inf_1_2_in_S_lb([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000305*I_lb*S_ub]\n", - "\n", - "\n", + "S_ub->inf_1_2_in_S_lb([I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb]) = [0.000308097035846837*I_lb*S_ub]\n", + "\n", + "\n", "\n", "\n", "\n" ], "text/plain": [ - "" + "" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Jj8//6zjNm/efNa2jI8RQgjRGbTpraUpU6YwZcqUCx7zyiuvMGfOHGbPng3AkiVL+PTTT3n77beZN2/eZV/TarVitVrd22az+bLP0VXccMMNLF26lGnTphEcHMyzzz6LXq8/67j333+f1NRUrrvuOt599122bt3KW2+95YGIhRBCiMvj0cG+NpuNnJwcMjIy3G06nY6MjAw2bdp0RedcsGABQUFB7kdcXFxrhdvpzJ8/n3HjxjF16lRuvvlmpk+fTq9evc467vnnn+e9995j6NCh/P3vf+df//oXAwcO9EDEQgghxOXx6GDf0tJSnE4nUVFRLdqjoqLIzc11b2dkZLBr1y4sFguxsbG8//77Zw1QbTR//nyysrLc22azucslM0uXLr2k4wIDA3nvvfdatM2cObPFduMYmkceeaRVYhNCCCHa02UnMvPmzePFF1+84DH79++nf//+VxzUmb788stLPtZkMmEymVrt2kIIIYTouC47kXn88ceZNWvWBY9JTEy8pHOFh4ej1+spKipq0V5UVER0dPTlhnZNOX78+AVv/+zbt4/4+Ph2jEgIIYRof5edyERERBAREdEqFzcajaSkpJCdne1eBNHlcpGdnc3cuXNb5RpdVUxMzAVrvcTEeKhCsRBCCNGO2nSMTE1NDXl5ee7t/Px8du7cSWhoqLu3ICsri5kzZ5KamkpaWhoLFy7EYrG4ZzGJczMYDPTu3dvTYQghhBAe1aaJzPbt25kwYYJ7u3EQ7syZM90DVmfMmEFJSQnPPvsshYWFJCcns2rVqrMGAAshhBBCnKlNE5nx48efVVn2XObOnSu3koQQQghx2TrFopFCCCGEEOciiYwQQgghOi1JZIQQQgjRaUkic405evQoiqK4p26vXbsWRVGorKz0aFxCCCHElZBEphOaNWsWiqKgKApeXl707NmTJ598kvr6ek+HJoQQQrQrj661JK7c5MmT+dvf/obdbicnJ4eZM2eiKMpFl48QQgghuhLpkemkTCYT0dHRxMXFMX36dDIyMlizZs0Vn2/Dhg0MHToUb29vRo4cyZ49e1oxWiGEEKJtSI9MM6qqUueo88i1fQw+KIpyRa/ds2cPGzdupEePHld8/SeeeILXXnuN6Ohonn76aaZNm8bBgwfx8vK64nMKIYQQbU0SmWbqHHWk/zPdI9fect8WfL18L/n4Tz75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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -931,31 +1495,34 @@ "abstract_stratified_bounded_request = FunmanWorkRequest() #get_request(requests[abstract_stratified_bounded_model_str])\n", "setup_common(abstract_stratified_bounded_request, timepoints, mode=MODE)\n", "abs_results = run(abstract_stratified_bounded_request, abstract_stratified_bounded_model_str, models)\n", - "# report(abs_results, abstract_stratified_bounded_model_str, abstract_stratified_bounded_model._state_var_names() + abstract_stratified_bounded_model._observable_names(), request_results, request_params)\n", + "report(abs_results, abstract_stratified_bounded_model_str, abstract_stratified_bounded_model._state_var_names() + abstract_stratified_bounded_model._observable_names(), request_results, request_params, plot_logscale=True)\n", "abstract_stratified_bounded_model.to_dot()" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Check if bounds are correct bounds\n", "\n", + "# Timeseries for base model\n", "bs = [s for s in base_results.model._symbols() if s != \"timer_t\"]\n", "base_df = base_results.dataframe(base_results.points())[bs]\n", "\n", + "# Timeseries for stratified model\n", "ss = [s for s in stratified_results.model._symbols() if s != \"timer_t\"]\n", "stratified_df = stratified_results.dataframe(stratified_results.points())[ss]\n", "stratified_df[\"S\"] = stratified_df.S_1 + stratified_df.S_2\n", + "destratified_df = pd.DataFrame(stratified_df)\n", "\n", - "\n", + "# Timeseries for bounded abstract model\n", "bass = [s for s in abs_results.model._symbols() if s != \"timer_t\"]\n", "bounded_abstract_df = abs_results.dataframe(abs_results.points())[bass]\n", "\n", - "destratified_df = pd.DataFrame(stratified_df)\n", "\n", + "# Determine whether all values in values_df fall within the interval in bounds_df\n", "def check_bounds(bounds_df, values_df, variable, values_model_name):\n", " failures = []\n", " lb = f\"{variable}_lb\"\n", @@ -966,13 +1533,15 @@ " failures.append(f\"The bounded abstract model does not upper bound the {values_model_name} model {variable}:\\n{pd.DataFrame({ub:bounds_df[ub], variable: values_df[variable], f'{ub}-{variable}':bounds_df[ub]-values_df[variable]})}\")\n", " return failures\n", "\n", + "# Check each state variable of the non-bounded models against the bouneded model \n", "all_failures = []\n", "for (values_df, model) in [(base_df, \"base\"), (destratified_df, \"stratified\")]:\n", " for var in [\"S\", \"I\", \"R\"]:\n", " all_failures += check_bounds(bounded_abstract_df, values_df, var, model)\n", "\n", + "# Report any cases where the bounds are violated, suggesting a bug\n", "reasons = '\\n'.join(map(str, all_failures))\n", - "assert len(all_failures) == 0, f\"The bounds failed in the following cases:\\n{reasons}\"\n" + "assert len(all_failures) == 0, f\"The bounds failed in the following cases:\\n{reasons}\"" ] }, { @@ -981,228 +1550,111 @@ "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - " S I R\n", - "0 1000.000000 1.000000 0.000000\n", - "1 998.900405 1.748584 0.351011\n", - "2 997.800810 2.497168 0.702022\n", - "3 996.701215 3.245751 1.053034\n", - "4 995.601620 3.994335 1.404045\n", - "5 994.502025 4.742919 1.755056\n", - "6 993.402430 5.491503 2.106067\n", - "7 992.302835 6.240087 2.457078\n", - "8 991.203240 6.988670 2.808089\n", - "9 990.103645 7.737254 3.159101\n", - "10 989.004050 8.485838 3.510112\n", - "11 980.624414 14.054870 6.320716\n", - "12 972.244778 19.623903 9.131319\n", - "13 963.865142 25.192935 11.941923\n", - "14 955.485506 30.761967 14.752527\n", - "15 947.105870 36.331000 17.563130\n", - "16 938.726234 41.900032 20.373734\n", - "17 930.346598 47.469064 23.184338\n", - "18 921.966962 53.038096 25.994942\n", - "19 913.587326 58.607129 28.805545\n", - "20 905.207690 64.176161 31.616149\n", - "21 870.721931 83.436439 46.841630\n", - "22 836.236171 102.696717 62.067111\n", - "23 801.750412 121.956996 77.292592\n", - "24 767.264653 141.217274 92.518074\n", - "25 732.778893 160.477552 107.743555\n", - "26 698.293134 179.737830 122.969036\n", - "27 663.807374 198.998109 138.194517\n", - "28 629.321615 218.258387 153.419998\n", - "29 594.835856 237.518665 168.645479\n", - "30 560.350096 256.778943 183.870960\n", - "31 525.844789 260.917801 214.237410\n", - "32 491.339483 265.056658 244.603859\n", - "33 456.834176 269.195515 274.970309\n", - "34 422.328869 273.334373 305.336758\n", - "35 387.823562 277.473230 335.703208\n", - "36 353.318255 281.612087 366.069657\n", - "37 318.812949 285.750945 396.436107\n", - "38 284.307642 289.889802 426.802556\n", - "39 249.802335 294.028659 457.169006\n", - "40 215.297028 298.167517 487.535455\n", - "41 203.958151 285.762090 511.279759\n", - "42 192.619275 273.356663 535.024062\n", - "43 181.280398 260.951236 558.768366\n", - "44 169.941521 248.545809 582.512670\n", - "45 158.602644 236.140382 606.256973\n", - "46 147.263768 223.734955 630.001277\n", - "47 135.924891 211.329529 653.745580\n", - "48 124.586014 198.924102 677.489884\n", - "49 113.247137 186.518675 701.234188\n", - "50 101.908261 174.113248 724.978491\n", - " S I R\n", - "0 1000.000000 1.000000 0.000000\n", - "1 998.900417 1.748574 0.351009\n", - "2 997.800833 2.497148 0.702019\n", - "3 996.701250 3.245722 1.053028\n", - "4 995.601666 3.994296 1.404038\n", - "5 994.502083 4.742870 1.755047\n", - "6 993.402500 5.491444 2.106057\n", - "7 992.302916 6.240018 2.457066\n", - "8 991.203333 6.988592 2.808075\n", - "9 990.103749 7.737166 3.159085\n", - "10 989.004166 8.485740 3.510094\n", - "11 980.625541 14.053960 6.320500\n", - "12 972.246915 19.622179 9.130906\n", - "13 963.868290 25.190399 11.941311\n", - "14 955.489664 30.758619 14.751717\n", - "15 947.111039 36.326839 17.562123\n", - "16 938.732413 41.895059 20.372528\n", - "17 930.353788 47.463279 23.182934\n", - "18 921.975162 53.031498 25.993340\n", - "19 913.596536 58.599718 28.803745\n", - "20 905.217911 64.167938 31.614151\n", - "21 870.750730 83.415178 46.834092\n", - "22 836.283549 102.662418 62.054033\n", - "23 801.816368 121.909657 77.273975\n", - "24 767.349187 141.156897 92.493916\n", - "25 732.882006 160.404137 107.713857\n", - "26 698.414825 179.651377 122.933798\n", - "27 663.947644 198.898616 138.153739\n", - "28 629.480463 218.145856 153.373681\n", - "29 595.013282 237.393096 168.593622\n", - "30 560.546101 256.640336 183.813563\n", - "31 526.063629 260.775453 214.160918\n", - "32 491.581157 264.910571 244.508272\n", - "33 457.098685 269.045688 274.855627\n", - "34 422.616213 273.180806 305.202981\n", - "35 388.133741 277.315924 335.550336\n", - "36 353.651269 281.451041 365.897690\n", - "37 319.168796 285.586159 396.245045\n", - "38 284.686324 289.721277 426.592399\n", - "39 250.203852 293.856394 456.939754\n", - "40 215.721380 297.991512 487.287108\n", - "41 204.378033 285.600492 511.021475\n", - "42 193.034685 273.209472 534.755842\n", - "43 181.691338 260.818452 558.490209\n", - "44 170.347991 248.427433 582.224577\n", - "45 159.004643 236.036413 605.958944\n", - "46 147.661296 223.645393 629.693311\n", - "47 136.317949 211.254373 653.427678\n", - "48 124.974601 198.863353 677.162045\n", - "49 113.631254 186.472334 700.896412\n", - "50 102.287907 174.081314 724.630779\n", - " S_lb S_ub I_lb I_ub R_lb \\\n", - "0 1.000000e+03 1000.000000 1.000000 1.000000e+00 0.000000 \n", - "1 9.986101e+02 999.125838 1.525503 2.050914e+00 0.287871 \n", - "2 9.972203e+02 998.251675 2.051007 3.101828e+00 0.575741 \n", - "3 9.958304e+02 997.377513 2.576510 4.152742e+00 0.863612 \n", - "4 9.944405e+02 996.503350 3.102013 5.203655e+00 1.151483 \n", - "5 9.930506e+02 995.629188 3.627517 6.254569e+00 1.439353 \n", - "6 9.916608e+02 994.755026 4.153020 7.305483e+00 1.727224 \n", - "7 9.902709e+02 993.880863 4.678524 8.356397e+00 2.015095 \n", - "8 9.888810e+02 993.006701 5.204027 9.407311e+00 2.302965 \n", - "9 9.874912e+02 992.132539 5.729530 1.045822e+01 2.590836 \n", - "10 9.861013e+02 991.258376 6.255034 1.150914e+01 2.878707 \n", - "11 9.713852e+02 986.541154 8.608994 2.389282e+01 4.477323 \n", - "12 9.566692e+02 981.823931 10.962955 3.627651e+01 6.075940 \n", - "13 9.419532e+02 977.106709 13.316916 4.866020e+01 7.674556 \n", - "14 9.272371e+02 972.389486 15.670877 6.104388e+01 9.273172 \n", - "15 9.125211e+02 967.672264 18.024837 7.342757e+01 10.871789 \n", - "16 8.978051e+02 962.955041 20.378798 8.581126e+01 12.470405 \n", - "17 8.830890e+02 958.237819 22.732759 9.819494e+01 14.069021 \n", - "18 8.683730e+02 953.520596 25.086719 1.105786e+02 15.667638 \n", - "19 8.536569e+02 948.803374 27.440680 1.229623e+02 17.266254 \n", - "20 8.389409e+02 944.086151 29.794641 1.353460e+02 18.864870 \n", - "21 7.587381e+02 936.031922 27.948509 5.126237e+02 21.788567 \n", - "22 6.785353e+02 927.977692 26.102377 8.899014e+02 24.712263 \n", - "23 5.983326e+02 919.923462 24.256245 1.267179e+03 27.635960 \n", - "24 5.181298e+02 911.869232 22.410113 1.644457e+03 30.559656 \n", - "25 4.379270e+02 903.815003 20.563981 2.021734e+03 33.483353 \n", - "26 3.577242e+02 895.760773 18.717850 2.399012e+03 36.407049 \n", - "27 2.775214e+02 887.706543 16.871718 2.776290e+03 39.330746 \n", - "28 1.973186e+02 879.652313 15.025586 3.153567e+03 42.254442 \n", - "29 1.171159e+02 871.598084 13.179454 3.530845e+03 45.178138 \n", - "30 3.691307e+01 863.543854 11.333322 3.908123e+03 48.101835 \n", - "31 3.322176e+01 862.769549 10.226020 4.117039e+04 48.397148 \n", - "32 2.953046e+01 861.995243 9.118719 7.843266e+04 48.692461 \n", - "33 2.583915e+01 861.220938 8.011417 1.156949e+05 48.987773 \n", - "34 2.214784e+01 860.446633 6.904115 1.529572e+05 49.283086 \n", - "35 1.845654e+01 859.672328 5.796813 1.902195e+05 49.578399 \n", - "36 1.476523e+01 858.898023 4.689511 2.274817e+05 49.873712 \n", - "37 1.107392e+01 858.123718 3.582209 2.647440e+05 50.169025 \n", - "38 7.382614e+00 857.349413 2.474907 3.020063e+05 50.464337 \n", - "39 3.691307e+00 856.575107 1.367606 3.392685e+05 50.759650 \n", - "40 2.367979e-10 855.800802 0.260304 3.765308e+05 51.054963 \n", - "41 3.320624e-10 855.783244 0.234867 3.944516e+06 51.061691 \n", - "42 4.273269e-10 855.765686 0.209430 7.512502e+06 51.068418 \n", - "43 5.225914e-10 855.748128 0.183993 1.108049e+07 51.075145 \n", - "44 6.178560e-10 855.730570 0.158556 1.464847e+07 51.081873 \n", - "45 7.131205e-10 855.713012 0.133120 1.821646e+07 51.088600 \n", - "46 8.083850e-10 855.695454 0.107683 2.178444e+07 51.095328 \n", - "47 9.036495e-10 855.677896 0.082246 2.535243e+07 51.102055 \n", - "48 9.989140e-10 855.660338 0.056809 2.892042e+07 51.108783 \n", - "49 1.094179e-09 855.642780 0.031372 3.248840e+07 51.115510 \n", - "50 1.189443e-09 855.625222 0.005935 3.605639e+07 51.122237 \n", - "\n", - " R_ub \n", - "0 0.000000e+00 \n", - "1 4.306526e-01 \n", - "2 8.613052e-01 \n", - "3 1.291958e+00 \n", - "4 1.722610e+00 \n", - "5 2.153263e+00 \n", - "6 2.583915e+00 \n", - "7 3.014568e+00 \n", - "8 3.445221e+00 \n", - "9 3.875873e+00 \n", - "10 4.306526e+00 \n", - "11 9.279412e+00 \n", - "12 1.425230e+01 \n", - "13 1.922518e+01 \n", - "14 2.419807e+01 \n", - "15 2.917096e+01 \n", - "16 3.414384e+01 \n", - "17 3.911673e+01 \n", - "18 4.408962e+01 \n", - "19 4.906250e+01 \n", - "20 5.403539e+01 \n", - "21 1.501454e+02 \n", - "22 2.462554e+02 \n", - "23 3.423654e+02 \n", - "24 4.384753e+02 \n", - "25 5.345853e+02 \n", - "26 6.306953e+02 \n", - "27 7.268053e+02 \n", - "28 8.229153e+02 \n", - "29 9.190253e+02 \n", - "30 1.015135e+03 \n", - "31 9.178005e+03 \n", - "32 1.734087e+04 \n", - "33 2.550374e+04 \n", - "34 3.366661e+04 \n", - "35 4.182948e+04 \n", - "36 4.999235e+04 \n", - "37 5.815522e+04 \n", - "38 6.631809e+04 \n", - "39 7.448096e+04 \n", - "40 8.264383e+04 \n", - "41 8.648185e+05 \n", - "42 1.646993e+06 \n", - "43 2.429168e+06 \n", - "44 3.211343e+06 \n", - "45 3.993517e+06 \n", - "46 4.775692e+06 \n", - "47 5.557867e+06 \n", - "48 6.340041e+06 \n", - "49 7.122216e+06 \n", - "50 7.904391e+06 \n" - ] + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Model SizeTotal TimeTime Horizon
Model
sir70 days 00:00:00.15290940
sir_abstract_stratified_bounded200 days 00:00:00.67280940
sir_bounded200 days 00:00:00.68295540
sir_stratified_002100 days 00:00:00.31637140
sir_stratified_010340 days 00:00:01.20957040
sir_stratified_025790 days 00:00:03.67459640
sir_stratified_0501540 days 00:00:11.67917440
sir_stratified_1003040 days 00:00:46.19746640
\n", + "
" + ], + "text/plain": [ + " Model Size Total Time Time Horizon\n", + "Model \n", + "sir 7 0 days 00:00:00.152909 40\n", + "sir_abstract_stratified_bounded 20 0 days 00:00:00.672809 40\n", + "sir_bounded 20 0 days 00:00:00.682955 40\n", + "sir_stratified_002 10 0 days 00:00:00.316371 40\n", + "sir_stratified_010 34 0 days 00:00:01.209570 40\n", + "sir_stratified_025 79 0 days 00:00:03.674596 40\n", + "sir_stratified_050 154 0 days 00:00:11.679174 40\n", + "sir_stratified_100 304 0 days 00:00:46.197466 40" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "# base_df[[\"S\", \"I\", \"R\"]].plot()\n", - "# stratified_df[[\"S\", \"I\", \"R\"]].plot()\n", - "# bounded_abstract_df[[\"S_lb\", \"S_ub\", \"I_lb\", \"I_ub\", \"R_lb\", \"R_ub\"]].plot()\n", - "print(base_df[[\"S\", \"I\", \"R\"]])\n", - "print(stratified_df[[\"S\", \"I\", \"R\"]])\n", - "print(bounded_abstract_df[[\"S_lb\", \"S_ub\", \"I_lb\", \"I_ub\", \"R_lb\", \"R_ub\"]])" + "# Summarize the runtime of the different models\n", + "runtime_stats_dataframe(request_params).sort_index()" ] } ], diff --git a/notes/abstraction/background.tex b/notes/abstraction/background.tex index 88af449f..04aca801 100644 --- a/notes/abstraction/background.tex +++ b/notes/abstraction/background.tex @@ -1,127 +1,127 @@ \begin{definition} - A Petrinet $\Omega$ is a directed graph $(V, E)$ with vertices $V=(V_x, - V_z)$ partitioned into sets $V_x$ of state vertices and $V_z$ of transition - vertices, and edges $E=(E_{out}, E_{in})$ partitioned into collections $E_{out}$ of - flow-out and $E_{in}$ flow-in edges (relative to state vertices). + A Petrinet $\Omega$ is a directed graph $(V, E)$ with vertices $V=(V_x, + V_z)$ partitioned into sets $V_x$ of state vertices and $V_z$ of transition + vertices, and edges $E=(E_{out}, E_{in})$ partitioned into collections $E_{out}$ of + flow-out and $E_{in}$ flow-in edges (relative to state vertices). \end{definition} \begin{definition} -A flow-out edge $e \in E_{out}$ comprises a pair of vertices $(v_x,v_z)$, where -$v_x \in V_x$ is a state vertex, $v_z \in V_z$ is a transition vertex, and the -flow is directed from $v_x$ to $v_z$. + A flow-out edge $e \in E_{out}$ comprises a pair of vertices $(v_x,v_z)$, where + $v_x \in V_x$ is a state vertex, $v_z \in V_z$ is a transition vertex, and the + flow is directed from $v_x$ to $v_z$. \end{definition} \begin{definition} - A flow-in edge $e \in E_{in}$ comprises a pair of vertices $(v_z,v_x)$, - similar to a flow-out edge, except that the flow is directed from $v_z$ to - $v_x$. + A flow-in edge $e \in E_{in}$ comprises a pair of vertices $(v_z,v_x)$, + similar to a flow-out edge, except that the flow is directed from $v_z$ to + $v_x$. \end{definition} \begin{example} - The SIR model that stratifies the $S$ state variable into $S_1$ and $S_2$ - for two susceptible populations and defines $\Omega$ by: - \begin{eqnarray*} - V_x &=& \{v_{S_1}, v_{S_2}, v_{I}, v_{R}\}\\ - V_z &=& \{v_{inf_1}, v_{inf_2}, v_{rec}\}\\ - E_{in} &=& ((v_{inf_1}, v_{S_1}), (v_{inf_1}, v_{I}), (v_{inf_1}, v_{I}), (v_{inf_2}, v_{S_2}), (v_{inf_2}, v_{I}), - (v_{inf_2}, v_{I}), (v_{rec}, v_{R}))\\ - E_{out} &=& ((v_{S_1}, v_{inf_1}), (v_{S_2}, v_{inf_2}),(v_{I}, v_{inf_1}), (v_{I}, v_{rec})) - \end{eqnarray*} + The SIR model that stratifies the $S$ state variable into $S_1$ and $S_2$ + for two susceptible populations and defines $\Omega$ by: + \begin{eqnarray*} + V_x &=& \{v_{S_1}, v_{S_2}, v_{I}, v_{R}\}\\ + V_z &=& \{v_{inf_1}, v_{inf_2}, v_{rec}\}\\ + E_{in} &=& ((v_{inf_1}, v_{S_1}), (v_{inf_1}, v_{I}), (v_{inf_1}, v_{I}), (v_{inf_2}, v_{S_2}), (v_{inf_2}, v_{I}), + (v_{inf_2}, v_{I}), (v_{rec}, v_{R}))\\ + E_{out} &=& ((v_{S_1}, v_{inf_1}), (v_{S_2}, v_{inf_2}),(v_{I}, v_{inf_1}), (v_{I}, v_{rec})) + \end{eqnarray*} \end{example} \begin{figure} -\centering \includegraphics[width=.5\linewidth]{fig/sir/sir_stratified_model.pdf} - \caption{\label{fig:sir_stratified_model} SIR model stratified with two - populations in the $S$ state ($S_1$ and $S_2$), each with a unique $\beta$ - parameter ($\beta_1$ and $\beta_2$).} + \centering \includegraphics[width=.5\linewidth]{fig/sir/sir_stratified_model.pdf} + \caption{\label{fig:sir_stratified_model} SIR model stratified with two + populations in the $S$ state ($S_1$ and $S_2$), each with a unique $\beta$ + parameter ($\beta_1$ and $\beta_2$).} \end{figure} \begin{definition} - The ODE semantics $\Theta$ of the Petrinet $\Omega$ defines a tuple $(P, X, - Z, {\cal I}, {\cal P}, {\cal X}, {\cal Z}, {\cal R})$ where - \begin{itemize} - \item $P$ is a set of parameters; - \item $X$ is a set of state variables; - \item $Z$ is a set of transitions; - \item ${\cal I}: S \rightarrow \reals$ assigns the initial value of - state variables to a real number; - \item ${\cal P}: P \rightarrow \reals \cup \reals \times \reals$ assigns - parameters to a real number, or a pair of real numbers defining an - interval; - \item ${\cal X}: X \rightarrow V_x$ assigns state variables to state - vertices; - \item ${\cal Z}: Z \rightarrow V_z$ assigns transtions to transition - vertices; and - \item ${\cal R}: {\bf P} \times {\bf X} \times Z \rightarrow \reals$ - defines the rate of each transition $z \in Z$ in terms of the set of - parameter vectors ${\bf P}$ and state variable vectors ${\bf X}$. - \end{itemize} - The elements of the Petrinet $\Omega$ and semantics $\Theta$ define the - partial derivative $\frac{d {\bf x}}{dt}$, so that for each state variable - $x \in X$: - - \begin{equation}\label{eqn:flow} - \frac{dx}{dt} = \sum_{z \in Z^{in(x)}} {\cal R}({\bf p}, {\bf x}, z) - \sum_{z \in Z^{out(x)} } {\cal R}({\bf p}, {\bf x}, z) - \end{equation} -\noindent where $Z^{in(x)} = \{z \in Z | (z, x) \in E_{in}\}$ and - $z^{out(x)}=\{z \in Z| (x, z) \in E_{out}\}$ are the transition - vertices that flow in and out of the vertex $v_x$, respectively. We denote - by $\nabla_{\Omega, \Theta}({\bf p}, {\bf x}, t) = (\frac{dx_1}{dt}, - \frac{dx_2}{dt}, \ldots)^T$, the gradient comprised of components defined in - Equation \eqref{eqn:flow}. + The ODE semantics $\Theta$ of the Petrinet $\Omega$ defines a tuple $(P, X, + Z, {\cal I}, {\cal P}, {\cal X}, {\cal Z}, {\cal R})$ where + \begin{itemize} + \item $P$ is a set of parameters; + \item $X$ is a set of state variables; + \item $Z$ is a set of transitions; + \item ${\cal I}: S \rightarrow \reals$ assigns the initial value of + state variables to a real number; + \item ${\cal P}: P \rightarrow \reals \cup \reals \times \reals$ assigns + parameters to a real number, or a pair of real numbers defining an + interval; + \item ${\cal X}: X \rightarrow V_x$ assigns state variables to state + vertices; + \item ${\cal Z}: Z \rightarrow V_z$ assigns transtions to transition + vertices; and + \item ${\cal R}: {\bf P} \times {\bf X} \times Z \rightarrow \reals$ + defines the rate of each transition $z \in Z$ in terms of the set of + parameter vectors ${\bf P}$ and state variable vectors ${\bf X}$. + \end{itemize} + The elements of the Petrinet $\Omega$ and semantics $\Theta$ define the + partial derivative $\frac{d {\bf x}}{dt}$, so that for each state variable + $x \in X$: + + \begin{equation}\label{eqn:flow} + \frac{dx}{dt} = \sum_{z \in Z^{in(x)}} {\cal R}({\bf p}, {\bf x}, z) - \sum_{z \in Z^{out(x)} } {\cal R}({\bf p}, {\bf x}, z) + \end{equation} + \noindent where $Z^{in(x)} = \{z \in Z | (z, x) \in E_{in}\}$ and + $z^{out(x)}=\{z \in Z| (x, z) \in E_{out}\}$ are the transition + vertices that flow in and out of the vertex $v_x$, respectively. We denote + by $\nabla_{\Omega, \Theta}({\bf p}, {\bf x}, t) = (\frac{dx_1}{dt}, + \frac{dx_2}{dt}, \ldots)^T$, the gradient comprised of components defined in + Equation \eqref{eqn:flow}. \end{definition} In the following, we simplify the definition of a Petrinet and associated semantics because the graph vertices and the semantic elements are one to one. We drop the vertex terminology by assuming the following: \begin{itemize} - \item States: given $X$, $V_x$ and ${\cal X}$, referring to a state - variable $x \in X$ is synonymous with $v_x$ because ${\cal X}(x) = v_x$. - \item Transitions: given $Z$, $V_z$ and ${\cal Z}$, referring to a state - variable $z \in Z$ is synonymous with $v_z$ because ${\cal Z}(z) = v_z$. - \item Edges: Each edge $e \in E$ corresponds to a pair of vertices $(v_x, - v_z)$ or $(v_z, v_x)$, and it is (respectively) synonymous to pairs $(x, z)$ - or $(z, x)$. + \item States: given $X$, $V_x$ and ${\cal X}$, referring to a state + variable $x \in X$ is synonymous with $v_x$ because ${\cal X}(x) = v_x$. + \item Transitions: given $Z$, $V_z$ and ${\cal Z}$, referring to a state + variable $z \in Z$ is synonymous with $v_z$ because ${\cal Z}(z) = v_z$. + \item Edges: Each edge $e \in E$ corresponds to a pair of vertices $(v_x, + v_z)$ or $(v_z, v_x)$, and it is (respectively) synonymous to pairs $(x, z)$ + or $(z, x)$. \end{itemize} \begin{example}\label{ex:base} - The stratified SIR model defines $\Theta$ (dropping ${\cal X}$ and ${\cal - Z}$ per above) by: - \begin{eqnarray*} - P &=& \{\beta_1, \beta_2, \gamma\}\\ - X &=& \{S_1, S_2, I, R\}\\ - Z &=& \{inf_1, inf_2, rec\}\\ - {\cal I} &=& \left\{ - \begin{array}{ll} - 0.45& :S_1\\ - 0.45& :S_2\\ - 0.1& :I\\ - 0.0& :R - \end{array}\right.\\ - {\cal P}&=& \left\{ - \begin{array}{ll} - 1e{-7}& :\beta_1\\ - 2e{-7}& :\beta_2\\ - 1e{-5}& :\gamma - \end{array}\right.\\ - \\ - % {\cal X} &=& \left\{ - % \begin{array}{ll} - % v_{x} & : x \in X - % \end{array}\right.\\ - % {\cal Z} &=& \left\{ - % \begin{array}{ll} - % v_{z} & : z \in Z - % \end{array}\right.\\ - {\cal R} &=& \left\{ - \begin{array}{ll} - \beta_1 S_1 I & : z_{inf_1}\\ - \beta_2 S_2 I & : z_{inf_2}\\ - \gamma I & : z_{rec}\\ - \end{array}\right.\\ - \end{eqnarray*} + The stratified SIR model defines $\Theta$ (dropping ${\cal X}$ and ${\cal + Z}$ per above) by: + \begin{eqnarray*} + P &=& \{\beta_1, \beta_2, \gamma\}\\ + X &=& \{S_1, S_2, I, R\}\\ + Z &=& \{inf_1, inf_2, rec\}\\ + {\cal I} &=& \left\{ + \begin{array}{ll} + 0.45 & :S_1 \\ + 0.45 & :S_2 \\ + 0.1 & :I \\ + 0.0 & :R + \end{array}\right.\\ + {\cal P}&=& \left\{ + \begin{array}{ll} + 1e{-7} & :\beta_1 \\ + 2e{-7} & :\beta_2 \\ + 1e{-5} & :\gamma + \end{array}\right.\\ + \\ + % {\cal X} &=& \left\{ + % \begin{array}{ll} + % v_{x} & : x \in X + % \end{array}\right.\\ + % {\cal Z} &=& \left\{ + % \begin{array}{ll} + % v_{z} & : z \in Z + % \end{array}\right.\\ + {\cal R} &=& \left\{ + \begin{array}{ll} + \beta_1 S_1 I & : z_{inf_1} \\ + \beta_2 S_2 I & : z_{inf_2} \\ + \gamma I & : z_{rec} \\ + \end{array}\right.\\ + \end{eqnarray*} \end{example} @@ -130,9 +130,35 @@ as: \begin{eqnarray*} - \frac{d {\bf x}}{dt} &=& \nabla_{\Omega, \Theta}({\bf p},{\bf x}, t)\\ - \frac{{\bf x}(t+dt)-{\bf x}(t)}{dt} &=& \nabla_{\Omega, \Theta}({\bf p},{\bf x}, - t)\\ - {\bf x}(t+dt)&=& \nabla_{\Omega, \Theta}({\bf p},{\bf x}, t)dt+ {\bf x}(t) + \frac{d {\bf x}}{dt} &=& \nabla_{\Omega, \Theta}({\bf p},{\bf x}, t)\\ + \frac{{\bf x}(t+dt)-{\bf x}(t)}{dt} &=& \nabla_{\Omega, \Theta}({\bf p},{\bf x}, + t)\\ + {\bf x}(t+dt)&=& \nabla_{\Omega, \Theta}({\bf p},{\bf x}, t)dt+ {\bf x}(t) \end{eqnarray*} + +\begin{definition} + The stratification $\text{Stratify}_{Q}(\Omega, + \Theta) = (\Omega_Q, \Theta_Q)$ of a Petrinet and semantics with + respect to a specification $Q = (x, {\cal D}, P')$ defines a new Petrinet and + semantics with the following properties: + \begin{itemize} + \item Parameters: For each $p \in P' \subseteq P$, + \item States: For each element $D_i$ of the partition ${\cal D}= [D_0 | D_1| \ldots]$, define + $X' = X\backslash \{x\} \cup \{x_{D_i} | {\cal D} = [D_0 | D_1| \ldots]\}$ + \item Transitions: For each transition $z \in Z^{in(x)}\cup Z^{out(x)}$ + and partition $D_i$, define each $z_{D_i}$ so that: + \begin{itemize} + \item $E'_{in} = E_{in} \backslash \{(z, x)\} \cup \{(z_{D_i}, + x_{D_i})| {\cal D} = [D_0 | D_1| \ldots]\}$ if $z \in + Z^{in(x)}$. + \item $E'_{out} = E_{out} \backslash \{(x, z)\} \cup \{(x_{D_i}, + z_{D_i})| {\cal D} = [D_0 | D_1| \ldots]\}$ if $z \in + Z^{in(x)}$. + \item ${\cal R}({\bf p},{\bf x}, z_{D_i})$ + \end{itemize} + \item Initial State + \item Parameter Values: + \item Transition Rates: + \end{itemize} +\end{definition} diff --git a/notes/abstraction/main.pdf b/notes/abstraction/main.pdf index 01f81ff4..ae840729 100644 Binary files a/notes/abstraction/main.pdf and b/notes/abstraction/main.pdf differ diff --git a/resources/amr/petrinet/amr-examples/sir_request1.json b/resources/amr/petrinet/amr-examples/sir_request1.json index 261f2613..32da5ae3 100644 --- a/resources/amr/petrinet/amr-examples/sir_request1.json +++ b/resources/amr/petrinet/amr-examples/sir_request1.json @@ -51,20 +51,19 @@ ], "structure_parameters": [ { - "name": "num_steps", - "interval": { - "lb": 1, - "ub": 5 - }, - "label": "all" - }, - { - "name": "step_size", - "interval": { - "lb": 1, - "ub": 1 - }, - "label": "all" + "name": "schedules", + "schedules": [ + { + "timepoints": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + } + ] } ], "config": { diff --git a/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified.json b/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified.json index 00de3e8f..00214fe0 100644 --- a/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified.json +++ b/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified.json @@ -1 +1 @@ -{"header":{"name":"SIR Model","schema_":"https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.1/petrinet/petrinet_schema.json","schema_name":"petrinet","description":"SIR model created by Ben, Micah, Brandon","model_version":"0.1"},"properties":null,"model":{"states":[{"id":"I","name":"Infected","description":"Number of individuals that are 'infected' by a disease","grounding":{"identifiers":{"ido":"0000511"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"R","name":"Recovered","description":"Number of individuals that have 'recovered' from a disease infection","grounding":{"identifiers":{"ido":"0000592"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"S","name":"S","description":null,"grounding":null,"units":null}],"transitions":[{"id":"rec","input":["I"],"output":["R"],"grounding":null,"properties":{"name":"Recovery","description":"Recovery process of a infected individual","grounding":null}},{"id":"inf_1_2","input":["S","I"],"output":["I","I"],"grounding":null,"properties":{"name":"inf_1_2_0","description":"Infective process between individuals Stratified.","grounding":null}}]},"semantics":{"ode":{"rates":[{"target":"rec","expression":"I*gamma","expression_mathml":null},{"target":"inf_1_2","expression":"I*S*agg_beta_1_2_0_beta_1_2_1","expression_mathml":null}],"initials":[{"target":"I","expression":"1","expression_mathml":"I0"},{"target":"R","expression":"0","expression_mathml":"R0"},{"target":"S","expression":"1000.00000000000","expression_mathml":null}],"parameters":[{"id":"gamma","name":"γ","description":"recovery rate","value":0.1,"grounding":{"identifiers":{"askemo":"0000013"},"modifiers":null},"distribution":null,"units":{"expression":"1/day","expression_mathml":"1day"}},{"id":"agg_beta_1_2_0_beta_1_2_1","name":"agg_beta_1_2_0_beta_1_2_1","description":"agg_beta_1_2_0_beta_1_2_1","value":null,"grounding":null,"distribution":null,"units":null}],"observables":null,"time":{"id":"t","units":{"expression":"day","expression_mathml":"day"}}},"typing":null,"span":null},"metadata":{"processed_at":1682964953,"processed_by":"mit:process-node1","variable_statements":[{"id":"v0","variable":{"id":"v0","name":"VE","metadata":[{"type":"text_annotation","value":" Vaccine Effectiveness"},{"type":"text_annotation","value":" Vaccine Effectiveness"}],"dkg_groundings":[],"column":[{"id":"9-2","name":"new_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}},{"id":"9-3","name":"cumulative_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}}],"paper":{"id":"COVID-19 Vaccine Effectiveness by Product and Timing in New York State","file_directory":"https://www.medrxiv.org/content/10.1101/2021.10.08.21264595v1","doi":"10.1101/2021.10.08.21264595"},"equations":[]},"metadata":[],"provenance":{"method":"MIT annotation","description":"text, dataset, formula annotation (chunwei@mit.edu)"}}],"abstraction":{"parameters":{"inf_1_2":{"agg_beta_1_2_0_beta_1_2_1":{"lb":0.00030500000000000004,"ub":0.00032500000000000004}}}}}} \ No newline at end of file +{"header":{"name":"SIR Model","schema_":"https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.1/petrinet/petrinet_schema.json","schema_name":"petrinet","description":"SIR model created by Ben, Micah, Brandon","model_version":"0.1"},"properties":null,"model":{"states":[{"id":"I","name":"Infected","description":"Number of individuals that are 'infected' by a disease","grounding":{"identifiers":{"ido":"0000511"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"R","name":"Recovered","description":"Number of individuals that have 'recovered' from a disease infection","grounding":{"identifiers":{"ido":"0000592"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"S","name":"S","description":null,"grounding":null,"units":null}],"transitions":[{"id":"rec","input":["I"],"output":["R"],"grounding":null,"properties":{"name":"Recovery","description":"Recovery process of a infected individual","grounding":null}},{"id":"inf_1_2","input":["S","I"],"output":["I","I"],"grounding":null,"properties":{"name":"inf_1_2_0","description":"Infective process between individuals Stratified.","grounding":null}}]},"semantics":{"ode":{"rates":[{"target":"rec","expression":"I*gamma","expression_mathml":null},{"target":"inf_1_2","expression":"I*S*agg_beta_1_2_1_beta_1_2_0","expression_mathml":null}],"initials":[{"target":"I","expression":"1","expression_mathml":"I0"},{"target":"R","expression":"0","expression_mathml":"R0"},{"target":"S","expression":"1000.00000000000","expression_mathml":null}],"parameters":[{"id":"gamma","name":"γ","description":"recovery rate","value":0.1,"grounding":{"identifiers":{"askemo":"0000013"},"modifiers":null},"distribution":null,"units":{"expression":"1/day","expression_mathml":"1day"}},{"id":"agg_beta_1_2_1_beta_1_2_0","name":"agg_beta_1_2_1_beta_1_2_0","description":"agg_beta_1_2_1_beta_1_2_0","value":null,"grounding":null,"distribution":null,"units":null}],"observables":null,"time":{"id":"t","units":{"expression":"day","expression_mathml":"day"}}},"typing":null,"span":null},"metadata":{"processed_at":1682964953,"processed_by":"mit:process-node1","variable_statements":[{"id":"v0","variable":{"id":"v0","name":"VE","metadata":[{"type":"text_annotation","value":" Vaccine Effectiveness"},{"type":"text_annotation","value":" Vaccine Effectiveness"}],"dkg_groundings":[],"column":[{"id":"9-2","name":"new_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}},{"id":"9-3","name":"cumulative_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}}],"paper":{"id":"COVID-19 Vaccine Effectiveness by Product and Timing in New York State","file_directory":"https://www.medrxiv.org/content/10.1101/2021.10.08.21264595v1","doi":"10.1101/2021.10.08.21264595"},"equations":[]},"metadata":[],"provenance":{"method":"MIT annotation","description":"text, dataset, formula annotation (chunwei@mit.edu)"}}],"abstraction":{"parameters":{"inf_1_2":{"agg_beta_1_2_1_beta_1_2_0":{"lb":0.00030500000000000004,"ub":0.00032500000000000004}}}}}} \ No newline at end of file diff --git a/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified_bounded.json b/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified_bounded.json index 02040a6a..1805e625 100644 --- a/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified_bounded.json +++ b/resources/amr/petrinet/monthly-demo/2024-09/sir_abstract_stratified_bounded.json @@ -1 +1 @@ -{"header":{"name":"SIR Model","schema_":"https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.1/petrinet/petrinet_schema.json","schema_name":"petrinet","description":"SIR model created by Ben, Micah, Brandon","model_version":"0.1"},"properties":null,"model":{"states":[{"id":"I_lb","name":"I_lb","description":"Number of individuals that are 'infected' by a disease lb","grounding":{"identifiers":{"ido":"0000511"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"I_ub","name":"I_ub","description":"Number of individuals that are 'infected' by a disease ub","grounding":{"identifiers":{"ido":"0000511"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"R_lb","name":"R_lb","description":"Number of individuals that have 'recovered' from a disease infection lb","grounding":{"identifiers":{"ido":"0000592"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"R_ub","name":"R_ub","description":"Number of individuals that have 'recovered' from a disease infection ub","grounding":{"identifiers":{"ido":"0000592"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"S_lb","name":"S_lb","description":"None lb","grounding":null,"units":null},{"id":"S_ub","name":"S_ub","description":"None ub","grounding":null,"units":null}],"transitions":[{"id":"rec_in_I_lb","input":["I_ub"],"output":[],"grounding":null,"properties":{"name":"rec_out_lb","description":"Recovery process of a infected individual in lb","grounding":null}},{"id":"rec_in_I_ub","input":["I_lb"],"output":[],"grounding":null,"properties":{"name":"rec_out_ub","description":"Recovery process of a infected individual in ub","grounding":null}},{"id":"inf_1_2_in_S_lb","input":["S_ub"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_lb","description":"Infective process between individuals Stratified. in lb","grounding":null}},{"id":"inf_1_2_in_S_ub","input":["S_lb"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_ub","description":"Infective process between individuals Stratified. in ub","grounding":null}},{"id":"inf_1_2_in_I_lb","input":["I_ub"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_lb","description":"Infective process between individuals Stratified. in lb","grounding":null}},{"id":"inf_1_2_in_I_ub","input":["I_lb"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_ub","description":"Infective process between individuals Stratified. in ub","grounding":null}},{"id":"rec_out_R_lb","input":[],"output":["R_lb"],"grounding":null,"properties":{"name":"rec_in_lb","description":"Recovery process of a infected individual in lb","grounding":null}},{"id":"rec_out_R_ub","input":[],"output":["R_ub"],"grounding":null,"properties":{"name":"rec_in_ub","description":"Recovery process of a infected individual in ub","grounding":null}},{"id":"inf_1_2_out_I_lb","input":[],"output":["I_lb","I_lb"],"grounding":null,"properties":{"name":"inf_1_2_in_lb","description":"Infective process between individuals Stratified. in lb","grounding":null}},{"id":"inf_1_2_out_I_ub","input":[],"output":["I_ub","I_ub"],"grounding":null,"properties":{"name":"inf_1_2_in_ub","description":"Infective process between individuals Stratified. in ub","grounding":null}}]},"semantics":{"ode":{"rates":[{"target":"rec_in_I_lb","expression":"I_ub*gamma_lb","expression_mathml":null},{"target":"rec_in_I_ub","expression":"I_lb*gamma_ub","expression_mathml":null},{"target":"inf_1_2_in_S_lb","expression":"I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_lb","expression_mathml":null},{"target":"inf_1_2_in_S_ub","expression":"I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_ub","expression_mathml":null},{"target":"inf_1_2_in_I_lb","expression":"I_ub*S_lb*agg_beta_1_2_0_beta_1_2_1_lb","expression_mathml":null},{"target":"inf_1_2_in_I_ub","expression":"I_lb*S_ub*agg_beta_1_2_0_beta_1_2_1_ub","expression_mathml":null},{"target":"rec_out_R_lb","expression":"I_lb*gamma_lb","expression_mathml":null},{"target":"rec_out_R_ub","expression":"I_ub*gamma_ub","expression_mathml":null},{"target":"inf_1_2_out_I_lb","expression":"I_lb*S_lb*agg_beta_1_2_0_beta_1_2_1_lb","expression_mathml":null},{"target":"inf_1_2_out_I_ub","expression":"I_ub*S_ub*agg_beta_1_2_0_beta_1_2_1_ub","expression_mathml":null}],"initials":[{"target":"I_lb","expression":"1","expression_mathml":"I0"},{"target":"I_ub","expression":"1","expression_mathml":"I0"},{"target":"R_lb","expression":"0","expression_mathml":"R0"},{"target":"R_ub","expression":"0","expression_mathml":"R0"},{"target":"S_lb","expression":"1000.00000000000","expression_mathml":null},{"target":"S_ub","expression":"1000.00000000000","expression_mathml":null}],"parameters":[{"id":"gamma_lb","name":null,"description":null,"value":0.1,"grounding":null,"distribution":null,"units":{"expression":"1/day","expression_mathml":"1day"}},{"id":"gamma_ub","name":null,"description":null,"value":0.1,"grounding":null,"distribution":null,"units":{"expression":"1/day","expression_mathml":"1day"}},{"id":"agg_beta_1_2_0_beta_1_2_1_lb","name":null,"description":null,"value":0.00030500000000000004,"grounding":null,"distribution":null,"units":null},{"id":"agg_beta_1_2_0_beta_1_2_1_ub","name":null,"description":null,"value":0.00032500000000000004,"grounding":null,"distribution":null,"units":null}],"observables":[],"time":{"id":"t","units":{"expression":"day","expression_mathml":"day"}}},"typing":null,"span":null},"metadata":{"processed_at":1682964953,"processed_by":"mit:process-node1","variable_statements":[{"id":"v0","variable":{"id":"v0","name":"VE","metadata":[{"type":"text_annotation","value":" Vaccine Effectiveness"},{"type":"text_annotation","value":" Vaccine Effectiveness"}],"dkg_groundings":[],"column":[{"id":"9-2","name":"new_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}},{"id":"9-3","name":"cumulative_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}}],"paper":{"id":"COVID-19 Vaccine Effectiveness by Product and Timing in New York State","file_directory":"https://www.medrxiv.org/content/10.1101/2021.10.08.21264595v1","doi":"10.1101/2021.10.08.21264595"},"equations":[]},"metadata":[],"provenance":{"method":"MIT annotation","description":"text, dataset, formula annotation (chunwei@mit.edu)"}}],"abstraction":{"parameters":{"inf_1_2":{"agg_beta_1_2_0_beta_1_2_1":{"lb":0.00030500000000000004,"ub":0.00032500000000000004}}}}}} \ No newline at end of file +{"header":{"name":"SIR Model","schema_":"https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.1/petrinet/petrinet_schema.json","schema_name":"petrinet","description":"SIR model created by Ben, Micah, Brandon","model_version":"0.1"},"properties":null,"model":{"states":[{"id":"I_lb","name":"I_lb","description":"Number of individuals that are 'infected' by a disease lb","grounding":{"identifiers":{"ido":"0000511"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"I_ub","name":"I_ub","description":"Number of individuals that are 'infected' by a disease ub","grounding":{"identifiers":{"ido":"0000511"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"R_lb","name":"R_lb","description":"Number of individuals that have 'recovered' from a disease infection lb","grounding":{"identifiers":{"ido":"0000592"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"R_ub","name":"R_ub","description":"Number of individuals that have 'recovered' from a disease infection ub","grounding":{"identifiers":{"ido":"0000592"},"modifiers":null},"units":{"expression":"person","expression_mathml":"person"}},{"id":"S_lb","name":"S_lb","description":"None lb","grounding":null,"units":null},{"id":"S_ub","name":"S_ub","description":"None ub","grounding":null,"units":null}],"transitions":[{"id":"rec_in_I_lb","input":["I_ub"],"output":[],"grounding":null,"properties":{"name":"rec_out_lb","description":"Recovery process of a infected individual in lb","grounding":null}},{"id":"rec_in_I_ub","input":["I_lb"],"output":[],"grounding":null,"properties":{"name":"rec_out_ub","description":"Recovery process of a infected individual in ub","grounding":null}},{"id":"inf_1_2_in_S_lb","input":["S_ub"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_lb","description":"Infective process between individuals Stratified. in lb","grounding":null}},{"id":"inf_1_2_in_S_ub","input":["S_lb"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_ub","description":"Infective process between individuals Stratified. in ub","grounding":null}},{"id":"inf_1_2_in_I_lb","input":["I_ub"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_lb","description":"Infective process between individuals Stratified. in lb","grounding":null}},{"id":"inf_1_2_in_I_ub","input":["I_lb"],"output":[],"grounding":null,"properties":{"name":"inf_1_2_out_ub","description":"Infective process between individuals Stratified. in ub","grounding":null}},{"id":"rec_out_R_lb","input":[],"output":["R_lb"],"grounding":null,"properties":{"name":"rec_in_lb","description":"Recovery process of a infected individual in lb","grounding":null}},{"id":"rec_out_R_ub","input":[],"output":["R_ub"],"grounding":null,"properties":{"name":"rec_in_ub","description":"Recovery process of a infected individual in ub","grounding":null}},{"id":"inf_1_2_out_I_lb","input":[],"output":["I_lb","I_lb"],"grounding":null,"properties":{"name":"inf_1_2_in_lb","description":"Infective process between individuals Stratified. in lb","grounding":null}},{"id":"inf_1_2_out_I_ub","input":[],"output":["I_ub","I_ub"],"grounding":null,"properties":{"name":"inf_1_2_in_ub","description":"Infective process between individuals Stratified. in ub","grounding":null}}]},"semantics":{"ode":{"rates":[{"target":"rec_in_I_lb","expression":"I_ub*gamma_lb","expression_mathml":null},{"target":"rec_in_I_ub","expression":"I_lb*gamma_ub","expression_mathml":null},{"target":"inf_1_2_in_S_lb","expression":"I_lb*S_ub*agg_beta_1_2_1_beta_1_2_0_lb","expression_mathml":null},{"target":"inf_1_2_in_S_ub","expression":"I_ub*S_lb*agg_beta_1_2_1_beta_1_2_0_ub","expression_mathml":null},{"target":"inf_1_2_in_I_lb","expression":"I_ub*S_lb*agg_beta_1_2_1_beta_1_2_0_lb","expression_mathml":null},{"target":"inf_1_2_in_I_ub","expression":"I_lb*S_ub*agg_beta_1_2_1_beta_1_2_0_ub","expression_mathml":null},{"target":"rec_out_R_lb","expression":"I_lb*gamma_lb","expression_mathml":null},{"target":"rec_out_R_ub","expression":"I_ub*gamma_ub","expression_mathml":null},{"target":"inf_1_2_out_I_lb","expression":"I_lb*S_lb*agg_beta_1_2_1_beta_1_2_0_lb","expression_mathml":null},{"target":"inf_1_2_out_I_ub","expression":"I_ub*S_ub*agg_beta_1_2_1_beta_1_2_0_ub","expression_mathml":null}],"initials":[{"target":"I_lb","expression":"1","expression_mathml":"I0"},{"target":"I_ub","expression":"1","expression_mathml":"I0"},{"target":"R_lb","expression":"0","expression_mathml":"R0"},{"target":"R_ub","expression":"0","expression_mathml":"R0"},{"target":"S_lb","expression":"1000.00000000000","expression_mathml":null},{"target":"S_ub","expression":"1000.00000000000","expression_mathml":null}],"parameters":[{"id":"gamma_lb","name":null,"description":null,"value":0.1,"grounding":null,"distribution":null,"units":{"expression":"1/day","expression_mathml":"1day"}},{"id":"gamma_ub","name":null,"description":null,"value":0.1,"grounding":null,"distribution":null,"units":{"expression":"1/day","expression_mathml":"1day"}},{"id":"agg_beta_1_2_1_beta_1_2_0_lb","name":null,"description":null,"value":0.00030500000000000004,"grounding":null,"distribution":null,"units":null},{"id":"agg_beta_1_2_1_beta_1_2_0_ub","name":null,"description":null,"value":0.00032500000000000004,"grounding":null,"distribution":null,"units":null}],"observables":[],"time":{"id":"t","units":{"expression":"day","expression_mathml":"day"}}},"typing":null,"span":null},"metadata":{"processed_at":1682964953,"processed_by":"mit:process-node1","variable_statements":[{"id":"v0","variable":{"id":"v0","name":"VE","metadata":[{"type":"text_annotation","value":" Vaccine Effectiveness"},{"type":"text_annotation","value":" Vaccine Effectiveness"}],"dkg_groundings":[],"column":[{"id":"9-2","name":"new_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}},{"id":"9-3","name":"cumulative_persons_vaccinated","dataset":{"id":"9","name":"usa-vaccinations.csv","metadata":"https://github.com/DARPA-ASKEM/program-milestones/blob/main/6-month-milestone/evaluation/scenario_3/ta_1/google-health-data/usa-vaccinations.csv"}}],"paper":{"id":"COVID-19 Vaccine Effectiveness by Product and Timing in New York State","file_directory":"https://www.medrxiv.org/content/10.1101/2021.10.08.21264595v1","doi":"10.1101/2021.10.08.21264595"},"equations":[]},"metadata":[],"provenance":{"method":"MIT annotation","description":"text, dataset, formula annotation (chunwei@mit.edu)"}}],"abstraction":{"parameters":{"inf_1_2":{"agg_beta_1_2_1_beta_1_2_0":{"lb":0.00030500000000000004,"ub":0.00032500000000000004}}}}}} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/holly-validate.json b/resources/amr/petrinet/terrarium-tests/holly-validate.json new file mode 100644 index 00000000..7bc3df82 --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/holly-validate.json @@ -0,0 +1,344 @@ +{ + "model": { + "id": "081e489b-1a3a-42de-a604-58d92f76ce9c", + "createdOn": "2024-08-28T00:38:18.290+00:00", + "updatedOn": "2024-11-01T13:20:39.523+00:00", + "name": "SIR to validate", + "fileNames": [], + "temporary": false, + "publicAsset": false, + "header": { + "name": "SIR to validate", + "description": "SIR model 4", + "schema": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.6/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "model_version": "0.1" + }, + "model": { + "transitions": [ + { + "id": "inf", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "properties": { + "name": "inf" + } + }, + { + "id": "rec", + "input": [ + "I" + ], + "output": [ + "R" + ], + "properties": { + "name": "rec" + } + } + ], + "states": [ + { + "id": "S", + "name": "Susceptible", + "grounding": { + "identifiers": { + "ido": "0000514" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "I", + "name": "Infected", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "R", + "name": "Recovered", + "grounding": { + "identifiers": { + "ido": "0000592" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + } + ] + }, + "properties": {}, + "semantics": { + "ode": { + "rates": [ + { + "target": "inf", + "expression": "0.004*I*S*beta", + "expression_mathml": "0.0040000000000000001ISbeta" + }, + { + "target": "rec", + "expression": "I*gamma", + "expression_mathml": "Igamma" + } + ], + "initials": [ + { + "target": "S", + "expression": "S0", + "expression_mathml": "S0" + }, + { + "target": "I", + "expression": "I0", + "expression_mathml": "I0" + }, + { + "target": "R", + "expression": "R0", + "expression_mathml": "R0" + } + ], + "parameters": [ + { + "id": "beta", + "name": "β", + "description": "infection rate", + "value": 0.04, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.03, + "maximum": 0.05 + } + }, + "units": { + "expression": "1/(day*person)", + "expression_mathml": "1dayperson" + } + }, + { + "id": "gamma", + "name": "γ", + "description": "recovery rate", + "value": 0.02, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.01, + "maximum": 0.03 + } + }, + "units": { + "expression": "1/day", + "expression_mathml": "day-1" + } + }, + { + "id": "S0", + "name": "S₀", + "description": "Total susceptible population at timestep 0", + "value": 2000 + }, + { + "id": "I0", + "name": "I₀", + "description": "Total infected population at timestep 0", + "value": 1 + }, + { + "id": "R0", + "name": "R₀", + "description": "Total recovered population at timestep 0", + "value": 0 + }, + { + "id": "zeta", + "name": "zeta", + "value": 999 + } + ], + "observables": [ + { + "id": "noninf", + "name": "Non-infectious", + "expression": "R + S", + "expression_mathml": "RS" + } + ], + "time": { + "id": "t", + "units": { + "expression": "day", + "expression_mathml": "day" + } + } + }, + "span": [], + "typing": null + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + } + }, + "request": { + "constraints": [ + { + "name": "Constraint 1", + "variables": [ + "S", + "R" + ], + "weights": [ + 1, + 1 + ], + "additive_bounds": { + "lb": 0 + }, + "timepoints": { + "lb": 0, + "ub": 34, + "closed_upper_bound": true + } + } + ], + "parameters": [ + { + "name": "beta", + "label": "all", + "interval": { + "lb": 0.03, + "ub": 0.05 + } + }, + { + "name": "gamma", + "label": "all", + "interval": { + "lb": 0.01, + "ub": 0.03 + } + }, + { + "name": "S0", + "label": "any", + "interval": { + "lb": 2000, + "ub": 2000 + } + }, + { + "name": "I0", + "label": "any", + "interval": { + "lb": 1, + "ub": 1 + } + }, + { + "name": "R0", + "label": "any", + "interval": { + "lb": 0, + "ub": 0 + } + }, + { + "name": "zeta", + "label": "any", + "interval": { + "lb": 999, + "ub": 999 + } + } + ], + "structure_parameters": [ + { + "name": "schedules", + "schedules": [ + { + "timepoints": [ + 0, + 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 + ] + } + ] + } + ], + "config": { + "use_compartmental_constraints": true, + "normalization_constant": 2001, + "normalize": false, + "tolerance": 0.5, + "verbosity": 20 + } + } +} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/id_chars_in_input.json b/resources/amr/petrinet/terrarium-tests/id_chars_in_input.json new file mode 100644 index 00000000..b0df65af --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/id_chars_in_input.json @@ -0,0 +1,487 @@ +{ + "model": { + "id": "9009b45f-505e-4de5-8cd7-3ff665df6207", + "createdOn": "2024-11-01T14:51:22.220+00:00", + "updatedOn": "2024-11-01T17:20:47.204+00:00", + "name": "sirhd-base (vax)", + "fileNames": [], + "temporary": false, + "publicAsset": true, + "header": { + "name": "sirhd-base (vax)", + "description": "This is a model from equations", + "schema": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.6/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "model_version": "0.1" + }, + "model": { + "transitions": [ + { + "id": "t0_Vaccinated", + "input": [ + "I", + "S_Vaccinated" + ], + "output": [ + "I", + "I" + ], + "properties": { + "name": "t0_Vaccinated" + } + }, + { + "id": "t0_Unvaccinated", + "input": [ + "I", + "S_Unvaccinated" + ], + "output": [ + "I", + "I" + ], + "properties": { + "name": "t0_Unvaccinated" + } + }, + { + "id": "t1", + "input": [ + "I" + ], + "output": [ + "R" + ], + "properties": { + "name": "t1" + } + }, + { + "id": "t2", + "input": [ + "H" + ], + "output": [ + "R" + ], + "properties": { + "name": "t2" + } + }, + { + "id": "t3", + "input": [ + "I" + ], + "output": [ + "H" + ], + "properties": { + "name": "t3" + } + }, + { + "id": "t4", + "input": [ + "H" + ], + "output": [ + "D" + ], + "properties": { + "name": "t4" + } + }, + { + "id": "t_conv_0_Vaccinated_Unvaccinated", + "input": [ + "S_Vaccinated" + ], + "output": [ + "S_Unvaccinated" + ], + "properties": { + "name": "t_conv_0_Vaccinated_Unvaccinated" + } + }, + { + "id": "t_conv_0_Unvaccinated_Vaccinated", + "input": [ + "S_Unvaccinated" + ], + "output": [ + "S_Vaccinated" + ], + "properties": { + "name": "t_conv_0_Unvaccinated_Vaccinated" + } + } + ], + "states": [ + { + "id": "S_Vaccinated", + "name": "S", + "grounding": { + "identifiers": {}, + "modifiers": { + "Vaccination status": "Vaccinated" + } + } + }, + { + "id": "I", + "name": "I", + "grounding": { + "identifiers": {}, + "modifiers": {} + } + }, + { + "id": "S_Unvaccinated", + "name": "S", + "grounding": { + "identifiers": {}, + "modifiers": { + "Vaccination status": "Unvaccinated" + } + } + }, + { + "id": "R", + "name": "R", + "grounding": { + "identifiers": {}, + "modifiers": {} + } + }, + { + "id": "H", + "name": "H", + "grounding": { + "identifiers": {}, + "modifiers": {} + } + }, + { + "id": "D", + "name": "D", + "grounding": { + "identifiers": {}, + "modifiers": {} + } + } + ] + }, + "properties": {}, + "semantics": { + "ode": { + "rates": [ + { + "target": "t0_Vaccinated", + "expression": "I*S_Vaccinated*b_Vaccinated/N", + "expression_mathml": "IS_Vaccinatedb_VaccinatedN" + }, + { + "target": "t0_Unvaccinated", + "expression": "I*S_Unvaccinated*b_Unvaccinated/N", + "expression_mathml": "IS_Unvaccinatedb_UnvaccinatedN" + }, + { + "target": "t1", + "expression": "I*p_{IR}*r_{IR}", + "expression_mathml": "Ip_{IR}r_{IR}" + }, + { + "target": "t2", + "expression": "H*p_{HR}*r_{HR}", + "expression_mathml": "Hp_{HR}r_{HR}" + }, + { + "target": "t3", + "expression": "I*p_{IH}*r_{IH}", + "expression_mathml": "Ip_{IH}r_{IH}" + }, + { + "target": "t4", + "expression": "H*p_{HD}*r_{HD}", + "expression_mathml": "Hp_{HD}r_{HD}" + }, + { + "target": "t_conv_0_Vaccinated_Unvaccinated", + "expression": "S_Vaccinated*p_Vaccinated_Unvaccinated", + "expression_mathml": "S_Vaccinatedp_Vaccinated_Unvaccinated" + }, + { + "target": "t_conv_0_Unvaccinated_Vaccinated", + "expression": "S_Unvaccinated*p_Unvaccinated_Vaccinated", + "expression_mathml": "S_Unvaccinatedp_Unvaccinated_Vaccinated" + } + ], + "initials": [ + { + "target": "S_Vaccinated", + "expression": "101182948*0.6", + "expression_mathml": "60709768.799999997" + }, + { + "target": "I", + "expression": "1385335", + "expression_mathml": "1385335" + }, + { + "target": "S_Unvaccinated", + "expression": "101182948*0.4", + "expression_mathml": "40473179.200000003" + }, + { + "target": "R", + "expression": "781454", + "expression_mathml": "781454" + }, + { + "target": "H", + "expression": "73720", + "expression_mathml": "73720" + }, + { + "target": "D", + "expression": "781454", + "expression_mathml": "781454" + } + ], + "parameters": [ + { + "id": "N", + "name": "N", + "value": 150000000 + }, + { + "id": "b_Vaccinated", + "name": "b", + "value": 0.08 + }, + { + "id": "b_Unvaccinated", + "name": "b", + "value": 0.28 + }, + { + "id": "p_{IR}", + "name": "p_{IR}", + "value": 0.8 + }, + { + "id": "r_{IR}", + "name": "r_{IR}", + "value": 0.07 + }, + { + "id": "p_{HR}", + "name": "p_{HR}", + "value": 0.77 + }, + { + "id": "r_{HR}", + "name": "r_{HR}", + "value": 0.07 + }, + { + "id": "p_{IH}", + "name": "p_{IH}", + "value": 0.2 + }, + { + "id": "r_{IH}", + "name": "r_{IH}", + "value": 0.07 + }, + { + "id": "p_{HD}", + "name": "p_{HD}", + "value": 0.23 + }, + { + "id": "r_{HD}", + "name": "r_{HD}", + "value": 0.3 + }, + { + "id": "p_Vaccinated_Unvaccinated", + "value": 0 + }, + { + "id": "p_Unvaccinated_Vaccinated", + "value": 0.1, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.001, + "maximum": 0.01 + } + } + } + ], + "observables": [], + "time": { + "id": "t" + } + }, + "span": [], + "typing": null + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + } + }, + "request": { + "constraints": [], + "parameters": [ + { + "name": "N", + "label": "any", + "interval": { + "lb": 150000000, + "ub": 150000000 + } + }, + { + "name": "b_Vaccinated", + "label": "any", + "interval": { + "lb": 0.08, + "ub": 0.08 + } + }, + { + "name": "b_Unvaccinated", + "label": "any", + "interval": { + "lb": 0.28, + "ub": 0.28 + } + }, + { + "name": "p_{IR}", + "label": "any", + "interval": { + "lb": 0.8, + "ub": 0.8 + } + }, + { + "name": "r_{IR}", + "label": "any", + "interval": { + "lb": 0.07, + "ub": 0.07 + } + }, + { + "name": "p_{HR}", + "label": "any", + "interval": { + "lb": 0.77, + "ub": 0.77 + } + }, + { + "name": "r_{HR}", + "label": "any", + "interval": { + "lb": 0.07, + "ub": 0.07 + } + }, + { + "name": "p_{IH}", + "label": "any", + "interval": { + "lb": 0.2, + "ub": 0.2 + } + }, + { + "name": "r_{IH}", + "label": "any", + "interval": { + "lb": 0.07, + "ub": 0.07 + } + }, + { + "name": "p_{HD}", + "label": "any", + "interval": { + "lb": 0.23, + "ub": 0.23 + } + }, + { + "name": "r_{HD}", + "label": "any", + "interval": { + "lb": 0.3, + "ub": 0.3 + } + }, + { + "name": "p_Vaccinated_Unvaccinated", + "label": "any", + "interval": { + "lb": 0, + "ub": 0 + } + }, + { + "name": "p_Unvaccinated_Vaccinated", + "label": "any", + "interval": { + "lb": 0.001, + "ub": 0.01 + } + } + ], + "structure_parameters": [ + { + "name": "schedules", + "schedules": [ + { + "timepoints": [ + 0, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100 + ] + } + ] + } + ], + "config": { + "use_compartmental_constraints": false, + "normalization_constant": 104204911, + "normalize": false, + "tolerance": 0.2, + "verbosity": 10, + "save_smtlib": "./out" + } + } +} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/model-context.json b/resources/amr/petrinet/terrarium-tests/model-context.json new file mode 100644 index 00000000..2b3b1ca9 --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/model-context.json @@ -0,0 +1,350 @@ +{ + "model": { + "id": "06690761-3219-4be6-9290-d378fac8d7b6", + "createdOn": "2024-11-20T20:46:01.312+00:00", + "updatedOn": "2024-11-20T21:08:48.435+00:00", + "name": "Hewitt Model A (from equations)", + "fileNames": [], + "temporary": false, + "publicAsset": false, + "header": { + "name": "Hewitt Model A (from equations)", + "description": "This is a model from equations", + "schema": "https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "model_version": "0.1" + }, + "model": { + "transitions": [ + { + "id": "t0", + "name": null, + "description": "Transition from susceptible to infected state due to contact with infected individuals.", + "grounding": { + "identifiers": { + "ncit": "C127773", + "apollosv": "00000211" + }, + "context": {}, + "modifiers": {} + }, + "input": [ + "i_{e}", + "s_{e}" + ], + "output": [ + "i_{e}", + "i_{e}" + ], + "expression": null, + "properties": null + }, + { + "id": "t1", + "name": null, + "description": "Transition from infected to recovered state as individuals recover from the infection.", + "grounding": { + "identifiers": { + "askemo": "0000013", + "hp": "0031797" + }, + "context": {}, + "modifiers": {} + }, + "input": [ + "i_{e}" + ], + "output": [ + "r_{e}" + ], + "expression": null, + "properties": null + } + ], + "states": [ + { + "id": "i_{e}", + "name": "i_{e}", + "description": "Infected state representing the number of infected individuals in the population.", + "grounding": { + "identifiers": { + "apollosv": "00000569" + }, + "context": {}, + "modifiers": {} + }, + "units": { + "expression": "individuals", + "expression_mathml": "individuals" + } + }, + { + "id": "r_{e}", + "name": "r_{e}", + "description": "Recovered state representing the number of individuals who have recovered from the infection.", + "grounding": { + "identifiers": { + "ncit": "C173781" + }, + "context": {}, + "modifiers": {} + }, + "units": { + "expression": "individuals", + "expression_mathml": "individuals" + } + }, + { + "id": "s_{e}", + "name": "s_{e}", + "description": "Susceptible state representing the number of individuals susceptible to the infection.", + "grounding": { + "identifiers": { + "apollosv": "00000516" + }, + "context": {}, + "modifiers": {} + }, + "units": { + "expression": "individuals", + "expression_mathml": "individuals" + } + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t0", + "description": "Transition from susceptible to infected state due to contact with infected individuals.", + "expression": "s_{e}*β_{e}*i_{e}", + "expression_mathml": "s_{e}β_{e}i_{e}" + }, + { + "target": "t1", + "description": "Transition from infected to recovered state as individuals recover from the infection.", + "expression": "γ*i_{e}", + "expression_mathml": "γi_{e}" + } + ], + "initials": [ + { + "target": "s_{e}", + "description": "Susceptible state representing the number of individuals susceptible to the infection.", + "expression": "0.999", + "expression_mathml": "0.999" + }, + { + "target": "i_{e}", + "description": "Infected state representing the number of infected individuals in the population.", + "expression": "0.001", + "expression_mathml": "0.001" + }, + { + "target": "r_{e}", + "description": "Recovered state representing the number of individuals who have recovered from the infection.", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "β_{e}", + "name": "β_{e}", + "description": "Transmission rate of the infection from infected to susceptible individuals.", + "grounding": { + "identifiers": { + "vsmo": "0000128", + "ncit": "C127773" + }, + "context": {}, + "modifiers": {} + }, + "value": 1, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.59, + "maximum": 2.12 + } + }, + "units": { + "expression": "1/(individual*day)", + "expression_mathml": "1individual*day" + } + }, + { + "id": "γ", + "name": "γ", + "description": "Recovery rate of infected individuals.", + "grounding": { + "identifiers": { + "askemo": "0000013" + }, + "context": {}, + "modifiers": {} + }, + "value": 1, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.26, + "maximum": 1.46 + } + }, + "units": { + "expression": "1/day", + "expression_mathml": "1day" + } + } + ], + "observables": [], + "time": null + }, + "span": [], + "typing": null + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "description": "PGgyPlN1bW1hcnk8L2gyPgo8cD5UaGUgbW9kZWwgZGVzY3JpYmVkIGluIHRoZSBkb2N1bWVudCBpcyBhIGhpZXJhcmNoaWNhbCBCYXllc2lhbiBtb2RlbCB0aGF0IGluY29ycG9yYXRlcyBzcGF0aWFsbHkgYW5kIHRlbXBvcmFsbHkgY29ycmVsYXRlZCBlcGlkZW1pb2xvZ2ljYWwgY29tcGFydG1lbnQgbW9kZWxzIHRvIGVzdGltYXRlIHRoZSBkeW5hbWljcyBvZiBTQVJTLUNvVi0yIG91dGJyZWFrcyBpbiB3aGl0ZS10YWlsZWQgZGVlciAoV1REKSBhY3Jvc3MgdGhlIFVuaXRlZCBTdGF0ZXMuIFRoZSBtb2RlbCB1c2VzIGEgU3VzY2VwdGlibGUtSW5mZWN0ZWQtUmVjb3ZlcmVkIChTSVIpIGZyYW1ld29yayB0byBxdWFudGlmeSBpbmZlY3Rpb24gcGFyYW1ldGVycyBzdWNoIGFzIHRyYW5zbWlzc2lvbiByYXRlcyBhbmQgZWZmZWN0aXZlIHJlcHJvZHVjdGlvbiByYXRpb3MuIFRoZSBtb2RlbCBpcyBkZXNpZ25lZCB0byBoYW5kbGUgdW5iYWxhbmNlZCBzcGF0aWFsLCB0ZW1wb3JhbCwgZ2VvZ3JhcGhpYywgYW5kIGRlbW9ncmFwaGljIGRpc3RyaWJ1dGlvbiBvZiBzYW1wbGVzLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGxhbmRzY2FwZS1zY2FsZSBzdXJ2ZWlsbGFuY2UgZGF0YS4gVGhlIG1vZGVsIGNhbiBsaWtlbHkgYmUgcmVwcmVzZW50ZWQgaW4gUGV0cmkgTmV0IGZvcm1hdCBhcyBpdCBpbnZvbHZlcyB0cmFuc2l0aW9ucyBiZXR3ZWVuIHN0YXRlcyAoc3VzY2VwdGlibGUsIGluZmVjdGVkLCByZWNvdmVyZWQpIGFuZCB1c2VzIHBhcmFtZXRlcnMgbGlrZSB0cmFuc21pc3Npb24gYW5kIHJlY292ZXJ5IHJhdGVzLjwvcD48YnI+CjxoMj5TcGVjczwvaDI+CjxoND5Eb21haW48L2g0Pgo8dWw+CjxsaT5FcGlkZW1pb2xvZ3k8L2xpPgo8bGk+V2lsZGxpZmUgRGlzZWFzZSBTdXJ2ZWlsbGFuY2U8L2xpPgo8L3VsPjxicj4KPGg0PlR5cGU8L2g0Pgo8cD5NYXRoZW1hdGljYWwgTW9kZWw8L3A+PGJyPgo8aDQ+U3BlY2lmaWNhdGlvbjwvaDQ+CjxwPlRoZSBtb2RlbCB1c2VzIGEgaGllcmFyY2hpY2FsIEJheWVzaWFuIGZyYW1ld29yayB3aXRoIHNwYXRpYWxseSBhbmQgdGVtcG9yYWxseSBjb3JyZWxhdGVkIFNJUiBjb21wYXJ0bWVudGFsIG1vZGVscy4gSXQgZXN0aW1hdGVzIHBhcmFtZXRlcnMgZm9yIDIsODkzIGNvdW50aWVzLCBhY2NvdW50aW5nIGZvciBzcGF0aWFsIGNvcnJlbGF0aW9uIHVzaW5nIGEgY29uZGl0aW9uYWwgYXV0b3JlZ3Jlc3NpdmUgKENBUikgcHJvY2Vzcy4gVGhlIG1vZGVsIGluY2x1ZGVzIHBhcmFtZXRlcnMgc3VjaCBhcyBsb2NhbCBlZmZlY3RpdmUgcmVwcm9kdWN0aW9uIHJhdGlvIChSX2UpIGFuZCB1c2VzIGNvdmFyaWF0ZXMgbGlrZSBodW1hbiBwb3B1bGF0aW9uIGRlbnNpdHkgYW5kIGRlZXIgaGFiaXRhdC48L3A+PGJyPgo8aDQ+U3RhdGVzPC9oND4KPHVsPgo8bGk+U3VzY2VwdGlibGU6IFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBpbmRpdmlkdWFscyBzdXNjZXB0aWJsZSB0byB0aGUgaW5mZWN0aW9uLCBtZWFzdXJlZCBpbiBpbmRpdmlkdWFscy4gVHJhbnNpdGlvbnMgdG8gaW5mZWN0ZWQgc3RhdGUgdXBvbiBjb250YWN0IHdpdGggaW5mZWN0ZWQgaW5kaXZpZHVhbHMuPC9saT4KPGxpPkluZmVjdGVkOiBSZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgaW5mZWN0ZWQgaW5kaXZpZHVhbHMgaW4gdGhlIHBvcHVsYXRpb24sIG1lYXN1cmVkIGluIGluZGl2aWR1YWxzLiBUcmFuc2l0aW9ucyB0byByZWNvdmVyZWQgc3RhdGUgYXMgaW5kaXZpZHVhbHMgcmVjb3Zlci48L2xpPgo8bGk+UmVjb3ZlcmVkOiBSZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgaW5kaXZpZHVhbHMgd2hvIGhhdmUgcmVjb3ZlcmVkIGZyb20gdGhlIGluZmVjdGlvbiwgbWVhc3VyZWQgaW4gaW5kaXZpZHVhbHMuPC9saT4KPC91bD48YnI+CjxoMj5QYXJhbWV0ZXJzPC9oMj4KPHVsPgo8bGk+VHJhbnNtaXNzaW9uIFJhdGUgKM6yX2UpOiBUaGUgcmF0ZSBhdCB3aGljaCBpbmZlY3Rpb24gaXMgdHJhbnNtaXR0ZWQgZnJvbSBpbmZlY3RlZCB0byBzdXNjZXB0aWJsZSBpbmRpdmlkdWFscywgbWVhc3VyZWQgaW4gMS8oaW5kaXZpZHVhbCpkYXkpLjwvbGk+CjxsaT5SZWNvdmVyeSBSYXRlICjOsyk6IFRoZSByYXRlIGF0IHdoaWNoIGluZmVjdGVkIGluZGl2aWR1YWxzIHJlY292ZXIsIG1lYXN1cmVkIGluIDEvZGF5LjwvbGk+CjwvdWw+PGJyPgo8aDI+VXNlczwvaDI+CjxoND5EaXJlY3QgVXNlPC9oND4KPHA+VGhlIG1vZGVsIGNhbiBiZSB1c2VkIHRvIHNpbXVsYXRlIGFuZCBhbmFseXplIHRoZSBzcHJlYWQgb2YgU0FSUy1Db1YtMiBpbiB3aGl0ZS10YWlsZWQgZGVlciBwb3B1bGF0aW9ucywgaGVscGluZyB0byBpbmZvcm0gc3VydmVpbGxhbmNlIGFuZCBjb250cm9sIHN0cmF0ZWdpZXMuPC9wPjxicj4KPGg0Pk91dCBPZiBTY29wZSBVc2U8L2g0Pgo8cD5UaGUgbW9kZWwgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBwcmVkaWN0aW5nIGluZGl2aWR1YWwtbGV2ZWwgaW5mZWN0aW9uIGV2ZW50cyBvciBmb3Igc3BlY2llcyBvdGhlciB0aGFuIHdoaXRlLXRhaWxlZCBkZWVyIHdpdGhvdXQgYXBwcm9wcmlhdGUgbW9kaWZpY2F0aW9ucy48L3A+PGJyPgo8aDI+QmlhcyBSaXNrcyBMaW1pdGF0aW9uczwvaDI+CjxoND5CaWFzZXM8L2g0Pgo8cD5UaGUgbW9kZWwgbWF5IGJlIGJpYXNlZCBkdWUgdG8gdW5iYWxhbmNlZCBzYW1wbGluZywgYXMgaXQgcmVsaWVzIG9uIG9wcG9ydHVuaXN0aWMgZGF0YSBjb2xsZWN0aW9uLjwvcD48YnI+CjxoND5SaXNrczwvaDQ+CjxwPlRoZXJlIGlzIGEgcmlzayBvZiBvdmVyZXN0aW1hdGluZyBvciB1bmRlcmVzdGltYXRpbmcgaW5mZWN0aW9uIHBhcmFtZXRlcnMgZHVlIHRvIHNwYXRpYWwgYW5kIHRlbXBvcmFsIGRhdGEgZ2Fwcy48L3A+PGJyPgo8aDQ+TGltaXRhdGlvbnM8L2g0Pgo8cD5UaGUgbW9kZWwncyBhY2N1cmFjeSBpcyBsaW1pdGVkIGJ5IHRoZSBhdmFpbGFiaWxpdHkgYW5kIHF1YWxpdHkgb2Ygc3VydmVpbGxhbmNlIGRhdGEsIGFuZCBpdCBtYXkgbm90IGNhcHR1cmUgYWxsIGVjb2xvZ2ljYWwgZmFjdG9ycyBpbmZsdWVuY2luZyB0cmFuc21pc3Npb24uPC9wPjxicj4KPGgyPlRlc3Rpbmc8L2gyPgo8aDQ+VmFsaWRhdGlvbjwvaDQ+CjxwPlRoZSBtb2RlbCB3YXMgdmFsaWRhdGVkIHRocm91Z2ggY29tcGFyaXNvbiB3aXRoIG9ic2VydmVkIHN1cnZlaWxsYW5jZSBkYXRhIGFuZCBjYWxpYnJhdGlvbiBjdXJ2ZXMuPC9wPjxicj4KPGg0Pk1ldHJpY3M8L2g0Pgo8cD5NZXRyaWNzIHVzZWQgaW5jbHVkZSB0aGUgZWZmZWN0aXZlIHJlcHJvZHVjdGlvbiByYXRpbyAoUl9lKSBhbmQgcHJldmFsZW5jZSBlc3RpbWF0ZXMuPC9wPjxicj4KPGgyPkdldHRpbmcgU3RhcnRlZDwvaDI+CjxoND5TdGVwczwvaDQ+Cjx1bD4KPGxpPkNvbGxlY3Qgc3VydmVpbGxhbmNlIGRhdGEgb24gU0FSUy1Db1YtMiBpbiB3aGl0ZS10YWlsZWQgZGVlci48L2xpPgo8bGk+SW5wdXQgZGF0YSBpbnRvIHRoZSBoaWVyYXJjaGljYWwgQmF5ZXNpYW4gbW9kZWwgZnJhbWV3b3JrLjwvbGk+CjxsaT5SdW4gdGhlIG1vZGVsIHRvIGVzdGltYXRlIGVwaWRlbWlvbG9naWNhbCBwYXJhbWV0ZXJzIGFuZCBwcmV2YWxlbmNlLjwvbGk+CjxsaT5BbmFseXplIHJlc3VsdHMgdG8gaW5mb3JtIHN1cnZlaWxsYW5jZSBhbmQgY29udHJvbCBzdHJhdGVnaWVzLjwvbGk+CjwvdWw+PGJyPgo8aDI+R2xvc3Nhcnk8L2gyPgo8dWw+CjxsaT5TSVIgTW9kZWw6IEEgY29tcGFydG1lbnRhbCBtb2RlbCBpbiBlcGlkZW1pb2xvZ3kgdGhhdCBkaXZpZGVzIHRoZSBwb3B1bGF0aW9uIGludG8gc3VzY2VwdGlibGUsIGluZmVjdGVkLCBhbmQgcmVjb3ZlcmVkIHN0YXRlcy48L2xpPgo8bGk+RWZmZWN0aXZlIFJlcHJvZHVjdGlvbiBSYXRpbyAoUl9lKTogVGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIHNlY29uZGFyeSBpbmZlY3Rpb25zIHByb2R1Y2VkIGJ5IGFuIGluZmVjdGVkIGluZGl2aWR1YWwgaW4gYSBwb3B1bGF0aW9uLjwvbGk+CjwvdWw+PGJyPgo8aDI+QXV0aG9yczwvaDI+Cjx1bD4KPGxpPkpvc2h1YSBIZXdpdHQ8L2xpPgo8bGk+R3JldGUgV2lsc29uLUhlbmp1bTwvbGk+CjxsaT5EZXJlayBULiBDb2xsaW5zPC9saT4KPGxpPlRpbW90aHkgSi4gTGluZGVyPC9saT4KPGxpPkp1bGlhbm5hIEIuIExlbm9jaDwvbGk+CjxsaT5Kb25hdGhvbiBELiBIZWFsZTwvbGk+CjxsaT5DaHJpc3RvcGhlciBBLiBRdWludGFuYWw8L2xpPgo8bGk+Um9iZXJ0IFBsZXN6ZXdza2k8L2xpPgo8bGk+RGlsbG9uIFMuIE1jQnJpZGU8L2xpPgo8bGk+QW5kcmV3IFMuIEJvd21hbjwvbGk+CjxsaT5KZWZmcmV5IEMuIENoYW5kbGVyPC9saT4KPGxpPlN1c2FuIEEuIFNocmluZXI8L2xpPgo8bGk+U2FyYWggTi4gQmV2aW5zPC9saT4KPGxpPkRlbm5pcyBKLiBLb2hsZXI8L2xpPgo8bGk+UmljaGFyZCBCLiBDaGlwbWFuPC9saT4KPGxpPkFsbGVuIEwuIEdvc3NlcjwvbGk+CjxsaT5EYXZpZCBMLiBCZXJnbWFuPC9saT4KPGxpPlRob21hcyBKLiBEZUxpYmVydG88L2xpPgo8bGk+S2ltIE0uIFBlcGluPC9saT4KPC91bD48YnI+CjxoMj5DaXRhdGlvbnM8L2gyPgo8dWw+CjxsaT5DaGFuZGxlciwgSi4gQy4sIGV0IGFsLiAoMjAyMSkuIFNBUlMtQ29WLTIgZXhwb3N1cmUgaW4gd2lsZCB3aGl0ZS10YWlsZWQgZGVlci4gUE5BUywgMTE4KDQ3KSwgZTIxMTQ4MjgxMTguPC9saT4KPGxpPkhhbGUsIFYuIEwuLCBldCBhbC4gKDIwMjIpLiBTQVJTLUNvVi0yIGluZmVjdGlvbiBpbiBmcmVlLXJhbmdpbmcgd2hpdGUtdGFpbGVkIGRlZXIuIE5hdHVyZSwgNjAyLCA0ODEtNDg2LjwvbGk+CjwvdWw+PGJyPgo8aDI+TW9yZSBJbmZvcm1hdGlvbjwvaDI+CjxoND5GdW5kZWQgQnk8L2g0Pgo8cD5VU0RBIEFtZXJpY2FuIFJlc2N1ZSBQbGFuPC9wPjxicj4KPGg0PkxpbmtzPC9oND4KPHVsPgo8bGk+aHR0cHM6Ly9kb2kub3JnLzEwLjExNTUvMjAyNC83NTg5NTA5PC9saT4KPC91bD48YnI+Cg==", + "gollmCard": { + "summary": "The model described in the document is a hierarchical Bayesian model that incorporates spatially and temporally correlated epidemiological compartment models to estimate the dynamics of SARS-CoV-2 outbreaks in white-tailed deer (WTD) across the United States. The model uses a Susceptible-Infected-Recovered (SIR) framework to quantify infection parameters such as transmission rates and effective reproduction ratios. The model is designed to handle unbalanced spatial, temporal, geographic, and demographic distribution of samples, making it suitable for landscape-scale surveillance data. The model can likely be represented in Petri Net format as it involves transitions between states (susceptible, infected, recovered) and uses parameters like transmission and recovery rates.", + "specs": { + "domain": [ + "Epidemiology", + "Wildlife Disease Surveillance" + ], + "type": "Mathematical Model", + "specification": "The model uses a hierarchical Bayesian framework with spatially and temporally correlated SIR compartmental models. It estimates parameters for 2,893 counties, accounting for spatial correlation using a conditional autoregressive (CAR) process. The model includes parameters such as local effective reproduction ratio (R_e) and uses covariates like human population density and deer habitat.", + "states": [ + "Susceptible: Represents the number of individuals susceptible to the infection, measured in individuals. Transitions to infected state upon contact with infected individuals.", + "Infected: Represents the number of infected individuals in the population, measured in individuals. Transitions to recovered state as individuals recover.", + "Recovered: Represents the number of individuals who have recovered from the infection, measured in individuals." + ] + }, + "parameters": [ + "Transmission Rate (β_e): The rate at which infection is transmitted from infected to susceptible individuals, measured in 1/(individual*day).", + "Recovery Rate (γ): The rate at which infected individuals recover, measured in 1/day." + ], + "uses": { + "directUse": "The model can be used to simulate and analyze the spread of SARS-CoV-2 in white-tailed deer populations, helping to inform surveillance and control strategies.", + "outOfScopeUse": "The model should not be used for predicting individual-level infection events or for species other than white-tailed deer without appropriate modifications." + }, + "biasRisksLimitations": { + "biases": "The model may be biased due to unbalanced sampling, as it relies on opportunistic data collection.", + "risks": "There is a risk of overestimating or underestimating infection parameters due to spatial and temporal data gaps.", + "limitations": "The model's accuracy is limited by the availability and quality of surveillance data, and it may not capture all ecological factors influencing transmission." + }, + "testing": { + "validation": "The model was validated through comparison with observed surveillance data and calibration curves.", + "metrics": "Metrics used include the effective reproduction ratio (R_e) and prevalence estimates." + }, + "gettingStarted": { + "steps": [ + "Collect surveillance data on SARS-CoV-2 in white-tailed deer.", + "Input data into the hierarchical Bayesian model framework.", + "Run the model to estimate epidemiological parameters and prevalence.", + "Analyze results to inform surveillance and control strategies." + ] + }, + "glossary": [ + "SIR Model: A compartmental model in epidemiology that divides the population into susceptible, infected, and recovered states.", + "Effective Reproduction Ratio (R_e): The average number of secondary infections produced by an infected individual in a population." + ], + "authors": [ + "Joshua Hewitt", + "Grete Wilson-Henjum", + "Derek T. Collins", + "Timothy J. Linder", + "Julianna B. Lenoch", + "Jonathon D. Heale", + "Christopher A. Quintanal", + "Robert Pleszewski", + "Dillon S. McBride", + "Andrew S. Bowman", + "Jeffrey C. Chandler", + "Susan A. Shriner", + "Sarah N. Bevins", + "Dennis J. Kohler", + "Richard B. Chipman", + "Allen L. Gosser", + "David L. Bergman", + "Thomas J. DeLiberto", + "Kim M. Pepin" + ], + "citations": [ + "Chandler, J. C., et al. (2021). SARS-CoV-2 exposure in wild white-tailed deer. PNAS, 118(47), e2114828118.", + "Hale, V. L., et al. (2022). SARS-CoV-2 infection in free-ranging white-tailed deer. Nature, 602, 481-486." + ], + "moreInformation": { + "fundedBy": "USDA American Rescue Plan", + "links": [ + "https://doi.org/10.1155/2024/7589509" + ] + } + }, + "gollmExtractions": null, + "templateCard": null + } + }, + "request": { + "constraints": [], + "parameters": [ + { + "name": "β_{e}", + "label": "any", + "interval": { + "lb": 0.59, + "ub": 2.12 + } + }, + { + "name": "γ", + "label": "any", + "interval": { + "lb": 0.26, + "ub": 1.46 + } + } + ], + "structure_parameters": [ + { + "name": "schedules", + "schedules": [ + { + "timepoints": [ + 0, + 10, + 20, + 30, + 40, + 50, + 60, + 70, + 80, + 90, + 100 + ] + } + ] + } + ], + "config": { + "use_compartmental_constraints": true, + "normalization_constant": 0.999, + "normalize": false, + "tolerance": 0.2, + "verbosity": 0 + } + } +} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/response1-issue51.json b/resources/amr/petrinet/terrarium-tests/response1-issue51.json new file mode 100644 index 00000000..c68ecc8f --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/response1-issue51.json @@ -0,0 +1,5923 @@ +{ + "id": "xyz", + "model": { + "name": "model_f2734a89-8ee7-48c0-945b-ab87e92bced4", + "init_values": {}, + "parameter_bounds": {}, + "petrinet": { + "header": { + "name": "SIR (relative)", + "schema_": "https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "This is a model from equations", + "model_version": "0.1" + }, + "properties": null, + "model": { + "states": [ + { + "id": "I", + "name": "I", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "R", + "name": "R", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "S", + "name": "S", + "description": null, + "grounding": null, + "units": null + } + ], + "transitions": [ + { + "id": "t0", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "grounding": null, + "properties": null + }, + { + "id": "t1", + "input": [ + "I" + ], + "output": [ + "R" + ], + "grounding": null, + "properties": null + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t0", + "expression": "I*β*S", + "expression_mathml": "IβS" + }, + { + "target": "t1", + "expression": "γ*I", + "expression_mathml": "γI" + } + ], + "initials": [ + { + "target": "S", + "expression": "0.99", + "expression_mathml": "0.98999999999999999" + }, + { + "target": "I", + "expression": "0.01", + "expression_mathml": "0.01" + }, + { + "target": "R", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "β", + "name": "β", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1, + "maximum": 1.5 + } + }, + "units": null + }, + { + "id": "γ", + "name": "γ", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.05, + "maximum": 1 + } + }, + "units": null + } + ], + "observables": [], + "time": null + }, + "typing": null, + "span": [] + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + }, + "id": "12a5009e-7381-4df7-ad79-143101f6072e", + "createdOn": "2024-11-05T15:50:33.376+00:00", + "updatedOn": "2024-11-05T15:50:55.098+00:00", + "name": "SIR (relative)", + "fileNames": [], + "temporary": false, + "publicAsset": false + } + }, + "progress": { + "progress": 1, + "coverage_of_search_space": 0.8623043976036491, + "coverage_of_representable_space": 0 + }, + "request": { + "query": null, + "constraints": [ + { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.1, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + }, + { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + ], + "parameters": [ + { + "name": "β", + "interval": { + "lb": 0.1, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "all" + }, + { + "name": "γ", + "interval": { + "lb": 0.05, + "ub": 1, + "closed_upper_bound": false, + "original_width": 0.95, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "all" + } + ], + "config": { + "tolerance": 0.1, + "queue_timeout": 1, + "number_of_processes": 1, + "wait_timeout": null, + "wait_action_timeout": 0.05, + "solver": "dreal", + "num_steps": 2, + "step_size": 1, + "num_initial_boxes": 1, + "solver_timeout": null, + "initial_state_tolerance": 0, + "save_smtlib": null, + "dreal_precision": 0.001, + "dreal_log_level": "off", + "constraint_noise": 0, + "dreal_mcts": true, + "substitute_subformulas": false, + "normalization_constant": 1, + "use_compartmental_constraints": false, + "compartmental_constraint_noise": 0.01, + "normalize": false, + "simplify_query": false, + "series_approximation_threshold": null, + "profile": false, + "taylor_series_order": null, + "corner_points": false, + "verbosity": 0, + "use_transition_symbols": false, + "uniform_box_splits": false, + "dreal_prefer_parameters": [], + "point_based_evaluation": false, + "prioritize_box_entropy": true, + "mode": "mode_smt", + "random_seed": 0 + }, + "structure_parameters": [ + { + "name": "schedules", + "interval": { + "lb": -1.7976931348623157e+308, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": null, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "any", + "schedules": [ + { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + } + ] + } + ] + }, + "done": true, + "error": false, + "error_message": null, + "parameter_space": { + "num_dimensions": 3, + "true_boxes": [ + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 0.1991108618377013, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3803654384774137, + "ub": 0.5733406082239887, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & solve_step_1) & ('β' < 1991108618377013/10000000000000000)) & ('γ' < 5733406082239887/10000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 9509135961935343/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 1991108618377013/10000000000000000))) | (! ('γ' < 5733406082239887/10000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & ((assume_Constraint_2_2 | (I_2 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & (! ('β' < 10000000000000001/100000000000000000))) & (! assume_Constraint_2_2)) & (! ('γ' < 9509135961935343/25000000000000000)))", + "symbols": [ + "assume_Constraint_2_2", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj2", + "R_0", + "disj6", + "conj3", + "S_0", + "assume_Constraint_2_0", + "solve_step_0", + "solve_step_1", + "conj0", + "I_2" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.14955543091885065, + "γ": 0.48198625304289183, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 0, + "assume_Constraint_1_0": 1, + "solve_step_2": 0, + "assume_Constraint_2_2": 1, + "R_2": 0.009639725060857836, + "S_2": 0.9870388024678068, + "I_2": 0.003505729372239843, + "assume_Constraint_1_2": 1, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1991108618377013, + "ub": 0.21800191345967945, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3803654384774137, + "ub": 0.5936402652908044, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & solve_step_1) & ('β' < 10900095672983973/50000000000000000)) & ('γ' < 59364026529080439/100000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1991108618377013/10000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 10900095672983973/50000000000000000))) | (! ('γ' < 59364026529080439/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & ((assume_Constraint_2_2 | (I_2 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & (! assume_Constraint_2_2)) & (! ('γ' < 9509135961935343/25000000000000000))) & (! ('β' < 1991108618377013/10000000000000000)))", + "symbols": [ + "assume_Constraint_2_2", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj2", + "R_0", + "disj6", + "conj3", + "S_0", + "assume_Constraint_2_0", + "solve_step_0", + "solve_step_1", + "conj0", + "I_2" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.20855638764869036, + "γ": 0.4851812849650065, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 0, + "assume_Constraint_2_2": 1, + "R_2": 0.00970362569930013, + "S_2": 0.985870583524556, + "I_2": 0.0044257907761439405, + "assume_Constraint_1_2": 1, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1991108618377013, + "ub": 0.21800191345967945, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3803654384774137, + "ub": 0.5936402652908044, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_2) & solve_step_1) & ('β' < 10900095672983973/50000000000000000)) & ('γ' < 59364026529080439/100000000000000000)) & disj306) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1991108618377013/10000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 10900095672983973/50000000000000000))) | (! ('γ' < 59364026529080439/100000000000000000)))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1991108618377013/10000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 10900095672983973/50000000000000000))) | (! ('γ' < 59364026529080439/100000000000000000)))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1991108618377013/10000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 10900095672983973/50000000000000000))) | (! ('γ' < 59364026529080439/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & ((assume_Constraint_2_4 | (I_4 < 0.0)) | (! disj11))) & ((assume_Constraint_1_4 | (! disj13)) | (! (I_4 < 9/50)))) & (disj11 | (! conj7))) & (disj13 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((conj740 | conj741) | (! disj306))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_4) | (! conj740))) & ((! assume_Constraint_1_4) | (! conj741))) & (! ('γ' < 9509135961935343/25000000000000000))) & (! ('β' < 1991108618377013/10000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "S_0", + "disj306", + "conj740", + "conj741", + "I_4", + "assume_Constraint_1_4", + "solve_step_0", + "disj11", + "assume_Constraint_2_4", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "S_4", + "disj13", + "conj7", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.20855638764869036, + "γ": 0.4851812849650065, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.00970362569930013, + "S_2": 0.985870583524556, + "I_2": 0.0044257907761439405, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0025772364648035196, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.014112615509095355, + "S_4": 0.9840287718794886, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.21800191345967945, + "ub": 0.2542359153531742, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3803654384774137, + "ub": 0.6048993263194844, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_2) & solve_step_1) & ('β' < 1271179576765871/5000000000000000)) & ('γ' < 1512248315798711/2500000000000000)) & disj332) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 10900095672983973/50000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 1271179576765871/5000000000000000))) | (! ('γ' < 1512248315798711/2500000000000000)))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 10900095672983973/50000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 1271179576765871/5000000000000000))) | (! ('γ' < 1512248315798711/2500000000000000)))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 10900095672983973/50000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 1271179576765871/5000000000000000))) | (! ('γ' < 1512248315798711/2500000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & ((assume_Constraint_2_4 | (I_4 < 0.0)) | (! disj11))) & ((assume_Constraint_1_4 | (! disj13)) | (! (I_4 < 9/50)))) & (disj11 | (! conj7))) & (disj13 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((conj807 | conj808) | (! disj332))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_4) | (! conj807))) & ((! assume_Constraint_1_4) | (! conj808))) & (! ('γ' < 9509135961935343/25000000000000000))) & (! ('β' < 10900095672983973/50000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "S_0", + "disj332", + "conj807", + "conj808", + "I_4", + "assume_Constraint_1_4", + "solve_step_0", + "disj11", + "assume_Constraint_2_4", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "S_4", + "disj13", + "conj7", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2361189144064268, + "γ": 0.5341864331213618, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.010683728662427236, + "S_2": 0.9853248454947529, + "I_2": 0.003991425842820016, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.005362755969639432, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.0160048519604278, + "S_4": 0.9833443285180207, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.3803654384774137, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & solve_step_1) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 9509135961935343/25000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & ((assume_Constraint_2_2 | (I_2 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 10000000000000001/100000000000000000))) & (! assume_Constraint_2_2))", + "symbols": [ + "assume_Constraint_2_2", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj2", + "R_0", + "disj6", + "conj3", + "S_0", + "assume_Constraint_2_0", + "solve_step_0", + "solve_step_1", + "conj0", + "I_2" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2700015974842835, + "γ": 0.09603591354974189, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 0, + "assume_Constraint_2_2": 1, + "R_2": 0.0019207182709948378, + "S_2": 0.9846539683698113, + "I_2": 0.013425313359193976, + "assume_Constraint_1_2": 1, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.3803654384774137, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((solve_step_0 & solve_step_2) & solve_step_1) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 9509135961935343/25000000000000000)) & disj129) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & ((assume_Constraint_2_4 | (I_4 < 0.0)) | (! disj11))) & ((assume_Constraint_1_4 | (! disj13)) | (! (I_4 < 9/50)))) & (disj11 | (! conj7))) & (disj13 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((conj253 | conj254) | (! disj129))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_4) | (! conj253))) & ((! assume_Constraint_1_4) | (! conj254))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 10000000000000001/100000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "S_0", + "I_4", + "assume_Constraint_1_4", + "solve_step_0", + "disj11", + "assume_Constraint_2_4", + "disj129", + "solve_step_1", + "solve_step_2", + "R_4", + "S_4", + "I_2", + "disj13", + "conj7", + "conj254", + "conj253", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2700015974842835, + "γ": 0.09603591354974189, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.0019207182709948378, + "S_2": 0.9846539683698113, + "I_2": 0.013425313359193976, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.017995779752988897, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.004673443037384624, + "S_4": 0.9773307772096266, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.3803654384774137, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_3) & solve_step_2) & solve_step_1) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 9509135961935343/25000000000000000)) & disj132) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & (((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & (((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (assume_Constraint_2_4 | (! conj262))) & (assume_Constraint_1_4 | (! conj263))) & (disj14 | (! conj7))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((assume_Constraint_2_6 | (I_6 < 0.0)) | (! disj20))) & ((assume_Constraint_1_6 | (! disj22)) | (! (I_6 < 9/50)))) & (disj20 | (! conj12))) & (disj22 | (! conj12))) & (conj12 | (! solve_step_3))) & ((I_6 < 9/50) | (! (I_6 < 0.0)))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((conj262 | conj263) | (! disj132))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & (((! assume_Constraint_2_4) | (! disj14)) | (! (I_4 < 0.0)))) & ((! assume_Constraint_2_6) | (! conj262))) & ((! assume_Constraint_1_6) | (! conj263))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 10000000000000001/100000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "I_0", + "R_0", + "conj3", + "disj20", + "S_0", + "disj22", + "conj12", + "I_6", + "assume_Constraint_1_6", + "assume_Constraint_2_6", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "solve_step_2", + "solve_step_3", + "disj14", + "I_2", + "conj0", + "disj15", + "R_2", + "S_2", + "I_4", + "assume_Constraint_1_4", + "assume_Constraint_2_4", + "conj7", + "R_4", + "S_4", + "disj132", + "conj262", + "conj263" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2700015974842835, + "γ": 0.09603591354974189, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.0019207182709948378, + "S_2": 0.9846539683698113, + "I_2": 0.013425313359193976, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.017995779752988897, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.004673443037384624, + "S_4": 0.9773307772096266, + "assume_Constraint_2_6": 1, + "R_6": 0.008663789024801548, + "S_6": 0.9672618908865981, + "I_6": 0.024074320088600533, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.3803654384774137, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 4, + "ub": 4, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_4) & solve_step_3) & solve_step_2) & solve_step_1) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 9509135961935343/25000000000000000)) & disj135) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & (((((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_8 < 0.0)) | (I_8 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (I_8 < 0.0))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_8 < 0.0)) | (I_8 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_6 < 0.0)) | (I_8 < 0.0)) | (I_8 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & (((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_8 < 0.0)) | (I_8 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (assume_Constraint_2_4 | (! conj270))) & (disj14 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & (assume_Constraint_2_6 | (! conj270))) & (assume_Constraint_1_6 | (! conj271))) & (disj23 | (! conj12))) & (disj24 | (! conj12))) & (conj12 | (! solve_step_3))) & (((I_6 < 9/50) | (! assume_Constraint_1_6)) | (! disj24))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((assume_Constraint_2_8 | (I_8 < 0.0)) | (! disj29))) & ((assume_Constraint_1_8 | (! disj31)) | (! (I_8 < 9/50)))) & (disj29 | (! conj17))) & (disj31 | (! conj17))) & (conj17 | (! solve_step_4))) & ((I_8 < 9/50) | (! (I_8 < 0.0)))) & ((S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))) | (! conj17))) & ((R_8 = (R_6 + (2.0 * ('γ' * I_6)))) | (! conj17))) & ((I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))) | (! conj17))) & ((conj270 | conj271) | (! disj135))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & (((! assume_Constraint_2_4) | (! disj14)) | (! (I_4 < 0.0)))) & (((! assume_Constraint_2_6) | (! disj23)) | (! (I_6 < 0.0)))) & ((! assume_Constraint_2_8) | (! conj270))) & ((! assume_Constraint_1_8) | (! conj271))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 10000000000000001/100000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "I_0", + "R_0", + "conj3", + "conj12", + "S_0", + "I_6", + "assume_Constraint_1_6", + "assume_Constraint_2_6", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "solve_step_2", + "solve_step_3", + "solve_step_4", + "disj14", + "conj0", + "I_2", + "disj23", + "disj24", + "conj17", + "R_2", + "S_2", + "I_8", + "assume_Constraint_1_8", + "assume_Constraint_2_8", + "R_8", + "S_8", + "disj135", + "I_4", + "disj29", + "conj270", + "conj271", + "disj31", + "assume_Constraint_2_4", + "conj7", + "R_4", + "S_4" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.4559055396110615, + "γ": 0.09603591354974189, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.0019207182709948378, + "S_2": 0.9809730703157011, + "I_2": 0.017106211413304182, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.02906634198858921, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.00534083238879641, + "S_4": 0.9655928256226145, + "assume_Constraint_2_6": 1, + "R_6": 0.011434351922530575, + "S_6": 0.9396911549612668, + "I_6": 0.04595158771845759, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.08228658758478968, + "assume_Constraint_1_8": 1, + "R_8": 0.02144385480203615, + "S_8": 0.9122981293145521, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.3803654384774137, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 5, + "ub": 5, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & solve_step_5) & solve_step_4) & solve_step_3) & solve_step_2) & solve_step_1) & assume_Constraint_2_2) & assume_Constraint_2_4) & assume_Constraint_2_6) & assume_Constraint_2_8) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 9509135961935343/25000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & (((((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_8 < 0.0)) | (I_8 < 9/50)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & (((((((((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_8 < 0.0)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! (I_8 < 9/50))) | (! (S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))))) | (! (R_8 = (R_6 + (2.0 * ('γ' * I_6)))))) | (! (I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))))) | (! (I_10 < 0.0))) | (! (S_10 = (S_8 - (2.0 * (('β' * S_8) * I_8)))))) | (! (R_10 = (R_8 + (2.0 * ('γ' * I_8)))))) | (! (I_10 = (I_8 + (2.0 * ((-1.0 * ('γ' * I_8)) + (('β' * S_8) * I_8))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 9509135961935343/25000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (disj14 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & (disj23 | (! conj12))) & (conj12 | (! solve_step_3))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & (disj32 | (! conj17))) & (conj17 | (! solve_step_4))) & ((S_8 = (S_6 - (2.0 * (('β' * S_6) * I_6)))) | (! conj17))) & ((R_8 = (R_6 + (2.0 * ('γ' * I_6)))) | (! conj17))) & ((I_8 = (I_6 + (2.0 * ((-1.0 * ('γ' * I_6)) + (('β' * S_6) * I_6))))) | (! conj17))) & ((assume_Constraint_2_10 | (I_10 < 0.0)) | (! disj38))) & (disj38 | (! conj22))) & (conj22 | (! solve_step_5))) & ((S_10 = (S_8 - (2.0 * (('β' * S_8) * I_8)))) | (! conj22))) & ((R_10 = (R_8 + (2.0 * ('γ' * I_8)))) | (! conj22))) & ((I_10 = (I_8 + (2.0 * ((-1.0 * ('γ' * I_8)) + (('β' * S_8) * I_8))))) | (! conj22))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (((! assume_Constraint_2_2) | (! disj7)) | (! (I_2 < 0.0)))) & (((! assume_Constraint_2_4) | (! disj14)) | (! (I_4 < 0.0)))) & (((! assume_Constraint_2_6) | (! disj23)) | (! (I_6 < 0.0)))) & (((! assume_Constraint_2_8) | (! disj32)) | (! (I_8 < 0.0)))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 10000000000000001/100000000000000000))) & (! assume_Constraint_2_10))", + "symbols": [ + "'β'", + "'γ'", + "I_10", + "I_0", + "assume_Constraint_2_10", + "disj2", + "R_0", + "conj3", + "R_10", + "S_0", + "S_10", + "conj12", + "I_6", + "assume_Constraint_2_0", + "assume_Constraint_2_6", + "disj38", + "conj22", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "solve_step_2", + "solve_step_3", + "solve_step_4", + "solve_step_5", + "disj7", + "I_2", + "conj0", + "disj14", + "disj23", + "assume_Constraint_2_2", + "disj32", + "conj17", + "R_2", + "S_2", + "I_8", + "assume_Constraint_2_8", + "R_8", + "S_8", + "I_4", + "assume_Constraint_2_4", + "conj7", + "R_4", + "S_4" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.23553101106858337, + "γ": 0.3549946616601228, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.007099893233202456, + "S_2": 0.9853364859808422, + "I_2": 0.007563620785955496, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.005773321041760236, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.012544959744862725, + "S_4": 0.9816817192133772, + "assume_Constraint_2_6": 1, + "R_6": 0.01686368227983075, + "S_6": 0.9785891218802388, + "I_6": 0.007405161195894661, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.01154981394296329, + "assume_Constraint_1_8": 1, + "R_8": 0.022497017050375556, + "S_8": 0.9744444691331702, + "I_10": 0.018014219891799747, + "assume_Constraint_2_10": 1, + "R_10": 0.03128331713987111, + "S_10": 0.9679800631843337, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.21800191345967945, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3803654384774137, + "ub": 0.7070787380138802, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & solve_step_1) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 35353936900694011/50000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 10900095672983973/50000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 35353936900694011/50000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & ((assume_Constraint_2_2 | (I_2 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & (! assume_Constraint_2_2)) & (! ('γ' < 9509135961935343/25000000000000000))) & (! ('β' < 10900095672983973/50000000000000000)))", + "symbols": [ + "assume_Constraint_2_2", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj2", + "R_0", + "disj6", + "conj3", + "S_0", + "assume_Constraint_2_0", + "solve_step_0", + "solve_step_1", + "conj0", + "I_2" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.23186317478137677, + "γ": 0.7004026360130128, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 0, + "assume_Constraint_2_2": 1, + "R_2": 0.014008052720260256, + "S_2": 0.9854091091393289, + "I_2": 0.0011825839563541682, + "assume_Constraint_1_2": 1, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.2542359153531742, + "ub": 0.4831792744470129, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3803654384774137, + "ub": 0.6090698181439996, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_2) & solve_step_1) & ('β' < 12079481861175323/25000000000000000)) & ('γ' < 15226745453599991/25000000000000000)) & disj320) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1271179576765871/5000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 15226745453599991/25000000000000000)))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1271179576765871/5000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 15226745453599991/25000000000000000)))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 9509135961935343/25000000000000000)) | ('β' < 1271179576765871/5000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 12079481861175323/25000000000000000))) | (! ('γ' < 15226745453599991/25000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & ((assume_Constraint_2_4 | (I_4 < 0.0)) | (! disj11))) & ((assume_Constraint_1_4 | (! disj13)) | (! (I_4 < 9/50)))) & (disj11 | (! conj7))) & (disj13 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((conj775 | conj776) | (! disj320))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_4) | (! conj775))) & ((! assume_Constraint_1_4) | (! conj776))) & (! ('γ' < 9509135961935343/25000000000000000))) & (! ('β' < 1271179576765871/5000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "S_0", + "disj320", + "conj775", + "conj776", + "I_4", + "assume_Constraint_1_4", + "solve_step_0", + "disj11", + "assume_Constraint_2_4", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "S_4", + "disj13", + "conj7", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.36275363772063973, + "γ": 0.543722088245647, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.010874441764912939, + "S_2": 0.9828174779731315, + "I_2": 0.006308080261955729, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.00875678248419896, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.0191185199547667, + "S_4": 0.9779078508428316, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.4831792744470129, + "ub": 0.7320072576267181, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.3901949634050856, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_3) & solve_step_2) & solve_step_1) & ('γ' < 39019496340508559/100000000000000000)) & ('β' < 14640145152534363/20000000000000000)) & disj348) & (conj0 | (! solve_step_0))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 39019496340508559/100000000000000000))) | (! ('β' < 14640145152534363/20000000000000000)))) & (((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 39019496340508559/100000000000000000))) | (! ('β' < 14640145152534363/20000000000000000)))) & ((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 39019496340508559/100000000000000000))) | (! ('β' < 14640145152534363/20000000000000000)))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 39019496340508559/100000000000000000))) | (! ('β' < 14640145152534363/20000000000000000)))) & (((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('γ' < 39019496340508559/100000000000000000))) | (! ('β' < 14640145152534363/20000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (assume_Constraint_1_4 | (! conj846))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((assume_Constraint_2_6 | (I_6 < 0.0)) | (! disj20))) & ((assume_Constraint_1_6 | (! disj22)) | (! (I_6 < 9/50)))) & (disj20 | (! conj12))) & (disj22 | (! conj12))) & (conj12 | (! solve_step_3))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((conj845 | conj846) | (! disj348))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_6) | (! conj845))) & ((! assume_Constraint_1_6) | (! conj846))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 12079481861175323/25000000000000000)))", + "symbols": [ + "disj348", + "conj846", + "conj845", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "disj20", + "S_0", + "disj22", + "conj12", + "I_6", + "assume_Constraint_1_6", + "I_4", + "assume_Constraint_2_6", + "R_6", + "S_6", + "assume_Constraint_1_4", + "solve_step_0", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "solve_step_3", + "S_4", + "conj7", + "conj0", + "disj15" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.5226863222778975, + "γ": 0.1025163455325271, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.0020503269106505423, + "S_2": 0.9796508108188977, + "I_2": 0.01829886227045183, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.03325314593966978, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.005974891361001118, + "S_4": 0.9607719626993292, + "assume_Constraint_2_6": 1, + "R_6": 0.013493874499676971, + "S_6": 0.9267900466990678, + "I_6": 0.06762958890062754, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.6188991280259752, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 0.8811008719740248, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.730389926810171, + "ub": 1, + "closed_upper_bound": false, + "original_width": 0.26961007318982905, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 0, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & ('γ' < 1.0)) & solve_step_1) & ('β' < 11822636082024679/12500000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 2475596512103901/4000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 11822636082024679/12500000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('β' < 3/2) | (! conj0))) & ((assume_Constraint_2_2 | (I_2 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & (! assume_Constraint_2_2)) & (! ('γ' < 73038992681017101/100000000000000000))) & (! ('β' < 2475596512103901/4000000000000000)))", + "symbols": [ + "assume_Constraint_2_2", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj2", + "R_0", + "disj6", + "conj3", + "S_0", + "assume_Constraint_2_0", + "solve_step_0", + "solve_step_1", + "conj0", + "I_2" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.7976165857283725, + "γ": 0.9670467121715823, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 0, + "assume_Constraint_1_0": 1, + "solve_step_2": 0, + "assume_Constraint_2_2": 1, + "R_2": 0.019340934243431647, + "S_2": 0.9742071916025784, + "I_2": 0.0064518741539901295, + "assume_Constraint_1_2": 1, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.6188991280259752, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 0.8811008719740248, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.730389926810171, + "ub": 1, + "closed_upper_bound": false, + "original_width": 0.26961007318982905, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 0, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((solve_step_0 & ('γ' < 1.0)) & solve_step_2) & solve_step_1) & ('β' < 11822636082024679/12500000000000000)) & disj203) & (conj0 | (! solve_step_0))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 2475596512103901/4000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 11822636082024679/12500000000000000)))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 2475596512103901/4000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 11822636082024679/12500000000000000)))) & (((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 2475596512103901/4000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 11822636082024679/12500000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & ((assume_Constraint_2_4 | (I_4 < 0.0)) | (! disj11))) & ((assume_Constraint_1_4 | (! disj13)) | (! (I_4 < 9/50)))) & (disj11 | (! conj7))) & (disj13 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((conj459 | conj460) | (! disj203))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_4) | (! conj459))) & ((! assume_Constraint_1_4) | (! conj460))) & (! ('γ' < 73038992681017101/100000000000000000))) & (! ('β' < 2475596512103901/4000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "disj203", + "S_2", + "R_2", + "conj459", + "I_0", + "conj460", + "R_0", + "conj3", + "S_0", + "I_4", + "assume_Constraint_1_4", + "solve_step_0", + "disj11", + "assume_Constraint_2_4", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "S_4", + "disj13", + "conj7", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.7976165857283725, + "γ": 0.9670467121715823, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.019340934243431647, + "S_2": 0.9742071916025784, + "I_2": 0.0064518741539901295, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.005216463336056165, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.031902150174499835, + "S_4": 0.9641054608384975, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.7251628277875477, + "ub": 0.9573009852213669, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.3901949634050856, + "ub": 0.730389926810171, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_3) & solve_step_2) & solve_step_1) & ('γ' < 73038992681017101/100000000000000000)) & ('β' < 95730098522136687/100000000000000000)) & disj139) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('γ' < 39019496340508559/100000000000000000)) | ('β' < 72516282778754771/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 95730098522136687/100000000000000000)))) & ((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | ('γ' < 39019496340508559/100000000000000000)) | ('β' < 72516282778754771/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 95730098522136687/100000000000000000)))) & (((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | ('γ' < 39019496340508559/100000000000000000)) | ('β' < 72516282778754771/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 95730098522136687/100000000000000000)))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('γ' < 39019496340508559/100000000000000000)) | ('β' < 72516282778754771/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 95730098522136687/100000000000000000)))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 39019496340508559/100000000000000000)) | ('β' < 72516282778754771/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 95730098522136687/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (assume_Constraint_1_4 | (! conj286))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((assume_Constraint_2_6 | (I_6 < 0.0)) | (! disj20))) & ((assume_Constraint_1_6 | (! disj22)) | (! (I_6 < 9/50)))) & (disj20 | (! conj12))) & (disj22 | (! conj12))) & (conj12 | (! solve_step_3))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((conj285 | conj286) | (! disj139))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_6) | (! conj285))) & ((! assume_Constraint_1_6) | (! conj286))) & (! ('γ' < 39019496340508559/100000000000000000))) & (! ('β' < 72516282778754771/100000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "disj20", + "S_0", + "disj22", + "conj12", + "I_6", + "disj139", + "conj286", + "assume_Constraint_1_6", + "conj285", + "I_4", + "assume_Constraint_2_6", + "R_6", + "S_6", + "assume_Constraint_1_4", + "solve_step_0", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "solve_step_3", + "S_4", + "conj7", + "conj0", + "disj15" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.9202849897700541, + "γ": 0.4398746751943557, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.008797493503887114, + "S_2": 0.971778357202553, + "I_2": 0.01942414929355996, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.03703703703559962, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.02605374206432356, + "S_4": 0.936909220900077, + "assume_Constraint_2_6": 1, + "R_6": 0.059578920466679015, + "S_6": 0.8763927273523971, + "I_6": 0.06349386533259292, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.7320072576267181, + "ub": 0.9573009852213669, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.17959499059169148, + "ub": 0.3901949634050856, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_3) & solve_step_2) & solve_step_1) & ('β' < 95730098522136687/100000000000000000)) & ('γ' < 39019496340508559/100000000000000000)) & disj361) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('β' < 14640145152534363/20000000000000000)) | ('γ' < 17959499059169149/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 95730098522136687/100000000000000000))) | (! ('γ' < 39019496340508559/100000000000000000)))) & ((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | ('β' < 14640145152534363/20000000000000000)) | ('γ' < 17959499059169149/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 95730098522136687/100000000000000000))) | (! ('γ' < 39019496340508559/100000000000000000)))) & (((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | ('β' < 14640145152534363/20000000000000000)) | ('γ' < 17959499059169149/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 95730098522136687/100000000000000000))) | (! ('γ' < 39019496340508559/100000000000000000)))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('β' < 14640145152534363/20000000000000000)) | ('γ' < 17959499059169149/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('β' < 95730098522136687/100000000000000000))) | (! ('γ' < 39019496340508559/100000000000000000)))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('β' < 14640145152534363/20000000000000000)) | ('γ' < 17959499059169149/100000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('β' < 95730098522136687/100000000000000000))) | (! ('γ' < 39019496340508559/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (assume_Constraint_1_4 | (! conj881))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((assume_Constraint_2_6 | (I_6 < 0.0)) | (! disj20))) & ((assume_Constraint_1_6 | (! disj22)) | (! (I_6 < 9/50)))) & (disj20 | (! conj12))) & (disj22 | (! conj12))) & (conj12 | (! solve_step_3))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((conj880 | conj881) | (! disj361))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_6) | (! conj880))) & ((! assume_Constraint_1_6) | (! conj881))) & (! ('β' < 14640145152534363/20000000000000000))) & (! ('γ' < 17959499059169149/100000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "disj20", + "S_0", + "disj22", + "conj12", + "I_6", + "assume_Constraint_1_6", + "I_4", + "assume_Constraint_2_6", + "R_6", + "S_6", + "assume_Constraint_1_4", + "solve_step_0", + "disj361", + "conj881", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "solve_step_3", + "S_4", + "conj7", + "conj880", + "conj0", + "disj15" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.8242595557626652, + "γ": 0.2404586037676871, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.004809172075353743, + "S_2": 0.9736796607958994, + "I_2": 0.02151116712874703, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.045785165434158184, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.015345382101737498, + "S_4": 0.9389601975501245, + "assume_Constraint_2_6": 1, + "R_6": 0.04070166196329769, + "S_6": 0.8571478353770606, + "I_6": 0.09181283024429686, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.9573009852213669, + "ub": 1.4244502828678811, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.5438386807711181, + "ub": 0.730389926810171, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((solve_step_0 & solve_step_3) & solve_step_2) & solve_step_1) & ('γ' < 73038992681017101/100000000000000000)) & ('β' < 3561125707169703/2500000000000000)) & disj65) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('β' < 95730098522136687/100000000000000000)) | ('γ' < 106218492338109/195312500000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 3561125707169703/2500000000000000)))) & ((((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | ('β' < 95730098522136687/100000000000000000)) | ('γ' < 106218492338109/195312500000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 3561125707169703/2500000000000000)))) & (((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | ('β' < 95730098522136687/100000000000000000)) | ('γ' < 106218492338109/195312500000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 3561125707169703/2500000000000000)))) & ((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('β' < 95730098522136687/100000000000000000)) | ('γ' < 106218492338109/195312500000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 3561125707169703/2500000000000000)))) & ((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('β' < 95730098522136687/100000000000000000)) | ('γ' < 106218492338109/195312500000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('γ' < 73038992681017101/100000000000000000))) | (! ('β' < 3561125707169703/2500000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((assume_Constraint_2_6 | (I_6 < 0.0)) | (! disj20))) & ((assume_Constraint_1_6 | (! disj22)) | (! (I_6 < 9/50)))) & (disj20 | (! conj12))) & (disj22 | (! conj12))) & (conj12 | (! solve_step_3))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((conj98 | conj99) | (! disj65))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_6) | (! conj98))) & ((! assume_Constraint_1_6) | (! conj99))) & (! ('β' < 95730098522136687/100000000000000000))) & (! ('γ' < 106218492338109/195312500000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj65", + "R_0", + "conj3", + "disj20", + "S_0", + "disj22", + "conj12", + "conj98", + "conj99", + "I_6", + "assume_Constraint_1_6", + "I_4", + "assume_Constraint_2_6", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "solve_step_3", + "S_4", + "conj7", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.3845613046376926, + "γ": 0.5940487296989486, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.011880974593978973, + "S_2": 0.9625856861681739, + "I_2": 0.024921347745099735, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0535982559665715, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.041733774334746586, + "S_4": 0.8957831744031135, + "assume_Constraint_2_6": 1, + "R_6": 0.10931114965639896, + "S_6": 0.768513327355971, + "I_6": 0.13677731240795293, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.1, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 1, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 0, + "ub": 0, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((solve_step_0 & ((assume_Constraint_2_0 | (I_0 < 0.0)) | (! disj1))) & (disj1 | (! conj0))) & (conj0 | (! solve_step_0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & (! assume_Constraint_2_0))", + "symbols": [ + "assume_Constraint_2_0", + "I_0", + "solve_step_0", + "disj1", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.8, + "γ": 0.525, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "timestep": 0 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.4831792744470129, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.730389926810171, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & ('β' < 3/2)) & solve_step_1) & ('γ' < 73038992681017101/100000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('γ' < 73038992681017101/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & ((assume_Constraint_2_2 | (I_2 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! assume_Constraint_2_2)) & (! ('β' < 12079481861175323/25000000000000000)))", + "symbols": [ + "assume_Constraint_2_2", + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "disj2", + "R_0", + "disj6", + "conj3", + "S_0", + "assume_Constraint_2_0", + "solve_step_0", + "solve_step_1", + "conj0", + "I_2" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.8, + "γ": 0.525, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "solve_step_2": 0, + "assume_Constraint_2_2": 1, + "R_2": 0.010500000000000002, + "S_2": 0.9741600000000001, + "I_2": 0.019350000000000006, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.4831792744470129, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.730389926810171, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((solve_step_0 & ('β' < 3/2)) & solve_step_2) & solve_step_1) & ('γ' < 73038992681017101/100000000000000000)) & disj53) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 73038992681017101/100000000000000000)))) & ((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! ('γ' < 73038992681017101/100000000000000000)))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('β' < 12079481861175323/25000000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! ('γ' < 73038992681017101/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & ((assume_Constraint_2_4 | (I_4 < 0.0)) | (! disj11))) & ((assume_Constraint_1_4 | (! disj13)) | (! (I_4 < 9/50)))) & (disj11 | (! conj7))) & (disj13 | (! conj7))) & (conj7 | (! solve_step_2))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((conj62 | conj63) | (! disj53))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & ((! assume_Constraint_2_4) | (! conj62))) & ((! assume_Constraint_1_4) | (! conj63))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 12079481861175323/25000000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "S_2", + "R_2", + "I_0", + "R_0", + "conj3", + "S_0", + "I_4", + "assume_Constraint_1_4", + "solve_step_0", + "disj53", + "disj11", + "assume_Constraint_2_4", + "solve_step_1", + "I_2", + "solve_step_2", + "R_4", + "S_4", + "disj13", + "conj7", + "conj63", + "conj62", + "conj0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.2145556532682513, + "γ": 0.6893804735913341, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.013787609471826683, + "S_2": 0.9659517980652887, + "I_2": 0.020260592462884697, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0475005547265676, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.041868968879593765, + "S_4": 0.9182366241537979, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "β": { + "lb": 0.9458108865619743, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.730389926810171, + "ub": 1, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((((((((((((((solve_step_0 & ('γ' < 1.0)) & ('β' < 3/2)) & solve_step_3) & solve_step_2) & solve_step_1) & disj184) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_4 < 9/50)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 11822636082024679/12500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2)))))))) & ((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 11822636082024679/12500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4)))))))) & (((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 11822636082024679/12500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 0.0))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4)))))))) & (((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_6 < 0.0)) | (I_6 < 9/50)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 11822636082024679/12500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 0.0))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4)))))))) & ((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | ('γ' < 73038992681017101/100000000000000000)) | ('β' < 11822636082024679/12500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (I_2 < 0.0))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0)))))))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (assume_Constraint_2_4 | (! conj406))) & (assume_Constraint_1_4 | (! conj407))) & (disj14 | (! conj7))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & ((assume_Constraint_2_6 | (I_6 < 0.0)) | (! disj20))) & ((assume_Constraint_1_6 | (! disj22)) | (! (I_6 < 9/50)))) & (disj20 | (! conj12))) & (disj22 | (! conj12))) & (conj12 | (! solve_step_3))) & ((I_6 < 9/50) | (! (I_6 < 0.0)))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & ((conj406 | conj407) | (! disj184))) & ((! conj0) | (! ('γ' < 50000000000000003/1000000000000000000)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & ((! (I_0 < 0.0)) | (! (I_0 = 10000000000000001/1000000000000000000)))) & (((! assume_Constraint_2_4) | (! disj14)) | (! (I_4 < 0.0)))) & ((! assume_Constraint_2_6) | (! conj406))) & ((! assume_Constraint_1_6) | (! conj407))) & (! ('γ' < 73038992681017101/100000000000000000))) & (! ('β' < 11822636082024679/12500000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "I_0", + "R_0", + "conj3", + "disj20", + "S_0", + "disj22", + "conj12", + "I_6", + "assume_Constraint_1_6", + "assume_Constraint_2_6", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "solve_step_2", + "solve_step_3", + "disj14", + "I_2", + "conj0", + "disj15", + "R_2", + "S_2", + "I_4", + "assume_Constraint_1_4", + "disj184", + "assume_Constraint_2_4", + "conj406", + "conj407", + "R_4", + "S_4", + "conj7" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.4514401028003705, + "γ": 0.9317180238210782, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.01863436047642156, + "S_2": 0.9612614859645527, + "I_2": 0.02010415355902578, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.04326477428255511, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.056287430550169715, + "S_4": 0.9067591989149426, + "assume_Constraint_2_6": 1, + "R_6": 0.1314269656410609, + "S_6": 0.8045928952121731, + "I_6": 0.09270716320298923, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + } + ], + "false_boxes": [ + { + "type": "box", + "label": "false", + "bounds": { + "β": { + "lb": 1.1985604744993363, + "ub": 1.4244502828678811, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.29691934038555906, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 5, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & solve_step_3) & solve_step_2) & solve_step_1) & assume_Constraint_2_2) & assume_Constraint_2_4) & assume_Constraint_1_4) & assume_Constraint_2_6) & assume_Constraint_1_6) & ('β' < 3561125707169703/2500000000000000)) & ('γ' < 29691934038555907/100000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | ('β' < 2996401186248341/2500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('β' < 3561125707169703/2500000000000000))) | (! ('γ' < 29691934038555907/100000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (('β' < 3/2) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (disj14 | (! conj7))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & (disj23 | (! conj12))) & (disj24 | (! conj12))) & (conj12 | (! solve_step_3))) & (((I_6 < 9/50) | (! assume_Constraint_1_6)) | (! disj24))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & (((! assume_Constraint_2_2) | (! disj7)) | (! (I_2 < 0.0)))) & (((! assume_Constraint_2_4) | (! disj14)) | (! (I_4 < 0.0)))) & (((! assume_Constraint_2_6) | (! disj23)) | (! (I_6 < 0.0)))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 2996401186248341/2500000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "I_0", + "disj2", + "R_0", + "conj3", + "conj12", + "S_0", + "I_6", + "assume_Constraint_1_6", + "assume_Constraint_2_0", + "assume_Constraint_2_6", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "solve_step_2", + "solve_step_3", + "disj7", + "disj14", + "I_2", + "conj0", + "disj15", + "assume_Constraint_2_2", + "disj23", + "disj24", + "R_2", + "S_2", + "I_4", + "assume_Constraint_1_4", + "assume_Constraint_2_4", + "conj7", + "R_4", + "S_4" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "false", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.3275861631865786, + "γ": 0.09355863224510903, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 0, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.0018711726449021806, + "S_2": 0.9637137939689059, + "I_2": 0.03441503338619208, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.11605898225030835, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.008471234897196967, + "S_4": 0.8754697828524948, + "assume_Constraint_2_6": 1, + "R_6": 0.03134086620524429, + "S_6": 0.599187200205337, + "I_6": 0.38877992097750813, + "assume_Constraint_1_6": 0, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "false", + "bounds": { + "β": { + "lb": 1.4244502828678811, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "γ": { + "lb": 0.05, + "ub": 0.42633475134780274, + "closed_upper_bound": false, + "original_width": 0.9500000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 5, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((((((((((((((((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & ('β' < 3/2)) & solve_step_3) & solve_step_2) & solve_step_1) & assume_Constraint_2_2) & assume_Constraint_2_4) & assume_Constraint_1_4) & assume_Constraint_2_6) & assume_Constraint_1_6) & ('γ' < 1705339005391211/4000000000000000)) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & ((((((((((((((((((((((((I_0 < 0.0) | ('γ' < 50000000000000003/1000000000000000000)) | ('β' < 10000000000000001/100000000000000000)) | (I_2 < 0.0)) | (I_4 < 0.0)) | (I_6 < 0.0)) | ('β' < 3561125707169703/2500000000000000)) | (! (S_0 = 99000000000000011/100000000000000000))) | (! (R_0 = 0.0))) | (! (I_0 = 10000000000000001/1000000000000000000))) | (! ('γ' < 1.0))) | (! ('β' < 3/2))) | (! (S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))))) | (! (R_2 = (R_0 + (2.0 * ('γ' * I_0)))))) | (! (I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))))) | (! (I_4 < 9/50))) | (! (S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))))) | (! (R_4 = (R_2 + (2.0 * ('γ' * I_2)))))) | (! (I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))))) | (! (I_6 < 9/50))) | (! (S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))))) | (! (R_6 = (R_4 + (2.0 * ('γ' * I_4)))))) | (! (I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))))) | (! ('γ' < 1705339005391211/4000000000000000)))) & ((S_0 = 99000000000000011/100000000000000000) | (! conj0))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 10000000000000001/1000000000000000000) | (! conj0))) & (('γ' < 1.0) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((S_2 = (S_0 - (2.0 * (('β' * S_0) * I_0)))) | (! conj3))) & ((R_2 = (R_0 + (2.0 * ('γ' * I_0)))) | (! conj3))) & ((I_2 = (I_0 + (2.0 * ((-1.0 * ('γ' * I_0)) + (('β' * S_0) * I_0))))) | (! conj3))) & (disj14 | (! conj7))) & (disj15 | (! conj7))) & (conj7 | (! solve_step_2))) & (((I_4 < 9/50) | (! assume_Constraint_1_4)) | (! disj15))) & ((S_4 = (S_2 - (2.0 * (('β' * S_2) * I_2)))) | (! conj7))) & ((R_4 = (R_2 + (2.0 * ('γ' * I_2)))) | (! conj7))) & ((I_4 = (I_2 + (2.0 * ((-1.0 * ('γ' * I_2)) + (('β' * S_2) * I_2))))) | (! conj7))) & (disj23 | (! conj12))) & (disj24 | (! conj12))) & (conj12 | (! solve_step_3))) & (((I_6 < 9/50) | (! assume_Constraint_1_6)) | (! disj24))) & ((S_6 = (S_4 - (2.0 * (('β' * S_4) * I_4)))) | (! conj12))) & ((R_6 = (R_4 + (2.0 * ('γ' * I_4)))) | (! conj12))) & ((I_6 = (I_4 + (2.0 * ((-1.0 * ('γ' * I_4)) + (('β' * S_4) * I_4))))) | (! conj12))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & ((! conj0) | (! ('β' < 10000000000000001/100000000000000000)))) & (((! assume_Constraint_2_2) | (! disj7)) | (! (I_2 < 0.0)))) & (((! assume_Constraint_2_4) | (! disj14)) | (! (I_4 < 0.0)))) & (((! assume_Constraint_2_6) | (! disj23)) | (! (I_6 < 0.0)))) & (! ('γ' < 50000000000000003/1000000000000000000))) & (! ('β' < 3561125707169703/2500000000000000)))", + "symbols": [ + "'β'", + "'γ'", + "I_0", + "disj2", + "R_0", + "conj3", + "conj12", + "S_0", + "I_6", + "assume_Constraint_1_6", + "assume_Constraint_2_0", + "assume_Constraint_2_6", + "R_6", + "S_6", + "solve_step_0", + "solve_step_1", + "solve_step_2", + "solve_step_3", + "disj7", + "disj14", + "I_2", + "conj0", + "disj15", + "assume_Constraint_2_2", + "disj23", + "disj24", + "R_2", + "S_2", + "I_4", + "assume_Constraint_1_4", + "assume_Constraint_2_4", + "conj7", + "R_4", + "S_4" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.18, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + }, + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "false", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.4622251414339404, + "γ": 0.3193443522643878, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 0, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.006386887045287755, + "S_2": 0.9610479421996081, + "I_2": 0.032565170755104275, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.10325352086269658, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.027355232103185252, + "S_4": 0.8693912470341183, + "assume_Constraint_2_6": 1, + "R_6": 0.10140163292870022, + "S_6": 0.6206260017675915, + "I_6": 0.27989922319718535, + "assume_Constraint_1_6": 0, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + } + ], + "unknown_points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2361189144064268, + "γ": 0.4851812849650065, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 0, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.00970362569930013, + "S_2": 0.9853248454947529, + "I_2": 0.004971528805947122, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0031518813133828752, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.014659005396557137, + "S_4": 0.982963468422513, + "assume_Constraint_2_6": 1, + "R_6": 0.018026357416637252, + "S_6": 0.9813862699931654, + "I_6": 0.004729079742730584, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.007095506775000215, + "assume_Constraint_1_8": 1, + "R_8": 0.023078729203984866, + "S_8": 0.9790198429608957, + "I_10": 0.010646091656937022, + "assume_Constraint_2_10": 1, + "R_10": 0.030659303057079916, + "S_10": 0.9754692580789589, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.7976165857283725, + "γ": 0.9670467121715823, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.019340934243431647, + "S_2": 0.9742071916025784, + "I_2": 0.0064518741539901295, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.005216463336056165, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.031902150174499835, + "S_4": 0.9641054608384975, + "assume_Constraint_2_6": 1, + "R_6": 0.04233507684661216, + "S_6": 0.9557548330937091, + "I_6": 0.016004392278482837, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.9202849897700541, + "γ": 0.4398746751943557, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.008797493503887114, + "S_2": 0.971778357202553, + "I_2": 0.01942414929355996, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.03703703703559962, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.02605374206432356, + "S_4": 0.936909220900077, + "assume_Constraint_2_6": 1, + "R_6": 0.059578920466679015, + "S_6": 0.8763927273523971, + "I_6": 0.06349386533259292, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.1388147504721652, + "assume_Constraint_1_8": 1, + "R_8": 0.10976297168332216, + "S_8": 0.8010005286410231, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.2145556532682513, + "γ": 0.6893804735913341, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.013787609471826683, + "S_2": 0.9659517980652887, + "I_2": 0.020260592462884697, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0475005547265676, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.041868968879593765, + "S_4": 0.9182366241537979, + "assume_Constraint_2_6": 1, + "R_6": 0.105434511596909, + "S_6": 0.8201836765812586, + "I_6": 0.10565486559924872, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.16353104288103637, + "assume_Constraint_1_8": 1, + "R_8": 0.26108166038322916, + "S_8": 0.6370372300191679, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.4562499999999998, + "γ": 0.9618521729775389, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.019237043459550778, + "S_2": 0.9611662500000001, + "I_2": 0.019596706540449222, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.043596605789620206, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.05705961437639708, + "S_4": 0.906164678932876, + "assume_Constraint_2_6": 1, + "R_6": 0.14026037016146856, + "S_6": 0.7920206758009323, + "I_6": 0.10092540016237146, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.13499999999999998, + "assume_Constraint_1_8": 1, + "R_8": 0.36288793066054204, + "S_8": 0.5908879155523039, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.2145556532682513, + "γ": 0.6893804735913341, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.013787609471826683, + "S_2": 0.9659517980652887, + "I_2": 0.020260592462884697, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0475005547265676, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.041868968879593765, + "S_4": 0.9182366241537979, + "assume_Constraint_2_6": 1, + "R_6": 0.105434511596909, + "S_6": 0.8201836765812586, + "I_6": 0.10565486559924872, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.16353104288103637, + "assume_Constraint_1_8": 1, + "R_8": 0.26108166038322916, + "S_8": 0.6370372300191679, + "I_10": 0.2570147723048871, + "assume_Constraint_2_10": 1, + "R_10": 0.45545039213150945, + "S_10": 0.35239713906825576, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.9202849897700541, + "γ": 0.4398746751943557, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.008797493503887114, + "S_2": 0.971778357202553, + "I_2": 0.01942414929355996, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.03703703703559962, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.02605374206432356, + "S_4": 0.936909220900077, + "assume_Constraint_2_6": 1, + "R_6": 0.059578920466679015, + "S_6": 0.8763927273523971, + "I_6": 0.06349386533259292, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.1388147504721652, + "assume_Constraint_1_8": 1, + "R_8": 0.10976297168332216, + "S_8": 0.8010005286410231, + "I_10": 0.30657853278447955, + "assume_Constraint_2_10": 1, + "R_10": 0.18835087191999095, + "S_10": 0.612273051186299, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 1.3980893504168195, + "γ": 0.8303393600225921, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.01660678720045184, + "S_2": 0.962317830861747, + "I_2": 0.021075381937801188, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.04278594001331646, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.05179734510138291, + "S_4": 0.9054167148853007, + "assume_Constraint_2_6": 1, + "R_6": 0.12743925432697908, + "S_6": 0.8072770201378697, + "I_6": 0.10065179357697537, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.13147031523673558, + "assume_Constraint_1_8": 1, + "R_8": 0.3294939302755211, + "S_8": 0.6347159063600102, + "I_10": 0.1690148704634783, + "assume_Constraint_2_10": 1, + "R_10": 0.585748484450335, + "S_10": 0.4182789288606443, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.7976165857283725, + "γ": 0.9670467121715823, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.019340934243431647, + "S_2": 0.9742071916025784, + "I_2": 0.0064518741539901295, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.005216463336056165, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.031902150174499835, + "S_4": 0.9641054608384975, + "assume_Constraint_2_6": 1, + "R_6": 0.04233507684661216, + "S_6": 0.9557548330937091, + "I_6": 0.016004392278482837, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.026468899479976625, + "assume_Constraint_1_8": 1, + "R_8": 0.08828765191815852, + "S_8": 0.9207845060093154, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.8543406840723031, + "γ": 0.9577178098368855, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.01915435619673771, + "S_2": 0.9730840544553685, + "I_2": 0.007761589347893895, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.007772979915011391, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.03417473660496629, + "S_4": 0.9600020217215173, + "assume_Constraint_2_6": 1, + "R_6": 0.049720696434989074, + "S_6": 0.9464538256789992, + "I_6": 0.0218538033293598, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.054025331610415, + "assume_Constraint_1_8": 1, + "R_8": 0.10649987867228024, + "S_8": 0.8900721654748112, + "I_10": 0.04328425601191195, + "assume_Constraint_2_10": 1, + "R_10": 0.22533541603277818, + "S_10": 0.8520073864276355, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.31553834187644475, + "γ": 0.6028168155332639, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.012056336310665279, + "S_2": 0.9837523408308465, + "I_2": 0.00419132285848833, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0029949055320840057, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.017222197772800447, + "S_4": 0.9810873614525505, + "assume_Constraint_2_6": 1, + "R_6": 0.02108766954862037, + "S_6": 0.979089315607027, + "I_6": 0.004992951377607473, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.008323989919576903, + "assume_Constraint_1_8": 1, + "R_8": 0.027531983875541028, + "S_8": 0.9757582770650576, + "I_10": 0.013877324840767778, + "assume_Constraint_2_10": 1, + "R_10": 0.0382756109287604, + "S_10": 0.9702049421438667, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.14955543091885065, + "γ": 0.48198625304289183, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.009639725060857836, + "S_2": 0.9870388024678068, + "I_2": 0.0033214724713354067, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0030915906229768398, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.013033730561100909, + "S_4": 0.9858654355527325, + "assume_Constraint_2_6": 1, + "R_6": 0.016316914802774935, + "S_6": 0.9846493763132955, + "I_6": 0.004307649862413905, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.00600203895019174, + "assume_Constraint_1_8": 1, + "R_8": 0.02089152052250271, + "S_8": 0.9829549872255177, + "I_10": 0.008362906157705097, + "assume_Constraint_2_10": 1, + "R_10": 0.02726552086806232, + "S_10": 0.9805941200180043, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.20855638764869036, + "γ": 0.4851812849650065, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.00970362569930013, + "S_2": 0.985870583524556, + "I_2": 0.0044257907761439405, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0025772364648035196, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.014112615509095355, + "S_4": 0.9840287718794886, + "assume_Constraint_2_6": 1, + "R_6": 0.016866038481950184, + "S_6": 0.9829221911214049, + "I_6": 0.003683817222887202, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.00526552744265744, + "assume_Constraint_1_8": 1, + "R_8": 0.0208016909173464, + "S_8": 0.9813404809016346, + "I_10": 0.007526372122134888, + "assume_Constraint_2_10": 1, + "R_10": 0.026427183348020914, + "S_10": 0.9790796362221571, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.5307994540258447, + "γ": 0.08490902183229221, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.0016981804366458441, + "S_2": 0.9794901708102884, + "I_2": 0.01881164875306588, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.03521977300015491, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.0050073134241958835, + "S_4": 0.9597729135756493, + "assume_Constraint_2_6": 1, + "R_6": 0.011456983506456131, + "S_6": 0.9261817740172209, + "I_6": 0.06355165599306548, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.09863599208695231, + "assume_Constraint_1_8": 1, + "R_8": 0.022729239809032003, + "S_8": 0.8745377478008843, + "I_10": 0.17397739084437924, + "assume_Constraint_2_10": 1, + "R_10": 0.03983489844535148, + "S_10": 0.7823658062756291, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.23186317478137677, + "γ": 0.7004026360130128, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.014008052720260256, + "S_2": 0.9854091091393289, + "I_2": 0.0011825839563541682, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0018629952577879179, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.015735547538917066, + "S_4": 0.9847286978378951, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.14955543091885065, + "γ": 0.48198625304289183, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.009639725060857836, + "S_2": 0.9870388024678068, + "I_2": 0.0033214724713354067, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0030915906229768398, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.013033730561100909, + "S_4": 0.9858654355527325, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.6479815404907623, + "γ": 0.2824719300032012, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.005649438600064023, + "S_2": 0.977169965498283, + "I_2": 0.017180595901653075, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.029200641333873272, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.01552992017370443, + "S_4": 0.9552694384924224, + "assume_Constraint_2_6": 1, + "R_6": 0.03282010907994562, + "S_6": 0.9184375616263433, + "I_6": 0.053970082354412474, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.13294023013302306, + "assume_Constraint_1_8": 1, + "R_8": 0.06557992260645223, + "S_8": 0.858188096491134, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.14955543091885065, + "γ": 0.48198625304289183, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.009639725060857836, + "S_2": 0.9870388024678068, + "I_2": 0.0033214724713354067, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0030915906229768398, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.013033730561100909, + "S_4": 0.9858654355527325, + "assume_Constraint_2_6": 1, + "R_6": 0.016316914802774935, + "S_6": 0.9846493763132955, + "I_6": 0.004307649862413905, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.00600203895019174, + "assume_Constraint_1_8": 1, + "R_8": 0.02089152052250271, + "S_8": 0.9829549872255177, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.20855638764869036, + "γ": 0.4851812849650065, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.00970362569930013, + "S_2": 0.985870583524556, + "I_2": 0.0044257907761439405, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0025772364648035196, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.014112615509095355, + "S_4": 0.9840287718794886, + "assume_Constraint_2_6": 1, + "R_6": 0.016866038481950184, + "S_6": 0.9829221911214049, + "I_6": 0.003683817222887202, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.00526552744265744, + "assume_Constraint_1_8": 1, + "R_8": 0.0208016909173464, + "S_8": 0.9813404809016346, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.23186317478137677, + "γ": 0.7004026360130128, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.014008052720260256, + "S_2": 0.9854091091393289, + "I_2": 0.0011825839563541682, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0018629952577879179, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.015735547538917066, + "S_4": 0.9847286978378951, + "assume_Constraint_2_6": 1, + "R_6": 0.018456973478883892, + "S_6": 0.9836568052072658, + "I_6": 0.0029348878884171386, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.14955543091885065, + "γ": 0.48198625304289183, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.009639725060857836, + "S_2": 0.9870388024678068, + "I_2": 0.0033214724713354067, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0030915906229768398, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.013033730561100909, + "S_4": 0.9858654355527325, + "assume_Constraint_2_6": 1, + "R_6": 0.016316914802774935, + "S_6": 0.9846493763132955, + "I_6": 0.004307649862413905, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.20855638764869036, + "γ": 0.4851812849650065, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.00970362569930013, + "S_2": 0.985870583524556, + "I_2": 0.0044257907761439405, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.0025772364648035196, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.014112615509095355, + "S_4": 0.9840287718794886, + "assume_Constraint_2_6": 1, + "R_6": 0.016866038481950184, + "S_6": 0.9829221911214049, + "I_6": 0.003683817222887202, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.36275363772063973, + "γ": 0.543722088245647, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.010874441764912939, + "S_2": 0.9828174779731315, + "I_2": 0.006308080261955729, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.00875678248419896, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.0191185199547667, + "S_4": 0.9779078508428316, + "assume_Constraint_2_6": 1, + "R_6": 0.0315019893707456, + "S_6": 0.9708226885514379, + "I_6": 0.01584194477559258, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.36275363772063973, + "γ": 0.5109987782699091, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.010219975565398182, + "S_2": 0.9828174779731315, + "I_2": 0.006962546461470486, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.005751034183204123, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.017526800636315978, + "S_4": 0.9776630248753035, + "assume_Constraint_2_6": 1, + "R_6": 0.023967944869081565, + "S_6": 0.9730184139584312, + "I_6": 0.010395645100076466, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.018791304938224902, + "assume_Constraint_1_8": 1, + "R_8": 0.035611041979822344, + "S_8": 0.9646227541202828, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2361189144064268, + "γ": 0.5341864331213618, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.010683728662427236, + "S_2": 0.9853248454947529, + "I_2": 0.003991425842820016, + "assume_Constraint_1_2": 1, + "solve_step_4": 0, + "I_4": 0.005362755969639432, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.0160048519604278, + "S_4": 0.9833443285180207, + "assume_Constraint_2_6": 1, + "R_6": 0.02338408384123717, + "S_6": 0.9806572078127059, + "I_6": 0.008049876674954142, + "assume_Constraint_1_6": 1, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.2361189144064268, + "γ": 0.4790628455559971, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.009581256911119941, + "S_2": 0.9853248454947529, + "I_2": 0.00509389759412731, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0032133317282202786, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.014593045292583965, + "S_4": 0.9829065276968114, + "assume_Constraint_2_6": 1, + "R_6": 0.017986727484822707, + "S_6": 0.9812986654007106, + "I_6": 0.0048211940243210495, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.007233586129939583, + "assume_Constraint_1_8": 1, + "R_8": 0.023078514355743793, + "S_8": 0.978886273295092, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.8242595557626652, + "γ": 0.2404586037676871, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 0, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.004809172075353743, + "S_2": 0.9736796607958994, + "I_2": 0.02151116712874703, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.045785165434158184, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.015345382101737498, + "S_4": 0.9389601975501245, + "assume_Constraint_2_6": 1, + "R_6": 0.04070166196329769, + "S_6": 0.8571478353770606, + "I_6": 0.09181283024429686, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.2042675727808016, + "assume_Constraint_1_8": 0, + "R_8": 0.10017427541327464, + "S_8": 0.7003508422272899, + "I_10": 0.27513939732357734, + "assume_Constraint_2_10": 1, + "R_10": 0.20078828823756514, + "S_10": 0.4540940336367882, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.23186317478137677, + "γ": 0.7004026360130128, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.014008052720260256, + "S_2": 0.9854091091393289, + "I_2": 0.0011825839563541682, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.0018629952577879179, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.015735547538917066, + "S_4": 0.9847286978378951, + "assume_Constraint_2_6": 1, + "R_6": 0.018456973478883892, + "S_6": 0.9836568052072658, + "I_6": 0.0029348878884171386, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.004623504478377032, + "assume_Constraint_1_8": 1, + "R_8": 0.022744198578917994, + "S_8": 0.981968188617306, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + }, + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "β": 0.8267749429416694, + "γ": 0.281412417779607, + "I_0": 0.01, + "solve_step_0": 1, + "R_0": 0, + "S_0": 0.9900000000000001, + "assume_Constraint_1": 1, + "assume_Constraint_1_0": 1, + "solve_step_2": 1, + "assume_Constraint_2_2": 1, + "R_2": 0.00562824835559214, + "S_2": 0.9736298561297551, + "I_2": 0.020741895514652917, + "assume_Constraint_1_2": 1, + "solve_step_4": 1, + "I_4": 0.03920275741439347, + "assume_Constraint_1_4": 1, + "assume_Constraint_2_4": 1, + "R_4": 0.017493421887813065, + "S_4": 0.9400453534716032, + "assume_Constraint_2_6": 1, + "R_6": 0.040241192648435675, + "S_6": 0.8892154936346534, + "I_6": 0.09614258471999478, + "assume_Constraint_1_6": 1, + "assume_Constraint_2_8": 1, + "I_8": 0.1491230246996046, + "assume_Constraint_1_8": 1, + "R_8": 0.10977921811187177, + "S_8": 0.7517468493595841, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 2, + 4, + 6, + 8, + 10 + ] + }, + "simulation": null + } + ] + }, + "timing": { + "start_time": "2024-11-05T15:59:08.225982", + "end_time": null, + "total_time": null, + "solver_time": null, + "encoding_time": null, + "progress_timeseries": [ + [ + "2024-11-05T15:59:09.257040", + 0.350979503964705 + ], + [ + "2024-11-05T15:59:10.270319", + 0.45088102390177104 + ], + [ + "2024-11-05T15:59:11.296346", + 0.507052064290881 + ], + [ + "2024-11-05T15:59:12.308988", + 0.5291419648286021 + ], + [ + "2024-11-05T15:59:13.357440", + 0.549966679916791 + ], + [ + "2024-11-05T15:59:15.392774", + 0.8623043976036491 + ] + ], + "additional_time": {} + }, + "contracted_model": { + "header": { + "name": "SIR (relative)", + "schema_": "https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "This is a model from equations", + "model_version": "0.1" + }, + "properties": null, + "model": { + "states": [ + { + "id": "I", + "name": "I", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "R", + "name": "R", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "S", + "name": "S", + "description": null, + "grounding": null, + "units": null + } + ], + "transitions": [ + { + "id": "t0", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "grounding": null, + "properties": null + }, + { + "id": "t1", + "input": [ + "I" + ], + "output": [ + "R" + ], + "grounding": null, + "properties": null + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t0", + "expression": "I*β*S", + "expression_mathml": "IβS" + }, + { + "target": "t1", + "expression": "γ*I", + "expression_mathml": "γI" + } + ], + "initials": [ + { + "target": "S", + "expression": "0.99", + "expression_mathml": "0.98999999999999999" + }, + { + "target": "I", + "expression": "0.01", + "expression_mathml": "0.01" + }, + { + "target": "R", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "β", + "name": "β", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1, + "maximum": 1.5 + } + }, + "units": null + }, + { + "id": "γ", + "name": "γ", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.05, + "maximum": 1 + } + }, + "units": null + } + ], + "observables": [], + "time": null + }, + "typing": null, + "span": [] + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + }, + "id": "12a5009e-7381-4df7-ad79-143101f6072e", + "createdOn": "2024-11-05T15:50:33.376+00:00", + "updatedOn": "2024-11-05T15:50:55.098+00:00", + "name": "SIR (relative)", + "fileNames": [], + "temporary": false, + "publicAsset": false + }, + "modelConfigurationId": "7db5572f-83e3-4d99-9d60-0d3d81880829" +} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/response2-issue51.json b/resources/amr/petrinet/terrarium-tests/response2-issue51.json new file mode 100644 index 00000000..010a8917 --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/response2-issue51.json @@ -0,0 +1,491 @@ +{ + "id": "xyz", + "model": { + "name": "model_b4c45491-3081-41aa-a3be-a784706839e0", + "init_values": {}, + "parameter_bounds": {}, + "petrinet": { + "header": { + "name": "SIR (relative)", + "schema_": "https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "This is a model from equations", + "model_version": "0.1" + }, + "properties": null, + "model": { + "states": [ + { + "id": "I", + "name": "I", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "R", + "name": "R", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "S", + "name": "S", + "description": null, + "grounding": null, + "units": null + } + ], + "transitions": [ + { + "id": "t0", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "grounding": null, + "properties": null + }, + { + "id": "t1", + "input": [ + "I" + ], + "output": [ + "R" + ], + "grounding": null, + "properties": null + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t0", + "expression": "I*β*S", + "expression_mathml": "IβS" + }, + { + "target": "t1", + "expression": "γ*I", + "expression_mathml": "γI" + } + ], + "initials": [ + { + "target": "S", + "expression": "0.99", + "expression_mathml": "0.98999999999999999" + }, + { + "target": "I", + "expression": "0.01", + "expression_mathml": "0.01" + }, + { + "target": "R", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "β", + "name": "β", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1, + "maximum": 1.5 + } + }, + "units": null + }, + { + "id": "γ", + "name": "γ", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.05, + "maximum": 1 + } + }, + "units": null + } + ], + "observables": [], + "time": null + }, + "typing": null, + "span": [] + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + }, + "id": "4cd3210d-b095-4296-b27a-05368ddb799a", + "createdOn": "2024-11-05T15:50:33.376+00:00", + "updatedOn": "2024-11-06T21:04:46.375+00:00", + "name": "SIR (relative)", + "fileNames": [], + "temporary": false, + "publicAsset": false + } + }, + "progress": { + "progress": 1, + "coverage_of_search_space": 0, + "coverage_of_representable_space": 0 + }, + "request": { + "query": null, + "constraints": [ + { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 4, + "ub": 8, + "closed_upper_bound": true, + "original_width": 4, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 0.1, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + }, + { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 10, + "closed_upper_bound": true, + "original_width": 10, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + ], + "parameters": [ + { + "name": "β", + "interval": { + "lb": 0.1, + "ub": 1.5, + "closed_upper_bound": false, + "original_width": 1.4000000000000001, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "all" + }, + { + "name": "γ", + "interval": { + "lb": 0.05, + "ub": 1, + "closed_upper_bound": false, + "original_width": 0.95, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "all" + } + ], + "config": { + "tolerance": 0.05, + "queue_timeout": 1, + "number_of_processes": 1, + "wait_timeout": null, + "wait_action_timeout": 0.05, + "solver": "dreal", + "num_steps": 2, + "step_size": 1, + "num_initial_boxes": 1, + "solver_timeout": null, + "initial_state_tolerance": 0, + "save_smtlib": null, + "dreal_precision": 0.1, + "dreal_log_level": "off", + "constraint_noise": 0, + "dreal_mcts": true, + "substitute_subformulas": false, + "normalization_constant": 1, + "use_compartmental_constraints": false, + "compartmental_constraint_noise": 0.01, + "normalize": false, + "simplify_query": false, + "series_approximation_threshold": null, + "profile": false, + "taylor_series_order": null, + "corner_points": false, + "verbosity": 20, + "use_transition_symbols": false, + "uniform_box_splits": false, + "dreal_prefer_parameters": null, + "point_based_evaluation": false, + "prioritize_box_entropy": true, + "mode": "mode_smt", + "random_seed": 0 + }, + "structure_parameters": [ + { + "name": "schedules", + "interval": { + "lb": -1.7976931348623157e+308, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": null, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "any", + "schedules": [ + { + "timepoints": [ + 0, + 1, + 3, + 5, + 6, + 8, + 10 + ] + } + ] + } + ] + }, + "done": true, + "error": false, + "error_message": null, + "parameter_space": { + "num_dimensions": 3, + "true_boxes": [], + "false_boxes": [], + "unknown_points": [] + }, + "timing": { + "start_time": "2024-11-07T15:27:45.126533", + "end_time": null, + "total_time": null, + "solver_time": null, + "encoding_time": null, + "progress_timeseries": [], + "additional_time": {} + }, + "contracted_model": { + "header": { + "name": "SIR (relative)", + "schema_": "https://github.com/DARPA-ASKEM/Model-Representations/blob/main/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "This is a model from equations", + "model_version": "0.1" + }, + "properties": null, + "model": { + "states": [ + { + "id": "I", + "name": "I", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "R", + "name": "R", + "description": null, + "grounding": null, + "units": null + }, + { + "id": "S", + "name": "S", + "description": null, + "grounding": null, + "units": null + } + ], + "transitions": [ + { + "id": "t0", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "grounding": null, + "properties": null + }, + { + "id": "t1", + "input": [ + "I" + ], + "output": [ + "R" + ], + "grounding": null, + "properties": null + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "t0", + "expression": "I*β*S", + "expression_mathml": "IβS" + }, + { + "target": "t1", + "expression": "γ*I", + "expression_mathml": "γI" + } + ], + "initials": [ + { + "target": "S", + "expression": "0.99", + "expression_mathml": "0.98999999999999999" + }, + { + "target": "I", + "expression": "0.01", + "expression_mathml": "0.01" + }, + { + "target": "R", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "β", + "name": "β", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.1, + "maximum": 1.5 + } + }, + "units": null + }, + { + "id": "γ", + "name": "γ", + "description": null, + "value": 1, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.05, + "maximum": 1 + } + }, + "units": null + } + ], + "observables": [], + "time": null + }, + "typing": null, + "span": [] + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + }, + "id": "4cd3210d-b095-4296-b27a-05368ddb799a", + "createdOn": "2024-11-05T15:50:33.376+00:00", + "updatedOn": "2024-11-06T21:04:46.375+00:00", + "name": "SIR (relative)", + "fileNames": [], + "temporary": false, + "publicAsset": false + }, + "modelConfigurationId": "78f842cc-3a32-44e4-9334-e2fab4aa22da" +} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/response3-issue51.json b/resources/amr/petrinet/terrarium-tests/response3-issue51.json new file mode 100644 index 00000000..45c39eb0 --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/response3-issue51.json @@ -0,0 +1,1473 @@ +{ + "id": "xyz", + "model": { + "name": "model_d209c26f-f79e-4692-913f-292962e85821", + "init_values": {}, + "parameter_bounds": {}, + "petrinet": { + "header": { + "name": "SIR", + "schema_": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.6/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "Basic epidemiological model with S, I, R compartments", + "model_version": "0.1" + }, + "properties": {}, + "model": { + "states": [ + { + "id": "S", + "name": "Susceptible", + "description": null, + "grounding": { + "identifiers": { + "ido": "0000514" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "I", + "name": "Infected", + "description": null, + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "R", + "name": "Recovered", + "description": null, + "grounding": { + "identifiers": { + "ido": "0000592" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + } + ], + "transitions": [ + { + "id": "inf", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "grounding": null, + "properties": { + "name": "inf", + "description": null, + "grounding": null + } + }, + { + "id": "rec", + "input": [ + "I" + ], + "output": [ + "R" + ], + "grounding": null, + "properties": { + "name": "rec", + "description": null, + "grounding": null + } + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "inf", + "expression": "0.004*I*S*beta", + "expression_mathml": "0.0040000000000000001ISbeta" + }, + { + "target": "rec", + "expression": "I*gamma", + "expression_mathml": "Igamma" + } + ], + "initials": [ + { + "target": "S", + "expression": "2000.0", + "expression_mathml": "2000.0" + }, + { + "target": "I", + "expression": "1.0", + "expression_mathml": "1.0" + }, + { + "target": "R", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "beta", + "name": "β", + "description": "infection rate", + "value": 0.04, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.03, + "maximum": 0.05 + } + }, + "units": { + "expression": "1/(day*person)", + "expression_mathml": "1dayperson" + } + }, + { + "id": "gamma", + "name": "γ", + "description": "recovery rate", + "value": 0.02, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.01, + "maximum": 0.03 + } + }, + "units": { + "expression": "1/day", + "expression_mathml": "day-1" + } + } + ], + "observables": [], + "time": { + "id": "t", + "units": { + "expression": "day", + "expression_mathml": "day" + } + } + }, + "typing": null, + "span": null + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + }, + "id": "73e7e950-9d43-4304-96f8-f4af16cfd249", + "createdOn": "2024-08-28T00:38:18.290+00:00", + "updatedOn": "2024-10-30T19:14:48.672+00:00", + "name": "SIR", + "fileNames": [], + "temporary": false, + "publicAsset": false + } + }, + "progress": { + "progress": 1, + "coverage_of_search_space": 1, + "coverage_of_representable_space": 0 + }, + "request": { + "query": null, + "constraints": [ + { + "soft": true, + "name": "Constraint 1", + "timepoints": { + "lb": 24, + "ub": 27, + "closed_upper_bound": true, + "original_width": 3, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": -1.7976931348623157e+308, + "ub": 1000, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + }, + { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + ], + "parameters": [ + { + "name": "beta", + "interval": { + "lb": 0.05, + "ub": 0.05, + "closed_upper_bound": true + }, + "label": "all" + }, + { + "name": "gamma", + "interval": { + "lb": 0.01, + "ub": 0.01, + "closed_upper_bound": true + }, + "label": "all" + } + ], + "config": { + "tolerance": 0.2, + "queue_timeout": 1, + "number_of_processes": 1, + "wait_timeout": null, + "wait_action_timeout": 0.05, + "solver": "dreal", + "num_steps": 2, + "step_size": 1, + "num_initial_boxes": 1, + "solver_timeout": null, + "initial_state_tolerance": 0, + "save_smtlib": null, + "dreal_precision": 0.1, + "dreal_log_level": "off", + "constraint_noise": 0, + "dreal_mcts": true, + "substitute_subformulas": false, + "normalization_constant": 1, + "use_compartmental_constraints": false, + "compartmental_constraint_noise": 0.01, + "normalize": false, + "simplify_query": false, + "series_approximation_threshold": null, + "profile": false, + "taylor_series_order": null, + "corner_points": false, + "verbosity": 0, + "use_transition_symbols": false, + "uniform_box_splits": false, + "dreal_prefer_parameters": [], + "point_based_evaluation": false, + "prioritize_box_entropy": true, + "mode": "mode_smt", + "random_seed": 0 + }, + "structure_parameters": [ + { + "name": "schedules", + "interval": { + "lb": -1.7976931348623157e+308, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": null, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "label": "any", + "schedules": [ + { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + } + ] + } + ] + }, + "done": true, + "error": false, + "error_message": null, + "parameter_space": { + "num_dimensions": 3, + "true_boxes": [ + { + "type": "box", + "label": "true", + "bounds": { + "beta": { + "lb": 0.03, + "ub": 0.05, + "closed_upper_bound": false, + "original_width": 0.020000000000000007, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "gamma": { + "lb": 0.01, + "ub": 0.03, + "closed_upper_bound": false, + "original_width": 0.02, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 0, + "ub": 0, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "((((((solve_step_0 & ((assume_Constraint_2_0 | (I_0 < 0.0)) | (! disj1))) & (disj1 | (! conj0))) & (conj0 | (! solve_step_0))) & ((I_0 = 1.0) | (! conj0))) & ((! (I_0 < 0.0)) | (! (I_0 = 1.0)))) & (! assume_Constraint_2_0))", + "symbols": [ + "assume_Constraint_2_0", + "solve_step_0", + "disj1", + "conj0", + "I_0" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "beta": 0.04, + "gamma": 0.02, + "timer_t_0": 0, + "solve_step_0": 1, + "S_0": 2000, + "I_0": 1, + "R_0": 0, + "timestep": 0 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "beta": { + "lb": 0.03, + "ub": 0.05, + "closed_upper_bound": false, + "original_width": 0.020000000000000007, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "gamma": { + "lb": 0.01, + "ub": 0.03, + "closed_upper_bound": false, + "original_width": 0.02, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 1, + "ub": 1, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & (gamma < 29999999999999999/1000000000000000000)) & (beta < 50000000000000003/1000000000000000000)) & solve_step_1) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((I_0 < 0.0) | (gamma < 10000000000000001/1000000000000000000)) | (beta < 29999999999999999/1000000000000000000)) | (! (R_0 = 0.0))) | (! (I_0 = 1.0))) | (! (S_0 = 2000.0))) | (! (gamma < 29999999999999999/1000000000000000000))) | (! (beta < 50000000000000003/1000000000000000000))) | (! (I_7 < 0.0))) | (! (R_7 = (R_0 + (7.0 * (gamma * I_0)))))) | (! (I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0))))))))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 1.0) | (! conj0))) & ((S_0 = 2000.0) | (! conj0))) & ((assume_Constraint_2_7 | (I_7 < 0.0)) | (! disj6))) & (disj6 | (! conj3))) & (conj3 | (! solve_step_1))) & ((R_7 = (R_0 + (7.0 * (gamma * I_0)))) | (! conj3))) & ((I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))) | (! conj3))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (! (gamma < 10000000000000001/1000000000000000000))) & (! (beta < 29999999999999999/1000000000000000000))) & (! assume_Constraint_2_7))", + "symbols": [ + "assume_Constraint_2_7", + "disj2", + "beta", + "gamma", + "disj6", + "R_7", + "conj3", + "assume_Constraint_2_0", + "solve_step_0", + "S_0", + "conj0", + "I_0", + "solve_step_1", + "R_0", + "I_7" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "beta": 0.04068230955501886, + "gamma": 0.024208476440159936, + "timer_t_0": 0, + "solve_step_0": 1, + "S_0": 2000, + "I_0": 1, + "R_0": 0, + "assume_Constraint_2_7": 1, + "S_7": 1997.7217906649191, + "R_7": 0.16945933508111957, + "timer_t_7": 7, + "I_7": 3.1492906649188175, + "timestep": 1 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "beta": { + "lb": 0.03, + "ub": 0.05, + "closed_upper_bound": false, + "original_width": 0.020000000000000007, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "gamma": { + "lb": 0.01, + "ub": 0.03, + "closed_upper_bound": false, + "original_width": 0.02, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 2, + "ub": 2, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & (gamma < 29999999999999999/1000000000000000000)) & (beta < 50000000000000003/1000000000000000000)) & solve_step_2) & solve_step_1) & assume_Constraint_2_7) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((I_0 < 0.0) | (gamma < 10000000000000001/1000000000000000000)) | (beta < 29999999999999999/1000000000000000000)) | (I_7 < 0.0)) | (! (R_0 = 0.0))) | (! (I_0 = 1.0))) | (! (S_0 = 2000.0))) | (! (gamma < 29999999999999999/1000000000000000000))) | (! (beta < 50000000000000003/1000000000000000000))) | (! (R_7 = (R_0 + (7.0 * (gamma * I_0)))))) | (! (I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))))) | (! (S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))))) | (! (I_14 < 0.0))) | (! (R_14 = (R_7 + (7.0 * (gamma * I_7)))))) | (! (I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7))))))))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 1.0) | (! conj0))) & ((S_0 = 2000.0) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((R_7 = (R_0 + (7.0 * (gamma * I_0)))) | (! conj3))) & ((I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))) | (! conj3))) & ((S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))) | (! conj3))) & ((assume_Constraint_2_14 | (I_14 < 0.0)) | (! disj11))) & (disj11 | (! conj7))) & (conj7 | (! solve_step_2))) & ((R_14 = (R_7 + (7.0 * (gamma * I_7)))) | (! conj7))) & ((I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))) | (! conj7))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (((! assume_Constraint_2_7) | (! disj7)) | (! (I_7 < 0.0)))) & (! (gamma < 10000000000000001/1000000000000000000))) & (! (beta < 29999999999999999/1000000000000000000))) & (! assume_Constraint_2_14))", + "symbols": [ + "assume_Constraint_2_7", + "disj2", + "beta", + "gamma", + "S_7", + "R_7", + "conj3", + "S_0", + "I_0", + "disj7", + "disj11", + "R_0", + "conj7", + "assume_Constraint_2_0", + "I_14", + "solve_step_0", + "conj0", + "solve_step_1", + "assume_Constraint_2_14", + "solve_step_2", + "R_14", + "I_7" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "beta": 0.041302664596581225, + "gamma": 0.025313941800867015, + "timer_t_0": 0, + "solve_step_0": 1, + "S_0": 2000, + "I_0": 1, + "R_0": 0, + "assume_Constraint_2_7": 1, + "S_7": 1997.6870499689073, + "R_7": 0.17718910519619874, + "timer_t_7": 7, + "I_7": 3.1542130608091887, + "I_14": 9.964794328709345, + "assume_Constraint_2_14": 1, + "S_14": 1990.4427404621756, + "R_14": 0.749718825861009, + "timer_t_14": 14, + "timestep": 2 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "beta": { + "lb": 0.03, + "ub": 0.05, + "closed_upper_bound": false, + "original_width": 0.020000000000000007, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "gamma": { + "lb": 0.01, + "ub": 0.03, + "closed_upper_bound": false, + "original_width": 0.02, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 3, + "ub": 3, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & (gamma < 29999999999999999/1000000000000000000)) & (beta < 50000000000000003/1000000000000000000)) & solve_step_3) & solve_step_2) & solve_step_1) & assume_Constraint_2_7) & assume_Constraint_2_14) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((((((I_0 < 0.0) | (gamma < 10000000000000001/1000000000000000000)) | (beta < 29999999999999999/1000000000000000000)) | (I_7 < 0.0)) | (I_14 < 0.0)) | (! (R_0 = 0.0))) | (! (I_0 = 1.0))) | (! (S_0 = 2000.0))) | (! (gamma < 29999999999999999/1000000000000000000))) | (! (beta < 50000000000000003/1000000000000000000))) | (! (R_7 = (R_0 + (7.0 * (gamma * I_0)))))) | (! (I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))))) | (! (S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))))) | (! (R_14 = (R_7 + (7.0 * (gamma * I_7)))))) | (! (I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))))) | (! (S_14 = (S_7 - (280001/10000000 * ((beta * I_7) * S_7)))))) | (! (I_21 < 0.0))) | (! (R_21 = (R_14 + (7.0 * (gamma * I_14)))))) | (! (I_21 = (I_14 + (7.0 * ((-1.0 * (gamma * I_14)) + (400001/100000000 * ((beta * I_14) * S_14))))))))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 1.0) | (! conj0))) & ((S_0 = 2000.0) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((R_7 = (R_0 + (7.0 * (gamma * I_0)))) | (! conj3))) & ((I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))) | (! conj3))) & ((S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))) | (! conj3))) & (disj12 | (! conj7))) & (conj7 | (! solve_step_2))) & ((R_14 = (R_7 + (7.0 * (gamma * I_7)))) | (! conj7))) & ((I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))) | (! conj7))) & ((S_14 = (S_7 - (280001/10000000 * ((beta * I_7) * S_7)))) | (! conj7))) & ((assume_Constraint_2_21 | (I_21 < 0.0)) | (! disj16))) & (disj16 | (! conj11))) & (conj11 | (! solve_step_3))) & ((R_21 = (R_14 + (7.0 * (gamma * I_14)))) | (! conj11))) & ((I_21 = (I_14 + (7.0 * ((-1.0 * (gamma * I_14)) + (400001/100000000 * ((beta * I_14) * S_14)))))) | (! conj11))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (((! assume_Constraint_2_7) | (! disj7)) | (! (I_7 < 0.0)))) & (((! assume_Constraint_2_14) | (! disj12)) | (! (I_14 < 0.0)))) & (! (gamma < 10000000000000001/1000000000000000000))) & (! (beta < 29999999999999999/1000000000000000000))) & (! assume_Constraint_2_21))", + "symbols": [ + "assume_Constraint_2_7", + "disj2", + "beta", + "gamma", + "S_7", + "R_7", + "conj3", + "S_0", + "I_0", + "disj7", + "conj7", + "R_0", + "I_21", + "disj12", + "disj16", + "assume_Constraint_2_21", + "conj11", + "R_21", + "assume_Constraint_2_0", + "I_14", + "solve_step_0", + "assume_Constraint_2_14", + "solve_step_1", + "conj0", + "solve_step_2", + "S_14", + "solve_step_3", + "R_14", + "I_7" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "beta": 0.04314214560970058, + "gamma": 0.029365964306347078, + "timer_t_0": 0, + "solve_step_0": 1, + "S_0": 2000, + "I_0": 1, + "R_0": 0, + "assume_Constraint_2_7": 1, + "S_7": 1997.5840398458568, + "R_7": 0.205439970680366, + "timer_t_7": 7, + "I_7": 3.210503070115682, + "I_14": 10.255476722785316, + "assume_Constraint_2_14": 1, + "S_14": 1989.8487650232757, + "R_14": 0.8706393304700392, + "timer_t_14": 14, + "timer_t_21": 21, + "I_21": 32.67926398277873, + "assume_Constraint_2_21": 1, + "S_21": 1965.2605871906246, + "R_21": 2.978256675218668, + "timestep": 3 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "beta": { + "lb": 0.03, + "ub": 0.05, + "closed_upper_bound": false, + "original_width": 0.020000000000000007, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "gamma": { + "lb": 0.01, + "ub": 0.03, + "closed_upper_bound": false, + "original_width": 0.02, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 4, + "ub": 4, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & (gamma < 29999999999999999/1000000000000000000)) & (beta < 50000000000000003/1000000000000000000)) & solve_step_4) & solve_step_3) & solve_step_2) & solve_step_1) & assume_Constraint_2_7) & assume_Constraint_2_14) & assume_Constraint_2_21) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((((I_0 < 0.0) | (gamma < 10000000000000001/1000000000000000000)) | (beta < 29999999999999999/1000000000000000000)) | (I_7 < 0.0)) | (I_14 < 0.0)) | (I_21 < 0.0)) | (! (R_0 = 0.0))) | (! (I_0 = 1.0))) | (! (S_0 = 2000.0))) | (! (gamma < 29999999999999999/1000000000000000000))) | (! (beta < 50000000000000003/1000000000000000000))) | (! (R_7 = (R_0 + (7.0 * (gamma * I_0)))))) | (! (I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))))) | (! (S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))))) | (! (R_14 = (R_7 + (7.0 * (gamma * I_7)))))) | (! (I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))))) | (! (S_14 = (S_7 - (280001/10000000 * ((beta * I_7) * S_7)))))) | (! (R_21 = (R_14 + (7.0 * (gamma * I_14)))))) | (! (I_21 = (I_14 + (7.0 * ((-1.0 * (gamma * I_14)) + (400001/100000000 * ((beta * I_14) * S_14)))))))) | (! (S_21 = (S_14 - (280001/10000000 * ((beta * I_14) * S_14)))))) | (! (I_28 < 0.0))) | (! (R_28 = (R_21 + (7.0 * (gamma * I_21)))))) | (! (I_28 = (I_21 + (7.0 * ((-1.0 * (gamma * I_21)) + (400001/100000000 * ((beta * I_21) * S_21))))))))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 1.0) | (! conj0))) & ((S_0 = 2000.0) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((R_7 = (R_0 + (7.0 * (gamma * I_0)))) | (! conj3))) & ((I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))) | (! conj3))) & ((S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))) | (! conj3))) & (disj12 | (! conj7))) & (conj7 | (! solve_step_2))) & ((R_14 = (R_7 + (7.0 * (gamma * I_7)))) | (! conj7))) & ((I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))) | (! conj7))) & ((S_14 = (S_7 - (280001/10000000 * ((beta * I_7) * S_7)))) | (! conj7))) & (disj17 | (! conj11))) & (conj11 | (! solve_step_3))) & ((R_21 = (R_14 + (7.0 * (gamma * I_14)))) | (! conj11))) & ((I_21 = (I_14 + (7.0 * ((-1.0 * (gamma * I_14)) + (400001/100000000 * ((beta * I_14) * S_14)))))) | (! conj11))) & ((S_21 = (S_14 - (280001/10000000 * ((beta * I_14) * S_14)))) | (! conj11))) & ((assume_Constraint_2_28 | (I_28 < 0.0)) | (! disj21))) & (disj21 | (! conj15))) & (conj15 | (! solve_step_4))) & ((R_28 = (R_21 + (7.0 * (gamma * I_21)))) | (! conj15))) & ((I_28 = (I_21 + (7.0 * ((-1.0 * (gamma * I_21)) + (400001/100000000 * ((beta * I_21) * S_21)))))) | (! conj15))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (((! assume_Constraint_2_7) | (! disj7)) | (! (I_7 < 0.0)))) & (((! assume_Constraint_2_14) | (! disj12)) | (! (I_14 < 0.0)))) & (((! assume_Constraint_2_21) | (! disj17)) | (! (I_21 < 0.0)))) & (! (gamma < 10000000000000001/1000000000000000000))) & (! (beta < 29999999999999999/1000000000000000000))) & (! assume_Constraint_2_28))", + "symbols": [ + "beta", + "gamma", + "S_0", + "I_0", + "disj7", + "conj7", + "R_0", + "I_21", + "assume_Constraint_2_21", + "S_21", + "R_21", + "assume_Constraint_2_0", + "solve_step_0", + "disj17", + "conj0", + "solve_step_1", + "disj21", + "solve_step_2", + "conj15", + "solve_step_3", + "solve_step_4", + "I_7", + "assume_Constraint_2_7", + "disj2", + "conj3", + "S_7", + "R_7", + "I_28", + "assume_Constraint_2_28", + "R_28", + "disj12", + "conj11", + "I_14", + "assume_Constraint_2_14", + "S_14", + "R_14" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "beta": 0.043106691810954244, + "gamma": 0.011639593504460793, + "timer_t_0": 0, + "solve_step_0": 1, + "S_0": 2000, + "I_0": 1, + "R_0": 0, + "assume_Constraint_2_7": 1, + "S_7": 1997.5860252585865, + "R_7": 0.0814584151380613, + "timer_t_7": 7, + "I_7": 3.3324975868822118, + "I_14": 11.11151052223978, + "assume_Constraint_2_14": 1, + "S_14": 1989.5511595074886, + "R_14": 0.3529903818758683, + "timer_t_14": 14, + "timer_t_21": 21, + "I_21": 36.82371849669415, + "assume_Constraint_2_21": 1, + "S_21": 1962.9083424606902, + "R_21": 1.2662679771632026, + "I_28": 121.22909810769272, + "assume_Constraint_2_28": 1, + "S_28": 1875.75654581131, + "R_28": 4.266455588890307, + "timer_t_28": 28, + "timestep": 4 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "simulation": null + } + ] + }, + { + "type": "box", + "label": "true", + "bounds": { + "beta": { + "lb": 0.03, + "ub": 0.05, + "closed_upper_bound": false, + "original_width": 0.020000000000000007, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "gamma": { + "lb": 0.01, + "ub": 0.03, + "closed_upper_bound": false, + "original_width": 0.02, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "timestep": { + "lb": 5, + "ub": 5, + "closed_upper_bound": true, + "original_width": 5, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + } + }, + "explanation": { + "expression": "(((((((((((((((((((((((((((((((((((((((((((((((((((assume_Constraint_2_0 & solve_step_0) & (gamma < 29999999999999999/1000000000000000000)) & (beta < 50000000000000003/1000000000000000000)) & solve_step_5) & solve_step_4) & solve_step_3) & solve_step_2) & solve_step_1) & assume_Constraint_2_7) & assume_Constraint_2_14) & assume_Constraint_2_21) & assume_Constraint_2_28) & (disj2 | (! conj0))) & (conj0 | (! solve_step_0))) & (((((((((((((((((((((((((((I_0 < 0.0) | (gamma < 10000000000000001/1000000000000000000)) | (beta < 29999999999999999/1000000000000000000)) | (I_7 < 0.0)) | (I_14 < 0.0)) | (I_21 < 0.0)) | (I_28 < 0.0)) | (! (R_0 = 0.0))) | (! (I_0 = 1.0))) | (! (S_0 = 2000.0))) | (! (gamma < 29999999999999999/1000000000000000000))) | (! (beta < 50000000000000003/1000000000000000000))) | (! (R_7 = (R_0 + (7.0 * (gamma * I_0)))))) | (! (I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))))) | (! (S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))))) | (! (R_14 = (R_7 + (7.0 * (gamma * I_7)))))) | (! (I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))))) | (! (S_14 = (S_7 - (280001/10000000 * ((beta * I_7) * S_7)))))) | (! (R_21 = (R_14 + (7.0 * (gamma * I_14)))))) | (! (I_21 = (I_14 + (7.0 * ((-1.0 * (gamma * I_14)) + (400001/100000000 * ((beta * I_14) * S_14)))))))) | (! (S_21 = (S_14 - (280001/10000000 * ((beta * I_14) * S_14)))))) | (! (R_28 = (R_21 + (7.0 * (gamma * I_21)))))) | (! (I_28 = (I_21 + (7.0 * ((-1.0 * (gamma * I_21)) + (400001/100000000 * ((beta * I_21) * S_21)))))))) | (! (S_28 = (S_21 - (280001/10000000 * ((beta * I_21) * S_21)))))) | (! (I_35 < 0.0))) | (! (R_35 = (R_28 + (7.0 * (gamma * I_28)))))) | (! (I_35 = (I_28 + (7.0 * ((-1.0 * (gamma * I_28)) + (400001/100000000 * ((beta * I_28) * S_28))))))))) & ((R_0 = 0.0) | (! conj0))) & ((I_0 = 1.0) | (! conj0))) & ((S_0 = 2000.0) | (! conj0))) & (disj7 | (! conj3))) & (conj3 | (! solve_step_1))) & ((R_7 = (R_0 + (7.0 * (gamma * I_0)))) | (! conj3))) & ((I_7 = (I_0 + (7.0 * ((-1.0 * (gamma * I_0)) + (400001/100000000 * ((beta * I_0) * S_0)))))) | (! conj3))) & ((S_7 = (S_0 - (280001/10000000 * ((beta * I_0) * S_0)))) | (! conj3))) & (disj12 | (! conj7))) & (conj7 | (! solve_step_2))) & ((R_14 = (R_7 + (7.0 * (gamma * I_7)))) | (! conj7))) & ((I_14 = (I_7 + (7.0 * ((-1.0 * (gamma * I_7)) + (400001/100000000 * ((beta * I_7) * S_7)))))) | (! conj7))) & ((S_14 = (S_7 - (280001/10000000 * ((beta * I_7) * S_7)))) | (! conj7))) & (disj17 | (! conj11))) & (conj11 | (! solve_step_3))) & ((R_21 = (R_14 + (7.0 * (gamma * I_14)))) | (! conj11))) & ((I_21 = (I_14 + (7.0 * ((-1.0 * (gamma * I_14)) + (400001/100000000 * ((beta * I_14) * S_14)))))) | (! conj11))) & ((S_21 = (S_14 - (280001/10000000 * ((beta * I_14) * S_14)))) | (! conj11))) & (disj22 | (! conj15))) & (conj15 | (! solve_step_4))) & ((R_28 = (R_21 + (7.0 * (gamma * I_21)))) | (! conj15))) & ((I_28 = (I_21 + (7.0 * ((-1.0 * (gamma * I_21)) + (400001/100000000 * ((beta * I_21) * S_21)))))) | (! conj15))) & ((S_28 = (S_21 - (280001/10000000 * ((beta * I_21) * S_21)))) | (! conj15))) & ((assume_Constraint_2_35 | (I_35 < 0.0)) | (! disj26))) & (disj26 | (! conj19))) & (conj19 | (! solve_step_5))) & ((R_35 = (R_28 + (7.0 * (gamma * I_28)))) | (! conj19))) & ((I_35 = (I_28 + (7.0 * ((-1.0 * (gamma * I_28)) + (400001/100000000 * ((beta * I_28) * S_28)))))) | (! conj19))) & (((! assume_Constraint_2_0) | (! disj2)) | (! (I_0 < 0.0)))) & (((! assume_Constraint_2_7) | (! disj7)) | (! (I_7 < 0.0)))) & (((! assume_Constraint_2_14) | (! disj12)) | (! (I_14 < 0.0)))) & (((! assume_Constraint_2_21) | (! disj17)) | (! (I_21 < 0.0)))) & (((! assume_Constraint_2_28) | (! disj22)) | (! (I_28 < 0.0)))) & (! (gamma < 10000000000000001/1000000000000000000))) & (! (beta < 29999999999999999/1000000000000000000))) & (! assume_Constraint_2_35))", + "symbols": [ + "R_35", + "beta", + "gamma", + "S_0", + "disj22", + "disj26", + "I_0", + "disj7", + "conj7", + "R_0", + "conj19", + "I_21", + "assume_Constraint_2_21", + "S_21", + "R_21", + "assume_Constraint_2_0", + "solve_step_0", + "disj17", + "conj0", + "solve_step_1", + "conj15", + "solve_step_2", + "solve_step_3", + "solve_step_4", + "solve_step_5", + "I_7", + "assume_Constraint_2_7", + "disj2", + "conj3", + "I_28", + "R_7", + "S_7", + "assume_Constraint_2_28", + "S_28", + "R_28", + "disj12", + "conj11", + "I_14", + "assume_Constraint_2_14", + "S_14", + "R_14", + "I_35", + "assume_Constraint_2_35" + ], + "relevant_assumptions": [ + { + "constraint": { + "soft": true, + "name": "Constraint 2", + "timepoints": { + "lb": 0, + "ub": 35, + "closed_upper_bound": true, + "original_width": 35, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "additive_bounds": { + "lb": 0, + "ub": 1.7976931348623157e+308, + "closed_upper_bound": false, + "original_width": 1.7976931348623157e+308, + "normalized": false, + "unnormalized_lb": null, + "unnormalized_ub": null + }, + "variables": [ + "I" + ], + "weights": [ + 1 + ], + "derivative": false + } + } + ] + }, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "corner_points": [], + "points": [ + { + "type": "point", + "label": "true", + "values": { + "assume_Constraint_2": 1, + "assume_Constraint_2_0": 1, + "beta": 0.04480163295144128, + "gamma": 0.020815373210305525, + "timer_t_0": 0, + "solve_step_0": 1, + "S_0": 2000, + "I_0": 1, + "R_0": 0, + "assume_Constraint_2_7": 1, + "S_7": 1997.4911433048383, + "R_7": 0.14570739191985033, + "timer_t_7": 7, + "I_7": 3.3631515335897664, + "I_14": 11.29756310501111, + "assume_Constraint_2_14": 1, + "S_14": 1989.0640619943524, + "R_14": 0.635743457757546, + "timer_t_14": 14, + "timer_t_21": 21, + "I_21": 37.84762748348261, + "assume_Constraint_2_21": 1, + "S_21": 1960.874758068435, + "R_21": 2.2818819988715493, + "I_28": 125.46762455209364, + "assume_Constraint_2_28": 1, + "S_28": 1867.791320793056, + "R_28": 7.79898581540458, + "timer_t_28": 28, + "R_35": 26.075585898503775, + "timer_t_35": 35, + "assume_Constraint_2_35": 1, + "I_35": 401.0925011487771, + "S_35": 1573.832177562502, + "timestep": 5 + }, + "normalized_values": null, + "schedule": { + "timepoints": [ + 0, + 7, + 14, + 21, + 28, + 35 + ] + }, + "simulation": null + } + ] + } + ], + "false_boxes": [], + "unknown_points": [] + }, + "timing": { + "start_time": "2024-11-06T16:26:47.322759", + "end_time": null, + "total_time": null, + "solver_time": null, + "encoding_time": null, + "progress_timeseries": [ + [ + "2024-11-06T16:26:48.703675", + 1 + ] + ], + "additional_time": {} + }, + "contracted_model": { + "header": { + "name": "SIR", + "schema_": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.6/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "description": "Basic epidemiological model with S, I, R compartments", + "model_version": "0.1" + }, + "properties": {}, + "model": { + "states": [ + { + "id": "S", + "name": "Susceptible", + "description": null, + "grounding": { + "identifiers": { + "ido": "0000514" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "I", + "name": "Infected", + "description": null, + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "R", + "name": "Recovered", + "description": null, + "grounding": { + "identifiers": { + "ido": "0000592" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + } + ], + "transitions": [ + { + "id": "inf", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "grounding": null, + "properties": { + "name": "inf", + "description": null, + "grounding": null + } + }, + { + "id": "rec", + "input": [ + "I" + ], + "output": [ + "R" + ], + "grounding": null, + "properties": { + "name": "rec", + "description": null, + "grounding": null + } + } + ] + }, + "semantics": { + "ode": { + "rates": [ + { + "target": "inf", + "expression": "0.004*I*S*beta", + "expression_mathml": "0.0040000000000000001ISbeta" + }, + { + "target": "rec", + "expression": "I*gamma", + "expression_mathml": "Igamma" + } + ], + "initials": [ + { + "target": "S", + "expression": "2000.0", + "expression_mathml": "2000.0" + }, + { + "target": "I", + "expression": "1.0", + "expression_mathml": "1.0" + }, + { + "target": "R", + "expression": "0.0", + "expression_mathml": "0.0" + } + ], + "parameters": [ + { + "id": "beta", + "name": "β", + "description": "infection rate", + "value": 0.04, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.03, + "maximum": 0.05 + } + }, + "units": { + "expression": "1/(day*person)", + "expression_mathml": "1dayperson" + } + }, + { + "id": "gamma", + "name": "γ", + "description": "recovery rate", + "value": 0.02, + "grounding": null, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.01, + "maximum": 0.03 + } + }, + "units": { + "expression": "1/day", + "expression_mathml": "day-1" + } + } + ], + "observables": [], + "time": { + "id": "t", + "units": { + "expression": "day", + "expression_mathml": "day" + } + } + }, + "typing": null, + "span": null + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + }, + "id": "73e7e950-9d43-4304-96f8-f4af16cfd249", + "createdOn": "2024-08-28T00:38:18.290+00:00", + "updatedOn": "2024-10-30T19:14:48.672+00:00", + "name": "SIR", + "fileNames": [], + "temporary": false, + "publicAsset": false + }, + "modelConfigurationId": "4bc2fd75-ce0f-4e20-a4ac-af2894f87cef" +} \ No newline at end of file diff --git a/resources/amr/petrinet/terrarium-tests/response4-issue51.json b/resources/amr/petrinet/terrarium-tests/response4-issue51.json new file mode 100644 index 00000000..693cd0a3 --- /dev/null +++ b/resources/amr/petrinet/terrarium-tests/response4-issue51.json @@ -0,0 +1,344 @@ +{ + "model": { + "id": "081e489b-1a3a-42de-a604-58d92f76ce9c", + "createdOn": "2024-08-28T00:38:18.290+00:00", + "updatedOn": "2024-11-01T13:20:39.523+00:00", + "name": "SIR to validate", + "fileNames": [], + "temporary": false, + "publicAsset": false, + "header": { + "name": "SIR to validate", + "description": "SIR model 4", + "schema": "https://raw.githubusercontent.com/DARPA-ASKEM/Model-Representations/petrinet_v0.6/petrinet/petrinet_schema.json", + "schema_name": "petrinet", + "model_version": "0.1" + }, + "model": { + "transitions": [ + { + "id": "inf", + "input": [ + "I", + "S" + ], + "output": [ + "I", + "I" + ], + "properties": { + "name": "inf" + } + }, + { + "id": "rec", + "input": [ + "I" + ], + "output": [ + "R" + ], + "properties": { + "name": "rec" + } + } + ], + "states": [ + { + "id": "S", + "name": "Susceptible", + "grounding": { + "identifiers": { + "ido": "0000514" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "I", + "name": "Infected", + "grounding": { + "identifiers": { + "ido": "0000511" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + }, + { + "id": "R", + "name": "Recovered", + "grounding": { + "identifiers": { + "ido": "0000592" + }, + "modifiers": {} + }, + "units": { + "expression": "person", + "expression_mathml": "person" + } + } + ] + }, + "properties": {}, + "semantics": { + "ode": { + "rates": [ + { + "target": "inf", + "expression": "0.004*I*S*beta", + "expression_mathml": "0.0040000000000000001ISbeta" + }, + { + "target": "rec", + "expression": "I*gamma", + "expression_mathml": "Igamma" + } + ], + "initials": [ + { + "target": "S", + "expression": "S0", + "expression_mathml": "S0" + }, + { + "target": "I", + "expression": "I0", + "expression_mathml": "I0" + }, + { + "target": "R", + "expression": "R0", + "expression_mathml": "R0" + } + ], + "parameters": [ + { + "id": "beta", + "name": "β", + "description": "infection rate", + "value": 0.04, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.03, + "maximum": 0.05 + } + }, + "units": { + "expression": "1/(day*person)", + "expression_mathml": "1dayperson" + } + }, + { + "id": "gamma", + "name": "γ", + "description": "recovery rate", + "value": 0.02, + "distribution": { + "type": "StandardUniform1", + "parameters": { + "minimum": 0.01, + "maximum": 0.03 + } + }, + "units": { + "expression": "1/day", + "expression_mathml": "day-1" + } + }, + { + "id": "S0", + "name": "S₀", + "description": "Total susceptible population at timestep 0", + "value": 2000 + }, + { + "id": "I0", + "name": "I₀", + "description": "Total infected population at timestep 0", + "value": 1 + }, + { + "id": "R0", + "name": "R₀", + "description": "Total recovered population at timestep 0", + "value": 0 + }, + { + "id": "zeta", + "name": "zeta", + "value": 999 + } + ], + "observables": [ + { + "id": "noninf", + "name": "Non-infectious", + "expression": "R + S", + "expression_mathml": "RS" + } + ], + "time": { + "id": "t", + "units": { + "expression": "day", + "expression_mathml": "day" + } + } + }, + "span": [], + "typing": null + }, + "metadata": { + "annotations": { + "authors": [], + "references": [], + "locations": [], + "pathogens": [], + "diseases": [], + "hosts": [], + "model_types": [] + }, + "source": null, + "gollmCard": null, + "gollmExtractions": null, + "templateCard": null + } + }, + "request": { + "constraints": [ + { + "name": "Constraint 1", + "variables": [ + "S", + "R" + ], + "weights": [ + 1, + 1 + ], + "additive_bounds": { + "lb": 0 + }, + "timepoints": { + "lb": 0, + "ub": 34, + "closed_upper_bound": true + } + } + ], + "parameters": [ + { + "name": "beta", + "label": "all", + "interval": { + "lb": 0.03, + "ub": 0.05 + } + }, + { + "name": "gamma", + "label": "all", + "interval": { + "lb": 0.01, + "ub": 0.03 + } + }, + { + "name": "S0", + "label": "any", + "interval": { + "lb": 2000, + "ub": 2000 + } + }, + { + "name": "I0", + "label": "any", + "interval": { + "lb": 1, + "ub": 1 + } + }, + { + "name": "R0", + "label": "any", + "interval": { + "lb": 0, + "ub": 0 + } + }, + { + "name": "zeta", + "label": "any", + "interval": { + "lb": 999, + "ub": 999 + } + } + ], + "structure_parameters": [ + { + "name": "schedules", + "schedules": [ + { + "timepoints": [ + 0, + 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 + ] + } + ] + } + ], + "config": { + "use_compartmental_constraints": true, + "normalization_constant": 2001, + "normalize": false, + "tolerance": 0.5, + "verbosity": 0 + } + } +} \ No newline at end of file diff --git a/resources/terarium-tests.json b/resources/terarium-tests.json index 2d871190..74a7e8be 100644 --- a/resources/terarium-tests.json +++ b/resources/terarium-tests.json @@ -132,6 +132,15 @@ "true-boxes": 1 }, "regression": false + }, + { + "name": "id_chars_in_input", + "model-path": "amr/petrinet/terrarium-tests/id_chars_in_input.json", + "request-path": null, + "expected-outcome": { + "true-boxes": 1 + }, + "regression": false } ] } \ No newline at end of file diff --git a/sirhd_strat_S b/sirhd_strat_S new file mode 100644 index 00000000..049cdfb3 --- /dev/null +++ b/sirhd_strat_S @@ -0,0 +1,54 @@ +digraph petrinet { + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" [shape=box] + S_vac_F -> "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" [shape=box] + S_vac_T -> "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" [shape=box] + I -> "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" -> I [label=1.0] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" -> I [label=1.0] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" [shape=box] + I -> "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" -> I [label=1.0] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" -> I [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.2e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.2e-9*I*S_vac_T]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] +} diff --git a/sirhd_strat_S.pdf b/sirhd_strat_S.pdf new file mode 100644 index 00000000..dff3eb51 Binary files /dev/null and b/sirhd_strat_S.pdf differ diff --git a/sirhd_strat_SI b/sirhd_strat_SI new file mode 100644 index 00000000..2039d425 --- /dev/null +++ b/sirhd_strat_SI @@ -0,0 +1,100 @@ +digraph petrinet { + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + I_vac_F -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" -> I_vac_F [label=1.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" -> I_vac_F [label=1.0] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" -> I_vac_F [label=1.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + I_vac_F -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" -> I_vac_F [label=1.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + I_vac_F -> "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + I_vac_F -> "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + I_vac_T -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" -> I_vac_T [label=1.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" -> I_vac_T [label=1.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + I_vac_T -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" -> I_vac_T [label=1.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" -> I_vac_T [label=1.0] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + I_vac_T -> "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + I_vac_T -> "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + S_vac_F -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + S_vac_F -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + S_vac_T -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + S_vac_T -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" -> R [label=1.0] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" -> R [label=1.0] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" -> H [label=1.0] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_F*S_vac_F]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S_vac_F*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [1.2e-9*I_vac_T*S_vac_F]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_F*S_vac_T]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S_vac_T*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [1.2e-9*I_vac_T*S_vac_T]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] +} diff --git a/sirhd_strat_SI.pdf b/sirhd_strat_SI.pdf new file mode 100644 index 00000000..fa8fd722 Binary files /dev/null and b/sirhd_strat_SI.pdf differ diff --git a/sirhd_strat_SI_abstract_S b/sirhd_strat_SI_abstract_S new file mode 100644 index 00000000..f430b76e --- /dev/null +++ b/sirhd_strat_SI_abstract_S @@ -0,0 +1,90 @@ +digraph petrinet { + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + I_vac_F -> "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + I_vac_F -> "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" [shape=box] + I_vac_F -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" -> I_vac_F [label=1.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" -> I_vac_F [label=1.0] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" -> I_vac_F [label=1.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" [shape=box] + I_vac_F -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" -> I_vac_F [label=1.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + I_vac_T -> "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + I_vac_T -> "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" [shape=box] + I_vac_T -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" -> I_vac_T [label=1.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" -> I_vac_T [label=1.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" [shape=box] + I_vac_T -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" -> I_vac_T [label=1.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" -> I_vac_T [label=1.0] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" -> R [label=1.0] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" -> R [label=1.0] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" -> H [label=1.0] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" [shape=box] + "t2__vac_F_to_([I_vac_F*pir*rir]) = [0.063*I_vac_F]" [shape=box] + "t2__vac_T_to_([I_vac_T*pir*rir]) = [0.063*I_vac_T]" [shape=box] + "t3__vac_F_to_([I_vac_F*pih*rih]) = [0.007*I_vac_F]" [shape=box] + "t3__vac_T_to_([I_vac_T*pih*rih]) = [0.007*I_vac_T]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" [shape=box] + S -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F([I_vac_F*S*beta___to_____S_vac_F_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_F*S]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" [shape=box] + S -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F([I_vac_T*S*beta___to_____S_vac_F_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_/N]) = [5.99996666666667e-10*I_vac_T*S]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" [shape=box] + S -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T([I_vac_F*S*beta___to_____S_vac_T_to__*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_F*S]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" [shape=box] + S -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T([I_vac_T*S*beta___to_____S_vac_T_to__*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_/N]) = [6.00003333333333e-10*I_vac_T*S]" +} diff --git a/sirhd_strat_SI_abstract_S.pdf b/sirhd_strat_SI_abstract_S.pdf new file mode 100644 index 00000000..08c4ebaf Binary files /dev/null and b/sirhd_strat_SI_abstract_S.pdf differ diff --git a/sirhd_strat_SI_bounded_abstract_S b/sirhd_strat_SI_bounded_abstract_S new file mode 100644 index 00000000..1fcc6641 --- /dev/null +++ b/sirhd_strat_SI_bounded_abstract_S @@ -0,0 +1,682 @@ +digraph petrinet { + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + I_vac_F_lb -> "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + I_vac_F_lb -> "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + I_vac_F_lb -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + I_vac_F_lb -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" -> I_vac_F_lb [label=0.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" -> I_vac_F_lb [label=0.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" -> I_vac_F_lb [label=0.0] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" -> I_vac_F_lb [label=0.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + I_vac_F_ub -> "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + I_vac_F_ub -> "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + I_vac_F_ub -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + I_vac_F_ub -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" -> I_vac_F_ub [label=0.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" -> I_vac_F_ub [label=0.0] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" -> I_vac_F_ub [label=0.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" -> I_vac_F_ub [label=0.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + I_vac_T_lb -> "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + I_vac_T_lb -> "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + I_vac_T_lb -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + I_vac_T_lb -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" -> I_vac_T_lb [label=0.0] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" -> I_vac_T_lb [label=0.0] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" -> I_vac_T_lb [label=0.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" -> I_vac_T_lb [label=0.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + I_vac_T_ub -> "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + I_vac_T_ub -> "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + I_vac_T_ub -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + I_vac_T_ub -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" -> I_vac_T_ub [label=0.0] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" -> I_vac_T_ub [label=0.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" -> I_vac_T_ub [label=0.0] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" -> I_vac_T_ub [label=0.0] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" -> R_lb [label=0.0] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" -> R_lb [label=0.0] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" -> R_lb [label=0.0] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" -> R_ub [label=0.0] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" -> R_ub [label=0.0] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" -> R_ub [label=0.0] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + H_lb -> "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + H_lb -> "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" -> H_lb [label=0.0] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" -> H_lb [label=0.0] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + H_ub -> "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + H_ub -> "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" -> H_ub [label=0.0] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" -> H_ub [label=0.0] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" -> D_lb [label=0.0] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" -> D_ub [label=0.0] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + S_lb -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + S_lb -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + S_lb -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + S_lb -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pir_lb*rir_lb]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pir_ub*rir_ub]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pir_lb*rir_lb]) = [0.063*I_vac_T_ub]" [shape=box] + "t2__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pir_ub*rir_ub]) = [0.063*I_vac_T_lb]" [shape=box] + "t3__vac_F_to__in_I_vac_F_lb([I_vac_F_ub*pih_lb*rih_lb]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_F_to__in_I_vac_F_ub([I_vac_F_lb*pih_ub*rih_ub]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_T_to__in_I_vac_T_lb([I_vac_T_ub*pih_lb*rih_lb]) = [0.007*I_vac_T_ub]" [shape=box] + "t3__vac_T_to__in_I_vac_T_ub([I_vac_T_lb*pih_ub*rih_ub]) = [0.007*I_vac_T_lb]" [shape=box] + "t4_in_H_lb([H_ub*phd_lb*rhd_lb]) = [0.039*H_ub]" [shape=box] + "t4_in_H_ub([H_lb*phd_ub*rhd_ub]) = [0.039*H_lb]" [shape=box] + "t5_in_H_lb([H_ub*phr_lb*rhr_lb]) = [0.0609*H_ub]" [shape=box] + "t5_in_H_ub([H_lb*phr_ub*rhr_ub]) = [0.0609*H_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" [shape=box] + S_ub -> "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_ub]" + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" [shape=box] + S_ub -> "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_ub]" + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_lb([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_I_vac_F_ub([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" [shape=box] + S_ub -> "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_lb([I_vac_F_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_ub]" + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_in_S_ub([I_vac_F_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_lb([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_I_vac_T_ub([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" [shape=box] + S_ub -> "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_lb([I_vac_T_lb*S_ub*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_ub]" + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_in_S_ub([I_vac_T_ub*S_lb*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_lb]" [shape=box] + "t2__vac_F_to__out_R_lb([I_vac_F_lb*pir_lb*rir_lb]) = [0.063*I_vac_F_lb]" [shape=box] + "t2__vac_F_to__out_R_ub([I_vac_F_ub*pir_ub*rir_ub]) = [0.063*I_vac_F_ub]" [shape=box] + "t2__vac_T_to__out_R_lb([I_vac_T_lb*pir_lb*rir_lb]) = [0.063*I_vac_T_lb]" [shape=box] + "t2__vac_T_to__out_R_ub([I_vac_T_ub*pir_ub*rir_ub]) = [0.063*I_vac_T_ub]" [shape=box] + "t3__vac_F_to__out_H_lb([I_vac_F_lb*pih_lb*rih_lb]) = [0.007*I_vac_F_lb]" [shape=box] + "t3__vac_F_to__out_H_ub([I_vac_F_ub*pih_ub*rih_ub]) = [0.007*I_vac_F_ub]" [shape=box] + "t3__vac_T_to__out_H_lb([I_vac_T_lb*pih_lb*rih_lb]) = [0.007*I_vac_T_lb]" [shape=box] + "t3__vac_T_to__out_H_ub([I_vac_T_ub*pih_ub*rih_ub]) = [0.007*I_vac_T_ub]" [shape=box] + "t4_out_D_lb([H_lb*phd_lb*rhd_lb]) = [0.039*H_lb]" [shape=box] + "t4_out_D_ub([H_ub*phd_ub*rhd_ub]) = [0.039*H_ub]" [shape=box] + "t5_out_R_lb([H_lb*phr_lb*rhr_lb]) = [0.0609*H_lb]" [shape=box] + "t5_out_R_ub([H_ub*phr_ub*rhr_ub]) = [0.0609*H_ub]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_F_to_vac_F__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_F_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__lb/N_ub]) = [5.99996666666667e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_F_to___vac_T_to_vac_T__vac_F_to_vac_F_out_I_vac_F_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_F_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F__ub/N_lb]) = [5.99996666666667e-10*I_vac_T_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_F_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_F_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_F_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_F_to_vac_F__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_F_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_F_ub*S_ub]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_lb([I_vac_T_lb*S_lb*beta___to_____S_vac_T_to___lb*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__lb/N_ub]) = [6.00003333333333e-10*I_vac_T_lb*S_lb]" [shape=box] + "t1___to___vac_T_to___vac_T_to_vac_T__vac_T_to_vac_T_out_I_vac_T_ub([I_vac_T_ub*S_ub*beta___to_____S_vac_T_to___ub*p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T__ub/N_lb]) = [6.00003333333333e-10*I_vac_T_ub*S_ub]" [shape=box] +} diff --git a/sirhd_strat_SI_bounded_abstract_S.pdf b/sirhd_strat_SI_bounded_abstract_S.pdf new file mode 100644 index 00000000..fd3b8a46 Binary files /dev/null and b/sirhd_strat_SI_bounded_abstract_S.pdf differ diff --git a/src/funman/_version.py b/src/funman/_version.py index f5590fbd..88ff4b64 100644 --- a/src/funman/_version.py +++ b/src/funman/_version.py @@ -1,4 +1,4 @@ """Version information.""" # The following line *must* be the last in the module, exactly as formatted: -__version__ = "1.10.0" +__version__ = "1.11.0" diff --git a/src/funman/api/run.py b/src/funman/api/run.py index 515cf7e4..3ff3502e 100644 --- a/src/funman/api/run.py +++ b/src/funman/api/run.py @@ -150,7 +150,7 @@ def elapsed_timer(self): def run( self, - model: Union[str, funman.FunmanModel, Dict], + model: Union[str, funman.FunmanModel, GeneratedPetriNet, Dict], request: Union[str, FunmanWorkRequest, Dict], description: str = "", case_out_dir: str = ".", @@ -247,12 +247,16 @@ def run_test_case( return results def get_model( - self, model_file: Union[str, Dict] + self, model_file: Union[str, Dict, GeneratedPetriNet] ) -> Tuple[FunmanModel, Optional[FunmanWorkRequest]]: m = None req = None for model in models: try: + if isinstance(model_file, GeneratedPetriNet): + m = _wrap_with_internal_model(model_file) + req = None + break if isinstance(model_file, str): with open(model_file, "r") as mf: j = json.load(mf) @@ -296,7 +300,9 @@ def get_model( def run_instance( self, - case: Tuple[Union[str, Dict], Union[str, Dict], str], + case: Tuple[ + Union[str, Dict, GeneratedPetriNet], Union[str, Dict], str + ], out_dir=".", dump_plot=False, parameters_to_plot=None, @@ -358,6 +364,8 @@ def run_instance( sleep(10) elif not self._worker.is_processing_id(work_unit.id): results = self._worker.get_results(work_unit.id) + with open(outfile, "w") as f: + f.write(results.model_dump_json(by_alias=True)) break if not plotted and dump_plot: @@ -426,7 +434,9 @@ def create_plots( boxes = ( results.parameter_space.boxes() if not print_last_time - else results.parameter_space.last_boxes() + else results.parameter_space.last_boxes( + steps=[results.parameter_space.last_step()] + ) ) if parameters_to_plot is None: parameters_to_plot = results.model._parameter_names() diff --git a/src/funman/config.py b/src/funman/config.py index 6a155168..fa1aedb1 100644 --- a/src/funman/config.py +++ b/src/funman/config.py @@ -126,7 +126,7 @@ class FUNMANConfig(BaseModel): uniform_box_splits: bool = False """ Uniformly split boxes in box search, instead of separating points in boxes """ - dreal_prefer_parameters: List[str] = [] + dreal_prefer_parameters: Optional[List[str]] = None """ Prefer to split the listed parameters in dreal """ point_based_evaluation: bool = False diff --git a/src/funman/model/generated_models/petrinet.py b/src/funman/model/generated_models/petrinet.py index d7f4203e..d5baf1e7 100644 --- a/src/funman/model/generated_models/petrinet.py +++ b/src/funman/model/generated_models/petrinet.py @@ -37,9 +37,9 @@ class Distribution(BaseModel): class Grounding(BaseModel): - model_config = ConfigDict( - extra="forbid", - ) + # model_config = ConfigDict( + # extra="forbid", + # ) identifiers: Dict[str, Any] modifiers: Optional[Dict[str, Any]] = None diff --git a/src/funman/model/model.py b/src/funman/model/model.py index 01d5d9ec..81a7cc7f 100644 --- a/src/funman/model/model.py +++ b/src/funman/model/model.py @@ -52,7 +52,7 @@ def _wrap_with_internal_model( def is_state_variable( - var_string, model: "FunmanModel", time_pattern: str = f"[\\d]+$" + var_string, model: "FunmanModel", time_pattern: str = f"\d+(?:\.\d+)?$" ) -> bool: vars_pattern = "|".join(model._state_var_names()) pattern = re.compile(f"^(?:{vars_pattern}).*_{time_pattern}") @@ -252,3 +252,8 @@ def _parameter_ub(self, param_name: str): def _time_var(self): return None + + def num_elements(self): + raise NotImplementedError( + f"num_elements not implemented for model type: {type(self)}" + ) diff --git a/src/funman/model/petrinet.py b/src/funman/model/petrinet.py index fdc51254..0a873d06 100644 --- a/src/funman/model/petrinet.py +++ b/src/funman/model/petrinet.py @@ -1,7 +1,10 @@ +import copy import itertools +import logging from collections import Counter from difflib import SequenceMatcher from functools import reduce +from math import prod from typing import Callable, Dict, List, Optional, Union import graphviz @@ -35,12 +38,14 @@ Semantics, State, Transition, + Transitions, ) from .model import FunmanModel class AbstractPetriNetModel(FunmanModel): _is_differentiable: bool = True + _logger: logging.Logger = logging.getLogger(__name__) def _num_flow_from_state_to_transition( self, state_id: Union[str, int], transition_id: Union[str, int] @@ -296,6 +301,913 @@ def gradient(self, t, y, *p): return grad +class StratumAttributeValue(BaseModel): + name: str + + def __hash__(self): + return self.name.__hash__() + + def __str__(self): + return self.name + + def __repr__(self): + return str(self) + + def __eq__(self, other): + return ( + isinstance(other, StratumAttributeValue) + and self.name == other.name + ) + + +class StratumAttribute(BaseModel): + name: str + values: List[StratumAttributeValue] + + def __hash__(self): + return self.name.__hash__() + + def __str__(self): + return self.name + + def __repr__(self): + return str(self) + + def __lt__(self, other): + if isinstance(other, StratumAttribute): + return str(self) < str(other) + else: + return True + + +class StratumAttributeValueSet(BaseModel): + values: List[StratumAttributeValue] + + def __hash__(self): + return sum(hash(v) for v in self.values) + + def __str__(self): + return "_".join((str(v) for v in self.values)) + + def __repr__(self): + return str(self) + + def is_subset(self, other, strict=False): + return set(self.values).issubset(set(other.values)) and ( + not strict or not set(other.values).issubset(set(self.values)) + ) + + def intersection(self, other): + return StratumAttributeValueSet( + values=[v for v in self.values if v in other.values] + ) + + def difference(self, other): + # Return values present in self but not other + return StratumAttributeValueSet( + values=[v for v in self.values if v not in other.values] + ) + + +class StratumValuation(BaseModel): + values: Dict[StratumAttribute, StratumAttributeValueSet] = {} + + def __hash__(self): + return sum(hash(k) * hash(v) for k, v in self.values.items()) + + def __str__(self): + attrs = list(self.values.keys()) + attrs.sort() + return "_".join([f"{attr}_{self.values[attr]}" for attr in attrs]) + + def __repr__(self): + return str(self) + + def __getitem__(self, key): + if key in self.values: + return self.values[key] + else: + return StratumAttributeValueSet(values=list(key.values)) + + def __setitem__(self, key, value): + self.values[key] = value + + def __lt__(self, other): + if isinstance(other, StratumValuation): + if len(self.values) < len(other.values): + return True + elif len(self.values) > len(other.values): + return False + else: + return str(self) < str(other) + else: + return False + + def expand_valuations(self, attr: StratumAttribute): + exp_vals = [] + for val in attr.values: + c = self.model_copy(deep=True) + c[attr] = StratumAttributeValueSet(values={val}) + exp_vals.append(c) + return exp_vals + + def num_interpretations(self, attributes: List[StratumAttribute]): + unassigned_attributes = set(attributes).difference( + set(self.values.keys()) + ) + num_specified_interpretations = prod( + [len(v.values) for v in self.values.values()] + ) + num_unspecified_interpretations = prod( + [len(a.values) for a in unassigned_attributes] + ) + return num_specified_interpretations * num_unspecified_interpretations + + def subsumed_by(self, other, strict=False): + # cases: + # - attr not in self, attr not in other -> not strict + # - attr in self, attr not in other -> not strict or self[attr] != domain(attr) + # - attr not in self, attr in other -> not strict and other[attr] == domain(attr) + # - attr in self, attr in other -> self[attr].is_subset(other[atter]) + # -- + + attrs = set(self.values.keys()).union(set(other.values.keys())) + return (len(attrs) == 0 and not strict) or ( + len(attrs) > 0 + and all( + [ + ( + attr not in self.values + and attr not in other.values + and not strict + ) + or ( + attr in self.values + and attr not in other.values + and ( + not strict + or set(self.values[attr]) != set(attr.values) + ) + ) + or ( + attr not in self.values + and attr in other.values + and ( + not strict + and set(other.values[attr].values) + == set(attr.values) + ) + ) + or ( + attr in self.values + and attr in other.values + # The set of attributes values is disjunctive. This means that + # for self to be subsumed by other, self needs to be a subset of other + and self.values[attr].is_subset( + other.values[attr], strict=strict + ) + ) + for attr in attrs + ] + ) + ) + + # return (len(self.values)==0 and not strict and len(other.values)== 0) or \ + # all(( + # a not in other.values.keys() or + # av.is_subset(other.values[a], strict=strict) + # for a, av in self.values.items())) + + def attributes(self): + return list(self.values.keys()) + + def intersection(self, other): + self_attrs = set(self.attributes()) + other_attrs = set(other.attributes()) + attrs = self_attrs.union(other_attrs) + + result = {} + for attr in attrs: + result[attr] = self[attr].intersection(other[attr]) + if len(result[attr].values) == 0: + # empty intersection + return None + return StratumValuation(values=result) + + def difference(self, other): + # Return values present in self but not other + self_attrs = set(self.attributes()) + other_attrs = set(other.attributes()) + attrs = self_attrs.union(other_attrs) + + result = {} + for attr in attrs: + if attr in self.values: + if attr in other.values: + result[attr] = self[attr].difference(other[attr]) + else: + result[attr] = self[attr] + + if len(result[attr].values) == 0: + del result[attr] + return StratumValuation(values=result) + + +class Stratum(BaseModel): + values: Dict[StratumAttribute, List[StratumAttributeValueSet]] = {} + + def valuations(self) -> List[StratumValuation]: + value_list = list(self.values.items()) + cross_vals = itertools.product(*[a_val[1] for a_val in value_list]) + valuation = [ + StratumValuation( + values={ + val_list[0]: val for (val_list, val) in zip(value_list, v) + } + ) + for v in cross_vals + ] + return valuation + + def __hash__(self): + return reduce( + lambda v1, v2: hash(v1) + + reduce(lambda a, b: hash(a) + hash(b), self.values[v2], 0), + self.values, + 0, + ) + + def __str__(self): + return ( + "[" + + ",".join([str(k) + "=" + str(v) for k, v in self.values.items()]) + + "]" + ) + + +StratifiedParameterMapping = Dict[str, Dict["StrataTransition", float]] + + +class StratumPartition(BaseModel): + values: List[StratumValuation] = [] + + def is_default_partition(self): + return len(self.values) == 0 + + +class Stratification(BaseModel): + description: Optional[str] = None + base_state: str + base_parameters: Union[List[str], StratifiedParameterMapping] = [] + partition: StratumPartition = StratumPartition() + stratum: Stratum # interpreted as cross product over attribute values + self_strata_transitions: bool = False + cross_strata_transitions: bool = False + only_natural_transitions: bool = ( + True # only stratify transitions that are not persistence + ) + _new_vars: Optional[Dict[StratumValuation, State]] = None + _new_vars_strata: Optional[Dict[str, Stratum]] = None + _state_ancestors: Dict[str, str] = {} + _transition_ancestors: Dict[str, str] = {} + _parameter_ancestors: Dict[str, str] = {} + + def strata_attribute(self): + return next(iter(self.stratum.values.keys())) + + def valuations(self) -> List[StratumValuation]: + if self.partition.is_default_partition(): + # One level per value of stratum attribute + return self.stratum.valuations() + else: + # Use given partition of values + return self.partition.values + + def _ancestors(self): + return { + **self._state_ancestors, + **self._transition_ancestors, + **self._parameter_ancestors, + } + + def stratifies(self, variable: str) -> bool: + return any( + [ + s + for s in self.strata + if f"{self.base_state}_{s.name}" == variable + ] + ) + + +class Abstraction(BaseModel): + description: Optional[str] = None + abstraction: Dict[str, str] + parameters: Dict[str, Dict[str, Interval]] = {} + base_states: Dict[str, State] = {} + + _state_ancestors: Dict[str, List[str]] = {} + _transition_ancestors: Dict[str, List[str]] = {} + _parameter_ancestors: Dict[str, List[str]] = {} + + def _ancestors(self): + return { + **self._state_ancestors, + **self._transition_ancestors, + **self._parameter_ancestors, + } + + def keys(self): + return self.abstraction.keys() + + def values(self): + return self.abstraction.values() + + def items(self): + return self.abstraction.items() + + def __getitem__(self, key): + return self.abstraction[key] + + def __setitem__(self, key, value): + self.abstraction[key] = value + + def get(self, key, default=None): + # Custom logic here + if key in self: + return self.abstraction[key] + else: + return default + + def is_transition_abstracted(self, t: Transition) -> bool: + return any([s for s in t.input + t.output if s in self.keys()]) + + def abstract_transition(self, t: Transition) -> Transition: + return Transition( + id=t.id, + input=[self.abstraction.get(i, i) for i in t.input], + output=[self.abstraction.get(i, i) for i in t.output], + grounding=t.grounding, + properties=t.properties, + ) + + def abstract_states(self): + abstract_state_ids = set( + [self[bs] for bs in self.base_states if bs in self.abstraction] + ) + return { + ab: State( + id=ab, name=ab, description=None, grounding=None, units=None + ) + for ab in abstract_state_ids + } + + def set_parameters( + self, base_param_bounds, new_rates, aggregated_rates_and_parameters + ): + # abstraction_params = set([ + # p + # for arp in aggregated_rates_and_parameters + # for p in arp["parameters"].values]) + + self.parameters = { + new_rates[i].target: { + str(p): { + "lb": min( + [ + base_param_bounds[str(p1)].lb + for p1, v in arp["parameters"].items() + if v == p + ] + ), + "ub": max( + [ + base_param_bounds[str(p1)].ub + for p1, v in arp["parameters"].items() + if v == p + ] + ), + } + for p in arp["parameters"].values() + } + for i, arp in enumerate(aggregated_rates_and_parameters) + if len(arp["parameters"]) > 0 + } + # self.parameters = { + # new_rates[i].target: { + # p: { + # "lb": min( + # [ + # base_model.parameter(p1).value + # for p1, v in arp["parameters"].items() + # if v == p + # ] + # ), + # "ub": max( + # [ + # base_model.parameter(p1).value + # for p1, v in arp["parameters"].items() + # if v == p + # ] + # ), + # } + # for p in arp["parameters"].values() + # } + # for i, arp in enumerate(aggregated_rates_and_parameters) + # if len(arp["parameters"]) > 0 + # } + # bounded_params = { + # p + # for trans_id, p_bounds in base_model.parameters.items() + # for p in p_bounds + # } + # param_min_value = { + # p: min( + # [ + # bounds["lb"] + # for trans_id, p_bounds in base_model.parameters.items() + # for p1, bounds in p_bounds.items() + # if p1 == p + # ] + # ) + # for p in bounded_params + # } + # param_max_value = { + # p: max( + # [ + # bounds["ub"] + # for trans_id, p_bounds in self.parameters.items() + # for p1, bounds in p_bounds.items() + # if p1 == p + # ] + # ) + # for p in bounded_params + # } + # self.parameters = { + # trans_id: { + # p1: ( + # bounds + # if p1 not in param_min_value + # else {"lb": param_min_value[p1], "ub": param_max_value[p1]} + # ) + # for p1, bounds in p_bounds.items() + # } + # for trans_id, p_bounds in self.parameters.items() + # } + + def abstract_strata(self, state, state_strata): + # Combine the strata for states that map to state in self + mapped_state_valuations = { + k: state_strata[k] + for k, v in self.abstraction.items() + if v == state + } + valuation_attrs = { + k + for v in mapped_state_valuations.values() + for k in v.values.keys() + } + valuation = StratumValuation( + values={ + attr: StratumAttributeValueSet( + values={ + v + for s, strat in mapped_state_valuations.items() + for v in strat.values[attr].values + } + ) + for attr in valuation_attrs + } + ) + return valuation + + # if need to combine v1, v2 that have different attrs, then + # v1 = {a1: [v1, v2]}, v2 = {a2: [v3, v4]}, intrepret as: + # v1 = {a1: [v1, v2], a2: all(vals(a2))}, v2 = {a1: all(vals(a1)), a2: [v3, v4]} + + +class StrataTransition(BaseModel): + input_stratum: Optional[StratumValuation] = None + output_stratum: Optional[StratumValuation] = None + + def __str__(self): + return f"_{self.input_stratum}_to_{self.output_stratum}" + + def __repr__(self): + return str(self) + + def __hash__(self): + return hash(self.input_stratum) + hash(self.output_stratum) + + def input_attributes(self): + in_attrs = ( + set(self.input_stratum.values.keys()) + if self.input_stratum + else set() + ) + return in_attrs + + def output_attributes(self): + out_attrs = ( + set(self.output_stratum.values.keys()) + if self.output_stratum + else set() + ) + return out_attrs + + def attributes(self): + in_attrs = self.input_attributes() + out_attrs = self.output_attributes() + attributes = in_attrs.union(out_attrs) + return attributes + + def num_input_interpretations(self, strata_attributes=set([])): + num_strata = self.input_stratum.num_interpretations( + self.input_attributes().union(strata_attributes) + ) + return num_strata + + def num_output_interpretations(self, strata_attributes=set([])): + num_strata = self.output_stratum.num_interpretations( + self.output_attributes().union(strata_attributes) + ) + return num_strata + + +class StateTransition(BaseModel): + input: Optional[State] = None + input_stratum: Optional[StratumValuation] = None + output: Optional[State] = None + output_stratum: Optional[StratumValuation] = None + strata_transition: StrataTransition + + def __str__(self): + return f"{self.input.id}({self.strata_transition.input_stratum}) -> {self.output.id}({self.strata_transition.output_stratum})" + + def __repr__(self): + return str(self) + + def id(self, state_vars: List[str] = None): + input_id = ( + self.input_id() + if state_vars is None or self.input_id() in state_vars + else "_" + ) + output_id = ( + self.output_id() + if state_vars is None or self.output_id() in state_vars + else "_" + ) + return f"{input_id}_to_{output_id}" + + def input_id(self): + # return f"{self.input.id}_{self.input_stratum}" + return f"{self.input.id}" + + def output_id(self): + # return f"{self.output.id}_{self.output_stratum}" + return f"{self.output.id}" + + def is_natural_transition(self): + return self.input != self.output + + def stratify(self, var, var_strata, strata_transition, stratification): + # (src, params, dest) = strata_transition + # In order to stratify a state transition, to match the + # strata_transition, the strata_transition must be subsumed + strata_attr = stratification.strata_attribute() + new_st = self.model_copy(deep=True) + if ( + self.input + and self.input == var + and strata_transition + and strata_transition.input_stratum.intersection( + new_st.strata_transition.input_stratum + ) + is not None + ): + i_var = stratification._new_vars[ + strata_transition.input_stratum.intersection(var_strata) + ] + new_st.input = State(id=i_var.id, name=i_var.name) + if new_st.strata_transition.input_stratum: + new_st.strata_transition.input_stratum.values.update( + strata_transition.input_stratum.values + ) + else: + new_st.strata_transition.input_stratum.values = ( + strata_transition.input_stratum.values + ) + + if ( + self.output + and self.output == var + and strata_transition.output_stratum + and strata_transition.output_stratum.intersection( + new_st.strata_transition.output_stratum + ) + is not None + ): + o_var = stratification._new_vars[ + strata_transition.output_stratum.intersection(var_strata) + ] + new_st.output = State(id=o_var.id, name=o_var.name) + + if new_st.strata_transition.output_stratum: + new_st.strata_transition.output_stratum.values.update( + strata_transition.output_stratum.values + ) + else: + new_st.strata_transition.output_stratum.values = ( + strata_transition.output_stratum.values + ) + + return new_st + + def num_input_interpretations(self): + return self.strata_transition.num_input_interpretations() + + def num_output_interpretations(self): + return self.strata_transition.num_output_interpretations() + + def stratification_allowed(self, strata_transition): + # allowed if strata_transition src and dest are consistent with input and output + # (src, params, dest) = strata_transition + + return all( + [ + ( + strata_transition.input_stratum is None + or strata_transition.input_stratum[attr].is_subset( + self.strata_transition.input_stratum[attr] + ) + ) + and ( + strata_transition.output_stratum is None + or strata_transition.output_stratum[attr].is_subset( + self.strata_transition.output_stratum[attr] + ) + ) + for attr in strata_transition.attributes() + ] + ) + + def expand_strata_transitions( + self, stratification: Stratification, self_transition=False + ) -> List[StrataTransition]: + input_stratum = self.strata_transition.input_stratum + output_stratum = self.strata_transition.output_stratum + strata_attr = next( + iter(stratification.stratum.values.keys()) + ) # Assumes one attribute at a time + strata_levels = stratification.valuations() + # FIXME the logic below is wrong, I think it should be intersects + # Stratification will always specialize stratum. The possible levels are + # those that would result in specializations. + # I think the confusion is the semantics of the valuations and how they combined + # implicit and explict attribute levels. + # {"a1": [v1, v2], "a2": [v3, v4]} + possible_input_levels = ( + [ + sl + for sl in strata_levels + if sl[strata_attr].is_subset( + input_stratum[strata_attr] + ) # sl.is_subset(input_stratum) + ] + if stratification.base_state == self.input.id + else [input_stratum] + ) + possible_output_levels = ( + [ + sl + for sl in strata_levels + if sl[strata_attr].is_subset( + output_stratum[strata_attr] + ) # sl.is_subset(output_stratum) + ] + if stratification.base_state == self.output.id + else [output_stratum] + ) + legal_strata_transitions = [] + for input_level in possible_input_levels: + for output_level in possible_output_levels: + if ( + stratification.cross_strata_transitions + and self.is_natural_transition() + ) or ( + stratification.self_strata_transitions and self_transition + ): + # allow levels to be different + legal_strata_transitions.append( + StrataTransition( + input_stratum=input_level.intersection( + self.strata_transition.input_stratum + ), + output_stratum=output_level.intersection( + self.strata_transition.output_stratum + ), + ) + ) + elif input_level.subsumed_by( + output_level + ) or output_level.subsumed_by(input_level): + # levels must be the same + legal_strata_transitions.append( + StrataTransition( + input_stratum=input_level.intersection( + self.strata_transition.input_stratum + ), + output_stratum=output_level.intersection( + self.strata_transition.output_stratum + ), + ) + ) + return legal_strata_transitions + + def abstract_to_concrete(self): + # if either i/o stratum is None, then its all strata + # cases: + # - both None -> false + # - output None -> false + # - input None -> true + # - neither None -> is_subset + # + # predicate: input is None or (output is not None and is_subset) + return ( + self.strata_transition.input_stratum is None + and self.strata_transition.output_stratum is not None + ) or ( + self.strata_transition.input_stratum is not None + and self.strata_transition.output_stratum is not None + and self.strata_transition.output_stratum.subsumed_by( + self.strata_transition.input_stratum, strict=True + ) + ) + + +class TransitionMap(BaseModel): + state_transitions: List[StateTransition] = [] + cross_stratam_transition_parameters: List[Parameter] = [] + # abstract_input_parameters: List[Parameter] = [] + transition_id: str = None + + def __init__(self, **kwargs): + super().__init__(**kwargs) + + def initialize( + self, transition: Transition, model: "GeneratedPetrinetModel" + ): + self.transition_id = transition.id + i_o_vars = set(transition.input).union(set(transition.output)) + remaining_inputs = transition.input.copy() + remaining_outputs = transition.output.copy() + + # Identify variables that are persistence + for v in transition.input: + if v in remaining_outputs: + self.state_transitions.append( + StateTransition( + input=model.state_var(v).model_copy(), + output=model.state_var(v).model_copy(), + strata_transition=StrataTransition( + input_stratum=model.state_strata(v).model_copy( + deep=True + ), + output_stratum=model.state_strata(v).model_copy( + deep=True + ), + ), + ) + ) + remaining_inputs.remove(v) + remaining_outputs.remove(v) + + # Lexically associate remaining variables as transition pairs + for i in range(0, max(len(remaining_inputs), len(remaining_outputs))): + input_var = ( + model.state_var(remaining_inputs[i]) + if i < len(remaining_inputs) + else None + ) + output_var = ( + model.state_var(remaining_outputs[i]) + if i < len(remaining_outputs) + else None + ) + st = StateTransition( + input=input_var, + output=output_var, + strata_transition=StrataTransition( + input_stratum=model.state_strata(input_var).model_copy(), + output_stratum=model.state_strata(output_var).model_copy(), + ), + ) + self.state_transitions.append(st) + + # Identify relevant abstract input and cross-strata transition probabilities + rates = model._transition_rate(transition) + if len(rates) > 0: + rate = str(rates[0]) + params = model._semantics_parameters() + for ( + parameter_id, + parameter, + ) in params.items(): + if parameter_id in rate: + # if "p_abstract" in parameter_id: + # self.abstract_input_parameters.append(parameter) + # el + if parameter_id.startswith("p_cross_"): + self.cross_stratam_transition_parameters.append( + parameter + ) + + # def abstract_input_probability(self, state_var): + # return f"p_abstract_{self.transition_id}_{state_var.id}" + + def id(self, state_transitions, state_vars: List[str] = None): + return "___".join( + s.id(state_vars=state_vars) for s in state_transitions + ) + + def cross_strata_transition_probability(self, state_transitions): + return f"p_cross_{self.id(state_transitions, state_vars=None)}_" + + def inputs(self) -> List[State]: + return [st.input.id for st in self.state_transitions] + + def outputs(self) -> List[State]: + return [st.output.id for st in self.state_transitions] + + def var_ids(self) -> List[State]: + return list(set(self.inputs()).union(set(self.outputs()))) + + def stratify( + self, + stratification, + var, + var_strata, + strata_transitions, + transition_probability, + ): + # new_sts = [] + # cst_params = [] + # ai_parameters = [] + tm = TransitionMap() + for strata_transition, state_transition in zip( + strata_transitions, self.state_transitions + ): + if strata_transition: + if state_transition.stratification_allowed(strata_transition): + str_st = state_transition.stratify( + var, var_strata, strata_transition, stratification + ) + # FIXME modify ai_parameters + # if str_st.abstract_to_concrete(): + # abstract_parameter_name = ( + # self.abstract_input_probability(str_st.input) + # ) + # num_interpretations = ( + # strata_transition.num_input_interpretations(strata_attributes=strata_transition.attributes()) + # ) + # abstract_parameter = Parameter( + # id=abstract_parameter_name, + # name=abstract_parameter_name, + # description=abstract_parameter_name, + # value=1.0 / float(num_interpretations), + # ) + # tm.abstract_input_parameters.append(abstract_parameter) + # stratification._parameter_ancestors[abstract_parameter_name] = self.transition_id + tm.state_transitions.append(str_st) + else: + return None + else: + tm.state_transitions.append(state_transition) + # FIXME modify cst_parameters + if transition_probability < 1.0: + cst_param_name = self.cross_strata_transition_probability( + tm.state_transitions + ) + num_interpretations = str_st.num_output_interpretations() + tm.cross_stratam_transition_parameters.append( + Parameter( + id=cst_param_name, + description=cst_param_name, + value=transition_probability, + ) + ) + stratification._parameter_ancestors[cst_param_name] = ( + self.transition_id + ) + return tm + + # def abstract_to_concrete(self): + # return [ + # st for st in self.state_transitions if st.abstract_to_concrete() + # ] + + class GeneratedPetriNetModel(AbstractPetriNetModel): model_config = ConfigDict(arbitrary_types_allowed=True) @@ -303,6 +1215,23 @@ class GeneratedPetriNetModel(AbstractPetriNetModel): _transition_rates_cache: Dict[str, Union[sympy.Expr, str]] = {} _observables_cache: Dict[str, Union[str, FNode, sympy.Expr]] = {} _transition_rates_lambda_cache: Dict[str, Union[Callable, str]] = {} + _transition_maps: Dict[str, TransitionMap] = {} + + def transition_map(self, transition: Transition) -> TransitionMap: + if transition.id not in self._transition_maps: + transition_map = TransitionMap() + transition_map.initialize(transition, self) + self._transition_maps[transition.id] = transition_map + return self._transition_maps[transition.id] + + def num_elements(self): + num_elts = ( + len(self._state_var_names()) + + len(self._parameter_names()) + + len(self.observables()) + + len(list(self._transitions())) + ) + return num_elts def observables(self): return self.petrinet.semantics.ode.observables @@ -398,6 +1327,13 @@ def _get_init_value( return value + def _semantics_parameters(self): + return ( + {p.id: p for p in self.petrinet.semantics.ode.parameters} + if self.petrinet.semantics + else {} + ) + def _parameter_lb(self, param_name: str): return next( ( @@ -427,7 +1363,8 @@ def _state_var_names(self) -> List[str]: return [self._state_var_name(s) for s in self._state_vars()] def _observable_names(self) -> List[str]: - return [self._observable_name(s) for s in self.observables()] + obs = self.observables() + return [self._observable_name(s) for s in obs] if obs else [] def _transitions(self) -> List[Transition]: return self.petrinet.model.transitions @@ -489,10 +1426,13 @@ def _transition_rate(self, transition, sympify=False, get_lambda=False): unreserved_symbols[-1] = self._time_var_id( self._time_var() ) - t_rates_lambda = [ - sympy.lambdify(unreserved_symbols, t, cse=True) - for t in t_rates - ] + try: + t_rates_lambda = [ + sympy.lambdify(unreserved_symbols, t, cse=True) + for t in t_rates + ] + except SyntaxError as e: + raise e self._transition_rates_cache[transition.id] = t_rates self._transition_rates_lambda_cache[transition.id] = ( t_rates_lambda @@ -511,6 +1451,22 @@ def _transition_id(self, transition): def _state_var_id(self, state_var): return self._state_var_name(state_var) + def state_var(self, state_var_id): + try: + return next( + iter( + [ + s + for s in self._state_vars() + if self._state_var_id(s) == state_var_id + ] + ) + ) + except StopIteration: + raise Exception( + f"There is no state_var in model with id: {state_var_id}" + ) + def _parameter_names(self): if hasattr(self.petrinet.semantics, "ode"): return [p.id for p in self.petrinet.semantics.ode.parameters] @@ -528,6 +1484,17 @@ def _parameter_values(self): else: return {} + def _parameter_bounds(self) -> Dict[str, Interval]: + if hasattr(self.petrinet.semantics, "ode"): + return { + p.id: Interval( + lb=self._parameter_lb(p.id), ub=self._parameter_ub(p.id) + ) + for p in self.petrinet.semantics.ode.parameters + } + else: + return {} + def _variable_values(self): values = {} if hasattr(self.petrinet.semantics, "ode"): @@ -596,19 +1563,22 @@ def formulate_bounds(self): for s in self.petrinet.model.states } - abstraction_metadata = self.petrinet.metadata.get("abstraction", {}) + abstracted_parameters = self.petrinet.metadata.get( + "abstracted_parameters", {} + ) symbols = self._symbols() str_to_symbol = {s: sympy.Symbol(s) for s in symbols} bound_symbols = { sympy.Symbol(s): { bound: sympy.Symbol(f"{s}_{bound}") for bound in ["lb", "ub"] - } + } for s in symbols } - for _, params in abstraction_metadata.get("parameters", {}).items(): + for _, params in abstracted_parameters.items(): for p in params: bound_symbols[sympy.Symbol(p)] = { - bound: sympy.Symbol(f"{p}_{bound}") for bound in ["lb", "ub"] + bound: sympy.Symbol(f"{str(p)}_{bound}") + for bound in ["lb", "ub"] } substituter = SympyBoundedSubstituter( bound_symbols=bound_symbols, str_to_symbol=str_to_symbol @@ -617,9 +1587,8 @@ def formulate_bounds(self): def bound_expression(targets, e, bound, metadata): targets = { - sympy.Symbol(k):sympy.Symbol(v) - for k, v in targets.items() - } + sympy.Symbol(k): sympy.Symbol(v) for k, v in targets.items() + } e_s = sympy.sympify(e, substituter.str_to_symbol) # targets are forced substitutions @@ -630,11 +1599,16 @@ def bound_expression(targets, e, bound, metadata): # for k, v in metadata.items(): # e = e.replace(k, k.replace("agg", bound)) - return ( - substituter.minimize(targets, e_s) - if bound == "lb" - else substituter.maximize(targets, e_s) - ) + try: + result = ( + substituter.minimize(targets, e_s) + if bound == "lb" + else substituter.maximize(targets, e_s) + ) + except KeyError as e: + raise e + + return result def lb_expression(targets, e, symbols, metadata): return bound_expression(targets, e, "lb", metadata) @@ -685,9 +1659,9 @@ def ub_expression(targets, e, symbols, metadata): }, r.expression, symbols, - abstraction_metadata.get( - "parameters", {} - ).get(r.target, {}), + abstracted_parameters.get( + r.target, {} + ), ) ), ), @@ -729,9 +1703,9 @@ def ub_expression(targets, e, symbols, metadata): {output_id: f"{output_id}_{bound}"}, r.expression, symbols, - abstraction_metadata.get( - "parameters", {} - ).get(r.target, {}), + abstracted_parameters.get( + r.target, {} + ), ) ), ), @@ -761,7 +1735,7 @@ def ub_expression(targets, e, symbols, metadata): f"{p}_lb": bounds["lb"], f"{p}_ub": bounds["ub"], } - for t, params in abstraction_metadata.get("parameters", {}).items() + for t, params in abstracted_parameters.items() for p, bounds in params.items() } @@ -799,7 +1773,7 @@ def ub_expression(targets, e, symbols, metadata): for bnd in v.values() ] - return GeneratedPetriNetModel( + new_model = GeneratedPetriNetModel( petrinet=Model( header=self.petrinet.header, properties=self.petrinet.properties, @@ -818,198 +1792,111 @@ def ub_expression(targets, e, symbols, metadata): metadata=self.petrinet.metadata, ) ) + new_model.petrinet.metadata["transformation_description"] = ( + f"Bounded({new_model.petrinet.metadata['transformation_description']})" + if "transformation_description" in new_model.petrinet.metadata + else "Bounded()" + ) + return new_model - def stratified_trans_id(self, transition, index, strata): - return f"{transition.id}_{'_'.join(strata)}_{index}" - - def stratified_state_id(self, state_var, index, strata): - return f"{state_var}_{'_'.join(strata)}_{index}" - - def stratified_parameter_id(self, parameter, index, strata): - return f"{parameter}_{'_'.join(strata)}_{index}" + # def stratum(self, s: State) -> Stratum: + # # Actual Stratum of s + # s_stratum = Stratum() + # pass - def stratify_transition( - self, - transition: Transition, - state_var: str, - strata: List[str], - strata_parameters: Optional[List[str]] = None, - strata_transition=False, - ): - - # Need to determine which strata transitions occur and involving what variables. - strata_transitions = { - (input_strata, output_strata) - for input_strata in strata - for output_strata in strata - if strata_transition or input_strata == output_strata - } + # def strata(self, s: State) -> List[Stratum]: + # # Stratum and Peer strata of s + # pass - # Determine which instances of state_var are free wrt. assigning strata + def stratified_trans_id(self, transition, strata_transitions): + return f"{transition.id}_{'_'.join([str(st) for st in strata_transitions])}" - i_o_vars = set(transition.input).union(set(transition.output)) + def stratified_state_id(self, state_var, index, strata): + return f"{state_var}_{'_'.join([str(s) for s in strata])}_{index}" - # Identify variables already assigned to strata - fixed_inputs = {} - for var in transition.input: - var_strata = [s for s in strata if f"_{s}" in var] - v_s = next(iter(var_strata)) if len(var_strata) > 0 else None - if v_s is not None: - fixed_inputs[var] = v_s - - fixed_outputs = {} - for var in transition.output: - var_strata = [s for s in strata if f"_{s}" in var] - v_s = next(iter(var_strata)) if len(var_strata) > 0 else None - if v_s is not None: - fixed_outputs[var] = v_s - - # Of unstratified, identify those that persist within strata, or can change - - input_counts = Counter( - [i for i in transition.input if i not in fixed_inputs] - ) - output_counts = Counter( - [i for i in transition.output if i not in fixed_outputs] + def stratified_parameter_id(self, parameter, strata_transition): + return ( + f"{parameter}__{'_'.join([str(st) for st in strata_transitions])}" ) - # positive counts are variables occurring more in the output - var_counts = { - var: (output_counts[var] if var in output_counts else 0) - - (input_counts[var] if var in input_counts else 0) - for var in i_o_vars - } - free_inputs = [] - free_outputs = [] - persistence = [] - for var, c in var_counts.items(): - if c == 0: - persistence += [var] * input_counts[var] - elif c < 0: - free_inputs += [var] * abs(c) - if var in output_counts: - persistence += [var] * output_counts[var] - else: - free_outputs += [var] * c - if var in input_counts: - persistence += [var] * input_counts[var] - - # Each variable in persistence is in same strata of i and o - # Each free i/o is paired with a free or fixed i/o for strata transitions + def transformations(self): + return ( + self.petrinet.metadata["transformations"] + if "transformations" in self.petrinet.metadata + else [] + ) - # Start by constructing all persistences - # The possible persistences are all combinations of strata and persistence pairs - persistence_cross_strata = itertools.product( - *[itertools.product([var], strata) for var in persistence] + def state_strata(self, state: Union[State, str]) -> StratumValuation: + s_id = state if isinstance(state, str) else state.id + if ( + self.petrinet.metadata + and "state_strata" in self.petrinet.metadata + and s_id in self.petrinet.metadata["state_strata"] + ): + return self.petrinet.metadata["state_strata"][s_id] + else: + return StratumValuation() + + def strata_self_transitions(self, stratification, state_var, strata): + transition = Transition( + id=f"self_{state_var.id}", + input=[state_var.id], + output=[state_var.id], + grounding=None, + properties={"name": f"self_{state_var.id}"}, ) - persistence_i_o_lists = [ - ( - [f"{var}_{strata}" for var, strata in persistences], - [f"{var}_{strata}" for var, strata in persistences], + strata_levels = stratification.valuations() + strata_transitions = [ + StrataTransition( + input_stratum=input_strata.model_copy(), + output_stratum=output_strata.model_copy(), ) - for persistences in persistence_cross_strata + for input_strata in strata_levels + for output_strata in strata_levels + if input_strata != output_strata ] - - # Extend i/o with variables with fixed strata - fixed_i_o_lists = [(fixed_inputs, fixed_outputs)] - - # Track whether we need to introduce a strata transition probability - split_output_strata = False - - i_o_mapping = [[]] - for i, s1 in fixed_inputs.items(): - next_i_o_mapping = [] - for mapping in i_o_mapping: - # find all outputs that i can map to - i_mappings = [] - for o, s2 in fixed_outputs: - if strata_transition or s1 == s2: - # Need to check if extension is legal - extended_mapping = mapping + [((i, s1), (o, s2))] - i_mappings.append(extended_mapping) - for o in free_outputs: - o_labels = strata if o == state_var.id else [None] - for s2 in o_labels: - if strata_transition or s1 == s2 or s2 is None: - # Need to check if extension is legal - extended_mapping = mapping + [((i, s1), (o, s2))] - i_mappings.append(extended_mapping) - # if s1 != s2: - if s2 is not None: - split_output_strata = True - next_i_o_mapping += i_mappings - i_o_mapping = next_i_o_mapping - for i in free_inputs: - next_i_o_mapping = [] - i_labels = strata if i == state_var.id else [None] - for s1 in i_labels: - for mapping in i_o_mapping: - # find all outputs that i can map to - i_mappings = [] - for o, s2 in fixed_outputs: - if strata_transition or s1 == s2: - # Need to check if extension is legal - extended_mapping = mapping + [((i, s1), (o, s2))] - i_mappings.append(extended_mapping) - for o in free_outputs: - o_labels = strata if o == state_var.id else [None] - for s2 in o_labels: - if ( - strata_transition - or s1 == s2 - or s1 is None - or s2 is None - ): - # Need to check if extension is legal - extended_mapping = mapping + [ - ((i, s1), (o, s2)) - ] - i_mappings.append(extended_mapping) - # if s1 != s2 and s2 is not None: - if s2 is not None: - split_output_strata = True - next_i_o_mapping += i_mappings - i_o_mapping = next_i_o_mapping - - persistence_strata = [ - m - for m in itertools.product( + tr_map = self.transition_map(transition) + new_transitions = [] + new_transition_maps = [] + new_rates = [] + new_parameters = [] + old_parameters = self._semantics_parameters() + state_strata_transitions = list( + itertools.product( *[ - [ - ((p, s), (p, s)) - for s in (strata if p == state_var.name else [None]) - ] - for p in persistence + ( + strata_transitions + if (state_var == st.input or state_var == st.output) + else [None] + ) + for st in tr_map.state_transitions ] ) - ] - iop_mappings = [ - m + [l for l in p] for p in persistence_strata for m in i_o_mapping - ] - - def label_io(variable, stratum): - return ( - f"{variable}_{stratum}" - if f"_{stratum}" not in variable and stratum is not None - else variable + ) + transition_probability_value = 1.0 / float( + len(state_strata_transitions) + ) # FIXME needs to use the number of interpretations making each transition as a weight + for state_strata_transition in state_strata_transitions: + strat_tr_map = tr_map.stratify( + stratification, + state_var, + self.state_strata(state_var), + state_strata_transition, + transition_probability_value, ) - - labeled_iop_mappings = [ - [ - (label_io(*io_pair[0]), label_io(*io_pair[1])) - for io_pair in mapping - ] - for mapping in iop_mappings - ] - - new_transitions = [ - Transition( - id=self.stratified_trans_id(transition, id, strata), - input=[m[0] for m in mapping], - output=[m[1] for m in mapping], + if strat_tr_map is None: + continue + new_transition_maps.append(strat_tr_map) + new_id = self.stratified_trans_id( + transition, state_strata_transition + ) + new_t = Transition( + id=new_id, + input=strat_tr_map.inputs(), + output=strat_tr_map.outputs(), grounding=transition.grounding, properties=Properties( - name=self.stratified_trans_id(transition, id, strata), + name=new_id, description=( f"{transition.properties.description} Stratified." if transition.properties.description @@ -1017,90 +1904,324 @@ def label_io(variable, stratum): ), ), ) - for id, mapping in enumerate(labeled_iop_mappings) - ] + new_transitions.append(new_t) + try: + transition_probability = next( + iter(strat_tr_map.cross_stratam_transition_parameters) + ) + except StopIteration as e: + self._logger.exception( + f"Did not generate a cross strata transition probability as expected, {e}" + ) + raise e + new_rate = Rate( + target=new_id, expression=transition_probability.id + ) + new_rates.append(new_rate) + if transition_probability not in new_parameters: + new_parameters.append(transition_probability) + + return new_transitions, new_rates, new_parameters + + def stratify_transition( + self, transition: Transition, stratification: Stratification + ): + + state_var = self.state_var(stratification.base_state) + strata = stratification.stratum + strata_parameters = stratification.base_parameters + cross_strata_transitions = stratification.cross_strata_transitions + + assert ( + len(strata.values.keys()) == 1 + ), f"Only support stratification by one attribute at a time, got: {list(strata.keys())}" + strata_attr = stratification.strata_attribute() + + # Need to determine which strata transitions occur and involving what variables. + strata_levels = stratification.valuations() + tr_map = self.transition_map(transition) + possible_strata_transitions = [] + + for st in tr_map.state_transitions: + possible_strata_transitions.append( + st.expand_strata_transitions( + stratification, + self_transition=transition.id.startswith("self_"), + ) + ) + + new_transitions = [] + new_transition_maps = [] + new_rates = [] + new_parameters = [] + + # grouped_cross_transition_parameters = {} + # grouped_abstract_transition_parameters = {} old_rate = self._transition_rate(transition)[0] + old_parameters = self._semantics_parameters() + strata_transitions = list( + itertools.product(*possible_strata_transitions) + ) - new_rates = [ - Rate( - target=self.stratified_trans_id(transition, index, strata), - expression=( - f"p_{self.stratified_state_id(state_var.id, index, strata)}*" - if split_output_strata - else "" + # Need to know the probability of each transition. For those with the same input states, + # we need to distribute the probability over the edges. + # num_cross_strata_transitions = len(possible_output_levels) + # if len(tr_map.cross_stratam_transition_parameters) == 0 else int(1.0/tr_map.cross_stratam_transition_parameters[0].value) + + strata_transitions_by_input = {} + for sst in strata_transitions: + input_key = tuple(tr.input_stratum for tr in sst) + input_key_transitions = strata_transitions_by_input.get( + input_key, [] + ) + input_key_transitions.append(sst) + strata_transitions_by_input[input_key] = input_key_transitions + + output_strata_attributes = set( + a + for st_tr in strata_transitions + for t in st_tr + for a in t.output_attributes() + ) + # Assume that all combinations of strata transitions are possible for now, and will normalize after processing all transitions + total_interpretations = pow( + prod(len(a.values) for a in output_strata_attributes), + len(tr_map.state_transitions), + ) + + strata_transition_probability_by_input = {} + for ( + input_key, + input_strata_transitions, + ) in strata_transitions_by_input.items(): + num_interpretations = [ + prod([float(st.num_output_interpretations()) for st in sts]) + for sts in input_strata_transitions + ] + transition_probability = [ + val / total_interpretations for val in num_interpretations + ] + strata_transition_probability_by_input[input_key] = ( + transition_probability + ) + input_keys = list(strata_transitions_by_input.keys()) + input_keys.sort() + for input_key in input_keys: + for state_strata_transition, transition_probability in zip( + strata_transitions_by_input[input_key], + strata_transition_probability_by_input[input_key], + ): + strat_tr_map = tr_map.stratify( + stratification, + state_var, + self.state_strata(state_var), + state_strata_transition, + transition_probability, ) - + ( - reduce( - lambda x, y: x.replace( - y, self.stratified_parameter_id(y, index, strata) + if strat_tr_map is None: + continue + new_transition_maps.append(strat_tr_map) + + relevant_new_state_var_ids = [ + s.id + for s in stratification._new_vars.values() + if s.id in strat_tr_map.var_ids() + ] + + new_id = self.stratified_trans_id( + transition, state_strata_transition + ) + new_t = Transition( + id=new_id, + input=strat_tr_map.inputs(), + output=strat_tr_map.outputs(), + grounding=transition.grounding, + properties=Properties( + name=new_id, + description=( + f"{transition.properties.description} Stratified." + if transition.properties.description + else transition.properties.description ), - strata_parameters, - str(old_rate), + ), + ) + new_transitions.append(new_t) + + # Stratify parameters + to_be_stratified_parameters = set( + [p for p in strata_parameters if p in str(old_rate)] + ) + + param_subs = {} + for p in to_be_stratified_parameters: + param_subs[p] = ( + f"{p}_{strat_tr_map.id(strat_tr_map.state_transitions, state_vars=relevant_new_state_var_ids)}" + ) + if ( + isinstance(strata_parameters, dict) + and p in strata_parameters + ): + try: + st_tr = next( + iter( + [ + st + for st in strata_parameters[p] + if any( + [ + st == st1.strata_transition + for st1 in strat_tr_map.state_transitions + ] + ) + ] + ) + ) + value = strata_parameters[p][st_tr] + except StopIteration as e: + raise e + + else: + value = old_parameters[p].value + new_parameters.append( + Parameter( + id=param_subs[p], + name=param_subs[p], + description=f"{p} stratified as {param_subs[p]}", + value=value, + distribution=old_parameters[p].distribution, + units=old_parameters[p].units, + grounding=old_parameters[p].grounding, + ) ) - if strata_parameters - else str(old_rate) - ).replace( - state_var.id, - next(iter([i for i in t.input if state_var.id in i])), - ), - ) - # for t_id, r in old_rates.items() - for index, t in enumerate(new_transitions) - ] - original_parameters = { - sp: next( - iter( - [ - p - for p in self.petrinet.semantics.ode.parameters - if p.id == sp - ] + stratification._parameter_ancestors.update( + {v: k for k, v in param_subs.items()} ) - ) - for sp in strata_parameters - } - original_parameter_values = { - p: self._parameter_values()[p] for p in strata_parameters - } - new_parameters = [ - Parameter( - id=self.stratified_parameter_id(sp, index, strata), - name=self.stratified_parameter_id(sp, index, strata), - description=f"{sp} stratified as {self.stratified_parameter_id(sp, index, strata)}", - value=original_parameter_values[sp], - distribution=original_parameters[sp].distribution, - units=original_parameters[sp].units, - grounding=original_parameters[sp].grounding, - ) - for index, t in enumerate(new_transitions) - for sp in strata_parameters - if sympy.Symbol(sp) in old_rate.free_symbols - ] + [ - Parameter( - id=f"p_{self.stratified_state_id(state_var.id, index, strata)}", - name=f"{self.stratified_state_id(state_var.id, index, strata)}", - description=f"{self.stratified_state_id(state_var.id, index, strata)}", - value=str(1.0 / float(len(strata))), - distribution=None, - units=None, - grounding=None, - ) - for index, t in enumerate(new_transitions) - if split_output_strata - ] - return new_transitions, new_rates, new_parameters + input_subs = { + tr_map.state_transitions[i] + .input.id: strat_tr_map.state_transitions[i] + .input.id + for i in range(len(tr_map.state_transitions)) + if tr_map.state_transitions[i].input.id + != strat_tr_map.state_transitions[i].input.id + } - def stratify( - self, - state_var: str, - strata: List[str], - strata_parameters: Optional[List[str]] = None, - strata_transitions=[], - self_strata_transition=False, + abstract_params_not_needed = { + s: 1 + for s in old_rate.free_symbols + if str(s).startswith("p_abstract_") + and len(strat_tr_map.abstract_input_parameters) == 0 + } + cross_params_not_needed = { + s: 1 + for s in old_rate.free_symbols + if str(s).startswith("p_cross_") + and len(strat_tr_map.cross_stratam_transition_parameters) + > 0 + } + all_sub = { + **input_subs, + **param_subs, + **abstract_params_not_needed, + **cross_params_not_needed, + } + rate_expr = old_rate.subs(all_sub) + # for p in strat_tr_map.abstract_input_parameters: + # if p not in new_parameters: + # new_parameters.append(p) + # rate_expr = rate_expr * sympy.Symbol(p.id) + for p in strat_tr_map.cross_stratam_transition_parameters: + if p not in new_parameters: + new_parameters.append(p) + rate_expr = rate_expr * sympy.Symbol(p.id) + new_rate = Rate(target=new_id, expression=str(rate_expr)) + new_rates.append(new_rate) + + return (new_transitions, new_rates, new_parameters) + + def stratify_state(self, stratification: Stratification): + new_vars = {} + new_vars_strata = {} + original_var = self.state_var(stratification.base_state) + old_strata = self.state_strata(original_var) + for valuation in stratification.valuations(): + # valuation_values_keys = list(valuation.values.keys()) + # valuation_values_keys.sort() + # valuation_str = "_".join( + # [ + # f"{attribute}_{valuation.values[attribute]}" + # for attribute in valuation_values_keys + # ] + # ) + new_var_id = f"{original_var.id}_{str(valuation)}" + new_var = State( + id=new_var_id, + name=new_var_id, + description=f"{original_var.description} Stratified wrt. {str(valuation)}", + grounding=original_var.grounding, + units=original_var.units, + ) + new_valuation = valuation.intersection(old_strata) + new_vars[new_valuation] = new_var + new_strata = old_strata.copy(deep=True) + new_strata.values.update(valuation.values) + new_vars_strata[new_var.id] = new_strata + return new_vars, new_vars_strata + + def normalize_stratified_transitions( + self, stratified_transitions_rates_params ): + # group transitions based upon their input states + # normalize the cross strata transition probability within each group\ + + strata_transitions_by_input = {} + cross_strata_parameter_by_transition = {} + for strps in stratified_transitions_rates_params.values(): + trs, rates, params = strps + for trans, rate in zip(trs, rates): + input_key = tuple(trans.input) + input_key_transitions = strata_transitions_by_input.get( + input_key, [] + ) + input_key_transitions.append(trans) + strata_transitions_by_input[input_key] = input_key_transitions + + for param in params: + if param.id in rate.expression and param.id.startswith( + "p_cross_" + ): + cross_strata_parameter_by_transition[trans.id] = param + + if len(cross_strata_parameter_by_transition) > 0: + strata_transition_probability_by_input = {} + for ( + input_key, + input_strata_transitions, + ) in strata_transitions_by_input.items(): + unnormalized_probabilities = [ + cross_strata_parameter_by_transition[t.id].value + for t in input_strata_transitions + if t.id in cross_strata_parameter_by_transition + ] + norm = sum(unnormalized_probabilities) + normalized_probabilities = [ + p / norm for p in unnormalized_probabilities + ] + for t, p in zip( + input_strata_transitions, normalized_probabilities + ): + try: + if t.id in cross_strata_parameter_by_transition: + cross_strata_parameter_by_transition[ + t.id + ].value = p + except KeyError as e: + raise e + return stratified_transitions_rates_params + + def stratify(self, stratification: Stratification): """ Generate a new model that stratifies self. The 'state_var' will be replaced by one copy per entry in the 'strata' list. The 'strata_parameters', if specified, will be replaced @@ -1134,189 +2255,130 @@ def stratify( _type_ _description_ """ - - # get state variable - state_vars: List[State] = [ - s - for s in self._state_vars() - if self._state_var_name(s) == state_var - ] - assert ( - len(state_vars) == 1 - ), "Found more than one State variable for {state_var}" - original_var = state_vars[0] - new_vars = [ - State( - id=f"{original_var.id}_{level}", - name=f"{original_var.name}_{level}", - description=f"{original_var.description} Stratified wrt. {level}", - grounding=original_var.grounding, - units=original_var.units, - ) - for level in strata - ] - unchanged_vars = [ - s.id for s in self._state_vars() if s != original_var - ] + state_var = stratification.base_state + stratum = stratification.stratum + strata_parameters = stratification.base_parameters + partition = stratification.partition + cross_strata_transitions = stratification.cross_strata_transitions + self_strata_transition = stratification.self_strata_transitions + + # # get state variable + # state_vars: List[State] = [ + # s + # for s in self._state_vars() + # if self._state_var_name(s) == state_var + # ] + # assert ( + # len(state_vars) == 1 + # ), "Found more than one State variable for {state_var}" + # original_var = state_vars[0] + original_var = self.state_var(state_var) + + # valuations = stratum.valuations() if not partition else partition.values + new_vars, new_vars_strata = self.stratify_state(stratification) + stratification._new_vars = new_vars + stratification._new_vars_strata = new_vars_strata + stratification._state_ancestors = { + new_var.id: stratification.base_state + for new_var in new_vars.values() + } # get new transitions - transitions: Dict[str, Transition] = { - t.id: t + transitions_to_stratify: List[Transition] = [ + t for t in self._transitions() if original_var.id in t.input or original_var.id in t.output - } + ] + transitions_to_stratify_ids = [t.id for t in transitions_to_stratify] other_transitions = { - t.id: t for t in self._transitions() if t.id not in transitions - } - - # src_only_transitions: Dict[str, Transition] = { - # t_id: t - # for t_id, t in transitions.items() - # if original_var.id in t.input and original_var.id not in t.output - # } - # dest_only_transitions: Dict[str, Transition] = { - # t_id: t - # for t_id, t in transitions.items() - # if original_var.id not in t.input and original_var.id in t.output - # } - src_and_dest_transitions: Dict[str, Transition] = { - t_id: t - for t_id, t in transitions.items() - if original_var.id in t.input or original_var.id in t.output + t.id: t + for t in self._transitions() + if t.id not in transitions_to_stratify_ids } - # # Replicate transitions where original_var is in source - # new_src_transitions = [ - # Transition( - # id=f"{t.id}_{level}", - # input=[ - # (s if s != original_var.id else f"{s}_{level}") - # for s in t.input - # ], - # output=t.output, - # grounding=t.grounding, - # properties=Properties( - # name=f"{t.properties.name}_{level}", - # description=( - # f"{t.properties.description} Stratified wrt. {level}" - # if t.properties.description - # else t.properties.description - # ), - # ), - # ) - # for t_id, t in src_only_transitions.items() - # for level in strata - # ] - - # # Replicate transitions where original_var is in destination - # new_dest_transitions = [ - # Transition( - # id=f"{t.id}_{level}", - # input=t.input, - # output=[ - # (s if s != original_var.id else f"{s}_{level}") - # for s in t.output - # ], - # grounding=t.grounding, - # properties=Properties( - # name=f"{t.properties.name}_{level}", - # description=( - # f"{t.properties.description} Stratified wrt. {level}" - # if t.properties.description - # else t.properties.description - # ), - # ), - # ) - # for t_id, t in dest_only_transitions.items() - # for level in strata - # ] - - # Replicate transitions where original_var is in source and destination - # Assume that each i/o pair of original_var are of the same strata - # Assume all unpaired i/o is of the same strata - # Assume have equal number of inputs and outputs - # For each - # new_src_dest_transitions - tr_rt_parms = [ - self.stratify_transition( - t, - original_var, - strata, - strata_parameters, - strata_transition=(t_id in strata_transitions), + stratified_transitions_rates_params = { + t_id: self.stratify_transition(t, stratification) + for t_id, t in zip( + transitions_to_stratify_ids, transitions_to_stratify ) - for t_id, t in src_and_dest_transitions.items() - ] - new_transitions = [tr for t in tr_rt_parms for tr in t[0]] - new_rates = [r for t in tr_rt_parms for r in t[1]] - new_parameters = [p for t in tr_rt_parms for p in t[2]] - - # There may be duplicate transition probability parameters between strata when there are multiple transitions that are stratified - # This is ugly because Parameter does not have a hash function - unique_params = [] - for p in new_parameters: - if p not in unique_params: - unique_params.append(p) - new_parameters = unique_params + } - # new_transitions = ( - # new_src_transitions - # + new_dest_transitions - # + new_src_dest_transitions - # ) + if self_strata_transition: + ( + self_strata_transitions, + self_strata_rates, + self_strata_parameters, + ) = self.strata_self_transitions( + stratification, original_var, stratum + ) + for t, r, p in zip( + self_strata_transitions, + self_strata_rates, + self_strata_parameters, + ): + t_id = t.id + stratified_transitions_rates_params[t.id] = ([t], [r], [p]) + # new_model.petrinet.model.transitions.root += ( + # self_strata_transitions + # ) + # new_model.petrinet.semantics.ode.rates += self_strata_rates + # new_model.petrinet.semantics.ode.parameters += ( + # self_strata_parameters + # ) + + # Normalize the cross strata transition probabilities across the new transitions. + # Its possible to generate transitions with the same input, but different output + # from different pre-stratification transitions + normalized_stratified_transitions_rates_params = ( + self.normalize_stratified_transitions( + stratified_transitions_rates_params + ) + ) + + # Transitions + stratification._transition_ancestors = { + st.id: t_id + for t_id, t in normalized_stratified_transitions_rates_params.items() + for st in t[0] + } + new_transitions = [ + tr + for t in normalized_stratified_transitions_rates_params.values() + for tr in t[0] + ] + new_rates = [ + r + for t in normalized_stratified_transitions_rates_params.values() + for r in t[1] + ] + new_parameters = [ + p + for t in normalized_stratified_transitions_rates_params.values() + for p in t[2] + ] - # Modify rates by substituting fresh versions of the strata_parameters - # old_rates = { - # t_id: self._transition_rate(t) for t_id, t in transitions.items() - # } other_rates = { r.target: r for r in self.petrinet.semantics.ode.rates if r.target in other_transitions } - # src_only_rates = [ - # Rate( - # target=f"{t_id}_{level}", - # expression=( - # reduce( - # lambda x, y: x.replace(y, f"{y}_{level}"), - # strata_parameters, - # str(r[0]), - # ) - # if strata_parameters - # else str(r[0]) - # ).replace(state_var, f"{state_var}_{level}"), - # ) - # for t_id, r in old_rates.items() - # if t_id in src_only_transitions - # for level in strata - # ] - - # dest_only_rates = [ - # Rate( - # target=f"{t_id}_{level}", - # expression=( - # reduce( - # lambda x, y: x.replace(y, f"{y}_{level}"), - # strata_parameters, - # str(r[0]), - # ) - # if strata_parameters - # else str(r[0]) - # ).replace(state_var, f"{state_var}_{level}"), - # ) - # for t_id, r in old_rates.items() - # if t_id in dest_only_transitions - # for level in strata - # ] - - # new_rates = src_only_rates + dest_only_rates + src_and_dest_rates - - new_states = new_vars + [ - s for s in self.petrinet.model.states.root if s not in state_vars + new_states = list(new_vars.values()) + [ + s for s in self.petrinet.model.states.root if s != original_var ] + new_model = GeneratedPetriNetModel( + petrinet=Model( + header=self.petrinet.header, + properties=self.petrinet.properties, + model=Model1( + states=new_states, + transitions=new_transitions + + list(other_transitions.values()), + ), + ) + ) + # update with new states by splitting old state values original_init_value = to_sympy( next( @@ -1330,16 +2392,16 @@ def stratify( new_initials = [ i for i in self.petrinet.semantics.ode.initials - if i.target in unchanged_vars + if i.target != original_var.id ] + [ Initial( target=n.id, expression=str(original_init_value / float(len(new_vars))), ) - for n in new_vars + for n in new_vars.values() ] - if strata_parameters is not None: + if len(strata_parameters) > 0: original_parameter_values = { p: self._parameter_values()[p] for p in strata_parameters } @@ -1360,57 +2422,6 @@ def stratify( for p in self.petrinet.semantics.ode.parameters if p.id not in strata_parameters ] - # src_only_parameters = [ - # Parameter( - # id=f"{sp}_{level}", - # name=f"{sp}_{level}", - # description=f"{original_parameters[sp].description} stratified as {sp}_{level}", - # value=original_parameter_values[sp], - # distribution=original_parameters[sp].distribution, - # units=original_parameters[sp].units, - # grounding=original_parameters[sp].grounding, - # ) - # for t_id, r in old_rates.items() - # for sp in strata_parameters - # if t_id in src_only_transitions - # and sympy.Symbol(sp) in old_rates[t_id][0].free_symbols - # for level in strata - # ] - - # dest_only_parameters = [ - # Parameter( - # id=f"{sp}_{level}", - # name=f"{sp}_{level}", - # description=f"{original_parameters[sp].description} stratified as {sp}_{level}", - # value=original_parameter_values[sp], - # distribution=original_parameters[sp].distribution, - # units=original_parameters[sp].units, - # grounding=original_parameters[sp].grounding, - # ) - # for t_id, r in old_rates.items() - # for sp in strata_parameters - # if t_id in dest_only_transitions - # and sympy.Symbol(sp) in old_rates[t_id][0].free_symbols - # for level in strata - # ] - - # src_and_dest_parameters = [ - # Parameter( - # id=f"{sp}_{level_s}_{level_t}", - # name=f"{sp}_{level_s}_{level_t}", - # description=f"{original_parameters[sp].description} stratified as {sp}_{level_s}_{level_t}", - # value=original_parameter_values[sp], - # distribution=original_parameters[sp].distribution, - # units=original_parameters[sp].units, - # grounding=original_parameters[sp].grounding, - # ) - # for t_id, r in old_rates.items() - # for sp in strata_parameters - # if t_id in src_and_dest_transitions - # and sympy.Symbol(sp) in old_rates[t_id][0].free_symbols - # for level_s in strata - # for level_t in strata - # ] new_parameters = ( unchanged_parameters @@ -1421,154 +2432,113 @@ def stratify( # + transition_probability_parameters ) else: - new_parameters = self.petrinet.semantics.ode.parameters + new_parameters += self.petrinet.semantics.ode.parameters - # FIXME update with splits - new_observables = self.petrinet.semantics.ode.observables + # There may be duplicate transition probability parameters between strata when there are multiple transitions that are stratified + # This is ugly because Parameter does not have a hash function + unique_params = [] + for p in new_parameters: + if p not in unique_params: + unique_params.append(p) + new_parameters = unique_params - if self_strata_transition: - self_strata_transitions = [ - Transition( - id=f"p_{state_var}_{level_s}_{level_t}", - input=[f"{state_var}_{level_s}"], - output=[f"{state_var}_{level_t}"], - grounding=None, - properties={"name": f"p_{state_var}_{level_s}_{level_t}"}, - ) - for level_s in strata - for level_t in strata - if level_s != level_t - ] - self_strata_rates = [ - Rate( - target=f"p_{state_var}_{level_s}_{level_t}", - expression=f"{state_var}_{level_s}*p_{state_var}_{level_s}_{level_t}", - ) - for level_s in strata - for level_t in strata - if level_s != level_t - ] - self_strata_parameters = ( + # Remove parameters not appearing in a rate + new_parameters = [ + p + for p in new_parameters + if any( [ - Parameter( - id=f"p_{state_var}_{level_s}_{level_t}", - name=f"p_{state_var}_{level_s}_{level_t}", - description="Transition rate parameter between {state_var} strata {level_s} and {level_t}.", - value=1.0 / float(len(strata)), - ) - for level_s in strata - for level_t in strata - # if level_s != level_t + p.id in r.expression + for r in [*new_rates, *other_rates.values()] ] - if len(transition_probability_parameters) == 0 - else [] - ) - else: - self_strata_transitions = [] - self_strata_rates = [] - self_strata_parameters = [] - - new_model = GeneratedPetriNetModel( - petrinet=Model( - header=self.petrinet.header, - properties=self.petrinet.properties, - model=Model1( - states=new_states, - transitions=[ - *new_transitions, - *other_transitions.values(), - *self_strata_transitions, - ], - ), - semantics=Semantics( - ode=OdeSemantics( - rates=[ - *new_rates, - *other_rates.values(), - *self_strata_rates, - ], - initials=new_initials, - parameters=new_parameters + self_strata_parameters, - observables=new_observables, - time=self.petrinet.semantics.ode.time, - ), - typing=self.petrinet.semantics.typing, - span=self.petrinet.semantics.span, - ), - metadata=self.petrinet.metadata, ) - ) - - return new_model # new_rates, transitions, new_transitions # dest_only_rates #original_var, new_vars, new_transitions - - def abstract(self, state_abstraction: Dict[str, str]): - # Get existing state variables - state_objs = {s.id: s for s in self._state_vars()} + ] - # Check that there is a state variable or parameter for each key in the state_abstraction - assert all( - { - (k in state_objs or k in self._parameter_names()) - for k in state_abstraction.keys() - } - ), f"There are unknown states in the state_abstraction keys: {[k for k in state_abstraction.keys() if not (k in state_objs or k in self._parameter_names())]}" + # FIXME update with splits + new_observables = self.petrinet.semantics.ode.observables - # Check that the state_abstraction maps the keys to a state variable that is not in the state_objs - assert not any( - { - (v in state_objs or v in self._parameter_names()) - for v in state_abstraction.values() - } - ), f"There are unknown states in the state_abstraction values: {[v for v in state_abstraction.values() if (v in state_objs or v in self._parameter_names()) ]}" + new_model.petrinet.semantics = Semantics( + ode=OdeSemantics( + rates=[*new_rates, *other_rates.values()], + initials=new_initials, + parameters=new_parameters, + observables=new_observables, + time=self.petrinet.semantics.ode.time, + ), + typing=self.petrinet.semantics.typing, + span=self.petrinet.semantics.span, + ) - # Create states for values in state_abstraction - new_state_objs = { - v: State( - id=v, name=v, description=None, grounding=None, units=None - ) - for v in set( - [ - v - for k, v in state_abstraction.items() - if k in self._state_var_names() - ] - ) - } + new_metadata = copy.deepcopy(self.petrinet.metadata) + transformations = new_metadata.get("transformations", []) + transformations.append(stratification) + new_metadata["transformations"] = transformations + state_strata = new_metadata.get("state_strata", {}) + state_strata.update(new_vars_strata) + new_metadata["state_strata"] = state_strata + + # ancestors are reltations between states, transitions, and parameters + ancestors = new_metadata.get("ancestors", []) + ancestors.append(stratification._ancestors()) + new_metadata["ancestors"] = ancestors + + # Create new entries for parameter bounds of new parameters + abstracted_parameters = new_metadata.get("abstracted_parameters", {}) + for i, t_id in enumerate(transitions_to_stratify_ids): + old_param_bounds = abstracted_parameters.get(t_id, None) + if old_param_bounds: + for j, nt in enumerate( + stratified_transitions_rates_params[i][0] + ): + abstracted_parameters[nt.id] = copy.deepcopy( + old_param_bounds + ) + for bp in stratification.base_parameters: + # Add stratified parameters, inheriting bounds + if j < len(stratified_transitions_rates_params[2]): + abstracted_parameters[nt.id][ + stratified_transitions_rates_params[2][j] + ] = abstracted_parameters[nt.id][bp] + # Remove base parameters + if bp in abstracted_parameters[nt.id]: + del abstracted_parameters[nt.id][bp] + new_metadata["abstracted_parameters"] = abstracted_parameters + new_model.petrinet.metadata = new_metadata + + # new_model = GeneratedPetriNetModel( + # petrinet=Model( + # header=self.petrinet.header, + # properties=self.petrinet.properties, + # model=Model1( + # states=new_states, + # transitions=[ + # *new_transitions, + # *other_transitions.values(), + # *self_strata_transitions, + # ], + # ), + # semantics=Semantics( + # ode=OdeSemantics( + # rates=[ + # *new_rates, + # *other_rates.values(), + # *self_strata_rates, + # ], + # initials=new_initials, + # parameters=new_parameters + self_strata_parameters, + # observables=new_observables, + # time=self.petrinet.semantics.ode.time, + # ), + # typing=self.petrinet.semantics.typing, + # span=self.petrinet.semantics.span, + # ), + # metadata=new_metadata, + # ) + # ) - new_states = [ - *[ - v - for k, v in state_objs.items() - if k not in state_abstraction.keys() - ], - *new_state_objs.values(), - ] + return new_model # new_rates, transitions, new_transitions # dest_only_rates #original_var, new_vars, new_transitions - # Replace states in the transitions - subbed_state_ids = set(state_abstraction.keys()) - subbed_transitions = [ # transitions not involved in abstraction - t - for t in self.petrinet.model.transitions - if not any( - [s for s in t.input + t.output if s in subbed_state_ids] - ) - ] + [ # transitions with substitutions - Transition( - id=t.id, - input=[ - (state_abstraction[i] if i in state_abstraction else i) - for i in t.input - ], - output=[ - (state_abstraction[i] if i in state_abstraction else i) - for i in t.output - ], - grounding=t.grounding, - properties=t.properties, - ) - for t in self.petrinet.model.transitions - if any([s for s in t.input + t.output if s in subbed_state_ids]) - ] + def group_abstract_transitions(self, subbed_transitions): grouped_transitions = [] for t in subbed_transitions: # Find group in grouped_transitions for t @@ -1611,8 +2581,9 @@ def abstract(self, state_abstraction: Dict[str, str]): ] for g in grouped_transitions ] + return grouped_transitions, grouped_rates - # Convert grouped transitions into a single transition + def consolidate_grouped_transitions(self, grouped_transitions): consolidated_transitions = [] for g in grouped_transitions: if len(g) == 1: @@ -1653,13 +2624,157 @@ def abstract(self, state_abstraction: Dict[str, str]): properties=g[0].properties, ) ) + return consolidated_transitions + + # def transition_probability(self, trans, transformations): + # try: + # tr_map = self.transition_map(trans) + # ambiguous_transitions = tr_map.abstract_to_concrete() + # # a2c_outp = next(iter([outp for inp in trans.input for outp in trans.output + # # if inp in new_abstract_states and not outp in new_abstract_states and maps_to(inp, outp)])) + # a2c_outp = [ + # tr_map.abstract_input_probability(at.input) for at in ambiguous_transitions + # ] + # except StopIteration: + # a2c_outp = None + # return a2c_outp + + def has_common_ancestor(self, s1, s2): + # Determine if s1 and s2 have a common ancestor in the stratification/abstraction lattice + if s1 == s2: + return True + + ancestors = self.petrinet.metadata.get("ancestors", []) + c1 = set([str(s1)]) + c2 = set([str(s2)]) + for level in reversed(ancestors): + try: + p1 = set([]) + for c in c1: + p = level.get(c, c) + p1 = p1.union(set(p) if isinstance(p, list) else set([p])) + p2 = set([]) + for c in c2: + p = level.get(c, c) + p2 = p2.union(set(p) if isinstance(p, list) else set([p])) + except: + pass + if len(p1.intersection(p2)) > 0: + return True + c1 = p1 + c2 = p2 + + return False + + def transform( + self, op: Union[Stratification, Abstraction] + ) -> "GeneratedPetriNetModel": + + if isinstance(op, Stratification): + result = self.stratify(op) + else: + result = self.abstract(op) - ## Remove self transitions - new_transitions = [ - t - for t in consolidated_transitions - if not (t.input == t.output and len(t.input) == 1) + if op.description: + result.petrinet.metadata["transformation_description"] = ( + op.description + ) + + return result + + def abstract(self, abstraction: Abstraction): + # Get existing state variables + abstraction.base_states = {s.id: s for s in self._state_vars()} + # Check that there is a state variable or parameter for each key in the state_abstraction + try: + # This try block is weird (I know), but I need to set a breakpoint on assertion failures + assert all( + { + ( + k in abstraction.base_states + or k in self._parameter_names() + ) + for k in abstraction.keys() + } + ), f"There are unknown states in the state_abstraction keys: {[k for k in abstraction.keys() if not (k in abstraction.base_states or k in self._parameter_names())]}" + + # Check that the state_abstraction maps the keys to a state variable that is not in the abstraction.base_states + assert not any( + { + ( + v in abstraction.base_states + or v in self._parameter_names() + ) + for v in abstraction.values() + } + ), f"There are unknown states in the state_abstraction values: {[v for v in abstraction.values() if (v in abstraction.base_states or v in self._parameter_names()) ]}" + except AssertionError as e: + raise e + + # Create states for values in state_abstraction + new_abstract_states = abstraction.abstract_states() + + abstraction._state_ancestors = { + s: [k for k in abstraction.base_states if k in abstraction.keys()] + for s in new_abstract_states + } + old_untouched_states = [ + v + for k, v in abstraction.base_states.items() + if k not in abstraction.keys() + ] + new_states = [ + *old_untouched_states, + *new_abstract_states.values(), + ] + + new_model = GeneratedPetriNetModel( + petrinet=Model( + header=self.petrinet.header, + properties=self.petrinet.properties, + model=Model1( + states=new_states, transitions=Transitions(root=[]) + ), + ) + ) + new_metadata = copy.deepcopy(self.petrinet.metadata) + new_model.petrinet.metadata = new_metadata + model_transformations = new_metadata.get("transformations", []) + model_transformations.append(abstraction) + + # Replace states in the transitions + subbed_state_ids = set(abstraction.keys()) + old_untouched_transitions = ( + [ # transitions not involved in abstraction + t + for t in self.petrinet.model.transitions + if not any( + [s for s in t.input + t.output if s in subbed_state_ids] + ) + ] + ) + new_to_be_abstracted_transitions = [ # transitions with substitutions + abstraction.abstract_transition(t) + for t in self.petrinet.model.transitions + if abstraction.is_transition_abstracted(t) ] + subbed_transitions = ( + old_untouched_transitions + new_to_be_abstracted_transitions + ) + grouped_transitions, grouped_rates = self.group_abstract_transitions( + subbed_transitions + ) + + # Convert grouped transitions into a single transition + consolidated_transitions = self.consolidate_grouped_transitions( + grouped_transitions + ) + + abstraction._transition_ancestors = { + ct.id: [gt.id for gt in gts] + for ct, gts in zip(consolidated_transitions, grouped_transitions) + if len(gts) > 1 + } def get_rate( self, target: str, rates: List[Rate], max_rate=False @@ -1741,7 +2856,12 @@ def get_rate( parameter_map, ) - def aggregate_rates(self, rates, abstraction): + def aggregate_rates( + self, + rates, + abstraction, + # , abstract_to_concrete_transition + ): expressions = [ to_sympy(r.expression, self._symbols()) for r in rates ] @@ -1774,38 +2894,86 @@ def aggregate_rates(self, rates, abstraction): k: v for k, v in i_abstraction.items() if len(v) > 0 } + state_ids = self._state_var_names() + # abstraction implies that abstract variable is sum of variables mapped to it abstraction_substitution = { - sympy.Symbol(i_abstraction[k][0]): to_sympy( - f"{k}{'-' if len(i_abstraction[k])>1 else ''}{'-'.join(i_abstraction[k][1:])}", + sympy.Symbol(v[0]): to_sympy( + f"{k}{'-' if len(v)>1 else ''}{'-'.join(v[1:])}", self._symbols() + list(abstraction.values()), ) - for k in i_abstraction.keys() + for k, v in i_abstraction.items() + if any([vs in state_ids for vs in v]) } + # abstraction_substitution = {Symbol(k): [Symbol(v) for v in v_list] for k, v_list in abstraction_substitution.items()} + parameter_names = self._parameter_names() + + # Symbols that differ across rates and are not part of the abstraction unique_symbols = [ s for s in all_symbols - if s not in common_symbols and str(s) not in abstraction + if s not in common_symbols and str(s) in parameter_names ] + # Group symbols if they have a common ancestor in abstraction/stratification chain + unique_symbol_groups = [] + for us in unique_symbols: + match_index = -1 + for i, group in enumerate(unique_symbol_groups): + if self.has_common_ancestor(us, group[0]): + match_index = i + break + if match_index < 0: + unique_symbol_groups.append([us]) + else: + unique_symbol_groups[match_index].append(us) + + state_var_names = self._state_var_names() + parameter_names = self._parameter_names() if len(rates) > 1: # When have more than one rate that we're aggregating, then we identify parameters that can be aggregated - - # FIXME need to remove double counting of parameters p_I_I and beta_I_I + parameter_values = self._parameter_values() parameter_minimization = { - str( - s - ): f"agg_{'_'.join([str(us) for us in unique_symbols])}" + s: sympy.Symbol( + abstraction[str(s)] + if all( + [ + str(s) in abstraction.keys() + for s in unique_symbols + ] + ) + else f"agg_{'_'.join([str(us) for us in unique_symbols])}" + ) + for unique_symbols in unique_symbol_groups + if all( + [str(s) in abstraction.keys() for s in unique_symbols] + ) for s in unique_symbols + if str(s) + in parameter_names # and not str(s).startswith("p_cross_") } + constant_substitution = {} + # { + # str(s): parameter_values[str(s)] + # for unique_symbols in unique_symbol_groups + # for s in unique_symbols + # if str(s) in parameter_names and str(s).startswith("p_cross_") + # } # substitute abstraction into starting expression - abstract_expression = sympy.expand( - starting_expression.subs( - {**abstraction_substitution, **parameter_minimization} + try: + abstract_expression = sympy.expand( + starting_expression.subs( + { + **abstraction_substitution, + **parameter_minimization, + **constant_substitution, + } + ) ) - ) + except sympy.SympifyError as e: + raise e else: # When have one rate that we're aggregating, then we need to be told if a parameter is being replaced. It is assumed to be in the susbstitution. @@ -1813,21 +2981,78 @@ def aggregate_rates(self, rates, abstraction): abstract_expression = sympy.expand( starting_expression.subs(abstraction_substitution) ) + parameter_minimization = { - k: str(v) for k, v in abstraction_substitution.items() + k: str(v) + for k, v in abstraction_substitution.items() + if str(k) in parameter_names } + abstracted_states = { + k: str(v) + for k, v in abstraction_substitution.items() + if str(k) in state_var_names + } + + # Need to introduce a new parameter for probability of transition going from abstract input to a concrete output + transition_parameters = [ + str(s) + for s in abstract_expression.free_symbols + if str(s).startswith("p_cross_") + ] + + # if abstract_to_concrete_transition is not None: + # for atc in abstract_to_concrete_transition: + # trans_sym = sympy.Symbol(atc) + # abstract_expression *= trans_sym + # # parameter_minimization[trans_sym] = str(trans_sym) + # transition_parameters.append(trans_sym) + + abstraction._parameter_ancestors.update( + { + k: v + for k, v in i_abstraction.items() + if all([p in parameter_names for p in v]) + } + ) + abstraction._parameter_ancestors.update( + { + str(v): [ + str(k) + for k, v1 in parameter_minimization.items() + if v == v1 + ] + for v in parameter_minimization.values() + } + ) # abstract_expression1 = sympy.expand(sympy.expand(starting_expression.subs(abstraction_substitution )).subs(parameter_minimization)) return { "rate": str(abstract_expression), "parameters": parameter_minimization, + "transition_parameters": transition_parameters, + "states": abstracted_states, } + ## Remove self transitions + new_transitions = [] + candidate_rates = [] + for t, r in zip(consolidated_transitions, grouped_rates): + if not (t.input == t.output and len(t.input) == 1): + new_transitions.append(t) + candidate_rates.append(r) + + new_model.petrinet.model.transitions.root += new_transitions + aggregated_rates_and_parameters = [ aggregate_rates( - self, g, state_abstraction + self, + g, + abstraction, + # new_model.transition_probability( + # consolidated_transitions[i], self.transformations() + # ), ) # reduce(lambda x, y: x+y, [to_sympy(r.expression, self._symbols()) for r in g]) #"+".join([f"({r.expression})" for r in g]) - for i, g in enumerate(grouped_rates) + for i, g in enumerate(candidate_rates) if i < len(new_transitions) ] @@ -1837,26 +3062,29 @@ def aggregate_rates(self, rates, abstraction): target=new_transitions[i].id, expression=aggregated_rates_and_parameters[i]["rate"], ) - for i, g in enumerate(grouped_rates) + for i, g in enumerate(candidate_rates) if i < len(new_transitions) ] - new_parameters = [ + unchanged_parameters = [ p for p in self.petrinet.semantics.ode.parameters if not any( [ p.id in rp["parameters"] + or p.id in rp["transition_parameters"] for rp in aggregated_rates_and_parameters ] ) and any([p.id in r.expression for r in new_rates]) - ] + [ + ] + + aggregated_parameters = [ Parameter( - id=p, - name=p, - description=p, - v=0.0, + id=str(p), + name=str(p), + description=str(p), + value=0.0, grounding=None, distribution=None, units=None, @@ -1871,6 +3099,43 @@ def aggregate_rates(self, rates, abstraction): ) ] + # When introducing transition probabilities, we need to determine which are part of the same distribution. Those corresponding to transitions with the same inputs (i.e., are applicable to the same states) must sum to 1.0. + grouped_transition_parameters = {} + for trans, arp in zip( + new_transitions, aggregated_rates_and_parameters + ): + if len(arp["transition_parameters"]) > 0: + related_parameters = grouped_transition_parameters.get( + tuple(trans.input), set({}) + ) + related_parameters = related_parameters.union( + set(arp["transition_parameters"]) + ) + grouped_transition_parameters[tuple(trans.input)] = ( + related_parameters + ) + agg_param_ids = [p.id for p in aggregated_parameters] + transition_parameters = [ + Parameter( + id=str(p), + name=str(p), + description=str(p), + value=1.0 / float(len(param_group)), + grounding=None, + distribution=None, + units=None, + ) + for param_group in grouped_transition_parameters.values() + for p in param_group + if p not in agg_param_ids + ] + + new_parameters = ( + unchanged_parameters + + aggregated_parameters + + transition_parameters + ) + new_initials = [ # Initial.model_copy(st) next( @@ -1879,7 +3144,7 @@ def aggregate_rates(self, rates, abstraction): if i.target == st.id ) for st in new_states - if st.id not in new_state_objs + if st.id not in new_abstract_states ] + [ Initial( target=s_id, @@ -1896,7 +3161,7 @@ def aggregate_rates(self, rates, abstraction): ) for o_s_id in [ k - for k, v in state_abstraction.items() + for k, v in abstraction.items() if ( v == s_id and k not in self._parameter_names() @@ -1908,122 +3173,63 @@ def aggregate_rates(self, rates, abstraction): ) ), ) - for s_id, st in new_state_objs.items() - if s_id in new_state_objs + for s_id, st in new_abstract_states.items() + if s_id in new_abstract_states ] - new_metadata = self.petrinet.metadata.copy() - new_metadata["abstraction"] = { - # Need to know which parameter to replace by the min or max value, as well as the min and max value - # parameters -> transition_id -> parameter_id -> [lb,ub] - "parameters": { - new_rates[i].target: { - p: { - "lb": min( - [ - next( - p2 - for p2 in self.petrinet.semantics.ode.parameters - if p2.id == str(p1) - ).value - for p1, v in arp["parameters"].items() - if v == p - ] - ), - "ub": max( - [ - next( - p2 - for p2 in self.petrinet.semantics.ode.parameters - if p2.id == str(p1) - ).value - for p1, v in arp["parameters"].items() - if v == p - ] - ), - } - for p in set( - [ - p - for k, p in arp["parameters"].items() - if str(k) in self._parameter_names() - ] - ) - } - for i, arp in enumerate(aggregated_rates_and_parameters) - if len(arp["parameters"]) > 0 - } - } - ## Consolidate bounds on a variable that is shared across multiple transitions - bounded_params = { - p - for trans_id, p_bounds in new_metadata["abstraction"][ - "parameters" - ].items() - for p in p_bounds - } - param_min_value = { - p: min( - [ - bounds["lb"] - for trans_id, p_bounds in new_metadata["abstraction"][ - "parameters" - ].items() - for p1, bounds in p_bounds.items() - if p1 == p - ] - ) - for p in bounded_params - } - param_max_value = { - p: max( - [ - bounds["ub"] - for trans_id, p_bounds in new_metadata["abstraction"][ - "parameters" - ].items() - for p1, bounds in p_bounds.items() - if p1 == p - ] - ) - for p in bounded_params - } - new_metadata["abstraction"]["parameters"] = { - trans_id: { - p1: ( - bounds - if p1 not in param_min_value - else {"lb": param_min_value[p1], "ub": param_max_value[p1]} - ) - for p1, bounds in p_bounds.items() - } - for trans_id, p_bounds in new_metadata["abstraction"][ - "parameters" - ].items() + new_model.petrinet.semantics = Semantics( + ode=OdeSemantics( + rates=new_rates, # [*new_rates, *other_rates.values(), *self_strata_rates], + initials=new_initials, # new_initials, + parameters=new_parameters, + observables=None, # new_observables, + time=self.petrinet.semantics.ode.time, + ), + typing=self.petrinet.semantics.typing, + span=self.petrinet.semantics.span, + ) + + param_bounds = self._parameter_bounds() + param_bounds.update(new_model._parameter_bounds()) + abstraction.set_parameters( + param_bounds, new_rates, aggregated_rates_and_parameters + ) + state_strata = new_metadata.get("state_strata", {}) + new_vars_strata = { + s: abstraction.abstract_strata(s, state_strata) + for s in new_abstract_states } + for s in abstraction.abstraction: + if s in state_strata: + del state_strata[s] - new_model = GeneratedPetriNetModel( - petrinet=Model( - header=self.petrinet.header, - properties=self.petrinet.properties, - model=Model1( - states=new_states, - transitions=new_transitions, # [*new_transitions, *other_transitions.values(), *self_strata_transitions] - ), - semantics=Semantics( - ode=OdeSemantics( - rates=new_rates, # [*new_rates, *other_rates.values(), *self_strata_rates], - initials=new_initials, # new_initials, - parameters=new_parameters, - observables=None, # new_observables, - time=self.petrinet.semantics.ode.time, - ), - typing=self.petrinet.semantics.typing, - span=self.petrinet.semantics.span, - ), - metadata=new_metadata, + state_strata.update(new_vars_strata) + + # Remove abstracted parameter bounds from metadata + # Store bounds on abstracted parameters + if abstraction.parameters: + abstracted_parameters = new_metadata.get( + "abstracted_parameters", {} ) - ) + to_remove = [] + for p in abstraction.abstraction.keys(): + for t, ps in abstracted_parameters.items(): + if p in ps: + to_remove.append((t, p)) + for t, p in to_remove: + del abstracted_parameters[t][p] + for t, p in to_remove: + if len(abstracted_parameters[t]) == 0: + del abstracted_parameters[t] + + abstracted_parameters.update(abstraction.parameters) + new_metadata["abstracted_parameters"] = abstracted_parameters + + new_metadata["state_strata"] = state_strata + ancestors = new_metadata.get("ancestors", []) + ancestors.append(abstraction._ancestors()) + new_metadata["ancestors"] = ancestors + return new_model diff --git a/src/funman/representation/box.py b/src/funman/representation/box.py index f9ee46b5..cd042eef 100644 --- a/src/funman/representation/box.py +++ b/src/funman/representation/box.py @@ -40,7 +40,10 @@ class Box(BaseModel): @staticmethod def from_point( - point: Point, radius: float = None, radius_vars=None + point: Point, + parameters: Dict[str, Parameter] = None, + radius: float = None, + radius_vars=None, ) -> "Box": box = Box() if radius is not None and radius_vars is not None: @@ -51,6 +54,7 @@ def from_point( p: ( Interval(lb=v - radius, ub=v + radius) if p in radius_vars + and (parameters is None or p in parameters) else Interval.from_value(v) ) for p, v in point.values.items() @@ -58,8 +62,14 @@ def from_point( else: box.bounds = { - p: Interval.from_value(v) for p, v in point.values.items() + p: Interval.from_value(v) + for p, v in point.values.items() + if parameters is None or p in parameters } + if "timestep" in point.values: + box.bounds["timestep"] = Interval.from_value( + point.values["timestep"] + ) box.points.append(point) box.schedule = point.schedule box.label = point.label diff --git a/src/funman/representation/constraint.py b/src/funman/representation/constraint.py index 23cc018a..f6f5d869 100644 --- a/src/funman/representation/constraint.py +++ b/src/funman/representation/constraint.py @@ -14,6 +14,7 @@ from funman.model import FunmanModel from funman.model.query import Query +from funman.utils.sympy_utils import replace_reserved from .interval import Interval from .parameter import ModelParameter, StructureParameter @@ -40,6 +41,7 @@ def relevant_at_time(self, time: int) -> bool: @model_validator(mode="after") def check_name(self) -> "FUNMANConfig": self._escaped_name = self.name.replace(" ", "_").replace("-", "_") + self._escaped_name = replace_reserved(self._escaped_name) return self diff --git a/src/funman/representation/parameter.py b/src/funman/representation/parameter.py index ddfdabb4..e3661ada 100644 --- a/src/funman/representation/parameter.py +++ b/src/funman/representation/parameter.py @@ -14,6 +14,7 @@ from pysmt.shortcuts import REAL, Symbol from funman import LABEL_ALL, LABEL_ANY +from funman.utils.sympy_utils import replace_reserved from .encoding_schedule import EncodingSchedule from .interval import Interval @@ -39,6 +40,7 @@ def __hash__(self): @model_validator(mode="after") def check_name(self) -> "FUNMANConfig": self._escaped_name = self.name.replace(" ", "_").replace("-", "_") + self._escaped_name = replace_reserved(self._escaped_name) return self @model_validator(mode="after") diff --git a/src/funman/representation/parameter_space.py b/src/funman/representation/parameter_space.py index 4b3b9400..979017ce 100644 --- a/src/funman/representation/parameter_space.py +++ b/src/funman/representation/parameter_space.py @@ -76,16 +76,36 @@ def points(self) -> List[Point]: def boxes(self) -> List[Box]: return self.true_boxes + self.false_boxes - def last_boxes(self) -> List[Box]: + def last_step(self, true_only=False) -> int: last_step = max( max([b.timestep().ub for b in self.true_boxes] + [0]), - max([b.timestep().ub for b in self.false_boxes] + [0]), + ( + max([b.timestep().ub for b in self.false_boxes] + [0]) + if not true_only + else 0 + ), ) - return [b for b in self.true_boxes if b.timestep().ub == last_step] + [ - b for b in self.false_boxes if b.timestep().ub == last_step + return last_step + + def last_boxes(self, true_only=False, steps=None) -> List[Box]: + + # l.info(f"last_boxes(), last_step = {last_step}") + boxes = [ + b + for b in self.true_boxes + if steps is None or b.timestep().ub in steps ] + if not true_only: + boxes += [ + b + for b in self.false_boxes + if steps is None or b.timestep().ub in steps + ] + return boxes - def outer_interval(self, param_name: str) -> Interval: + def outer_interval( + self, param_name: str, true_only=False, steps=None + ) -> Interval: """ Get the infimum and supremimum values of parameter param_name among all true boxes @@ -99,17 +119,19 @@ def outer_interval(self, param_name: str) -> Interval: Interval Interval where the lb and ub are the minimum and maximum values taken by parameter among all true boxes. """ - if len(self.true_boxes) > 0: + boxes = self.last_boxes(true_only=true_only, steps=steps) + # l.info(f"OuterInterval({param_name}) uses {len(boxes)} boxes.") + if len(boxes) > 0: lb = min( map( lambda b: b.project([param_name]).bounds[param_name].lb, - self.true_boxes, + boxes, ) ) ub = max( map( lambda b: b.project([param_name]).bounds[param_name].ub, - self.true_boxes, + boxes, ) ) else: diff --git a/src/funman/representation/representation.py b/src/funman/representation/representation.py index 4cd3428f..b6e628f8 100644 --- a/src/funman/representation/representation.py +++ b/src/funman/representation/representation.py @@ -14,6 +14,7 @@ from funman import to_sympy from funman.constants import LABEL_UNKNOWN, NEG_INFINITY, POS_INFINITY, Label from funman.model.model import FunmanModel, is_state_variable +from funman.utils.math_utils import get_number_from_string from . import Timepoint @@ -70,7 +71,8 @@ def values_at(self, tp: Timepoint, model: FunmanModel) -> Dict[str, float]: v = { k.rsplit("_", 1)[0]: v for k, v in self.values.items() - if is_state_variable(k, model) and int(k.rsplit("_", 1)[-1]) == tp + if is_state_variable(k, model) + and get_number_from_string(k.rsplit("_", 1)[-1]) == tp } return v @@ -95,7 +97,7 @@ def state_values(self) -> Dict[str, float]: def relevant_timepoints(self, model: FunmanModel) -> List[int]: steps = list( { - int(k.rsplit("_", 1)[-1]) + get_number_from_string(k.rsplit("_", 1)[-1]) for k, v in self.values.items() if is_state_variable(k, model) } diff --git a/src/funman/scenario/consistency.py b/src/funman/scenario/consistency.py index 8efc0f7e..bb4044d4 100644 --- a/src/funman/scenario/consistency.py +++ b/src/funman/scenario/consistency.py @@ -101,10 +101,24 @@ def solve( parameter_space = ParameterSpace( num_dimensions=len(self.parameters) ) - parameter_space.true_boxes.append(Box.from_point(point)) + parameter_space.true_boxes.append( + Box.from_point(point, parameters=self.parameter_map()) + ) scenario_result = ConsistencyScenarioResult( scenario=self, consistent={}, parameter_space=parameter_space ) + sim_valid = self.check_simulation(config, scenario_result) + if not sim_valid: + scenario_result.parameter_space.false_boxes = ( + scenario_result.parameter_space.true_boxes + ) + scenario_result.parameter_space.true_boxes = [] + for tb in scenario_result.parameter_space.false_boxes: + tb.label = "false" + for pt in tb.points: + pt.values["label"] = "false" + pt.label = "false" + resultsCallback(parameter_space) return scenario_result diff --git a/src/funman/scenario/scenario.py b/src/funman/scenario/scenario.py index da667c40..546496ec 100644 --- a/src/funman/scenario/scenario.py +++ b/src/funman/scenario/scenario.py @@ -49,7 +49,7 @@ from funman.utils import math_utils from funman.utils.sympy_utils import replace_reserved, to_sympy -from ..representation import Point +from ..representation import Point, Timepoint l = logging.getLogger(__name__) @@ -65,6 +65,7 @@ class AnalysisScenario(ABC, BaseModel): """True if its okay when the volume of the search space is empty (e.g., when it is a point)""" empty_volume_ok: bool = False model_config = ConfigDict(extra="forbid") + init_time: Timepoint = 0.0 model: Union[ GeneratedPetriNetModel, @@ -153,6 +154,18 @@ def initialize(self, config: "FUNMANConfig") -> "Search": return search + def parameter_map(self) -> Dict[str, Parameter]: + return {p.name: p for p in self.parameters} + + def escaped_parameter_map(self) -> Dict[str, str]: + rmap = {} + for p in self.parameters: + if hasattr(p, "_escaped_name"): + rmap[p._escaped_name] = p.name + else: + rmap[p.name] = p.name + return rmap + def _initialize_encodings(self, config: "FUNMANConfig"): # self._assume_model = Symbol("assume_model") self._smt_encoder = self.model.default_encoder(config, self) @@ -170,9 +183,6 @@ def _initialize_encodings(self, config: "FUNMANConfig"): for schedule in self._smt_encoder._timed_model_elements[ "schedules" ].schedules: - assert ( - 0 in schedule.timepoints - ), "Schedule for encoding does not include a timepoint 0" encoding = self._smt_encoder.initialize_encodings( self, len(schedule.timepoints) ) @@ -364,9 +374,12 @@ def run_point_simulation( ) -> Optional[Timeseries]: init = { var: value - for var, value in point.values_at(0, self.model).items() + for var, value in point.values_at( + point.schedule.timepoints[0], self.model + ).items() if var != "timer_t" } + parameters = { p: point.value_of(p) for p in self.model._parameter_names() } @@ -403,26 +416,30 @@ def compute_observables(self, timeseries, parameters): unreseved_parameters = { replace_reserved(k): v for k, v in parameters.items() } - for o in observables: - o_name = self.model._observable_name(o) - # o_fn = o.expression - o_fn = self.model.observable_expression(o_name) - # Evaluate o_fn for each time in timeseries - if self.model.is_timed_observable(o_name): - values = [] - for ti, t in enumerate(timepoints): - # state_at_t = [timeseries.data[ci][ti] for ci, c in enumerate(timeseries.columns)] - state_at_t = { - c: timeseries.data[ci][ti] - for ci, c in enumerate(timeseries.columns) - if c != "time" - } - value = o_fn[2].evalf(subs={**state_at_t, **parameters}) - values.append(float(value)) - data[o_name] = values - else: - value = o_fn[2].evalf(subs={**unreseved_parameters}) - data[o_name] = float(value) + + if observables: + for o in observables: + o_name = self.model._observable_name(o) + # o_fn = o.expression + o_fn = self.model.observable_expression(o_name) + # Evaluate o_fn for each time in timeseries + if self.model.is_timed_observable(o_name): + values = [] + for ti, t in enumerate(timepoints): + # state_at_t = [timeseries.data[ci][ti] for ci, c in enumerate(timeseries.columns)] + state_at_t = { + c: timeseries.data[ci][ti] + for ci, c in enumerate(timeseries.columns) + if c != "time" + } + value = o_fn[2].evalf( + subs={**state_at_t, **parameters} + ) + values.append(float(value)) + data[o_name] = values + else: + value = o_fn[2].evalf(subs={**unreseved_parameters}) + data[o_name] = float(value) return data def simulate_scenario(self, config: "FUNMANConfig") -> Point: @@ -458,7 +475,7 @@ def simulate_scenario(self, config: "FUNMANConfig") -> Point: values = { **{ - f"{var}_{int(timepoint)}": timeseries.data[var_idx + 1][ + f"{var}_{str(timepoint)}": timeseries.data[var_idx + 1][ timestep ] for var_idx, var in enumerate(timeseries.columns[1:]) diff --git a/src/funman/search/box_search.py b/src/funman/search/box_search.py index 5f2b31f9..b3cc506d 100644 --- a/src/funman/search/box_search.py +++ b/src/funman/search/box_search.py @@ -1113,7 +1113,11 @@ def _expand( "dreal_precision": episode.config.dreal_precision, "dreal_log_level": episode.config.dreal_log_level, "dreal_mcts": episode.config.dreal_mcts, - "preferred": episode.config.dreal_prefer_parameters, # [p.name for p in episode.problem.parameters] if episode.config.dreal_prefer_parameters else [], + "preferred": ( + episode.config.dreal_prefer_parameters + if episode.config.dreal_prefer_parameters + else [p.name for p in episode.problem.parameters] + ), "random_seed": episode.config.random_seed, } else: diff --git a/src/funman/search/simulator_check.py b/src/funman/search/simulator_check.py index 2691bb9b..df52b171 100644 --- a/src/funman/search/simulator_check.py +++ b/src/funman/search/simulator_check.py @@ -322,7 +322,11 @@ def expand( "dreal_precision": episode.config.dreal_precision, "dreal_log_level": episode.config.dreal_log_level, "dreal_mcts": episode.config.dreal_mcts, - "preferred": episode.config.dreal_prefer_parameters, # [p.name for p in problem.model_parameters()]if episode.config.dreal_prefer_parameters else [], + "preferred": ( + episode.config.dreal_prefer_parameters + if episode.config.dreal_prefer_parameters + else [p.name for p in episode.problem.parameters] + ), "random_seed": episode.config.random_seed, } else: @@ -349,7 +353,9 @@ def expand( result = self.solve_formula(s, simplified_formula, episode) if result is not None and isinstance(result, pysmtModel): model_result = result - assigned_vars = model_result.to_dict() + assigned_vars = model_result.to_dict( + episode.problem.escaped_parameter_map() + ) substitution = { Symbol( p, (REAL if isinstance(v, float) else BOOL) diff --git a/src/funman/search/smt_check.py b/src/funman/search/smt_check.py index b0287bde..51258e47 100644 --- a/src/funman/search/smt_check.py +++ b/src/funman/search/smt_check.py @@ -13,7 +13,10 @@ from funman.representation.encoding_schedule import EncodingSchedule from funman.representation.explanation import Explanation from funman.translate.translate import EncodingOptions -from funman.utils.smtlib_utils import smtlibscript_from_formula_list +from funman.utils.smtlib_utils import ( + smtlibscript_from_formula_list, + str_smtlib, +) from ..representation import Interval, Point from ..representation.box import Box @@ -82,7 +85,9 @@ def search( point_label = ( LABEL_TRUE if explanation_result is None else LABEL_FALSE ) - results_dict = model_result.to_dict() + results_dict = model_result.to_dict( + problem.escaped_parameter_map() + ) point = Point( values=results_dict, label=point_label, @@ -98,7 +103,7 @@ def search( models[point] = model_result consistent[point] = results_dict - box = Box.from_point(point) + box = Box.from_point(point, parameters=problem.parameter_map()) # parameter_space.true_boxes.append(Box.from_point(point)) else: box = Box( @@ -188,11 +193,21 @@ def build_formula( ) return all_layers_formula, all_simplified_layers_formula, model_formula + def prime_solver(self, s: Solver): + s.push(1) + s.add_assertion( + And(Symbol("funman_prime_symbol"), Symbol("funman_prime_symbol")) + ) + s.solve() + s.pop(1) + def solve_formula( self, s: Solver, formula: FNode, episode ) -> Union[pysmtModel, Explanation]: + self.prime_solver(s) s.push(1) s.add_assertion(formula) + l.debug(f"Solving SMTLib:\n{str_smtlib(formula)}") if episode.config.save_smtlib: filename = os.path.join( episode.config.save_smtlib, "dbg_steps.smt2" @@ -223,7 +238,11 @@ def expand( "dreal_precision": episode.config.dreal_precision, "dreal_log_level": episode.config.dreal_log_level, "dreal_mcts": episode.config.dreal_mcts, - "preferred": episode.config.dreal_prefer_parameters, # [p.name for p in problem.model_parameters()]if episode.config.dreal_prefer_parameters else [], + "preferred": ( + episode.config.dreal_prefer_parameters + if episode.config.dreal_prefer_parameters + else [p.name for p in episode.problem.parameters] + ), "random_seed": episode.config.random_seed, } else: @@ -247,7 +266,9 @@ def expand( result = self.solve_formula(s, simplified_formula, episode) if result is not None and isinstance(result, pysmtModel): model_result = result - assigned_vars = model_result.to_dict() + assigned_vars = model_result.to_dict( + episode.problem.escaped_parameter_map() + ) substitution = { Symbol(p, (REAL if isinstance(v, float) else BOOL)): ( Real(v) if isinstance(v, float) else Bool(v) diff --git a/src/funman/server/query.py b/src/funman/server/query.py index 8dcc2256..f28c61dc 100644 --- a/src/funman/server/query.py +++ b/src/funman/server/query.py @@ -4,6 +4,7 @@ from datetime import datetime, timedelta from typing import Dict, List, Optional, Tuple, Union +import numpy as np import pandas as pd from matplotlib import pyplot as plt from pydantic import BaseModel, ValidationInfo, field_validator @@ -74,6 +75,22 @@ def check_unique_names( ] == 0, f"Constraints need names, found {name_counts[None]} constraints without names." return constraints + def time_horizon(self): + try: + schedules = next( + iter( + [ + p + for p in self.structure_parameters + if p.name == "schedules" + ] + ) + ) + except StopIteration: + l.exception("Could not find a Schedule structure parameter.") + time_horizon = max([max(s.timepoints) for s in schedules.schedules]) + return time_horizon + class FunmanProgress(BaseModel): progress: float = 0.0 @@ -237,6 +254,9 @@ def stop(self): def is_final(self): return self._finalized + def time_horizon(self): + return self.request.time_horizon() + def contract_model(self): """ Use the parameter_space to contract the model parameter bounds and set self.contracted_model @@ -249,13 +269,17 @@ def contract_model(self): # Get new bounds for each parameter amr_parameters = self.model._parameter_names() + last_step = self.parameter_space.last_step(true_only=True) parameter_bounds = { - param: self.parameter_space.outer_interval(param) + param: self.parameter_space.outer_interval( + param, true_only=True, steps=[last_step] + ) for param in amr_parameters } self.contracted_model = self.model.contract_parameters( parameter_bounds ) + return last_step def update_parameter_space( self, scenario: AnalysisScenario, results: ParameterSpace @@ -292,7 +316,29 @@ def update_parameter_space( l.exception(f"Unable to update progress due to exception: {e}") try: - self.contract_model() + + before_params = {} + if self.contracted_model: + before_params = { + p.id: ( + p.distribution.parameters["minimum"], + p.distribution.parameters["maximum"], + ) + for p in self.contracted_model.semantics.ode.parameters + if p.distribution + } + # l.info(f"Before { before_params }") + last_step = self.contract_model() + after_params = { + p.id: ( + p.distribution.parameters["minimum"], + p.distribution.parameters["maximum"], + ) + for p in self.contracted_model.semantics.ode.parameters + if p.distribution + } + if after_params != before_params: + l.debug(f"Contracted @ {last_step} : { after_params }") except NotImplementedError as e: l.info( f"Bypassing output of contracted model because it is not implmented for this model type: {type(self.model)}" @@ -358,7 +404,10 @@ def point_parameters( } def dataframe( - self, points: List[Point], interpolate="linear", max_time=None + self, + points: Optional[List[Point]] = None, + interpolate="linear", + max_time=None, ): """ Extract a timeseries as a Pandas dataframe. @@ -388,13 +437,27 @@ def dataframe( to_plot += ["timer_t"] all_df = pd.DataFrame() + + points = points if points else self.points() + for i, point in enumerate(points): timeseries = self.symbol_timeseries(point, to_plot) df = pd.DataFrame.from_dict(timeseries) if interpolate: - df = df.infer_objects(copy=False).interpolate( - method=interpolate + new_index = np.linspace( + df["index"].min(), + df["index"].max(), + num=int( + (df["index"].max() - df["index"].min()) + / df["index"].diff().min() + ) + + 1, + ) + df = ( + df.infer_objects(copy=False) + .reindex(new_index) + .interpolate(method=interpolate) ) df["id"] = i @@ -442,17 +505,22 @@ def symbol_timeseries( timestep = point.timestep() max_t = point.schedule.timepoints[timestep] - a_series["index"] = list(range(0, int(max_t) + 1)) + a_series["index"] = point.schedule.timepoints + for var, tps in series.items(): if isinstance(tps, dict): - vals = [None] * (int(max_t) + 1) + vals = [None] * len(a_series["index"]) for t, v in tps.items(): - if t.isdigit() and int(t) <= int(max_t): - vals[int(t)] = v + i = point.schedule.timepoints.index(t) + vals[i] = v + # if (not isinstance(t, float) or t.isdigit()) and int( + # t + # ) <= int(max_t): + # vals[int(t)] = v a_series[var] = vals else: - a_series[var] = [tps] * (int(max_t) + 1) + a_series[var] = [tps] * len(a_series["index"]) return a_series def symbol_values( @@ -498,7 +566,7 @@ def _symbols( var, self.model ): var_name, timepoint = self._split_symbol(var) - if timepoint: + if timepoint is not None: if var_name not in symbols: symbols[var_name] = {} symbols[var_name][timepoint] = var @@ -515,6 +583,13 @@ def _split_symbol(self, symbol: str) -> Tuple[str, str]: except ValueError: s = symbol t = None + try: + t = int(t) + except Exception: + try: + t = float(t) + except Exception: + t = None return s, t def plot_trajectories(self, variable: str, num: int = 200): diff --git a/src/funman/server/storage.py b/src/funman/server/storage.py index 15a31616..afe982e4 100644 --- a/src/funman/server/storage.py +++ b/src/funman/server/storage.py @@ -62,8 +62,12 @@ def add_result(self, result: FunmanResults): # if self.results[id] is not None: # raise FunmanException(f"Id {id} was already set to a value.") self.results[id] = result - with open(self.path / f"{id}.json", "w") as f: - f.write(result.model_dump_json(indent=4, by_alias=True)) + try: + with open(self.path / f"{id}.json", "w") as f: + f.write(result.model_dump_json(indent=4, by_alias=True)) + except Exception as e: + raise e + pass def get_result(self, id: str) -> FunmanResults: with self.lock: diff --git a/src/funman/translate/petrinet.py b/src/funman/translate/petrinet.py index e665a028..1246f525 100644 --- a/src/funman/translate/petrinet.py +++ b/src/funman/translate/petrinet.py @@ -22,6 +22,7 @@ from funman.translate.simplifier import FUNMANSimplifier from funman.utils.sympy_utils import ( rate_expr_to_pysmt, + replace_reserved, series_approx, sympy_subs, to_sympy, @@ -435,7 +436,9 @@ def _encode_transition_term( transition_id = scenario.model._transition_id(transition) input_edges = scenario.model._input_edges() output_edges = scenario.model._output_edges() - state_subs = {s: str(f) for s, f in current_state.items()} + state_subs = { + s: replace_reserved(str(f)) for s, f in current_state.items() + } ins = [ current_state[scenario.model._edge_source(edge)] diff --git a/src/funman/translate/translate.py b/src/funman/translate/translate.py index 8eb2862c..57afeef6 100644 --- a/src/funman/translate/translate.py +++ b/src/funman/translate/translate.py @@ -53,6 +53,7 @@ from funman.utils import math_utils from funman.utils.sympy_utils import ( FUNMANFormulaManager, + replace_reserved, sympy_to_pysmt, to_sympy, ) @@ -358,7 +359,7 @@ def _symbols(self, vars: List[FNode]) -> Dict[str, Dict[str, FNode]]: # vars.sort(key=lambda x: x.symbol_name()) for var in vars.values(): var_name, timepoint = self._split_symbol(var) - if timepoint: + if timepoint is not None: if var_name not in symbols: symbols[var_name] = {} symbols[var_name][timepoint] = var @@ -405,14 +406,14 @@ def encode_model_layer( assumptions: List[Assumption], ) -> EncodedFormula: if layer_idx == 0: - return self.encode_init_layer(scenario) + return self.encode_init_layer(scenario, options) else: return self.encode_transition_layer(scenario, layer_idx, options) def encode_init_layer( - self, scenario: "AnalysisScenario" + self, scenario: "AnalysisScenario", options: EncodingOptions ) -> EncodedFormula: - initial_state = self._timed_model_elements["init"] + initial_state = self._timed_model_elements["init"][options.schedule] initial_symbols = initial_state.get_free_variables() observations = self.encode_observation(scenario, 0, substitutions={}) @@ -492,7 +493,9 @@ def _initialize_substitutions( # Normalize if constant value parameter_assignments = { - self._encode_state_var(k.name): Real(float(k.interval.lb)) + self._encode_state_var(replace_reserved(k.name)): Real( + float(k.interval.lb) + ) for k in parameters if k.interval.lb == k.interval.ub } @@ -639,7 +642,7 @@ def _define_init_term( return TRUE(), None def _define_init( - self, scenario: "AnalysisScenario", init_time: int = 0 + self, scenario: "AnalysisScenario", init_time: Timepoint = 0 ) -> FNode: # Generate Parameter symbols and assignments substitutions = self._initialize_substitutions(scenario) @@ -735,7 +738,7 @@ def encode_timeseries( continue sv_formula = Equals( - self._encode_state_var(sv, time=int(timepoint)), + self._encode_state_var(sv, time=timepoint), Real(constraint.timeseries[sv][layer_idx]), ) formulas.append(sv_formula) @@ -898,7 +901,8 @@ def _encode_timed_model_elements(self, scenario: "AnalysisScenario"): time_step_constraints: TimeStepConstraints = {} time_step_substitutions: TimeStepSubstitutions = {} timed_parameters: TimedParameters = {} - initial_state, initial_substitutions = self._define_init(scenario) + initial_states = {} + if step_sizes and num_steps: schedules: List[EncodingSchedule] = [] for i, step_size in enumerate( @@ -964,7 +968,7 @@ def _encode_timed_model_elements(self, scenario: "AnalysisScenario"): if s1 + 1 == s2 } ) - time_step_substitutions[schedule] = initial_substitutions.copy() + timed_parameters.update( { (t1, t2 - t1): None @@ -973,6 +977,11 @@ def _encode_timed_model_elements(self, scenario: "AnalysisScenario"): if s1 + 1 == s2 } ) + initial_state, initial_substitution = self._define_init( + scenario, init_time=schedule.timepoints[0] + ) + initial_states[schedule] = initial_state + time_step_substitutions[schedule] = initial_substitution.copy() # configurations = None # max_step_index = None @@ -983,7 +992,7 @@ def _encode_timed_model_elements(self, scenario: "AnalysisScenario"): "schedules": schedules, "state_timepoints": state_timepoints, "transition_timepoints": transition_timepoints, - "init": initial_state, + "init": initial_states, "time_step_constraints": time_step_constraints, "time_step_substitutions": time_step_substitutions, # "configurations": configurations, @@ -1267,7 +1276,14 @@ def symbol_timeseries( a_series = {} # timeseries as array/list max_t = max( [ - max([int(k) for k in tps.keys() if k.isdigit()] + [0]) + max( + [ + int(k) + for k in tps.keys() + if isinstance(k, int) or k.isdigit() + ] + + [0] + ) for _, tps in series.items() ] ) @@ -1275,7 +1291,7 @@ def symbol_timeseries( for var, tps in series.items(): vals = [None] * (int(max_t) + 1) for t, v in tps.items(): - if t.isdigit(): + if isinstance(t, int) or t.isdigit(): vals[int(t)] = v a_series[var] = vals return a_series @@ -1401,11 +1417,21 @@ def _split_symbol(self, symbol: FNode) -> Tuple[str, str]: if symbol.symbol_name() in self._untimed_symbols: return symbol.symbol_name(), None else: - s, t = symbol.symbol_name().rsplit("_", 1) - if s not in self._timed_symbols or not t.isdigit(): - raise Exception( - f"Cannot determine if symbol {symbol} is timed." - ) + try: + s, t = symbol.symbol_name().rsplit("_", 1) + except ValueError: + s = symbol + t = None + try: + t = int(t) + except Exception: + t = None + # return s, t + # s, t = symbol.symbol_name().rsplit("_", 1) + # if s not in self._timed_symbols: + # raise Exception( + # f"Cannot determine if symbol {symbol} is timed." + # ) return s, t diff --git a/src/funman/utils/math_utils.py b/src/funman/utils/math_utils.py index a20d43d2..8674ee89 100644 --- a/src/funman/utils/math_utils.py +++ b/src/funman/utils/math_utils.py @@ -1,6 +1,16 @@ from funman.constants import NEG_INFINITY, POS_INFINITY +def get_number_from_string(string): + try: + return int(string) + except ValueError: + try: + return float(string) + except ValueError: + return None + + # lhs < rhs def lt(lhs, rhs): # inf < ? diff --git a/src/funman/utils/smtlib_utils.py b/src/funman/utils/smtlib_utils.py index 61e1183b..ba4116bc 100644 --- a/src/funman/utils/smtlib_utils.py +++ b/src/funman/utils/smtlib_utils.py @@ -1,11 +1,13 @@ import logging import warnings +from io import StringIO +from typing import Dict import pysmt.smtlib.commands as smtcmd from pysmt.constants import Numeral from pysmt.environment import get_env from pysmt.exceptions import NoLogicAvailableError, UndefinedLogicError -from pysmt.logics import SMTLIB2_LOGICS, Logic, get_closer_smtlib_logic +from pysmt.logics import QF_NRA, SMTLIB2_LOGICS, Logic, get_closer_smtlib_logic from pysmt.oracles import get_logic from pysmt.smtlib.printers import ( SmtDagPrinter, @@ -189,7 +191,7 @@ def smtlibscript_from_formula(formula, logic=None): return script -def model_to_dict(self): +def model_to_dict(self, escaped_parameter_map: Dict[str, str]): d = {} for var in self: try: @@ -207,10 +209,25 @@ def model_to_dict(self): value = 0.0 else: value = float(value) - d[var[0].symbol_name()] = value + varname = var[0].symbol_name() + if varname in escaped_parameter_map: + varname = escaped_parameter_map[varname] + if varname != "funman_prime_symbol": + d[varname] = value except OverflowError as e: raise e return d Model.to_dict = model_to_dict + + +def str_smtlib(formula): + result = None + with StringIO() as f: + smtlibscript_from_formula_list( + [formula], + logic=QF_NRA, + ).serialize(f, daggify=False) + result = f.getvalue() + return result diff --git a/src/funman/utils/sympy_utils.py b/src/funman/utils/sympy_utils.py index bcd59b92..56a66b7d 100644 --- a/src/funman/utils/sympy_utils.py +++ b/src/funman/utils/sympy_utils.py @@ -1,5 +1,6 @@ import logging import math +import re from functools import reduce from typing import Dict, List, Union @@ -41,19 +42,23 @@ def _prepare_expression( self, derivative_variables: List[str], expr: str, bound: str ) -> sympy.Expr: # deriv_var_symbols = [self.str_to_symbol[s] for s in derivative_variables] - sym_expr = expr #to_sympy(expr, self.str_to_symbol) + sym_expr = expr # to_sympy(expr, self.str_to_symbol) # substitute lb for deriv_var_symbol in sym_expr sym_expr = sym_expr.subs( {s: self.bound_symbols[s][bound] for s in derivative_variables} ) return sym_expr - def maximize(self, derivative_variables: List[str], expr: sympy.Expr) -> str: + def maximize( + self, derivative_variables: List[str], expr: sympy.Expr + ) -> str: sym_expr = self._prepare_expression(derivative_variables, expr, "ub") m_expr = self._substitute(sym_expr, False) return m_expr - def minimize(self, derivative_variables: List[str], expr: sympy.Expr) -> str: + def minimize( + self, derivative_variables: List[str], expr: sympy.Expr + ) -> str: sym_expr = self._prepare_expression(derivative_variables, expr, "lb") m_expr = self._substitute(sym_expr, True) return m_expr @@ -216,16 +221,47 @@ def sympy_subs(expr: Expr, substitution: Dict[str, Union[float, str]]) -> Expr: reserved_words = ["lambda"] +reserved_chars = {"{": "l_curly", "}": "r_curly", ".": "dot"} -def has_reserved(str_expr, rw): +def has_reserved_word(str_expr, rw): return rw in str_expr and f"funman_{rw}" not in str_expr +def has_reserved_char(str_expr, rc): + return rc in str_expr + + def replace_reserved(str_expr): for rw in reserved_words: - if isinstance(str_expr, str) and has_reserved(str_expr, rw): + if isinstance(str_expr, str) and has_reserved_word(str_expr, rw): str_expr = str_expr.replace(rw, f"funman_{rw}") + + for rc, nc in reserved_chars.items(): + if isinstance(str_expr, str) and has_reserved_char(str_expr, rc): + for g in reversed( + list( + re.finditer( + re.compile(f"([A-Za-z]|[^\u0000-\u007F])+.*?(\{rc})"), + str_expr, + ) + ) + ): + str_expr = f"{str_expr[:g.end()-1]}{nc}{str_expr[g.end():]}" + return str_expr + + +def rev_replace_reserved(str_expr): + for rw in reserved_words: + if isinstance(str_expr, str) and has_reserved_word(str_expr, rw): + str_expr = str_expr.replace(f"funman_{rw}", rw) + + for rc, nc in reserved_chars.items(): + if isinstance(str_expr, str) and has_reserved_char(str_expr, nc): + for g in re.finditer(re.compile(f"[A-Za-z]+.*?({nc})"), str_expr): + str_expr = ( + f"{str_expr[:g.end()-len(nc)]}{rc}{str_expr[g.end():]}" + ) return str_expr @@ -393,12 +429,8 @@ def sympy_to_pysmt_real(expr, numerator_digits=6): def sympy_to_pysmt_symbol(op, expr, op_type=None): - s_expr = str(expr) - reserved = [s for s in reserved_words if s in s_expr] - if len(reserved) > 0: - for r in reserved: - s_expr = s_expr.replace(f"funman_{r}", r) - return op(s_expr, op_type) if op_type else op(str(expr)) + s_expr = rev_replace_reserved(str(expr)) + return op(s_expr, op_type) if op_type else op(s_expr) if __name__ == "__main__": diff --git a/test/test_abstraction.py b/test/test_abstraction.py index 7cf04091..f68729c7 100644 --- a/test/test_abstraction.py +++ b/test/test_abstraction.py @@ -2,12 +2,28 @@ import os import sys import unittest +from itertools import accumulate from pathlib import Path import pandas as pd import sympy from matplotlib import pyplot as plt +from funman import ( + Abstraction, + Interval, + LinearConstraint, + Observable, + StateVariableConstraint, + StrataTransition, + Stratification, + Stratum, + StratumAttribute, + StratumAttributeValue, + StratumAttributeValueSet, + StratumPartition, + StratumValuation, +) from funman.api.run import Runner from funman.server.query import FunmanWorkRequest from funman.utils.sympy_utils import SympyBoundedSubstituter, to_sympy @@ -81,7 +97,11 @@ def test_minimize_expression(self): str_symbols = ["S", "I", "R", "beta", "gamma", "N"] symbols = {s: sympy.Symbol(s) for s in str_symbols} bound_symbols = { - sympy.Symbol(s): {"lb": sympy.Symbol(f"{s}_lb"), "ub": sympy.Symbol(f"{s}_ub")} for s in str_symbols + sympy.Symbol(s): { + "lb": sympy.Symbol(f"{s}_lb"), + "ub": sympy.Symbol(f"{s}_ub"), + } + for s in str_symbols } substituter = SympyBoundedSubstituter( bound_symbols=bound_symbols, str_to_symbol=symbols @@ -95,7 +115,9 @@ def test_minimize_expression(self): else substituter.maximize ) var, expr = test["input"] - test_output = test_fn([sympy.Symbol(var)], sympy.sympify(expr, symbols)) + test_output = test_fn( + [sympy.Symbol(var)], sympy.sympify(expr, symbols) + ) # self.l.debug(f"Minimized: [{infection_rate}], to get expression: [{test_output}]") assert ( str(test_output) == test["expected_output"] @@ -114,22 +136,37 @@ def test_stratify(self): (base_model, _) = runner.get_model(BASE_SIR_MODEL_PATH) + st_1 = StratumAttributeValue(name="1") + st_2 = StratumAttributeValue(name="2") + stratum_attr = StratumAttribute(name="st", values={st_1, st_2}) + stratum = Stratum( + values={ + stratum_attr: { + StratumAttributeValueSet(values={st_1}), + StratumAttributeValueSet(values={st_2}), + } + } + ) + # Stratify Base model - stratified_model = base_model.stratify( - "S", - ["1", "2"], - strata_parameters=["beta"], - strata_transitions=[], - self_strata_transition=False, + stratification = Stratification( + base_state="S", + base_parameters=["beta"], + stratum=stratum, + strata_transitions=False, ) + stratified_model = base_model.stratify(stratification) stratified_params = stratified_model.petrinet.semantics.ode.parameters - betas = {p.id: p for p in stratified_params if "beta" in p.id} - betas["beta_1_2_0"].value -= epsilon - betas["beta_1_2_1"].value += epsilon + betas = [p for p in stratified_params if "beta" in p.id] + for i, b in enumerate(betas): + if i == 0: + b.value -= epsilon + else: + b.value += epsilon stratified_result = runner.run( - stratified_model.petrinet.model_dump(), BASE_SIR_REQUEST_PATH + stratified_model.petrinet, BASE_SIR_REQUEST_PATH ) assert ( @@ -137,10 +174,19 @@ def test_stratify(self): ), f"Could not generate a result for stratified version of model: [{BASE_SIR_MODEL_PATH}], request: [{BASE_SIR_REQUEST_PATH}]" # Abstract and bound stratified Base model - abstract_model = stratified_model.abstract({"S_1": "S", "S_2": "S"}) + abstract_model = stratified_model.abstract( + Abstraction( + abstraction={ + "S_st_1": "S", + "S_st_2": "S", + "beta___to_____S_st_1_to__": "beta", + "beta___to_____S_st_2_to__": "beta", + } + ) + ) bounded_abstract_model = abstract_model.formulate_bounds() bounded_abstract_result = runner.run( - bounded_abstract_model.petrinet.model_dump(), + bounded_abstract_model.petrinet, BASE_SIR_REQUEST_PATH, ) @@ -166,26 +212,26 @@ def test_stratify(self): )[bass] ds_df = pd.DataFrame(s_df) - ds_df["S"] = ds_df.S_1 + ds_df.S_2 - - def check_bounds(bounds_df, values_df, variable, values_model_name): - failures = [] - lb = f"{variable}_lb" - ub = f"{variable}_ub" - if not all(values_df[variable] >= bounds_df[lb]): - failures.append( - f"The bounded abstract model does not lower bound the {values_model_name} model {variable}:\n{pd.DataFrame({lb:bounds_df[lb], variable: values_df[variable], f'{variable}-{lb}':values_df[variable]-bounds_df[lb]})}" - ) - if not all(values_df[variable] <= bounds_df[ub]): - failures.append( - f"The bounded abstract model does not upper bound the {values_model_name} model {variable}:\n{pd.DataFrame({ub:bounds_df[ub], variable: values_df[variable], f'{ub}-{variable}':bounds_df[ub]-values_df[variable]})}" - ) - return failures + ds_df["S"] = ds_df.S_st_1 + ds_df.S_st_2 + + # def check_bounds(bounds_df, values_df, variable, values_model_name): + # failures = [] + # lb = f"{variable}_lb" + # ub = f"{variable}_ub" + # if not all(values_df[variable] >= bounds_df[lb]): + # failures.append( + # f"The bounded abstract model does not lower bound the {values_model_name} model {variable}:\n{pd.DataFrame({lb:bounds_df[lb], variable: values_df[variable], f'{variable}-{lb}':values_df[variable]-bounds_df[lb]})}" + # ) + # if not all(values_df[variable] <= bounds_df[ub]): + # failures.append( + # f"The bounded abstract model does not upper bound the {values_model_name} model {variable}:\n{pd.DataFrame({ub:bounds_df[ub], variable: values_df[variable], f'{ub}-{variable}':bounds_df[ub]-values_df[variable]})}" + # ) + # return failures all_failures = [] for values_df, model in [(b_df, "base"), (ds_df, "stratified")]: for var in ["S", "I", "R"]: - all_failures += check_bounds(ba_df, values_df, var, model) + all_failures += self.check_bounds(ba_df, values_df, var, model) reasons = "\n".join(map(str, all_failures)) assert ( @@ -263,24 +309,54 @@ def test_param_synth(self): # FIXME need assert - @unittest.skip(reason="WIP") + def check_bounds( + self, bounds_df, values_df, variable, values_model_name, tolerance=1e-7 + ): + failures = [] + lb = f"{variable}_lb" + ub = f"{variable}_ub" + if not all(values_df[variable] >= bounds_df[lb] - tolerance): + failures.append( + f"The bounded abstract model does not lower bound the {values_model_name} model {variable}:\n{pd.DataFrame({lb:bounds_df[lb], variable: values_df[variable], f'{variable}-{lb}':values_df[variable]-bounds_df[lb]})}" + ) + if not all(values_df[variable] <= bounds_df[ub] + tolerance): + failures.append( + f"The bounded abstract model does not upper bound the {values_model_name} model {variable}:\n{pd.DataFrame({ub:bounds_df[ub], variable: values_df[variable], f'{ub}-{variable}':bounds_df[ub]-values_df[variable]})}" + ) + return failures + + def check_bounds_configurations( + self, configurations, variables, bounded_abstract_df + ): + all_failures = [] + for values_df, model in configurations: + for var in variables: + all_failures += self.check_bounds( + bounded_abstract_df, values_df, var, model + ) + reasons = "\n".join(map(str, all_failures)) + assert ( + len(all_failures) == 0 + ), f"The bounds failed in the following cases:\n{reasons}" + + # @unittest.skip(reason="WIP") def test_sirhd_stratify(self): epsilon = 0.000001 - timepoints = list( - range(0, 2, 1) - ) + timepoints = list(range(0, 2, 1)) with open(BASE_SIRHD_REQUEST_PATH, "r") as f: - sirhd_base_request = FunmanWorkRequest.model_validate_json(f.read()) + sirhd_base_request = FunmanWorkRequest.model_validate_json( + f.read() + ) # sirhd_request.config.use_compartmental_constraints = False # sirhd_request.config.save_smtlib = "./out" sirhd_base_request.config.mode = "mode_odeint" - sirhd_base_request.structure_parameters[0].schedules[0].timepoints = timepoints + sirhd_base_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints runner = Runner() - base_result = runner.run( - BASE_SIRHD_MODEL_PATH, sirhd_base_request - ) + base_result = runner.run(BASE_SIRHD_MODEL_PATH, sirhd_base_request) # import matplotlib.pyplot as plt @@ -293,41 +369,76 @@ def test_sirhd_stratify(self): (base_model, _) = runner.get_model(BASE_SIRHD_MODEL_PATH) + vac_T = StratumAttributeValue(name="T") + vac_F = StratumAttributeValue(name="F") + vac_stratum_attr = StratumAttribute(name="vac", values={vac_T, vac_F}) + vac_stratum = Stratum( + values={ + vac_stratum_attr: { + StratumAttributeValueSet(values={vac_T}), + StratumAttributeValueSet(values={vac_F}), + } + } + ) + # Stratify Base model - stratified_model_S = base_model.stratify( - "S", - ["vac", "unvac"], - strata_parameters=["beta"], - self_strata_transition=False, + stratification = Stratification( + base_state="S", + base_parameters=["beta"], + stratum=vac_stratum, + strata_transitions=False, ) + stratified_model_S = base_model.stratify(stratification) stratified_model_S.to_dot().render("sirhd_strat_S") - stratified_model_SI = stratified_model_S.stratify( - "I", - ["vac", "unvac"], - strata_parameters=[], - self_strata_transition=False, + # Combines rates for stratified t1 transition + # S_v beta_v I, S_u beta_u I -> S beta I + + betas = [ + p.id + for p in stratified_model_S.petrinet.semantics.ode.parameters + if "beta" in p.id + ] + beta_abs = {p: "agg_beta" for p in betas} + + undo_S = stratified_model_S.abstract( + Abstraction( + abstraction={"S_vac_T": "S", "S_vac_F": "S", **beta_abs} + ) ) + undo_S.to_dot().render("undo_S") + stratification = Stratification( + base_state="I", + stratum=vac_stratum, + strata_transitions=False, + ) + stratified_model_SI = stratified_model_S.stratify(stratification) stratified_model_SI.to_dot().render("sirhd_strat_SI") stratified_params = ( stratified_model_SI.petrinet.semantics.ode.parameters ) - betas = {p.id: p for p in stratified_params if "beta" in p.id} - betas["beta_vac_unvac_0"].value -= epsilon - betas["beta_vac_unvac_1"].value += epsilon + betas = [p for p in stratified_params if "beta" in p.id] + for i, b in enumerate(betas): + if i == 0: + b.value -= epsilon + else: + b.value += epsilon with open(BASE_SIRHD_REQUEST_PATH, "r") as f: - sirhd_stratified_request = FunmanWorkRequest.model_validate_json(f.read()) + sirhd_stratified_request = FunmanWorkRequest.model_validate_json( + f.read() + ) # sirhd_request.config.use_compartmental_constraints = False # sirhd_request.config.save_smtlib = "./out" sirhd_stratified_request.config.mode = "mode_odeint" - sirhd_stratified_request.structure_parameters[0].schedules[0].timepoints = timepoints - + sirhd_stratified_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints stratified_result = runner.run( - stratified_model_SI.petrinet.model_dump(), sirhd_stratified_request + stratified_model_SI.petrinet, sirhd_stratified_request ) assert ( @@ -336,19 +447,22 @@ def test_sirhd_stratify(self): # Abstract and bound stratified Base model abstract_model = stratified_model_SI.abstract( - { - "S_vac": "S", - "S_unvac": "S", - "beta_vac_unvac_0": "agg_beta", - "beta_vac_unvac_1": "agg_beta", - } + Abstraction( + abstraction={ + "S_vac_T": "S", + "S_vac_F": "S", + **{b.id: "agg_beta" for b in betas}, + } + ) ) # print(abstract_model._state_var_names()) # print(abstract_model._parameter_names()) abstract_model.to_dot().render("sirhd_strat_SI_abstract_S") bounded_abstract_model = abstract_model.formulate_bounds() - bounded_abstract_model.to_dot().render("sirhd_strat_SI_bounded_abstract_S") + bounded_abstract_model.to_dot().render( + "sirhd_strat_SI_bounded_abstract_S" + ) # Setup request by removing compartmental constraint that won't be correct # for a bounded model @@ -357,10 +471,12 @@ def test_sirhd_stratify(self): # sirhd_request.config.use_compartmental_constraints = False # sirhd_request.config.save_smtlib = "./out" sirhd_request.config.mode = "mode_odeint" - sirhd_request.structure_parameters[0].schedules[0].timepoints = timepoints + sirhd_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints bounded_abstract_result = runner.run( - bounded_abstract_model.petrinet.model_dump(), + bounded_abstract_model.petrinet, sirhd_request, ) @@ -374,124 +490,992 @@ def test_sirhd_stratify(self): base_df = base_result.dataframe(base_result.points())[bs] ss = [s for s in stratified_result.model._symbols() if s != "timer_t"] - stratified_df = stratified_result.dataframe(stratified_result.points())[ss] + stratified_df = stratified_result.dataframe( + stratified_result.points() + )[ss] - bass = [s for s in bounded_abstract_result.model._symbols() if s != "timer_t"] - bounded_abstract_df = bounded_abstract_result.dataframe(bounded_abstract_result.points())[bass] - bounded_abstract_df["I_lb"] = bounded_abstract_df.I_vac_lb + bounded_abstract_df.I_unvac_lb - bounded_abstract_df["I_ub"] = bounded_abstract_df.I_vac_ub + bounded_abstract_df.I_unvac_ub + bass = [ + s + for s in bounded_abstract_result.model._symbols() + if s != "timer_t" + ] + bounded_abstract_df = bounded_abstract_result.dataframe( + bounded_abstract_result.points() + )[bass] + bounded_abstract_df["I_lb"] = ( + bounded_abstract_df.I_vac_T_lb + bounded_abstract_df.I_vac_F_lb + ) + bounded_abstract_df["I_ub"] = ( + bounded_abstract_df.I_vac_T_ub + bounded_abstract_df.I_vac_F_ub + ) destratified_df = pd.DataFrame(stratified_df) - destratified_df["S"] = destratified_df.S_vac + destratified_df.S_unvac - destratified_df["I"] = destratified_df.I_vac + destratified_df.I_unvac - - def check_bounds(bounds_df, values_df, variable, values_model_name): - failures = [] - lb = f"{variable}_lb" - ub = f"{variable}_ub" - if not all(values_df[variable] >= bounds_df[lb]): - failures.append(f"The bounded abstract model does not lower bound the {values_model_name} model {variable}:\n{pd.DataFrame({lb:bounds_df[lb], variable: values_df[variable], f'{variable}-{lb}':values_df[variable]-bounds_df[lb]})}") - if not all(values_df[variable] <= bounds_df[ub]): - failures.append(f"The bounded abstract model does not upper bound the {values_model_name} model {variable}:\n{pd.DataFrame({ub:bounds_df[ub], variable: values_df[variable], f'{ub}-{variable}':bounds_df[ub]-values_df[variable]})}") - return failures + destratified_df["S"] = ( + destratified_df.S_vac_T + destratified_df.S_vac_F + ) + destratified_df["I"] = ( + destratified_df.I_vac_T + destratified_df.I_vac_F + ) + + configurations = [ + (base_df, "base"), + (destratified_df, "stratified"), + ] + variables = ["S", "I", "H", "R", "D"] + + self.check_bounds_configurations( + configurations, variables, bounded_abstract_df + ) + + def model_has_expected_parameters(self, model, expected_parameters): + params = model._parameter_names() + assert all( + [p in params for p in expected_parameters] + ), f"Stratifying I error: did not get expected parameters, got {params}, expecting new parameters {expected_parameters}" + + # @unittest.skip(reason="WIP") + def test_sirhd_stratify_transitions(self): + epsilon = 0.000001 + timepoints = list(range(0, 2, 1)) + + with open(BASE_SIRHD_REQUEST_PATH, "r") as f: + sirhd_base_request = FunmanWorkRequest.model_validate_json( + f.read() + ) + sirhd_base_request.config.mode = "mode_odeint" + sirhd_base_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints + + runner = Runner() + base_result = runner.run(BASE_SIRHD_MODEL_PATH, sirhd_base_request) + + assert ( + base_result + ), f"Could not generate a result for model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + (base_model, _) = runner.get_model(BASE_SIRHD_MODEL_PATH) + + vac_T = StratumAttributeValue(name="T") + vac_F = StratumAttributeValue(name="F") + vac_stratum_attr = StratumAttribute(name="vac", values={vac_T, vac_F}) + vac_stratum = Stratum( + values={ + vac_stratum_attr: { + StratumAttributeValueSet(values={vac_T}), + StratumAttributeValueSet(values={vac_F}), + } + } + ) + + # Stratify Base model + stratification_S = Stratification( + base_state="S", + base_parameters=["beta"], + stratum=vac_stratum, + self_strata_transitions=True, + cross_strata_transitions=True, + ) + stratification_I = Stratification( + base_state="I", + stratum=vac_stratum, + cross_strata_transitions=True, + ) + + stratified_model_S = base_model.stratify(stratification_S) + stratified_model_S.to_dot().render("sirhd_strat_S") + stratified_model_S_parameters = stratified_model_S._parameter_names() + + # # S stratification stratifies beta, allows cross strata transitions, and self strata transitions + stratified_model_S_expected_parameters = [ + "N", + "pir", + "pih", + "rih", + "phd", + "rhd", + "phr", + "rhr", + "rir", + "beta___to_____S_vac_F_to__", + "beta___to_____S_vac_T_to__", + "p_cross_S_vac_T_to_S_vac_F_", + "p_cross_S_vac_F_to_S_vac_T_", + ] + + self.model_has_expected_parameters( + stratified_model_S, stratified_model_S_expected_parameters + ) + + stratified_model_I = base_model.stratify(stratification_I) + stratified_model_I.to_dot().render("sirhd_strat_I") + stratified_model_I_parameters = stratified_model_I._parameter_names() + + # I stratification allows cross strata transitions, but will not stratify beta + stratified_model_I_expected_parameters = [ + "p_cross_I_vac_T_to_I_vac_T___S_to_I_vac_T_", + "p_cross_I_vac_T_to_I_vac_T___S_to_I_vac_F_", + "p_cross_I_vac_F_to_I_vac_F___S_to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_to_I_vac_F_", + "N", + "beta", + "pir", + "pih", + "rih", + "phd", + "rhd", + "phr", + "rhr", + "rir", + ] + self.model_has_expected_parameters( + stratified_model_I, stratified_model_I_expected_parameters + ) + + stratified_model_SI = stratified_model_S.stratify(stratification_I) + stratified_model_SI.to_dot().render("sirhd_strat_SI") + stratified_model_SI_parameters = stratified_model_SI._parameter_names() + + # # S stratification stratifies beta, allows cross strata transitions, and self strata transitions + stratified_model_SI_expected_parameters = [ + "N", + "pir", + "pih", + "rih", + "phd", + "rhd", + "phr", + "rhr", + "rir", + "beta___to_____S_vac_T_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_", + "beta___to_____S_vac_F_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_T_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_F_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_F_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_", + "p_cross_S_vac_T_to_S_vac_F_", + "p_cross_S_vac_F_to_S_vac_T_", + ] + self.model_has_expected_parameters( + stratified_model_SI, stratified_model_SI_expected_parameters + ) + + stratified_model_IS = stratified_model_I.stratify(stratification_S) + stratified_model_IS.to_dot().render("sirhd_strat_IS") + stratified_model_IS_parameters = stratified_model_IS._parameter_names() + + stratified_model_IS_expected_parameters = [ + "N", + "pir", + "pih", + "rih", + "phd", + "rhd", + "phr", + "rhr", + "rir", + "beta___to_____S_vac_T_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_", + "beta___to_____S_vac_F_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_T_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_F_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_F_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_", + "p_cross_S_vac_T_to_S_vac_F_", + "p_cross_S_vac_F_to_S_vac_T_", + ] + + self.model_has_expected_parameters( + stratified_model_IS, stratified_model_IS_expected_parameters + ) + + assert ( + len( + set(stratified_model_SI_parameters).symmetric_difference( + set(stratified_model_IS_parameters) + ) + ) + == 0 + ) + + for stratified_params in [ + stratified_model_SI.petrinet.semantics.ode.parameters, + stratified_model_IS.petrinet.semantics.ode.parameters, + ]: + betas = [p for p in stratified_params if "beta" in p.id] + for i, b in enumerate(betas): + if i == 0: + b.value -= epsilon + else: + b.value += epsilon + + with open(BASE_SIRHD_REQUEST_PATH, "r") as f: + sirhd_stratified_request = FunmanWorkRequest.model_validate_json( + f.read() + ) + # sirhd_request.config.use_compartmental_constraints = False + # sirhd_request.config.save_smtlib = "./out" + sirhd_stratified_request.config.mode = "mode_odeint" + sirhd_stratified_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints + + stratified_model_S_result = runner.run( + stratified_model_S.petrinet, sirhd_stratified_request + ) + assert ( + stratified_model_S_result + ), f"Could not generate a result for stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + stratified_model_I_result = runner.run( + stratified_model_I.petrinet, sirhd_stratified_request + ) + assert ( + stratified_model_I_result + ), f"Could not generate a result for stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + stratified_model_SI_result = runner.run( + stratified_model_SI.petrinet, sirhd_stratified_request + ) + assert ( + stratified_model_SI_result + ), f"Could not generate a result for stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + stratified_model_IS_result = runner.run( + stratified_model_IS.petrinet, sirhd_stratified_request + ) + assert ( + stratified_model_IS_result + ), f"Could not generate a result for stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + # Abstract and bound stratified Base model + stratified_model_SI_abstract_S = stratified_model_SI.abstract( + Abstraction( + abstraction={ + "S_vac_T": "S", + "S_vac_F": "S", + **{b.id: "beta" for b in betas}, + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_": "p_cross_I_vac_F_to_I_vac_F____to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_T_": "p_cross_I_vac_F_to_I_vac_F____to_I_vac_T_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_F_": "p_cross_I_vac_F_to_I_vac_F____to_I_vac_F_", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_": "p_cross_I_vac_F_to_I_vac_F____to_I_vac_F_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_T_": "p_cross_I_vac_T_to_I_vac_T____to_I_vac_T_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_": "p_cross_I_vac_T_to_I_vac_T____to_I_vac_T_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_": "p_cross_I_vac_T_to_I_vac_T____to_I_vac_F_", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_F_": "p_cross_I_vac_T_to_I_vac_T____to_I_vac_F_", + } + ) + ) + stratified_model_SI_abstract_S.to_dot().render( + "sirhd_strat_SI_abstract_S" + ) + + stratified_model_SI_abstract_I = stratified_model_SI.abstract( + Abstraction( + abstraction={ + "I_vac_T": "I", + "I_vac_F": "I", + **{b.id: "beta" for b in betas}, + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_T_": "p_cross__to____S_vac_T_to__", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_T_": "p_cross__to____S_vac_F_to__", + "p_cross_I_vac_F_to_I_vac_F___S_vac_T_to_I_vac_F_": "p_cross__to____S_vac_T_to__", + "p_cross_I_vac_F_to_I_vac_F___S_vac_F_to_I_vac_F_": "p_cross__to____S_vac_F_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_T_": "p_cross__to____S_vac_F_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_T_": "p_cross__to____S_vac_T_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_F_to_I_vac_F_": "p_cross__to____S_vac_F_to__", + "p_cross_I_vac_T_to_I_vac_T___S_vac_T_to_I_vac_F_": "p_cross__to____S_vac_T_to__", + } + ) + ) + stratified_model_SI_abstract_I.to_dot().render( + "sirhd_strat_SI_abstract_I" + ) + + bounded_abstract_model = ( + stratified_model_SI_abstract_S.formulate_bounds() + ) + bounded_abstract_model.to_dot().render( + "sirhd_strat_SI_bounded_abstract_S" + ) + + # Abstract and bound stratified Base model + abstract_model1 = stratified_model_SI.abstract( + Abstraction( + abstraction={ + "I_vac_T": "I", + "I_vac_F": "I", + **{b.id: "agg_beta" for b in betas}, + } + ) + ) + # print(abstract_model._state_var_names()) + # print(abstract_model._parameter_names()) + stratified_model_SI_abstract_S.to_dot().render( + "sirhd_strat_SI_abstract_S" + ) + + # Setup request by removing compartmental constraint that won't be correct + # for a bounded model + with open(BASE_SIRHD_REQUEST_PATH, "r") as f: + sirhd_request = FunmanWorkRequest.model_validate_json(f.read()) + # sirhd_request.config.use_compartmental_constraints = False + # sirhd_request.config.save_smtlib = "./out" + sirhd_request.config.mode = "mode_odeint" + sirhd_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints + + bounded_abstract_result = runner.run( + bounded_abstract_model.petrinet, + sirhd_request, + ) + + assert ( + bounded_abstract_result + ), f"Could not generate a result for bounded abstracted stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + bounded_abstract_df = bounded_abstract_result.dataframe( + bounded_abstract_result.points() + ) + bounded_abstract_df["I_lb"] = ( + bounded_abstract_df["I_vac_F_lb"] + + bounded_abstract_df["I_vac_T_lb"] + ) + bounded_abstract_df["I_ub"] = ( + bounded_abstract_df["I_vac_F_ub"] + + bounded_abstract_df["I_vac_T_ub"] + ) + + base_df = base_result.dataframe(base_result.points()) + + stratified_S_df = stratified_model_S_result.dataframe( + stratified_model_S_result.points() + ) + destratified_S_df = pd.DataFrame(stratified_S_df) + destratified_S_df["S"] = ( + destratified_S_df.S_vac_T + destratified_S_df.S_vac_F + ) + + stratified_I_df = stratified_model_I_result.dataframe( + stratified_model_I_result.points() + ) + destratified_I_df = pd.DataFrame(stratified_I_df) + destratified_I_df["I"] = ( + destratified_I_df.I_vac_T + destratified_I_df.I_vac_F + ) + + stratified_SI_df = stratified_model_SI_result.dataframe( + stratified_model_SI_result.points() + ) + destratified_SI_df = pd.DataFrame(stratified_SI_df) + destratified_SI_df["S"] = ( + destratified_SI_df.S_vac_T + destratified_SI_df.S_vac_F + ) + destratified_SI_df["I"] = ( + destratified_SI_df.I_vac_T + destratified_SI_df.I_vac_F + ) + + stratified_IS_df = stratified_model_IS_result.dataframe( + stratified_model_IS_result.points() + ) + destratified_IS_df = pd.DataFrame(stratified_IS_df) + destratified_IS_df["S"] = ( + destratified_IS_df.S_vac_T + destratified_IS_df.S_vac_F + ) + destratified_IS_df["I"] = ( + destratified_IS_df.I_vac_T + destratified_IS_df.I_vac_F + ) + + configurations = [ + (base_df, "base"), + (destratified_I_df, "stratified_I"), + (destratified_S_df, "stratified_S"), + (destratified_SI_df, "stratified_SI"), + (destratified_IS_df, "stratified_IS"), + ] + variables = ["S", "I", "H", "R", "D"] + + self.check_bounds_configurations( + configurations, variables, bounded_abstract_df + ) + + # @unittest.skip(reason="WIP") + + def test_sirhd_stratify_analysis(self): + + epsilon = 0.000001 + timepoints = [float(t) for t in list(range(0, 2, 1))] + + runner = Runner() + (base_model, _) = runner.get_model(BASE_SIRHD_MODEL_PATH) + with open(BASE_SIRHD_REQUEST_PATH, "r") as f: + sirhd_stratified_request = FunmanWorkRequest.model_validate_json( + f.read() + ) + # sirhd_request.config.use_compartmental_constraints = False + # sirhd_request.config.save_smtlib = "./out" + sirhd_stratified_request.config.mode = "mode_odeint" + sirhd_stratified_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints + + # Add constraint on I + sirhd_stratified_request.constraints.append( + StateVariableConstraint( + name="I upper", variable="I", interval=Interval(ub=1200) + ) + ) + + # with open(BASE_SIRHD_REQUEST_PATH, "r") as f: + # sirhd_base_request = FunmanWorkRequest.model_validate_json( + # f.read() + # ) + # sirhd_base_request.config.mode = "mode_odeint" + # sirhd_base_request.structure_parameters[0].schedules[ + # 0 + # ].timepoints = timepoints + + # runner = Runner() + # base_result = runner.run(BASE_SIRHD_MODEL_PATH, sirhd_stratified_request) + + # assert ( + # base_result + # ), f"Could not generate a result for model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + # (base_model, _) = runner.get_model(BASE_SIRHD_MODEL_PATH) + + vac_T = StratumAttributeValue(name="T") + vac_F = StratumAttributeValue(name="F") + vac_stratum_attr = StratumAttribute(name="vac", values={vac_T, vac_F}) + vac_stratum = Stratum( + values={ + vac_stratum_attr: { + StratumAttributeValueSet(values={vac_T}), + StratumAttributeValueSet(values={vac_F}), + } + } + ) + + age_0 = StratumAttributeValue(name="0") + age_1 = StratumAttributeValue(name="1") + age_2 = StratumAttributeValue(name="2") + age_stratum_attr = StratumAttribute( + name="age", values={age_0, age_1, age_2} + ) + age_stratum = Stratum( + values={ + age_stratum_attr: { + StratumAttributeValueSet(values={age_0}), + StratumAttributeValueSet(values={age_1}), + StratumAttributeValueSet(values={age_2}), + } + } + ) + + base_params = base_model.petrinet.semantics.ode.parameters + beta = next(iter([p for p in base_params if "beta" in p.id])) + + vac_stratifications = [ + Stratification( + description="Stratify S and beta wrt. vaccination status. Set beta values for strata.", + base_state="S", + stratum=vac_stratum, + self_strata_transitions=True, + base_parameters={ + "beta": { + StrataTransition( + input_stratum=StratumValuation( + values={ + vac_stratum_attr: StratumAttributeValueSet( + values={vac_T} + ) + } + ), + output_stratum=StratumValuation(), + ): beta.value + - epsilon, + StrataTransition( + input_stratum=StratumValuation( + values={ + vac_stratum_attr: StratumAttributeValueSet( + values={vac_F} + ) + } + ), + output_stratum=StratumValuation(), + ): beta.value + + epsilon, + } + }, + ), + # FIXME Has an extra self transition that shouldn't be there + Stratification( + description="Stratify S_vac_T wrt. age group", + base_state="S_vac_T", + stratum=age_stratum, + self_strata_transitions=True, + base_parameters={ + "beta___to_____S_vac_T_to__": { + StrataTransition( + input_stratum=StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values={age_0} + ), + vac_stratum_attr: StratumAttributeValueSet( + values={vac_T} + ), + } + ), + output_stratum=StratumValuation(), + ): beta.value + - 2 * epsilon, + StrataTransition( + input_stratum=StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values={age_1} + ), + vac_stratum_attr: StratumAttributeValueSet( + values={vac_T} + ), + } + ), + output_stratum=StratumValuation(), + ): beta.value, + StrataTransition( + input_stratum=StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values={age_2} + ), + vac_stratum_attr: StratumAttributeValueSet( + values={vac_T} + ), + } + ), + output_stratum=StratumValuation(), + ): beta.value + + 2 * epsilon, + } + }, + ), + Stratification( + description="Stratify S_vac_F wrt. age group", + base_state="S_vac_F", + stratum=age_stratum, + self_strata_transitions=True, + base_parameters={ + "beta___to_____S_vac_F_to__": { + StrataTransition( + input_stratum=StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values={age_0} + ), + vac_stratum_attr: StratumAttributeValueSet( + values={vac_F} + ), + } + ), + output_stratum=StratumValuation(), + ): beta.value + - 3 * epsilon, + StrataTransition( + input_stratum=StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values={age_1} + ), + vac_stratum_attr: StratumAttributeValueSet( + values={vac_F} + ), + } + ), + output_stratum=StratumValuation(), + ): beta.value, + StrataTransition( + input_stratum=StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values={age_2} + ), + vac_stratum_attr: StratumAttributeValueSet( + values={vac_F} + ), + } + ), + output_stratum=StratumValuation(), + ): beta.value + + 3 * epsilon, + } + }, + ), + # Stratification( + # description="Stratify I wrt. vaccination status.", + # base_state="I", + # stratum=vac_stratum, + # self_strata_transitions=True, + # ), + # Stratification( + # description="Stratify R wrt. vaccination status.", + # base_state="R", + # stratum=vac_stratum, + # self_strata_transitions=True, + # ), + # Stratification( + # description="Stratify H wrt. vaccination status.", + # base_state="H", + # stratum=vac_stratum, + # self_strata_transitions=True, + # ), + # Stratification( + # description="Stratify D wrt. vaccination status.", + # base_state="D", + # stratum=vac_stratum, + # self_strata_transitions=True, + # ), + ] + + vac_abstractions = [ + # Abstraction( + # description="Abstract D wrt. vaccination status.", + # abstraction={"D_vac_F": "D", "D_vac_T": "D"}, + # ), + # Abstraction( + # description="Abstract H wrt. vaccination status.", + # abstraction={"H_vac_F": "H", "H_vac_T": "H"}, + # ), + # Abstraction( + # description="Abstract R wrt. vaccination status.", + # abstraction={"R_vac_F": "R", "R_vac_T": "R"}, + # ), + # Abstraction( + # description="Abstract I wrt. vaccination status.", + # abstraction={"I_vac_F": "I", "I_vac_T": "I"}, + # ), + Abstraction( + description="Abstract S age groups wrt. unvaccination status.", + abstraction={ + "S_vac_F_age_0": "S_vac_F", + "S_vac_F_age_1": "S_vac_F", + "S_vac_F_age_2": "S_vac_F", + "beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__": "beta___to_____S_vac_F_to__", + "beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__": "beta___to_____S_vac_F_to__", + "beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__": "beta___to_____S_vac_F_to__", + }, + ), + Abstraction( + description="Abstract S age groups wrt. vaccination status.", + abstraction={ + "S_vac_T_age_0": "S_vac_T", + "S_vac_T_age_1": "S_vac_T", + "S_vac_T_age_2": "S_vac_T", + "beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__": "beta___to_____S_vac_T_to__", + "beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__": "beta___to_____S_vac_T_to__", + "beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__": "beta___to_____S_vac_T_to__", + }, + ), + Abstraction( + description="Abstract S and beta vaccination status.", + abstraction={ + "S_vac_F": "S", + "S_vac_T": "S", + "beta___to_____S_vac_T_to__": "beta", + "beta___to_____S_vac_F_to__": "beta", + }, + ), + ] + + transformation_sequence = vac_stratifications + vac_abstractions + vac_models = [] + + current_model = base_model + for i, t in enumerate(transformation_sequence): + next_model = current_model.transform(t) + vac_models.append(next_model) + next_model.to_dot().render(f"vac_model_{i}"), + current_model = next_model + + # vac_models = list( + # accumulate( + # transformation_sequence, + # lambda x, y: x.transform(y), + # initial=base_model, + # ) + # ) + + for m in vac_models: + infected_states = [ + s.id for s in m.petrinet.model.states if s.id.startswith("I") + ] + if len(infected_states) > 1: + infected_sum = Observable( + id="I", expression="+".join(infected_states) + ) + m.petrinet.semantics.ode.observables = [infected_sum] + # sirhd_stratified_request.constraints.append( + # LinearConstraint( + # name="I bound", variables=["I"], additive_bounds={"ub": 1e5} + # ) + # ) + + list( + map( + lambda x, name: x.to_dot().render(f"vac_model_{name}"), + vac_models, + range(len(vac_models)), + ) + ) + + vac_model_params = [ + {p.id: p.value for p in m.petrinet.semantics.ode.parameters} + for m in vac_models + ] + + bounded_vac_models = [m.formulate_bounds() for m in vac_models] + + for m in bounded_vac_models: + # infected_states_lb = [s.id for s in m.petrinet.model.states if s.id.startswith("I") and s.id.endswith("_lb")] + infected_states_ub = [ + s.id + for s in m.petrinet.model.states + if s.id.startswith("I") and s.id.endswith("_ub") + ] + + infected_ub_sum = Observable( + id="I", expression="+".join(infected_states_ub) + ) + m.petrinet.semantics.ode.observables = [infected_ub_sum] + # sirhd_stratified_request.constraints.append( + # LinearConstraint( + # name="I_ub bound", + # variables=["I_ub"], + # additive_bounds={"ub": 1200}, + # ) + # ) + + results = [runner.run(base_model.petrinet, sirhd_stratified_request)] + results += [ + runner.run(m.petrinet, sirhd_stratified_request) + for m in vac_models[0 : len(vac_stratifications) + 1] + ] + results += [ + runner.run(m.petrinet, sirhd_stratified_request) + for m in bounded_vac_models + ] + + m = [] + for i, result in enumerate(results): + df = result.dataframe() + df["description"] = ( + result.model.petrinet.metadata["transformation_description"] + if "transformation_description" + in result.model.petrinet.metadata + else "" + ) + df["model_index"] = i + df["error"] = result.error + df["true_points"] = len(result.parameter_space.true_points()) + df["runtime (s)"] = ( + f"{result.timing.total_time.seconds}.{result.timing.total_time.microseconds}" + ) + df["I_bound"] = len(result.parameter_space.true_points()) > 0 + df = df.set_index(["model_index", "index"]) + m.append(df) + dfs = pd.concat(m) + runtimes = dfs.reset_index(["index"])[ + ["runtime (s)", "description", "I_bound"] + ].drop_duplicates() + self.l.info(runtimes) + runtimes.to_csv("stratify_analysis_runtimes.csv") + dfs.to_csv("stratify_analysis.csv") + # I_df = pd.DataFrame([base_df.I, vac_model_df.I_vac_F, vac_model_df.I_vac_T, bounded_df.I_lb, bounded_df.I_ub]).T + # S_df = pd.DataFrame([base_df.S, vac_model_df.S_vac_F, vac_model_df.S_vac_T, bounded_df.S_lb, bounded_df.S_ub]).T + + # assert ( + # bounded_abstract_model_result + # ), f"Could not generate a result for stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" + + def test_sirhd_nonuniform_abstraction(self): + + epsilon = 0.000001 + timepoints = list(range(0, 2, 1)) + + runner = Runner() + (base_model, _) = runner.get_model(BASE_SIRHD_MODEL_PATH) + with open(BASE_SIRHD_REQUEST_PATH, "r") as f: + sirhd_stratified_request = FunmanWorkRequest.model_validate_json( + f.read() + ) + # sirhd_request.config.use_compartmental_constraints = False + # sirhd_request.config.save_smtlib = "./out" + sirhd_stratified_request.config.mode = "mode_odeint" + sirhd_stratified_request.structure_parameters[0].schedules[ + 0 + ].timepoints = timepoints + + age_0 = StratumAttributeValue(name="0") + age_1 = StratumAttributeValue(name="1") + age_2 = StratumAttributeValue(name="2") + age_stratum_attr = StratumAttribute( + name="age", values={age_0, age_1, age_2} + ) + age_stratum = Stratum( + values={ + age_stratum_attr: { + StratumAttributeValueSet(values={age_0}), + StratumAttributeValueSet(values={age_1}), + StratumAttributeValueSet(values={age_2}), + } + } + ) + + base_params = base_model.petrinet.semantics.ode.parameters + beta = next(iter([p for p in base_params if "beta" in p.id])) + + age_0_age_1_val = StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values=[age_0, age_1] + ) + } + ) + age_1_age_2_val = StratumValuation( + values={ + age_stratum_attr: StratumAttributeValueSet( + values=[age_1, age_2] + ) + } + ) + age_0_val = StratumValuation( + values={age_stratum_attr: StratumAttributeValueSet(values={age_0})} + ) + age_1_val = StratumValuation( + values={age_stratum_attr: StratumAttributeValueSet(values={age_1})} + ) + age_2_val = StratumValuation( + values={age_stratum_attr: StratumAttributeValueSet(values={age_2})} + ) + empty_val = StratumValuation() + + vac_stratifications = [ + Stratification( + base_state="S", + stratum=age_stratum, + self_strata_transitions=True, + partition=StratumPartition( + values=[age_0_val, age_1_age_2_val] + ), + base_parameters={ + "beta": { + StrataTransition( + input_stratum=age_0_val, output_stratum=empty_val + ): beta.value + - epsilon, + StrataTransition( + input_stratum=age_1_age_2_val, + output_stratum=empty_val, + ): beta.value + + epsilon, + } + }, + ), + Stratification( + base_state="S_age_1_2", + stratum=age_stratum, + self_strata_transitions=True, + partition=StratumPartition(values=[age_1_val, age_2_val]), + base_parameters={ + "beta___to_____S_age_1_2_to__": { + StrataTransition( + input_stratum=age_1_val, + output_stratum=empty_val, + ): beta.value + - epsilon, + StrataTransition( + input_stratum=age_2_val, + output_stratum=empty_val, + ): beta.value + + epsilon, + } + }, + ), + ] + + vac_abstractions = [ + Abstraction( + abstraction={ + "S_age_0": "S_age_0_age_1", + "S_age_1": "S_age_0_age_1", + } + ), + ] + + transformation_sequence = vac_stratifications # + vac_abstractions + + vac_models = list( + accumulate( + transformation_sequence, + lambda x, y: x.transform(y), + initial=base_model, + ) + ) + + list( + map( + lambda x, name: x.to_dot().render(f"vac_model_{name}"), + vac_models, + range(len(vac_models)), + ) + ) + + vac_model_params = [ + {p.id: p.value for p in m.petrinet.semantics.ode.parameters} + for m in vac_models + ] + + bounded_vac_models = [m.formulate_bounds() for m in vac_models] + + results = [ + runner.run(m.petrinet, sirhd_stratified_request) + for m in vac_models[0 : len(vac_stratifications) + 1] + + bounded_vac_models + ] + + m = [] + for i, result in enumerate(results): + df = result.dataframe() + df["model_index"] = i + df["runtime (s)"] = ( + f"{result.timing.total_time.seconds}.{result.timing.total_time.microseconds}" + ) + df["I_bound"] = len(result.parameter_space.true_points()) > 0 + df = df.set_index(["model_index", "index"]) + m.append(df) + dfs = pd.concat(m) + runtimes = dfs.reset_index(["index"])[ + [ + c + for c in ["runtime (s)", "description", "I_bound"] + if c in dfs.columns + ] + ].drop_duplicates() + self.l.info(runtimes) + # I_df = pd.DataFrame([base_df.I, vac_model_df.I_vac_F, vac_model_df.I_vac_T, bounded_df.I_lb, bounded_df.I_ub]).T + # S_df = pd.DataFrame([base_df.S, vac_model_df.S_vac_F, vac_model_df.S_vac_T, bounded_df.S_lb, bounded_df.S_ub]).T + + # assert ( + # bounded_abstract_model_result + # ), f"Could not generate a result for stratified version of model: [{BASE_SIRHD_MODEL_PATH}], request: [{BASE_SIRHD_REQUEST_PATH}]" - all_failures = [] - for (values_df, model) in [(base_df, "base"), (destratified_df, "stratified")]: - for var in ["S", "I", "H", "R", "D"]: - all_failures += check_bounds(bounded_abstract_df, values_df, var, model) - - reasons = '\n'.join(map(str, all_failures)) - assert len(all_failures) == 0, f"The bounds failed in the following cases:\n{reasons}" - -# S_ub: 1.492174e+08 S_strat: 1.492175e+08, diff -98.77 - -# S_ub' = S_ub - IvlbSubBlbp0lb/Nub - IulbSubBlbp1lb/Nub - IvlbSubBlbp0lb/Nub - IulbSubBlbp1lb/Nub -# = - 44.76501510409002 - 44.76501510409002 - 44.76501510409002 - 44.76501510409002 -# because S = Sv+Su -# Stratified: -# Sv' = Sv - IvSvB0p0/N - IuSvB0p1/N -# = 74608773.0 - (22.38250755204501) - (22.38250755204501) -# = 74608728.2349849 -# = 74608727.79499725 -# Su' = Su - IvSuB1p0/N - IuSuB1p1/N -# = 74608728.23448753 -# = 74608727.79449497 -# Su' + Sv' = 149217456.46947244 -# = 149217455.58949223 -# I_vac 5.000000e+02 -# I_unvac 5.000000e+02 -# S_vac 7.460877e+07 -# S_unvac 7.460877e+07 -# R 0.000000e+00 -# H 0.000000e+00 -# D 7.814540e+05 -# N 1.500000e+08 -# pir 9.000000e-01 -# pih 1.000000e-01 -# rih 7.000000e-02 -# phd 1.300000e-01 -# rhd 3.000000e-01 -# phr 8.700000e-01 -# rhr 7.000000e-02 -# rir 7.000000e-02 -# beta_vac_unvac_0 1.799990e-01 -# beta_vac_unvac_1 1.800010e-01 -# p_I_vac_unvac_0 5.000000e-01 -# p_I_vac_unvac_1 5.000000e-01 - -# Rate(target='t1_vac_unvac_0_vac_unvac_0', expression='p_I_vac_unvac_0*I_vac*S_vac*beta_vac_unvac_0/N', expression_mathml=None) -# Rate(target='t1_vac_unvac_0_vac_unvac_1', expression='p_I_vac_unvac_1*I_unvac*S_vac*beta_vac_unvac_0/N', expression_mathml=None) -# Rate(target='t1_vac_unvac_1_vac_unvac_0', expression='p_I_vac_unvac_0*I_vac*S_unvac*beta_vac_unvac_1/N', expression_mathml=None) -# Rate(target='t1_vac_unvac_1_vac_unvac_1', expression='p_I_vac_unvac_1*I_unvac*S_unvac*beta_vac_unvac_1/N', expression_mathml=None) - -# Rate(target='t1_vac_unvac_0_vac_unvac_0', expression='I_vac*S*agg_beta*p_I_vac_unvac_0/N', expression_mathml=None) -# Rate(target='t1_vac_unvac_0_vac_unvac_1', expression='I_unvac*S*agg_beta*p_I_vac_unvac_1/N', expression_mathml=None) -# Rate(target='t1_vac_unvac_1_vac_unvac_0', expression='I_vac*S*agg_beta*p_I_vac_unvac_0/N', expression_mathml=None) -# Rate(target='t1_vac_unvac_1_vac_unvac_1', expression='I_unvac*S*agg_beta*p_I_vac_unvac_1/N', expression_mathml=None) - -# Abstract Bounded: - -# = 149217356.8112546 -# = 149217366.93993962 -# diff = 10.128685027360916 -# I_vac_lb 5.000000e+02 -# I_vac_ub 5.000000e+02 -# I_unvac_lb 5.000000e+02 -# I_unvac_ub 5.000000e+02 -# R_lb 0.000000e+00 -# R_ub 0.000000e+00 -# H_lb 0.000000e+00 -# H_ub 0.000000e+00 -# D_lb 7.814540e+05 -# D_ub 7.814540e+05 -# S_lb 1.492175e+08 -# S_ub 1.492175e+08 -# N_lb 1.500000e+08 -# N_ub 1.500000e+08 -# pir_lb 9.000000e-01 -# pir_ub 9.000000e-01 -# pih_lb 1.000000e-01 -# pih_ub 1.000000e-01 -# rih_lb 7.000000e-02 -# rih_ub 7.000000e-02 -# phd_lb 1.300000e-01 -# phd_ub 1.300000e-01 -# rhd_lb 3.000000e-01 -# rhd_ub 3.000000e-01 -# phr_lb 8.700000e-01 -# phr_ub 8.700000e-01 -# rhr_lb 7.000000e-02 -# rhr_ub 7.000000e-02 -# rir_lb 7.000000e-02 -# rir_ub 7.000000e-02 -# p_I_vac_unvac_0_lb 5.000000e-01 -# p_I_vac_unvac_0_ub 5.000000e-01 -# p_I_vac_unvac_1_lb 5.000000e-01 -# p_I_vac_unvac_1_ub 5.000000e-01 -# agg_beta_lb 1.799990e-01 -# agg_beta_ub 1.800010e-01 -# I_lb 1.000000e+03 -# I_ub 1.000000e+03 if __name__ == "__main__": unittest.main() diff --git a/test/test_float_timepoints.py b/test/test_float_timepoints.py new file mode 100644 index 00000000..5e37c553 --- /dev/null +++ b/test/test_float_timepoints.py @@ -0,0 +1,97 @@ +import logging +import os +import sys +import unittest +from pathlib import Path + +import pandas as pd +import sympy +from matplotlib import pyplot as plt + +from funman.api.run import Runner +from funman.constants import MODE_ODEINT, MODE_SMT +from funman.server.query import FunmanWorkRequest +from funman.utils.sympy_utils import SympyBoundedSubstituter, to_sympy + +FILE_DIRECTORY = Path(__file__).resolve().parent +API_BASE_PATH = FILE_DIRECTORY / ".." +RESOURCES = API_BASE_PATH / "resources" +EXAMPLE_DIR = os.path.join( + RESOURCES, "amr", "petrinet", "monthly-demo", "2024-09" +) +BASE_SIR_REQUEST_PATH = os.path.join(EXAMPLE_DIR, "sir_request1.json") +BASE_SIR_MODEL_PATH = os.path.join(EXAMPLE_DIR, "sir.json") + +PS_SIR_REQUEST_PATH = os.path.join( + RESOURCES, "amr", "petrinet", "amr-examples", "sir_request1.json" +) +PS_SIR_MODEL_PATH = os.path.join( + RESOURCES, "amr", "petrinet", "amr-examples", "sir.json" +) + + +class TestFloatTimepoints(unittest.TestCase): + l = logging.Logger(__name__) + + def setUp(self): + logging.basicConfig(level=logging.DEBUG) + logging.getLogger().setLevel(logging.DEBUG) + self.l.level = logging.getLogger().level + self.l.handlers.append(logging.StreamHandler(sys.stdout)) + + def setup_common(self, request_file=BASE_SIR_REQUEST_PATH): + with open(request_file, "r") as f: + request = FunmanWorkRequest.model_validate_json(f.read()) + request.config.verbosity = 5 + request.structure_parameters[0].schedules[0].timepoints = [ + 0.0, + 1e-2, + 0.1, + 1, + 2, + ] + return request + + def setup_odeint(self): + request = self.setup_common() + request.config.mode = MODE_ODEINT + return request + + def setup_smt(self, request_file=BASE_SIR_REQUEST_PATH): + request = self.setup_common(request_file=request_file) + request.config.mode = MODE_SMT + return request + + def test_float_timepoints_odeint(self): + base_request = self.setup_odeint() + runner = Runner() + base_result = runner.run( + BASE_SIR_MODEL_PATH, base_request.model_dump() + ) + assert ( + base_result + ), f"Could not generate a result for model: [{BASE_SIR_MODEL_PATH}], request: [{BASE_SIR_REQUEST_PATH}]" + + def test_float_timepoints_smt(self): + base_request = self.setup_smt() + runner = Runner() + base_result = runner.run( + BASE_SIR_MODEL_PATH, base_request.model_dump() + ) + df = base_result.dataframe(base_result.points()) + assert ( + base_result + ), f"Could not generate a result for model: [{BASE_SIR_MODEL_PATH}], request: [{BASE_SIR_REQUEST_PATH}]" + + def test_float_timepoints_ps_smt(self): + base_request = self.setup_smt(request_file=PS_SIR_REQUEST_PATH) + runner = Runner() + base_result = runner.run(PS_SIR_MODEL_PATH, base_request.model_dump()) + df = base_result.dataframe(base_result.points()) + assert ( + base_result + ), f"Could not generate a result for model: [{BASE_SIR_MODEL_PATH}], request: [{BASE_SIR_REQUEST_PATH}]" + + +if __name__ == "__main__": + unittest.main() diff --git a/undo_S b/undo_S new file mode 100644 index 00000000..2cf9f3da --- /dev/null +++ b/undo_S @@ -0,0 +1,39 @@ +digraph petrinet { + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" [shape=box] + I -> "t1___to___vac__to([I*S*agg_beta/N]) = [0]" + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" -> I [label=1.0] + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" -> I [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac__to([I*S*agg_beta/N]) = [0]" [shape=box] + S -> "t1___to___vac__to([I*S*agg_beta/N]) = [0]" +} diff --git a/undo_S.pdf b/undo_S.pdf new file mode 100644 index 00000000..317dddda Binary files /dev/null and b/undo_S.pdf differ diff --git a/vac_model_0 b/vac_model_0 new file mode 100644 index 00000000..db8b2a5e --- /dev/null +++ b/vac_model_0 @@ -0,0 +1,70 @@ +digraph petrinet { + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + S_vac_F -> "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" [shape=box] + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" -> S_vac_F [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" [shape=box] + S_vac_T -> "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" [shape=box] + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" -> S_vac_T [label=1.0] + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" [shape=box] + S_vac_T -> "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + I -> "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" -> I [label=1.0] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" -> I [label=1.0] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" [shape=box] + I -> "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" -> I [label=1.0] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" -> I [label=1.0] + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" [shape=box] + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" [shape=box] + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t1___to___vac_T_to_([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [1.19999333333333e-9*I*S_vac_T]" [shape=box] + "self_S__vac_F_to_vac_T([p_cross_S_vac_F_to_S_vac_T_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F([p_cross_S_vac_T_to_S_vac_F_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] +} diff --git a/vac_model_0.pdf b/vac_model_0.pdf new file mode 100644 index 00000000..3c87e6f4 Binary files /dev/null and b/vac_model_0.pdf differ diff --git a/vac_model_1 b/vac_model_1 new file mode 100644 index 00000000..6cab6d98 --- /dev/null +++ b/vac_model_1 @@ -0,0 +1,210 @@ +digraph petrinet { + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + S_vac_T_age_1 -> "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" -> S_vac_T_age_1 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + S_vac_T_age_2 -> "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" -> S_vac_T_age_2 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + S_vac_T_age_0 -> "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" -> S_vac_T_age_0 [label=1.0] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" -> S_vac_F [label=1.0] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" -> S_vac_F [label=1.0] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" -> S_vac_F [label=1.0] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + S_vac_F -> "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + I -> "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + I -> "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + I -> "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" -> I [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + I -> "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" -> I [label=1.0] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" -> I [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T([p_cross_S_vac_F_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T([p_cross_S_vac_F_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T([p_cross_S_vac_F_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_]) = [0.600000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_F_to_([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [1.20000666666667e-9*I*S_vac_F]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] +} diff --git a/vac_model_1.pdf b/vac_model_1.pdf new file mode 100644 index 00000000..d7ac3a26 Binary files /dev/null and b/vac_model_1.pdf differ diff --git a/vac_model_2 b/vac_model_2 new file mode 100644 index 00000000..8574b99e --- /dev/null +++ b/vac_model_2 @@ -0,0 +1,494 @@ +digraph petrinet { + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_1 -> "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_1 -> "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_1 -> "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" -> S_vac_F_age_1 [label=1.0] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" -> S_vac_F_age_1 [label=1.0] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" -> S_vac_F_age_1 [label=1.0] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + S_vac_F_age_1 -> "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_1 -> "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_1 -> "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" -> S_vac_F_age_1 [label=1.0] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" -> S_vac_F_age_1 [label=1.0] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_2 -> "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_2 -> "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_2 -> "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" -> S_vac_F_age_2 [label=1.0] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" -> S_vac_F_age_2 [label=1.0] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" -> S_vac_F_age_2 [label=1.0] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + S_vac_F_age_2 -> "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" -> S_vac_F_age_2 [label=1.0] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_2 -> "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_2 -> "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" -> S_vac_F_age_2 [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_0 -> "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_0 -> "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_0 -> "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" -> S_vac_F_age_0 [label=1.0] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" -> S_vac_F_age_0 [label=1.0] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" -> S_vac_F_age_0 [label=1.0] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + S_vac_F_age_0 -> "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" -> S_vac_F_age_0 [label=1.0] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" -> S_vac_F_age_0 [label=1.0] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_0 -> "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_F_age_0 -> "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_1 -> "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_1 -> "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_1 -> "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + S_vac_T_age_1 -> "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_2 -> "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_2 -> "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_2 -> "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + S_vac_T_age_2 -> "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_0 -> "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_0 -> "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + S_vac_T_age_0 -> "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + S_vac_T_age_0 -> "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + I -> "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + I -> "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + I -> "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" -> I [label=1.0] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + I -> "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + I -> "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + I -> "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" -> I [label=1.0] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_1_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_2_vac_F_to_age_1_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_1_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_2_vac_F_to_age_2_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_1_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_2_vac_F_to_age_0_vac_T([p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_2_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_0_vac_F([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_]) = [0.333333333333333]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to_([I*S_vac_F_age_0*beta___to_____S_vac_F_to_____to_____S_vac_F_age_0_to__/N]) = [1.19998e-9*I*S_vac_F_age_0]" [shape=box] + "t1___to___vac_F_to____to___age_1_vac_F_to_([I*S_vac_F_age_1*beta___to_____S_vac_F_to_____to_____S_vac_F_age_1_to__/N]) = [1.2e-9*I*S_vac_F_age_1]" [shape=box] + "t1___to___vac_F_to____to___age_2_vac_F_to_([I*S_vac_F_age_2*beta___to_____S_vac_F_to_____to_____S_vac_F_age_2_to__/N]) = [1.20002e-9*I*S_vac_F_age_2]" [shape=box] + "self_S_vac_F__age_1_to_age_2([p_cross_S_vac_F_age_1_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_1_to_age_0([p_cross_S_vac_F_age_1_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_1([p_cross_S_vac_F_age_2_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_2_to_age_0([p_cross_S_vac_F_age_2_to_S_vac_F_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_1([p_cross_S_vac_F_age_0_to_S_vac_F_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_F__age_0_to_age_2([p_cross_S_vac_F_age_0_to_S_vac_F_age_2_]) = [0.200000000000000]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] +} diff --git a/vac_model_2.pdf b/vac_model_2.pdf new file mode 100644 index 00000000..16492318 Binary files /dev/null and b/vac_model_2.pdf differ diff --git a/vac_model_3 b/vac_model_3 new file mode 100644 index 00000000..0d7e2a44 --- /dev/null +++ b/vac_model_3 @@ -0,0 +1,210 @@ +digraph petrinet { + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + S_vac_T_age_1 -> "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" -> S_vac_T_age_1 [label=1.0] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" -> S_vac_T_age_1 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + S_vac_T_age_1 -> "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + S_vac_T_age_2 -> "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" -> S_vac_T_age_2 [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" -> S_vac_T_age_2 [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + S_vac_T_age_2 -> "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + S_vac_T_age_0 -> "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" -> S_vac_T_age_0 [label=1.0] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" -> S_vac_T_age_0 [label=1.0] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + S_vac_T_age_0 -> "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + I -> "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + I -> "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + I -> "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" -> I [label=1.0] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + I -> "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to_([I*S_vac_T_age_0*beta___to_____S_vac_T_to_____to_____S_vac_T_age_0_to__/N]) = [1.19998666666667e-9*I*S_vac_T_age_0]" [shape=box] + "t1___to___vac_T_to____to___age_1_vac_T_to_([I*S_vac_T_age_1*beta___to_____S_vac_T_to_____to_____S_vac_T_age_1_to__/N]) = [1.2e-9*I*S_vac_T_age_1]" [shape=box] + "t1___to___vac_T_to____to___age_2_vac_T_to_([I*S_vac_T_age_2*beta___to_____S_vac_T_to_____to_____S_vac_T_age_2_to__/N]) = [1.20001333333333e-9*I*S_vac_T_age_2]" [shape=box] + "self_S_vac_T__age_1_to_age_2([p_cross_S_vac_T_age_1_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_1_to_age_0([p_cross_S_vac_T_age_1_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_1([p_cross_S_vac_T_age_2_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_2_to_age_0([p_cross_S_vac_T_age_2_to_S_vac_T_age_0_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_1([p_cross_S_vac_T_age_0_to_S_vac_T_age_1_]) = [0.200000000000000]" [shape=box] + "self_S_vac_T__age_0_to_age_2([p_cross_S_vac_T_age_0_to_S_vac_T_age_2_]) = [0.200000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_]) = [0.333333333333333]" + "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_2_vac_T__age_0_vac_F_to_age_2_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [0.333333333333333]" + "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_0_vac_T__age_0_vac_F_to_age_0_vac([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_]) = [0.333333333333333]" + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_vac([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_]) = [0.600000000000000]" -> S_vac_F [label=1.0] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_1_vac_T_to_vac_F__age_1_vac_T_to_age_1_vac([p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_]) = [0.600000000000000]" -> S_vac_F [label=1.0] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_2_vac_T_to_vac_F__age_2_vac_T_to_age_1_vac([p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [0.600000000000000]" -> S_vac_F [label=1.0] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + S_vac_F -> "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" +} diff --git a/vac_model_3.pdf b/vac_model_3.pdf new file mode 100644 index 00000000..d725c330 Binary files /dev/null and b/vac_model_3.pdf differ diff --git a/vac_model_4 b/vac_model_4 new file mode 100644 index 00000000..5cb0050e --- /dev/null +++ b/vac_model_4 @@ -0,0 +1,70 @@ +digraph petrinet { + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + I -> "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" -> I [label=1.0] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" [shape=box] + I -> "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" -> I [label=1.0] + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" -> I [label=1.0] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + S_vac_F -> "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" [shape=box] + S_vac_F -> "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" [shape=box] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" -> S_vac_F [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac_F_to____to___age_0_vac_F_to([I*S_vac_F*beta___to_____S_vac_F_to__/N]) = [0]" [shape=box] + "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" [shape=box] + S_vac_T -> "t1___to___vac_T_to____to___age_0_vac_T_to([I*S_vac_T*beta___to_____S_vac_T_to__/N]) = [0]" + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" [shape=box] + "self_S__vac_F_to_vac_T__vac_F_to_age_1_vac_T__age_0_vac_F_to_age_1_v([p_cross_S_vac_F_age_0_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_0_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_1_to_S_vac_T_age_2_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_0_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_1_ + p_cross_S_vac_F_age_2_to_S_vac_T_age_2_]) = [1.00000000000000]" -> S_vac_T [label=1.0] + "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" [shape=box] + S_vac_T -> "self_S__vac_T_to_vac_F__age_0_vac_T_to_vac_F__age_0_vac_T_to_age_1_v([p_cross_S_vac_T_age_0_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_0_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_1_to_S_vac_F_age_2_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_0_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_1_ + p_cross_S_vac_T_age_2_to_S_vac_F_age_2_]) = [1.00000000000000]" +} diff --git a/vac_model_4.pdf b/vac_model_4.pdf new file mode 100644 index 00000000..b187af95 Binary files /dev/null and b/vac_model_4.pdf differ diff --git a/vac_model_5 b/vac_model_5 new file mode 100644 index 00000000..c8c4efe2 --- /dev/null +++ b/vac_model_5 @@ -0,0 +1,39 @@ +digraph petrinet { + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + I -> "t2([I*pir*rir]) = [0.063*I]" + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + I -> "t3([I*pih*rih]) = [0.007*I]" + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" [shape=box] + I -> "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" -> I [label=1.0] + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" -> I [label=1.0] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" -> R [label=1.0] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" -> R [label=1.0] + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" -> H [label=1.0] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + H -> "t4([H*phd*rhd]) = [0.039*H]" + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + H -> "t5([H*phr*rhr]) = [0.0609*H]" + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" -> D [label=1.0] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" [shape=box] + "t2([I*pir*rir]) = [0.063*I]" [shape=box] + "t3([I*pih*rih]) = [0.007*I]" [shape=box] + "t4([H*phd*rhd]) = [0.039*H]" [shape=box] + "t5([H*phr*rhr]) = [0.0609*H]" [shape=box] + "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" [shape=box] + S -> "t1___to___vac__to____to___age_0_vac__to([I*S*beta/N]) = [0]" +} diff --git a/vac_model_5.pdf b/vac_model_5.pdf new file mode 100644 index 00000000..d2221add Binary files /dev/null and b/vac_model_5.pdf differ