К. Е. Карасёв Введение в теорию конечных автоматов

Вид материалаУчебное пособие

Содержание


1.Определение конечного автомата.
Упражнение 1.1. Приведите пример детерминированной, но не ограниченно-детерминированной функции.
Функция, вычисляемая автоматом, является о.-д. функцией. Для любой о.-д. функции существует автомат, её вычисляющий.
Приведённые ниже соотношения связывают последовательность входных символов автомата x(t)=( x
1.8. Смоделируйте конечным автоматом работу лифта.
2.Отношения эквивалентности автоматов и их состояний
Неотличимость состояний
Эквивалентное определение.
Упражнение 2.3. Приведите пример такой пары автоматов.
3.Стохастические функции конечных автоматов
3.2. Посчитайте стохастическую функцию автомата с диаграммой Мура следующего вида
3.3.Найдите стохастические функции автоматов из упражнений 1.2-1.6.
4. Эксперименты над автоматами
Кратным безусловным
Простой условный
Кратный условный
Длина эксперимента – максимальная длина слова, которое может быть введено в автомат при применении эксперимента. Объём
4.1. Переформулируйте теорему Мура о различении состояний, используя понятия теории экспериментов.
4.3. Пусть n – фиксированное натуральное число, {А} – класс автоматов Мура A=({1..n}, {0,1}
5. Синтез схем из функциональных элементов
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6   7



Министерство образования Российской Федерации


Московский государственный технический университет «СТАНКИН»

К.Е.Карасёв


Введение в теорию конечных автоматов


Учебное пособие

Москва, 2007




Предисловие


Данное пособие составлено на основе полугодового курса, прочитанного автором для студентов МГТУ «СТАНКИН» в 2005 и 2006 годах. В пособии представлены краткие теоретические сведения и задачи по таким основным разделам теории конечных автоматов, как: основы теории автоматов, теория экспериментов над автоматами, стохастические функции автоматов, реализация автоматов схемами, теория регулярных языков. С учётом особенностей учебной программы, в пособие также включены темы из смежных областей дискретной математики – синтез схем из функциональных элементов, теория алгоритмов (машина Тьюринга), теория рекурсивных функций. Также в пособие включены сведения, имеющие практическое применение в области программирования: регулярные выражения в современных языках программирования, понятие формальной грамматики.

Для изучения этого курса теории автоматов желательно наличие следующих предварительных знаний:
  • основы теории графов;
  • теория функций алгебры логики;
  • теория вероятностей, понятие цепи Маркова (для изучения стохастических функций автоматов).

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

Задачи и упражнения в пособии расставлены по возможности в порядке возрастания сложности. Как правило, если в данном пособии приводится доказательство некоторого утверждения, это доказательство является конструктивным алгоритмом для решения задач.

Задачи и упражнения выделены полужирным шрифтом.

1.Определение конечного автомата.


Определение. Конечным инициальным автоматом (или просто автоматом) называется шестёрка (A, Q, B, , , q0), где:

A – конечное множество произвольной природы, называемое входным алфавитом автомата (в дальнейшем под алфавитом будет пониматься конечное множество произвольной природы, его элементы будем называть символами);

Q – конечное множество, называемое алфавитом состояний автомата;

B – конечное множество, называемое выходным алфавитом автомата;

 – отображение :AXQ→Q, называемое функцией переходов автомата;

 – отображение :AXQ→B, называемое функцией выходов автомата;

q0 - элемент алфавита Q, называемый начальным состоянием автомата.

Это определение соответствует следующей математической модели. Некоторое устройство – конечный автомат – принимает сигналы, являющиеся символами алфавита A и выдаёт сигналы – символы алфавита B, при этом устройство принимает конечное число состояний, и сигнал на выходе определяется только сигналом на входе и состоянием автомата. Состояние автомата в сущности есть содержимое его памяти. Время в этой модели предполагается дискретным, переменная t принимает значения из множества натуральных чисел. Обозначим x(t) символ, принимаемый автоматом в момент времени t, y(t) – символ, выводимый автоматом, q(t) – состояние автомата в момент времени t. Эти функции от t связываются следующими соотношениями:



Эти соотношения называются уравнениями переходов и выходов автомата (первое – уравнение переходов, второе – уравнение выходов). Поскольку множества, на которых эти функции определены, конечны, эти функции (а следовательно, и весь автомат) можно описать таблицей. Назовём таблицу для функции таблицей переходов. Мы говорим, что символ x переводит автомат из состояния q в состояние q,x).

Другой подход к определению автомата – понятие ограниченно-детерминированной функции. Назовём словом в алфавите A произвольную конечную упорядоченную последовательность символов из этого алфавита. Множество всех слов в алфавите A обозначается A*. Пусть функция f:A*→B* отображает слова в алфавите A в слова в алфавите B. Функция называется детерминированной, если она, во-первых, сохраняет длину слова, и, во-вторых, если в двух словах в алфавите A совпадают первые n символов, то и в словах – образах этих слов при применении функции f – первые n символов совпадают. Условие детерминированности можно записать следующим образом: если ax1 и ax2 – два слова из A* с общим началом a , то f(axi)=byi , где b – общее начало длины, равной длине a, двух слов by1 и by2. Таким образом, для любого слова a существует функция fa:A*→B*, такая, что f(ax)=bfa(x). Функция fa также будет детерминированной: в самом деле, fa сохраняет длину слова, и, если fa(cx)=dy, то f(acx)=bdy, и если f(acx’)=bdy’, следовательно, fa(cx’)=dy’. Мы видим, что любая детерминированная функция f для каждого слова a из A* определяет детерминированную функцию fa, которая называется остаточной функцией функции f.

Определение. Если для всех слов a число различных остаточных функций fa конечно, то функция f называется ограниченно-детерминированной (сокращённо о.-д.) функцией.

Упражнение 1.1. Приведите пример детерминированной, но не ограниченно-детерминированной функции.

Каждому автомату с входным алфавитом A и выходным алфавитом B можно поставить в соответствие функцию f, переводящую слово =a(1)a(2)…a(t) в слово =b(1)b(2)…b(t), где t – переменная времени. В этом случае говорят, что автомат вычисляет функцию f. Справедливо следующее утверждение:

Функция, вычисляемая автоматом, является о.-д. функцией. Для любой о.-д. функции существует автомат, её вычисляющий.

Функцию, которую автомат вычисляет, обычно называют поведением автомата.

Если остаточные функции о.д. функции известны, то автомат можно построить, взяв в качестве множества состояний множество (множество классов эквивалентности) остаточных функций, взять функцию переходов, удовлетворяющую соотношению f, x)= fx и функцию выходов f, x)= fx).

