Skip to main content

Calibrated dynamic scheduling benchmarks and tools for LLM-based scheduling-agent analysis.

Project description

DynaSchedBench

PyPI latest Python Docs Website License

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsbx-0.4.0.tar.gz (478.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsbx-0.4.0-py3-none-any.whl (545.5 kB view details)

Uploaded Python 3

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

Hashes for dsbx-0.4.0.tar.gz
Algorithm Hash digest
SHA256 26e7da44c8b331f0aa9f148f68c3cc3ddf0dc8925d07a2fc6b26ba83b0ba5f84
MD5 0a556f51d45c74dd7ecfcfff0b3457f0
BLAKE2b-256 ec85610c9e75b36e1a5681e72cf847e1f13f6af68927ff8883ab084f0a234568

See more details on using hashes here.

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

Hashes for dsbx-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4639de70016597d764c6eafba48f030dd06b1f0a13ee6879ce44e16c6be95ce
MD5 9bdc2a95da48eb55b194e90775e6a93b
BLAKE2b-256 d8e024b2a894725eb942c3066fceae0cddf38fc1b536dd9fc8999b9e6777ea47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page