finds.dev← search

// the find

zcaicaros/L2D

★ 384 · Python · updated Aug 2022

Official implementation of paper "Learning to Dispatch for Job Shop Scheduling via Deep Reinforcement Learning"

Research code for a NeurIPS 2020 paper applying deep reinforcement learning (PPO + GNN) to job shop scheduling. It frames JSSP as a sequential dispatching problem and trains a policy that generalizes across problem sizes. Audience is operations research / combinatorial optimization researchers who want to reproduce or build on the L2D baseline.

Pretrained weights are included for six problem sizes (6x6 through 30x20), so you can run inference without touching the training loop. The GNN architecture in graphcnn_congForSJSSP.py encodes disjunctive graph structure directly, which is the right inductive bias for this problem. Benchmark data (Taillard, DMU) is committed as numpy arrays — no hunting for external datasets to reproduce the paper numbers. Docker support means the pinned Gym/PyTorch environment actually works without fighting your local install.

Abandoned since August 2022 — PyTorch 1.6 and Gym 0.17.3 are ancient; Gym's API breaking changes in 0.26+ mean nothing here will run on a modern stack without patching. The entire codebase is flat Python scripts with global state in Params.py — no packaging, no tests, no way to use this as a library. Only supports classic JSSP; flexible JSSP, dynamic arrivals, or stochastic processing times would require substantial rearchitecting. The gap between 'reproduce paper result' and 'apply to a real scheduling problem' is completely unbridged — there's no documentation or tooling for that path.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →