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

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ»

Кафедра ИТ-4 «Персональные компьютеры и сети»

«УТВЕРЖДАЮ»

Заведующий кафедрой ИТ-4

Михайлов Б.М.

«___»__________________2007г.

ЛЕКЦИИ

По дисциплине 1425 «Теория автоматов»

Для студентов 2 курса факультета ИТ

Специальности 230101

«Вычислительные машины, комплексы, системы и сети»

Обсуждены на заседании кафедры

«___»________________2007г.

Протокол № _____

Москва 2007

^ Общие положения

Цели и задачи дисциплины

Целью дисциплины является изложение принципов организации программных и аппаратных средств, в рамках персональных ЭВМ с использованием теории автоматов, овладение навыками разработки программного обеспечения и аппаратных средств ЭВМ.

^ Требования к уровню освоения содержания дисциплины

Знания, приобретенные в результате освоения дисциплины:


  • Принципы и основные понятия теории автоматов;

  • Применение теории автоматов для построения трансляторов алгоритмических языков;

  • Применение теории автоматов при разработке устройств и дискретной аппаратуры в рамках персональных ЭВМ;
Умения и навыки, приобретенные в результате освоения дисциплины:

  • Применение теории автоматов для решения прикладных задач;

  • Проектирование дискретных устройств;

  • Проектирование трансляторов;

Основная литература

1. Савельев А.Я. Основы информатики: учебник для вузов.-М.:Издательство МГТУ им. Н.Баумана,2001.-328с.

2. Карпов Ю.Г.Теория автоматов:СПб.:Питер,2003.-224 с.:ил.

3. Зайцев Е.И. Теория автоматов: Учебное пособие.-М.:МГАПИ,2002.-59с.

Дополнительная литература

1. Хопкрофт Д., Мотвани Р., Введение в теорию автоматов, языков и вычислений: пер с англ.-М.:Издат. Дом Вильямс,2002.-528с.

Лекция №1.

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

Продолжительность: 2 часа (90) минут

1.1. Ключевые (основные) вопросы (моменты)

Место дисциплины «Теория автоматов» в ряду дисциплин, читаемых на кафедре

Объекты Теории автоматов

Задачи Теории автоматов

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

^ ТЕОРИЯ АВТОМАТОВ.

1.2.1. Основные положения теории автоматов. До 20 минут

Автомат (от греческого   - самодействующий) - управляющая система , являющаяся конечным автоматом или некоторой его модификацией, полученной путем изменения его компонент или функционирования. Основное понятие - конечный автомат - возникло в середине 20 века в связи с попытками описать на математическом языке функционирование нервных систем, универсальных вычислительных машин и других реальных автоматов. Характерной особенностью такого описания является дискретность соответствующих математических моделей и конечность областей значений их параметров, что приводит к понятию конечного автомата.

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

Большинство задач теории автоматов - общие для основных видов управляющих систем. К ним относятся задачи анализа и синтеза автоматов, задачи полноты, минимизации, эквивалентных преобразований автоматов и другие. Задача анализа состоит в том, чтобы по заданному автомату описать его поведение или по неполным данным об автомате и его функционированию установить те или иные его свойства. Задача синтеза автоматов состоит в построении автомата с наперед заданным поведением или функционированием. Задача полноты состоит в выяснении, обладает ли множество M" M автоматов свойством полноты, т.е. совпадает ли с M множество всех автоматов, которые получаются путем конечного числа применений некоторых операций к автоматам из заданного подмножества автоматов M" . Задача эквивалентных преобразований в общем виде состоит в том, чтобы найти систему правил преобразований (так называемую полную систему правил) автоматов, которые удовлетворяют определенным условиям и позволяют преобразовать произвольный автомат в любой эквивалентный ему автомат (два автомата эквивалентны, если они имеют одинаковое поведение автомата. Поведение автомата - математическое понятие, описывающее взаимодействие автомата с внешней средой. Примером внешней среды конечного автомата является множество входных слов, а поведением - словарная функция, реализуемая автоматом, или событие, представимое автоматом.)

Помимо перечисленных, в теории автоматов имеются специфические проблемы, характерные для автоматов. Так, в зависимости от условий задачи поведение автомата удобно задавать на разных языках, в связи с чем важными задачами являются выбор достаточно удобного адекватного языка и перевод с одного языка на другой. В тесной связи с задачами синтеза и эквивалентных преобразований находится задача минимизации числа состояний автомата, а также получение соответствующих оценок. Близкий круг вопросов возникает в связи с моделированием поведения автоматов одного класса автоматами другого класса. Здесь также представляют интерес вопросы минимизации моделирующих автоматов и оценки их сложности. Специальный раздел теории автоматов связан с так называемыми экспериментами с автоматами (т.е. способами получения информации о внутренней структуре автоматов по их поведению). Основная задача здесь состоит в том, чтобы получить определенные сведения о строении автомата путем наблюдения его реакции на те или иные внешние воздействия. При этом возникает большой круг задач, связанный с классификацией экспериментов и с вопросами разрешимости задач определенными видами экспериментов, а также с оценками длин минимальных экспериментов, достаточных для решения тех или иных задач. Понятие эксперимента с автоматами используется также в задачах надежности и контроля управляющих систем, в частности контроля автоматов. Многие из перечисленных выше задач могут рассматриваться как алгоритмические проблемы. Для конечных автоматов большинство из них имеют положительное решение.

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

^ 1.2.2. Проблемы и задачи, решаемые теорией автоматов. До 30 минут

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

В этой теории достаточно четко выявляются ее направления, обусловленные:


  1. выбором изучаемых типов автоматов (конечные, бесконечные, детерминированные, вероятностные, автономные, комбинационные, без выхода)

  2. принятым уровнем абстракции (абстрактные и структурные автоматы)

  3. спецификой применяемых математических (алгебраическая теория автоматов)
При этом в дискретных моделях рассматриваемых объектов учитывается лишь логика происходящих процессов изменений автомата без учета количественных характеристик.

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

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

теория автоматов
Теория автоматов - раздел дискретной математики, изучающий абстрактные автоматы - вычислительные машины, представленные в виде математических моделей - и задачи, которые они могут решать.

Теория автоматов наиболее тесно связана с теорией алгоритмов: автомат преобразует дискретную информацию по шагам в дискретные моменты времени и формирует результат по шагам заданного алгоритма.

  • 1 Терминология
  • 2 Применение
    • 2.1 Типовые задачи
  • 3 См. также
  • 4 Литература
  • 5 Ссылки

Терминология

Символ - любой атомарный блок данных, который может производить эффект на машину. Чаще всего символ - это буква обычного языка, но может быть, к примеру, графическим элементом диаграммы.

  • Слово - строка символов, создаваемая через конкатенацию (соединение).
  • Алфавит - конечный набор различных символов (множество символов)
  • Язык - множество слов, формируемых символами данного алфавита. Может быть конечным или бесконечным.


Автоматы

Автоматы могут быть детерминированные и недетерминированные.

Детерминированный Конечный Автомат (ДКА)
  • - функция перехода, такая что
  • - начальное состояние
Недетерминированный Конечный Автомат (НКА) - последовательность (кортеж) из пяти элементов, где:
  • - множество состояний автомата
  • - алфавит языка, который понимает автомат
  • - отношение перехода, где - пустое слово. То есть, НКА может совершить скачок из состояния q в состояние p, в отличие от ДКА, через пустое слово, а также перейти из q по a несколько состояний (что опять же в ДКА невозможно)
  • - множество начальных состояний
  • - множество конечных состояний.
Слово Автомат читает конечную строку символов a1,a2,…., an , где ai ∈ Σ, которая называется входным словом.Набор всех слов записывается как Σ*. Принимаемое слово Слово w ∈ Σ* принимается автоматом, если qn ∈ F.

Говорят, что язык L читается (принимается) автоматом M, если он состоит из слов w на базе алфавита таких, что если эти слова вводятся в M, по окончанию обработки он приходит в одно из принимающих состояний F:

Обычно автомат переходит из состояния в состояние с помощью функции перехода, читая при этом один символ из ввода. Есть автоматы, которые могут перейти в новое состояние без чтения символа. Функция перехода без чтения символа называется -переход (эпсилон-переход).

Применение

Теория автоматов лежит в основе всех цифровых технологий и программного обеспечения, так например компьютер является частным случаем практической реализации конечного автомата.

Часть математического аппарата теории автоматов напрямую применяется при разработке лексеров и парсеров для формальных языков, в том числе языков программирования, а также при построении компиляторов и разработке самих языков программирования.

Другое важнейшее применение теории автоматов - математически строгое нахождение разрешимости и сложности задач.

Типовые задачи

  • Построение и минимизация автоматов - построение абстрактного автомата из заданного класса, решающего заданную задачу (принимающего заданный язык), возможно, с последующей минимизацией по числу состояний или числу переходов.
  • Синтез автоматов - построение системы из заданных «элементарных автоматов», эквивалентной заданному автомату. Такой автомат называется структурным. Применяется, например, при синтезе цифровых электрических схем на заданной элементной базе.

См. также

  • Лемма о накачке
  • Абстрактный автомат
  • Игра «Жизнь»
  • Минимальная форма автомата
  • Теорема Шеннона - Лупанова

Литература

  • Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман. Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. - М.: Вильямс, 2002. - С. 528. - ISBN 0-201-44124-1.
  • Касьянов В. Н. Лекции по теории формальных языков, автоматов и сложности вычислений. - Новосибирск: НГУ, 1995. - C. 112.

Ссылки

  • Применение теории автоматов

теория автоматов

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

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

Термин «А. т.» вошел в обиход в 50-е годы 20 ст., хотя соответствующая проблематика в значительной мере начала складываться еще в 30-е годы в рамках теории алгоритмов и теории релейных устройств. Еще тогда в алгоритмов теории были сформулированы достаточно общие понятия вычисл. автомата (см. Тьюринга машина) и (неявно) понятие автомата конечного (головка машины Тьюринга). Было установлено, что для осуществления

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

В А. т. достаточно четко вырисовываются отдельные ее направления, обусловленные выбором изучаемых типов автоматов (конечных, вероятностных и т. п.), принятым уровнем абстракции (см. Абстрактная теория автоматов, Структурная теория автоматов) или спецификой применяемых матем. методов (см. Алгебраическая теория автоматов). Наряду с этим родственные задачи и методы интенсивно развиваются в теории релейных устройств, в теории ЦВМ ив теории программирования, поэтому зачастую трудно бывает различать сферы действия этих теорий и А. т.

Поведение и структура. В основе А. т. лежат точные матем. понятия, формализующие интуитивные представления о функционировании и поведении автомата, а также о его структуре (внутреннем устройстве). С точки зрения их поведения, автоматы чаще всего рассматриваются как преобразователи словарной информации, т. е. преобразователи последовательностей букв в последовательности букв. Реализуемое преобразование интерпретируется обычно как вычисление значений некоторой ф-ции (оператора) по заданным значениям аргументов или как преобразование записей условий задач некоторого типа в записи соответствующих решений. В частности, т. н. распознающие автоматы, воспринимая входную информацию, реагируют на нее так, что некоторые входные последовательности сигналов они принимают, а другие - отвергают. В этом смысле они распознают или, как говорят еще, представляют мн-ва входных последовательностей. Наконец, порождающий автомат функционирует как автономная система, не связанная со входной информацией, его поведение определяется тем, какие выходные последовательности он способен порождать. Приведенная классификация в терминах преобразования, распознавания и порождения зависит от правил функционирования автомата, т. е. от программы взаимодействия его внутренних состояний со входными (поступающими из внешней среды) и выходными (вырабатываемыми во внешнюю среду) сигналами. Пусть Q, X, Y - соответственно мн-ва внутренних состояний входных и выходных сигналов автомата. Если это детерминированный автомат, его программа формализуется в терминах ф-ции переходов Ч и ф-ции выходов Ф, указывающих для каждого входного сигнала х и каждого состояния состояние в которое переходит автомат, и вырабатываемый им при этом выходной сигнал

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

Типы автоматов. Наиболее распространенной является классификация автоматов и со-отв. разделов А. т., посвященных различным

типам автоматов, по следующим признакам.

1) Объем памяти. Конечные и бесконечные автоматы характеризуются соотв. конечностью и бесконечностью объема памяти (числа внутренних состояний). Конечными автоматами являются отдельные блоки современных вычисл. машин и даже машина в целом. Мозг также можно рассматривать как конечный автомат. Бесконечные автоматы представляют собой естественную матем. идеализацию, вырастающую из представления об автомате с конечным, но необозримо большим числом состояний. При этом имеется в виду лишь потенциальная бесконечность памяти, проявляющаяся в том, что память, хотя и остается конечной в каждый момент времени, может неограниченно возрастать. Такая идеализация возникла впервые в рамках теории алгоритмов в процессе уточнения интуитивного представления об алгоритме. Структурно-растущий автомат представляют в виде соединения элементов, способных к размножению и наращиванию схемы. Современные ЭВМ можно рассматривать как растущие (а вместе с тем и потенциально бесконечные) автоматы в следующем смысле: чтобы вычисления во всех случаях могли быть доведены до конца, приходится допускать возможность неограниченного наращивания внешней (ленточной) памяти.

2) Механизм случайного выбора. В детерминированных автоматах поведение и структура в каждый момент времени однозначно определены текущей входной информацией и состоянием автомата, сложившимся в непосредственно предшествующий момент. В вероятностных (стохастических) автоматах они зависят еще и от некоторого случайного выбора. Стохастические автоматы не следует смешивать с недетерминированными, в которых так же нарушено условие однозначности (однако без участия к.-л. механизма случайного выбора).

