MPP-ITC2019: A Benchmark Dataset for the Minimal Perturbation Problem in University Timetabling
收藏资源简介:
# MPP-ITC2019: A Benchmark Dataset for the Minimal Perturbation Problem in University Timetabling Companion dataset, code, and run logs for: > B. Alharbi, "MPP-ITC2019: A Benchmark Dataset for the Minimal Perturbation Problem in University Timetabling", submitted to *Applied Sciences* (MDPI), 2026. Author: Basma Alharbi, Department of Computer Science and Artificial Intelligence, University of Jeddah (bmalharbi@uj.edu.sa) ## What is included | Folder | Contents ||---|---|| `data/patches/` | 1054 repair instances, one JSON file each (`<instance>__<scenario>_<severity>_s<seed>.json`). Each file lists the elementary operations ("ops") that turn an official ITC-2019 instance and its published solution into a repair instance. || `data/index.csv` | One row per combination of base instance x scenario x severity x seed (1170 rows; 1054 applicable). Columns: family, number of ops, initial hard violations, number of unassigned/corrupted classes, added students, patch file name. || `data/dataset_stats.json` | Statistics of the six base instances and of every combination (merged, including pu-c8-spr07). || `data/base_instances.csv` | The six base instances, the published solution file used for each, and SHA-256 checksums of the exact files used. || `code/` | Evaluator (`itc.py`), scenario generator (`perturb.py`), six baselines (`solvers.py`), experiment driver (`run_pilot.py`), dataset generation (`gen_dataset.py`, `gen_c8.py`), analysis (`analyze.py`, `make_tables.py`, `figures.py`, `eda_full.py`, `analysis_extra.py`), and `materialize.py` (rebuild full ITC-2019 XML for any patch). || `results/full.jsonl` | All experiment records (one JSON object per run): 33,728 main runs (two time-budget tiers), 3712 "NA" records for non-applicable combinations, 84 lambda-sweep runs, and 108 runs of an unrestricted-neighborhood ablation not reported in the paper. || `results/full_raw.jsonl` | The log exactly as written during the experiments. It contains 23 lines truncated by interrupted writes; every affected run was re-executed on resume, so `full.jsonl` (truncated lines removed) is complete with no duplicate runs. || `notebook/MPP_ITC2019_reproduce.ipynb` | Google Colab notebook that regenerates the dataset and reruns the experiments with checkpointing. | The ITC-2019 base instances and solutions are **not** redistributed here. Download them from https://www.itc2019.org/ and check them against `data/base_instances.csv`. ## Benchmark at a glance * Base instances: lums-sum17, bet-sum18, wbg-fal10, pu-cs-fal07, pu-llr-spr07, pu-c8-spr07.* 13 scenarios: Family A (data changes) A1 instructor unavailability, A2 room closure, A3 equipment failure, A4 capacity reduction, A5 enrollment growth, A6 new class, A7 course cancellation, A8 invalidated assignment, A9 compound event; Family B (solution corruption) B1 double booking, B2 constraint violation, B3 unavailability clash, B4 quality damage.* 3 severities (S1-S3) x 5 seeds; 1054 of 1170 combinations are applicable (754 Family A, 300 Family B).* Perturbation weights (Eq. 3 of the paper): time move 1, room change 1, affected student 0.1, affected instructor group 1, slot distance 0.02. Stability weight lambda = 1.



