alphaFeedback

WorksMathematics

A Polynomial-Time Algorithm for Three-Machine Unit-Job Scheduling

AI contributions
  • unreleased internal OpenAI model
View details
Ancillary data
Formal proof, 4 proof or workflow links
View

Abstract

We give a uniform deterministic polynomial-time algorithm for scheduling unit-length jobs with arbitrary precedence constraints on three identical parallel machines. The algorithm constructs a schedule of minimum makespan and decides exactly whether all jobs can finish by a specified deadline. The proof reorganizes feasible schedules into intervals whose job sets have descriptions of bounded size. A dynamic program searches a family containing polynomially many such descriptions. Global boundary conditions and simplification of inherited information keep the descriptions bounded throughout the decomposition.

Introduction

A precedence-constrained schedule must respect two kinds of restrictions: jobs related by precedence must run in order, while unrelated jobs compete for the available machines. Even when every job takes one unit of time, the interaction between these restrictions is subtle. The two-processor case was treated by Fujii, Kasami, and Ninomiya [4, 5], and Coffman and Graham gave an optimal list-scheduling algorithm [1]. Allowing the number of machines to be part of the input yields an NP-complete problem [13] Theorem 1. The fixed-three decision problem appears as OPEN8 in Appendix A13 of Garey and Johnson [7] and has remained a central complexity question in scheduling [12].

We consider the following precise decision problem. The input is an explicitly listed directed acyclic graph G=(V,E)G = (V, E), with V={1,…,n}V = \{1, \ldots, n\}, and an integer TT satisfying 1≤T≤n1 \le T \le n. Every vertex is a nonpreemptive job of processing time one. The question is whether there is a function

τ:V⟶{1,…,T}\tau: V \longrightarrow\{1, \ldots, T\}

such that each value is taken at most three times and τ(u)<τ(v)\tau(u) < \tau(v) for every (u,v)∈E(u,v) \in E. There are no release dates, communication delays, eligibility restrictions, or additional resources. Slot tt means execution during [t−1,t)[t - 1, t), and the makespan is the last completion time. Allowing nonnegative real start times would not improve the optimum: fix the machine assignment and within-machine order of a feasible schedule. The graph augmented by machine-order arcs is acyclic, as witnessed by the original schedule. In a topological order of this graph, set each start time to the maximum of zero and its predecessors’ completion times. Induction gives integer start times, and no completion time increases. The standard notation for the problem is P3∣prec,pj=1∣Cmax⁡\mathrm{P3} \mid\mathrm{prec}, p_j = 1 \mid C_{\max} [9].

Theorem 1.1. Let an explicitly listed finite directed acyclic graph specify the precedence constraints on n≥1n \ge1 nonpreemptive unit-length jobs on three identical machines. There is a uniform deterministic algorithm that constructs a feasible schedule of minimum makespan. Given also an integer deadline 1≤T≤n1 \le T \le n, it decides feasibility exactly and returns a schedule whenever the answer is affirmative. Both tasks can be performed in O((L+2)150020)O((L+2)^{150020}) steps on a deterministic multitape Turing machine, where LL is the total binary input length.

The theorem resolves the polynomial-time side of this three-machine complexity question. Its scope is the explicit model just stated. The polynomial supplied by the proof has a very large constant exponent; no practical running-time claim is made.

Prior work and the point of departure. Structural restrictions on precedence yield important intermediate results. Garey, Johnson, Tarjan, and Yannakakis gave a linear-time algorithm on three processors for opposing forests, which are disjoint unions of an in-forest and an out-forest [6 Section 4]. Dolev and Warmuth obtained a running time O(nh(m−1)+1)O(n^{h(m-1)+1}) when the precedence graph has height hh, measured in arcs, and at most mm processors are available in each slot [3 Theorem 3]. The available number may vary over time. This is polynomial when both hh and mm are fixed. Their normalized optimal schedules, called zero-adjusted, have a slot whose at most m−1m-1 jobs with successors determine the prefix and the remaining subproblem, the latter up to isomorphism. When the graph has positive height, both recursive pieces have smaller height [3 Theorem 2].

Nederlof, Swennenhuis, and Węgrzycki developed this structural approach into an exact algorithm with running time (1+n/m)O(nm)(1+n/m)^{O(\sqrt{nm})} for nn jobs on mm machines, hence 2O(nlog⁡n)2^{O(\sqrt n\log n)} for three machines [12 Theorem 1.1]. Their decomposition at selected slots and memoization of subproblems described by source and sink sets already control the number of subproblems despite potentially linear recursion depth [12 Sections 5–6]. Their proper-decomposition theorem assumes at most mm sources [12 Definition 1 and Theorem 3.1]; their full algorithm handles arbitrary precedence graphs. The marked intervals below build on this decomposition viewpoint. We prove the required separator statements and bound the size of each global interval description directly; the polynomial bound does not follow by specializing their subexponential bound.

Approximation algorithms also revealed useful recursive structure. For fixed machine count and fixed ϵ>0\epsilon> 0, Levey and Rothvoss obtained a (1+ϵ)(1+\epsilon)-approximation using linear programming (LP) hierarchies [10]; Garg improved the running time to quasipolynomial [8]. Li replaced LP conditioning by combinatorial guesses and obtained the bound nO((m4/ε3)(log⁡log⁡n)3)n^{O((m^4/\varepsilon^3)(\log\log n)^3)} [11]. Das and Wiese later gave a simpler combinatorial quasipolynomial-time approximation scheme [2]. These works give a related perspective on the recursive structure of nearly optimal schedules. The exact separator and global-description statements used here are established separately.

Why a finite search can suffice. After adding isolated jobs, we may assume that every slot contains three jobs. If selected slots are removed from a feasible schedule, the remaining open gaps can be scheduled independently: reordering the jobs of one gap does not change their temporal relation to any exterior job. This suggests a recursive search whose subproblems are the sets of jobs in those gaps. The obstacle is their number. Naming a gap by its two boundary triples does not by itself determine its job set, and repeatedly intersecting descriptions inherited from its ancestors can require an unbounded formula.

We prove that every feasible instance has a recursive decomposition in which each gap is described globally, as a subset of all jobs, by a Boolean formula of bounded size. The permitted tests are precedence to or from a triple of jobs, membership in that triple, and rank thresholds in a fixed linear extension or its reverse. The bound is independent of the depth of the decomposition. There are therefore only polynomially many sets that the algorithm must consider. Compatible selected triples connect smaller accepted gap sets, and their concatenation gives the schedule.

The structural proof chooses lexicographically minimal schedules only as existence witnesses; the algorithm enumerates the descriptions instead of computing those witnesses. Fix a priority order extending precedence, and call its current initial segment low and the remaining jobs high. A selected slot separates this cutoff when every earlier high job is a precedence predecessor of a job in that slot, and every later low job is a precedence successor of one. In a normalized interval, we promote jobs one at a time from high to low and move a separator forward. Each pair of successive selected slots separates one common cutoff: each low job in the intervening gap has a predecessor in its left slot, and each high job has a successor in its right slot.

The two sides of a center slot are treated by the same construction: for one side we reverse both time and precedence. To describe a gap without remembering all its ancestors, we maintain a short list of sets closed under taking successors in the current direction. A boundary slot limits the number of new list entries that can survive. A global boundary condition excludes distant jobs, while an exchange condition keeps that control valid after later reorderings. At a change of direction, a paired form of the inherited entries lets us replace their history by a bounded formula. The distinction between agreement inside a known interval and a description valid on all jobs is what makes this last step necessary.

Organization. Sections 2 and 3 specify a finite description family and the uniform algorithm. Section 4 supplies common cutoffs, and Section 5 uses them to form smaller child intervals. Section 6 bounds inherited predicate information; Section 7 proves the global boundary invariants. Section 8 describes whole intervals and marked splits by bounded formulas, completing the hierarchy proof. Section 9 gives the explicit running-time bound.

Full schedules, frames, and descriptions

We write x≺yx \prec y if there is a directed path of positive length from xx to yy. Transitive reachability can be computed in polynomial time. All restrictions of the precedence order below mean restrictions of this transitive order, including when a path in the original graph uses vertices outside the restricted set.

Padding and interval reorderings

If n>3Tn > 3T, reject. Otherwise add 3T−n3T-n isolated jobs and let JJ be the resulting set, with N=∣J∣=3TN = |J| = 3T. A full schedule of a set W⊆JW \subseteq J is an ordered sequence of antichain triples partitioning WW, respecting ≺\prec. Its length is necessarily ∣W∣/3|W|/3. The empty set has the empty full schedule.