Проблемы и методы. К центр, проблемам А. т. относятся проблемы анализа, т. е. описания поведения автомата, исходя из заданной его программы или структуры, и синтеза - т. е. конструирования автоматов, поведение которых удовлетворяло бы заранее предъявляемым требованиям. С этими проблемами тесно связаны и многие др. задачи, которые интенсивно исследуются (полнота и универсальность, минимизация, языки, асимптотические оценки и др.). Более всего анализ и синтез исследованы в теории конечных детерминированных автоматов, причем они по-разному трактуются в абстрактной и в структурной теориях автоматов. Так, напр., в структурной теории под синтезом (см. Синтез автоматов структурный) подразумевается построение схемы из заданного ассортимента элементов, которая была бы оптим. (или близка к оптим.) в смысле некоторого выдвигаемого критерия сложности схем. Здесь преобладают комбинаторно-информационные методы и асимптотические оценки (К. Шэннон, С. В. Яблонский, О. Б. Лупанов и др.). В абстрактной теории автоматов довольствуются построением программы функционирования автомата (см. Синтез автоматов абстрактный), напр., в виде ф-ций перехода и выхода для конечного автомата, которая обычно служит исходным материалом для дальнейшего развертывания структурного синтеза. Здесь используются преимущественно алгебраические (С. К. Клини, В. М. Глушков и др.), математико-логич. (Б. А. Трахтенброт, Р. Бюхи и др.) и игровые (Р. Мак-Нотоп) методы и понятия. Проблема анализа и синтеза конечных детерминированных автоматов занимает видное место и в теории релейных устройств.

В теории экспериментов с автоматами (Э. Мур) разрабатываются методы, которые позволяют по сведениям, получаемым при внешнем наблюдении за поведением автомата, восстанавливать программу его функционирования или по крайней мере некоторые ее свойства. Эти методы можно рассматривать как своеобразный прием абстрактного синтеза и расшифровки автоматов (Я. М. Барздинь). Работы К. Шэннона, М. Рабина и др. послужили толчком к развитию теории вероятностных автоматов в следующих направлениях: 1) в какой мере понятия и методы теории детерминированных автоматов переносятся на стохастические автоматы; 2) какие упрощения вычисл. процесса достижимы при выходе из более узкого класса детерминированных автоматов в более широкий класс автоматов вероятностных. Изучение растущих автоматов сосредоточено в основном на следующих проблемах: 1) разработка моделей растущих автоматов и изучение отдельных их классов (автоматы итеративные - Ф. Хенни, автоматы регистровые - В. М. Глушков, автоматы самовоспроизводящиеся - Дж. фон Нейман, обобщенные растущие автоматы - А. Н. Колмогоров, Я. М. Барздинь); 2) оценка вычисл. способности и сложности вычислений растущих автоматов (Я. М. Барздинь, Б. А. Трахтенброт, Ю. Хартманис, Г. С. Цейтин, М. Рабин и др.).

Связь с другими научными направлениями.

Значение теории алгоритмов и теории релейных устройств для А. т. уже было разъяснено выше. Следует указать и на обратную отдачу А. т., методы которой позволили решить ряд задач, возникших в матем. логике и теории алгоритмов (Р. Бюхи). Проблематика, складывающаяся в теории растущих автоматов (напр., сложность вычислений), лежит по существу на стыке теории алгоритмов и асимптотических закономерностей структурного синтеза автоматов. Сильное взаимное проникновение А. т. и лингвистики математической, одним из важных понятий которой является грамматика порождающая, - объект весьма близкий к порождающему автомату. Поэтому отдельные довольно важные положения теории грамматик могут быть в принципе отнесены к А. т. В абстрактной теории автоматов матем. вопросы обучения, а также целесообразного поведения одного индивидуума или коллектива были уточнены и исследованы в терминах автоматов игр (М. Л. Цетлин). Полезной

оказалась также связь теории конечных автоматов с теорией проектирования ЦВМ и теорией программирования (В. М. Глушков, А. А. Летичевский).

Лит.: Гаврилов М А. Теория релейно-контактных схем. М.- Л., 1950 [библиогр. с. 298-299]; «Труды математического института им. В. А. Стеклова АН СССР», 1958, т. 51; Глушков В. М. Синтез цифровых автоматов. М., 1962 [библиогр. с. 464- 469]; Кобр инский Н. Е., Трахтенброт Б. А. Введение в теорию конечных автоматов. М., 1962 [библиогр. с. 399-402]; Цетлин М. Л. Исследования по теории автоматов и моделированию биологических систем. М., 1969 [библиогр. с. 306-316]; Трахтенброт Б. А., Барздинь Я. М. Конечные автоматы (Поведение и синтез). М., 1970 [библиогр. с. 389-395]; Автоматы. Пер. с англ. М., 1956. Б. А, Трахтенброт.

Поиск материалов:

Количество Ваших материалов: 0.

Добавьте 1 материал

Свидетельство
о создании электронного портфолио

Добавьте 5 материала

Секретный
подарок

Добавьте 10 материалов

Грамота за
информатизацию образования

Добавьте 12 материалов

Рецензия
на любой материал бесплатно

Добавьте 15 материалов

Видеоуроки
по быстрому созданию эффектных презентаций

Добавьте 17 материалов

На протяжении последних десятилетий велись и ведутся интенсивные работы по созданию
и использованию различных систем и устройств для переработки дискретной
информации. Преобразователи дискретной информации широко используются в качестве
различного рода технических автоматов, вычислительных устройств и их функциональных
блоков, устройств управления роботами, управляющих объектами по заданному
алгоритму. Широкий класс таких преобразователей объединяется под общим названием
­автоматы. Эти устройства имеют конечное число входов, воспринимающих информацию,
и конечное число выходов для выдачи переработанной информации. Зависимость между
входами и выходами задается предписанным алгоритмом переработки информации.
Информация на входе и выходе представляется символами, физическими носителями
которых являются квантованные по времени сигналы.
Если «К» символов одновременно следующих по параллельным входным либо выходным
каналам, рассматривать как один символ из соответствующего алфавита, следующего по
единому "склеенному" каналу, то такой автомат можно представить как устройство с
одним входом и одним выходом (рис. 1).
Рис.1 – Общая функциональная модель преобразователя дискретной информации
Известны два подхода к определению термина автомат. При первом его истолковывают
как устройство, которое без непосредственного участия человека выполняет функции
приема, преобразования и передачи энергии, информации и т.п. в соответствии с
заложенной в него программой, при втором ­ как математическую модель реальных
преобразователей дискретной информации. Функционирование его состоит в том, что
последовательность z1,z2,... символов конечного или в общем случае бесконечного
алфавита Z, поступающая на вход, вызывает на его выходе определенную
последовательность w1,w2,... символов того же или другого алфавита. Таким образом,
самой общей математической моделью преобразователя дискретной информации является
последовательностная функция, отображающая множество Z всех последовательностей
символов алфавита Z в другое множество W* последовательностей символов алфавита W.
Такая интерпретация позволяет схематично представить преобразователь как устройство,
реализующее отображение одного множества на другое (рис. 2а).

