コード例 #1
0
ファイル: __init__.py プロジェクト: terrasix/cadCAD
def append_configs(sim_configs={},
                   initial_state={},
                   seeds={},
                   raw_exogenous_states={},
                   env_processes={},
                   partial_state_update_blocks={},
                   policy_ops=[lambda a, b: a + b],
                   _exo_update_per_ts: bool = True) -> None:
    if _exo_update_per_ts is True:
        exogenous_states = exo_update_per_ts(raw_exogenous_states)
    else:
        exogenous_states = raw_exogenous_states

    if isinstance(sim_configs, dict):
        sim_configs = [sim_configs]

    for sim_config in sim_configs:
        config = Configuration(
            sim_config=sim_config,
            initial_state=initial_state,
            seeds=seeds,
            exogenous_states=exogenous_states,
            env_processes=env_processes,
            partial_state_update_blocks=partial_state_update_blocks,
            policy_ops=policy_ops)
        configs.append(config)
コード例 #2
0
def append_configs(
        user_id='cadCAD_user',
        session_id=0,  #ToDo: change to string
        sim_configs={},
        initial_state={},
        seeds={},
        raw_exogenous_states={},
        env_processes={},
        partial_state_update_blocks={},
        policy_ops=[lambda a, b: a + b],
        _exo_update_per_ts: bool = True,
        config_list=configs) -> None:
    if _exo_update_per_ts is True:
        exogenous_states = exo_update_per_ts(raw_exogenous_states)
    else:
        exogenous_states = raw_exogenous_states

    if isinstance(sim_configs, dict):
        sim_configs = [sim_configs]

    simulation_id = 0
    if len(config_list) > 0:
        last_config = config_list[-1]
        simulation_id = last_config.simulation_id + 1

    sim_cnt = 0
    new_sim_configs = []
    for t in list(zip(sim_configs, list(range(len(sim_configs))))):
        sim_config = t[0]
        N = sim_config['N']

        if N > 1:
            for n in range(N):
                sim_config['simulation_id'] = simulation_id + sim_cnt
                sim_config['run_id'] = n
                sim_config['N'] = 1
                # sim_config['N'] = n + 1
                new_sim_configs.append(deepcopy(sim_config))
            del sim_config
        else:
            sim_config['simulation_id'] = simulation_id
            sim_config['run_id'] = 0
            new_sim_configs.append(deepcopy(sim_config))

        sim_cnt += 1

    # for sim_config in sim_configs:
    for sim_config in new_sim_configs:
        config = Configuration(
            sim_config=sim_config,
            initial_state=initial_state,
            seeds=seeds,
            exogenous_states=exogenous_states,
            env_processes=env_processes,
            partial_state_update_blocks=partial_state_update_blocks,
            policy_ops=policy_ops,

            # session_id=session_id,
            user_id=user_id,
            session_id=
            f"{user_id}={sim_config['simulation_id']}_{sim_config['run_id']}",
            simulation_id=sim_config['simulation_id'],
            run_id=sim_config['run_id'])
        configs.append(config)
コード例 #3
0
    def append_configs(self,
                       user_id='cadCAD_user',
                       sim_configs={},
                       initial_state={},
                       seeds={},
                       raw_exogenous_states={},
                       env_processes={},
                       partial_state_update_blocks={},
                       policy_ops=[lambda a, b: a + b],
                       _exo_update_per_ts: bool = True,
                       config_list=configs) -> None:

        try:
            max_runs = sim_configs[0]['N']
        except KeyError:
            max_runs = sim_configs['N']

        if _exo_update_per_ts is True:
            exogenous_states = exo_update_per_ts(raw_exogenous_states)
        else:
            exogenous_states = raw_exogenous_states

        if isinstance(sim_configs, dict):
            sim_configs = [sim_configs]

        simulation_id = 0
        if len(config_list) > 0:
            last_config = config_list[-1]
            simulation_id = last_config.simulation_id + 1

        sim_cnt = 0
        new_sim_configs = []
        for subset_id, t in enumerate(
                list(zip(sim_configs, list(range(len(sim_configs)))))):
            sim_config = t[0]
            sim_config['subset_id'] = subset_id
            sim_config['subset_window'] = self.subset_window
            N = sim_config['N']
            if N > 1:
                for n in range(N):
                    sim_config['simulation_id'] = simulation_id + sim_cnt
                    sim_config['run_id'] = n
                    sim_config['N'] = 1
                    # sim_config['N'] = n + 1
                    new_sim_configs.append(deepcopy(sim_config))
                del sim_config
            else:
                sim_config['simulation_id'] = simulation_id
                sim_config['run_id'] = 0
                new_sim_configs.append(deepcopy(sim_config))
                # del sim_config

            sim_cnt += 1

        run_id = 0
        for sim_config in new_sim_configs:
            subset_id = sim_config['subset_id']
            sim_config['N'] = run_id + 1
            if max_runs == 1:
                sim_config['run_id'] = run_id
            elif max_runs >= 1:
                if run_id >= max_runs:
                    sim_config['N'] = run_id - (max_runs - 1)

            self.exp_window = deepcopy(self.exp_window)
            config = Configuration(
                sim_config=sim_config,
                initial_state=initial_state,
                seeds=seeds,
                exogenous_states=exogenous_states,
                env_processes=env_processes,
                partial_state_update_blocks=partial_state_update_blocks,
                policy_ops=policy_ops,

                # session_id=session_id,
                user_id=user_id,
                session_id=
                f"{user_id}={sim_config['simulation_id']}_{sim_config['run_id']}",
                simulation_id=sim_config['simulation_id'],
                run_id=sim_config['run_id'],
                experiment_id=self.exp_id,
                exp_window=self.exp_window,
                subset_id=subset_id,
                subset_window=self.subset_window)
            configs.append(config)
            run_id += 1
        self.exp_id += 1
        self.exp_window.appendleft(self.exp_id)