Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ДПиДМО

.pdf
Скачиваний:
26
Добавлен:
27.03.2015
Размер:
1.97 Mб
Скачать

мальной стратегии объект оj должен обслуживаться в обратном

рейсе, если аj(М(j) – τj) < Qjτj, и в прямом рейсе, если аj(М(j) – τj) >

> Qjτj; в случае аj(М(j) – τj) = Qjτj объект оj может быть обслужен в любом из рейсов. Изложенное правило обеспечивает возмож-

ность синтеза оптимальной в задаче I-1 с линейными функциями индивидуального штрафа стратегии за время, линейно зависящее от числа подлежащих обслуживанию объектов.

Задача I-2, алгоритм решения. При решении данной задачи используется следующий факт.

Утверждение 4 . 1 . Пусть V – любая стратегия в модели обслуживания I, удовлетворяющая условию k V, и пусть V* =

= V {k}, здесь k {1, 2, …, n – 1}. Тогда t*k(V) > t*k(V*), t*j(V) =

= t *j(V*) для j < k и t *j(V*) > t *j(V ) для j > k, здесь j {1, 2, …, n – 1}.

Доказательство данного утверждения очевидно. Стратегию, при реализации которой значение максимально-

го из индивидуальных штрафов не превышает константы F, будем именовать F-стратегией. Для заданной константы F поставим вопрос – существует ли в рассматриваемой задаче I-2 какаялибо F-стратегия. Ответ дает следующий, основанный на утверждении 4.1 и обозначаемый через А(F), алгоритм:

1.Полагаем V = {n}; проверяем, обеспечивает ли стратегия

V индивидуальный штраф по объекту оn не больший, чем F; если это так, переходим к п. 2; в противном случае в рассматриваемой задаче F-стратегии отсутствуют, ответ на поставленный вопрос отрицательный, алгоритм работу заканчивает.

2.Полагаем k = 1.

3.Вводим стратегии V* = V и V** = V {k}.

4.Проверяем, обеспечивает ли стратегия V* по объектам оn

иоk индивидуальные штрафы, не большие F; если это так, переходим к п. 6; в противном случае – к п. 5.

5.Проверяем, обеспечивает ли стратегия V** по объектам оn

иоk индивидуальные штрафы не большие F; если это не так, в рассматриваемой задаче F-стратегии отсутствуют, ответ на поставленный вопрос отрицательный, алгоритм работу заканчива-

121

ет; в случае положительного ответа полагаем V = V** и переходим к п. 6;

6. Если k = n – 1, полученное множество V является F-стра- тегией; ответ на поставленный вопрос положительный, алгоритм работу заканчивает; в противном случае следует увеличить имеющееся значение k на 1 и перейти к п. 3.

Благодаря описанному алгоритму, экстремальная задача I-2 решается методом деления пополам. Процесс решения начинается с назначения левой границы S1 и правой границы W1 диапазона, в котором локализовано искомое оптимальное значение критерия.

Можно положить:

 

S1

= max ϕj(t*j (Vj)), где Vj = {j}.

 

 

j

W1

= max ϕj(t*j (V )), где V = {1, 2, …, n}.

 

 

j

Далее выполняется процедура, состоящая не более чем из log2 (W1 S1) + 1 однотипных этапов. На произвольном k-м этапе имеющийся отрезок [Sk, Wk], в котором локализовано оптимальное значение критерия, делится пополам; координату середины отрезка обозначаем через Fk. Затем к решаемой задаче применяется алгоритм А(Fk); если получаемый в результате ответ положителен, оптимальное значение критерия локализовано в левом полуотрезке; в противном случае это значение находится в правом полуотрезке. Поэтому в случае положительного ответа полагаем Sk+1 = Sk и Wk+1 = Fk ; в случае отрицательного ответа устанавливаем Sk+1 = Fk и Wk+1 = Wk. Далее переходим к выполнению следующего этапа. Процесс заканчивается в ситуации, когда в полученном отрезке локализации имеется только одна целочисленная точка.