Рис.2а – Формальная модель преобразователя
Данное отображение называется алфавитным отображением или алфавитным
оператором.
Теория автоматов ­ это раздел теории управляющих систем, изучающий математические
модели преобразователей дискретной информации, называемые автоматами. С
определенной точки зрения такими преобразователями являются как реальные устройства
(вычислительные машины, живые организмы), так и абстрактные системы
(например, формальная система – это совокупность абстрактных объектов, не связанных
с внешним миром, в котором представлены правила оперирования множеством символов в
строго синтаксической трактовке без учета смыслового содержания, т.е.
семантики; аксиоматические теории, описывающие определенную совокупность явлений
в их причинно­следственной связи друг с другом).
Наиболее тесно теория автоматов связана с теорией алгоритмов. Это объясняется тем,
что автомат преобразует дискретную информацию по шагам в дискретные моменты
времени и формирует результирующую информацию по шагам заданного алгоритма. Эти
преобразования возможны с помощью технических и/или программных средств. Автомат
можно представить как некоторое устройство (чёрный ящик), на которое подаются
входные сигналы и снимаются выходные и которое может иметь некоторые внутренние
состояния. При анализе автоматов изучают их поведение при различных возмущающих
воздействиях и минимизируют число состояний автомата для работы по заданному
алгоритму. Такой автомат называют абстрактным, т.к. абстрагируются от реальных
физических входных и выходных сигналов, рассматривая их просто как буквы некоторого
алфавита и в связи с идеализированным дискретным временем. При синтезе автоматов
(процесс соединения или объединения) формируют систему из элементарных автоматов,
эквивалентную заданному абстрактному автомату. Такой автомат
называется структурным. Особое место в теории автоматов занимает понятие конечного
автомата.
Результат преобразования вход => выход (рис.2а) зачастую зависит не только от входа в
данный момент времени, но и от того, что было раньше на входе, от входной истории, т.е.
от предыстории преобразования. Число возможных входных историй бесконечно (счетно),
даже если различных элементов входной информации у автомата конечное число (как в

конечном функциональном преобразователе). Чтобы эти предыстории как­то запоминать и
отличать друг от друга преобразователь должен иметь память. Для этого в устройство
(рис. 1.1,6) вводится алфавит состояний Q = {qx,q2,...qm).
Понятие состояния q при этом играет очень важную роль. В своих состояниях автомат
запоминает свое концентрированное прошлое. На один и тот же входной сигнал
преобразователь может реагировать по­разному в зависимости от того, в каком состоянии
он находится в данный момент.
Конечный автомат (рис.2б) - математическая абстракция, позволяющая описывать пути
изменения состояния объекта в зависимости от его текущего состояния и входных данных,
при условии, что общее возможное количество состояний Q и множество входных сигналов
Z конечны. Конечный автомат является частным случаем абстрактного автомата.
Рис.2б – Конечный автомат
Конечный автомат является одним из важнейших видов управляющих систем.
Главным достоинством конечных автоматов является то, что в них естественным
образом описываются системы, управляемые внешними событиями.
Теория автоматов занимается изучением процессов, протекающих в автоматах различного
рода, и общих закономерностей, которым они подчинены, широко применяя для этого
алгебраический аппарат, математическую логику, комбинаторный анализ и теорию
вероятностей.
Конструируя надежные, хорошо работающие автоматы, приходится решать необычайно
сложные задачи. Например, надо определять устойчивость систем, чтобы уменьшить
различные отклонения в работе автоматических машин. Надо изучать и чувствительность
автоматов, так как в процессе работы свойства систем регулирования не остаются
постоянными.
Теория автоматов находит применение как в математике, так и в решении практических
задач. Например, средствами теории автоматов доказывается разрешимость некоторых
формальных исчислений. Применение методов и понятий теории автоматов к изучению
формальных и естественных языков привело к возникновению математической
лингвистики (математическая лингвистика ­ математическая дисциплина, предметом
которой является разработка формального аппарата для описания строения естественных
и некоторых искусственных языков.) Понятие автомата может служить модельным

объектом в самых разнообразных задачах, благодаря чему возможно применение теории
автоматов в различных научных и прикладных исследованиях.
Актуальность теории автоматов
Существует множество объектов управления, связанных с большой
ответственностью: ядерные и химические реакторы, комплексы промышленного,
оборонного, космического назначения, горное дело. Успех в работе с ними прямо
зависит от четкости и слаженности действий, от умения принимать выверенные решения и
грамотно анализировать ситуацию, от возможности однозначной интерпретации
информации. Различная природа физических процессов, протекающих в объектах, сложный
характер взаимодействия между ними и управляющими системами обуславливает
трудности разработки, алгоритмизации и программирования задач управления. Возникают
трудности, связанные с необходимостью достижения наглядности и структурированности.
Для решения этих задач используется развитый математический аппарат теории автоматов.
Описание логики поведения (при каких условиях необходимо выполнить те или иные
действия) при автоматном подходе структурировано. Это свойство делает автоматное
описание сложного поведения наглядным и ясным. Корректность работы при
использовании автоматов закладывается еще на этапе проектирования, благодаря
графическому представлению, т.е.
 наглядно представляется поведение управляющих автоматов (графически, таблично)
и композиций из них;
 отображаются желаемые состояния;
 отражается динамика и условия переходов автомата из состояния в состояние;
 можно легко увидеть возможные ошибки в проектировании, такие как отсутствие
некоторого перехода, недоступность состояния и т.д.
Все это приводит к четкому пониманию работы устройства. Процессы управления,
проектирования могут быть представлены в виде элементов с предсказуемым поведением.
Пример: один из крупнейших мировых производителей авиационной, космической и
военной техники – американская корпорация «Боинг» занимается системами стабилизации
самолетов с использованием чистой теории автоматов. Большая часть теории автоматов
была успешно использована в системных программах и текстовых фильтрах в ОС UNIX.
Это позволяет множеству людей работать на высоком уровне и разрабатывать очень
эффективные программы.

Области применения ТА поражают своим размахом и не ограничиваются узкой
направленностью и специализацией. Рассмотрим некоторые из них.
Программирование
Возникает вопрос, почему же конечно­автоматная модель теории автоматов особенно
актуальна сейчас, когда существует огромное количество, как языков
программирования, так и сред для разработки ПО? Имеют место две проблемы:
 непредсказуемое поведение кода программы, разработанной исключительно
средствами RAD (Rapid Application Development – средства быстрой разработки
приложений);
 «угасание» «культуры программирования».