Lemma 2.1. The original deadline is feasible if and only if JJ has a full schedule. The padded instance has polynomial size in the stated input encoding.

Proof. A schedule of the original jobs leaves exactly 3T−n3T-n vacant positions among the three machines and TT slots. Fill them with the isolated jobs. Conversely, delete the isolated jobs from a full schedule. Since T≤nT \le n and the vertices are explicitly listed, N=3T≤3nN = 3T \le3n is polynomially bounded. ∎

A schedule’s slots will also denote their job triples. An open interval (a,b)(a,b) consists of all slots strictly between two boundary slots; we use the same symbol WW for that interval’s job set. Virtual boundaries before the first and after the last slot are allowed.

Lemma 2.2. Replacing the schedule inside an open interval by any full schedule of its job set preserves feasibility of the complete schedule.

Proof. All exterior jobs are either before the entire interval or after it. Their order relative to every interior job is unchanged. Interior precedences hold by the assumed feasibility of the replacement.

The two frames

Fix a linear extension of the order on JJ, with rank λ:J→{1,…,N}\lambda:J\to\{1,\ldots,N\}. A deterministic choice is obtained by successively removing a minimal job, breaking ties by its identifier. We also use the reversed order, reversed time, and reversed linear extension. These are our two frames. The two ranks of a job sum to N+1N+1. Unless a frame is specified otherwise, all time comparisons, precedence relations, and ranks in an argument belong to its working frame.

For an actual slot aa, identified with its job triple, define global cones

Da={x∈J:∃y∈a, y≺x},Pa={x∈J:∃y∈a, x≺y},D^a=Da∪a,P^a=Pa∪a.D_a=\{x\in J:\exists y\in a,\ y\prec x\},\qquad P_a=\{x\in J:\exists y\in a,\ x\prec y\},\qquad \widehat{D}_a=D_a\cup a,\qquad \widehat{P}_a=P_a\cup a.

At the left sentinel take Da=D^a=JD_a=\widehat{D}_a=J and Pa=P^a=∅P_a=\widehat{P}_a=\varnothing. At the right sentinel use the opposite convention. Reversal exchanges DD and PP, and exchanges their weak versions. In a fixed frame the DD-cones and weak DD-cones are upward closed, whereas the PP-cones and weak PP-cones are downward closed.

Cone membership always concerns the whole poset JJ, even when a formula is evaluated on an interval. A job that is temporally earlier than a block need not be a predecessor of that block.

A fixed finite family

Let F\mathcal{F} be the family of subsets of JJ described by Boolean formulas with at most K=10000K=10000 leaves. Leaves are the following atomic tests or their negations:

  • true and false;

  • rank thresholds λ≤k\lambda\le k and λ≥k\lambda\ge k, with 0≤k≤N+10\le k\le N+1, in either frame;

  • membership in a triple of jobs, or in any of its four cones PP, DD, P^\widehat{P}, D^\widehat{D}, in either frame.

Internal nodes are binary conjunctions and disjunctions. Negating a formula does not increase its number of leaves: apply De Morgan’s laws and push negations to the leaves. Sentinel tests are constants. We distinguish a global description W=FW=F, with F∈FF\in\mathcal{F}, from a relative description L=W∩FL=W\cap F.

Lemma 2.3. The family F\mathcal{F} can be generated deterministically in polynomial time and represented by NN-bit vectors.

Proof. There are O(N3)O(N^3) atomic tests. The number of binary tree shapes and connective assignments with at most KK leaves is a constant depending only on KK. Labelling the leaves therefore gives O(N3K)O(N^{3K}) formulas, with a constant implicit factor. Compute their truth sets after precomputing reachability, then deduplicate by comparing the bit vectors pairwise. This is a deterministic finite procedure with polynomial cost.

The algorithm and its structural certificate

The algorithm accepts or rejects each W∈FW \in\mathcal{F}, in increasing order of cardinality. Write A(W)A(W) for its acceptance value, and regard A(U)A(U) as false when U∉FU \notin\mathcal{F}. Set A(∅)A(\varnothing) to true, and reject sets whose sizes are not divisible by three.

For each remaining nonempty WW, form states

(L,Z,R),W=L∪˙Z∪˙R,(L,Z,R), \qquad W = L \mathbin{\dot\cup} Z \mathbin{\dot\cup} R,

where ZZ is an antichain triple and L=W∩FL = W \cap F for some F∈FF \in\mathcal{F}. Keep a state only if the displayed order of its three parts is compatible: no job in a later part precedes a job in an earlier part. This test uses the transitive order on JJ. Declare the state initial when A(L)A(L) is true and final when A(R)A(R) is true. Add an edge

(L,Z,R)⟶(L′,Z′,R′)(L,Z,R) \longrightarrow(L',Z',R')

exactly when

L∪Z⊆L′,A(L′∖(L∪Z))=true.(1)L \cup Z \subseteq L', \qquad A\bigl(L' \setminus(L \cup Z)\bigr) = \text{true}. \tag*{(1)}

All acceptance values consulted concern smaller sets. Set A(W)A(W) to true if an initial state reaches a final state, allowing a path consisting of a single state. Return YES precisely when A(J)A(J) is true.

Proposition 3.1. This is a uniform deterministic polynomial-time algorithm. Every set it accepts has a full schedule, which the algorithm can explicitly return. With K=10000K = 10000, its deadline decision and schedule construction take O((L+2)150020)O((L+2)^{150020}) deterministic multitape steps.

Proof. For soundness, consider a path with triples Z1,…,ZkZ_1,\ldots,Z_k and left sets L1,…,LkL_1,\ldots,L_k. Put

A0=L1,Ai=Li+1∖(Li∪Zi) (1≤i<k),Ak=Rk.A_0 = L_1, \qquad A_i = L_{i+1} \setminus(L_i \cup Z_i)\ (1 \le i < k), \qquad A_k = R_k.

The inclusions in (1) give the ordered disjoint partition

W=A0∪˙Z1∪˙A1∪˙⋯∪˙Zk∪˙Ak.(2)W = A_0 \mathbin{\dot\cup} Z_1 \mathbin{\dot\cup} A_1 \mathbin{\dot\cup} \cdots\mathbin{\dot\cup} Z_k \mathbin{\dot\cup} A_k. \tag*{(2)}

Every AiA_i is smaller than WW and was already accepted. By induction it has a full schedule. Every two distinct pieces in (2) are separated by a selected state, with the earlier piece in its left part or triple and the later piece in its triple or right part. Compatibility of that state excludes a backward precedence between the pieces. Concatenating their schedules with the selected triples is therefore a full schedule of WW.

To produce that schedule, record a predecessor whenever a state is first reached, with initial states distinguished as roots. Trace back from a reached final state and use the partition (2). Along every transition ∣L∣|L| increases by at least three, so an accepting path has at most N/3N/3 triples. Retrieve the already stored schedules of its smaller gap sets and concatenate them with those triples. Store this one explicit schedule for WW, avoiding any repeated recursive expansion.

There are only polynomially many formula instances, sets, states, and state pairs because the leaf allowance KK is fixed. Sequential scans of their bit-vector records therefore give a uniform polynomial-time implementation. Section 9 gives the explicit multitape accounting, including the scans and copying needed for reconstruction, and proves the stated exponent.

The completeness certificate uses only intervals, their marked triples, and descriptions; it imposes no bound on the number of levels.

Definition 3.2. A bounded-description hierarchy for a feasible JJ has the whole schedule as its root interval. At a nonempty node WW, one may first replace its schedule by a full schedule of the same job set. One then marks at least one actual slot; the nonempty open gaps between successive marks and the two boundaries become its children. Different children may be developed with separate copies of their witnessing exterior schedules. The following descriptions are required:

  • (i) every node job set belongs to F\mathcal{F};

  • (ii) for every marked triple, its earlier jobs within the node have a relative description W∩FW \cap F, with F∈FF \in\mathcal{F}, in original time.

Lemma 3.3. If a feasible JJ has a bounded-description hierarchy, the algorithm accepts JJ.

Proof. Induct on node size. Its marks give compatible states in chronological order by property (ii). Their end gaps and transition gaps are empty or are its children, belong to F\mathcal{F}, and are strictly smaller because there is an actual mark. They have already been accepted by induction. The states consequently give an initial-to-final path. The root belongs to F\mathcal{F} because its predicate is true. □

We prove the following structural assertion in Sections 4 to 8. The considerably larger allowance K=10000K = 10000 avoids dependence on tight constant bookkeeping.

Theorem 3.4. Every feasible full three-machine schedule has a bounded-description hierarchy. In fact, the global node predicates and relative split predicates needed in the hierarchy have fewer than 500 leaves.

