- •§ 8. Диафантовы множества.
- •Теорема Лагранжа.
- •8.1. Разрешимость в натуральных числах.
- •Определение.
- •Определение.
- •Теорема 8.1.
- •Теорема 8.2.
- •Необходимость.
- •Достаточность.
- •8.2. Нумерация кортежей.
- •Канторова нумерация.
- •Геделево кодирование.
- •Определение.
- •Теорема 8.3.
- •Теорема 8.4.
- •Определение.
- •0.2. Машина с неограниченными регистрами (мнр) [Ктл, c.16]
- •0.3. Равнодоступные адресные машины (рам) [Ахо, с.22]
- •Типы операндов.
- •Команды.
- •0.4. Интерпретация программы как функции.
- •0.6. Вычислительная сложность рам-программ.
- •Определение.
- •Определение.
- •Определение.
- •Логарифмический критерий.
- •0.7. Модификации рам.
- •0.8. Неветвящиеся программы и равномерный весовой критерий.
- •Определение.
- •0.9. Неветвящиеся программы и логарифмический весовой критерий.
- •0.10. Ветвления.
- •0.11. Операции с двоичными векторами фиксированной длины. Определение.
- •Определение.
- •0.12. Машина Тьюринга (k-ленточная).
- •Определение.
- •Определение.
- •0.13. Связь мт и рам.
- •Теорема 0.1.
- •Утверждение 1.
- •Утверждение 2.
- •§ 1. Структуры данных. Определение.
- •1) Вставка.
- •2) Удаление.
- •1.1. Очередь и стек. Определение.
- •Определение.
- •1.2. Множества. Представление множеств.
- •1) Применение списков.
- •3) Представление в виде массивов.
- •4) Представление в виде графа.
- •Определение.
- •Определение.
- •§ 2. “Разделяй и властвуй”.
- •Теорема 2.1
- •§ 3. Динамическое программирование
- •Алгоритм 3.1.
- •§ 4. Редактирующее расстояние
- •Алгоритм 4.1.
- •Алгоритм 4.2.
- •§ 5. Порядковые статистики Определение.
- •Алгоритм 5.1
- •Теорема 5.2.
- •§ 6. Вхождение образца
- •Определение.
- •Алгоритм 6.1a.
- •Алгоритм 6.1б. Вычисление функции отказов.
- •Теорема 6.2.
- •Алгоритм 6.1.Б вычисляет f за o(n) шагов.
- •Конец пока
- •Алгоритм lz
- •Дельта – алгоритм
- •Арифметическое кодирование
Определение.
Функция f(n) называется экспоненциальной, если существуют такие постоянные c1 > 0, k1 > 1, c2 > 0 и k2 > 1, что с1k1n f(n) c2k2n для всех , кроме конечного числа, значений n.
Все функции, полиномиально эквивалентные экспоненте, - экспоненциальны.
Полиномиальность задачи можно проверить на любой вычислительной модели.
0.12. Машина Тьюринга (k-ленточная).
Многоленточная машина Тьюринга (МТ), изображенная на рис.2, состоит из k лент, бесконечно простирающихся вправо. Каждая лента разбита на клетки, каждая клетка содержит один из конечного числа символов на ленте. Одна клетка на каждой ленте обозревается головкой этой ленты. Головка может считывать с ленты и записывать на нее. Работа машины определяется простой программой, называемой управляющим устройством. Оно всегда находится в одном из конечного числа состояний, которое можно рассматривать как номер текущей команды в программе.
Один шаг вычисления на машине Тьюринга состоит в следующем: в соответствии с текущим состоянием управляющего устройства и символами на лентах, обозреваемыми, (т.е. находящимися) под каждой из головок, машина Тьюринга может выполнить некоторые или все из следующих операций:
1) изменить состояние управляющего устройства,
2) напечатать новые символы на лентах вместо старых в каких-нибудь или во всех клетках под головками,
3) сдвинуть какие-нибудь или все головки независимо друг от друга на одну клетку влево (L) или вправо (R) либо оставить на месте (S).
Формально k-ленточная МТ задается семеркой (Q, T, I, , b, q0, qf),
где
1) Q - множество состояний.
2) T - множество символов на лентах,
3) I - множество входных символов,
4) b - пустой символ,
5) q0 - начальное состояние.
6) qf - заключительное (или допускающее) состояние,
7) - функция переходов, она отображает некоторое подмножество множества Q*Tk в Q*(T*{L,R,S})k, т.е. по произвольному набору из состояния и k символов на лентах она выдает новое состояние и k пар, каждая из которых состоит из нового символа на ленте и направления сдвига головки.
Пусть (q1, a1, a2, ...ak)=(q (a1,d1),(a2,d2), ...,(ak,dk)) и МТ находится в состоянии q, а ее головка на i-ой ленте обозревает символ ai, 1 i k. Тогда за один шаг эта машина Тьюринга переходит в состояние q, заменяет ai на ai и сдвигает головку на i-ой ленте в направлении (или в
соответствии с) di, 1 i k.
Определение.
Временная сложность T(n) машины Тьюринга M равна наибольшему числу шагов, сделанных ею при обработке входа длины n (для всех входов длины n). Если на каком-нибудь входе длины n МТ не останавливается, то для этого n значение T(n) не определено.
Определение.
Емкостная сложность S(n) МТ равна наибольшему расстоянию от левого конца ленты, которое должна пройти головка при обработке входа длины n. Если головка на какой-то ленте неопределенно долго движется вправо, то функция S(n) не определена. Порядок величин при применении в качестве модели МТ обозначается Omt.