Примеры RAD: Borland Delphi и C++ , обеспечивающие ускоренную разработку
приложений за счет использования объектно­ориентированного и визуального
программирования. Они позволяют не только программировать в привычном смысле слова,
но и фактически рисовать программы (как интерфейс, так и реализацию), используя
визуальные компоненты VCL.
Любой визуальный объект VCL характеризуется рядом свойств, методов и событий.
Казалось бы, простой манипуляцией перечисленными атрибутами возможно заставлять
разрабатываемую программу делать то, что требует от нее программист­разработчик. Но
это далеко не так.
Давно стало ясно, что VCL имеет тенденцию скрывать точную реализацию определенных
объектов, тем самым не давая посторонним менять умалчиваемое поведение кода. Как
показывает практика, поведение кода программы, созданной с помощью средств RAD, не
всегда предсказуемо даже для очень опытного программиста, не говоря уже о начинающем.
Программа, несмотря на «очевидность» авторского кода, всегда стремится пойти своим
путем, попадая в такие замысловатые обработчики событий, о существовании которых
можно даже и не догадываться.
В современном мире объемы и сложность разрабатываемых приложений возрастают с
каждым днем, поэтому такой подход резко увеличивает время тестирования и отладки ПО.
Управлять поведением кода дает возможность механизм теории автоматов еще
сорокалетней давности.
Стили программирования различаются по базовым понятиям, в качестве которых
используются такие понятия как «событие», «подпрограмма», «функция», «класс»

(«объект») и т. д. Стиль программирования, основанный на явном выделении состояний
и применении автоматов для описания поведения программ, назван «автоматное
программирование», а соответствующий стиль проектирования программ -
«автоматное проектирование». Автоматное программирование можно рассматривать не
только как самостоятельный стиль программирования, но и как дополнение к другим
стилям, например, к объектно­ориентированному, т.к. речь идет не только и не столько об
использовании конечных автоматов в программировании, сколько о методе создания
программ в целом, поведение которых описывается автоматами. Т.е. как отдельный
компонент, так и программа в целом может быть реализована как автомат.
В автоматном программировании существует два направления: SWITH­технология и
КА (конечно­автоматная) технология. Switch­технология - технология разработки систем
логического управления на базе конечных автоматов, охватывающая процесс
проектирования, реализации, отладки, верификации (проверки), документирования и
сопровождения.
Кодирование/программирование автоматов в рамках КА­технологии основано на
следующих принципах:
 введено понятие динамичного объекта, который может быть наделен алгоритмом
поведения во времени;
 алгоритм поведения объекта задается моделью конечного автомата;
 язык описания автомата основан на базе табличной формы представления автоматов;
 логика поведения объекта (таблица переходов автомата) отделена от методов
автоматного объекта (предикатов и действий), связанных с реализацией его
поведения во времени;
 любые динамичные объекты могут выполняться параллельно.
Рассмотрим эти технологии подробнее:
1) SWITH­технология. Основные положения: предлагается сделать понятие «состояние»
первичным, а алгоритмы представлять в виде графов переходов (диаграмм состояний), т.е.
представлять программу как систему взаимодействующих конечных автоматов,
описываемых графами переходов. Состояния кодируются для того, чтобы их различать.
Графы в наглядной для человека форме отражают переходы между состояниями, а также
«привязку» выходных воздействий и других автоматов к состояниям и/или переходам.
Внутри программы автоматы могут взаимодействовать:

 по вложенности (один автомат вложен в одно или несколько состояний другого
автомата)
 по вызываемости (один автомат вызывается с определенным событием из выходного
воздействия, формируемого при переходе другого автомата)
 обмену сообщениями (один автомат получает сообщения от другого)
 по номерам состояний (один автомат проверяет, в каком состоянии находится
другой автомат).
Ни число автоматов, вложенных в состояние, ни глубина вложенности не ограничены.
Основной критерий оптимальности реализации управляющих автоматов – возможность
преобразования графа переходов в программный код. <><><>Известно большое число
инструментальных средств для генерации программ, реализующих графы переходов:
 Visio2Switch ­ инструментальное средство Visio2Switch позволяет по графу
переходов, построенному с помощью редактора Microsoft Visio, автоматически
реализовать его в виде изоморфной программы на языке С. Конвертор Visio2Switch
используется в настоящее время при создании программного обеспечения ряда
ответственных систем реального времени.
 MetaAuto ­ инструментальное средство MetaAuto позволяет по графу переходов,
построенному с помощью того же редактора, автоматически реализовать его в виде
изоморфной программы на любом языке программирования, для которого
предварительно построен шаблон (C, C# , Turbo Assembler и т.д.).
 UniMod ­ инструментальное средство UniMod предназначено для поддержки
автоматного программирования и построения и реализации не только автоматов, но и
программ в целом.
Практика показала, что для многих классов программ только 20–30% программного
кода строится вручную.
На основе SWITCH­технологии уже разработаны приложения для: устройства продажи
газированной воды, банкомата (см. пример 1), светофора, системы управления
пассажирским лифтом, система управления автомобильной сигнализации (см. пример 2),
автоматизированной системы оплаты мобильного телефона, устройства обмены валюты,
устройства для продажи проездных билетов и т.д.
2) КА­технология позволяет реализовать идею параллелизма. Технологии разработки
программ “сверху вниз”, “снизу вверх”, структурный подход таких возможностей или не

имеют, или они ограничены. Даже в технологии объектно­ориентированного
программирования (ООП) вопросы параллельной работы объектов вынесены за ее рамки.
Использование других технологий, базирующихся на известных параллельных моделях,
сопряжено с трудностями, связанными если не с ограничениями области их применения, то
с проблемами последующей реализации на программном и/или аппаратном уровнях.
Параллельные модели ­ одно из основных и перспективных направлений в области развития
программирования и аппаратных средств. Идея параллелизма весьма привлекательна. Но
для ее использования необходимо, во­первых, решить проблему описания, т.е. выбора
формальной параллельной модели, и, во­вторых, проблему реализации модели. КА­
технология использует модель со средствами представления и описания параллелизма,
которые по своим возможностям не уступают другим параллельным моделям, а ее
реализация во многом проще. Кроме того, применяя стандартные приемы, несложно
перейти от параллельного конечно­автоматного представления к последовательному
описанию.
Примеры применения КА­технологии: бухгалтерские программы типа расчета
заработной платы или учета квартирной платы, проект системы управления
технологическим процессом выращивания кристаллов с множеством динамически
порождаемых параллельно функционирующих объектов реализующих процессы съема
данных с датчиков, выдачу управляющих воздействий на объект, автоматные алгоритмы
работы драйверов с разнообразной аппаратурой, процессы отображения и расчета.
3) Основное отличие рассматриваемых технологий заключается в реализации логики
автоматных программ. В SWITCH­технологии она реализуется переводом автоматного
описания в программный код языка программирования, в КА­технологии реализуется
прямое исполнение автоматов путем интерпретации его исходного табличного
представления. Это более короткий и наглядный путь реализации автоматов, хотя и более
медленный, если рассматривать уровень отдельного компонентного автомата сети
автоматов.
Вывод: Автоматное программирование используется в настоящее время при
проектировании программного обеспечения систем автоматизации ответственных объектов
управления (автомат управления криогенно­вакуумной установкой, дизель­генератором).
Конечный автомат работает по принципу «шаг в сторону – недопустимо». Реализовать
непредусмотренные действия конечный автомат не даст ни пользователю (исходный
вариант кода), ни самой программе (модифицированный вариант кода).

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

