Опубликован: 24.04.2008 | Уровень: специалист | Доступ: свободно | ВУЗ: Вятский государственный университет
Лекция 1:

Основные понятия теории абстрактных автоматов

Лекция 1: 12 || Лекция 2 >
Аннотация: Приводятся начальные сведения об абстрактных автоматах Мили и Мура. Даются возможные способы представления автоматов: теоретико-множественное, графовое, табличное и матричное.

Введение

"Теория автоматов" - является одной из важных компонент федерального государственного стандарта по направлению "Информатика и вычислительная техника".

Теория автоматов имеет широкие возможности применения:

  • Проектирование систем логического управления;
  • Обработка текстов и построение компиляторов;
  • Спецификация и верификация систем взаимодействующих процессов;
  • Языки описания документов и объектно-ориентированных программ;
  • Оптимизация логических программ др.

Об этом можно судить по выступлениям на семинаре "Software 2000…" ученых и специалистов.

Дуг Росс: "…80 или даже 90 % информатики (Computer Science) будет в будущем основываться на теории конечных автоматов…"

Herver Gallaire: "Я знаю людей из "Боинга", занимающихся системами стабилизации самолетов с использованием чистой теории автоматов. Даже трудно себе представить, что им удалось с помощью этой теории. "

Brian Randell : "Большая часть теории автоматов была успешно использована в системных программах и текстовых фильтрах в ОС UNIX. Это позволяет множеству людей работать на высоком уровне и разрабатывать очень эффективные программы".

1.1. Основные понятия и определения.

Простейший преобразователь информации (рис.1.1,а) отображает некоторое множество элементов информации Х, поступающее на вход, в некоторое множество на выходе Y. Если множества Х и Y являются конечными и дискретными, то есть преобразование осуществляется в дискретные моменты времени, то такие преобразователи информации называются конечными преобразователями. Элементы множеств Х и Y в этом случае предварительно кодируют двоичными кодами и строят преобразование одного множества в другое.

Результат преобразования F: X \to Y зачастую зависит не только от того, какая информация в данный момент появилась на входе, но и от того, что происходило раньше, то есть от предыстории преобразования. Например, один и тот же вход - извинение соседа после того, как он вам наступил на ногу в переполненном автобусе - вызовет у вас одну реакцию в первый раз и совсем другую - в пятый раз.


Рис. 1.1.

Таким образом, существуют более сложные преобразователи информации (ПИ), реакция которых зависит не только от входных сигналов в данный момент, но и от того, что было раньше, от входной истории. Такие ПИ называются автоматами (схемами с памятью). В этом случае говорят об автоматном преобразовании информации (рис.1.1,б). На один и тот же входной сигнал автомат может реагировать по-разному, в зависимости от состояния, в котором он находился. Автомат меняет свое состояние с каждым входным сигналом.

Рассмотрим несколько примеров.

Пример 11Карпов Ю.Г. Теория автоматов-СПб.:Питер, 2003 . Автомат, описывающий поведение "умного" отца.

Опишем поведение отца, сын которого учится в школе и приносит двойки и пятерки. Отец не хочет хвататься за ремень каждый раз, как только сын получит двойку, и выбирает более тонкую тактику воспитания. Зададим такой автомат графом, в котором вершины соответствуют состояниям, а дуга из состояния s в состояние q, помеченное x/y, проводится тогда, когда автомат из состояния s под воздействием входного сигнала х переходит в состояние q с выходной реакцией y. Граф автомата, моделирующего умное поведение родителя, представлен на рис.1.2. Этот автомат имеет четыре состояния \{ S_0, S_1, S_2, S_3\}, два входных сигнала - оценки \{ x_2, x_5 \} и выходные сигналы \{ y_0, y_1, y_2, y_3, y_4, y_5 \}, которые будем интерпретировать как действия родителя следующим образом:

y_0 - брать ремень;

y_1 - ругать сына;

y_2 - успокаивать сына;

y_3 - надеяться;

y_4 - радоваться;

y_5 - ликовать.


Рис. 1.2.

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

Конечный автомат может быть реализован как программно, так и аппаратно. Программную реализацию можно выполнить на любом языке высокого уровня разными способами. На рис.1.3 представлена блок-схема программы, реализующей поведение автомата примера 1. Нетрудно увидеть, что топология блок-схемы программы повторяет топологию графа переходов автомата. С каждым состоянием связана операция NEXT, выполняющая функцию ожидания очередного события прихода нового входного сигнала и чтения его в некоторый стандартный буфер х, а также последующий анализ того, какой это сигнал. В зависимости от того, какой сигнал пришел на вход, выполняется та или иная функция y_0 ... y_5 и происходит переход к новому состоянию.


