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

The steps between objectives on words

Lax434175.ThresholdWords · concepts/Lax434175/ThresholdWords.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

    The zoo relates objectives by reductions of decision versions that change the objective data and the threshold: the makespan and the maximum lateness reduce to the number of late jobs and to the total tardiness, flow time to tardiness with due dates at the release dates, and completion time to flow time with the threshold lowered by the release dates (ThresholdsThresholds). On standard words such a step rewrites only the final block of release dates, weights and due dates and the threshold.

    There are five modes. With the threshold DD, the release date rjr_j, the weight wjw_j and the due date djd_j of job jj:

    Mode Steps New due date New threshold
    late, constant Cmax⁡→∑Uj,∑TjC_{\max} \to \sum U_j, \sum T_j max⁡(D,0)\max(D, 0) −1-1 if D<0D < 0, else 00
    late, shifted Lmax⁡→∑Uj,∑TjL_{\max} \to \sum U_j, \sum T_j max⁡(dj+D,0)\max(d_j + D, 0) −1-1 if n=0n = 0 and D<0D < 0 or some dj+D<0d_j + D < 0, else 00
    release ∑Fj→∑Tj\sum F_j \to \sum T_j, ∑wjFj→∑wjTj\sum w_jF_j \to \sum w_jT_j, Fmax⁡→Lmax⁡F_{\max} \to L_{\max} rjr_j DD
    shift ∑Cj→∑Fj\sum C_j \to \sum F_j djd_j D−∑jrjD - \sum_j r_j
    weighted shift ∑wjCj→∑wjFj\sum w_jC_j \to \sum w_jF_j djd_j D−∑jwjrjD - \sum_j w_j r_j

    The word map reads the number nn of jobs from the second number of the word and the threshold from its last two numbers, and rewrites the 3n3n numbers before the threshold; a word too short for this is left unchanged.

    Theorem. The word map of every mode is computable in polynomial time on the word RAM. On the standard word of an instance xx of a specification of the operations family with the standard encoding and the source objective, with threshold DD, it writes the standard word of the stepped instance with the new threshold, which has the same answer.

    Theorem. Consequently NP-hardness and strong NP-hardness go from the source objective to the target objective.

    Concept map
    60 concepts; 1 descendant hidden
    100%
    Conjunctive normal formAssembling problems from fieldsOne family for serial and parallel batchingBatching problems in three-field notationBatch scheduling on a single machineCommunication delaysBounds on the number of machines and jobsDeadlinesForbidden times and input encodingsInterruption as a field of parallel-machineschedulingScheduling kernelsMaximizing the minimum machine loadMachine sets and multiprocessor tasksConstraint modules and objectivesNon-preemptive scheduling on parallelmachinesCompletion-time objectivesOnline scheduling as a gameScheduling 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 embeddingsSingle-machine scheduling with rejectionRelease datesPreemption with restarts on parallelmachinesParameters of the zoo's resultsThe kinds of results on scheduling problemsA single server with setup timesNo-idle shops and batch setup timesOne family for shops with and withoutpreemptionShop problems in three-field notationShop schedulingThe standard reading of scheduling instancesand schedulesThe steps between objectives on wordsThreshold reductions between objectivesTransportation delays and a transport robotScheduling problems as parameterizedproblems on wordsParameters of scheduling problemsBinary encoding of an input and a certificateThe complexity class NPThe complexity class PFixed-Parameter Time on the Word RAMFPT-Reductions, FPT, Hardness andCompletenessFinite Relational StructuresFirst-Order Formulas and the Classes Σ_tand Π_tModel Checking and Weighted FaginDefinabilityThe W-Hierarchy and the A-HierarchyNP-Hardness of a Problem on Words ofNumbersBinary encoding of finite wordsPolynomial-time computation by a wordRAMPolynomial-time computation by a TuringmachineThe word RAMComputing a function within a time boundParameterized Problems andFPT-Reductions on a Word RAM
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    Lean source view on GitHub

    1import Lax434175.StandardReading
    2
    3/-!
    4---
    5title: The steps between objectives on words
    6type: theorem
    7---
    8The zoo relates objectives by reductions of decision versions that change the
    9objective data and the threshold: the makespan and the maximum lateness reduce to
    10the number of late jobs and to the total tardiness, flow time to tardiness with
    11due dates at the release dates, and completion time to flow time with the
    12threshold lowered by the release dates (`Thresholds`). On standard words such a
    13step rewrites only the final block of release dates, weights and due dates and
    14the threshold.
    15
    16There are five modes. With the threshold DD, the release date rjr_j, the weight
    17wjw_j and the due date djd_j of job jj:
    18
    19| Mode | Steps | New due date | New threshold |
    20|---|---|---|---|
    21| late, constant | Cmax⁡→∑Uj,∑TjC_{\max} \to \sum U_j, \sum T_j | max⁡(D,0)\max(D, 0) | −1-1 if D<0D < 0, else 00 |
    22| late, shifted | Lmax⁡→∑Uj,∑TjL_{\max} \to \sum U_j, \sum T_j | max⁡(dj+D,0)\max(d_j + D, 0) | −1-1 if n=0n = 0 and D<0D < 0 or some dj+D<0d_j + D < 0, else 00 |
    23| release | ∑Fj→∑Tj\sum F_j \to \sum T_j, ∑wjFj→∑wjTj\sum w_jF_j \to \sum w_jT_j, Fmax⁡→Lmax⁡F_{\max} \to L_{\max} | rjr_j | DD |
    24| shift | ∑Cj→∑Fj\sum C_j \to \sum F_j | djd_j | D−∑jrjD - \sum_j r_j |
    25| weighted shift | ∑wjCj→∑wjFj\sum w_jC_j \to \sum w_jF_j | djd_j | D−∑jwjrjD - \sum_j w_j r_j |
    26
    27The word map reads the number nn of jobs from the second number of the word and
    28the threshold from its last two numbers, and rewrites the 3n3n numbers before the
    29threshold; a word too short for this is left unchanged.
    30
    31**Theorem.** The word map of every mode is computable in polynomial time on the
    32word RAM. On the standard word of an instance xx of a specification of the
    33operations family with the standard encoding and the source objective, with
    34threshold DD, it writes the standard word of the stepped instance with the new
    35threshold, which has the same answer.
    36
    37**Theorem.** Consequently NP-hardness and strong NP-hardness go from the source
    38objective to the target objective.
    39-/
    40
    41namespace Lax434175.ThresholdWords
    42open Lax434175 Lax434175.Problems Lax434175.Assembly Lax434175.Results
    43
    44/-- The modes of the steps. -/
    45inductive StepMode
    46 | lateConst
    47 | lateShift
    48 | toRelease
    49 | shift
    50 | weightedShift
    51 deriving DecidableEq
    52
    53/-- The step from one objective to another, if there is one. -/
    54def stepOf : Objectives.Value → Objectives.Value → Option StepMode
    55 | .makespan, .sumU | .makespan, .sumT => some .lateConst
    56 | .lmax, .sumU | .lmax, .sumT => some .lateShift
    57 | .sumF, .sumT | .sumWF, .sumWT | .fmax, .lmax => some .toRelease
    58 | .sumC, .sumF => some .shift
    59 | .sumWC, .sumWF => some .weightedShift
    60 | _, _ => none
    61
    62/-- The threshold of the sign and the absolute value. -/
    63def readThr (neg a : ℕ) : ℤ := if neg = 0 then (a : ℤ) else -(a : ℤ)
    64
    65/-- The threshold as sign and absolute value. -/
    66def thrWord (D : ℤ) : List ℕ := [if D < 0 then 1 else 0, D.natAbs]
    67
    68/-- The new due date. -/
    69def newDue : StepMode → ℤ → ℕ → ℕ → ℕ
    70 | .lateConst, D, _, _ => D.toNat
    71 | .lateShift, D, _, d => ((d : ℤ) + D).toNat
    72 | .toRelease, _, r, _ => r
    73 | .shift, _, _, d => d
    74 | .weightedShift, _, _, d => d
    75
    76open Classical in
    77/-- The new threshold. -/
    78noncomputable def newThr : StepMode → ℕ → ℤ → (ℕ → ℕ) → (ℕ → ℕ) → (ℕ → ℕ) → ℤ
    79 | .lateConst, _, D, _, _, _ => if D < 0 then -1 else 0
    80 | .lateShift, n, D, _, _, d =>
    81 if (n = 0 ∧ D < 0) ∨ ∃ j < n, (d j : ℤ) + D < 0 then -1 else 0
    82 | .toRelease, _, D, _, _, _ => D
    83 | .shift, n, D, r, _, _ => D - ∑ j ∈ Finset.range n, (r j : ℤ)
    84 | .weightedShift, n, D, r, w, _ => D - ∑ j ∈ Finset.range n, (w j : ℤ) * (r j : ℤ)
    85
    86open Classical in
    87/-- The word map of a mode. -/
    88noncomputable def stepWord (mode : StepMode) (u : List ℕ) : List ℕ :=
    89 if u.length < 3 * u.getD 1 0 + 2 then u else
    90 let n := u.getD 1 0
    91 let base := u.length - 2 - 3 * n
    92 let D := readThr (u.getD (u.length - 2) 0) (u.getD (u.length - 1) 0)
    93 let r := fun j => u.getD (base + 3 * j) 0
    94 let w := fun j => u.getD (base + 3 * j + 1) 0
    95 let d := fun j => u.getD (base + 3 * j + 2) 0
    96 u.take base ++ (List.ofFn fun j : Fin n => [r j, w j, newDue mode D (r j) (d j)]).flatten ++
    97 thrWord (newThr mode n D r w d)
    98
    99axiom stepWord_polytime (mode : StepMode) : Lax759944.RamPolytime.RamPolytime (stepWord mode)
    100
    101variable {values : (i : OperationsFamily.FieldName) → (OperationsFamily.family.module i).Value}
    102
    103axiom stepWord_correct (hs : values .encoding = .standard) {o o' : Objectives.Value}
    104 {mode : StepMode} (hm : stepOf o o' = some mode) {u : List ℕ}
    105 {x : Inst OperationsFamily.family (Thresholds.withObjective values o)} {D : ℤ}
    106 (hx : EncodesDecision (StandardReading.ops.at (Thresholds.withObjective values o)) u x D) :
    107 ∃ y D', EncodesDecision (StandardReading.ops.at (Thresholds.withObjective values o'))
    108 (stepWord mode u) y D' ∧
    109 ((problem _ (Thresholds.withObjective values o)).Decides x D ↔
    110 (problem _ (Thresholds.withObjective values o')).Decides y D')
    111
    112axiom npHard_step (hs : values .encoding = .standard) {o o' : Objectives.Value} {mode : StepMode}
    113 (hm : stepOf o o' = some mode) :
    114 NPHard (StandardReading.ops.at (Thresholds.withObjective values o)) →
    115 NPHard (StandardReading.ops.at (Thresholds.withObjective values o'))
    116
    117axiom stronglyNPHard_step (hs : values .encoding = .standard) {o o' : Objectives.Value}
    118 {mode : StepMode} (hm : stepOf o o' = some mode) :
    119 StronglyNPHard (StandardReading.ops.at (Thresholds.withObjective values o)) →
    120 StronglyNPHard (StandardReading.ops.at (Thresholds.withObjective values o'))
    121
    122end Lax434175.ThresholdWords
    123
    Show ProofShow ProofShow ProofShow Proof
    Builds on
    Used by
    From Mathlib

    none

    Discussion

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

    Loading discussion…