Вторая лекция
Содержание:
Возможности Машины Тьюринга.
Упражнение: Существует ли МТ с “волшебным” состоянием $q_{m}$, таким, что начиная с состояния $q_{m}$ и любых входных данных, машина оставляет к концу работы всю ленту пустой.
Ответ: нет (мусор может находится сколь угодно далеко).
Приемы построения МТ
- Композиция машин
$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$ - любой символ)
- Метка на ленте
Множество отметок $L$ алфавит
Рассмотрим входной $\Sigma * L$. Будем считать, что машина работает над новым алфавитом, при этом умеет отмечать любое конечное, заранее заданное количество ячеек.
- Оперативная память
Множество отметок в памяти $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}$ символов входной ленты. Каждый символ кодирует столбец в матрице конфигураций. |
Моделирование такта работы многоленточной машины:
- Запомнить текущую ячейку и уйти в крайнее левое положение.
- Пройти всю конфигурацию и запомнить все символы, на которые смотрят головки.
- Переходим в состояние, которое “помнит”, что делать со всеми лентами на многоленточной МТ.