Рис. 1.3.

Аппаратную реализацию автомата рассмотрим во второй части этого раздела.

Пример 2. "Студент"

Автомат, модель которого представлена на рис.1.4, описывает поведение студента и преподавателей.


Рис. 1.4.

\{S_0 ,S_1 ,\dots , S_5,\} - состояния;

\{x_1, x_2, x_3\} - входные сигналы: "н", "2" и "5".

\{y_1, y_2, y_3,\dots , y_7\} - выходные реакции:

  • y_1 - отмечаем "н";
  • y_2 - успокаивать;
  • y_3 - хвалим студента;
  • y_4 - поощряем;
  • y_5 - надеемся;
  • y_6 - предупреждаем;
  • y_7 - отчисляем;

Пример 31. Электронные часы (рис.1.5).

Электронные часы разнообразных функциональных возможностей являются одним из наиболее широко применяемых в быту электронных приборов, управление которыми построено на основе конечноавтоматной модели. Они обычно показывают: время, дату; у них имеется функции такие как "установка времени и даты", "Секундомер", "Будильник"и т.п. Упрощенная структурная схема электронных часов показана нарис.1.5


Рис. 1.5.

Регистры отображают либо время, либо дату, либо секундомер в зависимости от "Управления". Устройство управления построено на основе модели конечного автомата. Конечный автомат реагирует на нажатия кнопки "а" на корпусе переходом в состояние "Установка минут", в котором событие нажатия кнопки "b" вызовет увеличение числа. Устройство управления построено на основе модели конечного автомата, граф которого показан нарис.1.6


Рис. 1.6.

Итак. С одной стороны АВТОМАТ - устройство, выполняющее некоторые действия без участия человека. С другой стороны, АВТОМАТ - математическая модель, описывающая поведение технического устройства. В данном случае реальное устройство, система и т.д. рассматривается как некоторый "ЧЁРНЫЙ ЯЩИК" (рис.1.7).


Рис. 1.7.

Абстрактный автомат - это математическая модель, описывающая техническое устройство совокупностью входных, выходных сигналов и состояний, кроме того:

  • имеет множество внутренних состояний А=\{ а_1(t), а_2(t), а_3(t), а_m(t)\}, называемых состояниями автомата;
  • на вход автомата поступает конечное множество входных сигналов Z=\{ z_1(t), z_2(t), z_3(t), \dots,  z_f(t)\}; имеется конечное множество выходных сигналов W=\{ w_1, w_2, w_3, \dots w_g\} ;
  • задана функция перехода \delta(a,z) ;
  • задана функция формирования выходов автомата \lambda(a,z) ;
  • определено начальное состояние автомата а_1 \in А.

То есть для описания автомата нужно использовать шестёрку вида S=\{A, Z, W, \sigma, \lambda,  а_1\}, где

  • A=\{ a_1, a_2, a_3, \dots a_М\};
  • Z=\{ z_1, z_2, z_3, \dots z_F\};
  • W=\{ w_1, w_2, w_3, \dots w_G\};
  • \delta : A * Z \to A ( a_s=\delta( a_m, z_i) |  a_s \in А);
  • \lambda : A*Z \to W ( w_s= \lambda( a_m, z_i) |  a_s \in А, w \in W );
  • a_1 \in А.

Автомат реализует некоторое отображение множества слов входного алфавита Z в множество слов выходного алфавита W.

Автомат называется конечным, если множество его внутренних состояний и множество значений входных сигналов есть конечные множества.

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

Автомат называется детерминированным, если поведение автомата в каждый момент времени однозначно определено ( z_i, a_i,)

В зависимости от способа определения выходного сигнала в синхронных автоматах различают:

  1. Автомат первого рода ( Автомат Мили )
    • a(t+1)=\delta( a(t),Z(t));  где\  t=0,1,2,\dots
    • W(t)=\lambda( a(t), Z(t)) ;
  2. Автомат второго рода ( Автомат Мура )
    • A(t+1)=\delta( a(t),Z(t)) ,
    • W(t)=\lambda( a(t));   где\  t=0,1,2,\dots
    • W(t+1)=\lambda(a(t+1))=\lambda(\delta( a(t), z(t)))
Лекция 1: 12 || Лекция 2 >
Сергей Прохоренков
Сергей Прохоренков
Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!