Будем считать, что все функции индивидуального штрафа либо заданы таблично, либо значение каждой из них в любой точке вычисляется путем выполнения ограниченного, не превышающего некоторой константы, числа элементарных действий. Тогда алгоритм А(F ) имеет линейно зависящую от n оценку

122

количества выполняемых элементарных операций и вычислительная сложность изложенной процедуры решения задачи I-2 имеет оценку Сnlog2(W1 S1), где С – не зависящая от параметров решаемой задачи константа.

Задача II-1, алгоритм решения. Для решения задачи II-1

применим метод динамического программирования. Пусть В'(i, D) – минимально возможная величина суммарного штрафа по объектам совокупности {о1, о2, …, оi} при условии, что в рейсе λ+ общее время, затрачиваемое на обслуживание объектов из этой совокупности, равно D. Отметим, что так же, как при рассмотрении задачи I-1, возможные значения параметра D цело-

численны и лежат в числовом диапазоне [0, A1n ].

По определению В'(1, 0) – это величина индивидуального штрафа по объекту о1 в случае, когда его обслуживание реализуется в рейсе λ, т.е. завершается в момент времени γ0,1 + τ1 + Т. В то же время В'(1, τ1) – величина индивидуального штрафа по объекту о1, если его обслуживание выполняется в рейсе λ+, т.е. завершается в момент γ0,1 + τ1. Получаем:

В' (1, 0) = ϕ1(γ0,1 + τ1 + Т),

(2.38)

В'(1, τ1) = ϕ1(γ0,1 + τ1).

(2.39)

При D {0, τ1} величины В'(1, D) смысла не имеют. Удобно положить

В' (1, D) = +при D {0, τ1}.

(2.40)

Предположим, что все значения В'(i, D) уже найдены. При отыскании значений В'(i + 1, D), где i {1, 2,…, n – 1}, надо учитывать две возможности:

1. Объект oi+1 обслуживается в рейсе λ+. Тогда рассматриваемой паре (i + 1, D) непосредственно предшествует ситуация

(i, D τi+1).

2. Объект oi+1 обслуживается в рейсе λ. В этом случае рассматриваемой паре непосредственно предшествует ситуация

(i, D).

123

С учетом указанных возможностей получаем:

В'(i + 1, D) = min{В'(i, D τi+1) + ϕi+1(γ0,1 + γ1,2 + … + γi,i+1 + D),

В'(i, D) + ϕi+1(γ0,1 + γ1,2 +…+ γi,i+1 +τ1 + τ2 +…+ τi+1 D + Т)}; (2.41)

здесь i {1, 2,…, n – 1}.

Вычисляемое значение В'(i + 1, D) оказывается равным +в том и только том случае, когда определяемая парой (i + 1, D) ситуация реально возникнуть не может.

Каждая определяемая по формуле (2.41) величина В'(n, D), D {0, 1, 2,…, A1n }, – это минимально возможный суммарный

штраф по всем объектам, если в рейсе λ+ на их обслуживание затрачивается время D. Оптимальное значение критерия Кopt рассматриваемой задачи II-1 определяется по формуле

Кopt = min В'(n, D).

(2.42)

D

 

Формулы (2.38) – (2.42) суть рекуррентные соотношения динамического программирования для решения задачи (II-1). Процесс вычислений по этим соотношениям удобно представлять как последовательное заполнение таблицы, строки которой соответствуют значениям параметра i, i {1, 2,…, n}, а столбцы

– значениям параметра D, D {0, 1, 2,…, A1n }. Таблица

заполняется по строкам, в порядке роста их номеров. Зафиксировав в процессе вычислений по формуле (2.41) для каждого найденного значения В'(i + 1, D) номер компоненты, на которой реализуется минимум правой части, и определив значение параметра D, на котором достигается минимум правой части (2.42), легко строим искомую оптимальную стратегию.

