Theorem 5
Lax496464.Theorem5 · concepts/Lax496464/Theorem5.lean · lax-496464
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
The problem admits a fully polynomial-time approximation scheme whenever one of the number of machines, the width and the largest processing time is bounded.
Rounding the weights as in (8) leaves a threshold of order to search, where is the reciprocal of the accuracy, so each of the three exact programs — the table of Section 3, the endpoint sweep and the profile sweep — becomes an approximation scheme whose running time is that of the program with replaced by .
Concept map
Evidence
In the paper
- page 7 of this submission's paper
Lean source view on GitHub
| 1 | import Lax496464.Fptas |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Theorem 5 |
| 6 | type: theorem |
| 7 | --- |
| 8 | The problem admits a fully polynomial-time approximation scheme whenever one of the |
| 9 | number of machines, the width and the largest processing time is bounded. |
| 10 | |
| 11 | Rounding the weights as in (8) leaves a threshold of order to search, where is |
| 12 | the reciprocal of the accuracy, so each of the three exact programs — the table of |
| 13 | Section 3, the endpoint sweep and the profile sweep — becomes an approximation scheme |
| 14 | whose running time is that of the program with replaced by . |
| 15 | |
| 16 | # Formalization Notes |
| 17 | |
| 18 | Four statements. The first is the rounding argument itself, the chain of inequalities (8), |
| 19 | which is where the approximation guarantee comes from and which says nothing about any |
| 20 | machine. The other three are the schemes, one per program, differing only in the factor |
| 21 | each contributes: the |
| 22 | of the second theorem, the of the first half of the third, and the |
| 23 | of its second half. In each the threshold is gone, replaced by the |
| 24 | that the rounding leaves, which is what makes the scheme fully polynomial in . |
| 25 | |
| 26 | The guarantee is the one an approximation scheme gives, so the statements are about a |
| 27 | machine that halts within a bound having written *some* acceptable answer, rather than |
| 28 | about one computing a function. |
| 29 | |
| 30 | The rounding argument assumes what Section 7 assumes of its input: that there is a machine |
| 31 | to run a job on, and that every job can be preprocessed on its own, , jobs |
| 32 | failing which are discarded. Both are needed, and the chain is false without them — an |
| 33 | instance whose heaviest job cannot be scheduled has , and the |
| 34 | chain, which ends by replacing by , has nothing to end at. |
| 35 | |
| 36 | None of the three bounds is polynomial in the input alone: each carries the factor its |
| 37 | program carries, and what the theorem says is that the scheme is fully polynomial once |
| 38 | that factor is a constant. Stating the factor explicitly, rather than fixing the |
| 39 | parameter and hiding it in a constant, is what keeps the three statements comparable to |
| 40 | the theorems they come from. |
| 41 | |
| 42 | The domain of each scheme also asks that the total weight of the jobs fit a word with room |
| 43 | for the constant, `c · ∑ wⱼ ≤ 2^w`: the scheme writes a number that a feasible set reaches, |
| 44 | which can be as large as the total weight, and the entries of the word are bounded |
| 45 | individually by the fitting condition but their sum is not, so without this clause an |
| 46 | instance of many heavy jobs has answers that no machine of that word length can write. The |
| 47 | factor `c` is the same constant as in the running time: the machine's memory layout needs |
| 48 | every value it writes to stay below a fixed fraction of `2^w`. Positive processing times are asked for as in the exact |
| 49 | programs the schemes are built from: the paper's standing assumption for the recursions behind |
| 50 | them. |
| 51 | |
| 52 | What a scheme delivers is a number reached by a feasible set, not the exact weight of a set it |
| 53 | has in hand; see `Delivers`. That is what the rounding argument supports: the optimum for the |
| 54 | rounded weights gives a set whose true weight is within the guarantee, and the number written |
| 55 | is that weight less the rounding loss, which the set reaches. |
| 56 | -/ |
| 57 | |
| 58 | namespace Lax496464.Theorem5 |
| 59 | |
| 60 | open Lax496464.WordEncoding Lax496464.Problems Lax496464.ParameterizedComplexity |
| 61 | open Lax496464.Fptas Lax496464.FlowShop Lax496464.FlowShop.Instance |
| 62 | open Lax808846.Ram |
| 63 | |
| 64 | /-- **Chain (8).** If `e · k · n ≤ w_max` and `Zs` is optimal for the weights rounded by |
| 65 | `k`, then `Zs` is within a factor `1 − 1/e` of the true optimum. -/ |
| 66 | axiom rescale_approx (I : Instance) {e k : ℕ} (he : 1 ≤ e) (hk : 1 ≤ k) |
| 67 | (hm : 0 < I.machines) (hpre : ∀ j : I.Job, (I.p j : ℤ) ≤ s j) |
| 68 | (hkn : e * k * I.jobs ≤ wmax I) (Zs : Finset I.Job) (hZs : Feasible I Zs) |
| 69 | (hopt : ∀ Z : Finset I.Job, Feasible I Z → |
| 70 | weight (rescale I k) Z ≤ weight (rescale I k) Zs) : |
| 71 | (e - 1) * optimum I ≤ e * weight I Zs |
| 72 | |
| 73 | /-- **Theorem 5, from the table of Section 3.** An approximation scheme running within |
| 74 | `c · (n+1)² · (e+1) · (n+1)^m` instructions, plus the cost of sorting. -/ |
| 75 | axiom theorem5_byMachines : |
| 76 | ∃ (prog : Program) (c : ℕ), ∀ w : ℕ, |
| 77 | ApproximatesInTime w prog |
| 78 | {x | x ∈ ApproxInstances ∧ Fits c w x ∧ |
| 79 | c * ((List.range (jobCount x)).map (wt x)).sum ≤ 2 ^ w ∧ |
| 80 | (∀ j < jobCount x, 0 < procTime x j) ∧ |
| 81 | c * (jobCount x + 1) ^ 2 * (threshold x + 1) * |
| 82 | (jobCount x + 1) ^ machineCount x ≤ 2 ^ w} |
| 83 | (fun x => c * (jobCount x + 1) ^ 2 * (threshold x + 1) * |
| 84 | (jobCount x + 1) ^ machineCount x + c * sortCost x) |
| 85 | |
| 86 | /-- **Theorem 5, from the endpoint sweep.** An approximation scheme running within |
| 87 | `c · (n+1)² · (e+1) · 2^ω · (n+1)` instructions, plus the cost of sorting. -/ |
| 88 | axiom theorem5_byWidth : |
| 89 | ∃ (prog : Program) (c : ℕ), ∀ w : ℕ, |
| 90 | ApproximatesInTime w prog |
| 91 | {x | x ∈ ApproxInstances ∧ Fits c w x ∧ |
| 92 | c * ((List.range (jobCount x)).map (wt x)).sum ≤ 2 ^ w ∧ |
| 93 | (∀ j < jobCount x, 0 < procTime x j) ∧ |
| 94 | c * (jobCount x + 1) ^ 2 * (threshold x + 1) * 2 ^ widthOf x * |
| 95 | (jobCount x + 1) ≤ 2 ^ w} |
| 96 | (fun x => c * (jobCount x + 1) ^ 2 * (threshold x + 1) * 2 ^ widthOf x * |
| 97 | (jobCount x + 1) + c * sortCost x) |
| 98 | |
| 99 | /-- **Theorem 5, from the profile sweep.** An approximation scheme running within |
| 100 | `c · (n+1)² · (e+1) · (m+1)^q_max · (n+1)` instructions, plus the cost of sorting. -/ |
| 101 | axiom theorem5_byQmax : |
| 102 | ∃ (prog : Program) (c : ℕ), ∀ w : ℕ, |
| 103 | ApproximatesInTime w prog |
| 104 | {x | x ∈ ApproxInstances ∧ Fits c w x ∧ |
| 105 | c * ((List.range (jobCount x)).map (wt x)).sum ≤ 2 ^ w ∧ |
| 106 | (∀ j < jobCount x, 0 < procTime x j) ∧ |
| 107 | c * (jobCount x + 1) ^ 2 * (threshold x + 1) * |
| 108 | (machineCount x + 1) ^ qmaxOf x * (jobCount x + 1) ≤ 2 ^ w} |
| 109 | (fun x => c * (jobCount x + 1) ^ 2 * (threshold x + 1) * |
| 110 | (machineCount x + 1) ^ qmaxOf x * (jobCount x + 1) + c * sortCost x) |
| 111 | |
| 112 | end Lax496464.Theorem5 |
| 113 |
Formalization Notes
Four statements. The first is the rounding argument itself, the chain of inequalities (8), which is where the approximation guarantee comes from and which says nothing about any machine. The other three are the schemes, one per program, differing only in the factor each contributes: the of the second theorem, the of the first half of the third, and the of its second half. In each the threshold is gone, replaced by the that the rounding leaves, which is what makes the scheme fully polynomial in .
The guarantee is the one an approximation scheme gives, so the statements are about a machine that halts within a bound having written some acceptable answer, rather than about one computing a function.
The rounding argument assumes what Section 7 assumes of its input: that there is a machine to run a job on, and that every job can be preprocessed on its own, , jobs failing which are discarded. Both are needed, and the chain is false without them — an instance whose heaviest job cannot be scheduled has , and the chain, which ends by replacing by , has nothing to end at.
None of the three bounds is polynomial in the input alone: each carries the factor its program carries, and what the theorem says is that the scheme is fully polynomial once that factor is a constant. Stating the factor explicitly, rather than fixing the parameter and hiding it in a constant, is what keeps the three statements comparable to the theorems they come from.
The domain of each scheme also asks that the total weight of the jobs fit a word with room for the constant, : the scheme writes a number that a feasible set reaches, which can be as large as the total weight, and the entries of the word are bounded individually by the fitting condition but their sum is not, so without this clause an instance of many heavy jobs has answers that no machine of that word length can write. The factor is the same constant as in the running time: the machine's memory layout needs every value it writes to stay below a fixed fraction of . Positive processing times are asked for as in the exact programs the schemes are built from: the paper's standing assumption for the recursions behind them.
What a scheme delivers is a number reached by a feasible set, not the exact weight of a set it has in hand; see . That is what the rounding argument supports: the optimum for the rounded weights gives a set whose true weight is within the guarantee, and the number written is that weight less the rounding loss, which the set reaches.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments