CPM is still exact for what it computes, and its honesty line already excludes resource limits. The solver's contribution is the structure CPM cannot represent, and the chapter's claims stop at one pinned instance.

highlighted = computed this step

CPM is still exact

Nothing here replaces the earlier chapters: the forward and backward passes are still exact for what they compute on the earlier pinned precedence-only DAG, a separate instance from this chapter's job-shop schedule. Why: the book's own honesty line says those values assume no resource limits, and this chapter is exactly the case that line excludes.

exact CPM, no resource limits\text{exact CPM, no resource limits}
Where CPM stopsCPM is exact on the pinned DAG; the solver adds resource contention across jobs.one certified schedule, makespan 11M1M2M3J1 T1[2,5]J1 T2[5,7]J1 T3[7,9]J2 T1[0,2]J2 T2[2,3]J2 T3[7,11]J3 T1[0,4]J3 T2[4,7]makespan 11011time

What the solver adds

The solver's contribution is resource contention across jobs: which job gets a machine when both want it. Why: the CPM model does not represent machines at all, so no cleverness with float or slack could express the constraint that a machine runs one task at a time.

machines are new model structure\text{machines are new model structure}
Where CPM stopsCPM is exact on the pinned DAG; the solver adds resource contention across jobs.one certified schedule, makespan 11M1M2M3J1 T1[2,5]J1 T2[5,7]J1 T3[7,9]J2 T1[0,2]J2 T2[2,3]J2 T3[7,11]J3 T1[0,4]J3 T2[4,7]makespan 11011time

Transfer boundary

The honest boundary: this chapter certifies one pinned instance with 3 jobs — one decoded schedule, re-verified against every constraint class, with the solver's bound meeting its makespan — and says nothing about solver runtimes or larger job-shop instances. Why: a certified makespan on a small instance is exact knowledge about that instance, not a performance promise about a different one. Pixel positions are rounded for layout; every number shown is exact.

exact here; no runtime promise elsewhere\text{exact here; no runtime promise elsewhere}
Where CPM stopsCPM is exact on the pinned DAG; the solver adds resource contention across jobs.one certified schedule, makespan 11M1M2M3J1 T1[2,5]J1 T2[5,7]J1 T3[7,9]J2 T1[0,2]J2 T2[2,3]J2 T3[7,11]J3 T1[0,4]J3 T2[4,7]makespan 11011time