Вторая лекция

Содержание:

Возможности Машины Тьюринга.

Упражнение: Существует ли МТ с “волшебным” состоянием $q_{m}$, таким, что начиная с состояния $q_{m}$ и любых входных данных, машина оставляет к концу работы всю ленту пустой.

Ответ: нет (мусор может находится сколь угодно далеко).

Приемы построения МТ

  1. Композиция машин

$M_{1}$ с начальным состоянием $q_{1}$ и конечным состоянием $q_{0}$.

$M_{2}$ с начальным состоянием $\overline{q_{1}}$ и конечным состоянием $\overline{q_{0}}$.

Общий алфавит

Построим машину $M$: $Q(M)=Q(M1)\or Q(M2)$, где $Q(M1)$ и $Q(M2)$ - непересекающиеся множества состояний машины.

Начальное состояние $M$ это $q_{1}$

Заключительное состояние $M$ это $\overline{q_{0}}$

И добавляется команда $\delta(q_{0}, a)=(\overline{q_{1}}, a, ↓)$ ($a$ - любой символ)

  1. Метка на ленте

Множество отметок $L$ алфавит

Рассмотрим входной $\Sigma * L$. Будем считать, что машина работает над новым алфавитом, при этом умеет отмечать любое конечное, заранее заданное количество ячеек.

  1. Оперативная память

Множество отметок в памяти $R$

Рассмотрим множество состояний $Q*R$. Будем считать, что машина работает над новым числом состояний и умеет запоминать какие-то факты.

$(q, 0)$

$(q, 1)$

$(q, 2)$ →→→→$(\overline{q}, 1)$

Теорема: $f, g: \Sigma^{} → \Sigma^{}$

Пусть функции $f$ и $g$ выписанны на МТ. Тогда $f○g$ точно вычислима на МТ.

Лемма (об очистке мусора):

Пусть машина $M$ вычисляет функцию. Тогда существует $M’$, которая вычисляет $f_{1}$, но ее итоговая конфигурация выдает как $q$ $f(w)$, где $w$ - входное слово.

◄ ► - два новых символа, с которыми будут работать $M$.

$N_{1}$ преобразует конфигурацию $q, w$ в конфинурацию ◄$q_{1}, w$►.

$N_{2}$ повторяет действие $M$, но сохраняет “буйки”.

|a|b|c|буёк|...|
|a|b|c|_|буёк|...|
|a|b|c|d|буёк|...|

$N_{3}$ стирает мусор между буйками и символы ◄ и ►.

$N_{4}$ возвращает указатель в крайнее левое положение.

Многоленточность

Рассмотрим МТ с $h$ лентами.

$(Q, \Sigma, delta:Q\Sigma^{h}→Q\Sigma^{h}*{→, ←, ↓}, q_{0}, q_{1})$

$\Sigma$ - общий для всех лент.

Более удобный вид конфигурации

Пусть $N$ таково, что на каждой из лент написанно не более, чем $N$ символов.

Составим матрицу $h*N$ из элементов $(a, q)$, где $a$ - символ из $\Sigma$, $q\in{Q}\or{\lambda}$

Матрица конфигураций;

$(a, \lambda)$ $(b, q)$ $(c, \lambda)$

$(0, q)$ $(1, \lambda)$ $(\lambda, \lambda)$

Столбец матрицы конфинураций можно выбрать не более чем $ \Sigma ^{h}*( Q +1)^{h}​$ способов.

Теорема:

Любая функция, вычислимая на многоленточной МТ, вычислима на одноленточной МТ.


Новая машина будет использовать $ \Sigma ^{h}( Q +1)^{h}$ символов входной ленты. Каждый символ кодирует столбец в матрице конфигураций.

Моделирование такта работы многоленточной машины:

  1. Запомнить текущую ячейку и уйти в крайнее левое положение.
  2. Пройти всю конфигурацию и запомнить все символы, на которые смотрят головки.
  3. Переходим в состояние, которое “помнит”, что делать со всеми лентами на многоленточной МТ.