- •Содержание
- •6. Задачи теории расписаний
- •6.1 Предмет теории расписаний
- •6.2 Классификация задач теории расписаний
- •6.3 Целевые функции в задачах теории расписаний
- •6.4 Построения расписания в случае одного прибора и конечного числа требований
- •Задания для самостоятельной работы
- •6.5 Задача о двух станках
- •6.6 Алгоритм Джонсона решение задачи о двух станках
- •Задания для самостоятельной работы
- •7. Задача о назначениях венгерский метод решения
- •7.1 Постановка задачи. Некоторые свойства
- •7.2 Венгерский метод решения задачи о назначениях
- •Упражнения
- •Задания для самостоятельной работы
- •8. Метод ветвей и границ
- •3.1 Общая схема метода
- •Алгоритмическая схема метода
- •Упражнения
- •8.2 Задача коммивояжера. Метод ветвей и границ для решения задачи коммивояжера
- •Упражнения
- •Задания для самостоятельной работы
- •9. Оптимизация на сетях
- •9.1 Задача о кратчайшем пути
- •Алгоритм решения задачи о кратчайшем пути
- •Упражнения
- •9.2 Задача о максимальном потоке
- •Упражнения
- •Задания для самостоятельной работы
- •10. Модели управления запасами
- •10.1 Основные понятия теории управления запасами
- •10.2 Факторы, определяющие политику управления запасами
- •10.3 Экономические параметры моделей управления запасами
- •10.4 Однопродуктовые модели управления запасами при детерминированном спросе Общий случай
- •Предельные варианты
- •Упражнения
- •Задачи для самостоятельной работы
- •10.5 Классическая дискретная детерминированная задача управления запасами
- •10.6 Задача управления производством и запасами в случае сезонного спроса
- •Задачи для самостоятельной работы
- •10.7 Задача продавца газет
6.2 Классификация задач теории расписаний
Приведем некоторые способы классификации задач теории расписаний.
Задачи теории расписаний можно разделить на две группы:
задачи с прерываниями. В любой момент обслуживание требования на машине может быть прервано (с возможностью завершения позже на той же или другой машине) ради обслуживания другого требования.
задачи без прерываний - каждое требование на машине обслуживается от начала до конца без прерываний.
Существуют различные варианты задач теории расписаний, часть из них является NP-полными, часть принадлежит к классу полиномиальных задач (множество задач, для которых существуют «быстрые» алгоритмы решения), для части задач так и не удалось доказать принадлежности к какому-либо классу сложности. Существует гипотеза, что задача, допускающая прерывания, не сложнее задачи без прерываний. Для большинства задач она соблюдается, кроме одной, где для варианта без прерывания доказана его принадлежность к классу полиномиальных задач, в то время как для аналогичной задачи с прерываниями не существует доказательств принадлежности к какому-либо классу сложности.
По типу искомого решения:
Задачи упорядочивания. В этих задачах уже задано распределение работ по исполнителям, а также определены все параметры работ (продолжительность выполнения, время поступления и т.д.). Необходимо составить расписание (или порядок) выполнения работ каждым исполнителем;
Задачи согласования. Основное внимание в этих задачах уделяется выбору продолжительности выполнения работ, времени поступления и другим параметрам;
Задачи распределения подразумевают поиск оптимального распределения работ по исполнителям.
По типу целевой функции:
Задачи с суммарными критериями оптимизации. Задачи, в которых необходимо минимизировать суммарное значение моментов окончания обслуживания работ
Задачи с минимаксными критериями оптимизации. Отличие этих задач от задач с суммарными критериями заключается в том, что нужно минимизировать не сумму некоторых значений, а лишь максимальное из них.
Многокритериальные задачи оптимизации. Если в исследуемых задачах необходимо построить оптимальное решение с точки зрения нескольких целевых установок (функций), то такие задачи называются многокритериальными. Например, если в упомянутой задаче необходимо не только минимизировать значение но минимизировать и время простоя процессора (прибора), то это многокритериальная задача;
Задачи на построение допустимого расписания. Данный класс задач можно свести к оптимизационным задачам, введя специальную функцию штрафа, который нужно минимизировать.
По способу задания входной информации:
Детерминированные задачи (off-line). Дла таких задач характерно, что все входные данные задачи точно известны, т.е. даны значения всех параметров до начала ее решения;
Динамические задачи (on-line). Для данных задач расписания строятся в режиме реального времени, т.е. перед началом решения задачи мы не знаем значения всех параметров. Расписание строится по частям по мере поступления новой информации. При этом в любой момент может быть понадобиться ответ о качестве построенного «частичного» расписания.
По дисциплине выполнения работ на машинах можно выделить четыре основные класса задач:
Open shop, открытая линия — для каждого требования задано своё подмножество машин, на каждой из которых оно должно обслуживаться некоторое время. Порядок обслуживания на этих машинах произвольный. Задаются разнообразные целевые функции.
Job shop, рабочий цех — для каждого требования задано своё упорядоченное подмножество машин (маршрут), на которых оно должно обслуживаться в заданном порядке. Задаются разнообразные целевые функции.
Flow shop, потоковая линия — все машины упорядочены и каждое требование проходит все машины в этом порядке. Расписание задано перестановкой требований. Как правило, минимизируется общее время обслуживания требований.
Задача с директивными сроками. Для каждого требования задан момент поступления, время обслуживания и директивный срок окончания обслуживания. Порядок обслуживания на приборах произвольный. Необходимо найти расписание, соблюдающее директивные сроки. При существовании такого расписания можно ставить задачу минимизации числа прерываний.
Последняя задача называется одностадийной, три первые - многостадийными, поскольку для каждого требования задано несколько стадий или операций обслуживания на разных приборах. Возможны разнообразные комбинации ограничений и дисциплин обслуживания, но полиномиальные по времени выполнения алгоритмы известны только для простейших задач из этих классов.
