Reafactor Pt. 5: Improved Runtime Env / ux Pt.3

This commit is contained in:
Joshua E. Jodesty 2018-11-15 18:48:39 -05:00
parent cee90b564c
commit 7ecd4e6c86
2 changed files with 33 additions and 16 deletions

View File

@ -28,7 +28,7 @@ class Executor(object):
def execute():
ec = ExecutionContext()
print(configs)
states_lists, Ts, Ns, eps, configs_struct, env_processes, mechanisms, simulation_execs = \
states_lists, Ts, Ns, eps, configs_structs, env_processes_list, mechanisms, simulation_execs = \
[], [], [], [], [], [], [], []
config_idx = 0
for x in configs:
@ -36,8 +36,8 @@ class Executor(object):
Ts.append(x.sim_config['T'])
Ns.append(x.sim_config['N'])
eps.append(list(x.exogenous_states.values()))
configs_struct.append(generate_config(x.state_dict, x.mechanisms, eps[config_idx]))
env_processes.append(x.env_processes)
configs_structs.append(generate_config(x.state_dict, x.mechanisms, eps[config_idx]))
env_processes_list.append(x.env_processes)
mechanisms.append(x.mechanisms)
simulation_execs.append(Executor(x.behavior_ops).simulation)
@ -46,20 +46,18 @@ class Executor(object):
# Dimensions: N x r x mechs
if len(configs) > 1:
simulations = ec.parallelize_simulations(simulation_execs, states_lists, configs_struct, env_processes, Ts, Ns)
simulations = ec.parallelize_simulations(simulation_execs, states_lists, configs_structs, env_processes_list, Ts, Ns)
results = []
for result, mechanism, ep in list(zip(simulations, mechanisms, eps)):
print(tabulate(create_tensor_field(mechanism, ep), headers='keys', tablefmt='psql'))
print(tabulate(pd.DataFrame(flatten(result)), headers='keys', tablefmt='psql'))
results.append(flatten(result))
return results
else:
print('single note')
simulation, states_list, config = simulation_execs.pop(), states_lists.pop(), configs_struct.pop()
env_process = env_processes.pop()
# simulations = [simulation(states_list, config, env_processes, T, N)]
# behavior_ops, states_list, configs, env_processes, time_seq, runs
# result = simulation(states_list1, config1, conf1.env_processes, T, N)
# return pd.DataFrame(flatten(result))
simulation, states_list, config = simulation_execs.pop(), states_lists.pop(), configs_structs.pop()
env_processes, T, N = env_processes_list.pop(), Ts.pop(), Ns.pop()
result = simulation(states_list, config, env_processes, T, N)
# print(flatten(result))
return flatten(result)
self.ExecutionContext = ExecutionContext
self.main = execute

View File

@ -1,7 +1,26 @@
import pandas as pd
from tabulate import tabulate
from SimCAD.engine import ExecutionContext, Executor
from sandboxUX import config1, config2
print("Simulation Run 1")
print()
single_config = [config1]
run1 = Executor(ExecutionContext, single_config)
run1_raw_result = run1.main()
result = pd.DataFrame(run1_raw_result)
print(tabulate(result, headers='keys', tablefmt='psql'))
print()
print("Simulation Run 2: Pairwise Execution")
print()
configs = [config1, config2]
run = Executor(ExecutionContext, configs)
result = run.main()
run2 = Executor(ExecutionContext, configs)
run2_raw_results = run2.main()
for result in run2_raw_results:
print(tabulate(result, headers='keys', tablefmt='psql'))
print()