Proof of Theorem 1.1, assuming Theorem 3.4. Apply Theorems 2.1, 3.1, 3.3 and 3.4. The algorithm is sound on every enumerated set and complete at JJ. For makespan minimization, test all deadlines 1,…,n1,\ldots,n and take the smallest feasible one. A topological ordering gives a feasible schedule of length at most nn, so this search succeeds. Return the stored full schedule for its padded instance and delete the isolated padding jobs. Assign the at most three remaining jobs in each slot to distinct machines. The schedule has optimum makespan by the choice of deadline. The bound in Theorem 3.1 already allows all these deadline trials. □

Separators with a shared cutoff

Decomposing a normalized schedule at selected slots is a central device in Dolev–Warmuth [3] and in the proper-decomposition construction of Nederlof, Swennenhuis, and Węgrzycki [12]. Here we prove the shared-cutoff form needed for the interval construction: successive boundaries must separate the same ideal of low-priority jobs. The global-list invariants in later sections control these descriptions inside descendant intervals.

This section concerns one fixed frame and a domain consisting of a contiguous interval of a feasible schedule. A set is an ideal in the domain if it contains every domain predecessor of each of its members. Its complement in the domain is an upset.

Definition 4.1. Given an ideal SS of low jobs in a domain, a slot zz is a separator at cutoff SS if

  • (a) every domain job before zz that is outside SS belongs to PzP_z;

  • (b) every domain job after zz that belongs to SS belongs to DzD_z.

The other domain jobs are called high. A left boundary outside the domain is also a separator when all low domain jobs descend from it; there are then no domain jobs before that boundary.

An actual separator has a useful description of its earlier jobs. For a global set H⊆JH \subseteq J, put

Bz(H)=Pz∪(H∖D^z).(3)B_z(H) = P_z \cup(H \setminus\widehat{D}_z). \tag*{(3)}

Lemma 4.2. If zz is an actual separator for a domain UU at cutoff SS, and H∩U=SH \cap U = S, then Bz(H)∩UB_z(H) \cap U is exactly the set of domain jobs strictly earlier than zz. Reversing order and time, and exchanging low with high, preserves the separator property.

Proof. Every job in PzP_z is strictly earlier than zz. An earlier low job is outside D^z\widehat{D}_z. A low job at zz belongs to D^z\widehat{D}_z, and a later low job belongs to DzD_z by separation. Finally, every earlier high job belongs to PzP_z. These observations give both inclusions. Reversal exchanges the two conditions in Theorem 4.1.

Lexicographic normalization

A priority order is a total order of the domain extending precedence. Read a full schedule chronologically, with each triple sorted by priority. Among the finitely many feasible full schedules of the domain, choose one whose resulting sequence of priority indices is lexicographically least. Call it normalized for that priority. This is an existence choice, not an operation of the decision algorithm.

Lemma 4.3. In a normalized schedule, a feasible exchange that puts a better-priority job into an earlier slot is impossible. More generally, fix a slot rr. After any feasible reordering confined strictly after rr, a feasible exchange of a job at rr with a better-priority job at a later slot is still impossible.

Proof. Replacing one member of a sorted triple by a better-priority job lexicographically improves that triple. In the second assertion, the schedule through rr is unchanged by the intervening reordering. The proposed exchange would therefore first change the normalized sequence at rr, and improve it there. The resulting full schedule would contradict minimality, regardless of what happens later.

Lemma 4.4 (Shared-cutoff walk). Fix a normalized full schedule of a domain and let SS and S+S^{+} be consecutive priority prefixes, differing by the promotion of one job from high to low. Suppose ss is a separator at cutoff SS, either inside the domain or at its exterior left boundary. Then there is a separator t≥st \geq s, found by advancing only to domain slots on the right, that separates both SS and S+S^{+}. If the priority order is specified on a larger job set and the promoted job is outside the domain, one may take t=st=s.

Proof. One advance at a fixed cutoff. Keep the normalized schedule and its priority order fixed. Let LL be a prefix of that priority order, and suppose the current position ss satisfies the earlier-high condition for LL. If a later low job does not descend from ss, choose the earliest slot t>st>s containing such a job, and choose one of them, xx. Every domain predecessor of xx lies strictly before ss. Indeed, that predecessor is low because LL is an ideal. A predecessor at ss would force x∈Dsx \in D_s. A predecessor strictly between ss and tt would descend from ss by the earliest choice of tt, and again force x∈Dsx \in D_s.

Let yy be a high domain job at a slot rr with s≤r<ts \leq r < t. If yy had no domain successor at or before tt, exchanging xx and yy would be feasible: all predecessors of xx are before ss, and delaying yy would violate no successor constraint. Moving xx earlier and yy later preserves their other precedence constraints. Since LL is a priority prefix, xx has better priority than yy, contradicting Theorem 4.3. Thus yy has a successor by tt. The successor is high, since the high set is an upset. If it is strictly before tt, repeat the argument. Strictly increasing times give a chain from yy to a high job at tt.

When ss is internal, every earlier high job has a descendant at ss by the earlier-high condition. That descendant is high, and the preceding tracing extends the chain to tt. When ss is the exterior left boundary, there are no earlier domain jobs. Hence tt satisfies the earlier-high condition. We may advance to tt and repeat until there is no later low exception. There are finitely many slots, and every advance is strict, so the final position also satisfies the later-low condition. Throughout this walk the normalized schedule itself stays fixed; only the selected separator position changes.

Adding one low job. Apply this procedure with L=S+L = S^{+}, starting at the given separator for SS. The earlier-high condition for S+S^{+} holds initially because its high set is smaller. If no advance is needed, the same position separates both cutoffs.

Otherwise the first exception is the single promoted job: every later job already low at SS descends from the starting position. At the first target, the promoted job lies in that target slot, so it introduces no earlier high job for the old cutoff SS. Thus the earlier-high condition holds there for both cutoffs.

In every subsequent advance, the exception is old-low: the promoted job stays at the first target, at or before the current position. An old-low exception has better priority than every old-high job. The same exchange and successor tracing therefore propagates the earlier-high condition for SS as well as for S+S^{+}. At the final position, the later-low condition for S+S^{+} also implies the later-low condition for SS, since S⊆S+S \subseteq S^{+}. The final position separates both cutoffs.

If the promoted job is outside the domain, the two restricted prefixes coincide, so the original position already separates both.

Corollary 4.5. Every ideal of a nonempty set with a full schedule has an actual separator in some full schedule of that set.

Proof. Prioritize the ideal before its complement, using a linear extension inside each. Normalize. The first actual slot separates the empty prefix. Promote the jobs of the ideal one by one and use Theorem 4.4. The final position is an actual separator for the ideal.

The shared cutoff, rather than merely the existence of separate separators, will be used for a gap: its low jobs descend from its left endpoint, while its high jobs precede its right endpoint. Keeping the final position of each promotion is important. Intermediate positions assist the proof but need not become marks.

The interval construction and its invariants

We now construct the hierarchy from a feasible full schedule of JJ. Each node has a tag, one of the two frames, and a witnessing complete schedule. Descending to a child changes only the jobs inside that child; its boundary triples and exterior schedule remain fixed. Branches can retain separate witnesses, as allowed in Theorem 3.2.

Global lists and boundary conditions

In the tag frame of a node W=(a,b)W = (a,b), attach an ordered list K=(K1,…,Kℓ)K = (K_1,\ldots,K_{\ell}) of global upsets. Define the global qualifier set and the local old-high set by

Q(K)=⋃i=1ℓKi,O=W∩Q(K).Q(K) = \bigcup_{i=1}^{\ell} K_i,\qquad O = W \cap Q(K).

For every globally qualifying job xx, set

key⁡K(x)=(max⁡{i:x∈Ki},λ(x)),(4)\operatorname{key}_{K}(x) = \left(\max\{i : x \in K_i\}, \lambda(x)\right), \tag*{(4)}

with lexicographic comparison. Entries may overlap. Their largest index, not their smallest one, is used. Because each entry is an upset, x≺yx \prec y with xx qualifying implies that yy qualifies and key⁡K(x)<key⁡K(y)\operatorname{key}_{K}(x) < \operatorname{key}_{K}(y).

We maintain the following three invariants in the node’s tag frame.

(I1) O⊆PbO \subseteq P_b, and W∖O⊆DaW \setminus O \subseteq D_a.

(I2) Every global qualifier scheduled at or before aa belongs to P^a\widehat{P}_a.

(I3) After any feasible reordering of WW in its existing slots, there is no feasible direct exchange between x∈W∖Dax \in W \setminus D_a and a qualifying job yy at aa when key⁡K(x)<key⁡K(y)\operatorname{key}_{K}(x) < \operatorname{key}_{K}(y).

