Автор работы: Пользователь скрыл имя, 21 Февраля 2013 в 21:09, контрольная работа
Задача минимизации суммарного штрафа за невыполнение директивных сроков.
2.6. Динамическое программирование (ДП) - продолжение
Пример применения метода ДП
Задача минимизации суммарного штрафа за невыполнение директивных сроков
3. Алгоритмы с гарантированной оценкой точности
3.1. Минимизация взвешенной суммы моментов завершения обслуживания требований.
Рассмотрим задачу P//ΣwjCj,
где
P – обозначение системы параллельных приборов с одинаковой производительностью
Cj – момент завершения обслуживания требования j
wj – весовой коэффициент, характеризующий относительную важность требования j
В этой задаче расписание однозначно определяется разбиением множества требований на подмножества N1,..., Nm,
где требования множества Nl обслуживаются прибором l,
При этом достаточно ограничиться рассмотрением расписаний, в которых требования каждого подмножества упорядочены по правилу SWPT, т.е. по неубыванию значений pj/wj. Это можно доказать при помощи перестановочного приема.
Приведем приближенный алгоритм решения задачи P//ΣwjCj, для которого имеются гарантированная оценка точности.
1. Перенумеруем требования в порядке SWPT так, что p1/w1 < … < pn/wn.
Далее будем последовательно, начиная с 1-го назначать требования приборам 1, .., n, пусть требования 0, … k, где 0 – фиктивное требование, соответствующее начальной ситуации, k < n, уже назначены.
2. Требование k + 1 назначается тому прибору l, сумма длительностей обслуживания ранее назначенных требований которого минимальна.
Т.е. если
Pl - сумма длительностей обслуживания требований, назначенных на прибор l, где l = 1, … , m.
то прибор l, выбирается исходя из условия Pl = min1<h<m Ph.
Назначаем требование k +1 на прибор l
3. Если k+1=n, т.е все требования назначены - прекращаем процесс, иначе переходим к назначению тр-ия k+2.
Заметим, что полученное про мощи алгоритма значение целевой функции является, в общем случае, оценкой сверху точного решения. Данный алгоритм относится к категории приближенных с гарантированной оценкой точности. Для него известна оценка величины ΔН=Fh/F* (где Fh – реш. посредством алгоритма, F* - точ. реш.).
Рассмотрим пример задачи P//ΣwjCj.
3 параллельно работающих станка обрабатывают 8 изделий. Изделия поступили на линию одновременно и требуют специальных условий хранения при пребывании на линии. Стоимость хранения изделия j в единицу времени wj и длительность его обработки pj указаны в таблице. Найти расписание, минимизирующее суммарную стоимость хранения изделий.
3.2. Минимизация числа используемых приборов
Рассмотрим задачу P/dj=d/Cj ≤ dj
d≥max pj, для j=1…т, а также m=n
Требуется отыскать минимальное число приборов и соответствующее расписание, при котором все требования будут обслужены к заданному директивному сроку d.
* * *
Обозначим Rl – резерв времени прибора l, то есть разницу между d и суммарной длительностью работ, уже назначенных на прибор l.
Обозначим π некоторую перестановку всех требований.
* * *
Для данной задачи известно 4 алгоритма с гарантированной оценкой точности. Вначале первому прибору назначается фиктивная работа p0.
На k-м шаге (k=1, …,n) для назначения выбирается требование, находящееся на месте k перестановки π.
- для первого алгоритма оно назначается на прибор с наименьшим номером l, при условии, что для прибора имеется достаточный резерв времени для выполнения требования без нарушения директивного срока.
- для второго
алгоритма оно назначается на
прибор с наименьшим
Для третьего и четвертого алгоритма предполагается, что в перестановке π требования расположены в порядке LPT невозрастания значений pj, а назначения работ требованиям осуществляются также, как и в первом и втором алгоритмах.
4. Один прибор, максимальный штраф.
Рассмотрим задачу 1/ prec / fmax
где fmax = maxfj(Cj) - максимальная стоимость – функция от моментов завершения обслуживания.
Поскольку моменты поступления требований равны нулю и прерывания процесса обслуживания запрещены, расписание однозначно определяется последовательностью требований.
Пусть отношения предшествования заданы ориентированным бесконтурным графом Gn
Следующий алгоритм предложен Е. Лоулером.
Обозначим через N-(Gn) множество всех висячих вершин графа Gn. т.е. множество всех вершин, не имеющих потомков в графе Gn
1. Вычислим момент завершения всех требований, просуммировав их длительность. Pn = Σpj
Очевидно, что обслуживание одного из требований множества N-(Gn) завершается в момент времени Pn.
Если этим требованием является требование i, то стоимость его обслуживания равна fi(Pn). Поскольку функции стоимости являются неубывающими, нетрудно убедиться, что последним обслуживаемым требованием в оптимальной перестановке является требование i N- (Gn) такое, что значение fi(Pn) минимально.
Πусть in является таким требованием. Тогда момент завершения обслуживания оставшихся требований равен
Pn-1=Pn - pin .
Построим граф Gn-1 путем удаления из графа Gn вершины in и всех входящих в нее дуг. В графе Gn-1 определим вершину (требование) in-1 аналогично тому, как была определена вершина in. Процесс повторяется до тех пор, пока не будет построена последовательность (i1,... ,in), являющаяся оптимальным решением задачи 1/prec/fmax.
* * *
Рассмотрим пример задачи 1/prec/Lmax, (L=C-d) в которой имеется 10 требований. Требование 3 предшествует требованию 4, которое, в свою очередь, предшествует требованиям 1, 7 и 9. Длительности pj и директивные сроки dj заданы в таблице.
j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
pj |
4 |
2 |
3 |
5 |
7 |
4 |
1 |
2 |
9 |
4 |
dj |
14 |
23 |
17 |
25 |
17 |
14 |
10 |
7 |
9 |
24 |
Информация о работе Пример применения метода динамического программирования