обучению. Использование автоматов при создании искусственных нейронных сетей
позволяет исключить появление непредусмотренных состояний в работе.
Нейронные технологии особенно интенсивно применяются в экспертных системах
прогнозирования месторождений и финансовом деле при оценке инвестиций.
Пример: В жидкостных ракетных двигателях (ЖРД), представляющих собой сложную
техническую систему, состоящую из множества агрегатов, взаимодействующих между
собой, необходима быстрая реакция контролирующей системы на процессы, происходящие
в одном из самых ответственных и напряженных агрегатов – турбонасосном агрегате
(ТНА). При использовании нейронных сетей и автоматов появляется возможность
раннего диагностирования аварийных ситуаций, что позволяет снизить последствия аварии
и предотвратить разрушение двигателя при проведении огневых испытаний (см. пример 3).
При функционировании ТНА представляется в виде конечного автомата. Состояния, в
которых он может находиться: Ожидание, Запуск, Основной режим, Останов, Аварийное
состояние (разделяется на ряд состояний, классифицирующих характер отказа).
Значение предельного отклонения подбирается с таким расчетом, чтобы быть
минимальным и в то же время допускать небольшие вариации. В случае отказа (выход
любой из четырех сетей равен единице) активируются нейронные сети, обученные на
характерных для ТНА отказах, по показаниям которых можно определить, что послужило
причиной отказа (выход сети равен единице). Если этого сделать не удается (несколько
выходов сетей равны единице), то считается что отказ комбинированный – одновременно
произошло несколько отказов, а в случае неопределенности (все выходы сетей равны
нулю), автомат переходит в состояние Новый отказ.
Разработанная методика позволяет обнаруживать отказы турбонасосного агрегата. Т.к.
данное устройство является очень сложным, то после наступления аварийной ситуации
проблематично определить вид поломки, в каком состоянии работы на данный момент
находится агрегат и как его снова перевести в рабочее состояние. Нейронная сеть
позволяет либо предупредить аварию, либо фиксирует время, когда произошел отказ и
определяет вид отказа. Применение SWITCH­технологии при разработке управляющего
ПО позволяет получить полный протокол работы диагностирующего автомата – в любой
момент времени его работы можно узнать в каком состоянии автомат находится, и в какое
состояние его можно перевести.
Создание прикладного ПО для мобильных устройств и микроконтроллеров

При построении серверных приложений, отвечающих на запросы, большую роль играет
«отсутствие состояния» - нет нужды сохранять состояния между двумя
последовательными запросами.
При построении удачного интерактивного приложения управляемого событиями, многое
зависит от того, продумана ли модель управления состояниями.
Конечный автомат - весьма удобная концепция, которую целесообразно использовать для
структурирования приложений.
Поскольку мобильные приложения должны использовать пространство экрана и системные
ресурсы эффективно, конечные автоматы оказываются особенно полезными при
разработке ПО для таких приложений.
Программа представляет собой совокупность конечных автоматов, взаимодействующих
друг с другом и с «внешним миром». Диаграмма переходов КА описывает переходы между
экранными формами, дуги переходов из состояния в состояние описывают действия
пользователя. С каждой из конструируемых форм должен связываться конечный автомат,
управляющий визуальным поведением формы. Если в самой форме содержится несколько
страниц, например, диалоговые окна с вкладками, то предусматривается для каждой из
подстраниц собственный конечный автомат.
Конечные автоматы значительно расширяют возможности управления выполнением
фоновых задач. Их использование делает возможным предоставление фоновыми потоками
информации о состоянии выполнения, а также обращение других потоков с запросами к
фоновому потоку на выполнение определенных действий, например, с запросом на
прекращение выполнения фоновой работы. При этом в наглядной графической форме
могут быть выражены как связи между автоматами, так и их внутренняя
структура. Главное преимущество: возможность повторного использования кода, быстрая
модификация, наглядность, что важно в случае приложений для мобильных устройств,
требующих экономного расходования экранного пространства, памяти, вычислительной
мощности и других ресурсов.
Построение моделей документооборота на основе конечно­автоматной модели теории
автоматов
В современном обществе идет процесс интенсификации вычислительных и
информационных технологий во всех отраслях деятельности.
Документооборот - движение документов в организации с момента их создания или
получения до завершения исполнения: отправки и/или направления в дело. Внедрение

электронного документооборота является актуальной задачей современного общества, т.к.
он позволяет сделать процесс движения документов управляемым и контролируемым, что
обеспечивает более качественные услуги управления. Предприятия и организации для
решения этой задачи тратят значительные средства и время. В тоже время, каждая
разработка системы документооборота является уникальной и возможность повторного
использования полученного опыта в полном объеме практически отсутствует. Правильная
организация данного процесса определяет качество и стабильность работы любого
предприятия.
Использование автоматной модели в разработке спецификаций документооборота и
программного продукта позволяет создавать системы более адекватные требованиям
пользователей и обеспечивает возможность достижения совместимости приложений.
Теория автоматов позволяет реализовать логику ветвления движения документов между
участниками процессов документооборота. Автомат позволяет установить реакцию
элементов системы документооборота на изменения в системе.
В качестве моделируемого объекта рассматривается так называемый композитный
документооборот, то есть такой документооборот, в котором участвуют, как электронные,
так и бумажные представления документов. Композитный документооборот
представляется тройкой: Дт = {У, Д, Ф}, где
 Дт – формальная модель документооборота;
 У – множество участников;
 Д – множество действий;
 Ф – множество состояний документов.
Множество состояний документов S получается путем анализа жизненного цикла
документа. Это множество всех состояний, которые могут быть приняты документом в
пределах моделируемого документооборота, где каждое значение уникально: {S}={Ф}.
Под начальным состоянием подразумевают первоначальное состояние, в которое поступает
документ после инициализации процесса. При представлении документооборота в виде
совокупности процессов, начальное состояние представляет первый шаг, после которого
можно говорить о том, что документ существует и процесс активизирован. Таким образом,
начальные состояния – это объекты, элементы множества Ф, которые имеют одну или
несколько исходящих связей и ни одной входящей.

