Calibrated dynamic scheduling benchmarks and tools for LLM-based scheduling-agent analysis.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dsbx-0.4.0.tar.gz.
File metadata
- Download URL: dsbx-0.4.0.tar.gz
- Upload date:
- Size: 478.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26e7da44c8b331f0aa9f148f68c3cc3ddf0dc8925d07a2fc6b26ba83b0ba5f84
|
|
| MD5 |
0a556f51d45c74dd7ecfcfff0b3457f0
|
|
| BLAKE2b-256 |
ec85610c9e75b36e1a5681e72cf847e1f13f6af68927ff8883ab084f0a234568
|
File details
Details for the file dsbx-0.4.0-py3-none-any.whl.
File metadata
- Download URL: dsbx-0.4.0-py3-none-any.whl
- Upload date:
- Size: 545.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4639de70016597d764c6eafba48f030dd06b1f0a13ee6879ce44e16c6be95ce
|
|
| MD5 |
9bdc2a95da48eb55b194e90775e6a93b
|
|
| BLAKE2b-256 |
d8e024b2a894725eb942c3066fceae0cddf38fc1b536dd9fc8999b9e6777ea47
|