Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС информатика / ТЕОРИЯ наша!!! / теория алгоритмов!!!.doc
Скачиваний:
97
Добавлен:
18.03.2015
Размер:
168.96 Кб
Скачать

Та.2.Алгоритмически неразрешимые проблемы.

2.1. Алгоритмическая неразрешимость

Множество называется неразрешимым, если не существует алгоритма, который по любому определяет, принадлежит ли оно множеству X (обратный к разрешимому).

2.2. Проблема останова (с доказательством).

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

Алан Тьюринг доказал в 1936 году, что общий алгоритм для решения проблемы зависания для любых возможных входных данных не может существовать. Мы можем сказать, что проблема зависания неразрешима на машине Тьюринга.

Док-во: Рассмотрим множество S алгоритмов, которые принимают на вход натуральное число и на выходе тоже выдают натуральное число. Выберем какой-нибудь полный по Тьюрингу язык программирования. Каждый алгоритм можно записать в виде конечной последовательности символов на этом языке. Упорядочим множество S лексикографически (в словарном порядке), при этом каждый алгоритм получит свой порядковый номер. Назовем Анализатором гипотетический ал-горитм, который получает на вход пару натуральных чисел (N,X), и: останавливается и возвращает 1, если алгоритм с номером N не останавливается, получив на вход X

не останавливается в противном случае (если алгоритм с номером N останавливается, получив на вход X).

Проблему остановки можно переформулировать следующим образом: существует ли Анализатор?

Теорема. Анализатор не существует.

Докажем это от противного. Допустим, Анализатор существует. Напишем алгоритм Диагонализатор, который принимает на вход число N, передает пару аргументов (N,N) Анализатору и возвращает результат его работы. Другими словами, Диагонализатор останавливается в том и только том случае, если не остановливается алгоритм с номером N, получив на вход число N. Пусть K - это порядковый номер Диагонализатора в множестве S. Запустим Диагонализатор, передав ему это число K. Диагонализатор остановится в том и только том случае, если алгоритм с номером K (то есть, он сам) не останавливается, получив на вход число K (какое мы ему и передали). Из этого противоречия следует, что наше предположение неверно: Анализатор не существует, что и требовалось доказать.

2.3. Нумерация, натуральная нумерация, однозначная нумерация.

На­по­мним, что впер­вые идея ну­ме­ра­ции кон­стру­к­тив­ных объ­е­к­тов (не­чис­ло­вой при­ро­ды) на­ту­ра­ль­ны­ми чис­ла­ми бы­ла вы­ска­за­на и ре­али­зо­ва­на К.Гёделем.

Опре­де­ле­ние.

(1) ну­ме­ра­ци­ей объ­е­к­тов мно­же­ст­ва E на­зо­вём отоб­ра­же­ние g:Ng®E не­ко­то­ро­го мно­же­ст­ва на­ту­ра­ль­ных чи­сел NgÍ N на мно­же­ст­во кон­стру­к­тив­ных объ­е­к­тов E.

(2) Одно­знач­ной гё­де­ле­вой ну­ме­ра­ци­ей объ­е­к­тов мно­же­ст­ва E на­зо­вём ну­ме­ра­цию объ­е­к­тов мно­же­ст­ва E, яв­ля­ющу­юся би­ек­ци­ей.

(3) Про­стой гё­де­ле­вой ну­ме­ра­ци­ей объ­е­к­тов мно­же­ст­ва E на­зо­вём ну­ме­ра­цию объ­е­к­тов мно­же­ст­ва E в слу­чае, ког­да Ng=N.

Соседние файлы в папке ТЕОРИЯ наша!!!