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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

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