- •Предисловие
- •Введение
- •Алгоритмы и их сложность
- •Примеры задач и алгоритмов
- •Задачи на графах: «Коммивояжер», «Кратчайшие пути», «Остовные деревья»
- •Приближенные алгоритмы: «Составление расписаний»
- •«Сортировка слиянием»
- •«Быстрая сортировка»
- •Формально об алгоритмах. Несложно о сложности
- •«RAM»: машины с произвольным доступом
- •Сложность в худшем случае
- •Сложность в среднем
- •Полиномиальные алгоритмы
- •Полиномиальность и эффективность
- •Аппроксимация с гарантированной точностью
- •Алгоритмы с оценками точности
- •Жадные алгоритмы для «Покрытия множеств»
- •Приближенные алгоритмы для «Вершинного покрытия»
- •Жадный алгоритм для «Рюкзака»
- •Алгоритм Кристофидеса
- •Аппроксимация с заданной точностью
- •«Рюкзак»: динамическое программирование
- •Полностью полиномиальная приближенная схема для «Рюкзака»
- •Вероятностный анализ детерминированных алгоритмов
- •Сложность и полиномиальность в среднем
- •Задача упаковки
- •Выполнимость КНФ
- •Точность алгоритма для почти всех входов
- •«Рюкзак»: полиномиальность в среднем
- •Вероятностные алгоритмы и их анализ
- •Вероятностная проверка тождеств
- •Максимальное по включению независимое множество в графе
- •Протокол византийского соглашения
- •Вероятностное округление
- •Максимальный разрез в графе
- •Методы дерандомизации
- •Метод условных вероятностей
- •Метод малых вероятностных пространств
- •Полиномиальная проверка простоты
- •Основы теории сложности вычислений
- •Сложность вычислений
- •Машины Тьюринга и вычислимость
- •Сводимость по Куку
- •Недетерминированные алгоритмы
- •Сводимость по Карпу
- •Вероятностные вычисления
- •Вероятностно проверяемые доказательства
- •Схемы и схемная сложность
- •Коммуникационная сложность
- •Диаграмма классов сложности
- •Приложения
- •Введение в Python
- •Глоссарий
- •Предметный указатель
- •Список алгоритмов
184 |
Глава 4. ВЕРОЯТНОСТНЫЕ АЛГОРИТМЫ И ИХ АНАЛИЗ |
В следующем раунде каждый правильный процессор получает по крайней мере G > H > L голосов за v и присваивает maj значение v на шаге 3. Затем на шаге 7 tally превосходит выбранный (любым образом) порог. Когда правильный процессор принимает решение di, остальные правильные процессоры должны иметь tally threshold, поскольку G H + t. Следовательно, они все будут голосовать за одно и то же значение di.
Теорема 16. Математическое ожидание числа раундов для алгоритма ByzGen для достижения византийского соглашения ограничено константой.
4.4Вероятностное округление
4.4.1Вероятностное округление для задачи «MAX-SAT»
Рассмотрим следующую задачу ([GW94]).
Задача 20. Максимальная выполнимость/MAX-SAT.
Даны m скобок конъюнктивной нормальной формы (КНФ) с n переменными. Найти значения переменных, максимизирующие число выполненных скобок.
В качестве примера рассмотрим следующую КНФ:
(x1 _ x2)(x1 _ x2 _ x3)(x2 _ x1)(x3 _ x2):
Переменные или их отрицания, входящие в скобку, называются литералами (так в первой скобке литералами являются x1 и x2).
4.4. ВЕРОЯТНОСТНОЕ ОКРУГЛЕНИЕ |
185 |
Задача MAX-SAT является NP-трудной, но мы рассмотрим сейчас простое доказательство того, что для любых выполнимых m скобок существуют значения переменных, при которых выполнено не менее m/2 скобок.
Теорема 17. Для любых m выполнимых скобок (т. е. скобок, не содержащих одновременно переменную и ее отрицание) существуют значения переменных, при которых выполнено не менее m/2 скобок.
Доказательство. Предположим, что каждой переменной приписаны значения 0 или 1 независимо и равновероятно. Для 1 i m пусть Zi = 1, если i-я скобка выполнена, и Zi = 0 в противном случае.
Для каждой дизъюнкции (скобки) с k литералами (переменными или их отрицаниями) вероятность, что эта дизъюнкция не равна 1 при случайном приписывании значений переменным, равна 2 k, поскольку это событие имеет место, когда значение каждого литерала в дизъюнкции равно 0, а значения разным переменным приписываются независимо. Значит, вероятность того, что скобка равна 1, есть 1 2 k 1/2,
и математическое ожидание E Zi |
|
1/2. Отсюда математическое ожидание числа выполненных скобок |
|||||
(равных 1) равно E |
|
m |
m |
|
|
m/2. Это означает, что есть приписывание значений перемен- |
|
|
i=1 Zi = |
i=1 E Zi |
|
||||
|
∑ |
m |
∑/2. |
|
|
||
ным, при котором ∑i=1 Zi |
|
|
|
||||
|
|
|
m |
|
|
|
|
Эта теорема дает по существу приближенный вероятностный алгоритм.
Определение 4.4.1. Вероятностный приближенный алгоритм A гарантирует точность C, если для всех входов I
1 E mA(I) C > 0; m0(I)
где m0(I) — оптимум, mA(I) — значение, найденное алгоритмом, и решается задача максимизации.
186 |
Глава 4. ВЕРОЯТНОСТНЫЕ АЛГОРИТМЫ И ИХ АНАЛИЗ |
Отличие приближенных алгоритмов от детерминированных состоит в рассмотрении математического ожидания времени работы.
Описанный в теореме 17 вероятностный алгоритм дает точность 1/2 для MAX-SAT. Теперь опишем другой вероятностный алгоритм, гарантирующий для MAX-SAT точность 3/4.
Для этого мы переформулируем MAX-SAT в задачу целочисленного линейного программирования (ЦЛП). Каждой скобке (элементарной дизъюнкции) Cj поставим в соответствие булеву переменную zj 2 f0; 1g, которая равна 1, если скобка Cj выполнена, каждой входной переменной xi сопоставляем переменную yi, которая равна 1, если xi = 1, и равна 0 в противном случае.
Обозначим Cj+ индексы переменных в скобке Cj, которые входят в нее без отрицания, а через Cj — множество индексов переменных, которые входят в скобку с отрицанием.
Тогда MAX-SAT допускает следующую формулировку в виде задачи ЦЛП:
∑j |
|
|
|
m |
|
|
|
zj ! max |
|
|
|
=1 |
∑ |
|
|
∑ |
(1 yi) zj 8j: |
(4.1) |
|
yi + |
|
|
|
i2Cj+ |
i2Cj |
|
|
yi; zj 2 f0; 1g 8i; j:
Упражнение 4.4.1. Докажите эквивалентность ЦЛП (4.1) и задачи 20 «MAX-SAT».
Рассмотрим и решим линейную релаксацию целочисленной программы (4.1).
4.4. ВЕРОЯТНОСТНОЕ ОКРУГЛЕНИЕ |
187 |
∑j |
|
|
|
|
m |
|
|
|
|
zj ! max |
|
|
|
|
=1 |
∑ |
|
|
|
∑ |
(1 yi) zj |
8j: |
(4.2) |
|
yi + |
|
|
||
i2Cj+ |
i2Cj |
|
|
|
yi; zj 2 [0; 1] |
8i; j: |
|
|
|
Пусть y^ ; z^ — решение линейной релаксации (4.2). Ясно, что |
m |
z^ является верхней оценкой числа |
||
выполненныхi jскобок для данной КНФ. |
|
|
∑j=1 |
j |
Рассмотрим теперь вероятностный алгоритм 33 (так называемое вероятностное округление), более интересный, чем тривиальное равновероятностное округление каждой переменной в 1 и 0. При вероятностном округлении в алгоритме 33 каждая переменная yi независимо принимает значение 1 с вероят-
ностью y^i (и 0 с вероятностью 1 |
y^i). |
Для целого k положим k = 1 |
(1 1/k)k. |
Лемма 22. Пусть в скобке Cj имеется k литералов. Вероятность того, что она выполнена при вероятностном округлении, не менее kz^j.
Доказательство. Поскольку мы рассматриваем отдельно взятую скобку, без ограничения общности можно предположить, что все переменные входят в нее без отрицаний (докажите этот факт в качестве упражнения!). Пусть эта скобка имеет вид: x1 _ : : : _ xk. Из ограничений линейной релаксации (4.2) следует, что
y^1 + : : : + y^k z^j:
188 Глава 4. ВЕРОЯТНОСТНЫЕ АЛГОРИТМЫ И ИХ АНАЛИЗ
Алгоритм 33 Приближенный вероятностный алгоритм для задачи 20 (MAX-SAT) на основе линейной релаксации
Вход: |
Формулировка задачи 20 «MAX-SAT» в виде (4.1) |
|
y^ |
решения линейной релаксации (4.2) |
|
for all i 2 f1::mg do |
||
yi |
|
0 |
if random(0::1) y^i then |
||
|
yi |
1 {yi 1 с вероятностью y^i} |
end if |
||
end for |
||
Выход: |
(y1; : : : ; ym) — приближенное решение (4.1), со средней точностью (1 1/e). |
|
|
|
|
Скобка Cj остается невыполненной при вероятностном округлении, только если каждая из переменных yi округляется в 0. Поскольку каждая переменная округляется независимо, это происходит с вероятностью ∏ki=1(1 y^i). Остается только показать, что
∏k
1(1 y^i) kz^j:
i=1
Выражение в левой части достигает минимума при y^i = z^j/k для всех i. Остается показать, что 1 (1
z/k)k |
|
|
k |
z |
для всех |
положительных целых k и 0 |
|
z |
|
1. |
||
|
|
|
|
k |
|
|
|
|||||
Поскольку f(x) = 1 (1 x/k) |
|
— вогнутая функция (см. рис. 4.4), для доказательства того, что она не |
меньше линейной функции на отрезке, достаточно проверить это нестрогое неравенство на концах этого отрезка, т. е. в точках x = 0 и x = 1 (проделайте это в качестве упражнения).
4.4. ВЕРОЯТНОСТНОЕ ОКРУГЛЕНИЕ |
|
189 |
Рис. 4.4: График функции 1 |
(1 |
x/k)k при различных k |
190 |
Глава 4. ВЕРОЯТНОСТНЫЕ АЛГОРИТМЫ И ИХ АНАЛИЗ |
Используя тот факт, что k 1 1/e для всех положительных целых k, получаем, что справедлива следующая
Теорема 18. Для произвольного входа задачи MAX-SAT (произвольной КНФ) среднее число скобок, выполненных при вероятностном округлении, не меньше (1 1/e) от максимально возможного числа выполненных скобок.
Атеперь мы опишем простую, но общую идею, которая позволит получить приближенный вероятностный алгоритм, имеющий точность 3/4.
Аидея такова: на данном входе запускаем два алгоритма и выбираем из решений лучшее. В качестве двух алгоритмов рассматриваем два алгоритма, описанных выше:
1.округление каждой переменной независимо в 0 или 1 с вероятностью 1/2;
2.вероятностное округление решения линейной релаксации соответствующей целочисленной программы (алгоритм 33 «вероятностный MAX-SAT»).
Для входной КНФ ϕ обозначим через n1 = n1(ϕ) и n2 = n2(ϕ) число выполненных скобок для первого
и второго алгоритма соответственно. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Теорема 19. |
|
|
|
|
|
|
3 |
∑j |
|
|
|
|
|
|
|
|
|
|
|
|
|
E maxfn1; n2g |
z^j: |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|||||
Доказательство. |
Поскольку для |
неотрицательных n |
|
и n выполняется max |
f |
n |
; n |
2g |
(n |
|
+ n |
)/2, до- |
|||||
|
|
3 |
∑j z^j. |
1 |
|
|
2 |
|
1 |
|
|
1 |
2 |
|
|||
статочно показать, что E(n1 + n2)/2 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|