While this submission is a draft, it cannot be used by other submissions.

Just-in-time flow shops of lax-496464 as zoo instances

Lax434175.JitFlowShop · concepts/Lax434175/JitFlowShop.lean · lax-434175

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Theorem

    An instance of just-in-time scheduling in a two-stage flexible flow shop (lax-496464) has nn jobs and mm identical second-stage machines; job jj has a preprocessing time pjp_j, a processing time qjq_j, a due date djd_j and a weight wjw_j. A set of jobs is feasible when its jobs can be scheduled, preprocessing on the single first-stage machine and processing on one of the mm machines, so that each completes exactly at its due date.

    Read the same data as an instance of FF(1,m)∣∣∑wjZjFF(1,m) \mid\mid \sum w_j Z_j with m+1m + 1 machines, machine 00 forming the first stage: job jj has two operations, of lengths pjp_j and qjq_j, the first on machine 00 and the second on one of the machines 1,…,m1, \dots, m, the due date djd_j and the weight wjw_j. Here every job is scheduled, and the cost of a schedule is the total weight of the jobs that do not complete exactly at their due dates.

    Theorem. If m≥1m \ge 1, the instance has a feasible set of weight at least WW if and only if the zoo instance has a schedule of cost at most ∑jwj−W\sum_j w_j - W. If all weights are 11, the same holds for the instance of FF(1,m)∣∣∑ZjFF(1,m) \mid\mid \sum Z_j with the threshold n−Wn - W.

    The jobs completing at their due dates in a schedule of the zoo instance form a feasible set: the start of the first operation is the preprocessing start, the machine of the second operation less one is the second-stage machine. Conversely, the jobs left out of a feasible set run after every due date, one after another, with the first operation on machine 00 and the second on machine 11.

    Three cases need no hypothesis. An operation of length 00 is a point; in both models it clashes exactly with an operation running across it, and two points never clash. A job with qj>djq_j > d_j is just in time in neither model, since its second operation would have to start before time 00. A threshold W>∑jwjW > \sum_j w_j is met in neither model. The hypothesis m≥1m \ge 1 is needed: for m=0m = 0 the empty set is feasible, but the second operation of a job of the zoo instance has no machine, so the zoo instance has no schedule as soon as it has a job. The construction of lax-496464 has k≥2k \ge 2 second-stage machines.

    Concept map
    45 concepts; 2 descendants hidden
    100%
    Assembling problems from fieldsCommunication delaysBounds on the number of machines and jobsDeadlinesForbidden times and input encodingsInterruption as a field of parallel-machineschedulingJust-in-time flow shops of lax-496464 as zooinstancesScheduling kernelsMachine sets and multiprocessor tasksConstraint modules and objectivesNon-preemptive scheduling on parallelmachinesCompletion-time objectivesScheduling with operationsOne family for parallel machines and shopsOne family for parallel machines with andwithout preemptionParallel machinesProblems on parallel machines in three-fieldnotationParameters along embeddingsPrecedence constraints and time lagsPreemptive scheduling on parallel machinesPreemptive shop problems in three-fieldnotationPreemptive shop schedulingOptimization problems and embeddingsRelease datesPreemption with restarts on parallelmachinesA single server with setup timesNo-idle shops and batch setup timesOne family for shops with and withoutpreemptionShop problems in three-field notationShop schedulingThreshold reductions between objectivesTransportation delays and a transport robotThe Scheduling Zoo, shop problemsBinary encoding of an input and a certificateThe complexity class NPThe complexity class PBinary Encoding of an InstanceThe Construction of Section 8Just-in-Time Scheduling in a Two-StageFlexible Flow ShopHitting SetNP-Hardness, and Strong NP-Hardness, of aScheduling ProblemParameterized Problems andFPT-Reductions on a Word RAMTheorem 1The word RAMComputing a function within a time bound
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    This concept declares 2 statements. Each proof establishes one of them relative to its assumptions.

    2 hasWeight_iff_unit proven

    Lean source view on GitHub

    1import Lax434175.ZooShops
    2import Lax496464.Theorem1
    3
    4/-!
    5---
    6title: Just-in-time flow shops of lax-496464 as zoo instances
    7type: theorem
    8---
    9An instance of just-in-time scheduling in a two-stage flexible flow shop (lax-496464) has nn
    10jobs and mm identical second-stage machines; job jj has a preprocessing time pjp_j, a
    11processing time qjq_j, a due date djd_j and a weight wjw_j. A set of jobs is feasible when its
    12jobs can be scheduled, preprocessing on the single first-stage machine and processing on one of
    13the mm machines, so that each completes exactly at its due date.
    14
    15Read the same data as an instance of FF(1,m)∣∣∑wjZjFF(1,m) \mid\mid \sum w_j Z_j with m+1m + 1 machines,
    16machine 00 forming the first stage: job jj has two operations, of lengths pjp_j and qjq_j, the
    17first on machine 00 and the second on one of the machines 1,…,m1, \dots, m, the due date djd_j
    18and the weight wjw_j. Here every job is scheduled, and the cost of a schedule is the total
    19weight of the jobs that do not complete exactly at their due dates.
    20
    21**Theorem.** If m≥1m \ge 1, the instance has a feasible set of weight at least WW if and only
    22if the zoo instance has a schedule of cost at most ∑jwj−W\sum_j w_j - W. If all weights are 11, the
    23same holds for the instance of FF(1,m)∣∣∑ZjFF(1,m) \mid\mid \sum Z_j with the threshold n−Wn - W.
    24
    25The jobs completing at their due dates in a schedule of the zoo instance form a feasible set:
    26the start of the first operation is the preprocessing start, the machine of the second
    27operation less one is the second-stage machine. Conversely, the jobs left out of a feasible
    28set run after every due date, one after another, with the first operation on machine 00 and the
    29second on machine 11.
    30
    31Three cases need no hypothesis. An operation of length 00 is a point; in both models it clashes
    32exactly with an operation running across it, and two points never clash. A job with
    33qj>djq_j > d_j is just in time in neither model, since its second operation would have to start
    34before time 00. A threshold W>∑jwjW > \sum_j w_j is met in neither model. The hypothesis
    35m≥1m \ge 1 is needed: for m=0m = 0 the empty set is feasible, but the second operation of a job of
    36the zoo instance has no machine, so the zoo instance has no schedule as soon as it has a job.
    37The construction of lax-496464 has k≥2k \ge 2 second-stage machines.
    38-/
    39
    40namespace Lax434175.JitFlowShop
    41open Lax434175 Lax434175.Problems Lax434175.Assembly
    42open Lax496464.FlowShop
    43
    44/-- The operations instance of a flow shop instance: `m + 1` machines, the first for the
    45first stage; every job has two operations, of lengths `p j` and `q j` on every machine. -/
    46def base (I : Instance) : Operations.Inst where
    47 jobs := I.jobs
    48 machines := I.machines + 1
    49 ops := fun _ => 2
    50 p := fun j k _ => if k.val = 0 then I.p j else I.q j
    51 r := fun _ => 0
    52
    53/-- The data of the fields, the same for `p315` and `p316`. -/
    54def data (I : Instance) : (i : OperationsFamily.FieldName) →
    55 (OperationsFamily.family.module i).Data (ZooShops.p316.module i) (base I)
    56 | .interruption => ()
    57 | .jobStructure => ()
    58 | .environment => ()
    59 | .machineCount => ()
    60 | .jobCount => ()
    61 | .processingTimes => ()
    62 | .machineSets => ()
    63 | .releaseDates => ()
    64 | .deadlines => ()
    65 | .precedence => ((), ())
    66 | .communicationDelays => ()
    67 | .server => ()
    68 | .forbiddenTimes => ()
    69 | .encoding => ()
    70 | .noWait => ()
    71 | .transportation => (fun _ _ _ => 0, fun _ _ => 0)
    72 | .noIdle => ()
    73 | .batchSetups => ()
    74
    75/-- The zoo instance of `FF(1,m)||Σw_jZ_j`. -/
    76def toZoo (I : Instance) : Inst OperationsFamily.family ZooShops.p316 where
    77 base := base I
    78 data := data I
    79 admitted
    80 | .interruption => trivial
    81 | .jobStructure => fun _ => rfl
    82 | .environment => fun _ _ _ => rfl
    83 | .machineCount => ⟨trivial, fun _ h => nomatch h⟩
    84 | .jobCount => ⟨trivial, fun _ h => nomatch h⟩
    85 | .processingTimes => trivial
    86 | .machineSets => Nat.succ_pos _
    87 | .releaseDates => fun _ => rfl
    88 | .deadlines => trivial
    89 | .precedence => ⟨fun _ _ h => h, trivial⟩
    90 | .communicationDelays => trivial
    91 | .server => trivial
    92 | .forbiddenTimes => trivial
    93 | .encoding => trivial
    94 | .noWait => trivial
    95 | .transportation => ⟨fun _ _ _ => rfl, fun _ _ _ => rfl⟩
    96 | .noIdle => trivial
    97 | .batchSetups => trivial
    98 objectiveData := (I.w, I.d)
    99 objectiveAdmitted := trivial
    100
    101/-- The zoo instance of `FF(1,m)||ΣZ_j`, the weights left out. -/
    102def toZooUnit (I : Instance) : Inst OperationsFamily.family ZooShops.p315 where
    103 base := base I
    104 data := data I
    105 admitted
    106 | .interruption => trivial
    107 | .jobStructure => fun _ => rfl
    108 | .environment => fun _ _ _ => rfl
    109 | .machineCount => ⟨trivial, fun _ h => nomatch h⟩
    110 | .jobCount => ⟨trivial, fun _ h => nomatch h⟩
    111 | .processingTimes => trivial
    112 | .machineSets => Nat.succ_pos _
    113 | .releaseDates => fun _ => rfl
    114 | .deadlines => trivial
    115 | .precedence => ⟨fun _ _ h => h, trivial⟩
    116 | .communicationDelays => trivial
    117 | .server => trivial
    118 | .forbiddenTimes => trivial
    119 | .encoding => trivial
    120 | .noWait => trivial
    121 | .transportation => ⟨fun _ _ _ => rfl, fun _ _ _ => rfl⟩
    122 | .noIdle => trivial
    123 | .batchSetups => trivial
    124 objectiveData := I.d
    125 objectiveAdmitted := trivial
    126
    127/-- The total weight of the jobs. -/
    128def totalWeight (I : Instance) : ℕ := ∑ j, I.w j
    129
    130axiom hasWeight_iff (I : Instance) (hm : 0 < I.machines) (W : ℕ) :
    131 I.HasWeight W ↔
    132 (problem _ ZooShops.p316).Decides (toZoo I) (((totalWeight I : ℤ) - W : ℤ) : ℚ)
    133
    134axiom hasWeight_iff_unit (I : Instance) (hm : 0 < I.machines) (hw : ∀ j, I.w j = 1) (W : ℕ) :
    135 I.HasWeight W ↔
    136 (problem _ ZooShops.p315).Decides (toZooUnit I) (((I.jobs : ℤ) - W : ℤ) : ℚ)
    137
    138end Lax434175.JitFlowShop
    139
    Show ProofShow Proof

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…