Производство · последовательность заданий
В каком порядке выпускать партии: переналадка и срок требуют одного проверяемого расчёта
Группировка похожих изделий сокращает подготовку, но может задержать срочное задание. Очередь по ближайшему сроку тоже не всегда даёт лучший результат, когда переход между изделиями занимает разное время. Для небольшого набора партий полезно сравнить все допустимые последовательности по одному заранее выбранному критерию.
Сначала зафиксируйте цель и неизменяемые условия
Рассматриваем уже согласованный набор заданий. Мы не выбираем, какое изделие выгоднее продавать и сколько его произвести. Все партии должны пройти один общий ресурс. Решение касается только порядка, а результат должен показывать, какие сроки достижимы при заданных условиях.
Выберите один критерий сравнения до просмотра вариантов. Здесь минимизируем сумму положительной просрочки заданий в минутах. Для задания она равна большему из нуля и разницы «завершение минус требуемый срок». Раннее завершение одного задания не компенсирует опоздание другого. Вес всех заданий одинаков; денежные штрафы и приоритетные коэффициенты не предполагаются.
Другие цели дали бы другой вопрос: закончить весь набор раньше, минимизировать число опоздавших или защитить конкретное обязательство. Не переключайте критерий после расчёта, чтобы понравившийся порядок выглядел победителем. В материалах MIT рассматриваются разные правила диспетчеризации и ограничения информации, которую каждое использует. MIT OCW: правила очередности.
Учебный набор: три задания и два семейства
Все числа условные. Один ресурс доступен непрерывно от минуты 0 до минуты 150. Материалы и сотрудники для всех заданий готовы в момент 0. Партии неделимы, прерывание не допускается, операции не перекрываются. После последнего задания возвращать ресурс в исходную настройку в этом горизонте не требуется.
Длительность p обозначает время получения принятого результата на рассматриваемом участке. Дальнейшая упаковка или доставка не входят в заданные здесь сроки и потребуют отдельного плана.
- A: семейство R, длительность 30 минут, срок завершения 50.
- B: семейство S, длительность 20 минут, срок завершения 90.
- C: семейство R, длительность 30 минут, срок завершения 120.
В начале ресурс настроен на R. Переход R→S занимает 20 минут, S→R — 35. Между заданиями одного семейства дополнительной подготовки в примере нет. Подготовка занимает тот же ресурс; параллельно выпускать следующую партию нельзя.
Сумма обработки равна 30 + 20 + 30 = 80 минут. Но это ещё не длительность расписания. Время перехода зависит от направления: 20 и 35 нельзя заменить одним удобным средним. MIT отдельно описывает матрицу переходов Sij и случаи зависимости настройки от последовательности. MIT OCW: зависимые переналадки.
Очередь по ближайшему сроку: A, B, C
A заканчивается на минуте 30. Затем переход R→S занимает 20, обработка B ещё 20: B заканчивается на минуте 70. Далее S→R занимает 35, C — ещё 30: завершение C приходится на минуту 135.
A и B готовы раньше сроков, C опаздывает на 135 − 120 = 15. Критерий равен 0 + 0 + 15 = 15. Общая подготовка заняла 55, весь набор — 135 минут. Порядок допустим по календарю ресурса до минуты 150, но не выполняет все требуемые сроки.
Нельзя вычесть из этих 15 ранние двадцать минут A и ранние двадцать B. Полученное отрицательное число описывало бы другой показатель и скрыло бы конкретное опоздание C.
Группировка по семейству: A, C, B
A завершается на 30, C того же семейства — на 60. Один переход R→S занимает 20, затем B обрабатывается 20 и заканчивается на 100. Подготовка составляет 20, длительность всего набора — 100.
Теперь A и C укладываются в сроки, а B опаздывает на 10. Суммарная положительная просрочка равна 10, что лучше 15 по выбранному критерию. Но это не расписание без нарушения обещаний: проблема переместилась с C на B и уменьшилась в заданной мере.
Если поменять местами одинаковые по семейству A и C, получится C, A, B. Весь набор также заканчивается на 100 с той же подготовкой 20. Однако A готово на 60 вместо срока 50, B — на 100 вместо 90. Просрочка составляет 10 + 10 = 20. Одинаковая длительность и число переналадок не определяют одинаковое качество исполнения сроков.
Полная проверка всех шести порядков
При трёх готовых заданиях существует 3 × 2 × 1 = 6 перестановок. Все они помещаются в заданный календарь до 150 и не нарушают ограничения неделимости. Для каждого порядка последовательно прибавляем нужный переход и длительность обработки:
- A–B–C: завершение всего набора 135; сумма просрочки 15.
- A–C–B: завершение 100; сумма просрочки 10.
- B–A–C: завершение 135; сумма просрочки 70.
- B–C–A: завершение 135; сумма просрочки 85.
- C–A–B: завершение 100; сумма просрочки 20.
- C–B–A: завершение 135; сумма просрочки 85.
Например, в B–A–C сначала нужен переход из исходного R в S. B готово на 40, затем A на 105 и C на 135. Просрочки: B 0, A 55, C 15; всего 70. Если забыть исходную настройку, расчёт первых двадцати минут будет неверным.
Перебор доказывает: A–C–B — единственный лучший порядок для этой модели и критерия. Нулевой суммы нет, значит, все три срока одновременно невыполнимы при заданных ограничениях. Специально вставлять простой не поможет: все задания готовы, а ожидание только сдвинет последующие завершения вправо.
Решение после расчёта: изменить условие, а не спрятать опоздание
Планировщик передаёт руководителю не только лучший порядок, но и непокрытое обязательство B. Возможные действия проверяют отдельно: другой подходящий ресурс, подтверждённое сокращение подготовки, изменение набора или согласование срока. Расчёт минимальной просрочки сам не разрешает менять обещание клиенту.
Для проверки чувствительности предположим, что технически подтверждённый процесс теперь действительно выполняет R→S за 10 минут вместо 20. В порядке A–C–B завершения становятся 30, 60 и 90. Все сроки выполняются. Это условный новый сценарий, а не рекомендация сократить обязательную операцию ради отчёта. Подтверждение её допустимости и фактической длительности остаётся необходимым.
Если B уже начато, перестановка его на конец недоступна. Зафиксируйте выполненный участок и фактическое состояние ресурса, затем пересчитывайте только оставшуюся очередь. Старый план нужен для объяснения, но не должен второй раз запускать завершённое задание.
Данные и приёмочные проверки
Храните идентификатор задания, семейство, длительность, момент готовности материалов, требуемый срок и критерий принятого результата. Для ресурса нужны календарь, исходная настройка и направленные переходы между семействами. Неизвестное время перехода обозначайте неизвестным, а не нулевым.
При расширении модели отдельно добавляются перерывы, разные ресурсы, частичный выпуск и зависимые операции. Тогда некоторые перестановки могут стать недопустимыми. Результат маленького примера не является доказательством оптимальности большой реальной очереди.
- Время обработки 80 не подменяет полное время с подготовкой.
- Первая операция учитывает исходное состояние R.
- Переналадки R→S и S→R сохраняют разные значения.
- Все шесть результатов воспроизводятся одним правилом расчёта.
- Отрицательная разница со сроком обрезается до нуля.
- A–C–B и C–A–B имеют одинаковое завершение, но разные 10 и 20 просрочки.
- Изменение перехода до десяти даёт 30, 60, 90 только в новом сценарии.
- После фактического старта план не переставляет уже выполненную работу.
Для производства SABSUS проверьте хранение этих исходных данных и передачу утверждённой последовательности. Автоматический оптимизатор, матрица переходов и расчёт конечной мощности должны подтверждаться отдельно. Общий регламент планирования помогает связать результат с исполнителями.
Частые вопросы
Всегда ли нужно начинать с ближайшего срока?
Нет. Это понятное правило, но при зависимой подготовке его результат нужно проверять на конкретных условиях.
Самый короткий план лучше по срокам?
Не обязательно. В примере два плана длиной 100 дают разную суммарную просрочку.
Лучший найденный порядок разрешает опоздание?
Нет. Он показывает ограничение модели и последствия выбора. Изменение обязательств требует отдельного решения.