
- •Введение
- •1. Булевы функции
- •1.1. Определение булевых функций
- •Контрольные задания
- •1.2. Построение сндф, снкф и снпф. Минимизация
- •1.3. Реализация метода Квайна – Мак-Класки
- •Контрольное задание
- •Варианты задания
- •1.4. Замкнутые классы. Полнота. Теорема Поста
- •Контрольное задание
- •1.5. Моделирование релейно-контактных схем
- •Котрольное задание
- •1.6. Моделирование сумматоров
- •Контрольное задание
- •2. Основные положения математической логики
- •2.1. Формальные теории
- •2.2. Исчисление высказываний
- •2.3. Исчисление предикатов
- •2.4. Приложение исчисления предикатов к аналитической геометрии
- •Контрольное задание
- •3. Вычислимость
- •3.1. Неформальное определение алгоритма. Примеры
- •Контрольное задание
- •3.3. Рекурсия
- •3.4. Вычислимость по Тьюрингу
- •4. Конечные автоматы
- •4.1. Основные определения и способы задания
- •Контрольное задание
- •4.2. Эквивалентность автоматов. Минимизация
- •Контрольное задание
- •4.3. Автоматы Мили и Мура. Размеченные графы
- •4.4. Автоматные языки
- •4.5. Возможности автоматов
- •5. Некоторые классические алгоритмы
- •5.1. Алгоритмы сортировки и их классификация
- •5.2. Поиск
- •Библиографический список
- •Оглавление
3.3. Рекурсия
Понятие рекурсии связано с фамилиями таких ученых, как Клини и Черч. Клини ввел понятие частичной рекурсивной функции. Им высказана гипотеза: все частичные функции являются частично рекурсивными (эта гипотеза недоказуема).
В силу тезиса Черча вычислимость эквивалентна рекурсивности (этот тезис также недоказуем).
Формальная теория строится следующим образом. Функция является частично рекурсивной, если она за конечное число шагов может быть получена из простейших функций путем применения простейших операций.
Функция является общерекурсивной или рекурсивной, если она частично рекурсивна и всюду определена.
Три простейшие функции теории:
1)
– функция, которая позволяет добавлять
к аргументу единицу;
2)
– операция обнуления;
3)
– оператор проектирования (индекс
показывает количество аргументов в
функции, а
– указывает,
который
из них предлагается выбрать, например,
).
Три простейшие операции теории:
1. Суперпозиция. Пусть заданы следующие функции:
,
,
,
.
Суперпозицией
функции
,
построенной с помощью функции
,
называется функция
от тех же аргументов
,
которая представляет собой следующее:
.
Пример 1. Заданы следующие функции:
;
;
;
.
Выполним суперпозицию:
.
Пример 2. Дана функция
.
Требуется представить ее в сокрашенном виде. Для этого введем отдельные функции:
.
Введем новое обозначение:
.
Исходная функция приняла следующий вид:
.
Обозначим
,
тогда
.
Введем следующие обозначения:
.
Тогда
.
2. Примитивная
рекурсия.
Пусть заданы следующие функции:
–
местная
;
–
местная
;
– местная
.
Построение примитивной рекурсии:
,
.
Замечание.
В случае
требуется некоторое уточнение:
;
…
.
Основная
идея сводится к вычислению функции при
значении аргумента
на основании вычисления этой же функции
при значении аргумента
.
Основные функции являются рекурсивными.
Сложность состоит в подборе и .
Пример.
Доказать,
что функция
является примитивно-рекурсивной.
Пусть
,
,
,
тогда
;
;
.
Итак,
функция
является примитивно-рекурсивной.
Построим рекурсивную функцию с помощью следующей конструкции:
;
;
;
;
;
;
.
3.
-оператор.
Рассмотрим
функцию
.
В некоторых случаях
.
Корней
может оказаться несколько. C
помощью -оператора считается возможным
реализовать следующую последовательность
операций:
– – находят все корни при заданном ;
– среди всех корней выбирают наименьший.
3.4. Вычислимость по Тьюрингу
Алану Тьюрингу принадлежит идея построения гипотетической вычислительной машины. Опишем основные положения формальной теории машины Тьюринга.
Считаются заданными:
1.
Внешний
алфавит
.
2. Внутренний
алфавит
.
3. Внешняя память – лента с ячейками. В каждой из ячеек может находиться тот или иной символ внешнего алфавита. Таким образом, лента содержит слова – набор символов, помещенных в ячейку.
4. Управляющая головка. На каждом такте управляющая головка находится напротив некоторой ячейки.
Работа машины Тьюринга описывается набором команд, имеющих синтаксис
,
где
– содержимое ячейки, напротив которой
находится управляющая головка;
–
новое внутреннее состояние машины;
–
ячейка,
которая
может содержать символ из внешнего
алфавита.
Результат
работы команд:
при
наличии в структуре символа
головка сдвигается вправо к следующей
ячейке;
при
наличии символа
происходит сдвиг влево;
если
в структуре присутствует символ
внешнего алфавита, то в рассматриваемую
ячейку заносится этот символ, а старый
убирается.
Гипотетическая машина Поста строится сходным образом.
Команды теории Поста называются приказами. Считаются заданными (выполнимыми) шесть приказов:
1.
Записать 1 и перейти к приказу
.
2. Записать 0 и перейти к приказу .
3. Сдвинуть вправо и перейти к приказу .
4. Сдвинуть влево и перейти к приказу .
5. Если в ячейке 1, то перейти к приказу .
6. Если в ячейке 0, то перейти к приказу .
Более детальное рассмотрение показывает, что машины Тьюринга и Поста эквивалентны.
Набор команд для преобразования слова называется Т-программой. Т-программа может быть задана двумя способами: табличным способом, который сводится к заполнению таблицы
|
Внешний алфавит |
||
Внутренний алфавит |
|
|
|
|
|
|
|
|
|
|
и в виде потока команд.
Пример 1. Рассмотрим работу машины Тьюринга, заданную следующей таблицей:
|
- |
1 |
|
П |
П |
|
1П |
П |
Последовательность действий:
- |
- |
1 |
1 |
1 |
- |
- |
- |
|
|
|
|
|
|
|
|
- |
- |
1 |
1 |
1 |
- |
- |
- |
|
|
|
|
|
|
|
|
- |
- |
1 |
1 |
1 |
- |
- |
- |
|
|
|
|
|
|
|
|
- |
- |
1 |
1 |
1 |
- |
- |
- |
|
|
|
|
|
|
|
|
- |
- |
1 |
1 |
1 |
1 |
- |
- |
|
|
|
|
|
|
|
|
Для состояния описание отсутствует, т.е. при достижении состояния работа машины Тьюринга завершается.
Итак, слово 111 преобразовалось в слово 1111. Это значит, что вычислимой по Тьюрингу является функция, прибавляющая к целому числу единицу.
Целью работы машины Тьюринга является преобразование некоторого исходного слова в заданное.
Пример 2. Построить Т-программу, с помощью которой слово «лето» преобразуется в слово «осень».
Внешний алфавит:
;
- |
Л |
Е |
Т |
О |
С |
Н |
Ь |
- |
|
ОП |
СП |
ЕП |
|
|
|
|
ЬП |
Синтез машины Тьюринга. Пусть надо решить несколько задач, для каждой из которых имеется Т-программа. Существует две возможности:
1) применить несколько машин Тьюринга (для каждой задачи);
2) оставаясь в рамках одной машины Тьюринга, записать входные слова в различных областях одной ленты; финальное состояние первой задачи отождествить со стартовым состоянием второй.
Универсальной машиной Тьюринга называется машина, реализующая все задачи в заданном алфавите. К. Шеннон поставил вопрос о сложности универсальной машины Тьюринга, определив сложность как произведение количеств внутренних и внешних состояний.
К настоящему времени установлено, что для построения универсальной машины Тьюринга достаточно располагать четырьмя внутренними и шестью внешними состояниями.