From 189020914fc06321777c87772a76b8bb9f64d0d3 Mon Sep 17 00:00:00 2001 From: Yury Hayeu Date: Mon, 22 Apr 2024 19:32:39 +0200 Subject: [PATCH] Final experiments --- .../experiments/jsp/2_7/experiment.yml | 2 +- .../experiments/1 (DQN)/experiment.yml | 352 ++++++++++++++ .../experiments/1 (PPO)/experiment.yml | 219 +++++++++ .../experiments/2 (DQN)/experiment.yml | 352 ++++++++++++++ .../experiments/2 (PPO)/experiment.yml | 219 +++++++++ .../experiments/3 (DQN)/experiment.yml | 459 ++++++++++++++++++ .../experiments/3 (PPO)/experiment.yml | 261 ++++++++++ .../experiments/4 (DQN)/experiment.yml | 297 ++++++++++++ .../experiments/4 (PPO)/experiment.yml | 199 ++++++++ .../experiments/5 (DQN)/experiment.yml | 297 ++++++++++++ .../experiments/5 (PPO)/experiment.yml | 199 ++++++++ .../experiments/6 (DQN)/experiment.yml | 198 ++++++++ .../experiments/6 (PPO)/experiment.yml | 167 +++++++ .../experiments/7 (DQN)/experiment.yml | 308 ++++++++++++ .../experiments/7 (PPO)/experiment.yml | 260 ++++++++++ .../jsp/GRAPH-NN/flexible_machine.yml | 75 +++ .../jsp/GRAPH-NN/flexible_marl_machine.yml | 76 +++ .../jsp/GRAPH-NN/flexible_ppo_machine.yml | 84 ++++ .../experiments/jsp/GRAPH-NN/machine.yml | 75 +++ .../experiments/jsp/GRAPH-NN/marl_machine.yml | 76 +++ .../experiments/jsp/GRAPH-NN/ppo_machine.yml | 84 ++++ .../experiments/jsp/GRAPH-NN/run.yml | 23 + .../experiments/jsp/GRAPH-NN/run_ppo.yml | 20 + .../experiments/jsp/GRAPH-NN/simulation.yml | 48 ++ .../jsp/GRAPH-NN/templates/1/djsp/encoder.yml | 9 + .../jsp/GRAPH-NN/templates/1/djsp/model.yml | 105 ++++ .../jsp/GRAPH-NN/templates/1/djsp/rules.yml | 16 + .../templates/1/hierarchical/encoder.yml | 9 + .../templates/1/hierarchical/model.yml | 105 ++++ .../templates/1/hierarchical/rules.yml | 16 + .../jsp/GRAPH-NN/templates/1/vpt/encoder.yml | 9 + .../jsp/GRAPH-NN/templates/1/vpt/model.yml | 105 ++++ .../jsp/GRAPH-NN/templates/1/vpt/rules.yml | 16 + .../templates/2/template/gcn/encoder.yml | 8 + .../templates/2/template/gcn/model.yml | 102 ++++ .../templates/2/template/gcn/rules.yml | 16 + .../templates/2/template/gin/encoder.yml | 8 + .../templates/2/template/gin/model.yml | 99 ++++ .../templates/2/template/gin/rules.yml | 16 + .../templates/2/template/sage/encoder.yml | 8 + .../templates/2/template/sage/model.yml | 102 ++++ .../templates/2/template/sage/rules.yml | 16 + .../jsp/GRAPH-NN/templates/3/add/encoder.yml | 8 + .../jsp/GRAPH-NN/templates/3/add/model.yml | 104 ++++ .../jsp/GRAPH-NN/templates/3/add/rules.yml | 16 + .../templates/3/add_local/encoder.yml | 8 + .../GRAPH-NN/templates/3/add_local/model.yml | 106 ++++ .../GRAPH-NN/templates/3/add_local/rules.yml | 16 + .../jsp/GRAPH-NN/templates/3/max/encoder.yml | 8 + .../jsp/GRAPH-NN/templates/3/max/model.yml | 104 ++++ .../jsp/GRAPH-NN/templates/3/max/rules.yml | 16 + .../templates/3/max_local/encoder.yml | 8 + .../GRAPH-NN/templates/3/max_local/model.yml | 106 ++++ .../GRAPH-NN/templates/3/max_local/rules.yml | 16 + .../jsp/GRAPH-NN/templates/3/mean/encoder.yml | 8 + .../jsp/GRAPH-NN/templates/3/mean/model.yml | 104 ++++ .../jsp/GRAPH-NN/templates/3/mean/rules.yml | 16 + .../templates/3/mean_local/encoder.yml | 8 + .../GRAPH-NN/templates/3/mean_local/model.yml | 106 ++++ .../GRAPH-NN/templates/3/mean_local/rules.yml | 16 + .../4/mean_local_undirected/encoder.yml | 8 + .../4/mean_local_undirected/model.yml | 106 ++++ .../4/mean_local_undirected/rules.yml | 16 + .../templates/4/mean_undirected/encoder.yml | 8 + .../templates/4/mean_undirected/model.yml | 104 ++++ .../templates/4/mean_undirected/rules.yml | 16 + .../jsp/GRAPH-NN/templates/5/all/encoder.yml | 8 + .../jsp/GRAPH-NN/templates/5/all/model.yml | 104 ++++ .../jsp/GRAPH-NN/templates/5/all/rules.yml | 2 + .../GRAPH-NN/templates/5/flexible/encoder.yml | 8 + .../GRAPH-NN/templates/5/flexible/model.yml | 112 +++++ .../GRAPH-NN/templates/5/flexible/rules.yml | 2 + .../8/baseline_with_transformer/encoder.yml | 8 + .../8/baseline_with_transformer/model.yml | 129 +++++ .../8/baseline_with_transformer/rules.yml | 16 + .../8/flexible_with_transformer/encoder.yml | 8 + .../8/flexible_with_transformer/model.yml | 154 ++++++ .../8/flexible_with_transformer/rules.yml | 2 + .../GRAPH-NN/templates/baseline/encoder.yml | 8 + .../jsp/GRAPH-NN/templates/baseline/model.yml | 105 ++++ .../jsp/GRAPH-NN/templates/baseline/rules.yml | 16 + .../jsp/MARL-DQN/experiment/1/experiment.yml | 6 +- .../jsp/MARL-DQN/experiment/2/experiment.yml | 12 +- .../jsp/MARL-DQN/experiment/3/experiment.yml | 16 +- .../jsp/MARL-DQN/experiment/4/experiment.yml | 4 +- .../jsp/MARL-DQN/experiment/4/machine.yml | 6 +- .../jsp/MARL-DQN/experiment/5/experiment.yml | 6 - .../jsp/MARL-DQN/experiment/6/experiment.yml | 7 +- .../jsp/MARL-DQN/experiment/7/experiment.yml | 3 +- .../experiments/jsp/MARL-DQN/machine.yml | 4 +- .../experiments/jsp/MARL-DQN/marl_machine.yml | 4 +- .../experiments/jsp/MARL-DQN/run.yml | 2 +- .../experiments/jsp/fjsp_tournament.yml | 6 +- .../mods/util/return/discount_factor/99.yml | 8 + diploma_thesis/graph-run.sh | 27 ++ diploma_thesis/simulator/simulator.py | 6 + diploma_thesis/workflow/simulation.py | 2 +- 97 files changed, 6907 insertions(+), 41 deletions(-) create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (DQN)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (PPO)/experiment.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_marl_machine.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_ppo_machine.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/machine.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/marl_machine.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run_ppo.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/simulation.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/rules.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/encoder.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/model.yml create mode 100644 diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/rules.yml create mode 100644 diploma_thesis/configuration/mods/machine/mods/util/return/discount_factor/99.yml create mode 100644 diploma_thesis/graph-run.sh diff --git a/diploma_thesis/configuration/experiments/jsp/2_7/experiment.yml b/diploma_thesis/configuration/experiments/jsp/2_7/experiment.yml index 4cf722b..02c00d2 100644 --- a/diploma_thesis/configuration/experiments/jsp/2_7/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/2_7/experiment.yml @@ -201,7 +201,7 @@ task: - kind: 'surrogate_tardiness' parameters: winq_factor: 0.2 - span: 64 + span: 40 critical_level_factor: 128 - kind: 'global_decomposed_tardiness' parameters: diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (DQN)/experiment.yml new file mode 100644 index 0000000..2c540fc --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (DQN)/experiment.yml @@ -0,0 +1,352 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: *template + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: *template + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3: &dqn_3 + base_path: *base_model + template: *template + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: *template + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_hierarchical: &dqn_1_hierarchical + base_path: *base_model + template: '1/hierarchical' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_hierarchical: &marl_dqn_2_hierarchical + base_path: *marl_model + template: '1/hierarchical' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_hierarchical: &dqn_3_hierarchical + base_path: *base_model + template: '1/hierarchical' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_hierarchical: &marl_dqn_4_hierarchical + base_path: *marl_model + template: '1/hierarchical' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_vpt: &dqn_1_vpt + base_path: *base_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_vpt: &marl_dqn_2_vpt + base_path: *marl_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_vpt: &dqn_3_vpt + base_path: *base_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_vpt: &marl_dqn_4_vpt + base_path: *marl_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_dj: &dqn_1_djsp + base_path: *base_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_djsp: &marl_dqn_2_djsp + base_path: *marl_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_djsp: &dqn_3_djsp + base_path: *base_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_djsp: &marl_dqn_4_djsp + base_path: *marl_model + template: '1/vpt' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/1. Graph State Encoding (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Custom' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + - output_dir: 'Hierarchical' + machine_agent: + parameters: + - *dqn_1_hierarchical + - *marl_dqn_2_hierarchical + - *dqn_3_hierarchical + - *marl_dqn_4_hierarchical + - output_dir: 'VPT' + machine_agent: + parameters: + - *dqn_1_vpt + - *marl_dqn_2_vpt + - *dqn_3_vpt + - *marl_dqn_4_vpt + - output_dir: 'DJSP' + machine_agent: + parameters: + - *dqn_1_djsp + - *marl_dqn_2_djsp + - *dqn_3_djsp + - *marl_dqn_4_djsp + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (PPO)/experiment.yml new file mode 100644 index 0000000..581be0c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/1 (PPO)/experiment.yml @@ -0,0 +1,219 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: '1/djsp' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_2: &ppo_2 + base_path: *base_model + template: '1/vpt' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_3: &ppo_3 + base_path: *base_model + template: '1/hierarchical' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_4: &ppo_4 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/1. Graph State Encoding (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Custom' + machine_agent: + parameters: + *ppo_4 + - output_dir: 'Hierarchical' + machine_agent: + parameters: + *ppo_3 + - output_dir: 'VPT' + machine_agent: + parameters: + *ppo_2 + - output_dir: 'DJSP' + machine_agent: + parameters: + *ppo_1 + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (DQN)/experiment.yml new file mode 100644 index 0000000..b34edff --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (DQN)/experiment.yml @@ -0,0 +1,352 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3: &dqn_3 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_gin: &dqn_1_gin + base_path: *base_model + template: '2/gat' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_gin: &marl_dqn_2_gin + base_path: *marl_model + template: '2/gin' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_gin: &dqn_3_gin + base_path: *base_model + template: '2/gin' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_gin: &marl_dqn_4_gin + base_path: *marl_model + template: '2/gin' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_gcn: &dqn_1_gcn + base_path: *base_model + template: '2/gcn' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_gcn: &marl_dqn_2_gcn + base_path: *marl_model + template: '2/gcn' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_gcn: &dqn_3_gcn + base_path: *base_model + template: '2/gcn' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_gcn: &marl_dqn_4_gcn + base_path: *marl_model + template: '2/gcn' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_sage: &dqn_1_sage + base_path: *base_model + template: '2/sage' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_sage: &marl_dqn_2_sage + base_path: *marl_model + template: '2/sage' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_sage: &dqn_3_sage + base_path: *base_model + template: '2/sage' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_sage: &marl_dqn_4_sage + base_path: *marl_model + template: '2/sage' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/2. Graph Layer (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + - output_dir: 'GIN' + machine_agent: + parameters: + - *dqn_1_gin + - *marl_dqn_2_gin + - *dqn_3_gin + - *marl_dqn_4_gin + - output_dir: 'SAGE' + machine_agent: + parameters: + - *dqn_1_sage + - *marl_dqn_2_sage + - *dqn_3_sage + - *marl_dqn_4_sage + - output_dir: 'GCN' + machine_agent: + parameters: + - *dqn_1_gcn + - *marl_dqn_2_gcn + - *dqn_3_gcn + - *marl_dqn_4_gcn + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (PPO)/experiment.yml new file mode 100644 index 0000000..1a27b1f --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/2 (PPO)/experiment.yml @@ -0,0 +1,219 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_2: &ppo_2 + base_path: *base_model + template: '2/gin' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_3: &ppo_3 + base_path: *base_model + template: '2/gcn' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_4: &ppo_4 + base_path: *base_model + template: '2/sage' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/2. Graph Layer (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + *ppo_1 + - output_dir: 'GIN' + machine_agent: + parameters: + *ppo_2 + - output_dir: 'GCN' + machine_agent: + parameters: + *ppo_3 + - output_dir: 'SAGE' + machine_agent: + parameters: + *ppo_4 + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (DQN)/experiment.yml new file mode 100644 index 0000000..c2c5878 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (DQN)/experiment.yml @@ -0,0 +1,459 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3: &dqn_3 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_add: &dqn_1_add + base_path: *base_model + template: '3/add' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_add: &marl_dqn_2_add + base_path: *marl_model + template: '3/add' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_add: &dqn_3_add + base_path: *base_model + template: '3/add' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_add: &marl_dqn_4_add + base_path: *marl_model + template: '3/add' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_add_local: &dqn_1_add_local + base_path: *base_model + template: '3/add_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_add_local: &marl_dqn_2_add_local + base_path: *marl_model + template: '3/add_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_add_local: &dqn_3_add_local + base_path: *base_model + template: '3/add_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_add_local: &marl_dqn_4_add_local + base_path: *marl_model + template: '3/add_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_mean_local: &dqn_1_mean_local + base_path: *base_model + template: '3/mean_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_mean_local: &marl_dqn_2_mean_local + base_path: *marl_model + template: '3/mean_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_mean_local: &dqn_3_mean_local + base_path: *base_model + template: '3/add_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_mean_local: &marl_dqn_4_mean_local + base_path: *marl_model + template: '3/mean_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_max_local: &dqn_1_max_local + base_path: *base_model + template: '3/max_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_max_local: &marl_dqn_2_max_local + base_path: *marl_model + template: '3/max_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_max_local: &dqn_3_max_local + base_path: *base_model + template: '3/max_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_max_local: &marl_dqn_4_max_local + base_path: *marl_model + template: '3/max_local' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_max: &dqn_1_max + base_path: *base_model + template: '3/max' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_max: &marl_dqn_2_max + base_path: *marl_model + template: '3/max' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_max: &dqn_3_max + base_path: *base_model + template: '3/max' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_max: &marl_dqn_4_max + base_path: *marl_model + template: '3/max' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/3. Pooling (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + - output_dir: 'Mean Local' + machine_agent: + parameters: + - *dqn_1_mean_local + - *marl_dqn_2_mean_local + - *dqn_3_mean_local + - *marl_dqn_4_mean_local + - output_dir: 'Add' + machine_agent: + parameters: + - *dqn_1_add + - *marl_dqn_2_add + - *dqn_3_add + - *marl_dqn_4_add + - output_dir: 'Add Local' + machine_agent: + parameters: + - *dqn_1_add_local + - *marl_dqn_2_add_local + - *dqn_3_add_local + - *marl_dqn_4_add_local + - output_dir: 'Max' + machine_agent: + parameters: + - *dqn_1_max + - *marl_dqn_2_max + - *dqn_3_max + - *marl_dqn_4_max + - output_dir: 'Max Local' + machine_agent: + parameters: + - *dqn_1_max_local + - *marl_dqn_2_max_local + - *dqn_3_max_local + - *marl_dqn_4_max_local + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (PPO)/experiment.yml new file mode 100644 index 0000000..04426eb --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/3 (PPO)/experiment.yml @@ -0,0 +1,261 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_2: &ppo_2 + base_path: *base_model + template: '3/add' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_3: &ppo_3 + base_path: *base_model + template: '3/add_local' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_4: &ppo_4 + base_path: *base_model + template: '3/mean_local' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_5: &ppo_5 + base_path: *base_model + template: '3/max' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_6: &ppo_6 + base_path: *base_model + template: '3/max_local' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/3. Pooling (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + *ppo_1 + - output_dir: 'Add' + machine_agent: + parameters: + *ppo_2 + - output_dir: 'Add Local' + machine_agent: + parameters: + *ppo_3 + - output_dir: 'Mean Local' + machine_agent: + parameters: + *ppo_4 + - output_dir: 'Max' + machine_agent: + parameters: + *ppo_5 + - output_dir: 'Max Local' + machine_agent: + parameters: + *ppo_6 + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (DQN)/experiment.yml new file mode 100644 index 0000000..3001bb7 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (DQN)/experiment.yml @@ -0,0 +1,297 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3: &dqn_3 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_mean: &dqn_1_mean + base_path: *base_model + template: '4/mean_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_mean: &marl_dqn_2_mean + base_path: *marl_model + template: '4/mean_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_mean: &dqn_3_mean + base_path: *base_model + template: '4/mean_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_mean: &marl_dqn_4_mean + base_path: *marl_model + template: '4/mean_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_mean_local: &dqn_1_mean_local + base_path: *base_model + template: '4/mean_local_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_mean_local: &marl_dqn_2_mean_local + base_path: *marl_model + template: '4/mean_local_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_mean_local: &dqn_3_mean_local + base_path: *base_model + template: '4/mean_local_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_mean_local: &marl_dqn_4_mean_local + base_path: *marl_model + template: '4/mean_local_undirected' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/4. Directed & Undirected (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + - output_dir: 'Mean' + machine_agent: + parameters: + - *dqn_1_mean + - *marl_dqn_2_mean + - *dqn_3_mean + - *marl_dqn_4_mean + - output_dir: 'Mean Local Undirected' + machine_agent: + parameters: + - *dqn_1_mean_local + - *marl_dqn_2_mean_local + - *dqn_3_mean_local + - *marl_dqn_4_mean_local + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (PPO)/experiment.yml new file mode 100644 index 0000000..49e2a7c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/4 (PPO)/experiment.yml @@ -0,0 +1,199 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_2: &ppo_2 + base_path: *base_model + template: '4/mean_undirected' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_3: &ppo_3 + base_path: *base_model + template: '4/mean_local_undirected' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/4. Directed & Undirected (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + *ppo_1 + - output_dir: 'Mean Undirected' + machine_agent: + parameters: + *ppo_2 + - output_dir: 'Mead Local Undirected' + machine_agent: + parameters: + *ppo_3 + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (DQN)/experiment.yml new file mode 100644 index 0000000..8b2eb93 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (DQN)/experiment.yml @@ -0,0 +1,297 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + +dqn_3: &dqn_3 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_all: &dqn_1_all + base_path: *base_model + template: '5/all' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_all: &marl_dqn_2_all + base_path: *marl_model + template: '5/all' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_all: &dqn_3_all + base_path: *base_model + template: '5/all' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_all: &marl_dqn_4_all + base_path: *marl_model + template: '5/all' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +dqn_1_flexible: &dqn_1_flexible + base_path: 'configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml' + template: '5/flexible' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2_flexible: &marl_dqn_2_flexible + base_path: 'configuration/experiments/jsp/GRAPH-NN/flexible_marl_machine.yml' + template: '5/flexible' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + + +dqn_3_flexible: &dqn_3_flexible + base_path: 'configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml' + template: '5/flexible' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4_flexible: &marl_dqn_4_flexible + base_path: 'configuration/experiments/jsp/GRAPH-NN/flexible_marl_machine.yml' + template: '5/flexible' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/5. Rule Set (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + - output_dir: 'All' + machine_agent: + parameters: + - *dqn_1_all + - *marl_dqn_2_all + - *dqn_3_all + - *marl_dqn_4_all + - output_dir: 'Flexible' + machine_agent: + parameters: + - *dqn_1_flexible + - *marl_dqn_2_flexible + - *dqn_3_flexible + - *marl_dqn_4_flexible + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (PPO)/experiment.yml new file mode 100644 index 0000000..6bed76a --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/5 (PPO)/experiment.yml @@ -0,0 +1,199 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_2: &ppo_2 + base_path: 'configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml' + template: '5/flexible' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +ppo_3: &ppo_3 + base_path: *base_model + template: '5/all' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/4. Directed & Undirected (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + *ppo_1 + - output_dir: 'Flexible' + machine_agent: + parameters: + *ppo_2 + - output_dir: 'All' + machine_agent: + parameters: + *ppo_3 + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (DQN)/experiment.yml new file mode 100644 index 0000000..62933f4 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (DQN)/experiment.yml @@ -0,0 +1,198 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + +dqn_3: &dqn_3 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/6. Reward (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + + tape: + machine_reward: + - kind: 'global_tardiness' + parameters: + span: 128 + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + - kind: 'global_decomposed_tardiness' + parameters: + span: 128 + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (PPO)/experiment.yml new file mode 100644 index 0000000..40fb27b --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/6 (PPO)/experiment.yml @@ -0,0 +1,167 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/4. Directed & Undirected (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + *ppo_1 + + tape: + machine_reward: + - kind: 'global_tardiness' + parameters: + span: 128 + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + - kind: 'global_decomposed_tardiness' + parameters: + span: 128 + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (DQN)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (DQN)/experiment.yml new file mode 100644 index 0000000..e79cadc --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (DQN)/experiment.yml @@ -0,0 +1,308 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/machine.yml' +marl_model: &marl_model 'configuration/experiments/jsp/GRAPH-NN/marl_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] + +############################################################################################### + +dqn_1: &dqn_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - *default_mods + +marl_dqn_2: &marl_dqn_2 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'util/agent/multi_agent.yml' + - *default_mods + +dqn_3: &dqn_3 + base_path: *base_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +marl_dqn_4: &marl_dqn_4 + base_path: *marl_model + template: 'baseline' + mod_dirs: + - 'configuration/mods/machine/mods' + mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' + - 'util/agent/multi_agent.yml' + - *default_mods +# - 'util/action_selector/sample.yml' + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/6. Reward (DQN)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 4 + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'Baseline' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'complete_machine_compressed' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'machine_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'complete_operation_compressed' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'operation_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'adding_arc_complete' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'adding_arc' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'adding_arc_machine_compressed' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'adding_arc' + + schedule: + kind: 'machine_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'adding_arc_operation_compressed' + machine_agent: + parameters: + - *dqn_1 + - *marl_dqn_2 + - *dqn_3 + - *marl_dqn_4 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'adding_arc' + + schedule: + kind: 'operation_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + + tape: + machine_reward: + *reward + + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (PPO)/experiment.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (PPO)/experiment.yml new file mode 100644 index 0000000..737a359 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/experiments/7 (PPO)/experiment.yml @@ -0,0 +1,260 @@ +# Evaluate the effectivenes of basic DQNs on the JSP environment + +template: &template 'baseline' +base_model: &base_model 'configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml' + +graph: &graph + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + +default_mods: &default_mods [] +############################################################################################### + +ppo_1: &ppo_1 + base_path: *base_model + template: 'baseline' + mod_dirs: + - ['configuration/mods/machine/mods'] + mods: + __factory__: + - [ 'util/optimizer/grad_norm.yml' ] + - [ + '__none__', + 'agent/ppo/p3or.yml' + ] + - [ + '__none__', +# 'util/agent/multi_agent.yml' + ] + +############################################################################################### + +reward: &reward + - kind: 'surrogate_tardiness' + parameters: + winq_factor: 0.2 + span: 40 + critical_level_factor: 128 + +############################################################################################## + +# 8 runs + +long_single_source_run: &long_single_source_run + parameters: + mods: + __inout_factory__: + - [ ['utilization/90.yml'] ] + nested: + parameters: + dispatch: + seed: [ [ 0 ] ] + + +############################################################################################### + + +task: + kind: 'multi_task' + n_workers: 4 + n_threads: 10 + debug: False + store_run_statistics: False + output_dir: 'results/jsp/experiments/2. GRAPH-NN/4. Directed & Undirected (PPO)/model/' + + tasks: + - kind: 'multi_value' + parameters: + base: + name: 'model' + output_dir: '1' + log_stdout: False + + machine_agent: + kind: 'mod' + parameters: + base_path: 'configuration/mods/machine_agent/model.yml' + mods: [ ] + + work_center_agent: + kind: 'static' + parameters: + model: + kind: 'static' + parameters: + rule: 'et' + encoder: + kind: 'plain' + + tape: + machine_reward: + kind: 'surrogate_tardiness' + + work_center_reward: + kind: 'no' + + simulator: + kind: 'td' + parameters: + memory: 64 + emit_trajectory: True + + graph: + *graph + + run: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/run_ppo.yml' + mod_dirs: + - 'configuration/mods/run/mods' + mods: + - 'n_workers/1.yml' + nested: + parameters: + simulations: + - name: '' + kind: 'multi_value' + parameters: + base: + kind: 'mod' + parameters: + base_path: 'configuration/experiments/jsp/GRAPH-NN/simulation.yml' + mod_dirs: + - 'configuration/mods/simulation/mods' + mods: [ ] + values: + values: + __concat__: + - output_dir: 'default' + machine_agent: + parameters: + *ppo_1 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'complete_machine_compressed' + machine_agent: + parameters: + *ppo_1 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'machine_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'complete_operation_compressed' + machine_agent: + parameters: + *ppo_1 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'complete' + + schedule: + kind: 'operation_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'adding_arc_complete' + machine_agent: + parameters: + *ppo_1 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'adding_arc' + + schedule: + kind: 'complete' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'adding_arc_machine_compressed' + machine_agent: + parameters: + *ppo_1 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'adding_arc' + + schedule: + kind: 'machine_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + - output_dir: 'adding_arc_operation_compressed' + machine_agent: + parameters: + *ppo_1 + graph: + transition_model: + kind: 'base' + parameters: + forward: + kind: 'adding_arc' + + schedule: + kind: 'operation_compressed' + + memory: 0 + is_machine_set_in_work_center_connected: False + is_work_center_set_in_shop_floor_connected: False + + tape: + machine_reward: + *reward + + run: + parameters: + nested: + parameters: + simulations: + __0__: + parameters: + values: + __concat__: + - *long_single_source_run diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml new file mode 100644 index 0000000..ce7e522 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_machine.yml @@ -0,0 +1,75 @@ + +kind: 'rl' +parameters: + + model: + kind: 'deep_rule' + parameters: + __rules__: '' + + policy: + kind: 'flexible_action' + parameters: + policy_method: 'independent' + + model: + __model__: '' + + action_selector: + kind: 'phase_selector' + parameters: + default: + kind: 'greedy' + phases: + - phase: + kind: 'warm_up' + parameters: + step: 0 + action_selector: + kind: 'uniform' + - phase: + kind: 'warm_up' + parameters: + step: 1 + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + - phase: + kind: 'training' + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + min_epsilon: 0.025 + decay_factor: 0.995 + decay_steps: 30 + + __encoder__: '' + + trainer: + kind: 'dqn' + parameters: + decay: 1.0 + update_steps: 50 + + memory: + kind: 'replay' + parameters: + size: 1024 + batch_size: 64 + prefetch: 8 + + loss: + kind: 'huber' + + optimizer: + model: + kind: 'adam_w' + parameters: + lr: 0.001 + + return: + kind: 'no' + parameters: + discount_factor: 0.99 diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_marl_machine.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_marl_machine.yml new file mode 100644 index 0000000..c67b0fc --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_marl_machine.yml @@ -0,0 +1,76 @@ + +kind: 'rl' +parameters: + + model: + kind: 'deep_rule' + parameters: + __rules__: '' + + policy: + kind: 'flexible_action' + parameters: + policy_method: 'independent' + + model: + __model__: '' + + action_selector: + kind: 'phase_selector' + parameters: + default: + kind: 'greedy' + phases: + - phase: + kind: 'warm_up' + parameters: + step: 0 + action_selector: + kind: 'uniform' + - phase: + kind: 'warm_up' + parameters: + step: 1 + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + - phase: + kind: 'training' + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + min_epsilon: 0.025 + decay_factor: 0.995 + decay_steps: 5 + + + __encoder__: '' + + trainer: + kind: 'dqn' + parameters: + decay: 1.0 + update_steps: 50 + + memory: + kind: 'replay' + parameters: + size: 1024 + batch_size: 64 + prefetch: 8 + + loss: + kind: 'mse' + + optimizer: + model: + kind: 'rmsprop' + parameters: + lr: 0.001 + + return: + kind: 'no' + parameters: + discount_factor: 0.99 \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_ppo_machine.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_ppo_machine.yml new file mode 100644 index 0000000..fc2f4cc --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/flexible_ppo_machine.yml @@ -0,0 +1,84 @@ + +kind: 'rl' +parameters: + + model: + kind: 'deep_rule' + parameters: + __rules__: '' + + policy: + kind: 'flexible_action' + parameters: + policy_method: 'independent' + + model: + __model__: '' + + action_selector: + kind: 'phase_selector' + parameters: + default: + kind: 'greedy' + phases: + - phase: + kind: 'warm_up' + parameters: + step: 0 + action_selector: + kind: 'uniform' + - phase: + kind: 'warm_up' + parameters: + step: 1 + action_selector: + kind: 'uniform' + - phase: + kind: 'training' + action_selector: + kind: 'sample' + parameters: + is_distribution: False + + + __encoder__: '' + + trainer: + kind: 'ppo' + parameters: + device: 'cpu' + sample_count: 64 + policy_step_ratio: 0.2 + entropy_regularization: 0.01 + rollback_ratio: 0.00 + critic_weight: 0.5 + + epochs: 1 + + loss: + kind: 'cross_entropy' + parameters: + reduction: 'none' + + value_loss: + kind: 'huber' + + optimizer: + model: + kind: 'adam' + parameters: + lr: 0.001 + eps: 0.00001 + + memory: + kind: 'prioritized_replay' + parameters: + size: 8 + batch_size: 8 + prefetch: 1 + + return: + kind: 'gae' + parameters: + discount_factor: 0.99 + lambda: 0.95 \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/machine.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/machine.yml new file mode 100644 index 0000000..691dd2c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/machine.yml @@ -0,0 +1,75 @@ + +kind: 'rl' +parameters: + + model: + kind: 'deep_multi_rule' + parameters: + __rules__: '' + + policy: + kind: 'discrete_action' + parameters: + policy_method: 'independent' + + model: + __model__: '' + + action_selector: + kind: 'phase_selector' + parameters: + default: + kind: 'greedy' + phases: + - phase: + kind: 'warm_up' + parameters: + step: 0 + action_selector: + kind: 'uniform' + - phase: + kind: 'warm_up' + parameters: + step: 1 + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + - phase: + kind: 'training' + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + min_epsilon: 0.025 + decay_factor: 0.995 + decay_steps: 30 + + __encoder__: '' + + trainer: + kind: 'dqn' + parameters: + decay: 1.0 + update_steps: 50 + + memory: + kind: 'replay' + parameters: + size: 1024 + batch_size: 64 + prefetch: 8 + + loss: + kind: 'mse' + + optimizer: + model: + kind: 'adam_w' + parameters: + lr: 0.001 + + return: + kind: 'no' + parameters: + discount_factor: 0.99 diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/marl_machine.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/marl_machine.yml new file mode 100644 index 0000000..d93376a --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/marl_machine.yml @@ -0,0 +1,76 @@ + +kind: 'rl' +parameters: + + model: + kind: 'deep_multi_rule' + parameters: + __rules__: '' + + policy: + kind: 'discrete_action' + parameters: + policy_method: 'independent' + + model: + __model__: '' + + action_selector: + kind: 'phase_selector' + parameters: + default: + kind: 'greedy' + phases: + - phase: + kind: 'warm_up' + parameters: + step: 0 + action_selector: + kind: 'uniform' + - phase: + kind: 'warm_up' + parameters: + step: 1 + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + - phase: + kind: 'training' + action_selector: + kind: 'epsilon_greedy' + parameters: + epsilon: 0.4 + min_epsilon: 0.025 + decay_factor: 0.995 + decay_steps: 5 + + + __encoder__: '' + + trainer: + kind: 'dqn' + parameters: + decay: 1.0 + update_steps: 50 + + memory: + kind: 'replay' + parameters: + size: 1024 + batch_size: 64 + prefetch: 8 + + loss: + kind: 'mse' + + optimizer: + model: + kind: 'rmsprop' + parameters: + lr: 0.001 + + return: + kind: 'no' + parameters: + discount_factor: 0.99 \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml new file mode 100644 index 0000000..a1c69e3 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/ppo_machine.yml @@ -0,0 +1,84 @@ + +kind: 'rl' +parameters: + + model: + kind: 'deep_multi_rule' + parameters: + __rules__: '' + + policy: + kind: 'discrete_action' + parameters: + policy_method: 'independent' + + model: + __model__: '' + + action_selector: + kind: 'phase_selector' + parameters: + default: + kind: 'greedy' + phases: + - phase: + kind: 'warm_up' + parameters: + step: 0 + action_selector: + kind: 'uniform' + - phase: + kind: 'warm_up' + parameters: + step: 1 + action_selector: + kind: 'uniform' + - phase: + kind: 'training' + action_selector: + kind: 'sample' + parameters: + is_distribution: False + + + __encoder__: '' + + trainer: + kind: 'ppo' + parameters: + device: 'cpu' + sample_count: 64 + policy_step_ratio: 0.1 + entropy_regularization: 0.005 + rollback_ratio: 0.00 + critic_weight: 0.5 + + epochs: 1 + + loss: + kind: 'cross_entropy' + parameters: + reduction: 'none' + + value_loss: + kind: 'mse' + + optimizer: + model: + kind: 'adam' + parameters: + lr: 0.0002 + eps: 0.00001 + + memory: + kind: 'prioritized_replay' + parameters: + size: 8 + batch_size: 8 + prefetch: 1 + + return: + kind: 'gae' + parameters: + discount_factor: 0.99 + lambda: 0.95 \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run.yml new file mode 100644 index 0000000..1a1c48b --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run.yml @@ -0,0 +1,23 @@ + +# JSP training based on the DEEP-MARL thesis + +kind: 'plain' +parameters: + timeline: + warmup: + - 5000 + - 5000 + + duration: 200000 + + machine_train_schedule: + pretrain_steps: 10 + train_interval: 20 + max_training_steps: 100000000 + + work_center_train_schedule: + pretrain_steps: 0 + train_interval: 100 + max_training_steps: 0 + + n_workers: 1 diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run_ppo.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run_ppo.yml new file mode 100644 index 0000000..614cff2 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/run_ppo.yml @@ -0,0 +1,20 @@ + +# JSP training based on the DEEP-MARL thesis + +kind: 'plain' +parameters: + timeline: + warmup: [] + duration: 200000 + + machine_train_schedule: + pretrain_steps: 10 + train_interval: 20 + max_training_steps: 100000000 + + work_center_train_schedule: + pretrain_steps: 0 + train_interval: 100 + max_training_steps: 0 + + n_workers: 1 diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/simulation.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/simulation.yml new file mode 100644 index 0000000..62bbbda --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/simulation.yml @@ -0,0 +1,48 @@ + + +kind: 'simulation' +parameters: + configuration: + timespan: 15000 + machines_per_work_center: 1 + work_center_count: 10 + deduce_naive_actions: True + + dispatch: + initial_job_assignment: + kind: 'n_per_machine' + parameters: + n: 1 + + job_sampler: + kind: 'dynamic' + parameters: + processing_times: + kind: 'uniform' + parameters: + uniform: [ 1, 50 ] + noise: [ 0, 10 ] + permutation: + uneveness: 5 + due_time: + kind: 'uniform' + parameters: + uniform: [ 0.5, 2 ] + job_arrival_time_on_machine: + kind: 'expected_utilization' + parameters: + value: 0.0 + + breakdown: + kind: 'dynamic' + parameters: + breakdown_arrival: + kind: 'exponential' + parameters: + mean: 5000 + repair_duration: + kind: 'uniform' + parameters: + uniform: [ 100, 300 ] + + seed: 42 diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/encoder.yml new file mode 100644 index 0000000..c34db07 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/encoder.yml @@ -0,0 +1,9 @@ + +encoder: + kind: 'djsp' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False + include_due_dates: True diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/model.yml new file mode 100644 index 0000000..936f846 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/model.yml @@ -0,0 +1,105 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actor_value: 'actions_value' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/djsp/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/encoder.yml new file mode 100644 index 0000000..745d774 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/encoder.yml @@ -0,0 +1,9 @@ + +encoder: + kind: 'hierarchical' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False + include_due_dates: True diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/model.yml new file mode 100644 index 0000000..936f846 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/model.yml @@ -0,0 +1,105 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actor_value: 'actions_value' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/hierarchical/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/encoder.yml new file mode 100644 index 0000000..b4b68a9 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/encoder.yml @@ -0,0 +1,9 @@ + +encoder: + kind: 'vpt' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False + include_due_dates: True diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/model.yml new file mode 100644 index 0000000..936f846 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/model.yml @@ -0,0 +1,105 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actor_value: 'actions_value' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/1/vpt/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/model.yml new file mode 100644 index 0000000..b49a082 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/model.yml @@ -0,0 +1,102 @@ + +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gcn' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + hidden_channels: 128 + improved: True + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gcn' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + hidden_channels: 128 + improved: True + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' + actor_value: 'actions_value' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gcn/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/model.yml new file mode 100644 index 0000000..5d5d757 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/model.yml @@ -0,0 +1,99 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gin' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 96 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gin' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 96 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' + actor_value: 'actions_value' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/gin/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/model.yml new file mode 100644 index 0000000..4c3b7e1 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/model.yml @@ -0,0 +1,102 @@ + +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'sage' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + hidden_channels: 128 + normalize: True + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'sage' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + hidden_channels: 128 + normalize: True + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' + actor_value: 'actions_value' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/2/template/sage/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/model.yml new file mode 100644 index 0000000..d79543e --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/model.yml @@ -0,0 +1,104 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'add_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'add_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'add_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/model.yml new file mode 100644 index 0000000..a19ec89 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/model.yml @@ -0,0 +1,106 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'add_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'add_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'add_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/add_local/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/model.yml new file mode 100644 index 0000000..398133c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/model.yml @@ -0,0 +1,104 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'max_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'max_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'max_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/model.yml new file mode 100644 index 0000000..8b4b0e8 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/model.yml @@ -0,0 +1,106 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'max_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'max_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'max_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/max_local/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/model.yml new file mode 100644 index 0000000..509963b --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/model.yml @@ -0,0 +1,104 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/model.yml new file mode 100644 index 0000000..ecedd00 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/model.yml @@ -0,0 +1,106 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/3/mean_local/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/encoder.yml new file mode 100644 index 0000000..4e9f36f --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: True + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/model.yml new file mode 100644 index 0000000..ecedd00 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/model.yml @@ -0,0 +1,106 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_local_undirected/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/encoder.yml new file mode 100644 index 0000000..4e9f36f --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: True + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/model.yml new file mode 100644 index 0000000..509963b --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/model.yml @@ -0,0 +1,104 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/4/mean_undirected/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/model.yml new file mode 100644 index 0000000..509963b --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/model.yml @@ -0,0 +1,104 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/rules.yml new file mode 100644 index 0000000..21f159c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/all/rules.yml @@ -0,0 +1,2 @@ + +rules: 'all' \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/model.yml new file mode 100644 index 0000000..5974a12 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/model.yml @@ -0,0 +1,112 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + - kind: 'mask' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 96 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'merge_graph' + parameters: + kind: 'concat' + signature: 'actions_batch, actions_hidden, actions_value -> actions_hidden' + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'actions_hidden -> actions_hidden' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 3 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/rules.yml new file mode 100644 index 0000000..21f159c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/5/flexible/rules.yml @@ -0,0 +1,2 @@ + +rules: 'all' \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/model.yml new file mode 100644 index 0000000..3c091e0 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/model.yml @@ -0,0 +1,129 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 4 + concat: True + hidden_channels: 128 + + - kind: 'mask' + + - kind: 'linear' + parameters: + dim: 128 + activation: 'relu' + signature: 'x -> x' + + - kind: 'attention' + parameters: + pos_encoding: + out_channels: 128 + layer: + d_model: 128 + nhead: 8 + dim_feedforward: 256 + encoder: + num_layers: 2 + signature: 'x, batch -> x' + + - kind: 'output' + parameters: + x: 'x' + batch: 'batch' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 4 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/baseline_with_transformer/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/model.yml new file mode 100644 index 0000000..1fa4f29 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/model.yml @@ -0,0 +1,154 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 4 + concat: True + hidden_channels: 128 + - kind: 'mask' + + - kind: 'linear' + parameters: + dim: 128 + activation: 'relu' + signature: 'x -> x' + + - kind: 'attention' + parameters: + pos_encoding: + out_channels: 128 + layer: + d_model: 128 + nhead: 8 + dim_feedforward: 256 + encoder: + num_layers: 2 + signature: 'x, batch -> x' + + - kind: 'output' + parameters: + x: 'x' + batch: 'batch' + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'merge_graph' + parameters: + kind: 'concat' + signature: 'actions_batch, actions_hidden, actions_value -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 4 + concat: True + hidden_channels: 128 + + - kind: 'mask' + + - kind: 'linear' + parameters: + dim: 128 + activation: 'relu' + signature: 'x -> x' + + - kind: 'attention' + parameters: + pos_encoding: + out_channels: 128 + layer: + d_model: 128 + nhead: 8 + dim_feedforward: 256 + encoder: + num_layers: 2 + signature: 'x, batch -> x' + + - kind: 'output' + parameters: + x: 'x' + batch: 'batch' + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/rules.yml new file mode 100644 index 0000000..21f159c --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/8/flexible_with_transformer/rules.yml @@ -0,0 +1,2 @@ + +rules: 'all' \ No newline at end of file diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/encoder.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/encoder.yml new file mode 100644 index 0000000..ee7a591 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/encoder.yml @@ -0,0 +1,8 @@ + +encoder: + kind: 'custom' + parameters: + is_homogeneous: True + is_undirected: False + is_local: False + append_target_mask: False diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/model.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/model.yml new file mode 100644 index 0000000..b3cc408 --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/model.yml @@ -0,0 +1,105 @@ +layers: + + # Actor + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> actions_hidden, actions_batch' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_value' + + - kind: 'mean_pool' + parameters: + signature: 'actions_hidden, actions_batch -> actions_hidden' + + - kind: 'shared' + parameters: + values: [ 'actions_hidden', 'actions_value' ] + input_args: 'x' + layers: + - kind: 'layer_norm' + parameters: + signature: 'x -> x' + normalized_shape: 128 + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'x -> x' + + - kind: 'linear' + parameters: + dim: 1 + activation: 'none' + signature: 'actions_value -> actions_value' + + # Critic + + - kind: 'graph_model' + parameters: + layers: + - kind: 'gat' + parameters: + in_channels: -1 + out_channels: 128 + num_layers: 2 + v2: True + heads: 2 + concat: True + hidden_channels: 128 + + signature: 'graph -> values_hidden, values_batch' + + - kind: 'mean_pool' + parameters: + signature: 'values_hidden, values_batch -> values_hidden' + + - kind: 'layer_norm' + parameters: + signature: 'values_hidden -> values_hidden' + normalized_shape: 128 + + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + - kind: 'linear' + parameters: + dim: 128 + activation: 'leaky_relu' + signature: 'values_hidden -> values_hidden' + + - kind: 'output' + parameters: + value: 'values_hidden' + actions: 'actions_hidden' + actor_value: 'actions_value' diff --git a/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/rules.yml b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/rules.yml new file mode 100644 index 0000000..5d7b6fd --- /dev/null +++ b/diploma_thesis/configuration/experiments/jsp/GRAPH-NN/templates/baseline/rules.yml @@ -0,0 +1,16 @@ + +rules: + - 'cr' + - 'npt' + - 'ms' + - 'winq' + - 'mod' + - 'spt' + - 'lwkr' + - 'edd' + - 'atc' + - 'lro' + - 'mro' + - 'mwkr' + - 'lwt' + - 'swt' diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/1/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/1/experiment.yml index 2f7df0c..55a67dc 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/1/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/1/experiment.yml @@ -172,7 +172,7 @@ dqn_8: &dqn_8 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' +# - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - *default_mods # - 'util/action_selector/sample.yml' @@ -185,7 +185,7 @@ marl_dqn_8: &marl_dqn_8 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' +# - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods @@ -325,7 +325,7 @@ task: parameters: - *dqn_7 - *marl_dqn_7 - - output_dir: 'All not Noisy' + - output_dir: 'All not 3-step, not Noisy' machine_agent: parameters: - *dqn_8 diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/2/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/2/experiment.yml index 969a5f2..6b95afd 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/2/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/2/experiment.yml @@ -58,7 +58,6 @@ dqn_7: &dqn_7 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - *default_mods @@ -70,7 +69,6 @@ marl_dqn_7: &marl_dqn_7 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods @@ -81,6 +79,9 @@ dqn_7_on_store: &dqn_7_on_store mod_dirs: - 'configuration/mods/machine/mods' mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' - 'util/train_schedule/on_store_32.yml' marl_dqn_7_on_store: &marl_dqn_7_on_store @@ -89,6 +90,9 @@ marl_dqn_7_on_store: &marl_dqn_7_on_store mod_dirs: - 'configuration/mods/machine/mods' mods: + - 'agent/dqn/ddqn.yml' + - 'agent/dqn/prioritized.yml' + - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods - 'util/train_schedule/on_store_32.yml' @@ -209,7 +213,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy' + - output_dir: 'All not Noisy, not 3-step' machine_agent: parameters: - *dqn_7 @@ -236,7 +240,7 @@ task: parameters: - *dqn_1_on_store - *marl_dqn_1_on_store - - output_dir: 'All not Noisy (On Store)' + - output_dir: 'All not Noisy, not 3-step (On Store)' machine_agent: parameters: - *dqn_7_on_store diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/3/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/3/experiment.yml index e844dfc..159adbe 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/3/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/3/experiment.yml @@ -36,7 +36,6 @@ dqn_7: &dqn_7 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - *default_mods @@ -48,7 +47,6 @@ marl_dqn_7: &marl_dqn_7 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods @@ -149,7 +147,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Surrogate Tardiness' + - output_dir: 'All not Noisy, not 3-step/Surrogate Tardiness' machine_agent: parameters: - *dqn_7 @@ -180,7 +178,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Global Decomposed Tardiness' + - output_dir: 'All not Noisy, not 3-step/Global Decomposed Tardiness' machine_agent: parameters: - *dqn_7 @@ -209,7 +207,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Global Tardiness' + - output_dir: 'All not Noisy, not 3-step/Global Tardiness' machine_agent: parameters: - *dqn_7 @@ -238,7 +236,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Global MDPI' + - output_dir: 'All not Noisy, not 3-step/Global MDPI' machine_agent: parameters: - *dqn_7 @@ -268,7 +266,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Makespan' + - output_dir: 'All not Noisy, not 3-step/Makespan' machine_agent: parameters: - *dqn_7 @@ -297,7 +295,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Unary' + - output_dir: 'All not Noisy, not 3-step/Unary' machine_agent: parameters: - *dqn_7 @@ -326,7 +324,7 @@ task: parameters: - *dqn_1 - *marl_dqn_1 - - output_dir: 'All not Noisy/Surrogate Slack' + - output_dir: 'All not Noisy, not 3-step/Surrogate Slack' machine_agent: parameters: - *dqn_7 diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/experiment.yml index 7811ec4..0865284 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/experiment.yml @@ -59,7 +59,7 @@ long_single_source_run: &long_single_source_run task: kind: 'multi_task' - n_workers: 2 + n_workers: 5 n_threads: 10 debug: False store_run_statistics: False @@ -99,7 +99,7 @@ task: simulator: kind: 'td' parameters: - memory: 32 + memory: 64 emit_trajectory: True graph: diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/machine.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/machine.yml index 0321fce..0213228 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/machine.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/4/machine.yml @@ -49,7 +49,7 @@ parameters: device: 'cpu' sample_count: 128 policy_step_ratio: 0.2 - entropy_regularization: 0.001 + entropy_regularization: 0.01 rollback_ratio: 0.00 critic_weight: 0.5 @@ -68,7 +68,7 @@ parameters: kind: 'adam' parameters: eps: 0.00001 - lr: 0.001 + lr: 0.0002 scheduler: kind: 'exponential' @@ -78,7 +78,7 @@ parameters: memory: kind: 'priritized_replay' parameters: - size: 16 + size: 8 batch_size: 8 prefetch: 1 diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/5/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/5/experiment.yml index 60c7277..bc14165 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/5/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/5/experiment.yml @@ -34,7 +34,6 @@ dqn_7: &dqn_7 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - *default_mods @@ -46,7 +45,6 @@ marl_dqn_7: &marl_dqn_7 mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods @@ -81,7 +79,6 @@ dqn_7_preferred: &dqn_7_preferred mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - *default_mods @@ -93,7 +90,6 @@ marl_dqn_7_preferred: &marl_dqn_7_preferred mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods @@ -128,7 +124,6 @@ dqn_7_all: &dqn_7_all mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - *default_mods @@ -140,7 +135,6 @@ marl_dqn_7_all: &marl_dqn_7_all mods: - 'agent/dqn/ddqn.yml' - 'agent/dqn/prioritized.yml' - - 'agent/dqn/steps/3.yml' - 'agent/dqn/dueling.yml' - 'util/agent/multi_agent.yml' - *default_mods diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/6/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/6/experiment.yml index 0b75c6e..c25f32d 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/6/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/6/experiment.yml @@ -4,7 +4,8 @@ template: &template 'baseline' base_model: &base_model 'configuration/experiments/jsp/MARL-DQN/machine.yml' marl_model: &marl_model 'configuration/experiments/jsp/MARL-DQN/marl_machine.yml' -default_mods: &default_mods [] +default_mods: &default_mods + - 'agent/dqn/ddqn.yml' ############################################################################################### @@ -51,7 +52,7 @@ dqn_100: &dqn_100 - 'configuration/mods/machine/mods' mods: - *default_mods - - 'util/return/discount_factor/100.yml' + - 'util/return/discount_factor/99.yml' ############################################################################################# @@ -173,7 +174,7 @@ task: machine_agent: parameters: - *dqn_80 - - output_dir: 'Reward 100' + - output_dir: 'Reward 99' machine_agent: parameters: - *dqn_100 diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/7/experiment.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/7/experiment.yml index 878b879..2426099 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/7/experiment.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/experiment/7/experiment.yml @@ -4,7 +4,8 @@ template: &template 'baseline' base_model: &base_model 'configuration/experiments/jsp/MARL-DQN/machine.yml' marl_model: &marl_model 'configuration/experiments/jsp/MARL-DQN/marl_machine.yml' -default_mods: &default_mods [] +default_mods: &default_mods + - 'agent/dqn/ddqn.yml' ############################################################################################### diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/machine.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/machine.yml index 0dc397d..43264aa 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/machine.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/machine.yml @@ -41,8 +41,8 @@ parameters: kind: 'epsilon_greedy' parameters: epsilon: 0.4 - min_epsilon: 0.01 - decay_factor: 0.99 + min_epsilon: 0.025 + decay_factor: 0.995 decay_steps: 30 diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/marl_machine.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/marl_machine.yml index d3f5e06..ec6cecf 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/marl_machine.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/marl_machine.yml @@ -41,8 +41,8 @@ parameters: kind: 'epsilon_greedy' parameters: epsilon: 0.4 - min_epsilon: 0.01 - decay_factor: 0.99 + min_epsilon: 0.025 + decay_factor: 0.995 decay_steps: 5 diff --git a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/run.yml b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/run.yml index 7e5ddf4..7d0f849 100644 --- a/diploma_thesis/configuration/experiments/jsp/MARL-DQN/run.yml +++ b/diploma_thesis/configuration/experiments/jsp/MARL-DQN/run.yml @@ -8,7 +8,7 @@ parameters: - 5000 - 5000 - duration: 100000 + duration: 200000 machine_train_schedule: pretrain_steps: 10 diff --git a/diploma_thesis/configuration/experiments/jsp/fjsp_tournament.yml b/diploma_thesis/configuration/experiments/jsp/fjsp_tournament.yml index 4035e73..6ccb281 100644 --- a/diploma_thesis/configuration/experiments/jsp/fjsp_tournament.yml +++ b/diploma_thesis/configuration/experiments/jsp/fjsp_tournament.yml @@ -262,7 +262,7 @@ task: uniform: [ 1, 50 ] noise: [ 0, 10 ] permutation: - uneveness: 5 + uneveness: 2 due_time: kind: 'uniform' parameters: @@ -325,5 +325,5 @@ task: - job_arrival_time_on_machine: parameters: value: - - 0.9 - n_jobs: 100 + - 5 + n_jobs: 200 diff --git a/diploma_thesis/configuration/mods/machine/mods/util/return/discount_factor/99.yml b/diploma_thesis/configuration/mods/machine/mods/util/return/discount_factor/99.yml new file mode 100644 index 0000000..04d2699 --- /dev/null +++ b/diploma_thesis/configuration/mods/machine/mods/util/return/discount_factor/99.yml @@ -0,0 +1,8 @@ + + +parameters: + trainer: + parameters: + return: + parameters: + discount_factor: 0.99 diff --git a/diploma_thesis/graph-run.sh b/diploma_thesis/graph-run.sh new file mode 100644 index 0000000..c3bf14c --- /dev/null +++ b/diploma_thesis/graph-run.sh @@ -0,0 +1,27 @@ +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/1 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/1 (PPO)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/2 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/2 (PPO)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/3 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/3 (PPO)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/4 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/4 (PPO)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/5 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/5 (PPO)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/6 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/6 (PPO)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/7 (DQN)/experiment.yml' + +python cli.py --configuration 'configuration/experiments/jsp/GRAPH-NN/experiments/7 (PPO)/experiment.yml' \ No newline at end of file diff --git a/diploma_thesis/simulator/simulator.py b/diploma_thesis/simulator/simulator.py index 9cd2199..9e2e38f 100644 --- a/diploma_thesis/simulator/simulator.py +++ b/diploma_thesis/simulator/simulator.py @@ -44,6 +44,7 @@ class Record: reward: torch.Tensor = torch.tensor([]) moment: torch.Tensor = torch.tensor([]) work_center_id: torch.Tensor = torch.tensor([]) + entropy: torch.Tensor = torch.tensor([]) @tensorclass class MachineRecord(Record): @@ -424,6 +425,11 @@ def __update_cache__(cache, cls, shop_floor, record, decision_moment, work_cente else: decision_moment = torch.tensor(decision_moment) + policy = record.info[Record.ACTION_KEY] + entropy = torch.distributions.Categorical(logits=policy).entropy().mean() + + kwargs['entropy'] = entropy + record = cls( action=record.action, reward=record.reward, diff --git a/diploma_thesis/workflow/simulation.py b/diploma_thesis/workflow/simulation.py index f81502b..754bed1 100644 --- a/diploma_thesis/workflow/simulation.py +++ b/diploma_thesis/workflow/simulation.py @@ -196,7 +196,7 @@ def __to_dataframe__(data): for df in [machine_reward, work_center_reward]: for column in df.columns: - if column in ['moment', 'reward']: + if column in ['moment', 'reward', 'entropy']: df[column] = df[column].astype(float) else: df[column] = df[column].astype(int)