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

Parameters of scheduling problems

Lax434175.ZooParameters · concepts/Lax434175/ZooParameters.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 parameters by which scheduling problems are commonly parameterized are functions of an instance.

    Over every kernel: the number nn of jobs and the number of distinct release dates. On parallel machines and in shops: the number mm of machines, the maximum processing time pmax⁡p_{\max} and the number of distinct processing times. For every objective value: the number of distinct weights and the number of distinct due dates, where an unweighted value has the weights 11 and a value without due dates the due dates 00.

    The first five depend on the kernel instance only. They are therefore preserved by every embedding induced by a field-wise comparison and by every reduction in place.

    Theorem. Reading the data of an objective value with a more general value changes neither the number of distinct weights nor the number of distinct due dates.

    Concept map
    6 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on ADescendants are omitted for concepts with more than 10 descendants.
    Evidence

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

    Lean source view on GitHub

    1import Mathlib.Data.Finset.Image
    2import Mathlib.Data.Finset.Lattice.Fold
    3import Mathlib.Data.Fintype.Prod
    4import Lax434175.ParallelMachines
    5import Lax434175.Shops
    6import Lax434175.Objectives
    7
    8/-!
    9---
    10title: Parameters of scheduling problems
    11type: theorem
    12---
    13The parameters by which scheduling problems are commonly parameterized are
    14functions of an instance.
    15
    16Over every kernel: the number nn of jobs and the number of distinct release
    17dates. On parallel machines and in shops: the number mm of machines, the
    18maximum processing time pmax⁡p_{\max} and the number of distinct processing
    19times. For every objective value: the number of distinct weights and the
    20number of distinct due dates, where an unweighted value has the weights 11
    21and a value without due dates the due dates 00.
    22
    23The first five depend on the kernel instance only. They are therefore
    24preserved by every embedding induced by a field-wise comparison and by every
    25reduction in place.
    26
    27**Theorem.** Reading the data of an objective value with a more general
    28value changes neither the number of distinct weights nor the number of
    29distinct due dates.
    30-/
    31
    32namespace Lax434175.ZooParameters
    33open Lax434175.Kernels Lax434175.Modules
    34
    35/-- The number of distinct values of a function on the jobs. -/
    36def distinct {n : ℕ} (f : Fin n → ℕ) : ℕ := (Finset.univ.image f).card
    37
    38/-- The number of jobs. -/
    39def jobs (K : Kernel) : K.Inst → ℕ := K.jobs
    40
    41/-- The number of distinct release dates. -/
    42def releaseDates (K : Kernel) (x : K.Inst) : ℕ := distinct (K.release x)
    43
    44namespace Parallel
    45
    46/-- The number of machines. -/
    47def machines (M : ParallelMachines.Model) : M.kernel.Inst → ℕ := ParallelMachines.machines M
    48
    49/-- The maximum processing time. -/
    50def pmax (M : ParallelMachines.Model) (x : M.kernel.Inst) : ℕ :=
    51 Finset.univ.sup fun j => Finset.univ.sup fun i => (M.inst x).p j i
    52
    53/-- The number of distinct processing times. -/
    54def processingTimes (M : ParallelMachines.Model) (x : M.kernel.Inst) : ℕ :=
    55 (Finset.univ.image fun q : Fin (M.inst x).jobs × Fin (M.inst x).machines =>
    56 (M.inst x).p q.1 q.2).card
    57
    58end Parallel
    59
    60namespace Shop
    61
    62/-- The number of machines. -/
    63def machines : Shops.kernel.Inst → ℕ := Shops.machines
    64
    65/-- The maximum processing time of an operation. -/
    66def pmax (x : Shops.Inst) : ℕ :=
    67 Finset.univ.sup fun j => Finset.univ.sup fun k => x.p j k
    68
    69/-- The number of distinct processing times of operations. -/
    70def processingTimes (x : Shops.Inst) : ℕ :=
    71 (Finset.univ.image fun o : Shops.Op x => x.p o.1 o.2).card
    72
    73end Shop
    74
    75/-- The number of distinct weights. -/
    76def weights (K : Kernel) (v : Objectives.Value) (x : K.Inst) (d : Objectives.Data K v x) : ℕ :=
    77 distinct (Objectives.weight v d)
    78
    79/-- The number of distinct due dates. -/
    80def dueDates (K : Kernel) (v : Objectives.Value) (x : K.Inst) (d : Objectives.Data K v x) : ℕ :=
    81 distinct (Objectives.dueDate v d)
    82
    83axiom weights_embed (K : Kernel) (v w : Objectives.Value) (h : Objectives.le v w = true)
    84 (x : K.Inst) (d : Objectives.Data K v x) :
    85 weights K w x (Objectives.embed h x d) = weights K v x d
    86
    87axiom dueDates_embed (K : Kernel) (v w : Objectives.Value) (h : Objectives.le v w = true)
    88 (x : K.Inst) (d : Objectives.Data K v x) :
    89 dueDates K w x (Objectives.embed h x d) = dueDates K v x d
    90
    91end Lax434175.ZooParameters
    92
    Show ProofShow Proof

    Discussion

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

    Loading discussion…