conncur mech step, per-se

This commit is contained in:
Joshua E. Jodesty 2018-10-18 12:10:57 +02:00
parent ee21530f02
commit 4df2b8cdc9
14 changed files with 36 additions and 12 deletions

View File

@ -21,8 +21,12 @@ def mech_step(m_step, sL, state_funcs, behavior_funcs, env_processes, t_step):
_input = getBehaviorInput(m_step, sL, last_in_obj, behavior_funcs)
for f in state_funcs:
f(m_step, sL, last_mut_obj, _input)
# OLD: no bueno! Mutation Bad
# for f in state_funcs:
# f(m_step, sL, last_mut_obj, _input)
# New
last_mut_obj = dict([ f(m_step, sL, last_mut_obj, _input) for f in state_funcs ])
apply_env_proc(env_processes, last_mut_obj, last_mut_obj['timestamp'])

View File

@ -1,2 +1,4 @@
from engine import run
run.main()
from tabulate import tabulate
result = run.main()
print(tabulate(result, headers='keys', tablefmt='psql'))

Binary file not shown.

View File

@ -29,29 +29,47 @@ def b2m3(step, sL, s):
# Internal States per Mechanism
def s1m1(step, sL, s, _input):
s['s1'] = s['s1'] + _input
y = 's1'
x = s['s1'] + _input
return (y, x)
def s2m1(step, sL, s, _input):
s['s2'] = s['s2'] + _input
y = 's2'
x = s['s2'] + _input
return (y, x)
def s1m2(step, sL, s, _input):
s['s1'] = s['s1'] + _input
y = 's1'
x = s['s1'] + _input
return (y, x)
def s2m2(step, sL, s, _input):
s['s2'] = s['s2'] + _input
y = 's2'
x = s['s2'] + _input
return (y, x)
def s1m3(step, sL, s, _input):
s['s1'] = s['s1'] + _input
y = 's1'
x = s['s1'] + _input
return (y, x)
def s2m3(step, sL, s, _input):
s['s2'] = s['s2'] + _input
y = 's2'
x = s['s2'] + _input
return (y, x)
# Exogenous States
proc_one_coef_A = 0.7
proc_one_coef_B = 1.3
def es3p1(step, sL, s, _input):
s['s3'] = s['s3'] * bound_norm_random(seed['a'], proc_one_coef_A, proc_one_coef_B)
y = 's3'
x = s['s3'] * bound_norm_random(seed['a'], proc_one_coef_A, proc_one_coef_B)
return (y, x)
def es4p2(step, sL, s, _input):
s['s4'] = s['s4'] * bound_norm_random(seed['b'], proc_one_coef_A, proc_one_coef_B)
y = 's4'
x = s['s4'] * bound_norm_random(seed['b'], proc_one_coef_A, proc_one_coef_B)
return (y, x)
def es5p2(step, sL, s, _input): # accept timedelta instead of timedelta params
s['timestamp'] = ep_time_step(s, s['timestamp'], seconds=1)
y = 'timestamp'
x = ep_time_step(s, s['timestamp'], seconds=1)
return (y, x)
# Environment States
def env_a(x):