- •1. Исчисление высказываний
- •1.1. Алгоритмы проверки общезначимости и противоречивости в исчислении высказываний
- •1.2. Метод резолюций в исчислении высказываний
- •1.3. Метод резолюций для хорновских дизъюнктов
- •Задачи и упражнения
- •2. Логика и исчисление предикатов
- •2.1. Логика предикатов
- •2.2. Алгебра предикатов
- •2.2.1. Логические операции
- •2.2.2. Правила записи сложных формул
- •2.2.3. Законы алгебры предикатов
- •2.2.4. Предваренная нормальная форма
- •2.2.4.1. Алгоритм приведения формулы к виду пнф
- •2.2.5. Сколемовская стандартная форма
- •2.2.5.1. Алгоритм Сколема
- •2.3. Исчисление предикатов
- •2.3.1. Интерпретация формул
- •2.3.2. Правила вывода
- •2.3.3. Метод дедуктивного вывода
- •2.3.4. Метод резолюций в исчислении предикатов
- •2.4. Проблемы в исчислении предикатов
- •2.5. Логическое программирование
- •Задачи и упражнения
- •3. Элементы теории алгоритмов
- •3.1. Рекурсивные функции
- •3.1.1. Базовые функции
- •3.1.2. Элементарные операции
- •3.2. Машина Тьюринга
- •3.2.1. Описание машины Тьюринга
- •3.2.2. Примеры машин Тьюринга
- •3.2.3. Условные обозначения и схемные соединения машин Тьюринга
- •3.2.4. Рекурсивные функции и вычисления на машинах Тьюринга
- •3.3. Конечные автоматы
- •4. Неклассические логики
- •4.1. Пропозиционные логики
- •4.2. Алгоритмические логики
- •Задачи и упражнения
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
3.3. Конечные автоматы
Рассмотрим вкратце еще одну вычислительную модель, эквивалентную уже изученным моделям, – модель вычислений на конечных автоматах.
Детерминированным конечным автоматом называется конечная система где
Q – непустое множество состояний,
– непустой выходной алфавит,
– функция переходов,
– начальное состояние,
– множество заключительных (принимающих) состояний,
– функция печати (функция выходов).
Выберем некоторое слово w=s1…sn и зададим работу автомата М на слове w. На первом шаге автомат находится в начальном состоянии q0 и после прочтения первого символа s1 слова w определяется состояние После этого автомат переходит в состояние и при наличии непустой информации, выдаваемой значением , это значение подается на выход. Продолжая последовательность читать слово w и определяя состояния по функции t (где ), на каждом шаге выводится соответствующая информация (если она не пуста). Работа автомата заканчивается после прочтения символа , не принадлежащего выходному алфавиту , а если слово w принадлежит то после прочтения всего слова.
Входное слово w называется представимым автоматом М, если состояние, в которое переходит М после прочтения слова w, принадлежит множеству F.
Изображением автомата М называется изображение помеченного графа, состоящего из множества вершин Q с выделенными вершинами из множества F, а также из множества дуг где каждая дуга помечается символом sj, который определяется из соотношения а если , то соответствующим словом При этом каждая дуга может иметь несколько таких меток, а вершина q0 дополнительно помечается входящей дугой.
Пример. Рассмотрим конечный автомат М, изображенный на рис. 3.4. Автомат М имеет четыре вершины – q0, q1, q2, q3. При этом входящая вершина q0 выделена и образует одноэлементное множество заключительных состояний F. Функция печати для всех дуг выдает пустые значения, т. е. не дает никакой информации на выход.
При чтении слова автоматом М возникает последовательность состояний q0q1q2q1q0q1. Поскольку состояние q1 не является заключительным, слово w не представимо автоматом М. Нетрудно заметить, что произвольное непустое слово представимо в автомате М тогда и только тогда, когда w содержит четное число символов а и четное число символов b.
Пример. Рассмотрим конечный автомат М, изображенный на рис. 3.5.
Автомат М для любой пары чисел, записанных в двоичной системе счисления (т. е. для двух последовательностей нулей и единиц), вычисляет и выводит их сумму. При этом данные начинаются с битов, имеющих наименьшие разряды, и числа читаются справа налево. Недостатком автомата М является то, что он не распознает условий переполнения и не работает с отрицательными числами.
Пример. Конечный автомат М, изображенный на рис. 3.6 является модификацией автомата из предыдущего примера и позволяет на выходах q0 и q1 получать арифметически правильную сумму двоичных чисел. При этом с помощью состояний q2 и q3 проверяется наличие ошибок, связанных с внесением значений и знаковый бит и их вынесением из знакового бита.
Отметим, что аналогично машинам Тьюринга любой конечный автомат можно проинтерпретировать в виде конечного автомата с алфавитом
Конечная система называется недетерминированным конечным автоматом, если – соответствующие элементы детерминированного конечного автомата, а функция переходов t каждой паре ставит в соответствие некоторое, не обязательно одноэлементное, подмножество множества т. е. выдает несколько значений из Q, в которое может поместиться пара (q,s).
Таким образом, отличие недетерминированного конечного автомата состоит в том, что функция переходов является многозначной.
Использование недетерминированных конечных автоматов упрощает задачу построения сложных машин. Ниже будет установлено, что любой недетерминированный конечный автомат может быть естественным образом проинтерпретирован в виде детерминированного конечного автомата.
Определим множество А(М) слов алфавита , представимых недетерминированным конечным автоматом М. Пусть - некоторое слово алфавита . Определим по интуиции множество T(w), положив
Очевидно, T(w) – множество всех состояний автомата М, которые могут быть достигнуты под действием входного слова w. Будем говорить, что слово w представимо автоматом М, если . Таким образом, }.
Теорема. Для любого недетерминированного конечного автомата М1 существует детерминированный конечный автомат М2 для которого А(М1)=А(М2).
Доказательство. Рассмотрим недетерминированный конечный автомат и построим детерминированный конечный автомат с условием А(М1)=А(М2). Положим
Функцию p2 зададим произвольно, а функцию t2 определим по шагам:
1)
2)
3) если на шаге некоторое значение уже определено, то
4) на множествах , для которых значение не задается ни на каком шаге, описанном в пп. 1 – 3, положим для определенности .
Непосредственно проверяем, что построенный таким образом детерминированный автомат М2 является искомым.
Задачи и упражнения
1. Доказать, что следующие функции есть примитивно рекурсивные:
a) f (х) = х + n; б) f (x) = n; в) f (x) = x !
2. Какие функции могут быть получены с помощью базовых и схемы примитивной рекурсии:
а) g (х) = J1,1; h (х; у; f (х; у)) = f+ (J3,1; J3,3);
б) g (х) = J1,1; h (х; у; f (х; у)) = f+ (J3,1; J3,2);
в) g (х) = J1,1; h (х; у; f (х; у)) = f+ (J3,2; J3,3);
3. Применить операцию минимизации к функции f по переменной у. Найти области определения и значения функции .
a) f (a; y) = [y/2]; б) f (x; y) = (x - 2y); в) f(x; y) = (x2 - 2y).
4. Построить машину Тьюринга для вычисления функций:
a) f (x) = x/2; б) f (x) = Sg x; в) f (x) = [x/2].
5. Какую функцию вычисляет машина Тьюринга со следующей программой команд:
Т : qí # q1 # n ;
qí | q1 # п ;
q1 # q2 # с ;
q1 | q1 | n .