Invariant I1 controls the jobs inside the interval; Invariant I2 controls qualifiers outside its left boundary, and Invariant I3 makes that control persist after later reorderings.

The exchange in Invariant I3 is tested for feasibility in the complete schedule. The hypothetical exchanged schedule need not preserve any decomposition or any of the list invariants. The key of xx is defined because Invariant I1 implies W∖Da⊆OW \setminus D_a \subseteq O. A sentinel has no boundary jobs, so the corresponding exchange condition is vacuous.

Lexicographic minimality within an interval controls exchanges of its interior jobs; it gives no such control over exchanges with an exterior boundary job. Invariant I3 supplies the latter control. Suppose a qualifying job x∈W∖Dax \in W \setminus D_a has all its predecessors strictly before aa, and its key is smaller than that of a qualifying y∈ay \in a. If yy had no successor at or before the slot of xx, their exchange would be feasible. Invariant I3 therefore forces such a successor. The proof in Section 7 uses this first successor to connect exterior qualifiers to the local separator walk.

All predicates are frozen global subsets of JJ once constructed. In particular, a cone used in an old predicate continues to refer to its fixed triple of jobs; it is not redefined after later reorderings.

We shall prove, simultaneously with the three invariants, that each pruned list has at most five entries and each entry has fewer than 40 leaves.

At the root, use the original frame, the two sentinels, and the one-entry list (J)(J). Invariant I1 follows from the sentinel cones, and Invariants I2 and I3 are vacuous.

A center and two open sides

In either working frame, let a,ba,b now mean the left and right boundaries of WW in that frame, and write

X=W∖Da,Y=W∖Pb.X = W \setminus D_a,\qquad Y = W \setminus P_b.

Invariant I1 gives

W⊆Da∪Pb,X⊆Pb,Y⊆Da.(5.2)W \subseteq D_a \cup P_b,\qquad X \subseteq P_b,\qquad Y \subseteq D_a. \tag*{(5.2)}

This cover is unchanged by reversal: the two boundary cones exchange roles. In either frame XX is an ideal in WW, and YY an upset. The list, OO, and the other two invariants are used in their stated form only in the tag frame.

In the tag frame choose an actual center vv separating the ideal W∩PbW \cap P_b, using Theorem 4.5 and, if needed, reordering WW. Mark vv. At the root use the last slot as center; it separates the ideal JJ. The center triple and the job sets on its two sides are now fixed.

Treat each side as an open prefix E=(a,v)E = (a,v), in the frame that makes it a prefix. Call that side same if its working frame is the node’s tag and switch otherwise. Recompute all boundary notation in that working frame. The center is a separator at cutoff

