Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Book-advanced-algorithms.pdf
Скачиваний:
298
Добавлен:
27.03.2016
Размер:
5.11 Mб
Скачать

3.5. «РЮКЗАК»: ПОЛИНОМИАЛЬНОСТЬ В СРЕДНЕМ

145

3.5«Рюкзак»: полиномиальность в среднем

Полиномиальность «в среднем» алгоритма динамического программирования Немхаузера – Ульмана для задачи о рюкзаке

([BV03]).

Итак, рассмотрим еще раз задачу 13 «Knapsack». Как мы видели в разделе 2.2.1, для задачи 13 «Knapsack» существует алгоритм 25 «Рюкзак Немхаузера–Ульмана», поддерживающий в процессе своей рабо-

ты множество парето-оптимальных или, как иногда говорят, доминирующих решений (определение 2.2.1 «Пареторюкзак»). Сложность этого алгоритма — O(n jParetoSolu onsj), т. е. напрямую зависит от конечного раз-

мера множества доминирующих решений для данного входного рюкзака. И хотя можно показать, что существуют такие входные наборы, для которых размер множества доминирующих решений будет экспоненциальным по n (упражнение 2.2.5), для практических целей интересно проанализировать, насколько «часто» встречаются такие плохие входные наборы, возможно ли ожидать от этого алгоритма полиномиального времени работы «в среднем».

Оказалось, справедлива следующая теорема, доказательство которой и составляет все содержание этого раздела.

Теорема 12. Пусть

ai — «веса», произвольные положительные числа;

ci — «стоимости», независимые случайные величины, равномерно распределенные на [0; 1];

q = max jP aretoSolutionsj — число доминирующих подмножеств для всех n предметов.

146

Глава 3. ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ

Тогда

E(q) = O(n3):

Сначала введем некоторые определения.

Пусть m = 2n, S1; : : : ; Sm — подмножества [n] в порядке неубывания весов. Сразу заметим, что веса i2Sk ai множеств Sk в нашем рассмотрении не возникают.

Для фиксированной u 2 [2 : : : m] и переменной k 2 [1 : : : u) определим:

P lusk — предметы в Su, которых нет в Sk;

Minusk — предметы в Sk, которых нет в Su;

k+

— сумма стоимостей предметов в P lusk;

k

— сумма стоимостей предметов в Minusk;

u

— минимальная разность ∆k+ k , по всем k меньшим u; условно говоря, это «максимальное пре-

 

имущество в стоимости» над всеми предыдущими подмножествами S1; : : : ; Su 1.

Или, более формально:

P lusk

= Su n Sk;

Minusk

= Sk n Su;

k+

=

ci;

 

 

P lus

 

 

i2k

k

=

ci;

3.5. «РЮКЗАК»: ПОЛИНОМИАЛЬНОСТЬ В СРЕДНЕМ

147

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следующее утверждение следует напрямую из этих определений и определения 2.2.1 «Парето-рюкзак»:

Лемма 9. 8u 2, Su — доминирующее множество тогда и только тогда, когда u > 0.

Учитывая, что стоимость самого последнего множества Sm ограничена по крайней мере n, то интуитивно уже можно утверждать, что чем больше в среднем будет прирост стоимости ∆u > 0 для каждого доминирующего набора u, тем меньше в среднем будет размер всего множества парето-решений

P aretoSolutions.

Далее мы последовательно:

1.оценим вероятность «неблагоприятных» с точки зрения минимизации размера P aretoSolutions событий, таких, как небольшой прирост ∆u > 0 для нового доминирующего подмножества;

2.определим математическое ожидание прироста стоимости ∆u > 0 для нового доминирующего подмножества u;

148

Глава 3. ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ

3.получим мат. ожидание размера P aretoSolutions и, следовательно, математическое ожидание времени работы алгоритма.

Итак, рассмотрим некоторое u, пусть Su = [1; : : : ; t] (это только вопрос удобства — нам ничего не мешает перенумеровать предметы в исходном наборе).

