{
  "name": "Scheduling",
  "version": "1.0.0",
  "area": {
    "name": "Scheduling",
    "slug": "scheduling",
    "group": "Optimization",
    "kind": "scheduling",
    "summary": "Attach feasibility and optimality to an explicit scheduling model, including resource assumptions and the objective.",
    "definitions": [
      {
        "term": "Makespan",
        "definition": "The completion time of the last job."
      },
      {
        "term": "Non-preemptive job",
        "definition": "A job runs continuously once it starts."
      },
      {
        "term": "Identical machine model",
        "definition": "Every machine has the same processing rate, and independent jobs are available at time zero."
      }
    ],
    "methodology": [
      "Enumerate every job-to-machine assignment.",
      "Sum the durations assigned to each machine.",
      "Evaluate makespan as the maximum load.",
      "Check that the witness achieves the minimum across all assignments."
    ],
    "complexity": "m machines and n jobs produce mⁿ assignments. In this model, job order within a machine does not change the load.",
    "common_error": "A balanced-looking schedule need not be optimal; release dates and precedence change the problem.",
    "next_question": "Add precedence-constrained schedules and dual or lower-bound certificates.",
    "references": [
      "https://developers.google.com/optimization/assignment/linear_assignment"
    ]
  },
  "records": [
    {
      "id": "KL-FCS-010",
      "version": "1.0.0",
      "domain": "Scheduling",
      "kind": "scheduling",
      "title": "An optimal two-machine schedule",
      "problem": "Schedule independent, non-preemptive jobs with durations [2, 2, 1] on two identical machines, all available at time zero, to minimize makespan.",
      "specification": {
        "durations": [
          2,
          2,
          1
        ],
        "machines": 2,
        "constraints": "No precedence, setup time, release delay, or preemption; each machine runs its assigned jobs sequentially."
      },
      "claim": {
        "minimum_makespan": 3
      },
      "witness": {
        "assignment": [
          0,
          1,
          0
        ]
      },
      "verification_scope": "Complete assignment enumeration · 8 schedules",
      "explanation": "Assign the first and third jobs to machine 0 and the second to machine 1. Loads are 3 and 2. Enumeration of every assignment establishes the optimum; job order does not affect loads in this model.",
      "limitations": "Only this job set and scheduling model; additional constraints require a new specification and checker.",
      "verification_status": "mechanically-checked",
      "review_status": "awaiting-independent-review",
      "provenance": {
        "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
        "external_dataset": null,
        "model_run": null
      },
      "references": [
        "https://developers.google.com/optimization/assignment/linear_assignment"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "scheduling",
        "task": "Schedule independent, non-preemptive jobs with durations [2, 2, 1] on two identical machines, all available at time zero, to minimize makespan.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete assignment enumeration · 8 schedules",
        "acceptance": [
          "Enumerate every job-to-machine assignment.",
          "Sum the durations assigned to each machine.",
          "Evaluate makespan as the maximum load.",
          "Check that the witness achieves the minimum across all assignments."
        ],
        "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
        "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
      },
      "lesson": {
        "motivation": "Attach feasibility and optimality to an explicit scheduling model, including resource assumptions and the objective.",
        "definitions": [
          {
            "term": "Makespan",
            "definition": "The completion time of the last job."
          },
          {
            "term": "Non-preemptive job",
            "definition": "A job runs continuously once it starts."
          },
          {
            "term": "Identical machine model",
            "definition": "Every machine has the same processing rate, and independent jobs are available at time zero."
          }
        ],
        "reasoning": [
          "Enumerate every job-to-machine assignment.",
          "Sum the durations assigned to each machine.",
          "Evaluate makespan as the maximum load.",
          "Check that the witness achieves the minimum across all assignments."
        ],
        "worked_example": "Assign the first and third jobs to machine 0 and the second to machine 1. Loads are 3 and 2. Enumeration of every assignment establishes the optimum; job order does not affect loads in this model.",
        "complexity": "m machines and n jobs produce mⁿ assignments. In this model, job order within a machine does not change the load.",
        "common_error": "A balanced-looking schedule need not be optimal; release dates and precedence change the problem.",
        "further_work": "Add precedence-constrained schedules and dual or lower-bound certificates."
      },
      "related_ids": [
        "KL-FCS-024",
        "KL-FCS-025"
      ]
    },
    {
      "id": "KL-FCS-024",
      "version": "1.0.0",
      "domain": "Scheduling",
      "kind": "scheduling",
      "title": "A perfectly balanced four-job schedule",
      "problem": "Minimize makespan for independent jobs on identical machines.",
      "specification": {
        "durations": [
          3,
          2,
          2,
          1
        ],
        "machines": 2,
        "constraints": "Non-preemptive; all available at time zero; no precedence or setup times."
      },
      "claim": {
        "minimum_makespan": 4
      },
      "witness": {
        "assignment": [
          0,
          1,
          1,
          0
        ]
      },
      "verification_scope": "Complete assignment space · 16 schedules",
      "explanation": "The witness lists one machine per job. Feasibility follows from sequential execution on each machine, and enumeration establishes the minimum load ceiling.",
      "limitations": "The model excludes release delays, precedence, heterogeneous machines, and setup costs.",
      "verification_status": "mechanically-checked",
      "review_status": "awaiting-independent-review",
      "provenance": {
        "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
        "external_dataset": null,
        "model_run": null
      },
      "references": [
        "https://developers.google.com/optimization/assignment/linear_assignment"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "scheduling",
        "task": "Minimize makespan for independent jobs on identical machines.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete assignment space · 16 schedules",
        "acceptance": [
          "Enumerate every job-to-machine assignment.",
          "Sum the durations assigned to each machine.",
          "Evaluate makespan as the maximum load.",
          "Check that the witness achieves the minimum across all assignments."
        ],
        "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
        "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
      },
      "lesson": {
        "motivation": "Attach feasibility and optimality to an explicit scheduling model, including resource assumptions and the objective.",
        "definitions": [
          {
            "term": "Makespan",
            "definition": "The completion time of the last job."
          },
          {
            "term": "Non-preemptive job",
            "definition": "A job runs continuously once it starts."
          },
          {
            "term": "Identical machine model",
            "definition": "Every machine has the same processing rate, and independent jobs are available at time zero."
          }
        ],
        "reasoning": [
          "Enumerate every job-to-machine assignment.",
          "Sum the durations assigned to each machine.",
          "Evaluate makespan as the maximum load.",
          "Check that the witness achieves the minimum across all assignments."
        ],
        "worked_example": "The witness lists one machine per job. Feasibility follows from sequential execution on each machine, and enumeration establishes the minimum load ceiling.",
        "complexity": "m machines and n jobs produce mⁿ assignments. In this model, job order within a machine does not change the load.",
        "common_error": "A balanced-looking schedule need not be optimal; release dates and precedence change the problem.",
        "further_work": "Add precedence-constrained schedules and dual or lower-bound certificates."
      },
      "related_ids": [
        "KL-FCS-010",
        "KL-FCS-025"
      ]
    },
    {
      "id": "KL-FCS-025",
      "version": "1.0.0",
      "domain": "Scheduling",
      "kind": "scheduling",
      "title": "Three machines and five jobs",
      "problem": "Minimize makespan for independent jobs on identical machines.",
      "specification": {
        "durations": [
          4,
          3,
          2,
          2,
          1
        ],
        "machines": 3,
        "constraints": "Non-preemptive; all available at time zero; no precedence or setup times."
      },
      "claim": {
        "minimum_makespan": 4
      },
      "witness": {
        "assignment": [
          0,
          1,
          2,
          2,
          1
        ]
      },
      "verification_scope": "Complete assignment space · 243 schedules",
      "explanation": "The witness lists one machine per job. Feasibility follows from sequential execution on each machine, and enumeration establishes the minimum load ceiling.",
      "limitations": "The model excludes release delays, precedence, heterogeneous machines, and setup costs.",
      "verification_status": "mechanically-checked",
      "review_status": "awaiting-independent-review",
      "provenance": {
        "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
        "external_dataset": null,
        "model_run": null
      },
      "references": [
        "https://developers.google.com/optimization/assignment/linear_assignment"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "scheduling",
        "task": "Minimize makespan for independent jobs on identical machines.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete assignment space · 243 schedules",
        "acceptance": [
          "Enumerate every job-to-machine assignment.",
          "Sum the durations assigned to each machine.",
          "Evaluate makespan as the maximum load.",
          "Check that the witness achieves the minimum across all assignments."
        ],
        "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
        "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
      },
      "lesson": {
        "motivation": "Attach feasibility and optimality to an explicit scheduling model, including resource assumptions and the objective.",
        "definitions": [
          {
            "term": "Makespan",
            "definition": "The completion time of the last job."
          },
          {
            "term": "Non-preemptive job",
            "definition": "A job runs continuously once it starts."
          },
          {
            "term": "Identical machine model",
            "definition": "Every machine has the same processing rate, and independent jobs are available at time zero."
          }
        ],
        "reasoning": [
          "Enumerate every job-to-machine assignment.",
          "Sum the durations assigned to each machine.",
          "Evaluate makespan as the maximum load.",
          "Check that the witness achieves the minimum across all assignments."
        ],
        "worked_example": "The witness lists one machine per job. Feasibility follows from sequential execution on each machine, and enumeration establishes the minimum load ceiling.",
        "complexity": "m machines and n jobs produce mⁿ assignments. In this model, job order within a machine does not change the load.",
        "common_error": "A balanced-looking schedule need not be optimal; release dates and precedence change the problem.",
        "further_work": "Add precedence-constrained schedules and dual or lower-bound certificates."
      },
      "related_ids": [
        "KL-FCS-010",
        "KL-FCS-024"
      ]
    }
  ],
  "verification": [
    {
      "id": "KL-FCS-010",
      "status": "mechanically-checked",
      "check_units": 8,
      "scope": "Complete assignment enumeration · 8 schedules",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-024",
      "status": "mechanically-checked",
      "check_units": 16,
      "scope": "Complete assignment space · 16 schedules",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-025",
      "status": "mechanically-checked",
      "check_units": 243,
      "scope": "Complete assignment space · 243 schedules",
      "review_status": "awaiting-independent-review"
    }
  ]
}
