- •Глава 1
- •§ 1. Затраты алгоритма для данного входа, алгебраическая сложность
- •§ 1. Затраты алгоритма для данного входа
- •§ 1. Затраты алгоритма для данного входа
- •§ 1. Затраты алгоритма для данного входа
- •§ 1. Затраты алгоритма для данного входа
- •§ 2. Асимптотические оценки (формализм)
- •§ 2. Асимптотические оценки (формализм)
- •§ 2. Асимптотические оценки (формализм)
- •§ 3. Асимптотические оценки (два примера) 23
- •§ 3. Асимптотические оценки (два примера)
- •§ 3. Асимптотические оценки (два примера)
- •§ 3. Асимптотические оценки (два примера)
- •§ 3. Асимптотические оценки (два примера)
- •§ 4. Длина числа как возможный размер входа
- •§ 4. Длина числа как возможный размер входа
- •§ 4. Длина числа как возможный размер входа
- •§ 4. Длина числа как возможный размер входа
- •Глава 2
- •§ 5. Понятие сложности в среднем
- •§ 5. Понятие сложности в среднем
- •Глава 2. Сложность в среднем
- •§ 5. Понятие сложности в среднем
- •Глава 2. Сложность в среднем
- •§ 6. Сортировка и конечные вероятностные пространства.
- •§ 6. Сортировка и конечные вероятностные пространства 47
- •Глава 2. Сложность в среднем
- •§ 6. Сортировка и конечные вероятностные пространства 49
- •Глава 2. Сложность в среднем
- •§ 6. Сортировка и конечные вероятностные пространства 51
- •Глава 2. Сложность в среднем
- •§ 7. Пример медленного роста сложности в среднем
- •§ 7. Пример медленного роста сложности в среднем в сравнении со сложностью в худшем случае
- •Глава 2. Сложность в среднем
- •§ 7. Пример медленного роста сложности в среднем 55
- •Глава 2. Сложность в среднем
- •§ 7. Пример медленного роста сложности в среднем
- •Глава 2. Сложность в среднем
- •§ 8. Функция затрат рандомизированного алгоритма
- •§ 8. Функция затрат рандомизированного алгоритма
- •Глава 2. Сложность в среднем
- •§ 8. Функция затрат рандомизированного алгоритма
- •Глава 2. Сложность в среднем
- •§ 8. Функция затрат рандомизированного алгоритма
- •Глава 2. Сложность в среднем
- •Глава 2. Сложность в среднем
- •Глава 2. Сложность в среднем
- •Глава 2. Сложность в среднем
- •Глава 2. Сложность в среднем
- •Глава 3
- •§ 9. Функции, убывающие по ходу выполнения алгоритма
- •§ 9. Функции, убывающие по ходу выполнения алгоритма 75
- •§ 9. Функции, убывающие по ходу выполнения алгоритма 77
- •§ 9. Функции, убывающие по ходу выполнения алгоритма 79
- •§ 9. Функции, убывающие по ходу выполнения алгоритма 81
- •§ 10. Качество оценок
- •§ 10. Качество оценок
- •§ 10. Качество оценок
- •§ 10. Качество оценок
- •§ 11. Завершимостъ работы алгоритма
- •§ 11. Завершимость работы алгоритма
- •§ 11. Завершимостъ работы алгоритма
- •§ 11. Завершимостъ работы алгоритма
- •§ 12. Вложенные циклы (дополнительные примеры)
- •§ 12. Вложенные циклы (дополнительные примеры)
- •§ 13. Нецелые размеры входа и непрерывные оценочные функции 97
- •§ 13. Нецелые размеры входа и непрерывные оценочные функции
- •§ 13. Нецелые размеры входа и непрерывные оценочные функции 99
- •Глава 4
- •§ 14. Понятие нижней границы сложности
- •§ 14. Понятие нижней границы сложности
- •§ 15. Оптимальные алгоритмы
- •§ 15. Оптимальные алгоритмы
- •§ 15. Оптимальные алгоритмы
- •§ 15. Оптимальные алгоритмы
- •§ 16. Асимптотические нижние границы. Алгоритм, оптимальный по порядку сложности
- •§ 16. Асимптотические нижние границы
- •§ 16. Асимптотические нижние границы
- •§ 17. Нижняя граница сложности в среднем
- •§ 17. Нижняя граница сложности в среднем
- •§ 17. Нижняя граница сложности в среднем
- •§ 17. Нижняя граница сложности в среднем
- •§ 17. Нижняя граница сложности в среднем 125
- •§ 18. Нижние границы сложности рандомизированных алгоритмов. Принцип Яо
- •§18. Нижние границы сложности рандомизированных алгоритмов 127
- •Глава 5
- •§ 19. Битовые операции
- •Глава 5. Битовая сложность
- •§ 19. Битовые операции
- •Глава 5. Битовая сложность
- •§ 20. Наивная арифметика: умножение
- •§ 20. Наивная арифметика: умножение
- •Глава 5. Битовая сложность
- •§ 20. Наивная арифметика: умножение
- •Глава 5. Битовая сложность
- •§ 21. Наивная арифметика: деление с остатком
- •§ 21. Наивная арифметика: деление с остатком
- •Глава 5. Битовая сложность
- •§ 21. Наивная арифметика: деление с остатком
- •Глава 5. Битовая сложность
- •§ 22. Модулярная арифметика
- •§ 22. Модулярная арифметика
- •Глава 5. Битовая сложность
- •§ 22. Модулярная арифметика
- •Глава 5. Битовая сложность
- •§ 22. Модулярная арифметика
- •Глава 5. Битовая сложность
- •§ 23. Булева арифметика
- •§ 23. Булева арифметика
- •Глава 5. Битовая сложность
- •§ 23. Булева арифметика
- •Глава 5. Битовая сложность
- •Глава 5. Битовая сложность
- •Глава 6
- •§ 24. Простейшие рекуррентные уравнения
- •§ 24. Простейшие рекуррентные уравнения
- •§ 24. Простейшие рекуррентные уравнения
- •§ 25. Об одном классе нелинейных рекуррентных соотношений 163
- •§ 25. Об одном классе нелинейных рекуррентных соотношений
- •§ 25. Об одном классе нелинейных рекуррентных соотношений 165
- •§ 25. Об одном классе нелинейных рекуррентных соотношений 167
- •§26. Асимптотические оценки решений рекуррентных неравенств 169
- •§ 26. Асимптотические оценки решений рекуррентных неравенств
- •§ 26. Асимптотические оценки решений рекуррентных неравенств 171
- •§ 27. Добавление нулей
- •§ 27. Добавление нулей 173
- •§ 27. Добавление нулей 175
- •§ 27. Добавление нулей
- •§ 27. Добавление нулей 179
- •Глава 7 Сводимость
- •§ 28. Линейная сводимость
- •Глава 7. Сводимость
- •§ 28. Линейная сводимость
- •Глава 7. Сводимость
- •§ 28. Линейная сводимость
- •Глава 7. Сводимость
- •§ 29. Линейная сводимость и нижние границы сложности
- •§ 29. Линейная сводимость и нижние границы сложности 191
- •Глава 7. Сводимость
- •§ 29. Линейная сводимость и нижние границы сложности 193
- •Глава 7. Сводимость
- •§ 30. Классы PиNp
- •§ 30. Классы р и np
- •Глава 7. Сводимость
- •§ 30. Классы PuNp
- •Глава 7. Сводимость
- •§ 30. Классы PuNp
- •Глава 7. Сводимость
- •§ 31. Существование задач распознавания, не принадлежащих р 201
- •§ 31. Существование задач распознавания, не принадлежащих р. Связь моделей мт и рам
- •Глава 7. Сводимость
- •§ 31. Существование задач распознавания, не принадлежащих р 203
- •Глава 7. Сводимость
- •§ 32. Полиномиальная сводимость. Np-полные задачи
- •§ 32. Полиномиальная сводимость. Np-полные задачи
- •Глава 7. Сводимость
- •Глава 7. Сводимость
- •Глава 7. Сводимость
- •Глава 7. Сводимость
- •Глава 1. Сложности алгоритмов как функции числовых аргументов. Сложность в худшем случае
- •119002, Москва, Большой Власьевский пер., 11. Тел. (499) 241-74-83
§ 17. Нижняя граница сложности в среднем
123
получаются перестановками элементов массива х1,х2,...,хп и при этом сравнения элементов с теми же самыми индексами, которые использовались в уже произведенных сравнениях элементов массива х1,х2, ...,хп, дают для массивов из М результаты, совпадающие с полученными для х1, х2,...,хп. Представим множество М в виде объединения двух непересекающихся подмножеств М1 и М2, где в М1 входят те массивы, для которых у <у;-, а в М2—те, для которых у,- <у. Покажем, что в М1 больше элементов, чем в М2. Операция обмена у <—>у;- определяет взаимно однозначное отображение на себя множества всех массивов, которые получаются перестановками элементов массива х1,х2, ...,хп. Обратным к этому отображению является оно само. В силу определения множеств В и С это отображение переводит элементы множества М1 в элементы множества М2. Следовательно, в М1 элементов не больше, чем в М2. Но в М2 найдется массив, который при этом отображении не переходит в массив из М1 и, более того, вообще покидает множество М (чтобы убедиться в этом, достаточно заметить, что в М2 имеется такой массив У1,у2, ...,уп, для которого yj = тт{у1,у2, ...,у„}). Поэтому в М1 элементов меньше, чем в М2. Если т1, т2 обозначают количества элементов множеств М1 и М2, то имеем
— < —
т1+т2 т1 + т2
и, следовательно,
m1 1
— < .
т1+т2 2
Таким образом, вероятность того, что i-й элемент меньше j-го, есть 12 - е, е > 0. Получаем
ЕД1 = -212 - е) = -1 + 2е > -1.
Тип АВ. Аналогично предыдущему можно показать, что при любом способе выбора индексов таких, что х{ е А, х;- е В, вероятность
выполнения неравенства xt > х;- есть - - е, е > 0. Получаем
ЕД1 = -!(12-е) -1(1+е)=-1 + е>-1.
Тип АС. Рассматривается аналогично типу АВ.
В дальнейшем будет полезна оценка е для сравнений типов АВ и АС. Рассмотрим для определенности АВ. Очевидно, что чем больше сравнений к рассматриваемому моменту прошел элемент х;- е В, тем меньше вероятность того, что элемент xteA окажется больше него.
124 Глава 4. Нижняя граница сложности. Оптимальные алгоритмы
Наибольшая же вероятность получится в случае, когда х;- сравнивался только с одним элементом, например с xs, и xs—это наименьший элемент исходного массива. Вычислим вероятность, с которой в этом случае xt>Xj. Итак, если упорядочить все элементы, кроме x,Xj, то xs окажется наименьшим (первым). Общее число способов, которыми к этой упорядоченной совокупности можно добавить x,Xj, с учетом xs < xj равно n(n - 2) (для добавления Xj существует п - 2 способа, затем добавляем x, и для этого существует п способов). Из них 2) - 1 соответствуют неравенству xt < xi (возможен любой выбор двух среди п мест, кроме двух первых). Интересующая нас вероятность равна
п(п-2)-(п) + 1 1 1
■ ■
п(п-2) 2 2п
Это дает нам е ^ 1-, и, таким образом,
для АВ и АС. Если при четном п удастся обойтись сравнениями типов АА,ВВ,СС, то сравнений потребуется в точности 32п-2. Если п нечетно, то для решения задачи обязательно потребуется произвести хотя бы одно сравнение типа АВ, АС или AD. Сравнение типа AD
дает Д1 = -12>-1 + 21 .
Можно убедиться и в том, что для сравнений типов АВ и АС выполняется ЕД1^-1 + —, если ЕД1 рассматривается как математическое ожидание при условии, что значения Д1 для всех предыдущих сравнений, предписываемых алгоритмом, известны. Эти известные значения определяют некоторое событие V в вероятностном пространстве П„. Событие V может быть представлено как сумма V1 + V2 + ... + Vl попарно несовместных событий, где каждое Vk состоит из тех элементов П„, для которых все предыдущие сравнения образуют некоторую фиксированную последовательность сравнений элементов с вполне определенными для данного к индексами, и при этом возникающие значения Д1 совпадают с известными
из условия. В силу доказанного выше E(AL|Vfc) ^ -1 + 2- для каж дого к ^ Z. Отсюда по формуле полного математического ожидания E(AL|V)^ 1
2п
-1 +
В сумме 2 пк, о которой идет речь в теореме 17.1, мы можем поло-fc=1 жить hk = 1 для всех значений к, кроме какого-то одного значения к0,