Документооборот состоит из совокупности процессов, каждый из которых обрабатывает
один или несколько документов. Жизненный цикл процесса документооборота
определяется движением документов от начальных состояний к завершающим состояниям.
В рассматриваемой модели завершающие состояния автомата определяются, как состояния
документа, после возникновения которых работа автомата останавливается, то есть
процесс документооборота перестает существовать. Таким образом, завершающие
состояния можно определить как объекты множества Ф, которые имеют одну или
несколько входящих связей и ни одной исходящей.
В документообороте документ принимает следующее состояние в зависимости от
результата действия, которое над ним произвели. Функцию перехода автоматной
модели документооборота можно определить как i­й элемент множества действий {Д}
документооборота, после выполнения которого, происходит смена состояния на
состояние. {F}={Д}
Алфавит автомата – это множество символов, наборы которого поступают или могут
поступить автомату. В качестве алфавита автомата следует рассматривать список
участников.
Можно однозначно определить автомат, который будет адекватно реализовывать модель
документооборота. Модель, построенная на детерминированных автоматах, позволяют
строить модели, которые легче воспринимаются визуально. Для них проще построить
программную реализацию. В то же время, при создании моделей процессов, имеющих
сложную ветвящуюся структуру, автоматная модель на детерминированных автоматах
получается большой и громоздкой.
Недетерминированные автоматы позволяют задавать сложные процессы, используя
меньшее количество описательного материала. Однако, для наглядного восприятия они
намного сложнее.
Вывод: при небольших слаборазветвленных процессах лучше использовать
детерминированные автоматы, в то время, как недетерминированные более удобны при
задании процессов с большим количеством шагов и ветвлений.
После разработки теоретической базы реализуется программное обеспечение,
применяющее на практике автоматную и графовую модели документооборота. Каждый из
участников имеет возможность получать доступ к конкретным видам документов и
выполнять над ними строго определенные действия.

Реализация систем композитного документооборота позволяет сделать делопроизводство
более прозрачным и прогнозированным, уменьшает личностное влияние исполняющего
персонала на конечный результат.
Рассмотренная отрасль в настоящее время быстро развивается. Проводятся дальнейшие
исследования в данном направлении, особенно это касается применения КС­грамматик и
создания программного обеспечения, реализующих описанную автоматную модель
композитного документооборота в полном объеме.
Поиск цепочек в тексте
Согласно данным официальной статистики, около 85 % пользователей Интернет постоянно
обращаются к поисковым системам
(Google, Yandex, Rambler, Yahoo!, Апорт, Поиск@Mail.ru и др.) с целью найти
необходимую им информацию о товарах или услугах.
Положения теории автоматов прекрасно подходят для описания таких реальных
задач, возникающих в приложениях, как поиск в сети Internet и извлечение
информации из текста. Многие современные поисковые системы Интернета используют
специальную программу – поисковый робот, который является автоматом.
В век Internet и электронных библиотек с непрерывным доступом обычной является
следующая проблема. Задано некоторое множество слов, и требуется найти все
докумен¬ты, в которых содержится одно (или все) из них. Популярным примером такого
процесса служит работа поисковой машины, которая использует специальную технологию
поиска, называемую обращенными индексами (inverted indexes). Для каждого слова,
встречающегося в Internet (а их около 100,000,000), хранится список адресов всех мест, где
оно встречается. Машины с очень большим объемом оперативной памяти обеспечивают
постоянный доступ к наиболее востребованным из этих списков, позволяя многим людям
одновременно осуществлять поиск документов.
В методе обращенных индексов конечные автоматы не используются, но этот метод
требует значительных затрат времени для копирования содержимого сети и переписывания
индексов. Существует множество смежных приложений, в которых применить технику
обращенных индексов нельзя, зато можно с успехом использовать методы на основе
автоматов. Те приложения, для которых подходит технология поиска на основе автоматов,
имеют следующие отличительные особенности:
1. Содержимое хранилища текста, в котором производится поиск, быстро
меняется.

Вот два примера:
o каждый день аналитики ищут статьи со свежими новостями по
соответствующим темам. К примеру, финансовый аналитик может искать
статьи с определенными аббревиатурами ценных бумаг или названиями
компаний;
o "робот­закупщик" по требованию клиента отслеживает текущие цены по
определенным наименованиям товаров. Он извлекает из сети страницы,
содержащие каталоги, а затем просматривает эти страницы в поисках
информации о ценах по конкретному наименованию.
2. Документы, поиск которых осуществляется, не могут быть каталогизированы.
Например, очень непросто отыскать в сети все страницы, содержащие информацию обо
всех книгах, которые продает компания Amazon.com, поскольку эти страницы
генерируются как бы "на ходу" в ответ на запрос. Однако мы можем отправить запрос на
книги по определенной теме, скажем, "конечные автоматы", а затем искать в той части
текста, которая содержится на появившихся страницах, определенное слово, например
слово "прекрасно".
Моделирование работы банкомата
Банкомат ­ это автоматизированное устройство, позоляющее удаленно осуществлять
операции, связанные с аутентификацией пользователя (держателя счета в банке),
просмотром текущего состояния счета, снятием денег со счета и осуществлением
различных платежей. В данном примере рассматривается работа банкомата, включая не
только клиентскую часть, но и серверную часть, обрабатывающую запросы, а также
подсистему авторизации.
Основная задача при реализации таких систем ­ гарантия высокого уровня надежности
клиентов­пользователей банка и информационной системы банка.

Несмотря на отсутствие связи между автоматами, AServer вложен в AClient. При
нахождении автомата AClient в состояниях «Авторизация», «Запрос баланса» и
«Запрос денег» программно управление передается автомату AServer , который
отправляет запрос на сервер, получает ответ и возвращает управление автомату

AClient. Сам сервер спроектирован традиционным путем и реализован как
консольное приложение.
Интерфейс программы:
Пример показывает, что инструментальное средство UniMod позволяет упростить процесс
создания программы, по сравнению с традиционным подходом. При этом большая часть
времени разработчика уходит на проектирование системы. Ввиду того, что основная часть
кода генерируется автоматически, повышается надежность программы.
Система управления автомобильной сигнализациейфары, сирена и светодиод – как объекты управления. Использование сложного состояния
«2. Включена» (содержит 3 состояния) обеспечивает возможность выключения
сигнализации в каком бы состоянии не находился автомат.
Генераторы событий системы
Генератор событий p1. Этот объект описывает события, производимые пультом
управления сигнализацией. События:
 e11 – нажатие кнопки «1»;
 e12 – нажатие кнопки «2»;
 e13 – нажатие кнопки «3».
Генератор событий p2. Этот объект соответствует датчику удара. Он может выдавать два
события:
 e21 – фиксирование слабого удара;
 e22 – фиксирование сильного удара.
