
- •Группа пмф-091 выпускная квалификационная работа
- •Оглавление
- •Введение
- •Постановка задачи
- •Математическая модель
- •Условия доминирования
- •Доминирование упорядочений вида (..., , , ...) над упорядочениями вида (..., ,...).
- •Общий случай условий доминирования
- •Последовательное улучшение
- •Классификация методов решения
- •Эффективные преобразования
- •Синтез оптимального плана работы системы
- •Подход к решению задачи
- •Получение 1-оптимальных решений
- •Признак 1-оптимальности
- •Список литературы и электронных материалов
Эффективные преобразования
Вернемся
к исследованию вариантов 1 и 2. Считаем,
что работа
в расписании
имеет максимальное запаздывание и
предшествует всем остальным работам
с максимальным запаздыванием [см.
выражения
].
Изменять исходное упорядочение работ
,
то есть выполнять преобразования, будем
так, чтобы для нового расписания
выполнялось неравенство
,
которое мы можем представить в
эквивалентном виде
При этом следует иметь в виду, что в результате применения преобразований или их композиций может оказаться, что
Отметим
также, что критерий эффективности (3.31)
нельзя подменять условием
.
Это условие не является достаточным
для выполнения неравенства (3.32), поскольку
оно не исключает следующую возможность:
для некоторого
.
Синтез оптимального плана работы системы
Аналитический аппарат, разработанный в предыдущей главе, достаточен для решения проблемы 1-оптимальности. В данной главе, воспользовавшись результатами раздела 3.3, мы выведем и докажем признак 1-оптимальности расписания, после чего построим 1-оптимальный алгоритм решения задачи Fm | | Tmax. Затем мы перейдем к решению проблемы синтеза s-оптимальных расписаний. Будет развит аппарат оптимизационных исследований и получены признаки эффективности композиций преобразований - основа субоптимальных алгоритмов.
Оставим
в силе соглашения, принятые в предыдущей
главе: в расписании
(и
только они) имеют максимальное запаздывание
Подход к решению задачи
Используем методологию поиска расписания, оптимального в окрестности, изложенную, к нахождению приближенно оптимального расписания относительно критерия Tmax. Действуя по схеме последовательного улучшения, будем строить цепочку расписаний
в которой
- начальное расписание;
- опорное расписание, оптимальное в некоторой окрестности расписания ,
, r = 1, 2, ... - опорное расписание, оптимальное в некоторой окрестности расписания
- субоптимальное решение задачи.
Получение 1-оптимальных решений
Признак 1-оптимальности
Множество
пар индексов
преобразований
с положительной оценкой эффективности
обозначим
:
=
.
При поиске 1-оптимальных расписаний будем рассматривать только преобразования с положительным прогнозом, то есть только те преобразования, пары индексов которых принадлежат множеству .
Алгоритм A1 построения множества
Шаг
1.
Рассматриваются преобразования
В матрице
фиксируются все критические пути
С использованием индикатора
(4.49) строится начальное множество
Если
,
то выполняется п. 1.3, иначе - шаг 2.
Все элементы множества
проверяются функцией-индикатором
(4.51). Если для какого-либо элемента
имеет место неравенство
, то он исключается из множества .
Если , то выполняется п. 1.4, иначе - шаг 2.
Все элементы множества проверяются индикатором
(4
53). Если для какого-либо элемента
имеет место неравенство
,
то он исключается из
множества
.
Шаг
2.
Рассматриваются преобразования
,
k
< l
< r. Строится множество
:
Действуя
по аналогии с шагом 1, строим множество
.
При этом каждая пара индексов
проверяется индикаторами
при всех
.
Шаг
3.
Рассматриваются преобразования
.
Строится множество
Действуя
по аналогии с шагом 1, строим множество
.
При этом каждая пара индексов
проверяется индикаторами
при всех
и
при всех
.
Шаг
4.
Рассматриваются преобразования
Строится множество
Действуя
по аналогии с шагом 1, строим множество
.
При этом каждая пара индексов
проверяется индикаторами
при всех
и
при всех
.
Шаг
5.
Множество
есть объединение четырех построенных
множеств:
=
.
Множество построено.
Алгоритм описан.
Сложность
алгоритма A1
оценивается как
Теорема
4.1.
Для того чтобы расписание
было 1-оптимальным, достаточно, чтобы
множество
было пусто.
Доказательство.
Если множество
пусто,
то не существует ни одного эффективного
преобразования расписания
Следовательно, расписание
является 1-оптимальным.
Теорема доказана.
1-оптимальный алгоритм.
Теперь у нас есть достаточно информации для построения алгоритмов приближенной оптимизации, которые работают по схеме последовательного улучшения:
в качестве начального решения выбираем расписание, полученное методом Монте-Карло;
для перехода к следующему опорному решению рассматриваем эффективные преобразования;
условие завершения работы алгоритма дает теорема 4.1 - признак оптимальности решения.
Эта схема предусматривает возможность построения алгоритмов разных типов: точных и приближенных (поиска локально оптимального расписания), с возвратами и без возвратов, градиентных и останавливающих поиск в текущей окрестности при первом улучшении. Особенности реализации алгоритмов разных типов описаны в главе 2.
Алгоритмы построения приближенно оптимальных расписаний относительно критерия Tmax являются модификациями соответствующих алгоритмов А2.1 - А2.2 для критерия Cmax. Незначительные отличия обусловлены разными подходами к определению эффективности преобразований и композиций.
Дадим краткое описание алгоритма синтеза 1-оптимального расписания (приближенного, без возвратов и прекращающего поиск в текущей окрестности при первом найденном улучшении).
Алгоритм А2.
Шаг 1.
Задается
> 0 (точность решения, параметр метода).
Выбирается опорное расписание .
Формируется матрица времен выполнения работ
.
Шаг 2.
Для всех работ
вычисляются моменты завершения
и величины запаздывания
Если
, то - искомое расписание *opt (алгоритм завершен).
Если
строится упорядоченное множество индексов
, такое, что
Для
работ
вычисляются значения резерва времени
(работы с максимальным запаздыванием
имеют нулевой резерв времени).
Принимается: = {1, 2, ., n},
= ∅, l = 0.
Шаг 3.
Если множество
пусто, то - искомое локально оптимальное расписание . Работа алгоритма завершена. Если качество решения неудовлетворительно, то следует повторить действия всех шагов, начиная с первого, с другим начальным решением.
Если ≠∅, то выбирается произвольный элемент
.
Шаг 4. Выполняется действие l:= l + 1.
Шаг 5. Если l = k < n, то осуществляется переход к шагу 4. Если l = n + 1, выполняется шаг 3.
Шаг
6.
Вычисляется оценка
.
Если какая-либо из функций-индикаторов в процессе вычисления оценки принимает неположительное значение, то процесс вычисления завершается и выполняется переход к шагу 4.
Если > 0, то выполняется преобразование
Если
, то осуществляется переход к шагу 4. В противном случае
- новое опорное расписание. Производятся переназначения
и выполняется шаг 2.
Алгоритм описан.
Сложность
алгоритма А2 составляет O(
).