Earliest-Start-Time Order, and Distinct Endpoints
Lax496464.EstOrder · concepts/Lax496464/EstOrder.lean · lax-496464
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
Two standing conventions of the paper's algorithmic sections, and the rescaling that establishes the second.
An instance is in earliest-start-time order when its jobs are numbered so that the start times are nondecreasing. Every algorithm of the paper begins by sorting the jobs this way, and its tables are indexed by the resulting order.
The endpoints of an instance are the numbers and . They are distinct when no two of them coincide. Section 4 assumes this, and obtains it by the rescaling
which leaves the weights alone.
Concept map
In the paper
- page 2 of this submission's paper
Lean source view on GitHub
| 1 | import Lax496464.FlowShop |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Earliest-Start-Time Order, and Distinct Endpoints |
| 6 | type: definition |
| 7 | --- |
| 8 | Two standing conventions of the paper's algorithmic sections, and the rescaling that |
| 9 | establishes the second. |
| 10 | |
| 11 | An instance is *in earliest-start-time order* when its jobs are numbered so that the |
| 12 | start times are nondecreasing. Every algorithm of the paper |
| 13 | begins by sorting the jobs this way, and its tables are indexed by the resulting order. |
| 14 | |
| 15 | The *endpoints* of an instance are the numbers and . They are *distinct* |
| 16 | when no two of them coincide. Section 4 assumes this, and obtains it by the rescaling |
| 17 | |
| 18 | which leaves the weights alone. |
| 19 | |
| 20 | # Formalization Notes |
| 21 | |
| 22 | Earliest-start-time order is a property of an instance rather than a separate kind of |
| 23 | object, so that every result about instances applies to one in that order without |
| 24 | transport. |
| 25 | |
| 26 | The rescaling shifts the *whole* interval of job by , not only its right endpoint, |
| 27 | since . That is what makes it sound, and also what |
| 28 | makes it depend on the numbering: two intervals that merely touch, with no |
| 29 | conflict between them, would begin to overlap if the later-starting job had the smaller |
| 30 | index. Under earliest-start-time order that cannot happen, because |
| 31 | forces . So the assumption is not about the size of the multiplier alone, and the |
| 32 | statements about the rescaling carry the order as a hypothesis. |
| 33 | |
| 34 | The rescaled instance has the same number of jobs, so a set of jobs of one is a set of |
| 35 | jobs of the other with no coercion. |
| 36 | -/ |
| 37 | |
| 38 | namespace Lax496464.EstOrder |
| 39 | |
| 40 | open Lax496464.FlowShop Lax496464.FlowShop.Instance |
| 41 | |
| 42 | /-- The jobs are numbered in nondecreasing order of their start times. -/ |
| 43 | def EstOrdered (I : Instance) : Prop := ∀ i j : I.Job, i ≤ j → s i ≤ s j |
| 44 | |
| 45 | /-- No two of the `2n` endpoints `s j` and `d j` coincide. -/ |
| 46 | structure DistinctEndpoints (I : Instance) : Prop where |
| 47 | /-- Distinct jobs have distinct start times. -/ |
| 48 | start_inj : ∀ i j : I.Job, s i = s j → i = j |
| 49 | /-- Distinct jobs have distinct due dates. -/ |
| 50 | due_inj : ∀ i j : I.Job, (I.d i : ℤ) = (I.d j : ℤ) → i = j |
| 51 | /-- No start time is a due date. -/ |
| 52 | start_ne_due : ∀ i j : I.Job, s i ≠ (I.d j : ℤ) |
| 53 | |
| 54 | /-- The rescaled instance `d' j = (n+1) d j + j`, `q' j = (n+1) q j`, `p' j = (n+1) p j`, |
| 55 | with the weights unchanged. -/ |
| 56 | def scale (I : Instance) : Instance where |
| 57 | jobs := I.jobs |
| 58 | machines := I.machines |
| 59 | p j := (I.jobs + 1) * I.p j |
| 60 | q j := (I.jobs + 1) * I.q j |
| 61 | d j := (I.jobs + 1) * I.d j + (j : ℕ) |
| 62 | w j := I.w j |
| 63 | |
| 64 | end Lax496464.EstOrder |
| 65 |
Formalization Notes
Earliest-start-time order is a property of an instance rather than a separate kind of object, so that every result about instances applies to one in that order without transport.
The rescaling shifts the whole interval of job by , not only its right endpoint, since . That is what makes it sound, and also what makes it depend on the numbering: two intervals that merely touch, with no conflict between them, would begin to overlap if the later-starting job had the smaller index. Under earliest-start-time order that cannot happen, because forces . So the assumption is not about the size of the multiplier alone, and the statements about the rescaling carry the order as a hypothesis.
The rescaled instance has the same number of jobs, so a set of jobs of one is a set of jobs of the other with no coercion.
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.
0 comments