
- •Основы теории автоматов
- •1. Множества
- •1.1. Основные понятия теории множеств
- •1.2. Операции над множествами
- •2. Логика буля
- •2.1. Булевы функции
- •2.2. Постулаты и основные законы булевой алгебры
- •2.3. Формы представления булевых функций
- •2.4. Минимизация булевых функций
- •3. Формальная логика
- •3.1. Исчисление высказываний
- •3.2. Предикаты и кванторы
- •4. Графы
- •4.1. Происхождение графов
- •4.2. Основные определения
- •4.3. Методы представления графов в аналитической форме
- •4.4. Пути и контуры в графах
- •4.5. Деревья
- •5 . Конечные автоматы
- •5.1. Понятие автомата
- •5.2. Представление конечных автоматов
- •5.3. Типы конечных автоматов
- •5.4. Эквивалентность конечных автоматов: теорема Мура
- •5.5. Минимизация конечных автоматов
- •5.6. Минимизация неполных конечных автоматов
- •5.7. Примеры конечных автоматов
- •5.8. Моделирование автоматных систем сетями Петри
- •6. Алгоритмы и машины тьюринга
- •6.1. Понятие алгоритма
- •6.2. Основные требования к алгоритмам
- •6.3. Блок-схемы алгоритмов
- •6.4. Формализация понятия алгоритма
- •6.5. Машина Тьюринга
- •6.6. Примеры машин Тьюринга
- •Библиографический список
- •Оглавление
6.4. Формализация понятия алгоритма
Ранее были сформулированы основные требования к алгоритмам. Однако понятия, использованные в этих формулировках (такие, как ясность, четкость, элементарность), сами нуждаются в уточнении. Алгоритмы в интуитивном смысле не являются математическими объектами, к ним неприменимы формальные методы исследования и доказательства. Поэтому в XX веке были предприняты попытки формализации понятия алгоритма. Формализация понятия алгоритма необходима по разным причинам. Например, сравнение двух алгоритмов по эффективности, проверка их эквивалентности и т. д. возможны только на основе их формального представления.
Впервые необходимость формального понятия алгоритма возникла в связи с проблемой алгоритмической неразрешимости некоторых задач. Долгое время математики верили в возможность того, что все строго поставленные математические задачи могут быть алгоритмически решены, нужно только найти алгоритм их решения. Вера в универсальность алгоритмических методов была подорвана работой Курта Геделя (1931 год), в которой было показано, что некоторые математические проблемы не могут быть решены с помощью алгоритмов из некоторого класса. Этот класс алгоритмов определяется некоторой формальной конкретизацией понятия алгоритма. Встал вопрос: являются ли алгоритмически неразрешимыми эти проблемы только в рамках использованной Геделем модели алгоритма или же для решения этих проблем вообще нельзя придумать никакого алгоритма ни в каком смысле? Общность результата Геделя зависит от того, совпадает ли использованный им класс алгоритмов с классом всех алгоритмов в интуитивном смысле. Поэтому поиск и анализ различных уточнений и формализации алгоритма и соотношение этих формализаций с интуитивным понятием алгоритма является практически важным.
К настоящему времени предложен ряд формальных моделей алгоритма. Курт Гедель определил алгоритм как последовательность правил построения сложных математических функций из более простых, Алонзо Черч использовал формализм, называемый λ-исчислением, Алан Тьюринг предложил гипотетическое автоматическое устройство, которое сейчас называется машиной Тьюринга, и определил алгоритм как программу для этой машины, А. А. Марков определил нормальный алгоритм как конечный набор правил подстановок цепочек символов и т. д.
Удивительным научным результатом является доказательство эквивалентности всех этих и нескольких других формальных определений алгоритма. Эквивалентность двух абстрактных моделей алгоритма состоит в том, что любой класс проблем, которые можно решить с помощью моделей одного типа, можно решить и на моделях другого типа (фактически в рамках одной модели можно выразить другие). Оказалось, что все алгоритмы в точном смысле для этих формальных моделей являются алгоритмами в интуитивном смысле и все известные алгоритмы могут быть представлены алгоритмами в точном смысле (в рамках этих формализмов).
На основании этих результатов в информатике получило признание следующее положение: «Любое разумное определение алгоритма, которое может быть предложено в будущем, окажется эквивалентным уже известным определениям», что означает, по сути, предположение об адекватности понятий алгоритма в интуитивном смысле и алгоритма в точном смысле в одном из перечисленных эквивалентных формализмов. Это положение в настоящее время широко используется в качестве гипотезы, обоснованной в силу того, что не удалось найти противоречащих ей примеров. Эту гипотезу, однако, невозможно доказать строго, поскольку понятие алгоритма в интуитивном смысле является неформальным.
Исторически Алонзо Черч первый предложил отождествить интуитивное понятие алгоритма с одним из эквивалентных между собой точных определений. Алан Тьюринг независимо высказал предположение, что любой алгоритм в интуитивном смысле может быть представлен машиной Тьюринга (а значит, и в любой другой эквивалентной форме). Это предположение известно как тезис Черча –Тьюринга.
Определение машины Тьюринга среди других эквивалентных определений кажется наиболее удобным для формального определения понятия алгоритма.