Приведенный алгоритм решения задачи II-1 имеет такую же оценку вычислительной сложности, как изложенный выше решающий алгоритм для задачи I-1 в ее общей постановке.

Задача II-2, алгоритм решения. Легко видеть, что для моде-

ли II утверждение 4.1 неверно. Поэтому предложенный для задачи I-2 решающий метод к задаче II-2 неприменим. Задачу II-2

124

можно решить методом динамического программирования. Пусть В"(i, D) – минимально возможная величина максимального из индивидуальных штрафов по объектам совокупности о1, о2, …, оi при условии, что в рейсе λ+ общее время, затрачиваемое на обслуживание объектов из этой совокупности, равно D. Так же, как при рассмотрении предыдущих задач, возможные значения параметра D целочисленны и лежат в числовом диапа-

зоне [0, A1n ].

В"(1, 0) – это величина индивидуального штрафа по объекту о1 в случае, когда его обслуживание реализуется в рейсе λ, т.е. завершается в момент времени γ0,1 + τ1 + Т. В то же время В"(1, τ1) – величина индивидуального штрафа по тому же объекту о1, если его обслуживание выполняется в рейсе λ+, т.е. завершается в момент γ0,1 + τ1. Поэтому

В"(1, 0) = ϕ1(γ0,1 + τ1 + Т),

(2.43)

В"(1, τ1) = ϕ1(γ0,1 + τ1).

(2.44)

При D {0, τ1} величины В"(1, D) смысла не имеют. Полагаем

В"(1, D) = +при D {0, τ1}.

(2.45)

Предположим, что все значения В"(i, D) найдены. Для отыскания величин В"(i+1, D), с учетом имеющихся возможностей обслуживания объекта oi+1 , записываем:

В"(i + 1, D) = min {max [В"(i, D τi+1), ϕi+1(γ0,1 + γ1,2 + … +

+ γi,i+1 + D)], max [В"(i, D), ϕi+1(γ0,1 + γ1,2 +…+

 

+ γi,i+1 +τ1 + τ2 +…+ τi+1 D + Т )]};

(2.46)

здесь i {1, 2, …, n 1}.

Вычисляемое значение В"(i + 1, D) оказывается равным +в том и только том случае, когда определяемая парой (i + 1, D) ситуация возникнуть не может.

125

В итоге итерационного процесса каждая вычисленная по формуле (2.46) величина В"(n, D), D {0, 1, 2,…, A1n }, – это

минимально возможная величина наибольшего из индивидуальных штрафов по всем объектам в ситуации, когда в рейсе λ+ на их обслуживание затрачивается время D. Оптимальное значение критерия Кopt рассматриваемой задачи II-2 определяется по формуле

Кopt = min В"(n, D).

(2.47)

D

 

Равенства (2.43)–(2.47) суть рекуррентные соотношения динамического программирования для решения задачи (II-2).

Оценка вычислительной сложности изложенного алгоритма решения задачи (II-2) такая же, как для приведенных общих алгоритмов решения задач I-1 и II-1.

Задачи к главе 2

1. В условиях двухпроцессорной задачи мастера требуется построить оптимальное расписание обслуживания заявок 1 – 6 со следующими характеристиками: а(1) = 4, τ(1) = 1; а(2) = 7,

τ(2) = 2; а(3) = 8, τ(3) = 3; а(4) = 4, τ(4) = 3; а(5) = 10, τ(5) = 5; а(6) = 17, τ(6) = 4.

2.Записать рекуррентные соотношения динамического программирования для решения трехпроцессорной задачи мастера.

3.Обобщенная на случай нелинейных функций индивидуального штрафа однопроцессорная задача мастера определяется следующими исходными данными: обслуживанию подлежат заявки 1, 2, 3, 4; продолжительности обслуживания заявок:

τ(1) = 4, τ(2) = 1, τ(3) = 3, τ(4) = 1; функции индивидуального

