208 Глава 6. Основы теории сложности вычислений
и «−1». Пусть S = hk, Σ, Γ
S
, α
S
, β
S
, γ
S
i — произвольная k-
ленточная машина Тьюринга. Будем кодировать каждое со-
стояние машины S словом фиксированной длины r над алфа-
витом Σ
∗
0
. Тогда каждую строку из табличного представления
машины S можно записать строкой-кодом фиксированной дли-
ны:
gt
1
. . . t
k
α
S
(g, t
1
, . . . , t
k
)β
S
(g, t
1
, . . . , t
k
)γ
S
(g, t
1
, . . . , t
k
),
g ∈ Γ; t
i
∈ Σ; ∀i = 1, . . . , k.
Итак, на «k + 1»-ой ленте у нас будет записано все таблич-
ное представление машины S в виде фиксированного размера
кодов, на «k + 2»-ой ленте изначально будет записано старто-
вое состояние S, на первых k лентах — входные данные.
Наша УМТ T будет пробегать по «k + 1»-ой ленте, пока те-
кущее состояние моделируемой машины S и символы t
1
. . . t
k
на лентах 1 . . . k не совпадут с записанным на «k + 2»-ой лен-
те кодом. Тогда из кода извлекаются инструкции, что делать
с первыми k лентами, новое состояние, которое записывается
на «k + 2»-ую ленту, и все повторяется.
Для наглядности на рис. 6.6 приведен граф переходов
для 3-х ленточной УМТ, эмулирующей одноленточную МТ.
Большие прямоугольники обозначают состояния, вложенные
прямоугольники — условия переходов в другие состояния, на
ребрах-переходах прописаны совершаемые с лентами действия.
T (k), k = 1, 2, 3 — обозначают ленты, в контексте сравнения —
символ под головкой данной ленты.
Изначально машина находится в состоянии START, на
ленте T (3) записан код стартового состояния S. В состоянии
START мы пытаемся сравнить текущий код на ленте 2 и теку-
щее состояние S, записанное на ленте 3. Если они совпадают,
и совпадает с ожидаемым символ на первой ленте, то «перема-
тываем» к началу третью ленту (REWIND_T3), записываем
на нее новое состояние из второй ленты (WRITE_STATE),