Part I Машина Тьюринга Формальное описание машины Тьюринга Definition (Q, Σ, Γ, δ, q0 , B, F) Q,Γ,Σ - конечные множества 1 Q - множество состояний 2 Σ - алфавит допустимых входных символов 3 Γ ⊇ Σ - алфавит допустимых на ленте символов 4 δ : Q × Γ → Q × Γ × {L, R} - функция переходов 5 q0 ∈ Q - начальное состояние 6 B - пустрой символ(B ∈ Γ, B ∈ / Σ) 7 F - множество финальных состояний состояния Конфигурация машины Тьюринга Definition X1 X2 · · · Xi−1 qXi Xi+1 · · · Xn 1 q - состояние МТ 2 считывающая головка МТ находится на i-ом символе 3 X1 X2 · · · Xn - часть ленты, заключенная между правым и левым крайним непустым символом на ленте Правила изменения состояния МТ 1 δ(q, Xi ) = (p, Y, L): X1 X2 · · · Xi−1 qXi Xi+1 · · · Xn ` X1 X2 · · · Xi−2 pXi−1 YXi+1 · · · Xn M i = 1: qX1 X2 · · · Xn ` pBYX2 · · · Xn M i = n, Y = B: X1 X2 · · · Xn−1 qXn ` X1 X2 · · · Xn−2 pXn−1 M Правила изменения состояния МТ 2 δ(q, Xi ) = (p, Y, R): X1 X2 · · · Xi−1 qXi Xi+1 · · · Xn ` X1 X2 · · · Xi−1 YpXi+1 · · · Xn M i = n: X1 X2 · · · Xn−1 qXn ` X1 X2 · · · Xn−1 YpB M i = 1, Y = B: qX1 X2 · · · Xn ` pX2 · · · Xn M Пример L = {0n 1n | n ≤ 1} M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, {0, 1, X, Y, B}, δ, q0 , B, {q4 }) State q0 q1 q2 q3 q4 0 (q1 , X, R) (q1 , 0, R) (q2 , 0, L) - 1 (q2 , Y, L) - X (q0 , X, R) - Y (q3 , Y, R) (q1 , Y, R) (q2 , Y, L) (q3 , Y, R) - B (q4 , B, R) - Язык, распознаваемый МТ L(M) = {q0 ω ` αpβ, p ∈ F} M Definition Языки, распознаваемые МТ, называются рекурсивно-перечислимыми. Остановка МТ и распознавание МТ всегда завершает работу, если она переходит в распознающее состояние. Definition Язык называется рекурсивным, если для него существует МТ, завершающая свою работу в независимости от того распознана строка или нет. Техники программирования МТ 1 Хранение информации в текущем состоянии МТ 2 Множество связанных дорожек 3 Использование подпрограмм Расширения МТ 1 МТ с набором независимых лент 2 недетерминированные МТ Ограниченные МТ 1 МТ, ленты которых бесконечны только в одну сторону 2 автоматы с набором стеков