Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Нумерация машин Тьюринга




Нумерация алгоритмов

Л е к ц и я 15

 

 

В данной лекции будут приведены эффективные кодирования натуральными числами множества всех алгоритмов для каждой из рассматриваемых моделей алгоритмов: машин Тьюринга, МПД-программ, частично рекурсивных функций. Данные результаты относятся к числу фундаментальных, так как они используются для получения многих важных фактов, в частности, для установления невычислимости ряда конкретных функций.

 

 

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

Далее, команде I машины Тьюринга Т, имеющей вид qa à q’a’d, ставится в соответствие двоичный набор вида

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

в котором коды букв приписаны друг к другу. Пусть машина Т имеет алфавиты A = { a 0, a 1, …, am } и Q = { q 0, q 1, …, qn }. Упорядочим команды машины Т в соответствии с лексикографическим порядком левых частей команд:

q 1, a 0, q 1, a 1, …, q 1, am, q 2, a 0, …, q 2, am, …, qn, a 0, …, qn, am.

Пусть I 1, …, In ( m +1), — соответствующая последовательность команд. Тогда машине Т поставим в соответствие двоичный набор вида

Код (T) = Код (I 1) Код (I 2)… Код (In ( m +1)),

полученный приписыванием друг к другу кодов команд.

 

Таблица 15.1

 

  Символ Код Число нулей в коде
Символы сдвига R L E    
Символы алфавита ленты a 0 a 1 ai … 100…00 … … 2× i + 4 …
Символы алфавита состояний q 0 q 1 qi … 100…00 … … 2× j + 5 …

 

Пример 15.1. Пусть дана машина Тьюринга Т. A = { a 0, a 1} и Q = { q 0, q 1}:

.

Тогда имеем Код (T) = 107104105104103107106105106103.

Легко видеть, что машина Т переводит конфигурации в конфигурации , и поэтому, представляя натуральное число n как , получаем, что машина Т вычисляет функцию f (x) = x.

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

Номер машины Т в этом упорядочении будем обозначать nT.

Указанное упорядочение является эффективным в том смысле, что существует алгоритм, который по n выдает Код (Tn) и существует алгоритм, который, наоборот, по Код (Tn) выдает nT.

Если обозначить через fn (x) одноместную функцию, которую вычисляет машина Тьюринга Tn, то в результате получим нумерацию всех одноместных частично рекурсивных функций:

f 0(x), f 1(x), …, fn (x), …

Согласно доказанному, каждая одноместная частично рекурсивная функция представлена в этой последовательности. Можно доказать, что каждая такая функция представлена в последовательности (5) бесконечное число раз. Аналогично можно определить нумерацию n -местных функций.

 




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


Дата добавления: 2014-12-29; Просмотров: 2478; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.051 сек.