Skip to content

dz5430/SetDispatch-Identical-PMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SetDispatch-Identical-PMS

Code and result files for the SetDispatch identical parallel-machine scheduling experiments.

The current version focuses on total tardiness minimization on identical machines. SetDispatch is trained as one sequential ML dispatching policy: at each decision time, it scores the eligible jobs for the earliest-available machine and dispatches the highest-scoring job.

Contents

  • src/: source code for training, evaluation, baselines, and result reconstruction.
  • src/train_dynamic.py: trains the dynamic dispatching policy.
  • src/make_dispatch_labels.py: builds MIP-projected non-delay dispatching labels.
  • src/evaluate_dynamic.py: runs the trained policy on test instances.
  • src/pms_heuristic.py: release-gated MDD, ATC, and NDPRTT baselines.
  • src/reconstruct_results.py: rebuilds the summary tables from raw instance/output CSVs.
  • src/plot_gap_summary.py: recreates the Figure 1 gap plot from the summary CSV.
  • scripts/submit_job_train_gpu_dynamic.sh: cluster training script.
  • results/: current summary spreadsheets and plot inputs.

Large instance files, label pickles, and model checkpoints are not committed. Download them from the Google Drive Link, then put them in data/ and models/.

Setup

pip install -r requirements.txt

On the cluster, use the same Python/PyTorch environment used for the training runs.

Data layout

Place raw test CSVs and SetDispatch decoded CSVs in data/.

Place per-instance heuristic outputs in data/Heuristic_test/ if you want to inspect the stored MDD, ATC, and NDPRTT schedules directly. The reconstruction script can also recompute these baselines from the raw test CSVs.

Place trained model checkpoints in models/.

The expected filenames are listed in docs/google_drive_manifest.md.

Train

The training script can auto-build dispatch labels if the label pickle is missing.

The environment variable names still use the legacy DGSF_ prefix so older cluster run files remain compatible.

DGSF_TRAIN_CSV=data/Dev3_instances_2m_60_theta_mid_4Itau_train_10k_new_dev2.csv \
DGSF_LABELS_PKL=data/Dev3_2m_60_theta_mid_4Itau_10k_dispatch_labels.pkl \
DGSF_SAVE_PATH=models/Dev3_2m_60_theta_mid_4Itau_10k_dev9dyn_identical.pth \
python src/train_dynamic.py

Useful overrides:

  • DGSF_EPOCHS
  • DGSF_BATCH_SIZE
  • DGSF_LR
  • DGSF_LAM_RANK
  • DGSF_NUM_WORKERS
  • DGSF_BUILD_LABELS

Evaluate

DGSF_TEST_CSV=data/Dev3_instances_2m_60_theta_mid_4Itau_test_new_dev2.csv \
DGSF_MODEL_PATH=models/Dev3_2m_60_theta_mid_4Itau_10k_dev9dyn_identical.pth \
DGSF_OUTPUT_CSV=data/Dev3_instances_2m_60_theta_mid_4Itau_test_new_dev2_dyn_m9.csv \
python src/evaluate_dynamic.py

Rebuild results

DGSF_DATA_DIR=data DGSF_RESULTS_DIR=results python src/reconstruct_results.py
python src/plot_gap_summary.py

The paper gap is:

gap (%) = 100 * (TT_policy - TT_opt) / TT_opt

All benchmark instances used in the reported gap calculations have TT_opt > 0.

Notes

  • Figure 1 uses 60-job trained SetDispatch models for the reported cells.
  • MDD, ATC, and NDPRTT are recomputed with the same release-gated non-delay dispatching logic.
  • Full Excel sheets and large model/data files are stored at the Google Drive Link.

About

SetDispatch identical PMS experiments

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors