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

ДПиДМО

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

че Z(k, p) оценка; σt2 = k ; σt3 = p ; t – порядковый номер записи в списке.

Для каждой оценки Q соответствующая ей запись σt вносится в список T один раз, когда вектор Q впервые появляется в одной из клеток табл. 4.1.

При определении для произвольной эффективной оценки Q* E(n, b) обеспечивающего ее Парето-оптимального решения X* = (x1* , x2* ,..., xn* ) реализуем следующий алгоритм α:

1.

Полагаем ξ = n, η = b.

2.

В списке T находим запись σ=<Q*, ξ′, η′>, где ξ′ ≤ ξ,

η′ ≤ η.

3.

Полагаем xξ*=1 , Q* = Q* Cξ, ξ = ξ′−1 , η = η′−aξ; ес-

ли Q* = 0, переходим к п. 4, в противном случае – к п. 2.

4.

Все не определенные до настоящего момента компоненты

вектора X* = (x1* , x2* ,..., xn* ) считаем нулевыми. Построенное ре-

шение X* является искомым.

Пример 4 . 4 . Задана 2-критериальная 2-мерная задача о

ранце:

 

x1 + x2 + 2x3 +3x4 max,

(4.48)

4x1 +7x2 + 2x3 + x4 max,

(4.49)

x1 + 2x2 + x3 + x4 3,

(4.50)

2x2 + x3 + 2x4 2,

(4.51)

x j {0;1}, j =

 

.

(4.52)

1, 4

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

Последовательно выполняя вычисления по формулам (4.46), (4.47), заполним таблицу 4.2, являющуюся соответствующей конкретизацией табл. 4.1 для решаемой задачи (4.48) – (4.52).

221

Полученное заполнение крайней правой клетки последней строки таблицы показывает, что эффективными в рассматриваемой задаче являются оценки (2, 11), (3, 6) и (4, 5).

Таблица 4 . 2

Таблица эффективных оценок для задачи (4.48)(4.52)

 

(0,0)

(0,1)

(0,2)

(1,0)

(1,1)

(1,2)

(2,0)

(2,1)

(2,2)

(3,0)

 

(3,1)

(3,2)

1

(0,0)

(0,0)

(0,0)

(1,4)

(1,4)

(1,4)

(1,4)

(1,4)

(1,4)

(1,4)

 

(1,4)

(1,4)

2

(0,0)

(0,0)

(0,0)

(1,4)

(1,4)

(1,4)

(1,4)

(1,4)

(1,7)

(1,4)

 

(1,4)

(1,7)

 

(2,11)

3

(0,0)

(0,0)

(0,0)

(1,4)

(1,4)

(1,4)

(1,4)

(1,4)

(1,7)

(1,4)

 

(1,4)

(1,7)

(2,2)

(2,2)

(2,2)

(2,2)

 

(2,2)

(2,11)

 

 

 

 

 

 

 

 

 

(3,6)

 

 

 

(3,9)

 

 

 

 

 

(1,4)

(1,4)

 

(1,4)

(1,7)

 

 

 

(2,11)

 

 

 

 

 

 

(2,2)

 

 

(1,4)

4

(0,0)

(0,0)

(0,0)

(1,4)

(2,2)

(2,2)

(1,4)

(2,2)

(3,6)

(1,4)

 

(2,2)

(3,6)

 

 

 

 

 

 

(3,1)

 

(3,6)

(4,5)

 

 

 

(4,5)

 

В ходе заполнения табл. 4.2 в список T оказываются внесен-

ными следующие записи:

 

 

 

 

 

 

 

 

 

 

σ1 = <(1, 4), 1, (1, 0)>;

σ2 = <(1, 7), 2, (2, 2)>;

 

 

 

 

σ3 = <(2, 11), 2, (3, 2)>;

σ4 = <(2, 2), 3, (1, 1)>;

 

 

 

σ5 = <(3, 6), 3, (2, 2)>;

σ6 = <(3, 9), 3, (3, 2)>;

 

 

 

 

σ7 = <(3, 1), 4, (1, 2)>;

σ8 = <(4, 5), 4, (2, 2)>.

 

 

Применяя алгоритм α, восстанавливаем для каждой эффективной оценки порождающее ее Парето-оптимальное решение.

