Generative Artificial Intelligence: How generative AI works.pdf
Average Knapsack
1. Полиномиальный в среднем алгоритм для
«Рюкзака»
Н.Н. Кузюрин С.А. Фомин
10 октября 2008 г.
Лекция основана на результатах из:
«Beier, R. and V¨cking, B. (2003). In
o
Proceedings of the 35th ACM Symposium on
Theory of Computing (STOC), pages
232–241».
1 / 15
2. Полиномиальность в среднем
Определение
«Полиномиальный в среднем (точно)»
Алгоритм A называется полиномиальным в среднем, если среднее
время его работы ограничено полиномом от длины входа, т.е.
существует константа c > 0, такая, что En TA = O(nc ).
Упражнение
Приведите пример функции TA (времени работы некоторого
алгоритма A) и распределения исходных данных Pn (I ), для которых
TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет.
2
Определение
«Полиномиальный в среднем»
Алгоритм называется полиномиальным в среднем, если существует
константа ε > 0, такая, что En T ε = O(n), где T — время работы
алгоритма. 2 / 15
3. Задача о рюкзаке
Задача
«0–1 Рюкзак (Knapsack)»
Даны:
c1 , . . . , cn , cj ∈ N — «стоимости» предметов;
a1 , . . . , an , aj ∈ N — «размеры» или «веса»;
B ∈ N — «размер рюкзака».
Найти максимальное значение f ∗ целевой функции
n
f ≡ ci xi → max
i=1
с ограничением на размер «рюкзака»:
n
ai xi ≤ B, xi ∈ {0, 1}.
i=1
3 / 15
7. Мат. ожидание сложности алгоритма полиномиально
Теорема
Пусть:
ai — «веса», произвольные положительные числа;
ci — «стоимости», независимые случайные величины,
равномерно распределенные на [0, 1];
q = max |ParetoSolutions| — число доминирующих подмножеств для
всех n предметов.
Тогда
E(q) = O(n3 ).
7 / 15
8. Определения
m = 2n , S1 , . . . , Sm — подмножества [n] в порядке неубывания весов.
(Веса i∈Sk ai множеств Sk в нашей теме не возникают.)
Для любых 2 ≤ u ≤ m, 1 ≤ k ≤ u:
Plusk = Su Sk
Minusk = Sk Su
Δ+
k = ci
i∈Plusk
Δ−
k = ci
i∈Minusk
Δu = min Δ+ − Δ−
k k
1≤k<u
∀u ≥ 2, Su — доминирующее множество ⇔ Δu > 0.
8 / 15
10. P(ВНабореНеМалы|ПаретоНабор) ≤ nε
∀j ≤ t и 0 < ε < 1:
P (cj < ε| ∀k : Δ+ > Δ−
k k = P (cj < ε| cj > x)
при x ≥ ε: 0
≤ ε−x ε(1−x) x(1−ε)
при x < ε: 1−x = 1−x − 1−x
≤ ε
P(cj < ε|cj > x)
-
0 x ε 1
P(ВНабореНеМалы|ПаретоНабор) = P(∪t ЭлементМалj |ПаретоНабор)
j=1
t
≤ P(ЭлементМалj |ПаретоНабор)
j=1
≤ t · ε ≤ nε.
10 / 15
11. P(ДельтаМала|ПаретоНабор ∧ ВНабореНеМалы) ≤ nε
Оценим P(ПаретоНабор) при априорности событий (при условии):
«∀j cj ∈ [0, 1]», «ВНабореНеМалы»(и, следовательно, «Δ+ ≥ ε»):
k
P(ПаретоНабор|ВНабореНеМалы) = P ∀k Δ− ≤ Δ+ , ∀j > t cj ∈ [0, 1] =
k k
1
= P ∀k Δ− ≤ (1 − ε) Δ+ , ∀j > t cj ∈ [0, 1 − ε] ≤
k k
(1 − ε)n−t
1
≤ P ∀k Δ− ≤ Δ+ − ε2 , ∀j > t cj ∈ [0, 1 − ε] ≤
k k
(1 − ε)n−t
1
≤ P (ДельтаМала|ВНабореНеМалы)
(1 − ε)n−t
С другой стороны, ДельтаМала ⊂ ПаретоНабор, и
P(ДельтаМала|ПаретоНабор ∧ ВНабореНеМалы) =
P(ДельтаМала|ВНабореНеМалы)
= ≥ (1 − ε)n−t ≥ (1 − ε)n ≥ 1 − nε
P(ПаретоНабор|ВНабореНеМалы)
11 / 15
12. P(A|B) = P(A|B ∩ C ) · P(C |B) + P(A|B ∩ C ) · P(C |B)
x +y
P(A|B) =
x +y +z +w
событие A событие C
P(A|B ∩ C ) · P(C |B) =
y y +z
y = ·
x z y +z x +y +z +w
w
событие B P(A|B ∩ C ) · P(C |B) =
x x +w
= ·
x +w x +y +z +w
12 / 15