Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лк9 Машина Тьюринга.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
135.49 Кб
Скачать

Лк 9. Машина Тьюринга Основы информатики

Содержание

Необходимость математического определения алгоритма 1

Формализация понятия алгоритма 1

Типы алгоритмов. История создания. 1

Машина Тьюринга 3

Формальное описание Машины Тьюринга (МТ) 4

Структура машины Тьюринга 5

Такт работы машины Тьюринга 6

Программа для машины Тьюринга 6

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

Необходимость математического определения алгоритма

Интуитивное определение алгоритма не позволяет рассматривать свойства алгоритмов как свойства формальных объектов. Математическое определение алгоритма необходимо по следующим причинам:

  • только при наличии формального определения алгоритма можно сделать вывод о разрешимости или неразрешимости каких-либо задач;

  • формальное определение дает возможность для сравнения алгоритмов, предназначенных для решения одинаковых задач;

  • формальное определение дает возможность для сравнения различных задач по сложности алгоритмов их решения.

Формализация понятия алгоритма реализуется с помощью построения алгоритмических моделей. Обычно выделяют три основных типа универсальных алгоритмических моделей:

  • рекурсивные функции (понятие алгоритма связывается с вычислениями и числовыми функциями),

  • машины Тьюринга (алгоритм представляется как описание процесса работы некоторой гипотетической машины, способной выполнять лишь небольшое число весьма простых операций),

  • нормальные алгоритмы Маркова (алгоритм описывается как преобразования слов над произвольным алфавитом).

Доказано, что все алгоритмические модели описывают один и тот же класс процессов.

Формализация понятия алгоритма

Типы алгоритмов. История создания.

За 30–40 годы ХХ столетия интенсивного поиска универсального уточнения алгоритма было предложено примерно 20 формальных конструкций алгоритмов, которые условно можно разбить на три типа.

Алгоритмические машины (АМ). Все они имеют единственный процессор, выполняющий небольшой набор очень примитивных действий, простую структуру данных (структуру памяти) в виде бесконечной ленты, простую логику (правила) управления процессором. В этом случае алгоритм представляется набором правил команд процессора, последовательность выполнения которых управляет состоянием памяти.

Основные АМ, которые повлияли на создание реальных вычислительных машин, реальных языков программирования и концепции организации вычислительных процессов были предложены в ХХ в.

  • Машина Тьюринга (МТ) предложена Тьюрингом в 1937 г.

  • Машина Поста (МР) предложена Постом в 1937 г.

  • Нормальный алгоритм Маркова (НАМ) предложен Марковым в 1953 г.

Функции вычислимые алгоритмом. В этом случае сам алгоритм не определяется формально, а существует как бы в виде «всем понятной механической процедуры».

Основное внимание уделяется механизму конструирования функций из базового набора элементарных функций, определенных на некотором фиксированном множестве.

Любая функция, вычислимая на интуитивном (содержательном) уровне, должна быть сконструирована из базовых функций.

Рекурсивные функции на множестве натуральных чисел были предложены Клини в 1938 г.

Конструктивные механизмы рекурсивных функций очень просты, их применение в процессе построения «функции от функции» позволяет явно выстраивать структуру функции в отличие от АМ, где функция определяется процедурно, через последовательность действий.

Исчисления. Представляют собой формальные системы, в которых определены понятия правильно построенных формул (ППФ) и конечного набора правил преобразования ППФ. Алгоритм понимается как цепочка применения последовательности правил к начальной ППФ для получения вывода конечной ППФ. В аксиоматических формальных системах конечные ППФ всегда выводятся из ППФ, которые называются аксиомами.

  • Исчисление функций, вычисляемых на множестве натуральных чисел, предложено Эрбраном и Гёделем в 1938 г.

  • -исчисление А.Чёрча также может быть отнесено к этому типу алгоритмов, предложено в 1937 г.

  • Формальные грамматики, порождающие языки, предложены Хомским в 1953 – 1956 г.

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