Задание 12 ЕГЭ по информатике

Е. Джобсid 955911 балл

Задания на машину Тьюринга

Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки. В каждой ячейке находится ровно один символ из алфавита исполнителя (множество символов A={a0,a1,,an1}A=\{a_{0},a_{1},…,a_{n–1}\}), включая специальный пустой символ a0a_{0}.

Время работы исполнителя делится на дискретные такты (шаги). На каждом такте головка МТ находится в одном из множества допустимых состояний Q={q0,q1,,qn1}Q=\{q_{0},q_{1},…,q_{n–1}\}. В начальный момент времени головка находится в начальном состоянии q0q_{0}.

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

Программа работы исполнителя МТ задаётся в табличном виде.

a0a_{0}

a1a_{1}

...

q0q_{0}

команда

команда

...

q1q_{1}

команда

команда

...

...

...

...

...

В первой строке перечислены все возможные символы в текущей ячейке ленты, в первом столбце – возможные состояния головки. На пересечении ii-й строки и jj-го столбца находится команда, которую выполняет МТ, когда головка обозревает jj-й символ, находясь в ii-м состоянии. Если пара «символ – состояние» невозможна, то клетка для команды остаётся пустой.

Каждая команда состоит из трёх элементов, разделённых запятыми: первый элемент – записываемый в текущую ячейку символ алфавита (может совпадать с тем, который там уже записан). Второй элемент – один из четырёх символов «L»«L», «R»«R», «N»«N», «S»«S». Символы «L»«L» и «R»«R» означают сдвиг в левую или правую ячейки соответственно, «N»«N» – отсутствие сдвига, «S»«S» – завершение работы исполнителя МТ после выполнения текущей команды. Сдвиг происходит после записи символа в текущую ячейку. Третий элемент – новое состояние головки после выполнения команды.

Например, команда 0,L,q30, L, q_{3} выполняется следующим образом: в текущую ячейку записывается символ «0»«0», затем головка сдвигается в соседнюю слева ячейку и переходит в состояние q3q_{3}.

Выполните задание

На ленте исполнителя МТ в соседних ячейках записана последовательность из 1000 символов, включающая только нули, единицы и двойки. Ячейки справа и слева от последовательности заполнены пустыми символами «λ»«λ». В начальный момент времени головка расположена в ближайшей ячейке слева от последовательности.

Программа работы исполнителя:

 

λλ

00

11

22

q0q_0

λ,R,q1λ, R, q_1

 

 

q1q_1

λ,S,q1λ, S, q_1

1,R,q11, R, q_1

2,R,q12, R, q_1

0,R,q10, R, q_1

После выполнения программы получилась строка, сумма значений в которой равна 455. Определите максимально возможное число нулей в исходной последовательности.