π§© Constraint Solving POTD:Job-Shop Scheduling β 2026-04-02 #24106
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Constraint Solving β Problem of the Day. A newer discussion is available at Discussion #24299. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Today's problem comes from the Scheduling category. Previous topics: Graph Coloring, Bin Packing, Nurse Rostering, TSP.
Problem Statement
You have
njobs andmmachines. Each job consists of a sequence of operations that must be processed in a fixed order, each on a specific machine. No two operations can run on the same machine at the same time, and a job's operations must execute one after another (no overlap within a job).Goal: Find a start time for every operation to minimize the makespan β the time at which the last operation finishes.
Small concrete instance (3 jobs Γ 3 machines)
Input: For each job
jand operation indexk: the machineΞΌ(j,k)and processing timep(j,k).Output: Start times
s(j,k) β₯ 0minimisingCmax = max_{j,k} (s(j,k) + p(j,k)).Why It Matters
Modeling Approaches
Approach 1 β Constraint Programming (CP)
Decision variables
s(j,k) β [0, UB]β start time of operation(j,k), whereUBis a loose upper bound (e.g., sum of all durations).Constraints
with
M = UB(a sufficiently large constant).Trade-offs: Standard MIP solvers (Gurobi, CPLEX) apply LP relaxations and branch-and-bound automatically. The big-M weakens LP bounds; tightening with time-indexed or positional formulations improves this at the cost of more variables.
Example Model (OR-Tools CP-SAT, Python)
Key Techniques
1. Edge-Finding Propagation
Given a set of tasks on a machine, Edge-Finding deduces that if a task
tcannot fit between any subsetSof other tasks and the end of the schedule, thentmust be scheduled after all ofS. This tightens lower bounds on start times far beyond simple pairwise reasoning.2. Symmetry Breaking & Dominance Rules
When two operations on the same machine have no ordering constraint between them, we can fix their relative order without loss of generality (e.g., shorter first when durations are equal). More generally, active schedules β where no operation can be started earlier without delaying another β always contain an optimal solution, reducing the search space dramatically.
3. Branch-and-Bound with Shifting Bottleneck Decomposition
The Shifting Bottleneck heuristic solves a single-machine subproblem (1|r_j|L_max) for each machine in turn, treating already-scheduled machines as release-time constraints. This produces very good primal solutions quickly and is used as an upper-bound oracle inside B&B.
Challenge Corner
Bonus: For the 3-job Γ 3-machine instance above, what is the optimal makespan? Can you prove it via a lower-bounding argument without running a solver?
References
Beta Was this translation helpful? Give feedback.
All reactions