DynaSchedBench
DynaSchedBench accompanies the ICML 2026 paper DynaSchedBench: Calibrated Dynamic Scheduling Benchmarks and Observability Paradox in LLM-based Scheduling Agents. It provides calibrated benchmark generation for Dynamic Flexible Job Shop Scheduling, an event-driven simulator, a unified single-agent environment, trajectory-based evaluation, visualization tools, and lightweight scheduling baselines.
Official website: dsbx7.github.io.
Highlights
- Sequential Event-Space Calibrator (SESC) for calibrated dynamic event streams.
- Schedule Stress Index (SSI) for stratifying instance difficulty.
- Event-driven dynamic scheduling simulator with explicit state snapshots.
- Unified single-agent environment for heuristic, RL, and LLM schedulers.
- Reproducible generator for Dynamic Flexible Job Shop Scheduling instances.
- Trajectory metrics, hard-constraint checks, and visual diagnostics.
- Support for evaluating observability levels and reasoning strategies in LLM-based scheduling agents.
- Lightweight
dsbx-*command-line tools for generation, simulation, evaluation, visualization, and agent rollouts. - Research assets kept separate from the PyPI wheel for fast installation.
Installation
Install the public package:
pip install dsbx
Install from source for development:
git clone https://github.com/dsbx7/DynaSchedBench.git
cd DynaSchedBench
python -m pip install -e .[dev,docs]
Quickstart
from pathlib import Path
from dsbx.Agents import SPTAgent
from dsbx.Env import DynaSchedEnv
from dsbx.Eval.Metrics import evaluate_trajectory
from dsbx.Gen import load_input_model
model = load_input_model(Path("docs/examples/minimal_input_model.json"))
env = DynaSchedEnv(model)
agent = SPTAgent()
obs = env.reset()
done = False
while not done:
legal_actions = env.legal_actions()
if not legal_actions:
obs = env.advance_if_idle()
continue
action = agent.act(obs, legal_actions, env)
obs, reward, done, info = env.step(action)
metrics = evaluate_trajectory(env.get_trajectory())
print(metrics)
Command Line
dsbx-gen --help
dsbx-agent --help
dsbx-eval --help
dsbx-vis --help
dsbx-sim --help
A typical workflow is:
dsbx-gen gen -i docs/examples/minimal_input_model.json -o runs/minimal
dsbx-agent run -d runs/minimal -o runs/minimal/spt -a spt
dsbx-eval from-trajectory -t runs/minimal/spt/trajectory_light.jsonl
dsbx-vis gantt -t runs/minimal/spt/trajectory_light.jsonl -o runs/minimal/spt/gantt.pdf
Repository Layout
src/dsbx/ # Release Python package
docs/ # Sphinx and Read the Docs documentation
data/ # Benchmark data and generated instance collections
tests/ # Release and package guard tests
Documentation
The documentation is maintained with Sphinx and Read the Docs. It includes quickstart material, CLI references, benchmark notes, release instructions, and API pages generated from docstrings.
Citation
@inproceedings{dynaschedbench2026,
title = {DynaSchedBench: Calibrated Dynamic Scheduling Benchmarks and Observability Paradox in LLM-based Scheduling Agents},
author = {Shijie Cao and Yuan Yuan and Jing Liu},
booktitle = {Proceedings of the 43rd International Conference on Machine Learning},
year = {2026}
}
License
DynaSchedBench is released under the Apache License 2.0.
Metadata
Release files for dsbx 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dsbx-0.4.0.tar.gz | 478.0 kB | Without provenance | Details for dsbx-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dsbx-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for dsbx-0.4.0-py3-none-any.whl |
Total release size: 1.0 MB
Release files / dsbx-0.4.0.tar.gz
| Download URL | dsbx-0.4.0.tar.gz |
|---|---|
| Size | 478.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
26e7da44c8b331f0aa9f148f68c3cc3ddf0dc8925d07a2fc6b26ba83b0ba5f84
|
|
BLAKE2b-256 checksum How to use checksums |
ec85610c9e75b36e1a5681e72cf847e1f13f6af68927ff8883ab084f0a234568
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / dsbx-0.4.0-py3-none-any.whl
| Download URL | dsbx-0.4.0-py3-none-any.whl |
|---|---|
| Size | 545.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d4639de70016597d764c6eafba48f030dd06b1f0a13ee6879ce44e16c6be95ce
|
|
BLAKE2b-256 checksum How to use checksums |
d8e024b2a894725eb942c3066fceae0cddf38fc1b536dd9fc8999b9e6777ea47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for dsbx 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.