Кодирование и нумерация машин Тьюринга.

Зафиксируем счетные множества символов {a0,a1,…,ai,…} и {q0,q1,…,qj,…}, и будем считать, что внешние алфавиты и алфавиты внутренних состояний всех машин Тьюринга берутся из этих множеств. Причем будем считать, что буква a0 принадлежит всем внешним алфавитам машин и интерпретируется как пустой символ, а буквы q0 и q1 содержатся во всех алфавитах внутренних состояний всех машин и всегда означают заключительное и начальное состояние. Опишем теперь единый способ представления информации о машинах с помощью кодирования. Каждому символу из множества {L,R,E,a0,a1,…,ai,…,q0,q1,…,qj,…}, поставим в соответствие двоичный набор согласно таблице

 

 

  Символ Код Число нулей в коде
Символы сдвига R L E 10 100 1000 1 2 3
Символы алфавита ленты a0 a1 ... ai ... 10000 1000000 ... 10 … 0 ... 4 6 ... 2i + 4 ...
Символы алфавита состояний q0 q1 ... qj ... 100000 10000000 ... 10 … 0 ... 5 7 ... 2j + 5 ...

Далее команде I машины Т вида qa ® q¢a¢d ставится в соответствие

Код (I) = Код(q) Код(a) Код(q¢) Код(a¢) Код(d),

представляющее собой приписывание кодов символов друг к другу. Пусть машина Т имеет алфавиты А = {a0,a1,…,am} и Q = {q0,q1,…,qn}. Упорядочим пары qiaj лексикографически q1a0, q1a1,…, q1am, q2a0,…, qna0,…, qnam. В соответствии с этим упорядочим команды машины Т

I1, I2, … , In(m+1) .

Машине Т поставим в соответствие код

Код(Т) = Код(I1) Код(I2) … Код(In(m+1)),

получаемый приписыванием друг к другу кодов команд. Для машины Т рассмотренного примера (1.3) кодом будет

Код (Т) = 10710310510610310710610710610.

Ясно, что по коду команды и коду машины команда и машина восстанавливаются однозначно. Более того, этот процесс перехода от машины к ее коду и обратно алгоритмический. Далее, код (Т) есть слово из нулей и единиц, и поэтому его можно рассматривать как двоичную запись натурального числа. Данное число называется номером машины Т. Поскольку все коды начинаются с единицы, то разным кодам соответствуют разные числа. Упорядочим машины Тьюринга по возрастанию их номеров и получим нумерацию машин Тьюринга

Т0, T1, T2, … , Tn, …

Поскольку кодирование эффективно, то существует машина Тьюринга, которая по натуральному числу n выдает Код(Тn) (если такая существует) и обратно, по Код(Tn) выдает ее номер nT. Пусть fn(x) - функция, вычисляемая машиной Тn. Тогда получаем нумерацию всех вычислимых по Тьюрингу функций одного переменного

f0(x), f1(x), … fn(x), …

Нетрудно показать, что всякая вычислимая по Тьюрингу функция встречается в этом списке бесконечное число раз.








Дата добавления: 2014-12-02; просмотров: 2600;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.