Just-in-Time Scheduling on Unrelated Machines as Day-Independent Due Dates
Lax117284.Theorem11 · concepts/Lax117284/Theorem11.lean · lax-117284
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Theorem 11. The problem is NP-hard.
An instance of is read as an instance of fair repetitive interval scheduling by taking its jobs as clients and its machines as days: client 's job on day has the processing time of job on machine and the due date of job , which does not depend on the day. Executing every job just in time on some machine is then the same thing as serving every client on at least one day, so the constructed instance is a yes-instance at exactly when the given one admits an all-just-in-time schedule. Since is NP-hard, so is the problem with day-independent due dates.
Concept map
Evidence
In the paper
- page 2 of this submission's paper
Lean source view on GitHub
| 1 | import Lax117284.JustInTime |
| 2 | import Lax117284.Problems |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: Just-in-Time Scheduling on Unrelated Machines as Day-Independent Due Dates |
| 7 | type: theorem |
| 8 | --- |
| 9 | **Theorem 11.** The problem |
| 10 | is NP-hard. |
| 11 | |
| 12 | An instance of is read as an instance of fair repetitive interval |
| 13 | scheduling by taking its jobs as clients and its machines as days: client 's job on day |
| 14 | has the processing time of job on machine and the due date of job , which |
| 15 | does not depend on the day. Executing every job just in time on some machine is then the |
| 16 | same thing as serving every client on at least one day, so the constructed instance is a |
| 17 | yes-instance at exactly when the given one admits an all-just-in-time schedule. |
| 18 | Since is NP-hard, so is the problem with day-independent due dates. |
| 19 | |
| 20 | # Formalization Notes |
| 21 | |
| 22 | The two models are already the same up to naming, the whole content of the reduction being |
| 23 | that both ask for a partition of intervals ending at fixed times. The construction is |
| 24 | therefore a renaming, and what has to be checked is that it is one. |
| 25 | -/ |
| 26 | |
| 27 | namespace Lax117284.Theorem11 |
| 28 | |
| 29 | open Lax117284.Scheduling Lax117284.Problems Lax434930.PolynomialTime |
| 30 | open Lax429075.Reductions |
| 31 | |
| 32 | /-- **The instance of Theorem 11**: clients are jobs, days are machines, the due date of a |
| 33 | client is that of its job and so does not depend on the day. -/ |
| 34 | def inst (R : JustInTime.Instance) : Instance where |
| 35 | clients := R.jobs |
| 36 | days := R.machines |
| 37 | p i j := R.p i j |
| 38 | d _ j := R.d j |
| 39 | p_pos := R.p_pos |
| 40 | p_le_d := R.p_le_d |
| 41 | |
| 42 | /-- **The constructed instance has day-independent due dates.** -/ |
| 43 | axiom inst_dayIndepD (R : JustInTime.Instance) : (inst R).DayIndepD |
| 44 | |
| 45 | /-- **The construction is correct**: every job can be executed just in time exactly when |
| 46 | every client can be served on at least one day. -/ |
| 47 | axiom correct (R : JustInTime.Instance) : |
| 48 | R.AllJustInTime ↔ (inst R).HasKFairSchedule 1 |
| 49 | |
| 50 | open Classical in |
| 51 | /-- **The reduction**, as a map on words: a word encoding an instance of |
| 52 | `R || ∑_j Z_j` is sent to the encoding of the constructed instance with the fairness |
| 53 | parameter `1`, and every other word to the rejected word. -/ |
| 54 | noncomputable def reduce (w : Word) : Word := |
| 55 | if h : ∃ R : JustInTime.Instance, JustInTime.encodeInstance R = w then |
| 56 | encodeUniform (inst h.choose) 1 |
| 57 | else rejected |
| 58 | |
| 59 | /-- **The reduction is correct.** -/ |
| 60 | axiom reduce_correct (w : Word) : |
| 61 | w ∈ JustInTime.AllJIT ↔ reduce w ∈ Uniform fun I _ => I.DayIndepD |
| 62 | |
| 63 | /-- **The reduction runs in polynomial time.** -/ |
| 64 | axiom reduce_polyTime : Nonempty (Turing.TM2ComputableInPolyTime id id reduce) |
| 65 | |
| 66 | /-- **Theorem 11.** `R || ∑_j Z_j` reduces in polynomial time to the problem on the |
| 67 | instances with day-independent due dates. -/ |
| 68 | axiom allJIT_manyOne_dayIndepD : |
| 69 | ManyOne JustInTime.AllJIT (Uniform fun I _ => I.DayIndepD) |
| 70 | |
| 71 | end Lax117284.Theorem11 |
| 72 |
Formalization Notes
The two models are already the same up to naming, the whole content of the reduction being that both ask for a partition of intervals ending at fixed times. The construction is therefore a renaming, and what has to be checked is that it is one.
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments