русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Не распознаваемость самоприменимости машины Тьюринга


Дата добавления: 2013-12-23; просмотров: 1625; Нарушение авторских прав


 

Приведем доказательство о не распознаваемости самоприменимости машины Тьюринга.

Для этого нам понадобятся следующие теоремы и определения.

Теорема 3.2.1. (о композиции машин Тьюринга). Каковы бы ни были машины Тьюринга Т1 и Т2 в алфавите А, можно построить работающую в том же алфавите такую машину Т, что для всех слов a над алфавитом А будет выполнено равенство Т(a)=Т21(a)).

Доказательство этой теоремы осуществляется просто. Внутренние состояния машин Т1 и Т2 (включая начальные состояния) переименовываются, причем в функциональной схеме машины Т1 переход в заключительное состояние заменяется переходом в начальное состояние машины Т2. При этом функциональные схемы объединяются в одну.

Теорема 3.2.2. (о двоичном моделировании машины Тьюринга) Какова бы ни была машина Т1 в алфавите А, может быть построена такая машина Т в алфавите В={a0, 0, 1}, что для любых слов a1, a2 над алфавитом А и их кодов b1, b2 над алфавитом В Т(b1)= Т(b2) тогда и только тогда, когда Т1(a1)= a2.

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

При этом с помощью побуквенного обратимого (конструктивного) двоичного кодирования кодируются в общем случае:

– символы внешнего алфавита и алфавита внутренних состояний,

– символы, используемые при записи команд машины Тьюринга (Л, П, ,«оставаться на месте»),

– символ, фиксирующий начало и конец программы,

– символ, служащий разделителем между командами.

Подчеркнем, что сама двоичная кодировка указанных символов может осуществляться разными способами (один из способов можно найти в []). Важно лишь то, что кодирование обязательно должно быть обратимым. В этом случае двоичная запись машины Тьюринга (Т), которую далее будем обозначать, следуя [] ŒТŒ (Œ условная запись двоичного кода символа, фиксирующего начало и конец программы), будет однозначно задавать функциональную схему машины Т.



Заметим также, что двоичная запись машины Тьюринга однозначно определяет натуральное число. Натуральные числа, являющиеся записями машины Тьюринга называют геделевскими – по имени австрийского математика Курта Геделя, впервые в 30 годы XX века использовавшего номера объектов вместо них самих для формальных рассуждений об этих объектах. К.Гедель

Рассматривая далее множество машин Тьюринга {T} будем считать, что каждая из них задана своей двоичной записью ŒТŒ. Широко известная в теории алгоритмов массовая проблема остановки в этих терминах формулируется следующим образом.

Применима ли машина Тьюринга Т, заданная своей записью ŒТŒ, к двоичному слову p или нет?

Еще одна известная массовая проблема теории алгоритмов – проблема самоприменимости – звучит так.

Применима ли машина Тьюринга Т, заданная своей записью ŒТŒ, к своей записи ŒТŒ или нет?

Очевидно, что проблема самоприменимости является частным случаем проблемы остановки. И если проблема самоприменимости алгоритмически неразрешима, то и проблема остановки относится к числу алгоритмически неразрешимых проблем.

Тот факт, что проблема самоприменимости алгоритмически неразрешима, фиксирует следующая теорема.

Теорема 3.2.3. (о нераспознаваемости самоприменимости). Не существует машины Тьюринга S, которая по записи ŒТŒопределяла бы, самоприменима машина Т или нет.

Доказательство. Предположим противное и допустим, что существует машина Тьюринга S, распознающая самоприменимость. Без ограничения общности можно считать, что S(ŒCŒ)=1, а S(ŒНŒ)=0, где ŒCŒ – произвольная самоприменимая машина Тьюринга, а ŒНŒ – произвольная несамоприменимая машина Тьюринга.

Введем в рассмотрение машину Т1 с алфавитом внутренних состояний Q={q0, q1, q2 }, работающую в алфавите A={a0, 0, 1} в соответствие со следующей функциональной схемой.

 

Q A q1 q2
a0 q1 q2
q00 q2
q2 q2

 

Как видно из приведенной схемы, если первая буква исходного слова a есть 0, то Т1(a)=a. Если же исходное слово a пусто или начинается с 1, то Т1 неприменима к слову a, Т1(a)=1111…

Определим теперь новую машину Тьюринга S1 как композицию машины S и машины Т1, полагая S1(a)=Т1(S(a)).

Предположим далее, что машина S1 самоприменима. Это означает, что ŒS1Œ – запись самоприменимой машины и по определению машины S S(ŒS1Œ)=1. В то же время,

S1(ŒS1Œ)=Т1(S(ŒS1Œ))=Т1(1)=111….,

что означает несамоприменимость машины S1. Противоречие налицо.

Предположение о том, что машина S1 несамоприменима, влечет за собой (по определению машины S) соотношение S(ŒS1Œ)=0. Но по определению машины S1 S1(ŒS1Œ)=Т1(S(ŒS1Œ))=Т1(0)=0, что означает самоприменимость машины S1.

Вновь получаем противоречие.

Иными словами, предположение о существовании машины S, распознающей самоприменимость приводит к противоречию.

¨Теорема доказана.

Следствие. Проблема остановки алгоритмически неразрешима.

Проблема самоприменимости в теории алгоритмов явилась первой алгоритмически неразрешимой проблемой, от которой отталкивались в дальнейших исследованиях.




<== предыдущая лекция | следующая лекция ==>
Лекция № 3. Машины Тьюринга | Примитивно-рекурсивные функции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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