An efficient deep reinforcement learning environment for flexible job-shop scheduling

Xinquan Wu, Xuefeng Yan, Mingqiang Wei, Donghai Guan
9/7/2025
cs.LGcs.AI

No official code found. Best implementation: Lei-Kun/End-to-end-DRL-for-FJSP (397 stars, MIT, last commit 2023-03-27).

Abstract

The Flexible Job-shop Scheduling Problem (FJSP) is a classical combinatorial optimization problem that has a wide-range of applications in the real world. In order to generate fast and accurate scheduling solutions for FJSP, various deep reinforcement learning (DRL) scheduling methods have been developed. However, these methods are mainly focused on the design of DRL scheduling Agent, overlooking the modeling of DRL environment. This paper presents a simple chronological DRL environment for FJSP based on discrete event simulation and an end-to-end DRL scheduling model is proposed based on the proximal policy optimization (PPO). Furthermore, a short novel state representation of FJSP is proposed based on two state variables in the scheduling environment and a novel comprehensible reward function is designed based on the scheduling area of machines. Experimental results on public benchmark instances show that the performance of simple priority dispatching rules (PDR) is improved in our scheduling environment and our DRL scheduling model obtains competing performance compared with OR-Tools, meta-heuristic, DRL and PDR scheduling methods.

View on arXivView PDF

Code Implementations(1)

MIT

This is the official code of the publised paper 'A Multi-action Deep Reinforcement Learning Framework for Flexible Job-shop Scheduling Problem'

39783PythonSep 1, 20223 years agoMIT
disjunctive-graph-for-fjspfjspgraph-neural-networksreinforcement-learning

Similar Papers

Cite this paper

@article{wu2025efficient,
  title  = {An efficient deep reinforcement learning environment for flexible job-shop scheduling},
  author = {Xinquan Wu and Xuefeng Yan and Mingqiang Wei and Donghai Guan},
  year   = {2025},
  eprint = {2509.07019},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2509.07019v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2509.07019.svg)](https://codeofpaper.com/paper/2509.07019)

Discussion