This commit is contained in:
Joshua E. Jodesty 2018-12-04 20:44:19 -05:00
parent 3554968c68
commit a0160d7606
7 changed files with 14 additions and 11 deletions

View File

@ -14,8 +14,8 @@ class Configuration:
sim_config,
genesis_states: Dict[str, object],
seed: Dict[str, RandomState],
exogenous_states,
env_processes,
exogenous_states: Dict[str, function],
env_processes: Dict[str, function],
mechanisms,
behavior_ops=[foldr(dict_elemwise_sum())]):
self.sim_config = sim_config

View File

@ -35,11 +35,15 @@ class Executor:
def mech_step(self, m_step, sL, state_funcs, behavior_funcs, env_processes, t_step, run):
last_in_obj = sL[-1]
# print(sL)
# print(state_funcs)
# if m_step == 3:
# exit()
_input = self.state_update_exception(self.get_behavior_input(m_step, sL, last_in_obj, behavior_funcs))
_input = self.behavior_update_exception(self.get_behavior_input(m_step, sL, last_in_obj, behavior_funcs))
# ToDo: add env_proc generator to `last_in_copy` iterator as wrapper function
last_in_copy = dict([self.behavior_update_exception(f(m_step, sL, last_in_obj, _input)) for f in state_funcs])
last_in_copy = dict([self.state_update_exception(f(m_step, sL, last_in_obj, _input)) for f in state_funcs])
for k in last_in_obj:
if k not in last_in_copy:

View File

@ -3,8 +3,8 @@ from tabulate import tabulate
# The following imports NEED to be in the exact same order
from SimCAD.engine import ExecutionMode, ExecutionContext, Executor
# from simulations.validation import config1, config2
from simulations.validation import base_config1, base_config2
from simulations.validation import config1, config2
# from simulations.validation import base_config1, base_config2
# from simulations.barlin import config4
# from simulations.zx import config_zx
# from simulations.barlin import config6atemp #config6aworks,

View File

@ -1,7 +1,6 @@
from decimal import Decimal
import numpy as np
from datetime import timedelta
from typing import Dict
from SimCAD import configs
from SimCAD.configuration import Configuration

View File

@ -7,7 +7,6 @@ from SimCAD.configuration import Configuration
from SimCAD.configuration.utils import exo_update_per_ts, proc_trigger, bound_norm_random, \
ep_time_step
seed = {
'z': np.random.RandomState(1),
'a': np.random.RandomState(2),

View File

@ -1,6 +1,7 @@
from decimal import Decimal
import numpy as np
from datetime import timedelta
from typing import Dict, List, Tuple
from SimCAD import configs
@ -17,7 +18,7 @@ seed = {
# Behaviors per Mechanism
# Different return types per mechanism ?? *** No ***
def b1m1(step, sL, s):
def b1m1(step: int, sL: List[Dict[str, object]], s: Dict[str, object]) -> Dict[str, object]:
return {'param1': 1}
def b2m1(step, sL, s):
return {'param2': 4}
@ -34,7 +35,7 @@ def b2m3(step, sL, s):
# deff not more than 2
# Internal States per Mechanism
def s1m1(step, sL, s, _input):
def s1m1(step: int, sL: List[Dict[str, object]], s: Dict[str, object], _input: Dict[str, object]) -> Tuple[int, str]:
y = 's1'
x = _input['param1'] #+ [Coef1 x 5]
return (y, x)

View File

@ -171,7 +171,7 @@ sim_config = {
configs.append(
Configuration(
sim_config=sim_config,
state_dict=genesis_states,
genesis_states=genesis_states,
seed=seed,
exogenous_states=exogenous_states,
env_processes=env_processes,