- •Предисловие
- •Введение
- •Алгоритмы и их сложность
- •Примеры задач и алгоритмов
- •Задачи на графах: «Коммивояжер», «Кратчайшие пути», «Остовные деревья»
- •Приближенные алгоритмы: «Составление расписаний»
- •«Сортировка слиянием»
- •«Быстрая сортировка»
- •Формально об алгоритмах. Несложно о сложности
- •«RAM»: машины с произвольным доступом
- •Сложность в худшем случае
- •Сложность в среднем
- •Полиномиальные алгоритмы
- •Полиномиальность и эффективность
- •Аппроксимация с гарантированной точностью
- •Алгоритмы с оценками точности
- •Жадные алгоритмы для «Покрытия множеств»
- •Приближенные алгоритмы для «Вершинного покрытия»
- •Жадный алгоритм для «Рюкзака»
- •Алгоритм Кристофидеса
- •Аппроксимация с заданной точностью
- •«Рюкзак»: динамическое программирование
- •Полностью полиномиальная приближенная схема для «Рюкзака»
- •Вероятностный анализ детерминированных алгоритмов
- •Сложность и полиномиальность в среднем
- •Задача упаковки
- •Выполнимость КНФ
- •Точность алгоритма для почти всех входов
- •«Рюкзак»: полиномиальность в среднем
- •Вероятностные алгоритмы и их анализ
- •Вероятностная проверка тождеств
- •Максимальное по включению независимое множество в графе
- •Протокол византийского соглашения
- •Вероятностное округление
- •Максимальный разрез в графе
- •Методы дерандомизации
- •Метод условных вероятностей
- •Метод малых вероятностных пространств
- •Полиномиальная проверка простоты
- •Основы теории сложности вычислений
- •Сложность вычислений
- •Машины Тьюринга и вычислимость
- •Сводимость по Куку
- •Недетерминированные алгоритмы
- •Сводимость по Карпу
- •Вероятностные вычисления
- •Вероятностно проверяемые доказательства
- •Схемы и схемная сложность
- •Коммуникационная сложность
- •Диаграмма классов сложности
- •Приложения
- •Введение в Python
- •Глоссарий
- •Предметный указатель
- •Список алгоритмов
3.4. ТОЧНОСТЬ АЛГОРИТМА ДЛЯ ПОЧТИ ВСЕХ ВХОДОВ |
139 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3.5: Карта-памятка раздела 3.3.0
3.4Точность алгоритма для почти всех входов
Хотя человека, использующего жадный алгоритм, можно заставить сильно ошибиться при принятии сложных решений (например, при решении NP-трудных задач), в типичном случае он обычно выигрывает. Этот почти философский тезис будет нами проиллюстрирован на примере жадного алгоритма для задачи о покрытии.
В данном разделе мы рассмотрим некоторое ослабление анализа сложности в среднем. Это ослабление происходит в двух направлениях: во-первых, мы рассматриваем не только точные алгоритмы, но и приближенные, а во-вторых, анализ сложности в среднем заменяется на анализ для «почти всех» исходных данных.
Ранее мы доказали, что для задачи о покрытии жадный алгоритм (см. раздел 2.1.1) в худшем случае гарантирует нахождение покрытия, размер которого превосходит размер минимального покрытия не бо-
140 |
Глава 3. ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ |
лее чем в логарифмическое число раз (по m). Наша цель сейчас — показать, что для «типичных» данных (в отличие от худшего случая, см. упражнение 2.1.2) это отношение близко к единице, т. е. размер покрытия, найденного жадным алгоритмом, почти равен размеру минимального покрытия.
Как и в предыдущем разделе, мы будем использовать формулировку задачи о покрытии на языке (0; 1)-матриц и целочисленных линейных программ:
cx ! min; |
|
Ax b; |
(3.5) |
8j xj 2 f0; 1g: |
|
В этой целочисленной линейной программе n столбцов-переменных x1; : : : ; xn соответствуют подмножествам S1; : : : ; Sn и их включению в решение-покрытие. Матрица A также является матрицей инцидентности, а векторы стоимости и ограничений — также векторы размерности n и m соответственно, состоящие полностью из единиц.
Таким образом, m строк-ограничений, соответствующих m предметам, очевидным образом выражают ограничение на обязательное включение предмета хотя бы в одно из покрывающих подмножеств, а целевая функция равна числу таких подмножеств.
Как и в разделе 3.2, предположим, что A = (aij) — случайная (0,1)-матрица, такая, что для всех i; j выполнено
P faij = 1g = p; P faij = 0g = 1 p:
Пусть RG = ZMG , где ZG — величина покрытия, найденного жадным алгоритмом, а M — величина минимального покрытия. Наш основной результат заключается в следующей теореме.
3.4. ТОЧНОСТЬ АЛГОРИТМА ДЛЯ ПОЧТИ ВСЕХ ВХОДОВ |
141 |
Теорема 11. Пусть вероятность 0 < p < 1 фиксирована, и пусть для задачи (3.5) со случайной матрицей A, определенной выше, выполнены следующие условия:
8 > 0 |
ln n |
|
! 0; |
при n ! 1; |
(3.6) |
m |
|||||
|
ln m |
! 0; |
при n ! 1: |
(3.7) |
|
|
n |
Тогда для любого фиксированного " > 0
PfRG 1 + "g ! 1 при n ! 1:
Заметим, что условия теоремы требуют, чтобы матрица A не была «экспоненциально вытянутой» по высоте или ширине. В частности, для «пропорциональных» матриц, у которых m = cn, где c — некоторая константа, и «несильно перекошенных матриц», у которых m = O(nc), условия (3.6) и (3.7) теоремы 11 выполнены автоматически.
Доказательство. Сначала докажем нижнюю оценку размера минимального покрытия. Пусть X — случайная величина, равная числу покрытий размера
l0 = l0( ) = (1 ) ln m/ ln(1 p) ;
тогда ( )
n
E X = l0 P (l0);
142 Глава 3. ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ
где P(l0) — вероятность того, что фиксированные l0 столбцов являются покрытием A. Нетрудно увидеть (убедитесь, что это действительно нетрудно!), что
|
|
l = 1 (1 p)l0 |
m |
|
|
m(1 p)l0 |
|
: |
|
|
|
|||||
Используя неравенство |
|
nk P( |
0)nk, получаем( |
) |
|
expf |
|
|
|
g |
|
|
|
|
||
|
(l0) |
|
|
|
|
|
|
|
|
|
|
|
|
|||
ln E X l0 ln n m(1 p) |
|
|
{ |
|
|
|
|
|
|
|
|
} |
|
|
||
|
|
ln m |
|
|
|
|
|
ln m |
|
|
||||||
|
|
|
|
ln n m exp |
(1 |
) ln(1 |
p) |
|
|
|
|
|
||||
|
ln(1 |
p) |
ln(1 |
|
p) |
|
|
|||||||||
|
|
|
|
|
|
|
ln m |
|
|
|
|
|
|
ln m |
||
|
|
|
|
|
|
|
|
|
ln n |
|
mm 1m |
|
ln n m : |
|||
|
|
|
|
|
|
ln(1 |
p) |
|
ln(1 p) |
Проверим, что для любого фиксированного 0 < < 1 при условиях (3.6) последнее выражение стремится к при n, стремящемся к бесконечности. Действительно, положив = /2 в условии 3.6, получим требуемое, т.к. ln m растет медленнее, чем m /2.
Таким образом, вероятность того, что нет покрытия размера l0 в случайной (0; 1)-матрице, стремится к 1, поскольку согласно первому неравенству Чебышева :
PfX 1g E X ! 0:
Последнее означает, что PfM l0g ! 1:
Теперь докажем верхнюю оценку размера покрытия, построенного жадным алгоритмом. Используем следующую известную лемму [AS92] о вероятности больших уклонений для сумм неза-
висимых случайных величин.
Иногда упоминается как неравенство Маркова.
3.4. ТОЧНОСТЬ АЛГОРИТМА ДЛЯ ПОЧТИ ВСЕХ ВХОДОВ |
143 |
Лемма 8. Пусть Y — сумма n независимых случайных величин, каждая из которых принимает значение 1 с вероятностью p и 0 с вероятностью 1 p. Тогда
PfjY npj > npg 2 expf ( 2/3)npg:
По этой лемме вероятность того, что некоторая фиксированная строка содержит менее чем (1 )pn единиц (или более чем (1 + )pn единиц) оценивается сверху так:
Pbad 2 expf ( 2/3)npg;
и математическое ожидание числа таких строк не превосходит mPbad. Тогда при n ! 1, по условию (3.7) получаем
mPbad 2 expfln m ( 2/3)npg = 2 expfln m O(1)ng ! 0:
Из P fX 1g E X — первого неравенства Чебышева следует, что вероятность события «каждая строка содержит не менее (1 )pn единиц» стремится к 1.
Теперь мы можем почти дословно повторить получение верхней оценки размера покрытия, построенного жадным алгоритмом, в худшем случае.
Пусть Nt — число непокрытых строк после t-го шага жадного алгоритма. Подсчитывая нижнюю оценку числа единиц в подматрице, образованной непокрытыми строками (Nt 1), и делая вывод о существовании столбца в этой подматрице с числом единиц не менее среднего, имеем:
Nt Nt 1 |
Nt 1(1 |
)pn |
(1 (1 )p) |
|
|
|
= Nt 1 |
||
n |
|
N0 (1 (1 )p)t = m(1 (1 )p)t:
144 Глава 3. ВЕРОЯТНОСТНЫЙ АНАЛИЗ ДЕТЕРМИНИРОВАННЫХ АЛГОРИТМОВ
Первое неравенство получается оценкой снизу суммарного числа единиц в подматрице из Nt 1 непо-
крытых строк (это Nt |
1(1 |
)pn) и выводом, что найдется столбец, содержащий не менее среднего числа |
||||
единиц (равного |
Nt 1(1 )pn |
) |
|
|
||
|
n |
|
|
|
||
Найдем максимальное t, при котором еще есть непокрытый элемент: |
||||||
Получим |
|
|
|
m(1 (1 )p)t 1: |
||
|
|
|
ln m + t ln(1 (1 )p) 0; |
|||
или |
|
|
|
|||
|
|
|
|
ln m |
||
|
|
|
|
t |
||
|
|
|
|
|
: |
|
|
|
|
|
ln(1 (1 )p) |
Отсюда получается верхняя оценка мощности «жадного покрытия» (ZG = t + 1) в типичном случае:
P(ZG 1 |
ln m |
|
) ! 1: |
ln(1 p(1 |
)) |
Комбинируя это неравенство с нижней оценкой, можно получить, что для любого фиксированного
" > 0 и достаточно больших n |
P(RG 1 + ") ! 1: |
|
|||
Действительно, |
|
||||
ln(1 |
|
)) ln(1 |
|
||
|
|
p(1 |
p); |
||
и для любого " > 0 существует > 0, такое, что |
|
|
|||
RG |
ln(1 |
p) |
|
+ o(1) (1 |
) 1 + o(1) 1 + ": |
|
|
|
|||
(1 ) ln(1 |
p(1 |
)) |