Supplementary Dataset and Experimental Artifacts for Counterfactual Recourse Explanation for Sustainable Job-Shop Scheduling with Discrete Speed Scaling
This repository accompanies the paper “Counterfactual Recourse Explanation for Sustainable Job Shop Scheduling with Discrete Speed Scaling” and provides: a zipped data package with instances, baseline schedules, and recourse outputs (LCC + rescheduling); and a consolidated spreadsheet with Baseline + LCC + Rescheduling results. 📝 Erratum / Updated Table 1 During the preparation of this supplementary release, we detected an issue in the script used to generate Table 1 in an earlier draft of the paper. Specifically, the table aggregation incorrectly treated LCC as if it included Phase 2 fields, while in our pipeline, LCC corresponds to Phase 1 only (feasibility + minimal intervention cardinality). We therefore provide below a corrected Table 1, computed from the regenerated artifacts (using LCC = Phase 1 outputs and direct re-optimization = rescheduling outputs), reporting means over solve rate. This updated table is included here to support the ongoing paper revision and facilitate reviewer verification. Instance Method kstar EC MK SolveRate 5×5 re-optimization 17.97 1045.55 374.80 98.71% 5×5 LCC 2.57 1459.67 290.99 100.00% 10×10 re-optimization 48.34 5430.18 706.32 98.26% 10×10 LCC 9.09 6255.49 533.01 100.00% 15×15 re-optimization 62.70 14240.77 974.82 99.55% 15×15 LCC 20.64 14843.51 750.11 100.00% 🧩 Problem setting (what the data represents) We consider an energy-aware Job Shop Scheduling Problem (JSP) with discrete speed scaling: Each instance has J jobs and M machines, with J×M operations. Each operation can be executed at one of SPEED discrete speed modes, which affects: processing time (duration) energy consumption Given a baseline schedule with: baseline makespan MK0 baseline energy EC0 We define a recourse query using two parameters: x_pct: required energy saving (e.g., x_pct=10 means “save 10% energy”) y_pct: allowed makespan increase (e.g., y_pct=5 means “makespan can increase up to 5%”) A recourse solution aims to change as few decisions as possible (sparse intervention, denoted by k* / kstar) while satisfying: Energy constraint:Energy ≤ (1 − x_pct/100) · EC0 Makespan constraint:Makespan ≤ (1 + y_pct/100) · MK0 🔁 Pipeline in this release (LCC + Rescheduling) LCC: find a feasible counterfactual and the minimum intervention cardinality kstar Rescheduling (paired with LCC feasible outputs): repair/ensure feasibility under the new speeds when needed 📦 ZIP package: IGJSPInstances.zip 📁 High-level layout Inside the zip, everything lives under IGJSPInstances/ and is organized by distribution family + distribution seed: IGJSPInstances/ exponential_0/ exponential_1/ exponential_2/ normal_0/ normal_1/ normal_2/ uniform_0/ uniform_1/ uniform_2/ solutions.pkl Each <dist>_<seed>/ directory contains: <dist>_<seed>/ instances/ solutions/ recourse/ 🗂️ Instances (instances/) Example filenames: instances/ 5_5-0-3_0.dzn 10_10-0-3_7.dzn 15_15-0-3_3.dzn What they contain (MiniZinc .dzn): J, M, SPEED time[J, M, SPEED] and energy[J, M, SPEED] routing/precedence structures needed by the JSP model Note: in the provided instances, SPEED=3 (three discrete modes). The -0-3 token is a generator/config label present in filenames. 🧾 Baseline solutions (solutions/) Organized by size folder (e.g., 5-5, 10-10, …): solutions/ 5-5/ 5_5_exponential_0_0_cp-sat.json 10-10/ 10_10_exponential_0_7_cp-sat.json These JSON files store the baseline schedule (e.g., start times and baseline speed choices, depending on the exporter).The spreadsheet provides the computed MK0 and EC0 used throughout the experiments. 🔍 Recourse outputs (LCC + Rescheduling) Recourse files are grouped by size folder (recourse is provided for square sizes only): recourse/ phase1/ 5-5/ 10-10/ 15-15/ Typical naming pattern: LCC output (legacy token phase1): J_M_<dist>_<distseed>_<instanceid>_x<X>_y<Y>_phase1_cp-sat.json Rescheduling output (paired with LCC feasible cases): J_M_<dist>_<distseed>_<instanceid>_x<X>_y<Y>_phase1_cp-sat_resch.json Key fields you will commonly see in recourse JSONs: status (e.g., OPTIMAL_SOLUTION, NO_FEASIBLE, …) kstar (minimum intervention cardinality) changes (actual number of changes in the returned solution; typically equals kstar when feasible) solution.delta (binary matrix marking which operations were changed vs. baseline) time_s (solver/runtime in seconds) 📊 What’s inside (coverage at a glance) From the provided artifacts: ZIP package 810 instances (.dzn) across 9 dist-seed folders and 9 size configurations 810 baseline solutions (*_cp-sat.json) Recourse (LCC + rescheduling) is provided for sizes: 5×5, 10×10, 15×15 10 instances each across all 9 dist-seed folders → 270 recourse-enabled base instances Recourse queries x_pct ∈ {2, 5, 10, 15, 20} y_pct ∈ {2, 5, 10, 15, 20} 25 queries per base instance → 6,750 total rows in the spreadsheet Feasibility (from the spreadsheet) LCC feasible: 3,759 / 6,750 ≈ 55.7% For LCC-feasible cases, Rescheduling is available (same count: 3,759) 📌 Representative explanation certificates To facilitate reviewer verification, we include a small set of representative explanation certificates extracted from the regenerated resource artifacts. Each table reports one example per intervention cardinality k* for a given instance size (5×5, 10×10, 15×15). Interpretation of the columns Query (x, y): recourse request where x is the required energy saving (%) and y is the allowed makespan increase (%) with respect to the baseline (EC0, MK0). k*: minimum intervention cardinality returned by LCC (Phase 1), i.e., the smallest number of operations whose discrete speed mode must be changed to satisfy the query. Modified operations (j, t): s0 → s*: the set of operation-level interventions, indicating for each job j and operation index t the baseline speed s0 and the counterfactual speed s*. Δ EC (%) and Δ MK (%): relative change in energy and makespan with respect to baseline (negative values indicate improvements vs. baseline). Top-ranked (j, t): the operation ranked as most influential under the certificate scoring used in the paper (energy contribution/impact). Cum. energy (top-3): cumulative share of energy explained by the top-3 ranked operations (higher values indicate more concentrated explanations). Instance Query (x,y) k* Modified operations (j,t): s0 → s* Δ EC (%) Δ MK (%) Top-ranked (j,t) Cum. energy (top-3) 5×5 (5,2) 1 (3,2):1→3 6,3 1,5 (3,2) 100% 5×5 (10,2) 2 (1,5):1→3;(2,2):1→3 11,0 -6,1 (1,5) 100% 5×5 (15,2) 3 (3,3):1→2;(1,1):2→3;(5,5):1→3 18,1 1,9 (3,3) 100% 5×5 (20,2) 4 (1,4):1→3;(5,2):1→3;(4,4):1→2;(1,5):1→3 21,3 -3,1 (1,4) 76% 5×5 (20,15) 5 (2,2):1→3;(5,1):1→3;(4,4):1→3;(2,5):1→3;… 20,3 14,9 (2,2) 64% 5×5 (20,2) 6 (2,3):1→3;(3,1):1→3;(1,4):1→3;(5,2):2→3;… 20,6 1,2 (2,3) 66% Instance Query (x,y) k* Modified operations (j,t): s0 → s* Δ EC (%) Δ MK (%) Top-ranked (j,t) Cum. energy (top-3) 10×10 (2,2) 2 (9,6):1→3;(6,10):1→3 2,7 0,2 (9,6) 100% 10×10 (5,2) 4 (9,9):1→3;(10,7):1→3;(4,1):1→3;(3,2):1→3 5,7 -14,4 (9,9) 80% 10×10 (5,2) 5 (1,6):1→3;(9,5):1→3;(10,4):1→3;(10,1):2→3;… 6,2 2,0 (1,6) 64% 10×10 (10,2) 8 (1,3):1→3;(9,2):1→3;(4,2):1→3;(8,2):1→3;… 10,2 1,9 (1,3) 40% 10×10 (10,2) 9 (10,8):1→3;(10,7):1→3;(9,9):1→3;(9,2):1→3;… 11,0 2,0 (10,8) 36% 10×10 (10,2) 10 (8,10):1→3;(8,6):1→3;(10,4):1→3;(7,2):1→3;… 10,2 1,9 (8,10) 34% 10×10 (15,2) 12 (1,4):1→3;(4,4):1→3;(7,3):1→3;(1,5):1→3;… 15,1 1,7 (1,4) 27% 10×10 (15,2) 13 (6,3):1→3;(8,5):1→3;(1,9):1→3;(5,10):1→3;… 16,0 -11,3 (6,3) 26% 10×10 (15,2) 14 (7,8):1→3;(9,6):1→3;(1,10):1→3;(8,10):1→3;… 15,6 1,9 (7,8) 24% 10×10 (15,20) 15 (8,6):1→3;(10,4):1→3;(5,4):1→3;(8,10):1→3;… 15,4 19,9 (8,10) 23% 10×10 (20,2) 16 (7,8):1→3;(3,8):1→3;(9,8):1→3;(8,7):1→3;… 20,4 1,9 (7,8) 21% 10×10 (20,2) 17 (6,2):1→3;(2,8):1→3;(2,9):1→3;(1,1):1→3;… 20,4 2,0 (6,2) 21% 10×10 (20,2) 18 (1,3):1→3;(9,2):1→3;(4,2):1→3;(8,2):1→3;… 20,7 1,8 (1,3) 20% 10×10 (20,15) 19 (7,4):1→3;(10,7):1→3;(5,5):1→3;(1,4):1→3;… 20,2 14,9 (7,4) 19% 10×10 (20,15) 20 (8,10):1→3;(8,6):1→3;(10,4):1→3;(5,4):1→3;… 20,0 14,6 (8,10) 17% Instance Query (x,y) k* Modified operations (j,t): s0 → s* Δ EC (%) Δ MK (%) Top-ranked (j,t) Cum. energy (top-3) 15×15 (2,2) 4 (12,10):1→3;(14,14):1→3;(11,1):1→3;(13,11):1→3 2,3 -25,3 (12,10) 79% 15×15 (5,2) 9 (11,4):1→3;(14,8):1→3;(15,5):1→3;(12,2):1→3;… 5,1 -2,8 (11,4) 35% 15×15 (5,2) 10 (15,5):2→3;(15,14):1→3;(15,4):1→3;(15,7):1→3;… 5,3 2,0 (15,5) 31% 15×15 (10,2) 18 (13,4):1→3;(1,13):1→3;(7,8):1→3;(1,11):1→3;… 10,1 2,0 (13,4) 18% 15×15 (10,2) 19 (13,12):1→3;(15,6):1→3;(15,12):1→3;(8,13):1→3;… 10,3 2,0 (13,12) 17% 15×15 (10,2) 20 (9,3):1→3;(6,11):1→3;(12,14):1→3;(8,1):1→3;… 10,4 0,8 (9,3) 16% 15×15 (10,2) 21 (7,6):1→3;(5,11):1→3;(11,1):1→3;(11,12):1→3;… 10,4 1,9 (7,6) 15% 15×15 (15,2) 28 (13,4):1→3;(1,13):1→3;(7,8):1→3;(1,11):1→3;… 15,0 2,0 (13,4) 12% 15×15 (15,2) 29 (11,14):1→3;(6,11):1→3;(14,6):1→3;(11,5):1→3;… 15,2 1,9 (11,14) 12% 15×15 (15,2) 30 (7,8):1→3;(12,13):1→3;(14,10):1→3;(7,11):1→3;… 15,0 -9,9 (7,8) 11% 15×15 (15,2) 31 (10,12):1→3;(6,9):1→3;(3,6):1→3;(7,5):1→3;… 15,3 2,0 (10,12) 11% 15×15 (15,2) 32 (2,11):1→3;(4,10):1→3;(7,6):1→3;(5,11):1→3;… 15,2 1,9 (2,11) 11% 15×15 (20,2) 39 (15,11):1→3;(13,11):1→3;(5,1):1→3;(12,13):1→3;… 20,1 1,9 (15,11) 9% 15×15 (20,2) 40 (11,14):1→3;(6,11):1→3;(14,6):1→3;(11,5):1→3;… 20,2 1,8 (11,14) 9% 15×15 (20,2) 41 (3,13):1→3;(2,14):1→3;(7,5):1→3;(8,3):1→3;… 20,4 2,0 (3,13) 9% 15×15 (20,2) 42 (1,6):1→3;(6,12):1→3;(1,11):1→3;(13,15):1→3;… 20,4 1,8 (1,6) 9% 15×15 (20,2) 43 (10,12):1→3;(6,9):1→3;(3,6):1→3;(7,5):1→3;… 20,3 2,0 (10,12) 8% 15×15 (20,2) 44 (2,
Authors
- Miguel Á. Salido
- Christian Pérez
Institutions
- Universitat Politècnica de València (ES)
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2026-01-26
- DOI
- https://doi.org/10.5281/zenodo.18380961
- Primary Topic
- Scheduling and Optimization Algorithms
- Type
- article
- Field-Weighted Citation Impact
- 0.00