штрафа: ϕ1(t) = 4t2, ϕ2(t) = 3t, ϕ3(t) = 2t2 + t, ϕ4(t) = t2 + 2t. Требу-

ется найти оптимальное расписание обслуживания.

4. Задача однопроцессорного обслуживания множества заявок с минимаксным критерием определяется следующими исходными данными: обслуживанию подлежат заявки 1, 2, 3, 4, 5; продолжительности обслуживания заявок: τ(1) = 3, τ(2) = 2,

126

τ(3) = 4, τ(4) = 1, τ(5) = 2; функции индивидуального штрафа:

ϕ1(t) = 4t2, ϕ2(t) = 3t, ϕ3 (t) = t2 + t, ϕ4(t) = t2 +2t, ϕ5 (t) = t3 + 1. Тре-

буется найти оптимальное расписание обслуживания.

5. Задача однопроцессорного обслуживания множества заявок при наличии директивных сроков определяется следующи-

ми исходными данными: τ(1) = 4, d(1) = 5; τ(2) = 3, d(2) = 6; τ(3) = = 5; d(3) = 9; τ(4) = 2, d(4) = 9; τ(5) = 3; d(5) = 10; τ(6) = 4; d(6) = 12; τ(7) = 4; d(7) = 13; τ(8) = 4, d(8) = 15. Найти расписание, обеспе-

чивающее выполнение в срок максимально возможного числа заявок.

6. Записать соотношения динамического программирования для решения задачи двухпроцессорного обслуживания множества заявок при наличии директивных сроков. В этой задаче для

каждой заявки i, i = 1, n, считаются заданными продолжитель-

ность обслуживания τ(i) и директивный срок d(i); требуется построить расписание, минимизирующее число нарушений предписанных заявкам директивных сроков.

7. Каноническая задача однопроцессорного обслуживания потока из шести заявок характеризуется следующими данными: t(1) = 0, τ(1) = 3, а(1) = 4; t(2) = 0, τ(2) = 4, а(2) = 7; t(3) = 1, τ(3) = = 1, а(3) = 8; t(4) = 3, τ(4) = 2, а(4) = 7; t(5) = 5, τ(5) = 3, а(5) = 3; t(6) = 5, τ(6) = 2, а(6) = 7. Методом динамического программирования (обратный счет) требуется определить оптимальное расписание обслуживания.

8. Каноническая задача однопроцессорного обслуживания потока из шести заявок характеризуется следующими данными: t(1) = 0, τ(1) = 2, а(1) = 3; t(2) = 1, τ(2) = 4, а(2) = 7; t(3) = 1, τ(3) = = 1, а(3) = 8; t(4) = 3, τ(4) = 2, а(4) = 7; t(5) = 5, τ(5) = 3, а(5) = 3; t(6) = 5, τ(6) = 2, а(6) = 7. Методом динамического программирования (прямой счет) требуется определить оптимальное расписание обслуживания.

9.В задаче однопроцессорного обслуживания потока заявок

слинейными функциями индивидуальных штрафов и директивными сроками в совокупности расписаний, обеспечивающих

127

соблюдение максимального числа сроков, найти последовательность обслуживания с минимальным значением суммарного штрафа по заявкам. Характеристики заявок следующие: t(1) = 0,

τ(1) = 3, ϕ1(t) = t, d(1) = 5; t(2) = 2, τ(2) = 3, ϕ2(t) = 4t, d(2) = 5; t(3) = 3, τ(3) = 4, ϕ3(t) = 2t, d(3) =7; t(4) = 4, τ(4) = 3, ϕ4(t) = 3t,

d(4) = 9; t(5) = 6, τ(5) = 1, ϕ5(t) = 4t, d(5) = 7.

10. Записать рекуррентные соотношения динамического программирования для задачи распределения заявок потока R = = {1, 2, ..., n} между двумя идентичными параллельными процессорами. Считается, что каждый процессор обслуживает направляемые ему заявки в порядке возрастания их номеров. Каждая заявка i характеризуется тремя целочисленными параметрами: t(i) момент поступления в систему обслуживания (0 = = t(1) t(2) t(n – 1) t(n)); τ(i) требуемая продолжи-

