This repository is the official PyTorch implementation of the paper "Optimizing Fuzzy Job Shop Scheduling Using Graph Neural Networks and Deep Reinforcement Learning"
This project implements the method proposed in the paper "Optimizing Fuzzy Job Shop Scheduling Using Graph Neural Networks and Deep Reinforcement Learning". The method demonstrates good performance in scheduling efficiency compared to all Priority Dispatching Rules (PDRs), with commendable solving time and good generalization across various instance scales in FJSSP.
-
Clone the repository:
git clone https://github.com/yourusername/your-repo-name.git cd your-repo-name
-
Install the required dependencies:
pip install -r requirements.txt
To run the code, follow these steps:
-
Set the experiment scale and generate random evaluation instances:
Configure the parameters in
params.py
to set the scale of your experiment and generate random evaluation instances. -
Use a pre-trained model or retrain the scheduling model:
- To use a pre-trained model, ensure the model files are placed in the appropriate directory specified in
params.py
. - To retrain the model, follow the instructions in the Experiments section.
- To use a pre-trained model, ensure the model files are placed in the appropriate directory specified in
-
Execute the solving process:
Once the model is ready, execute the main solving script:
python eval.py
To reproduce the experiments from the paper, follow these steps:
- Ensure your environment is set up as described in the Installation section.
- Configure the parameters in
params.py
. - Run the experiment scripts by:
or:
python train_ppo.py --config
bash scripts/train.bash
The results of the experiments can be found in the results
directory. Each experiment script will generate output files containing the performance metrics and visualizations.
This project is licensed under the MIT License. See the LICENSE file for more details.