Для оценки (2, 11) – это x1 = (1, 1, 0, 0), для оценки (3, 6) – x2 = = (1, 0, 1, 0) и для оценки (4, 5) – x3 = (1, 0, 0, 1).

Приведем еще один, также основанный на принципе динамического программирования, способ решения рассматриваемой задачи (4.43)–(4.45). Излагаемый алгоритм – назовем его методом последовательной генерации списков – является обобщением на многокритериальный случай изложенного в гл. 3 алгоритма Bкзр решения классической задачи о ранце.

Введем необходимые обозначения и определения. Структу-

222

 

 

,..., xrq

}, Ci ,

 

 

ру вида

{xr1

ai

будем обозначать σ, да-

 

 

 

i {r1 ,...rq }

i {r1 ,...,rq }

 

лее Cσ = Ci ,

aσ = ai

. Пусть

M ={σ1, ...,σu } – произ-

i {r1 ,...,rq } i {r1 ,...,rq }

вольное множество структур указанного вида. Будем говорить,

что структура

σ′ = ({xr

,.., xr},Cσ′, aσ′ )

является недоминируе-

 

 

 

1

q

 

мой в M, если

в этом множестве не найдется структуры σ′′ =

= ({xr′′, ..., xr′′},Cσ′′, aσ′′),

 

такой, что выполняется следующая сис-

1

q

 

 

 

 

тема неравенств:

 

 

 

 

 

 

 

Cσ′′ Cσ′ ,

(4.53)

 

 

 

 

aσ′ aσ′′,

(4.54)

причем по меньшей мере одно из m + d неравенств этой системы выполняется как строгое неравенство (неравенства (4.53) и (4.54) трактуются как покоординатные). Через (M )* будем обозначать операцию выбора из M подмножества всех недоминируемых структур. Через xj<+>σ будем обозначать операцию допустимого дополнения структуры σ = ({xr1 , ..., xrq },Cσ ,aσ ) элементом xj:

({x

r1

,..., x

rq

, x

},(C

j

+ C

σ

),a

j

+ a

σ

), если

b a

σ

a

j

,

 

 

j

 

 

 

 

 

 

 

 

x j <+>σ =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

σ в противном случае.

При реализации для задачи Z метода последовательной генерации списков выполняется n-шаговая процедура, результатом каждого k-го шага которой является очередной список Lk. При этом список L1 состоит из структур ({ }, 0, 0) и ({x1}, C1, a1). Пусть сформирован список Lk = {σ1, …, σu}. Тогда список Lk+1 формируется согласно следующей формуле:

 

 

 

 

*

 

 

(x +

 

 

.

Lk +1 = Lk

<+>σ )

 

 

U k 1

i

 

 

 

i=1,2,...,u

 

 

223

В результате выполнения n шагов получаем список Ln. Вторые компоненты каждой из входящих в этот список структур являются оценками в задаче Z; содержащиеся в этой совокупности оценок эффективные оценки образуют множество Е(Z).

Пример 4 . 5 . Для задачи (4.48)–(4.52) методом последовательной генерации списков построить полную совокупность эффективныхоценок.

Последовательно строим следующие списки.

Список L1: ({ }, (0, 0), (0, 0)), ({x1}, (1, 4), (1, 0)).

Список L2: ({ }, (0, 0), (0, 0)), ({x1}, (1, 4), (1, 0)), ({x2}, (1, 7), (2, 2)), ({x1, x2}, (2, 11), (3, 2)).

Список L3: ({ }, (0, 0), (0, 0)), ({x1}, (1, 4), (1, 0)), ({x2}, (1, 7), (2, 2)), ({x1, x2}, (2, 11), (3, 2)), ({x3}, (2, 2), (1, 1)), ({x1, x3}, (3, 6), (2, 1)).

Список L4: ({ }, (0, 0), (0, 0)), ({x1}, (1, 4), (1, 0)), ({x2}, (1, 7), (2, 2)), ({x1, x2}, (2, 11), (3, 2)), ({x3}, (2, 2), (1, 1)), ({x1, x3}, (3, 6), (2, 1)), ({x4}, (3, 1), (1, 2), ({x1, x4}, (4, 5), (2, 2)).

Среди оценок (0, 0), (1, 4), (1, 7), (2, 11), (2, 2), (3, 6), (3, 1), (4, 5), составляющих совокупность вторых компонент последнего списка, эффективными являются (2, 11), (3, 6), (4, 5). По записям заключительного списка L4, в которых эти оценки указаны, определяем, что оценка (2, 11) порождается решением x1 = (1, 1, 0, 0), оценка (3, 6) – решением x2 = (1, 0, 1, 0), оценка (4, 5) – решением x3 = (1, 0, 0, 1).

Бикритериальные обобщения канонической задачи однопроцессорного обслуживания потока заявок. Рассматриваемые обобщения изученной в гл. 2 канонической задачи обслуживания конечного детерминированного потока заявок R = {1, 2, ..., n} предполагают соотнесение с каждой заявкой i монотонно возрастающих функций индивидуального штрафа ϕi (t) и ψi (t). Указанные функции определяют штрафы по первому и второму показателям соответственно. Все функции индивидуального

224

штрафа считаем, вообще говоря, нелинейными. В первом рассматриваемом варианте полагаем, что минимизируемыми критериями являются суммарный штраф по первому показателю и суммарный штраф по второму показателю. Во втором варианте минимизируемые критерии – суммарный штраф по первому показателю и максимальный из штрафов по второму показателю.

Задачу обслуживания конечного детерминированного потока заявок R с минимизируемыми критериями суммарных штрафов по первому и второму показателям обозначим через Р. Введем в рассмотрение ряд частных задач. Задача Р(t, S) получается из исходной задачи Р в предположении, что расписание надо строить начиная от дискретного момента времени t, при этом следует обслужить заявки совокупности S и все заявки, которые прибудут в систему обслуживания позднее этого момента; в момент t процессор считается свободным, S – произвольное подмножество заявок из числа поступивших (по исходным данным задачи Р) на обслуживание во временном отрезке [0, t].

Пусть Е(t, S) обозначает множество всех эффективных оценок в произвольной задаче Р(t, S). Таким образом, Е(0, V(0)) – полная совокупность эффективных оценок в исходной задаче Р (все принятые в гл. 2 обозначения сохраняются; в частности, V(0) – совокупность поступивших и ожидающих обслуживания заявок по состоянию на момент времени 0).

Очевидно, что для любого θ ≥ 0 и S ={j}, где j – любая заявка, имеет место

Е(t(n) + θ, {j}) = (ϕj (t(n) + θ + τ(j)), ψj(t(n) + θ +τ(j))). (4.55)

Как и ранее, для любой пары аргументов (t, S ) в случае t < < t(n) считаем, что в множестве S имеется (в явном виде она может быть не указана) фиктивная заявка 0; полагаем, что τ(0) = = min {θ D(t, t + θ ) }, а функции индивидуального штрафа ϕ0(t) и ψ0(t) равны нулю тождественно. Взятие на обслуживание фиктивной заявки фактически означает простой процессора от момента t до ближайшего момента, когда в систему обслуживания прибудет какая-либо новая заявка потока R.

225

Для общей, определяемой парой (t, S), ситуации в совокупности S требуется выбрать заявку, обслуживание которой начнется в момент t. Если из этой совокупности в качестве очередной обслуживаемой выбрана заявка i, то связанные с заявкой i индивидуальные штрафы по первому и второму показателям равны соответственно ϕi (t + τ(i)) и ψi (t + τ(i)), следующее решение по загрузке процессора будет приниматься для момента времени t + τ(i), выбор заявки будет осуществляться в множест-

ве (S \{i}) D(t, τ(i))). Поэтому

E(t, S) =

(4.56)

 

 

=eff U((ϕi (t (i)), ψi (t (i))) E(t (i),(S \ {i}) D(t,τ(i)))) .

i S

 

Реализуя счет по рекуррентным соотношениям (4.55), (4.56), мы в итоге находим множество Е(0,V(0)) – полную совокупность эффективных оценок для решаемой задачи Р.

Задача с минимизируемыми критериями суммарного штрафа по первому показателю и максимального из штрафов по второму показателю записывается в виде

 

n

 

 

;

(4.57)

min ϕi (t *(ρ,t)), max ψi (t *(ρ,t))

ρ

i=1

i

 

 

 

будем именовать ее задачей Q. Аналогично выполненному выше для задачи Р, введем в рассмотрение порождаемые Q частные задачи. Задача Q(t, S) получается из исходной в предположении, что расписание строится от момента времени t, где t 0; следует обслужить заявки совокупности S и заявки, которые поступят на обслуживание позднее этого момента. В момент t процессор считается свободным, а S – произвольное подмножество заявок из числа поступивших (по исходным данным задачи Q) на обслуживание во временном отрезке [0, t]. Пусть E'(t, S) обозначает множество всех эффективных оценок в задаче Q(t, S ). Таким образом, E'(0, V(0)) – полная совокупность эффективных оценок в

226

исходной задаче Q. Для произвольного вектора (a, b) и множества оценок М через (a, b) М мы обозначаем совокупность оценок, определяемую следующим образом: (х, у) {(a, b) М} тогда и только тогда, когда в М имеется оценка (p, q) такая, что

х = a + p и у = max (b, q).

Очевидно, что для любого θ ≥ 0 и любой заявки j имеет ме-

сто

 

 

E'(t(n) + θ, {j}) = (ϕj (t(n) + θ +τ(j), ψj (t(n) + θ +τ(j))).

(4.58)

Далее имеем

 

 

 

(4.59)

 

E (t,S) =

 

 

=eff U((ϕi (t (i)), ψi (t (i))) E (t (i),(S \ {i}) D(t, τ(i)))) .

i S

 

 

Реализуя счет по рекуррентным соотношениям (4.58), (4.59), находим в итоге множество E'(0,V(0)) – полную совокупность эффективных оценок для решаемой задачи (4.57).

Бикритериальные задачи о назначениях. Полные совокупно-

сти эффективных оценок в бикритериальных задачах о назначениях ранее строились нами методом последовательных уступок. Сейчас эти совокупности будут строиться методом динамического программирования.

Начнем с рассмотрения задачи (4.21):

max {К1(А, π), К2(В, π)}.

π

Обозначим эту задачу символом Z. Введем в рассмотрение совокупность частных задач Z(i, Wi), формулируемых по исходным данным задачи Z; здесь i {1, 2, …, n}, а Wi – произвольное i-элементное подмножество совокупности {1, 2, …, n}. В задаче Z(i, Wi) между исполнителями 1, 2, …, i следует распределить совокупность работ, индексы которых перечислены в Wi. Если матрицы A и B трактовать как матрицы производительностей и зарплат соответственно, то первый критерий задачи – суммарная производительность исполнителей совокупности

227

{1, 2, …, i}, второй критерий – минимальная из зарплат исполнителей данной совокупности; оба критерия являются максимизируемыми. Полную совокупность эффективных оценок в задаче Z(i, Wi) будем обозначать Е(i, Wi). Как очевидно

Е(1, {j}) = (а1j, b1j) для всех j {1, 2, …, n}.

(4.60)

В рамках рассматриваемой задачи для произвольного вектора (a, b) и множества оценок М через (a, b) М обозначаем совокупность оценок, определяемую следующим образом: (х, у){(a, b) М} тогда и только тогда, когда в М имеется оценка

(p, q) такая, что х = a + p и у = min (b, q).

Если i > 1, имеем

Е(i, Wi) = eff U[(aij

j Wi

,bij ) E(i 1,Wi \ { j})] . (4.61)

Определив по формуле (4.60) все одноэлементные множества оценок для случая i = 1, далее, пользуясь формулой (4.61), последовательно находим все множества Е(2, W2), все множества Е(3, W3) и т.д. до тех пор, пока не будет построено множество Е(n, {1, 2, …, n}), т.е. совокупность всех эффективных в задаче Z оценок. Для обеспечения возможности определения по любой эффективной в Z оценке порождающего ее Парето-оптималь- ного назначения надо в процессе вычислений по формуле (4.61) для каждой пары (i, Wi) и каждого входящего в совокупность Е(i, Wi) вектора запоминать, при каком значении j из Wi этот вектор был получен.

Рассмотрим бикритериальную задачу о назначениях с мак-

n

симизируемыми критериями Q1 (π) = aiπ(i) и Q2(π)

i=1

n

=biπ(i) . i=1

Как и ранее, будем считать, что эта задача определяется парой (n×n)-матриц А = {aij} и В = {bij}, элементы которых принадлежат множеству N {ω}, где N – совокупность всех целых неотрицательных чисел, а ω – специальный символ запрета. Назна-

228

чение π допустимо, если аiπ(i) отлично от ω при всех i =1, n .

Множество всех допустимых назначений обозначим символом Н. Рассматриваемая задача записывается в виде

max {Q1(π), Q2(π)}.

(4.62)

πH

 

Задачу (4.62) будем обозначать символом Z 0. Введем в рассмотрение совокупность частных задач Z 0(i, Wi), формулируемых по исходным данным задачи Z 0; здесь i {1, 2, …, n}, а Wi – произвольное i-элементное подмножество совокупности {1, 2, …, n}. В задаче Z 0(i, Wi) между исполнителями {1, 2, …, i} следует распределить совокупность работ, индексы которых перечислены в Wi; критерии задачи – суммарные производительности исполнителей по первому и второму показателям.

Множество эффективных в задаче Z 0(i, Wi) оценок обозначим Е0(i, Wi). Как очевидно

 

Е0(1, {j}) = (а1j , b1j) для всех j {1, 2, …, n}.

(4.63)

 

Пусть Ui = {α | (α Wi) & (aiα ≠ ω)}. Если i > 1, имеем

 

E0

 

 

 

 

 

(i,Wi ) = eff U[(aij ,bij ) E0

(i 1,Wi \ { j})] , i

= 2,3,...,n.

(4.64)

 

j W

 

 

 

 

 

i

 

 

 

Определив по формуле (4.63) все одноэлементные множества оценок для случая i=1, далее, пользуясь формулой (4.64), последовательно находим все множества Е0(2, W2), все множества

Е0(3, W3) и т.д. до тех пор, пока не будет построено множество

Е0(n, {1, 2, …, n}), т.е. совокупность всех эффективных в задаче

Z0 оценок. Для обеспечения возможности определения по любой эффективной в Z0 оценке порождающего ее Парето-оптимально- го назначения надо в процессе вычислений по формуле (4.64) для каждой пары (i, Wi) и каждого входящего в совокупность Е0(i, Wi) вектора запоминать, при каком значении j из Wi этот вектор был получен.

Бикритериальная задача коммивояжера. Бикритериальная

229

задача коммивояжера (БКЗК) определяется полным взвешенным ориентированным графом без петель G с множеством вершин N = {1, 2, …, n}; вес каждой дуги – двумерный вектор (первая координата – вес по первому показателю, вторая координата – вес по второму показателю). Допустимые решения задачи – гамильтоновы циклы графа G. Каждый гамильтонов цикл оценивается двумя критериями – весами по имеющимся показателям (вес цикла по показателю i определяется как сумма весов составляющих данный цикл дуг по этому показателю). Оба критерия считаются минимизируемыми.

Исходную информацию по БКЗК считаем представленной

парой (n×n)-матриц S = {sij} и T = {tij}, где sij и tij – веса дуги (i, j) графа G по первому и второму показателям соответственно,

i = 1, n , j = 1, n , i j; все элементы главных диагоналей матриц S

и Т считаются нулевыми. В типовой интерпретации вершины графа G – это города, которые коммивояжеру необходимо обойти по замкнутому маршруту, побывав в каждом городе ровно по одному разу; для определенности считаем, что маршрут коммивояжера начинается и заканчивается в первом городе. Веса дуг sij (по первому показателю) и tij (по второму показателю) трактуются как стоимости и продолжительности соответствующих переходов; требование симметричности на матрицы не налагается, не считается обязательным и выполнение неравенства треугольника.

Рассматриваемую БКЗК обозначим символом Z. Полную совокупнсть эффективных в Z оценок Е(Z) будем строить методом динамического программирования. В изложении придерживаемся терминологии, соответствующей приведенной типовой интерпретации задачи.

Пусть i – произвольный город (i N ), а V – любое подмножество городов, не содержащее городов 1 и i. Через М(i, V) обозначим совокупность путей, каждый из которых начинается в городе i, завершается в городе 1 и проходит в качестве промежуточных только через города множества V, заходя в каждый из

230