Генератор событий p3. Этот объект запускает один из трех таймеров. Когда отсчет
завершается, он генерирует соответствующее событие. Таймер запускается по запросу
объекта управления «o2» с указанием номера и требуемого времени.
 e31 – таймер «1» завершил отсчет (таймер для отсчета времени в состоянии «3.
Тревога» автомата А1);

 e32 – таймер «2» завершил отсчет (таймер для отсчета времени в состоянии «2.
Состояние опасности» автомата А1);
 e33 – таймер «3» завершил отсчет (таймер для управления выключением звука).
Объекты управления системы
Объект управления o1. Этот объект описывает действия, совершаемые фарами
автомобиля.
 z1 – мигнуть один раз;
 z2 – мигнуть два раза;
 z3 – мигнуть три раза;

 z5 – прервать любые действия.
Объект управления o2. Этот объект используется для запуска таймера «p3».
 z1 – запустить таймер «1» на 15 с;
 z2 – запустить таймер «2» на 5 с;
 z3 – запустить таймер «3» на 3 с;
z4 – остановить все таймеры.
Объект управления o3. Данный объект управления отражает работу сирены. Его
выходные воздействия практически совпадают с выходными воздействиями фар.
 x1 – логическая переменная, показывающая включен звук (то есть может подавать
сигналы) или нет;
 z1 – генерация звука, соответствующего постановке автомобиля на сигнализацию;
 z2 – генерация звука, соответствующего снятию автомобиля с сигнализации;
 z3 – генерация звука, соответствующего реакции на слабый удар;
 z4 – начать подавать тревожный сигнал;
 z5 – прервать звук;
 z6 – включить звук (разрешить подавать сигналы);

 z7 – выключить звук (запретить подавать сигналы).
Объект управления o4. Этот объект управления описывает работу светодиода,
расположенного в машине. Он показывает текущее состояние сигнализации.
 z1 – начать мигание;
 z2 – завершить мигание.
Объект управления o5. Данный объект управления используется для вывода

Теория автоматов

Теория автоматов - раздел дискретной математики , изучающий абстрактные автоматы - вычислительные машины, представленные в виде математических моделей - и задачи, которые они могут решать.

Теория автоматов наиболее тесно связана с теорией алгоритмов : автомат преобразует дискретную информацию по шагам в дискретные моменты времени и формирует результат по шагам заданного алгоритма .

Терминология

Символ - любой атомарный блок данных, который может производить эффект на машину. Чаще всего символ - это буква обычного языка, но может быть, к примеру, графическим элементом диаграммы.

  • Слово - строка символов, создаваемая через конкатенацию (соединение).
  • Алфавит - конечный набор различных символов (множество символов)
  • Язык - множество слов, формируемых символами данного алфавита. Может быть конечным или бесконечным.
Автомат Автомат - последовательность (кортеж) из пяти элементов , где: Слово Автомат читает конечную строку символов a 1 ,a 2 ,…., a n , где a i ∈ Σ, и называется словом .Набор всех слов записывается как Σ*. Принимаемое слово Слово w ∈ Σ* принимается автоматом, если q n ∈ F.

Говорят, что язык L читается (принимается) автоматом M, если он состоит из слов w на базе алфавита таких, что если эти слова вводятся в M, по окончанию обработки он приходит в одно из принимающих состояний F:

Обычно автомат переходит из состояния в состояние с помощью функции перехода , читая при этом один символ из ввода. Есть также автоматы, которые могут перейти в новое состояния без чтения символа. Функция перехода без чтения символа называется -переход (эпсилон-переход).

Применение

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

Другое важнейшее применение теории автоматов - математически строгое нахождение разрешимости и сложности задач.

Типовые задачи

  • Построение и минимизация автоматов - построение абстрактного автомата из заданного класса, решающего заданную задачу (принимающего заданный язык), возможно, с последующей минимизацией по числу состояний или числу переходов.
  • Синтез автоматов - построение системы из заданных «элементарных автоматов», эквивалентную заданному автомату. Такой автомат называется структурным . Применяется, например, при синтезе цифровых электрических схем на заданной элементной базе.

См. также

Литература

  • Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман Введение в теорию автоматов, языков и вычислений = Introduction to Automata Theory, Languages, and Computation. - М .: Вильямс, 2002. - С. 528. - ISBN 0-201-44124-1
  • Касьянов В. Н. Лекции по теории формальных языков, автоматов и сложности вычислений. - Новосибирск: НГУ, 1995. - C. 112.

Ссылки


Wikimedia Foundation . 2010 .

  • Азиатская конфедерация футбола
  • Теория сложности вычислений

Смотреть что такое "Теория автоматов" в других словарях:

    Теория автоматов

    Теория автоматов - раздел теоретической кибернетики, который изучает математические модели (называемые здесь автоматами или машинами) реальных или возможных устройств, перерабатывающих дискретную ин­формацию дискретными же тактами. Основными… … Экономико-математический словарь

    теория автоматов - Раздел теоретической кибернетики, который изучает математические модели (называемые здесь автоматами или машинами) реальных или возможных устройств, перерабатывающих дискретную информацию дискретными же тактами. Основными понятиями этой теории… … Справочник технического переводчика

    теория автоматов - сущ., кол во синонимов: 1 тавт (1) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

    теория автоматов - automatų teorija statusas T sritis automatika atitikmenys: angl. automata theory vok. Automatentheorie, f rus. теория автоматов, f pranc. théorie des automates, f … Automatikos terminų žodynas

    Диаграмма состояний (теория автоматов) - У этого термина существуют и другие значения, см. Диаграмма состояний. Диаграмма состояний ориентированный граф для конечного автомата, в котором вершины обозначают состояния дуги показывают переходы между двумя состояниями На практике… … Википедия

    Теория механизмов и машин - Теория машин и механизмов (ТММ) это научная дисциплина об общих методах исследования, построения, кинематики и динамики механизмов и машин и о научных основах их проектирования. Содержание 1 История развития дисциплины 2 Основные понятия … Википедия

    ТЕОРИЯ - (1) система научных идей и принципов, обобщающих практический опыт, отражающих объективные природные закономерности и положения, которые образуют (см.) или раздел какой либо науки, а также совокупность правил в области какого либо знания млн.… … Большая политехническая энциклопедия

    Теория алгоритмов Экономико-математический словарь

    Теория алгоритмов - раздел математики, изучающий общие свойства алгоритмов. Проблема построения алгоритма с теми или иными свойствами называется алгоритмической проблемой, ее неразрешимость означает отсутствие соответствующего алгоритма; если… … Экономико-математический словарь

Книги

  • Теория автоматов. Учебник для бакалавриата и магистратуры , Кудрявцев В.Б.. Учебник содержит обширный материал по теории автоматов. В нем вводится понятие автомата, даны теории…


В продолжение темы:
Модные советы

Первые государства появились в южных регионах нашей планеты, там, где для этого были наиболее благоприятные природно-географические условия. Они зародились примерно в один...

Новые статьи
/
Популярные