тельность обслуживания любым из процессоров (τ(i) > 0); a(i) штраф за единицу времени пребывания в системе обслуживания. Минимизируемым критерием является суммарный штраф по всем заявкам.

128

Глава 3. ТРУДНОРЕШАЕМЫЕ ЗАДАЧИ: ПОЛИНОМИАЛЬНО РАЗРЕШИМЫЕ КОНКРЕТИЗАЦИИ, ПРИБЛИЖЕННЫЕ

ИЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ

Вданной главе изучаются вопросы вычислительной сложности задач и алгоритмов. Выделяются класс задач, разрешимых

вполиномиальном времени, и класс труднорешаемых задач. Алгоритм решает задачу в полиномиальном времени, если число выполняемых им элементарных операций не превышает Р(L), где Р – некоторый полином от L – объема входной информации по задаче. Число элементарных операций, гарантирующих получение искомого результата в труднорешаемой задаче, в лучшем случае имеет оценку, экспоненциально зависящую от L. Для ряда труднорешаемых задач выделяются полиномиально разрешимые конкретизации; излагаются общие принципы построения приближенных и эвристических алгоритмов; строятся процедуры, позволяющие синтезировать качественные в том либо ином смысле решения за реально приемлемое время. Вопросы построения приближенных и эвристических алгоритмов рассматриваются во многих посвященных дискретной оптимизации монографиях и учебниках. В этой связи отметим [15, 18, 21, 25].

3.1.Полиномиально разрешимые и NP-трудные задачи

Различные математические задачи имеют различную трудность. Трудность любой задачи естественно характеризовать сложностью простейшего из алгоритмов ее решения. Для оценки сложности алгоритмов имеются два принципиально разных подхода. При первом подходе оценки отображают сложность создания алгоритма, здесь учитывается количество операторов в записи алгоритма, количество циклов, глубины циклов и т.д.

129

При втором подходе оценки характеризуют сложность реализации алгоритма; такими оценками являются используемый объем памяти и количество элементарных операций, выполняемых при реализации алгоритма (что соответствует времени машинного счета). Именно второй подход является целесообразным при классификации задач по их вычислительной сложности.

Каждый алгоритм создается для решения массовой задачи, т.е. совокупности однотипных индивидуальных задач, отличающихся только исходными данными. Необходимый объем памяти и количество элементарных операций, выполняемых при реализации алгоритма, являются функциями от объема входной информации по решаемой индивидуальной задаче. Объем входной информации можно задавать, например, в байтах.

Каждому алгоритму А соотносим функции TА(L) и VА(L), где TА(L) – верхняя оценка количества элементарных операций, а VА(L) – верхняя оценка размера необходимой памяти при решении задачи с объемом входной информации L.

Будем говорить, что задача Z имеет полиномиальную временную сложность (решается в полиномиальном времени, полиномиально разрешима), если для нее существует решающий алгоритм А* такой, что TА* (L) Р1(L); здесь Р1(L) – некоторый полином от одной переменной L. Задача Z имеет полиномиальную емкостную сложность, если для нее существует решающий алгоритм А' такой, что VА'(L) Р2(L); здесь Р2(L) – некоторый полином от одной переменной L. Отметим следующий очевидный факт: если задача Z имеет полиномиальную временную сложность, то ее емкостная сложность также полиномиальная.

Возможны дальнейшие разбиения классов задач, имеющих полиномиальную временную и емкостную сложность. Так, задача Z разрешима в линейном времени, если для нее существует решающий алгоритм А такой, что TА(L) СL; задача Z разрешима в квадратичном времени, если для нее существует решающий алгоритм А такой, что TА(L) СL2; здесь и далее в приводимых оценочных неравенствах С обозначает некоторую фиксированную константу.

130