logo
tsvpis

5.2 Недетерменированные машины Тьюринга(ндмт)

Определение. НДМТ – машина Тьюринга, в которой функция перехода δ – многозначна, т. е., если в обычной МТ по мгновенным показаниям Ci однозначно определяется Ci+1 (записывается Ci⟼Ci+1) , то в НДМТ этот переход имеет несколько вариантов :

Ci⟼Ci+1

Ci⟼C’i+1

Ci⟼C’’i+1

и т. д.

Фактически процесс переход а мгновенных описаний ветвится, и на каждом шаге машина как бы угадывает правильное направление перехода(существует другая модель, аналогичная НДМТ – МТ с оракулом, т.е. с некоторым встроенным устройством, которое правильно предугадывает последовательность действий – куда пойти, чтобы получить правильный ответ).

Пример НДМТ. Рассмотрим задачу о разбиении.

Постановка задачи: имеется некоторый конечный набор натуральных чисел. Можно ли это множетсво разбить на непересекающихся подмножестватак, чтобы , т.е. сумма чисел в каждом подмножестве была одинаковой.

На обычной МТ и на любом ее аналоге эта задача за полинамиальное время не решается (на данный момент алгоритм неизвестен). На НДМТ эту задачу нетрудно решить за полинамиальное время следующим образом: проходим множество М и для каждого элемента этого множетсва оракул предстказывает, куда этот элемент нужно вписать, в М1 или в М2 . При этом еще параллельно происходит суммирование элементов первого и второго подмножеств. Дойдя до конца, сравниваем счетчики сумм. Если они равны, то задача решена, в противном случае так разделить исходное множество нельзя. Итак, НДМТ решает задачу о разбиение за линейное время T(n) = тю

Если же данную задачу мы попытаемся решить на олбычной машине Тьюринга , то потребуется 2n-1 nдействий, так как вариантов разбиения множества на два подмножества 2n/2. При каждом варианте потребуется n /2 операций сложения. Итого трудоемкость T(n)= 2n-1 =n∙2n-2 действий.

Определение. Класс Р (P-TIME) - класс задач, решаемых за полиномиальное время на обычной (детерминированной) МТ.

Примеры подобных задач:

Определение. Класс NP (NP-TIME) — класс задач, решаемых за полиномиальное время на недетерминированной МТ.

Примеры подобных задач:

Последняя задача решается на НДМГ следующим образом: сначала на каждом шаге мы должны правильно угадать вершину, в которую нужно идти, а потом суммировать стоимости переходов для данного маршрута. Если сумма не превосходит С, то ответ положительный.

Класс NP содержит класс Р. Но совпадают ли эти классы - неизвестно (скорее всего ответ будет отрицательный).

Определение. Две функции f1,f2: NN со свойствами

fi(n)≥0, i=1,2

называются полиномиалъно-эквивачентными, если существуют два полинома р1 и р2 такие, что p1(f1(n))≥ f2(п) и p2(f2(n))≥ f1(п).

Пример:

Полиномиально-эквивалентные функции:

С одной стороны, п2n3, с другой стороны (п2)2 > п3, то есть свойство полиномиальной эквивалентности выполняется, хотя эти функции не эквивалентны, так как п2 «п3.

2n≤10n

(2n)4=(24)n=16n>10n

Полиномиально-неэквивалентные функиыи:

n и Inn

n≥lnn

в какую бы степень α мы ни возвели In n, всегда будет (In n)а «n. Следовательно, не выполняется свойство полиномиальной эквивалентности.

n и 2

(n)β<2n=> не выполняется свойство полиномиальной эквивалентности.

n!> 2n

n!>(22)β=> не выполняется свойство полиномиальной эквивалентности.

Теорема 5.1 Если некоторая задача может быть решена на НДМТ M1 за некоторое время Т(n), то она же может быть решена на ДМТ М2 за время T1 =.

Доказательство.Введем число k , равное максимальной степени ветвления функции переходов δ нашей исходной НДМГ M1. Построим обычную МТ М2, которая перебирает все возможные варианты ветвления функции δ и все их просчитывает. Исходная M1 делает Т(п) шагов. На каждом шаге присутствует не более k вариантов ветвления. Итого получаем не больше, чем kT(n) вариантов. Трудоемкость каждого варианта Т(п). Итого общая трудоемкость M1:

T1(n)≤nT(n)∙T(n)=2logkT(n)+logT(n)

Теорема доказана.

Комментарий. Как следует из Теоремы 5.1, любую задачу, решаемую на НДМТ за полиномиальное время, мы можем решить и на обычной МТ, но за большее время (не полиномиально эквивалентное).

Теорема 5.2Любая задача, решаемая на к—ленточной НДМТ (к-ленточной МТ) за время Т(n), может быть решена на одноленточной МТ такого же типа (если была k-ленточная НДМТ, то будет одноленточная НДМТ, в случае к-ленточной МТ будет одноленточная MТ) за время Ti<CT2(n)

Доказательство. Научимся моделировать работу к-ленточной на одноленточной машине такого же вида. Поступаем для этого следующим образом: необходимо информацию о мгновенном описании к - ленточной машины записать на одну ленту (т.е. все символы на лентах + N обозреваемых ячеек):

Делаем это следующим образом:

1 лента

….



2 лента

---

---

+

….



k лента

….



Рисунок5.1 Моделирование работы k-ленточной МТ на одноленточной

Плюс или минус в ячейках результирующей ленты стоит в зависимости от того, находится ли над соответствующей ячейкой одной из лент многоленточной машины считывающая головка, или нет.

Промоделируем 1 шаг работы исходной k-ленточной машины M1 на новой одноленточной машине. Для этого сначала проходим всю ленту и ищем плюсы, Т.е. те ячейки, над которыми находятся считывающие головки. Параллельно просматриваем содержимое данных ячеек.

На следующем проходе меняем расположение плюсов в соответствии со старой функцией перехода. При этом в соответствии с инструкциями L и R перемещаем плюсики. Потом переходим в новое состояние.

Новая функция переходов 𝜹 ' для построенной таким образом одноленточной машины, гораздо больше по количеству команд, нежели исходная функция 𝜹 k-ленточной машины, и при этом она будет однозначной, если исходная ленточная машина была детерминирована, а если исходная k-ленточная машина была недетерминирована, то неоднозначность сохранится.

То есть для моделирования одного шага k-ленточной машины нам потребуется два раза пройти всю ленту, новой одноленточной машины. Заметим, что длина исписанного участка каждой ленты исходной машины не превосходит T(n),так как за Т(п) шагов мы не можем уйти больше чем на Т(п) клеток от первой ячейки.

Итого на один шаг нам потребуется k T(N) действий. Для моделирования Т(п) шагов нам потребуется

T1(n) ≤T(n) •k(n) с • T( n) Т(п) • k • Т(п) =с • Т2 (n)

действий.

Теорема доказана.

Комментарий. Таким образом, при замене k- ленточной машины на одноленточную, трудоемкость задач, решаемых на одноленточной и k-ленточной МТ (НДМТ и ДМТ), полиномиально эквивалентна.