Кроме таблиц наглядным способом изображения конечного автомата являются диаграммы переходов, или диаграммы Мура. Диаграмма Мура представляет собой ориентированный граф, каждая вершина которого соответствует состоянию автомата, а каждое ребро, идущее из вершины qi в вершину qj, соответствует значению функции переходов (x,qi)=qj . и помечено парой (x,(x,qi)), и, наоборот, для каждого значения аргументов функции переходов в диаграмме существует такое ребро. Обычно в вершины графа изображаются кругами, начальное состояние помечается звёздочкой. Пара (x,y) у ребра графа изображается без скобок через дробь: x/y.

Функция переходов автомата доопределяется до расширенной функции переходов автомата: пусть x=(x1,...,xk)∈A*, q1∈Q и (xi,qi)=qi+1. Тогда положим (x,q1)=qk+1 и будем говорить, что слово x переводит автомат из состояния q1 в состояние qi+1.

Упражнения. Приведённые ниже соотношения связывают последовательность входных символов автомата x(t)∈{0,1} и выходных у(t)∈{0,1}. Построить таблицу для функций переходов и выходов автомата, диаграмму Мура.
    1. y(t)=x(t-1) & x(t-2), y(1)=y(2)=0.

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

Итак, состоянием автомата будет двоичный вектор q1q2=(q1,q2), связанный с входными символами соотношениями q1(t)=x(t-1), q2(t)=x(t-2). Соотношения можно переписать в виде q1(t+1)=x(t), q2(t+1)=q1(t). Для соответствия функции условиям y(1)=y(2)=0 дополним уравнения переходов значениями q1(0)=q2(0)=0. Функция выходов примет вид (x,q1,q2)=q1&q2.

Таблица функции переходов автомата примет следующий вид:

x

(00,x)

(01,x)

(10,x)

(11,x)

0

00

10

00

10

1

01

11

01

11


Диаграмма Мура автомата примет вид:



    1. y(t)=x(1)→x(t)
    2. y(t)=x(2)⋁x(t)
    3. y(t)=x(t)&(x(t-1)⋁x(1)),x(0)=1
    4. В автомат последовательно вводятся цифры натурального числа (рассмотреть два варианта – с начала и с конца). Автомат в каждый момент выводит остаток от деления уже введённого на этот момент числа на n, n<10. Покажите, что такой автомат существует. Постройте диаграмму Мура для n=2,3,4,5.

Приведённые ниже соотношения связывают последовательность входных символов автомата x(t)=( x1(t), x2(t))∈{0,1} и выходных у(t)∈{0,1}. Построить таблицу для функций переходов и выходов автомата, диаграмму Мура.
    1. y(t)=x1(t-1)→x2 (t)
    2. y(t)=x1(t)+ x2(t) x1(1)
    3. y(t)=x1(1)&( x2(t) ⋁ x2(1))


Следующие задачи заключаются в моделировании конечными автоматами реально используемых технических устройств. (Конечно, наиболее яркие примеры – микроэлектронные устройства, от электронных часов до компьютера). Для решения задач следует перейти от модели с непрерывным временем к модели с дискретным. Можно считать n-ными (имеющими номер) те моменты времени, когда системе подаётся очередной сигнал. Также полезно понятие так называемого асинхронного автомата, функция переходов которого удовлетворяет соотношению (xx,q)=(x,q) – автомата, меняющего своё состояние только при изменении входного сигнала.
    1. Смоделируйте конечным автоматом работу 4-значной железнодорожной автоблокировки. Путь двухпутной линии, предназначенный для движения в одном направлении, разделён светофорами на блок-участки – участки, на каждом из которых по требованиям безопасности не должно находиться более одного поезда. Светофор сочетанием огней показывает, сколько за ним свободных блок-участков (красный огонь – участок за светофором занят, красный и жёлтый – один, жёлтый – два, зелёный – три или более). Светофор принимает показания следующего по ходу светофора, а также определяет, занят ли блок-участок непосредственно за ним.

1.8. Смоделируйте конечным автоматом работу лифта.