Skip to content

Commit

Permalink
Merge branch 'main' into add-ci-testing
Browse files Browse the repository at this point in the history
  • Loading branch information
Laurent-Van-Miegroet committed Apr 5, 2024
2 parents b5c57bd + a31349c commit affbf08
Show file tree
Hide file tree
Showing 50 changed files with 1,420 additions and 658 deletions.
2 changes: 0 additions & 2 deletions .gitignore

This file was deleted.

3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

15 changes: 0 additions & 15 deletions .idea/Job_Shop_Scheduling_Benchmark_Environments_and_Instances.iml

This file was deleted.

156 changes: 0 additions & 156 deletions .idea/inspectionProfiles/Project_Default.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/inspectionProfiles/profiles_settings.xml

This file was deleted.

4 changes: 0 additions & 4 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ We aim to include a wide range of solution methods capable of solving machine sc



| Solution methods | Job Shop | Flow Show | Flexible Job Shop | SDST | Assembly | Online Arrivals |
| Solution methods | Job Shop (JSP) | Flow Show (FSP) | Flexible Job Shop (FJSP) | FJSP SDST | FAJSP | Online (F)JSP |
| :---: | :---:| :---: | :---: | :---: | :---: | :---: |
| Load Balancing Heuristics |||||| |
| Dispatching Rules |||| ||* |
| Genetic Algorithm |||||| |
| Load Balancing Heuristics |||||| |
| Genetic Algorithm |||||| |
| MILP ||||| | |
| CP-SAT |||| | | |
| FJSP-DRL |||| | | |

*Capable of online arrivals of FJSP problems
*Capable of online arrivals of FJSP problems

🔜 We have a few DRL-based solutions in the pipeline, which will be published here upon completion.

Expand All @@ -37,4 +39,3 @@ Robbert Reijnen, Kjell van Straaten, Zaharah Bukhsh, and Yingqian Zhang (2023) [
primaryClass={cs.AI}
}
```
🔜 Supporting paper and corresponding reference
37 changes: 20 additions & 17 deletions configs/FJSP_DRL.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[env_parameters]
num_jobs = 10 # Number of jobs in the environment
num_mas = 5 # Number of machine agents
batch_size = 20 # Batch size for training
ope_feat_dim = 6 # Dimension of operation features
ma_feat_dim = 3 # Dimension of machine agent features
valid_batch_size = 5 # Batch size for validation
show_mode = "print" # Mode for displaying information (e.g., "print")
num_jobs = 10 # Number of jobs in the environment
num_mas = 5 # Number of machine agents
batch_size = 20 # Batch size for training
ope_feat_dim = 6 # Dimension of operation features
ma_feat_dim = 3 # Dimension of machine agent features
valid_batch_size = 5 # Batch size for validation
device = "cpu" # Device for training ("cpu" or "cuda")

[model_parameters]
in_size_ma = 3 # Input size for machine agent
out_size_ma = 8 # Output size for machine agent
in_size_ope = 6 # Input size for operation
in_size_ope = 6 # Input size for operation
out_size_ope = 8 # Output size for operation
hidden_size_ope = 128 # Hidden size for operation model
num_heads = [1, 1] # Number of attention heads
Expand All @@ -20,6 +20,7 @@ n_latent_critic = 64 # Number of latent units for critic
n_hidden_actor = 3 # Number of hidden layers for actor
n_hidden_critic = 3 # Number of hidden layers for critic
action_dim = 1 # Dimension of action space
device = "cpu" # Device for training ("cpu" or "cuda")

[train_parameters]
lr = 0.0002 # Learning rate
Expand All @@ -33,18 +34,20 @@ entropy_coeff = 0.01 # Coefficient for entropy loss
max_iterations = 1000 # Maximum number of iterations
save_timestep = 20 # Timestep for saving model checkpoints
update_timestep = 1 # Timestep for model updates
viz = true # Visualize the training process --> when True: first launch local server with: python -m visdom.server
viz_name = 'training_visualisation' # Name of visualization env
minibatch_size = 512 # Mini-batch size for training
parallel_iter = 3 # Number of parallel iterations
device = "cpu" # Device for training ("cpu" or "cuda")
parallel_iter = 20 # Number of parallel iterations
viz = false # Visualize the training process --> when true: first launch local server with: python -m visdom.server (and set to: online)
viz_name = 'training_visualisation' # Name of visualization env
validation_folder = "/fjsp/song/dev/1005/" # Folder for validation data
device = "cpu" # Device for training ("cpu" or "cuda")


# Configuration for test parameters
[test_parameters]
problem_instance = "/fjsp/1_Brandimarte/Mk02.fjs" # Problem instance for testing
trained_policy = "./solutions/FJSP_DRL/models/song_10_5.pt" # Load pretrained policy
sample = false # Sampling flag for testing
num_sample = 5 # Number of samples for testing (nr )
device = "cpu" # Device for testing ("cpu" or "cuda")
seed = 1
problem_instance = "/fjsp/1_Brandimarte/Mk02.fjs" # Problem instance for testing
trained_policy = "/solution_methods/FJSP_DRL/save/train_20240314_192906/song_10_5.pt" # Load pretrained policy
sample = false # Sampling flag for testing
num_sample = 1 # Number of samples for testing (nr )
plotting = true # plot instance representation and ganttchart
device = "cpu" # Device for testing ("cpu" or "cuda")
4 changes: 2 additions & 2 deletions configs/milp.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[instance]
problem_instance = "/fjsp/2_Hurink/edata/abz5.fjs" # configure problem instance to be scheduled
problem_instance = "/jsp/adams/abz5" # configure problem instance to be scheduled

[solver]
time_limit = 3600 # time limit for the gurobi solver, in seconds
time_limit = 64800 # time limit for the gurobi solver, in seconds
5 changes: 5 additions & 0 deletions configs/or_tools.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[instance]
problem_instance = "/fjsp/2_Hurink/edata/abz5.fjs" # configure problem instance to be scheduled

[solver]
time_limit = 3600 # time limit for the OR-tools CP-SAT solver, in seconds
4 changes: 2 additions & 2 deletions data_parsers/parser_fajsp.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from pathlib import Path
import re
from pathlib import Path

from scheduling_environment.machine import Machine
from scheduling_environment.job import Job
from scheduling_environment.machine import Machine
from scheduling_environment.operation import Operation


Expand Down
4 changes: 2 additions & 2 deletions data_parsers/parser_fjsp.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from pathlib import Path
import re
from pathlib import Path

from scheduling_environment.machine import Machine
from scheduling_environment.job import Job
from scheduling_environment.machine import Machine
from scheduling_environment.operation import Operation


Expand Down
4 changes: 2 additions & 2 deletions data_parsers/parser_fjsp_sdst.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from pathlib import Path

from scheduling_environment.operation import Operation
from scheduling_environment.machine import Machine
from scheduling_environment.job import Job
from scheduling_environment.machine import Machine
from scheduling_environment.operation import Operation


def parse(JobShop, instance, from_absolute_path=False):
Expand Down
Loading

0 comments on commit affbf08

Please sign in to comment.