S∗={W∩Pb,same,X=W∖Da,switch.(5)S_* = \begin{cases} W \cap P_b, & \text{same},\\ X = W \setminus D_a, & \text{switch}. \end{cases} \tag*{(5)}

Indeed the second formula is the complement of the original center-low set after reversing order and time, so Theorem 4.2 applies.

Use the following priority orders on WW, and the following nested low cutoffs.

Same direction. Begin with S0=(W∖O)∩PbS_0 = (W \setminus O) \cap P_b. Order S0S_0 first by increasing rank, then OO by increasing key⁡K\operatorname{key}_{K}, and then YY by increasing rank. Promote the jobs of OO in that key order.

Switched direction. Begin with S0=∅S_0 = \varnothing. Order XX first and W∩DaW \cap D_a second, each by increasing rank in the switched frame. Promote the jobs of XX in that order.

These are total orders extending precedence. For the same case, S0S_0 is an ideal, YY is an upset, and the key order on the middle group extends precedence. The groups partition WW since O⊆PbO \subseteq P_b. For the switch case use idealness of XX. Every cutoff lies in PbP_b on WW, by (5.2), and the initial low set lies in DaD_a.

Normalize the open side EE using the restriction of its priority order to EE. This can be done independently on the two sides before constructing children. It preserves feasibility by Theorem 2.2 and preserves the center separator, since neither side’s job set changes. The resulting sequence of low subsets of WW is

S0,S1,…,Sq=S∗.S_0, S_1, \ldots, S_q = S_*.

Some promoted jobs may lie outside EE. Starting at its exterior left boundary s0=as_0 = a, use Theorem 4.4 for every promotion, taking sis_i to be the final position of that promotion. Thus

a=s0≤s1≤⋯≤sq<sq+1=v.(6)a = s_0 \leq s_1 \leq\cdots\leq s_q < s_{q+1} = v. \tag*{(6)}

The starting boundary is a separator on EE because S0∩E⊆DaS_0 \cap E \subseteq D_a. For each i<qi < q, both si,si+1s_i,s_{i+1} separate the cutoff SiS_i on EE. The same assertion for i=qi = q uses the center separator at vv.

Mark the distinct actual walk positions in EE, in addition to vv. For each strict step si<si+1s_i < s_{i+1}, use

a′=si,b′=si+1,S=Si(5.5)a' = s_i,\qquad b' = s_{i+1},\qquad S = S_i \tag*{(5.5)}

as its edge data; Figure 1 shows one such step. Removing repetitions from (6) does not create an unassigned gap: consecutive distinct positions are exactly the endpoints of one of these strict steps. If the gap W′=(a′,b′)W' = (a',b') is nonempty, make it a child and tag it with this working frame.

One side of a node, viewed in its working frame

Figure 1. One side of a node, viewed in its working frame. Each nonempty gap uses the cutoff belonging to its strict walk step. The endpoints separate that same cutoff, although adjacent gaps may use different cutoffs. The horizontal arrow denotes schedule time, not a precedence relation.

Lemma 5.1. At every child edge, b′b' is an actual triple in WW, while a′a' is either aa or an actual triple of EE. On its child,

W′∩S⊆Da′∩Pb′,W′∖S⊆Pb′.(7)W' \cap S \subseteq D_{a'} \cap P_{b'},\qquad W' \setminus S \subseteq P_{b'}. \tag*{(7)}

Every child excludes the center and is strictly smaller than its parent. The root has no nonempty switched child.

Proof. The shared cutoff at a′,b′a',b' gives the two required separator implications on the open side. All cutoffs lie in PbP_b on WW. The remaining assertions follow from the positions of the marks, and from the root’s last-slot center.

It remains to give each child a short list selecting exactly its high jobs, and to preserve the global boundary invariants. The following sections prove these claims by a top-down induction. When a child of WW is constructed, all data for WW and its ancestors have already been constructed. No claim about a deeper descendant is used.

Proof componentInterface used by the next step
Shared cutoffsA normalized side, a starting separator, and successive priority prefixes give two boundaries separating the same cutoff (Theorem 4.4).
Child intervalsA valid parent gives a center and strictly smaller gaps with their shared cutoffs (Theorem 5.1).
Global listsEach child receives its high-job set and first invariant through at most five upset entries, each with fewer than 40 leaves (Theorems 6.3, 6.4 and 6.8).
Boundary stabilityParent invariants and side normalization give child Invariants I2–I3, including all future feasible child reorderings (Theorems 7.1 and 7.2).
Finite descriptionsValid lists and boundaries give global child sets and relative splits with fewer than 500 leaves (Theorems 8.1 to 8.3).

Table 1. The contracts connecting the structural proof. The executable dynamic program consumes the final node sets and split sets; lists and normalized schedules are used to prove that these sets suffice.

Short global lists and changes of direction

Fix a nonempty child W′=(a′,b′)W'=(a',b') of W=(a,b)W=(a,b), with center vv, edge cutoff SS, and working frame as in (5.5). The child’s tag is this working frame. At the end of an update, prune every entry whose intersection with W′W' is empty, preserving the order of the retained entries. We distinguish this pruning from the suffix operation used to form a carry.

Carry and pruning

Lemma 6.1 (Suffix carry). For a global upset list K=(K1,…,Kℓ)\mathbf{K}=(K_1,\ldots,K_\ell), fix 1≤d≤ℓ1\le d\le\ell and an integer 0≤r≤N+10\le r\le N+1, and form

carry⁡d,r(K)=(Kd∩{λ≥r},Kd+1,…,Kℓ).(8)\operatorname{carry}_{d,r}(\mathbf{K})=(K_d\cap\{\lambda\ge r\},K_{d+1},\ldots,K_\ell). \tag*{(8)}

Its qualifier set consists exactly of the old global qualifiers with old key at least (d,r)(d,r). Among those jobs the new list preserves the old key order. Its entries are global upsets.

Proof. Let jj be a job’s largest old membership index. It is selected exactly when j>dj>d, or j=dj=d and its rank is at least rr. Whenever selected, its largest old membership is retained. Reindexing applies the same strictly increasing shift to these retained largest indices, and leaves the rank tiebreak unchanged. Rank suffixes are upsets because rank is a linear extension.

Lemma 6.2 (The comparison preserved by pruning). Let a list be pruned on W′W'. Suppose x∈W′x \in W' qualifies and yy is any global qualifier of the pruned list. If the pruned key of xx is smaller than the pruned key of yy, the same comparison held before pruning.

Proof. Use original indices for the retained entries; their eventual reindexing preserves order. Let M(z)M(z) be the largest membership index before pruning and R(z)R(z) the largest retained one. Every entry containing xx survives, so R(x)=M(x)R(x) = M(x), whereas R(y)≤M(y)R(y) \le M(y). If R(x)<R(y)R(x) < R(y), then M(x)<M(y)M(x) < M(y). If R(x)=R(y)R(x) = R(y) and λ(x)<λ(y)\lambda(x) < \lambda(y), then either M(y)>M(x)M(y) > M(x) or the rank comparison remains the tiebreak. Both cases give the asserted old key comparison.

The two updates

For a same-direction edge, the old list is in the working frame. If O∖S=∅O \setminus S = \varnothing, its carry is empty. Otherwise let (d,r)(d,r) be the smallest key of a job of O∖SO \setminus S, and use (8). Append the injection

I=Da∩(J∖Pb).(6.2)I = D_a \cap(J \setminus P_b). \tag*{(6.2)}

Then prune on W′W'.

For a switched edge, we shall construct a global upset GG in the new working frame with the following properties:

W∖Da⊆G,G∩{x:x is scheduled at or before a}=∅.(9)W \setminus D_a \subseteq G,\qquad G \cap\{x : x\text{ is scheduled at or before }a\} = \varnothing. \tag*{(9)}

Choose hh so that the still-high part of X=W∖DaX = W \setminus D_a is exactly X∩{λ≥h}X \cap\{\lambda\ge h\}. Take h=N+1h = N + 1 if this part is empty. Discard the old list and begin a new list with the ordered pair

G∩{λ≥h},Da.(10)G \cap\{\lambda\ge h\},\qquad D_a. \tag*{(10)}

Then prune on W′W'. Notice that (9) covers all of the parent’s XX, not only the jobs in this child.

Lemma 6.3. For either update, assuming (9) in the switch case, the pre-pruning qualifier union on WW is exactly W∖SW \setminus S. On these high jobs the pre-pruning key order agrees with the side’s priority order. After pruning, the qualifiers on W′W' are exactly W′∖SW' \setminus S, and Invariant I1I1 holds for the child.

Proof. In the same case, (8) gives exactly O∖SO \setminus S on WW, in its old key order. The injection gives exactly YY: use Y⊆DaY \subseteq D_a in (5.2). It is disjoint from the old qualifier union on WW, which is contained in PbP_b. Since the injection is last, the pre-pruning order is the unpromoted part of OO, followed by YY in rank order, as required.

In the switch case, coverage of XX makes the first entry select exactly the unpromoted part of XX there. The second entry selects all of W∩DaW \cap D_a. Even if the two entries overlap, the larger index of the second puts this whole group last. The ordering therefore agrees with the switched priority.

Pruning changes no membership on W′W'. Its high jobs lie in Pb′P_{b'}, and its other jobs lie in Da′D_{a'}, by Theorem 5.1. These are precisely the two assertions of Invariant I1I1 for the child.

Why only five entries survive

A run is a chain of nodes with the same tag, starting at the root or just after a switch. Its initial entries are the root’s single entry, or the two entries in (10). Same-direction updates only take suffixes, restrict entries by rank suffixes, and append injections. Multiple restrictions of an entry by rank suffixes in the same frame combine into one tightest threshold.

Figure 2 isolates the use of machine capacity in the following bound.

Why at most three injections survive a same-direction update

Figure 2. Why at most three injections survive a same-direction update. For each surviving injection, choose a high job xix_i in the child and a successor ziz_i in its ending triple b′b'. Upward closure puts ziz_i in the same injection; disjointness on the parent WW makes the chosen ziz_i distinct. The three-injection case is drawn; arrows denote precedence. Only witness pairs are shown: the injections may contain other jobs and may overlap outside WW.

Lemma 6.4. Every pruned list produced by this construction has at most five entries. At most three of them are injections from its current run.

Proof. The root and switch updates have at most two initial entries. Consider a same update from WW to W′W'. Injections retained into this child are pairwise disjoint on WW. To see this, consider any pair and the time the later one was introduced. It was disjoint on its then-current parent from all previous carried entries, by Theorem 6.3. That parent contains the current WW, and subsequent carries only restrict the older predicates. The disjointness persists on WW.

Each surviving injection contains some x∈W′x \in W'. It is a high job, so x≺zx \prec z for some z∈b′z \in b'. Global upward closure puts zz in that same injection. The actual triple b′b' lies in WW. Pairwise disjointness on WW thus forces distinct surviving injections to contain distinct members of b′b'. There are only three such members. Together with the at most two initial entries this proves the bound.

The freshly formed same-update list may have six entries before pruning. We will use the five-entry bound only for pruned lists or for a carry taken from such a list before appending a new injection.

Flattening the history of a run

Only the first entry of a switch pair can carry a complicated predicate from an earlier run. The following lemma removes it whenever we need to reconstruct an old cutoff on a descendant parent.

Lemma 6.5 (Local flattening). Suppose a run began with a switch out of a node Q0Q_0, using left boundary a0a_0 in the resulting run frame, and entries

G0∩{λ≥h0},Da0,Q0∖Da0⊆G0.G_0 \cap\{\lambda\ge h_0\}, \qquad D_{a_0}, \qquad Q_0 \setminus D_{a_0} \subseteq G_0.

Let U⊆Q0U \subseteq Q_0 be a later parent in that run. If the entry derived from the first displayed entry survives into an unpruned carry out of UU, write its current form as G0∩{λ≥k}G_0 \cap\{\lambda\ge k\}. Then the carried portion of this pair has the same union on UU as the global upset

Da0∪{λ≥k}.(11)D_{a_0} \cup\{\lambda\ge k\}. \tag*{(11)}

Proof. Track the original entries through later reindexings. As long as the first entry survives, a suffix operation cannot trim or discard the second entry: a cutoff at that later index would already discard the first, permanently. Thus the second entry is either still carried untrimmed, or was pruned because it was empty on some intermediate node containing UU. In the latter case Da0∩U=∅D_{a_0} \cap U = \varnothing.

On U∩Da0U \cap D_{a_0}, the second entry, when this set is nonempty, therefore selects every job. Every job of U∖Da0U \setminus D_{a_0} lies in G0G_0, because U⊆Q0U \subseteq Q_0. On that remainder the first entry selects exactly the rank suffix λ≥k\lambda\ge k. This proves equality of the two unions on UU. Both factors in (11) are upsets, so their union is globally upward closed, although it need not agree with the carried pair outside UU.

A new switch out of a node WW uses the edge U→WU \to W by which WW was created. Let H−H_- be that incoming edge’s low cutoff, in its own working frame, and reserve SS for the cutoff of the new outgoing edge. We need an extension of H−H_- that does not retain a complicated switch predicate from an earlier run. Local flattening provides it using lists and covering properties belonging to already constructed ancestors.

Lemma 6.6 (A short extension of an earlier low set). Consider an already constructed edge from a parent UU to a child WW, in its old working frame. Its low cutoff H−⊆UH_- \subseteq U has a global downset extension H−∗H_-^* agreeing with it on UU. This extension can be chosen with at most 21 leaves.

Proof. Use the boundary notation of UU in that old frame for this proof. If the edge was a switch relative to the tag of UU, its low cutoff is a rank prefix of U∖DaU \setminus D_a. Thus

(J∖Da)∩{λ≤r}(J \setminus D_a) \cap\{\lambda\le r\}

is the required global downset, using at most two leaves.

If the edge was same, its low cutoff on UU equals PbP_b minus its unpruned carry union, without the fresh injection. The old list on UU has at most five entries by Theorem 6.4. If its run began at the root, all carry entries are simple: the root base or injections, possibly rank-trimmed. If it began at a switch, the only possibly complicated carry entry is the first of that switch pair. If it is present in the carry, replace the carried pair by (11); if it is absent from the carry, every carried entry is already simple.

This gives a global upset agreeing with the carry union on UU. It has at most five terms, each with at most four leaves. Indeed an injection with a rank trim has three leaves; a root base or a second switch base with a trim has at most two; and the flattened pair has two. Taking PbP_b minus this union gives a global downset with at most 1+5⋅4=211 + 5 \cdot4 = 21 leaves. An empty carry is represented by false.

Constructing the new switch upset

Suppose a switch out of WW produces a nonempty child. By Theorem 5.1, WW is not the root. Let UU be the parent that produced WW. That preceding edge was taken in the tag frame of WW, which is opposite to the current working frame. In the current frame write a−,b−a_-,b_- for the boundaries of UU and v−v_- for its center. The temporal arrangement is

a−<v−≤a<b≤b−.(6.6)a_- < v_- \le a < b \le b_- . \tag*{(6.6)}

Here aa is an actual ending endpoint of that preceding edge, viewed in reverse; it can equal v−v_-. The node WW lies in the open suffix of UU after v−v_-; Figure 3 shows this arrangement.

The ancestor configuration at a direction change in the new working frame

Figure 3. The ancestor configuration at a direction change, in the new working frame. A candidate early member of GG is first located inside UU by Da−D_{a_-}; only there is the earlier cutoff extension used. The two weak predecessor exclusions then cover the portions at or before v−v_- and between v−v_- and aa. The equality a=v−a=v_- is allowed; the intervening segment then collapses. The horizontal arrow denotes time.

Let H−H_- be the low set of the preceding edge in its old working frame, regarded as a subset of all of UU. The extension H−∗H_-^* from Theorem 6.6 is an upset in the current, reversed frame. Define

G=Da−∩(J∖P^a)∩(J∖P^v−)∩H−∗.(12)G = D_{a_-} \cap(J \setminus\widehat{P}_a) \cap(J \setminus\widehat{P}_{v_-}) \cap H_-^*. \tag*{(12)}

Lemma 6.7. The set GG in (12) is a global upset satisfying both properties in (9).

Proof. All four factors in (12) are global upsets in the current frame, so GG is an upset.

Let x∈X=W∖Dax \in X = W \setminus D_a. If xx had been high at the preceding edge in its old frame, Theorem 5.1 would put it in the old predecessor cone of that edge’s ending endpoint. That endpoint is the current aa, so reversal would give x∈Dax \in D_a, a contradiction. Thus x∈H−x \in H_-. Every job of H−H_- precedes the old right boundary of UU, because all edge cutoffs lie in that cone. Equivalently, H−⊆Da−H_- \subseteq D_{a_-} in the current frame. Since xx is strictly after both aa and v−v_-, feasibility excludes xx from their weak predecessor cones. Finally, x∈Ux \in U, so agreement of H−∗H^*_- on UU gives x∈H−∗x \in H^*_-. Hence X⊆GX \subseteq G.

Conversely, suppose z∈Gz \in G is scheduled at or before aa. Membership in Da−D_{a_-}, together with (6.6), first places it strictly inside UU:

a−<time⁡(z)≤a<b≤b−.(6.8)a_- < \operatorname{time}(z) \le a < b \le b_-. \tag*{(6.8)}

Only now use H−∗∩U=H−H^*_- \cap U = H_-. The old edge cutoff H−H_- was contained in the old center-low set. If zz is at or before v−v_- in the current frame, the old center separator puts it in current P^v−\widehat{P}_{v_-}. If it is strictly after v−v_- but at or before aa, it lies in the old normalized side and the old separator at the endpoint aa puts it in current P^a\widehat{P}_a. Both possibilities contradict (12).

These separator implications remain valid when preparing the current node: all intervening reorderings have been confined to W=(a,b)W = (a,b), and therefore have not changed any job at or before aa in the current frame, the relevant boundary triples, or the fixed old cutoff sets.

Predicate bounds and the induction order

Lemma 6.8. Every entry constructed above has fewer than 40 leaves. This bound persists through any number of same-direction updates.

Proof. Root bases, injections, and second switch bases are simple predicates. By Theorem 6.6, the H−∗H^*_- factor in a new GG has at most 21 leaves. The three other factors of GG and its outer rank suffix use four more. Thus a new first switch entry has at most 25 leaves. Further same-direction trimming only tightens that outer rank suffix. It does not append a new independent condition. The same observation applies to simple entries.

For completeness, the construction so far has a well-founded dependency order. Assume the parent and ancestor data already satisfy their assertions. A same update is defined directly. A switch update uses the preceding edge’s low set; Theorem 6.6 derives its short extension from already existing lists and, when necessary, an earlier switch’s covering property. Theorem 6.7 then proves the new covering and early-exclusion properties. Theorem 6.3 supplies the high-set identity and Invariant I1I1; Theorem 6.4 supplies the new length bound; and Theorem 6.8 supplies the predicate bound. The length argument needs global closure and high-set identities, but not the numerical predicate bound. Thus neither bound assumes itself at a deeper node.

The root starts this induction. We next prove the remaining boundary invariants for every update, using only the parent invariants and the current normalizations.

Preserving the global boundary invariants

We verify Invariants I2I2 and I3I3 for a child W′=(a′,b′)W' = (a', b') of W=(a,b)W = (a, b). All notation is in the working frame of the child edge. In a same update this is also the parent’s tag frame. In a switch update the old list is not carried; the newly constructed upsets are used instead.

Preparatory changes to the schedule of WW preserve the parent invariants. Its boundary triples and all earlier exterior jobs stay fixed, so Invariant I2I2 is unchanged. Invariant I3I3 already quantifies over every feasible reordering of WW.

Excluding distant qualifiers

Lemma 7.1. The updated child list satisfies Invariant I2I2.

Proof. It suffices to prove the assertion before pruning, since pruning only removes qualifiers. Let zz qualify for the pre-pruning child list and be scheduled at or before a′a'.

If a<time⁡(z)≤a′a < \operatorname{time}(z) \le a', the job belongs to the normalized open side EE of the parent. By Theorem 6.3, it is high at the edge cutoff SS. The local separator at a′a' puts it in Pa′P_{a'} when strictly earlier, and membership in the triple puts it in P^a′\widehat{P}_{a'} when its time equals a′a'.

Now suppose zz is at or before aa. The new injection Da∖PbD_a \setminus P_b cannot contain such a job. Nor can either switch entry, by Theorem 6.7 and the strictness of DaD_a. Thus the only remaining case is a same-direction carry qualifier. The parent’s Invariant I2I2 supplies a job y∈ay \in a with z=yz = y or z≺yz \prec y. The carry is a global upset, so yy also qualifies by carry. In particular aa is actual. If a′=aa' = a, we are done.

Assume a′>aa' > a, and write a′=sia' = s_i, with edge cutoff S=SiS = S_i. Follow all the strict advances of the walk from aa through promotion ii, including intermediate advances not retained as marks. Every cutoff used in this portion of the walk is contained in SiS_i. On WW, the final carry is exactly O∖SiO \setminus S_i. Consequently every carry qualifier in EE is high, and has worse priority than the low exceptions, at every one of these advances.

The first advance needs the parent exchange invariant, because aa lies outside the normalized open side EE. Consider that first actual advance off aa, with earliest exception xx at its target tt. All global predecessors of xx are before aa. To verify this stronger readiness assertion, every predecessor is temporally before tt. If one were at aa, then x∈Dax \in D_a. If one were strictly between aa and tt, it would belong to the contiguous side EE, be low, and descend from aa by earliestness of the exception. Again x∈Dax \in D_a, a contradiction. There is no other possible predecessor at or after aa.

Also x∈X=W∖Dax \in X = W \setminus D_a, so Invariant I1I1 puts it among the old qualifiers, outside the starting low set. It has already been promoted by stage ii, so its old key is strictly below the least unpromoted key at SiS_i. By Theorem 6.1, the boundary job yy has old key at least that least unpromoted key. The parent’s Invariant I3I3, applied after the current preparatory reorderings of WW, therefore prohibits exchanging xx and yy in the complete schedule.

If yy had no global successor at or before tt, that exchange would be feasible. All global predecessors of xx lie strictly before aa; moving it earlier preserves its successor constraints, and delaying yy to tt preserves its predecessor constraints and, under the supposition, its successor constraints. Thus yy must have a strict successor by tt. Such a successor is in EE and is still a carry qualifier.

Any carry job strictly between aa and tt must likewise have a successor by tt: otherwise exchange it with xx within EE, contradicting its lexicographic normalization. The carry is an upset, so these successors remain in the carry. Iterating along strictly increasing times reaches a carry job at tt. It cannot be xx, which is low and lies outside the final carry.

At every subsequent advance, the local readiness and exchange argument from Theorem 4.4 applies inside EE. All carry jobs remain high at that advance, so each carry job at its starting slot has a carry descendant at its target. Tracing from the descendant of yy at the first target eventually gives a descendant of yy at a′a'. Hence z∈P^a′z \in\hat{P}_{a'}, as required.

Exchanges after future child reorderings

Lemma 7.2. The pruned child list satisfies Invariant I3I3, with its quantifier over all feasible reorderings of W′W'.

Proof. Take any feasible reordering of W′W' in its slots. Suppose x∈W′∖Da′x \in W' \setminus D_{a'}, that y∈a′y \in a' qualifies for the child list, and that the new key of xx is smaller than the new key of yy. Invariant I1I1, already proved for the child in Theorem 6.3, ensures that xx qualifies. By Theorem 6.2, the same comparison holds in the new list before pruning.

First let a′>aa' > a. Both xx and yy are in the parent’s normalized side EE, and both are high at its edge cutoff SS, by Theorem 6.3. The pre-pruning key order agrees with the priority order used to normalize EE. Thus xx has better priority than yy. The child reordering changes only slots strictly after a′a'. A feasible exchange of x,yx,y in the complete schedule would therefore give a feasible full schedule of the same EE with a better prefix at a′a', contrary to Theorem 4.3.

Now let a′=aa' = a. In the switch case there is no new qualifier at aa, so no such yy exists. In the same case neither xx nor yy belongs to the new injection: x∉Dax \notin D_a, and no job at aa is a strict descendant of aa. Their pre-pruning comparison therefore uses only carry entries. By Theorem 6.1, it implies the same old key comparison in the parent’s list. Moreover x∈W∖Dax \in W \setminus D_a. The preparatory reorderings and the arbitrary subsequent reordering of W′W' together form a feasible reordering confined to WW. The parent’s Invariant I3I3 rules out the proposed exchange.

Proposition 7.3. Starting from any feasible full schedule, the marking and list construction is defined at every node. Its pruned lists are global upset lists of length at most five, with fewer than 40 leaves per entry, and satisfy Invariants I1I1–I3I3. Every branch terminates.

Proof. Proceed by depth from the root data of Section 5. Given valid ancestor and parent data, the center and the two normalized sides exist by Theorems 2.2 and 4.5. The shared walk and Theorem 5.1 define the children. For a same update the new list is direct. For a switch, Theorems 6.6 and 6.7 construct the needed global upset using only earlier data, as explained at the end of Section 6. Then Theorems 6.3, 6.4 and 6.8 give the first invariant and the bounds. Theorems 7.1 and 7.2 give the other two invariants without using a claim about any deeper child. This completes the simultaneous induction. Every child omits the center, so its size decreases strictly.

Invariant I2 will let a bounded predicate distinguish the child from qualifiers arbitrarily far in the past. Invariant I3 is what allows that first invariant to continue propagating after recursive reorderings. Neither is replaced by an assertion only about local separators.

Global interval predicates and completion

We now describe each child as a global set without intersecting with a recursively described parent. This is the step that converts the construction into a polynomial family of subproblems.

Global tests for local cutoffs

The cutoff predicates in this section are used only in the final interval and split formulas. The list construction and its entry-size bound are now complete, so these formulas may retain the existing bounded entries. The historical extension in Theorem 6.6, by contrast, had to flatten an earlier run before a new switch entry could be constructed.

For every walk cutoff SS in a parent WW, choose a global predicate S~\widetilde{S} satisfying

S~∩W=S.(13)\widetilde{S} \cap W = S. \tag*{(13)}

In the same case, let KcarryK_{\mathrm{carry}} be the carry determined by O∖SO \setminus S, before the new injection. Use

S~=Pb∖Q(Kcarry).(14)\widetilde{S} = P_b \setminus Q(K_{\mathrm{carry}}). \tag*{(14)}

On WW, the carry selects precisely O∖SO \setminus S, while the low jobs are the initial (W∖O)∩Pb(W \setminus O) \cap P_b and the promoted portion of OO. Thus (8.1) holds. In the switch case use

S~=(J∖Da)∩{λ≤r},(15)\widetilde{S} = (J \setminus D_a) \cap\{\lambda\le r\}, \tag*{(15)}

where rr is the rank of the last promoted member of XX, or r=0r = 0 before any promotion. These formulas are available at every walk cutoff, whether or not the associated open gap is nonempty. They are not required to have any prescribed meaning outside WW.

A child as a global set

Figure 4 summarizes the localization steps in the following formulas.

The two global tests for a child

Figure 4. The two global tests for a child. For the low part, positive cones locate a candidate inside the parent before its cutoff predicate is used; the two weak successor exclusions then restrict that candidate to the gap. For the high part, the global past-boundary invariant excludes qualifiers at or before a′a'. The intersection factors are arranged in the order used by the proof.

Lemma 8.1. In the valid construction of Theorem 7.3, let W′=(a′,b′)W' = (a', b') be a child of W=(a,b)W = (a,b), with parent center vv, edge cutoff SS, new pruned list K′K', and cutoff predicate S~\widetilde{S} satisfying (8.1). In the edge’s working frame, its high and low parts are the following global sets:

W′∖S=Q(K′)∩Pb′∩(J∖P^a′),(16)W' \setminus S = Q(K') \cap P_{b'} \cap(J \setminus\widehat{P}_{a'}), \tag*{(16)}
W′∩S=Da′∩Pb∩(J∖D^b′)∩(J∖D^v)∩S~.(17)W' \cap S = D_{a'} \cap P_b \cap(J \setminus\widehat{D}_{b'}) \cap(J \setminus\widehat{D}_v) \cap\widetilde{S}. \tag*{(17)}

Proof. Every high child job qualifies, precedes b′b', and, because it is later than a′a', is outside P^a′\widehat{P}_{a'}. Conversely, a job selected by the right side of (8.4) is strictly before b′b' by precedence. If it were at or before a′a', the child’s global Invariant I2 would put it in P^a′\widehat{P}_{a'}. It is therefore strictly in W′W', and the child list selects exactly its high jobs.

For (8.5), consider first a job selected by its right side. The two positive tests Da′∩PbD_{a'} \cap P_b locate it strictly inside the parent WW: its time is after a′≥aa' \ge a and before bb. This remains true with sentinel boundaries under our conventions. We can consequently use (8.1) to infer that the job is in SS. This cutoff is contained in the center-low set S∗S_*. A selected job at or after vv would therefore lie in D^v\widehat{D}_v, by the center separator or by membership in vv itself. The corresponding exclusion places it in the open side E=(a,v)E=(a,v). Within EE, a low job at or after b′b' is in D^b′\widehat{D}_{b'}, using the local separator at b′b'. The remaining exclusion puts the selected job strictly between a′a' and b′b'.

Conversely, a low job of this gap lies in Da′∩PbD_{a'}\cap P_b by Theorem 5.1, and it satisfies S~\widetilde{S} by (8.1). Its time is strictly before both b′b' and vv, so it is in neither of their weak successor cones. It passes every test in (8.5).

The localization order matters. Neither the cutoff extension S~\widetilde{S} nor the flattened historical extension needs to agree with its intended local set everywhere in JJ. Positive cone tests first place the candidate in the domain where agreement is known. The construction never appends a membership predicate for all ancestor intervals.

Relative predicates for the marked splits

Lemma 8.2. Every marked slot zz in a node WW has a bounded relative description of its earlier jobs in either the working direction that produced it or the original direction. The formulas use the stated atomic language and have fewer than 500 leaves, as counted in Theorem 8.3.

Proof. Use the working frame for a side, and put

H∗={Pb,same,J∖Da,switch.H_* = \begin{cases} P_b, & \text{same},\\ J \setminus D_a, & \text{switch}. \end{cases}

For the center vv, the predicate Bv(H∗)B_v(H_*), restricted to WW, is its earlier set, by Theorem 4.2 and (5.3).

For an internal mark zz in the open side EE, choose a walk cutoff SS for which it is a local separator. The predicate

Fz=Bv(H∗)∩Bz(S~)(18)F_z = B_v(H_*) \cap B_z(\widetilde{S}) \tag*{(18)}

gives its earlier set upon restriction to WW. The first factor selects EE on WW; on that domain the second is the separator description from Theorem 4.2. If the working frame is opposite to original time, Fz∩WF_z \cap W describes the original later jobs. Replace FzF_z by

(J∖Fz)∖z(19)(J \setminus F_z) \setminus z \tag*{(19)}

to obtain the original earlier jobs after restriction to WW. The exclusion of the marked triple is necessary: complementation alone includes it. Apply the same conversion to the center predicate when appropriate.

Lemma 8.3. The predicates in Theorems 8.1 and 8.2 have fewer than 500 leaves.

Proof. A pruned list or a carry contains at most five entries with fewer than 40 leaves each, so its union has at most 195 leaves. An empty union uses the false constant. The same-direction cutoff (14) therefore needs at most 196 leaves; the switched one needs two. Use 205 as a common loose allowance.

The high predicate (16) uses at most 195 + 2 = 197 leaves. The low predicate (17) uses at most 205 + 4 = 209. Their union is a global description of W′W' with at most 406 leaves.

The center predicate has three leaves. The internal split (18) has at most 3 + (205 + 2) = 210, and conversion (19) adds one. Complementation does not increase leaf counts. Every cone uses an actual triple or a sentinel constant; all ranks and thresholds are from the two allowed frames. Thus these are formulas in the stated atomic language.

Proof of Theorem 3.4. Use Theorem 7.3 to construct marks and lists from a feasible full schedule. The root set JJ is represented by true. Every nonempty child has the global description supplied by Theorem 8.1. Every mark has the relative split description supplied by Theorem 8.2. Theorem 8.3 places both kinds of description in F\mathcal{F}, independently of their depth. All branches terminate because the node sizes decrease strictly. These are exactly the conditions of Theorem 3.2.

Running time in the explicit input model

The preceding structural proof establishes completeness of the finite search. We now give the detailed deterministic multitape accounting promised in Theorem 3.1. Its purpose is to make the polynomial-time assertion uniform; the structural argument does not require efficient normalization of a schedule or a small recursion depth.

Running-time bound in Theorem 3.1. First specify a conservative implementation using sequential scans. Write B=CKN3KB = C_KN^{3K} for an upper bound on the number of enumerated formulas, where CKC_K depends only on the fixed KK. There are at most BB distinct sets and at most S=BN3S = BN^3 candidate states for each WW. Store their bit vectors, reachability marks, and predecessor record numbers on work tapes. Each state record uses OK(N)O_K(N) bits; its indices require only OK(log⁡N)O_K(\log N) bits. Store an explicit full schedule with each previously accepted set. This table uses OK(BN2)O_K(BN^2) bits, since a schedule lists at most NN job identifiers and their slots.

A complete scan to fetch or update a state record costs OK(SN)=OK(BN4)O_K(SN) = O_K(BN^4) steps. A lookup in the acceptance table by comparing all bit vectors costs OK(BN2)O_K(BN^2) steps. Even checking all required precedence relations by repeated scans of the NN-by-NN reachability table costs at most O(N4)O(N^4). Thus one ordered state-pair test and reachability update costs OK(BN4)O_K(BN^4) steps, without constant-time random access. Starting from the initial states, make at most SS passes over all ordered pairs, marking a target when its source is marked and (1) holds. These passes find every reachable state. For all sets together their cost is at most

OK(BS3BN4)=OK(B5N13)=OK(N15K+13).(20)O_K(BS^3BN^4) = O_K(B^5N^{13}) = O_K(N^{15K+13}). \tag*{(20)}

Generating, evaluating, and deduplicating formulas by scans costs at most OK(B2N4)O_K(B^2N^4); reachability preprocessing, state construction, and table initialization also fit within the displayed bound. The subscript KK denotes a constant fixed independently of the input. Since N≤3nN \le3n and the vertices are explicitly listed, the looser bound O((L+2)150020)O((L+2)^{150020}) covers input processing and even all nn deadline trials needed for optimization.

Remark 9.1. For the deadline feasibility decision, the same preprocessing can handle an encoding that specifies an enormous number of isolated vertices only through a binary value of nn. After checking n≤3Tn \le3T, let dd be the number of vertices appearing in edges. If T≥dT \ge d, accept: schedule those dd vertices sequentially in topological order and fill free positions with the isolated vertices. Otherwise N=3T<3d≤6∣E∣N = 3T < 3d \le6|E|, so expansion is polynomial. This extra branch is not needed for the explicit encoding in Theorem 1.1.

Conclusion

The finite search succeeds because every interval in a suitable recursive schedule decomposition has a global description of bounded size, independent of its depth. Local separator descriptions alone do not give that guarantee: the short upset lists, the exterior boundary invariants, and the simplification at direction changes prevent the accumulation of ancestor information.

The resulting algorithm constructs an exact optimum for the stated three-machine model. The fixed leaf allowance 10000 and the explicit large exponent establish polynomial time for the stated model. The proof supplies no practical performance guarantee.

References

  1. [1]Edward G. Coffman, Jr. and Ronald L. Graham. Optimal scheduling for two-processor systems. Acta Informatica, 1(3):200–213, 1972. doi: 10.1007/BF00288685.DOI
  2. [2]Syamantak Das and Andreas Wiese. A simpler QPTAS for scheduling jobs with precedence constraints. In Shiri Chechik, Gonzalo Navarro, Eva Rotenberg, and Grzegorz Herman, editors, 30th Annual European Symposium on Algorithms (ESA 2022), volume 244 of Leibniz International Proceedings in Informatics (LIPIcs), pages 40:1–40:11. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi: 10.4230/LIPIcs.ESA.2022.40. URL https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ESA.2022.40.DOI
  3. [3]Danny Dolev and Manfred K. Warmuth. Scheduling precedence graphs of bounded height. Journal of Algorithms, 5(1):48–59, 1984. doi: 10.1016/0196-6774(84)90039-7.DOI
  4. [4]M. Fujii, T. Kasami, and K. Ninomiya. Optimal sequencing of two equivalent processors. SIAM Journal on Applied Mathematics, 17(4):784–789, 1969. doi: 10.1137/0117070.DOI
  5. [5]M. Fujii, T. Kasami, and K. Ninomiya. Erratum: Optimal Sequencing of Two Equivalent Processors. SIAM Journal on Applied Mathematics, 20(1):141, 1971. doi: 10.1137/0120018. URL https://epubs.siam.org/doi/epdf/10.1137/0120018.DOI
  6. [6]M. R. Garey, D. S. Johnson, R. E. Tarjan, and M. Yannakakis. Scheduling opposing forests. SIAM Journal on Algebraic and Discrete Methods, 4(1):72–93, 1983. doi: 10.1137/0604011.DOI
  7. [7]Michael R. Garey and David S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, 1979.
  8. [8]Shashwat Garg. Quasi-PTAS for scheduling with precedences using LP hierarchies. In Ioannis Chatzigiannakis, Christos Kaklamanis, Dániel Marx, and Donald Sannella, editors, 45th International Colloquium on Automata, Languages, and Programming (ICALP 2018), volume 107 of Leibniz International Proceedings in Informatics (LIPIcs), pages 59:1–59:13. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2018. doi: 10.4230/LIPIcs.ICALP.2018.59. URL https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ICALP.2018.59.DOI
  9. [9]R. L. Graham, E. L. Lawler, J. K. Lenstra, and A. H. G. Rinnooy Kan. Optimization and approximation in deterministic sequencing and scheduling: a survey. Annals of Discrete Mathematics, 5:287–326, 1979. doi: 10.1016/S0167-5060(08)70356-X. URL https://ir.cwi.nl/pub/18052.DOI
  10. [10]Elaine Levey and Thomas Rothvoß. A (1 + ε)-approximation for makespan scheduling with precedence constraints using LP hierarchies. In Proceedings of the 48th Annual ACM SIGACT Symposium on Theory of Computing, STOC ’16, pages 168–177. Association for Computing Machinery, 2016. doi: 10.1145/2897518.2897532. URL https://doi.org/10.1145/2897518.2897532.
  11. [11]Shi Li. Towards PTAS for precedence constrained scheduling via combinatorial algorithms. In Dániel Marx, editor, Proceedings of the 2021 ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2991–3010. Society for Industrial and Applied Mathematics, 2021. doi: 10.1137/1.9781611976465.178. URL https://doi.org/10.1137/1.9781611976465.178.
  12. [12]Jesper Nederlof, Céline M. F. Swennenhuis, and Karol Węgrzycki. A subexponential time algorithm for makespan scheduling of unit jobs with precedence constraints. In Proceedings of the 2025 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 535–552. Society for Industrial and Applied Mathematics, 2025. doi: 10.1137/1.9781611978322.16.DOI
  13. [13]Jeffrey D. Ullman. NP-complete scheduling problems. Journal of Computer and System Sciences, 10(3):384–393, 1975. doi: 10.1016/S0022-0000(75)80008-0.DOI

Paper details

vlnc:W_jjzc2h76
v1 · latestHistory (1)

published ·

Usage

views · 16

downloads · 0

A view counts once per browser per day, a download each time the PDF is requested.

LicenseRef-OpenAI-public

DOI · 10.83295/xybj-sjbw

Original source

  • Mathematics

unreleased internal OpenAI model · View statement →

Looking for related papers…
Contents