Тогда:

8 1 k < u P lusk [1; : : : ; t]; Minusk [t + 1; : : : ; n]:

Для некоторого параметра 0 < " < 1 определим следующие события с достаточно «говорящими» названиями:

ПаретоНабор

=

fu > 0g

ДельтаМала

=

 

< "2

}

ЭлементМалj

=

{cj u< "

g

 

ЭлементНеМалj

=

f

 

= fcj "g

ЭлементМал

j

ВНабореНеМалы

= \jt=1ЭлементНеМалj

Оценим вероятность того, что в доминирующем подмножестве есть элемент с «малой» стоимостью.

Лемма 10. P(ВНабореНеМалыjПаретоНабор) n".

Доказательство. 8j t и 0 < " < 1 имеем для некоторого x:

3.5. «РЮКЗАК»: ПОЛИНОМИАЛЬНОСТЬ В СРЕДНЕМ

P (cj < "

k : ∆k+ > k

)

= P (cj < "

cj > x)

 

j 8

j

 

P(cj < "jcj > x-)

 

 

 

 

 

0 x " 1

P(ВНабореНеМалыjПаретоНабор) = P([tj=1ЭлементМалjjПаретоНабор)

149

{

при x ":

0

x =

1

x

1

x

 

":

при x < ":

1

 

 

 

"

x

"(1

x)

 

x(1

")

 

 

t

P(ЭлементМалjjПаретоНабор) t " n":

j=1

Теперь оценим вероятность того, что прирост стоимости доминирующего подмножества будет «мал», при условии, что в наборе нет «малых» предметов.

Лемма 11. P(ДельтаМалаjПаретоНабор ^ ВНабореНеМалы) n".

Доказательство. Оценим P(ПаретоНабор) при априорности событий (при условии): «8j cj 2 [0; 1]», «ВНабореНеМалы»(и,

150

 

 

 

Глава 3.

ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ

следовательно, «∆k+ "»):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(ПаретоНаборjВНабореНеМалы) =

 

 

 

 

 

 

 

+

t

 

c

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= P (8k k k ;

 

 

 

1]) =

 

 

 

 

 

 

 

1

8j >+

 

 

 

j 2

[0

 

)

 

 

=

 

 

 

 

 

P

k k

 

(1 ") ∆k

;

8

j > t cj

2

[0; 1 "]

 

 

 

 

 

1

 

 

 

(1

 

t

(8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

")n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P (8k k k+ "2; 8j > t cj 2 [0; 1 1 "])

(1 ")n t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P (

 

jВНабореНеМалы) :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ДельтаМала

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1 ")n

t

Здесь был использован известный факт из геометрии: объем политопа (выпуклой области, задаваемой системой неравенств в (n t)-мерном пространстве), «уменьшенного» в 1 " раз, меньше исходного

в(1 ")n t. А вероятность как раз и выражалась через объем политопа!

Сдругой стороны, ДельтаМала ПаретоНабор, и

P(ДельтаМалаjПаретоНабор ^ ВНабореНеМалы) =

 

P(

 

jВНабореНеМалы)

 

 

 

=

ДельтаМала

 

(1 ")n t

(1 ")n 1 n":

P

 

 

 

 

 

 

j

 

 

 

 

 

(ПаретоНабор ВНабореНеМалы)

Далее нам понадобится небольшая техническая лемма из теории вероятностей.

Лемма 12.

P(AjB) = P(AjB \ C) P(CjB) + P(AjB \ C) P(CjB):

3.5. «РЮКЗАК»: ПОЛИНОМИАЛЬНОСТЬ В СРЕДНЕМ

151

Доказательство. Рассмотрим пересечение событий A, B, C, где «разрезанные» части обозначены x, y, z, w:

Используя соотношение

P(AjB) = P(A \ B);

P(B)

152

 

Глава 3.

ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ

получим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P(AjB \ C) P(CjB) + P(AjB \

 

 

) P(

 

jB) =

 

 

 

 

 

 

 

C

C

 

 

 

 

 

 

 

 

 

y

 

y + z

 

x

 

x + w

 

 

=

 

 

 

+

 

 

 

=

 

 

y + z

x + y + z + w

x + w

x + y + z + w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

x + y

= P(AjB):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x + y + z + w

Теперь мы готовы оценить вероятность малого прироста стоимости доминирующего подмножества:

Лемма 13. P(ДельтаМалаjПаретоНабор) 2n".

Доказательство. Оценим P(ДельтаМалаjПаретоНабор), используя леммы 10, 11, 12:

P(ДельтаМалаjПаретоНабор) =

= P(ДельтаМалаjПаретоНабор \ ВНабореНеМалы) P(ВНабореНеМалыjПаретоНабор)

+P(ДельтаМалаjПаретоНабор \ ВНабореНеМалы) P(ВНабореНеМалыjПаретоНабор)

P(ДельтаМалаjПаретоНабор \ ВНабореНеМалы) + P(ВНабореНеМалыjПаретоНабор)

n" + n" = 2n":

3.5. «РЮКЗАК»: ПОЛИНОМИАЛЬНОСТЬ В СРЕДНЕМ

153

Рис. 3.6: Граф зависимостей утверждений в разделе 3.5

154

Глава 3.

ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ

Теперь мы готовы перейти к доказательству самой теоремы. Возьмем " =

1

 

, тогда

3n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E(∆uju > 0)

 

"2

P(

 

jПаретоНабор) =

 

 

 

 

 

 

 

ДельтаМала

 

 

 

 

 

 

 

 

=

"2

(1 P(ДельтаМалаjПаретоНабор))

 

 

 

 

 

 

"2

1

 

2

1

 

 

 

 

(1 2n") =

 

(1

 

) =

 

:

 

 

9n2

3

27n2

Обозначим математическое ожидание стоимости Sm через Cm. Sm — это множество максимального веса и стоимости, содержащее все предметы.

С одной стороны,

n Cm = n E(ci) = 2 :

С другой стороны, учитывая, что стоимость пустого набора S1 равна нулю, стоимость Sm можно под-

считать, как

u, и

 

 

 

 

 

 

 

 

 

 

u2f2; :::;mg:∆u>0

m

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

1

 

 

 

Cm = P(∆u > 0) E(∆uju > 0)

 

27n2

u=2

P(∆u > 0):

 

u=2

 

 

 

 

 

 

 

 

 

Откуда получаем

m

 

 

 

 

 

 

 

 

 

 

 

n

 

 

27

 

 

 

P(∆u > 0) = 27n2

 

 

 

 

 

 

 

=

 

 

n3:

 

 

2

 

2

 

u=2

Теперь мы можем выразить математическое ожидание размера множества доминирующих решений:

E(q) = 1 + m P(∆u > 0) 1 + 272 n3 = O(n3):

u=2

3.5. «РЮКЗАК»: ПОЛИНОМИАЛЬНОСТЬ В СРЕДНЕМ

155

Вспоминая, что сложность алгоритма равна O(nq), получаем полиномиальность алгоритма 25 «Рюкзак Немхаузера–Ульмана» в среднем, разумеется, на случайных входных данных с описанным в начале раздела распределением.

Напомним связь между утверждениями (леммами и теоремами) раздела 3.5 на рис. 3.6.

Следует отметить, что в работе [BV03] доказана полиномиальность в среднем не только для равномерного, но и для других типов вероятностных распределений исходных данных в задаче о рюкзаке.

Некоторые экспериментальные результаты поведения алгоритма 25 «Рюкзак Немхаузера–Ульмана» на случайных данных, можно увидеть на рисунке 3.7. Представлено время (показатель me) работы алгоритма 25 «Рюкзак Немхаузера–Ульмана» и максимальный размер множества частичных решений (показатель ParetoS) в зависимости от n — числа предметов для рюкзака.

156

 

 

 

 

 

Глава 3. ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]