need to resolv large numbers issue
This commit is contained in:
parent
6fd6dbe251
commit
9cf296ab55
541
CAD_Engine.ipynb
541
CAD_Engine.ipynb
|
|
@ -2,40 +2,77 @@
|
|||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": 12,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from fn import op, _\n",
|
||||
"from itertools import repeat\n",
|
||||
"from fn import op, _, F\n",
|
||||
"from operator import add, mul\n",
|
||||
"from itertools import repeat, chain\n",
|
||||
"from functools import reduce\n",
|
||||
"# from objproxies import LazyProxy\n",
|
||||
"import json\n",
|
||||
"from copy import deepcopy, copy\n",
|
||||
"from pipetools import pipe\n",
|
||||
"from functools import partial"
|
||||
"from functools import partial\n",
|
||||
"import numpy as np\n",
|
||||
"from datetime import datetime, timedelta\n",
|
||||
"from decimal import Decimal, MAX_EMAX"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": 13,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"flatten = lambda l: [item for sublist in l for item in sublist]\n",
|
||||
"\n",
|
||||
"def flatmap(f, items):\n",
|
||||
" return list(map(f, items))\n",
|
||||
" \n",
|
||||
"def last_index(l):\n",
|
||||
" return len(l)-1\n",
|
||||
"\n",
|
||||
"def retrieve_state(l, offset):\n",
|
||||
" return l[last_index(l) + offset + 1]\n",
|
||||
"def bound_norm_random(low, high):\n",
|
||||
" res = np.random.normal((high+low)/2,(high-low)/6)\n",
|
||||
"# Stochastic Process\n",
|
||||
"# Input RNG Seed\n",
|
||||
"def bound_norm_random(rng, low, high):\n",
|
||||
" # Add RNG Seed\n",
|
||||
" res = rng.normal((high+low)/2,(high-low)/6)\n",
|
||||
" if (res<low or res>high):\n",
|
||||
" res = bound_norm_random(low, high)\n",
|
||||
" return res"
|
||||
" res = bound_norm_random(rng, low, high)\n",
|
||||
" return Decimal(res)\n",
|
||||
"\n",
|
||||
"def env_proc(trigger_step, update_f):\n",
|
||||
" def env_step_trigger(trigger_step, update_f, step):\n",
|
||||
" if step == trigger_step:\n",
|
||||
" return update_f\n",
|
||||
" else:\n",
|
||||
" return lambda x: x\n",
|
||||
" return partial(env_step_trigger, trigger_step, update_f)\n",
|
||||
"\n",
|
||||
"def env_proc(trigger_step, update_f):\n",
|
||||
" def env_step_trigger(trigger_step, update_f, step):\n",
|
||||
" if step == trigger_step:\n",
|
||||
" return update_f\n",
|
||||
" else:\n",
|
||||
" return lambda x: x\n",
|
||||
" return partial(env_step_trigger, trigger_step, update_f)\n",
|
||||
"\n",
|
||||
"def time_step(s, dt_str, fromat_str='%Y-%m-%d %H:%M:%S', days=0, minutes=0, seconds=1):\n",
|
||||
" if s['mech_step'] == 0:\n",
|
||||
" dt = datetime.strptime(dt_str, fromat_str)\n",
|
||||
" t = dt + timedelta(days=days, minutes=minutes, seconds=seconds)\n",
|
||||
" return t.strftime(fromat_str)\n",
|
||||
" else: \n",
|
||||
" return dt_str"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -47,18 +84,77 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 15,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# ToDo:\n",
|
||||
"# Handle case where Mechanisms have no input. Perhaps the sentinel value of 0\n",
|
||||
"# Mock Simulation SimCADUI Lucid chart "
|
||||
"# Mock Simulation SimCADUI Lucid chart \n",
|
||||
"\n",
|
||||
"# Filter by states at steps (in runtime)\n",
|
||||
"\n",
|
||||
"# No historical access beyond previous step\n",
|
||||
"# problem, inconsistence between what you fillter and access\n",
|
||||
"\n",
|
||||
"# highlight / directly ref. steps within b, s, es mech func. defs\n",
|
||||
"\n",
|
||||
"# Can behaviors & state read steps / time\n",
|
||||
"\n",
|
||||
"# Play with this\n",
|
||||
"# Time: Exogenous state and the Env Process of it is (prev. state + duration of step)\n",
|
||||
"# Sim config contains \"duration of step\"\n",
|
||||
"\n",
|
||||
"# Env Proc\n",
|
||||
"\n",
|
||||
"# only need states to run the enigine (exclude everything else in config gen. func.)\n",
|
||||
"# validation of config: mechs, behaviors, & eps (optional) can be null / 0\n",
|
||||
"\n",
|
||||
"# simlulation category mapping\n",
|
||||
"\n",
|
||||
"# RNG Seed Config:\n",
|
||||
"# * 1 seed per exo_proc (Manditory)\n",
|
||||
"# * 1 seed per behavior_mech (optional)\n",
|
||||
"# init RNG obj with seed during config, then use RNG object during each state mutation\n",
|
||||
"# RNG Seed = output field\n",
|
||||
"\n",
|
||||
"# define UI generated switch funct for behavior <> seed reporting\n",
|
||||
"\n",
|
||||
"# remove objs from mem **\n",
|
||||
"# *** large numbers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 16,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"seed = {\n",
|
||||
" 'z': np.random.RandomState(1),\n",
|
||||
" 'a': np.random.RandomState(2),\n",
|
||||
" 'b': np.random.RandomState(3),\n",
|
||||
" 'c': np.random.RandomState(3)\n",
|
||||
"}\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"a = np.random.RandomState(1)\n",
|
||||
"proc_one_coef_B = 1.3\n",
|
||||
"b = np.random.RandomState(2)\n",
|
||||
"\n",
|
||||
"def pipe_f(x):\n",
|
||||
" return x"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
@ -74,41 +170,73 @@
|
|||
" return s['s1'] / s['s2']\n",
|
||||
"\n",
|
||||
"def b1m3(step, sL, s):\n",
|
||||
" return s['s1']\n",
|
||||
" return s['s1'] + seed['z'].randint(1000)\n",
|
||||
"def b2m3(step, sL, s):\n",
|
||||
" ps = retrieve_state(sL, -3)\n",
|
||||
" return ps['s2']\n",
|
||||
"\n",
|
||||
"# UI States per Mechanism\n",
|
||||
"# UI Internal States per Mechanism\n",
|
||||
"def s1m1(step, sL, s, _input):\n",
|
||||
" print(s['s1'])\n",
|
||||
" s['s1'] = s['s1']**2 + _input\n",
|
||||
"def s2m1(step, sL, s, _input):\n",
|
||||
" s['s2'] = s['s2'] + 1 + _input\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def s3m1(step, sL, s, _input):\n",
|
||||
" s['s3'] = s['s3']\n",
|
||||
"\n",
|
||||
"def s1m2(step, sL, s, _input):\n",
|
||||
" s['s1'] = s['s1'] + _input\n",
|
||||
"def s2m2(step, sL, s, _input):\n",
|
||||
" s['s2'] = s['s2']\n",
|
||||
" \n",
|
||||
"def s3m2(step, sL, s, _input):\n",
|
||||
" s['s3'] = s['s3'] + 1\n",
|
||||
" \n",
|
||||
"def s1m3(step, sL, s, _input):\n",
|
||||
" s['s1'] = s['s1']\n",
|
||||
"def s2m3(step, sL, s, _input):\n",
|
||||
" s['s2'] = s['s2'] + _input\n",
|
||||
"\n",
|
||||
"# UI Exogenous States //per Mechanism \n",
|
||||
"# ??? Refactor: The difference between mech and step need to be re ???\n",
|
||||
"\n",
|
||||
"proc_one_coef_A = 0.7\n",
|
||||
"proc_one_coef_B = 1.3\n",
|
||||
"def es3p1(step, sL, s, _input):\n",
|
||||
" s['s3'] = s['s3'] * bound_norm_random(seed['a'], proc_one_coef_A, proc_one_coef_B)\n",
|
||||
"def es4p2(step, sL, s, _input):\n",
|
||||
" s['s4'] = s['s4'] * bound_norm_random(seed['b'], proc_one_coef_A, proc_one_coef_B) \n",
|
||||
"def es5p2(step, sL, s, _input):\n",
|
||||
" s['timestamp'] = time_step(s, s['timestamp'], seconds=1)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"#add env process f(s) read from time es\n",
|
||||
"# funcs execute in order\n",
|
||||
"def env_a(x): \n",
|
||||
" return x + 1\n",
|
||||
"def env_b(x): \n",
|
||||
" return x + 2\n",
|
||||
" \n",
|
||||
"def what_ever(x): \n",
|
||||
" return x + 1\n",
|
||||
"\n",
|
||||
"# Genesis States \n",
|
||||
"state_dict = {\n",
|
||||
" 's1': 2,\n",
|
||||
" 's2': 4,\n",
|
||||
" 's3': 300\n",
|
||||
" 's1': Decimal(2.0),\n",
|
||||
" 's2': Decimal(4.0),\n",
|
||||
" 's3': Decimal(0.0),\n",
|
||||
" 's4': Decimal(0.0),\n",
|
||||
" 'timestamp': '2018-10-01 15:16:24'\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"exogenous_states = {\n",
|
||||
" \"s3\": es3p1,\n",
|
||||
" \"s4\": es4p2,\n",
|
||||
" \"timestamp\": es5p2\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"# update time at the end of each pipeline (once per 'block')\n",
|
||||
"env_processes = {\n",
|
||||
" \"s3\": env_proc(1, env_a),\n",
|
||||
" \"s4\": env_proc(1, pipe | env_b | what_ever)\n",
|
||||
"}\n",
|
||||
" \n",
|
||||
"j = {\n",
|
||||
"mechanisms = {\n",
|
||||
" \"m1\": {\n",
|
||||
" \"behaviors\": {\n",
|
||||
" \"b1\": b1m1,\n",
|
||||
|
|
@ -117,7 +245,6 @@
|
|||
" \"states\": {\n",
|
||||
" \"s1\": s1m1,\n",
|
||||
" \"s2\": s2m1,\n",
|
||||
" \"s3\": s3m1\n",
|
||||
" }\n",
|
||||
" },\n",
|
||||
" \"m2\": {\n",
|
||||
|
|
@ -128,7 +255,6 @@
|
|||
" \"states\": {\n",
|
||||
" \"s1\": s1m2,\n",
|
||||
" \"s2\": s2m2,\n",
|
||||
" \"s3\": s3m2\n",
|
||||
" }\n",
|
||||
" },\n",
|
||||
" \"m3\": {\n",
|
||||
|
|
@ -138,7 +264,7 @@
|
|||
" },\n",
|
||||
" \"states\": {\n",
|
||||
" \"s1\": s1m3,\n",
|
||||
" \"s2\": s2m3\n",
|
||||
" \"s2\": s2m3,\n",
|
||||
" }\n",
|
||||
" }\n",
|
||||
"}"
|
||||
|
|
@ -146,20 +272,23 @@
|
|||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 20,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def generate_configs(j):\n",
|
||||
" return list(\n",
|
||||
"# if beh list empty, repeat 0 x n_states in list \n",
|
||||
"def generate_config(mechanisms, exogenous_states):\n",
|
||||
" es_funcs = [exogenous_states[state] for state in list(exogenous_states.keys())]\n",
|
||||
" config = list(\n",
|
||||
" map(\n",
|
||||
" lambda x: (\n",
|
||||
" list(j[x][\"states\"].values()),\n",
|
||||
" list(j[x][\"behaviors\"].values())\n",
|
||||
" lambda m: (\n",
|
||||
" list(mechanisms[m][\"states\"].values()) + es_funcs,\n",
|
||||
" list(mechanisms[m][\"behaviors\"].values())\n",
|
||||
" ), \n",
|
||||
" j.keys()\n",
|
||||
" list(mechanisms.keys())\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" return config\n",
|
||||
"\n",
|
||||
"# partials = list(map(lambda f: partial(f, step, sL), funcs))\n",
|
||||
"def getColResults(step, sL, s, funcs):\n",
|
||||
|
|
@ -168,108 +297,366 @@
|
|||
"def getBehaviorInput(step, sL, s, funcs): \n",
|
||||
" return op.foldr(_ + _)(getColResults(step, sL, s, funcs))\n",
|
||||
"\n",
|
||||
"def mech_step(step, sL, state_funcs, behavior_funcs):\n",
|
||||
"def apply_env_proc(env_processes, state_dict, step):\n",
|
||||
" for state in state_dict.keys(): \n",
|
||||
" if state in list(env_processes.keys()):\n",
|
||||
" state_dict[state] = env_processes[state](step)(state_dict[state])\n",
|
||||
"# return state_dict\n",
|
||||
" \n",
|
||||
"def mech_step(m_step, sL, state_funcs, behavior_funcs, env_processes, t_step):\n",
|
||||
" # Purge Memory accociated with certain objs\n",
|
||||
" # Truncate reffs\n",
|
||||
" in_copy, mutatable_copy, out_copy = deepcopy(sL), deepcopy(sL), deepcopy(sL)\n",
|
||||
" last_in_obj, last_mut_obj = in_copy[-1], mutatable_copy[-1]\n",
|
||||
" \n",
|
||||
" _input = getBehaviorInput(step, sL, last_in_obj, behavior_funcs)\n",
|
||||
" # * force eval of _input withing state functions\n",
|
||||
" _input = getBehaviorInput(m_step, sL, last_in_obj, behavior_funcs)\n",
|
||||
"\n",
|
||||
" apply_env_proc(env_processes, last_mut_obj, t_step)\n",
|
||||
" \n",
|
||||
" for f in state_funcs:\n",
|
||||
" f(step, sL, last_mut_obj, _input)\n",
|
||||
" f(m_step, sL, last_mut_obj, _input)\n",
|
||||
" \n",
|
||||
" last_mut_obj[\"step\"] = step\n",
|
||||
" out_copy.append(last_mut_obj) \n",
|
||||
" last_mut_obj[\"mech_step\"], last_mut_obj[\"time_step\"] = m_step, t_step\n",
|
||||
" out_copy.append(last_mut_obj)\n",
|
||||
" \n",
|
||||
" del last_in_obj, last_mut_obj, in_copy, mutatable_copy,\n",
|
||||
" return out_copy\n",
|
||||
"\n",
|
||||
"# isolate ALL step logic within 'step_func'\n",
|
||||
"def pipeline(states_list, configs, step_func):\n",
|
||||
" step = 0\n",
|
||||
" genesis_states = states_list[-1]\n",
|
||||
" genesis_states['step'] = step\n",
|
||||
"def block_gen(states_list, configs, env_processes, t_step):\n",
|
||||
" m_step = 0\n",
|
||||
" states_list_copy = deepcopy(states_list) #[-1]\n",
|
||||
" genesis_states = states_list_copy[-1]\n",
|
||||
" genesis_states['mech_step'], genesis_states['time_step'] = m_step, t_step\n",
|
||||
" states_list = [genesis_states]\n",
|
||||
" \n",
|
||||
" step = step_func(step, 1)\n",
|
||||
" m_step += 1\n",
|
||||
" for config in configs:\n",
|
||||
" s_conf, b_conf = config[0], config[1]\n",
|
||||
" states_list = mech_step(step, states_list, s_conf, b_conf)\n",
|
||||
" states_list = mech_step(m_step, states_list, s_conf, b_conf, env_processes, t_step) \n",
|
||||
" m_step += 1\n",
|
||||
" \n",
|
||||
" step = step_func(step, 1)\n",
|
||||
" return states_list"
|
||||
" t_step += 1 \n",
|
||||
" \n",
|
||||
" return states_list\n",
|
||||
"\n",
|
||||
"def pipeline(states_list, configs, env_processes, time_seq):\n",
|
||||
" time_seq = [x + 1 for x in time_seq]\n",
|
||||
" simulation_list = [states_list]\n",
|
||||
" for time_step in time_seq:\n",
|
||||
" pipeline_run = block_gen(simulation_list[-1], configs, env_processes, time_step)\n",
|
||||
" head, *pipeline_run = pipeline_run\n",
|
||||
" simulation_list.append(pipeline_run)\n",
|
||||
" \n",
|
||||
" # should only occur once for genesis state, placed before loop\n",
|
||||
" head, *tail = simulation_list\n",
|
||||
" head[-1]['mech_step'], head[-1]['time_step'] = 0, 0\n",
|
||||
" simulation_list = head, *tail\n",
|
||||
" return simulation_list\n",
|
||||
"\n",
|
||||
"# Simulation layer\n",
|
||||
"# pipeline(states_list, configs, env_processes, range(1))\n",
|
||||
"\n",
|
||||
"# Parameter sweep layer (single config param? For now ;) )\n",
|
||||
" \n",
|
||||
"# n = T (time) <> Pipeline run \n",
|
||||
"# multiple runs of Pipeline per Montercarlo Simulation\n",
|
||||
"# Montercarlo Simulation creates a new dataset initialized by the same genesis states"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": 21,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[{'s1': 2, 's2': 4, 's3': 300}]"
|
||||
"{'s1': Decimal('2.221384236472411425810660220E+330'),\n",
|
||||
" 's2': Decimal('2.845096899831187764579913612E+330'),\n",
|
||||
" 's3': Decimal('3.622519693611211445932083740'),\n",
|
||||
" 's4': Decimal('5.161487081026327858663750787'),\n",
|
||||
" 'timestamp': '2018-10-01 15:16:32',\n",
|
||||
" 'mech_step': 3,\n",
|
||||
" 'time_step': 8}"
|
||||
]
|
||||
},
|
||||
"execution_count": 7,
|
||||
"execution_count": 21,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"states_list = [state_dict]\n",
|
||||
"states_list"
|
||||
"states_list\n",
|
||||
"{'s1': 8.742503764992283e+170,\n",
|
||||
" 's2': 1.119720780594405e+171,\n",
|
||||
" 's3': 4.251811100418906,\n",
|
||||
" 's4': 6.92728042985628,\n",
|
||||
" 'timestamp': '2018-10-01 15:16:31',\n",
|
||||
" 'mech_step': 3,\n",
|
||||
" 'time_step': 7}\n",
|
||||
"{'s1': Decimal('2.221384236472411425810660220E+330'),\n",
|
||||
" 's2': Decimal('2.845096899831187764579913612E+330'),\n",
|
||||
" 's3': Decimal('3.622519693611211445932083740'),\n",
|
||||
" 's4': Decimal('5.161487081026327858663750787'),\n",
|
||||
" 'timestamp': '2018-10-01 15:16:32',\n",
|
||||
" 'mech_step': 3,\n",
|
||||
" 'time_step': 8}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[{'s1': 2, 's2': 4, 's3': 300, 'step': 0},\n",
|
||||
" {'s1': 14, 's2': 15, 's3': 300, 'step': 1},\n",
|
||||
" {'s1': 28.933333333333334, 's2': 15, 's3': 301, 'step': 2},\n",
|
||||
" {'s1': 28.933333333333334, 's2': 47.93333333333334, 's3': 301, 'step': 3}]"
|
||||
"Decimal('Infinity')"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"configs = generate_configs(j)\n",
|
||||
"Decimal(1.180039338585514253573643575E+354663)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"metadata": {
|
||||
"scrolled": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"2\n",
|
||||
"28.93333333333333333333333333\n",
|
||||
"6648.243150484876793318447126\n",
|
||||
"215266002.9098566044894792728\n",
|
||||
"212676723296002516.0223878870\n",
|
||||
"2.064462977716089278043496414E+35\n",
|
||||
"1.944246638657598357070784299E+71\n",
|
||||
"1.724319625268384335555851407E+143\n",
|
||||
"1.356277245443530770557350375E+287\n",
|
||||
"8.390921927247213674080072180E+574\n",
|
||||
"3.211678541196335645996776724E+1150\n",
|
||||
"4.705186557507909314007212924E+2301\n",
|
||||
"1.009872166532254449900559698E+4604\n",
|
||||
"4.652062198297258244018932170E+9208\n",
|
||||
"9.871967857966477618498629472E+18417\n",
|
||||
"4.445495477485404825150822930E+36836\n",
|
||||
"9.014736833846553341620594734E+73673\n",
|
||||
"3.706967797153494335559907166E+147348\n",
|
||||
"6.268308088445542763967769694E+294697\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ename": "Overflow",
|
||||
"evalue": "[<class 'decimal.Overflow'>]",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[0;31m-------------------------------------------------\u001b[0m",
|
||||
"\u001b[0;31mOverflow\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[0;32m<ipython-input-23-900ef90e9c0a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mconfigs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgenerate_config\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmechanisms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexogenous_states\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mpipeline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m20\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;31m# a = block_gen(states_list, configs, env_processes, 1)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m# b = block_gen(a, configs, env_processes, 2)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-20-b19b5b411056>\u001b[0m in \u001b[0;36mpipeline\u001b[0;34m(states_list, configs, env_processes, time_seq)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0msimulation_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mstates_list\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mtime_step\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtime_seq\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0mpipeline_run\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mblock_gen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msimulation_list\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0mhead\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mpipeline_run\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpipeline_run\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0msimulation_list\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpipeline_run\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-20-b19b5b411056>\u001b[0m in \u001b[0;36mblock_gen\u001b[0;34m(states_list, configs, env_processes, t_step)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mconfig\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mconfigs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0ms_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb_conf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfig\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0mstates_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmech_step\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstates_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mb_conf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0mm_step\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-20-b19b5b411056>\u001b[0m in \u001b[0;36mmech_step\u001b[0;34m(m_step, sL, state_funcs, behavior_funcs, env_processes, t_step)\u001b[0m\n\u001b[1;32m 33\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[0;31m# * force eval of _input withing state functions\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 35\u001b[0;31m \u001b[0m_input\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetBehaviorInput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm_step\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlast_in_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbehavior_funcs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 36\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0mapply_env_proc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlast_mut_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt_step\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-20-b19b5b411056>\u001b[0m in \u001b[0;36mgetBehaviorInput\u001b[0;34m(step, sL, s, funcs)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetBehaviorInput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfoldr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0m_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgetColResults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mapply_env_proc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0menv_processes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstate_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstep\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-20-b19b5b411056>\u001b[0m in \u001b[0;36mgetColResults\u001b[0;34m(step, sL, s, funcs)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;31m# partials = list(map(lambda f: partial(f, step, sL), funcs))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetColResults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetBehaviorInput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-20-b19b5b411056>\u001b[0m in \u001b[0;36m<lambda>\u001b[0;34m(f)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;31m# partials = list(map(lambda f: partial(f, step, sL), funcs))\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetColResults\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mgetBehaviorInput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfuncs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;32m<ipython-input-19-da6201518c93>\u001b[0m in \u001b[0;36mb2m1\u001b[0;34m(step, sL, s)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m's1'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mb2m1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m's1'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m's2'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mb1m2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msL\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||||
"\u001b[0;31mOverflow\u001b[0m: [<class 'decimal.Overflow'>]"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"configs = generate_config(mechanisms, exogenous_states)\n",
|
||||
"\n",
|
||||
"pipeline(states_list, configs, env_processes, range(20))\n",
|
||||
"# a = block_gen(states_list, configs, env_processes, 1)\n",
|
||||
"# b = block_gen(a, configs, env_processes, 2)\n",
|
||||
"# b\n",
|
||||
"# categorize by simulation\n",
|
||||
"\n",
|
||||
"# Pipeline : exec of mech steps\n",
|
||||
"# T (Time Step) per Pipeline runs\n",
|
||||
"\n",
|
||||
"# Simulatiom: N Pipline runs per Simulation at different T progressively"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from decimal import Decimal, MAX_EMAX\n",
|
||||
"# Decimal(2.5347751615574597e+167)**2\n",
|
||||
"MAX_EMAX**5"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"1000 * 1000"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from datetime import datetime, timedelta\n",
|
||||
"# from datetime import timedelta \n",
|
||||
"# st = datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')\n",
|
||||
"st = datetime.now()\n",
|
||||
"print(st)\n",
|
||||
"x = st + timedelta(seconds=60)\n",
|
||||
"print(x)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"s = datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n",
|
||||
"datetime_object = datetime.strptime(s, '%Y-%m-%d %H:%M:%S')\n",
|
||||
"datetime_object"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"datetime.fromtimestamp()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from datetime import datetime, timedelta\n",
|
||||
"\n",
|
||||
"# def time_step_func(year, month, day, hour, minute, second):\n",
|
||||
"a = datetime(2016, 11, 15, 9, 59, 25)#.strftime(\"%Y-%m-%d %H:%M:%S\")\n",
|
||||
"b = a + timedelta(seconds=60) # days, seconds, then other fields.\n",
|
||||
"print(a)\n",
|
||||
"print(b)\n",
|
||||
"st = datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')\n",
|
||||
"def time_step_func(dt_str, fromat_str='%Y-%m-%d %H:%M:%S', days=0, minutes=0, seconds=1):\n",
|
||||
" dt = datetime.strptime(dt_str, fromat_str)\n",
|
||||
" t = dt + timedelta(days=days, minutes=minutes, seconds=seconds)\n",
|
||||
" return t.strftime(fromat_str)\n",
|
||||
"\n",
|
||||
"time_step_func('2018-10-01 15:16:24')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def time_step_func(x, y):\n",
|
||||
" return x + y"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"for m in M: #M is the parameter sweep array\n",
|
||||
" # for Pairwise, run below separately\n",
|
||||
" for n in N: #N is the total number of Montecarlo runs\n",
|
||||
" for t in T: #T[len(T)]-T[0] is the duration of each simulation\n",
|
||||
" # Pipeline\n",
|
||||
" for b in Behaviors:\n",
|
||||
" for M in Mechanisms:\n",
|
||||
" for s in States:\n",
|
||||
" update(s)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"[{'s1': 2}] + [{'s1': 3}]\n",
|
||||
"list(zip([block_gen] * 2, range(2)))\n",
|
||||
"len([0,1])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"states_list = [state_dict]\n",
|
||||
"configs = generate_config(mechanisms, exogenous_states)\n",
|
||||
"def step_func(x, y):\n",
|
||||
" return x + y\n",
|
||||
"pipeline(states_list, configs, step_func)\n",
|
||||
"# categorize by simulation"
|
||||
"pipeline(states_list, configs, env_processes, step_func)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"47.93333333333334"
|
||||
]
|
||||
},
|
||||
"execution_count": 9,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"15 + 28.933333333333334 + 4"
|
||||
"# def s3step1(step, sL, s, _input):\n",
|
||||
"# s['s3'] = s['s3'] \n",
|
||||
"# # def s3step2(step, sL, s, _input):\n",
|
||||
"# s['s3'] = s['s3'] + 1\n",
|
||||
"# def s3step3(step, sL, s, _input):\n",
|
||||
"# s['s3'] = s['s3'] * bound_norm_random(proc_one_coef_A, proc_one_coef_B)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# 15 + 28.933333333333334 + 4"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
|
|
|||
Loading…
Reference in New Issue