Научная статья на тему 'Особенности процедуры детерминизации конечных автоматов'

Особенности процедуры детерминизации конечных автоматов Текст научной статьи по специальности «Математика»

CC BY
903
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОНЕЧНЫЕ АВТОМАТЫ / FINITE STATE AUTOMATA / ДЕТЕРМИНИЗАЦИЯ / ВЗВЕШЕННЫЕ ОРИЕНТИРОВАННЫЕ ГРАФЫ / WEIGHTED DIRECTED GRAPH / DETERMINIZATION

Аннотация научной статьи по математике, автор научной работы — Виноградова М.С., Ткачев С.Б., Кандаурова И.Е.

Конечные автоматы широко используются в теории формальных языков, при реализации автоматного подхода к программированию, а также при синтезе алгоритмов логического управления. Для обеспечения однозначности работы алгоритмов синтезированные конечные автоматы должны быть детерминированными. В рамках подхода к синтезу управлений мобильными роботами, например, основанному на применении теории формальных языков, возникают задачи построения различных конечных автоматов, однако такие конечные автоматы, как правило, не будут детерминированными. Алгоритм детерминизации может быть применен к конечным автоматам, заданным различными способами. Наиболее просто основные идеи алгоритма детерминизации можно объяснить, используя представления конечного автомата в виде взвешенного ориентированного графа. В работе рассматриваются конечные автоматы, представленные как взвешенные ориентированные графы, и подробно разбирается процедура детерминизации конечных автоматов, представленных указанным образом. Приведено подробное изложение алгоритма детерминизации конечных автоматов. Работа алгоритма детерминизации проиллюстрирована большим количеством примеров.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The Determining Finite Automata Process

The theory of formal languages widely uses finite state automata both in implementation of automata-based approach to programming, and in synthesis of logical control algorithms.To ensure unambiguous operation of the algorithms, the synthesized finite state automata must be deterministic. Within the approach to the synthesis of the mobile robot controls, for example, based on the theory of formal languages, there are problems concerning the construction of various finite automata, but such finite automata, as a rule, will not be deterministic. The algorithm of determinization can be applied to the finite automata, as specified, in various ways. The basic ideas of the algorithm of determinization can be most simply explained using the representations of a finite automaton in the form of a weighted directed graph.The paper deals with finite automata represented as weighted directed graphs, and discusses in detail the procedure for determining the finite automata represented in this way. Gives a detailed description of the algorithm for determining finite automata. A large number of examples illustrate a capability of the determinization algorithm.

Текст научной работы на тему «Особенности процедуры детерминизации конечных автоматов»

Математика к Математическое

моделирование

Сетевое научное издание http://mathmelpub.ru

Ссылка на статью:

// Математика и математическое моделирование. 2017. № 04. С. 1-17

Б01: 10.24108/шаШш.0417.0000067

Представлена в редакцию: 15.07.2017

© НП «НЕИКОН»

УДК 512.5+519.1

Особенности процедуры детерминизации конечных автоматов

Виноградова М.С.1, Ткачев С.Б. Кандаурова И.Е.1

1,*

т^Ьшо ¡ЩЬтаи

1МГТУ им. Н.Э. Баумана, Москва, Россия

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

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

Ключевые слова: конечные автоматы; детерминизация; взвешенные ориентированные графы

Введение

Теория конечных автоматов - один из разделов курса дискретной математики. Конечные автоматы широко используются в теории формальных языков [1,2,3,4], в реализации автоматного подхода к программированию [8], а также при синтезе алгоритмов логического управления, как одиночными, так и многоагентными робототехническими системами [10]. Для обеспечения однозначности работы алгоритма, синтезированный конечный автомат должен быть детерминированным [5,7,9]. Как правило при непосредственном проектировании конечного автомата, как элемента системы логического управления роботами, такой автомат получается детерминированным. Известен подход к синтезу управлений мобильными роботами, основанными на использовании теории формальных языков

[12]. В рамках этого подхода возникают задачи построения конечного автомата для объединения или пересечения языков [10]. Однако результирующий конечный автомат, как правило, не будет детерминированным.

В достаточно общем виде проблема детерминизации конечного автомата рассмотрена в [1,3]. Ниже приведено подробное изложение алгоритма детерминизации конечных автоматов, с использованием их представления, как взвешенных ориентированных графов. Работа алгоритма проиллюстрирована большим количеством примеров. Отметим, что корректность рассматриваемой процедуры для достаточно общего случая обсуждается

в [3].

Конечные автоматы и взвешенные ориентированные графы

Конечный автомат представляет собой абстрактную математическую модель дискретного устройства, которое имеет конечное множество возможных состояний Q, среди которых выделяют одно входное состояние (вход), одно или несколько заключительных состояний (выходов). В каждый момент времени устройство может находится только в одном состояний из множества Q. Дискретная информация в виде цепочки символов последовательно поступает на вход устройства и посимвольно обрабатывается в режиме "реального времени" [2,8].

Непустое конечное множество символов V ={a1,...,.an}, которые могут обрабатываться конечным автоматом, называют входным алфавитом конечного автомата.

Элементы множества V называют буквами или символами.

Буквами или символами могут быть не только собственно буквы какого-либо алфавита, например, латинского, но и дискретные сигналы от датчиков или других устройств. В последнем случае должно быть установлено взаимно однозначное соответствие между поступающими дискретными сигналами и некоторым конечным множеством символов. В англоязычной литературе такие символы называют токинами (token), а процедуру установления требуемого соответствия - токенизацией [6,7].

Из букв или символов формируются входные цепочки или слова. В [1] дано следующее определение слова или цепочки в алфавите V: слово или цепочка в алфавите V - это произвольный кортеж из множества Vk (k-й декартовой степени множества V) для различных k=0, 1, 2,... (см. [1], стр. 463).

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

Входная лента представляет собой полубесконечную неограниченную справа, разделенную на отдельные ячейки ленту. В ячейки ленты записываются символы a1, a2, ..., ak,... входного алфавита V, составляющие входную цепочку. Все символы цепочки записыва-

ются последовательно, начиная с первой ячейки без пропусков и занимают ячейки ленты. Например, на рис.1 представлено расположение на ленте цепочки символов аЪасаЪ.

Рис. 1. Принципиальная схема конечного автомата

Считывающая головка автомата всегда позиционируется ровно на одну ячейку входной ленты и после прочтения очередного символа может сдвинуться вправо на одну ячейку или остаться на прежнем месте. Блок управления автомата в каждый момент времени находится только в одном состоянии q из множества Q.

Автомат работает по тактам. На вход конечного автомата в последовательные дискретные моменты времени (такты) Х2, ..., 1к,... поступают символы входной цепочки (входные сигналы) аI, а2, ..., алфавита V.

Пусть в момент времени tk считывающая головка автомата установлена напротив к-й ячейки входной ленты, блок управления находится в некотором состоянии qieQ. Один такт работы автомата состоит в следующем: автомат считывает содержимое ячейки, и, в зависимости от символа, содержащегося в ячейке, и текущего состояния, блок управления после обработки входной информации переходит в некоторое новое состояние ^ (новое состояние может совпадать с текущим состоянием qi). Описанием автомата могут быть предусмотрены переходы из одного состояния в другое по пустому слову, при этом автомат не читает ленту и не продвигает головку. Такой такт называют Х-тактом и рассматривается как переход из одного состояния в другое по пустой цепочке. Считают, что переход по пустой цепочке и переход по символу входного алфавита исключают друг друга. Пустую цепочку X нельзя интерпретировать для конечного автомата как пустое множество, аналог пробела в строке символов или отсутствие символа в ячейке входной ленты.

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

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

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

го управления [7,9,10,11,12]. Конечные автоматы также используются в теории формальных языков для задания процедуры синтаксического анализа текстов, для описания правил работы трансляторов [1,2,3].

Языком конечного автомата называют все множество слов в заданном алфавите V, которое может допустить (распознать) конечный автомат.

Поведение конечного автомата определяется системой его команд. Каждая команда задается записью qia^• qj или qiX^• Первая команда означает, что из состояния qi по символу aеV автомат может перейти в состояние вторая команда означает, что из состояния qi по пустой цепочке можно перейти в состояние Возможна ситуация, что qi=qj, то есть автомат остается в прежнем состоянии. Команда qia^• qj и команда qj являются взаимоисключающими.

Удобным представлением конечного автомата является взвешенный или размеченный ориентированный граф W =( G; ф), где G =(0,Е) - ориентированный граф, заданный множеством вершин и и множеством дуг Е, а ф - весовая функция (или функция разметки), ставящая в соответствие каждой дуге eiеE ориентированного графа G некоторый символ входного алфавита или пустое слово X (метку) [1,2]. Каждому состоянию qiеQ блока управления конечного автомата ставится во взаимно однозначное соответствие вершина ^еи ориентированного графа, при этом множество дуг и функция разметки определяются системой команд конечного автомата. Если в системе команд автомата есть команда qia^• qj, это означает, что в ориентированном графе из состояния qi в состояние ^ ведет дуга с меткой а, где а - буква входного алфавита. Если в системе команд есть команда qiX^• qj, это означает, что возможен переход из состояния qi в состояние ^ по дуге с меткой X. Тогда каждой входной цепочке символов будут соответствовать последовательности вершин и0, и1,..., ип,..., такие, что для каждой пары вершин и и щ+1 существует дуга из и в щ+1 для любого если существует щ+1 (пути) в размеченном ориентированном графе. Среди вершин ориентированного графа выделим вершину, соответствующую начальному состоянию. Вершину ориентированного графа, соответствующую начальному состоянию, в данной работе будем обозначать короткой заходящей стрелкой, а вершины, соответствующие заключительным состояниям будем обозначать короткой исходящей стрелкой (рис. 2).

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

Рис. 2. Графические обозначения начального q0 и заключительного состояний qk.

зом: множество состояний Q={ql, q2, q3}; входной алфавит V={a,Ъ,c}; система команд: q1a^• q2, q1Ъ^ q2, q2c^ q3; входное состояние q1, заключительное состояние q3. Граф конечного автомата М представлен на рис. 3.

Рис. 3. Граф конечного автомата М

Детерминизация конечных автоматов

При проектировании конечного автомата возможна ситуация, что после прочтения и обработки очередного входного символа а\ из текущего состояния qi в блоке управления может быть осуществлен переход не в одно, а в несколько состояний (например ql и qm), и необходимо "заранее знать", какое именно состояние следует выбрать, чтобы продолжить чтение входной цепочки. Поведение такого автомата будет неоднозначным, такой конечный автомат называют недетерминированным.

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

Следуя [1] зададим конечный автомат M как упорядоченную пятерку, используя функцию переходов 5:

M = (V, Q, qo, F, 5},

где V - входной алфавит; Q - множество состояний; q0- начальное состояние; F - множество заключительных состояний; 5 - функция переходов.

Функция переходов - это отображение 5: Q х (V значение функции пе-

реходов на упорядоченной паре (состояние qeQ, входной символ из алфавита V или пустая цепочка {X}) есть множество всех состояний, в которые из данного состояния возможен переход по данному входному символу или пустой цепочке. Это множество, в частности, может быть пустым. Функция переходов может быть задана в виде системы команд: 5^, а)={п qa ^ г}. Приведенная в описании функции переходов команда означает,

что из состояния q по символу ae V можно перейти в множество состояний ô(q, a), то есть в каждое состояние r из указанного множества ведет дуга с меткой a из состояния q в ориентированном графе, представляющим автомат M.

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

(V qeQ) (Va eV) (|S(q,a)|=1).

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

Конечные автоматы называются эквивалентными, если они распознают один и тот же язык над алфавитом V [1].

Сформулируем теорему о детерминизации, которая имеет важное значение для решения задачи синтеза конечных автоматов.

Теорема о детерминизации

Для любого конечного автомата может быть построен эквивалентный ему детерминированный конечный автомат [1].

Как было сказано выше, для описания конечного автомата можно использовать ориентированный граф, размеченный над алфавитом V, а также задавать множество состояний Q и функцию переходов, которая может быть задана в виде системы команд. В дальнейшем будем использовать оба подхода, считая их эквивалентными. Выбор подхода будет определяться удобством изложения материала.

Алгоритм построения детерминированного конечного автомата

Построение детерминированного конечного автомата проводится в два этапа.

На первом этапе исходному автомату строится новый конечный автомат, не содержащий команд вида qiX—> qj. Можно сформулировать иначе: по графу исходного автомата строится граф нового конечного автомата, не содержащего дуг с меткой X.

На втором этапе по построенному конечному автомату без X-переходов строится детерминированный конечный автомат эквивалентный исходному автомату.

Построение конечного автомата без Х-переходов

Пусть исходный конечный автомат задан как упорядоченная пятерка : M=(V; Q; q0; F; 5). Построим эквивалентный ему конечный автомат М1=(У, Q1, q0, F1, 51) без Х-переходов.

Переход от исходного конечного автомата М к эквивалентному автомату М1 без X-переходов осуществляется следующим образом.

На первом шаге определяется множество состояний Q1 нового автомата М1. Множество состояний Q1 включает в себя начальное состояние q0 исходного автомата М и все состояния из множества состояний Q исходного автомата М, в которые заходит хотя бы одна дуга, помеченная буквой входного алфавита V. Все состояния из множества Q, в которые заходят только дуги с меткой X, в новое множество состояний Q1 не включаются.

На втором шаге необходимо определить новое множество дуг конечного автомата M1 и их меток (функцию переходов автомата М1).

Все дуги из множества дуг автомата М, метки которых отличны от X, соединяющие пару состояний из множества Q1, включаются в граф автомата М1. Все дуги автомата М, имеющие метку дуги X в множестве дуг конечного автомата М1 не включаются, а пути в ориентированном графе, представляющим конечный автомат, формируются согласно следующему правилу определения множество дуг автомата М1 [1]: для любых двух состояний q1, q3еQ1 q1a ^ q3 имеет место тогда и только тогда, когда ае V, в графе М либо существует дуга из q1 в q3, метка которой содержит символ а, либо существует такое состояние q2, что из состояния q1 в состояние q2 ведет путь ненулевой длины, состоящий из дуг с меткой X, и из состояния q2 в состояние q3 ведет дуга с меткой а.

В множество заключительных состояний F1 конечного автомата М1 включаются все состояния qеQ1, которые являются заключительными состояниями автомата М, или из которых ведет путь ненулевой длины по дугам с меткой X в одно из заключительных состояний конечного автомата М.

Проиллюстрируем процесс удаления X-дуг на примерах.

Пример 1. Пусть из состояния q1 в состояние q2 ведет путь ненулевой длины, состоящий из дуг с меткой X, и из состояния q2 в состояние q3 ведет дуга с меткой а (q1^+x q2 и q2^a q3), в состояние q2 заходят только дуги с меткой X (рис. 4).

Рис. 4

Результат удаления X-дуг представлен на рис. 5.

Рис. 5

Пример 2. Пусть из состояния q1 в состояние q2 ведет путь ненулевой длины, состоящий из дуг с меткой X, и из состояния q2 в состояние qз ведет дуга с меткой а q2 и q2^a q3), в состояние q2 заходит кроме дуг с меткой X, хотя бы одна дуга, помеченная буквой входного алфавита, (рис. 6). На рис.7 показан результат удаления дуг с метками X.

ь ®

Рис. 6

а

Рис. 7

Пример 3. Пусть из состояния q1 в состояние q2 ведет путь не нулевой длины, состоящий из дуг с меткой X, и из состояния q2 в состояние q1 ведет дуга с меткой а (q1^+x q2 и q2 ^а ql) (рис. 8).

Рис. 8

В результате удаления X-дуг получим дугу, ведущую из состояния q1 в тоже состояние (петлю) (рис. 9).

Рис. 9

Пример 4. Пусть из состояния q в состояние { ведет путь не нулевой длины, состоящий из дуг с меткой X и состояние { является заключительным (рис 10) ,

Рис. 10

Тогда после удаления X-дуг состояние q станет заключительным (рис 11).

Рис. 11

Построение детерминированного конечного автомата

Пусть М1 = ^^ V; q0; F1; 51) - конечный автомат без X-переходов.

Построим эквивалентный М1 детерминированный конечный автомат М2, в котором из любого состояния конечного автомата по любому входному символу возможен переход ровно в одно состояние.

Множество состояний нового конечного автомата Q2 есть некоторое подмножество множества всех подмножеств множества состояний конечного автомата М1 ^2е2^).

Каждое отдельное состояние S={qs1, .... конечного автомата М2 определяет некоторое подмножество множества состояний конечного автомата М1: Q1.

Начальным состоянием конечного автомата М2 является одноэлементное подмножество {q0}, содержащее начальное состояние конечного автомата М1.

Заключительными состояниями конечного автомата М2 являются все подмножества Ql, которые содержат хотя бы одну заключительную вершину конечного автомата M1.

Состояния конечного автомата М2 будем называть состояниями-множествами. Каждое такое состояние-множество есть отдельное состояние конечного автомата М2, но не множество его состояний. Для исходного конечного автомата М1 это есть именно множество его состояний. Каждое подмножество состояний старого конечного автомата М1 "свертывается" в одно состояние нового конечного автомата [1].

Функция переходов нового конечного автомата М2 определяется следующим образом: из состояния-множества S по входному символу а конечного автомата М2 переходит в состояние-множество, представляющее собой объединение всех множеств состояний конечного автомата М1, в которые этот конечный автомат переходит по символу а из каждого состояния множества S

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Можно видеть, что конечный автомат М2 является детерминированным по построению.

Формально новый конечный автомат М2 определяется следующим образом: M2 = V, }, F2, 52}, где 2е 2 ^ множество состояний автомата М2, F2 - множество заключительных состояний конечного автомата М2. Множество F2 состоит из таких состояний-множеств S, что в каждом из них имеется хотя бы одно заключительное состояние автомата М1, то есть Р 2 = { Б п Р 1 ^0,5 е((2} . Функция переходов автомата М2 имеет вид: ( V Бе 2 (Vа е V) 5 2( Б, а) = и ч е ( я, а).

q е Б

Среди состояний нового конечного автомата может быть состояние, соответствующее 0, причем 52(0,а)=0 для любого входного символа а.

Попав в такое состояние, конечный автомат М2 уже его не покинет. Состояние 0 детерминированного конечного автомата М2 является поглощающим.

Поглощающим состоянием конечного автомата называют такое состояние его q, что для всех входных символов а 5(q,a)=q.

52(Б,а)= 0 тогда и только тогда, когда в старом конечном автомате М1 для каждого состояния qеS из множества состояний S 8^,а)=0, т.е. в графе М1 из каждого такого состояния q не выходит ни одна дуга, помеченная символом а.

Рассмотрим метод детерминизации конечных автоматов, называемый методом "вытягивания".

Алгоритм метода "вытягивания"

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

1. Для каждого символа входного алфавита а находим множество состояний, достижимых из начального по дугам с метками а 5^0,а). Каждое такое множество в новом автомате является состоянием-множеством, непосредственно достижимым из начального.

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

3. Повторяем шаг 2 до тех пор, пока не перестанут появляться новые состояния-множества (включая пустое).

В результате выполнения шагов 1 -3 получим все состояния нового детерминированного автомата М2, достижимые из начальной вершины ^0} по пути длины п, п>2.

4. Формируем множество заключительных состояний. Состояние-множество нового детерминированного конечного автомата будет заключительным, если оно включает хотя бы одно заключительное состояние автомата М1.

Примеры построения детерминированного конечного автомата Пример 5.

Рис. 12. Конечный автомат М1

Детерминизируем конечный автомат М1= V, F1, 51}, представленный на

рис. 10, Q1={q1,q2,q3,q4}, V={a,b}, входное состояние q1, множество входных состояний Fl={q4}, функции переходов: 5l(ql,a)={q2,qз}, 5^1,Ь)=^}, 5l(q2,b)={q4}, 5l(qз,a)={q4}.

Конечный автомат М1 не содержит X-переходов, поэтому сразу переходим к этапу 2, собственно детерминизации.

Чтобы детерминизировать автомат, воспользуемся методом "вытягивания". Процедуру вытягивания начнем с начального состояния q1. Из начального состояния q1 возможен переход по дуге с меткой а в состояния q2 и q3, получено первое состояние-множество ^2^3}, по дуге с меткой Ь в состояние q4, получено второе состояние-множество ^4}. Рассмотрим состояние-множество ^2^3}и найдем функцию переходов из этого состояния. Из состояния ^2} дуги с меткой а нет, поэтому 5^2, а)= 0, из состояния ^3} по дуге с меткой а возможен переход в состояние q4. В результате получаем 5(^2^3},а)=^4}о0=^4}. Продолжая процедуру вытягивания, получим детерминированный конечный автомат М2, все состояния которого достижимы из начальной вершины q1. Множество заключительных состояний состоит из единственного состояния ^4}.

Для конечного автомата М2 запишем функцию переходов:

1. 52^1,а)=^2^3}, 52^1,Ь)=^};

2. 52(^2Л3},а)=^4}^0=^4}, 52(^2Л3},Ь)=^4}^0=^4};

3. 52(Ы,Ь)=0, 52(Ы,а)=0;

4. 52(0,Ь)=0, 52(0,а)=0;

Перечислены все состояния-множества, достижимые из начального, процедура "вытягивания" на этом заканчивается, и в результате получен детерминированный конечный автомат М2, граф которого представленный на рис.13.

Пример 6.

Рассмотрим пример детерминизации конечного автомата М с X-дугами. Конечный автомат М задан как упорядоченная пятерка М=^, V, q1, F, 5}, где Q={q1,q2,q3,q4,q5,q6} -множество состояний конечного автомата, V={a,b} - входной алфавит, q1 - входное состояние, F={q5,q6} - множество входных состояний, функции переходов:

5^1, X)={q2,qз}, 5(q2,X)={q5}, 5(q2,a)={q4}, 5^2,Ь)=^}, 5^з,а)=^2^}, 5^з,Ь)=^},

^¿^^зК 5(q5, X)={qз}, 5<Я6,Ь)=^5}.

Граф конечного автомата М представлен на рис. 14. На рисунке все X-дуги выделены красным цветом.

Построим конечный автомат М1 без X-переходов, эквивалентный конечному автомату М.

Множество состояний нового конечного автомата М1 без X-переходов Состояние q3 не вошло в множество состояний нового автомата М1, так как в него заходят только дуги с метками X в конечном автомате М, и в новом конечном автомате М1 это состояние не достижимо от входа. На рис. 15 это состояние показано светло-серым цветом.

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

Из состояния q1 по дуге с меткой X можно перейти в состояние q2, а из состояние q2 по дуге с меткой а - в состояние q4, следовательно, из состояния q1 можно перейти в состояние q4 по дуге с меткой а, q1 ^а q4. Рассмотрим путь q1 ^^ q2^•x q5 q3 ^а q2. Согласно правилу удаления X-переходов получим путь q1 ^а q2. Так как в состояние q2 заходит не только дуги с метками X, это состояние остается в множестве состояний 01. Такой переход можно было бы получить, используя путь q1 ^^ q3 ^а q2. Из состояния q2 по дуге с меткой X можно перейти в состояние q5, а из состояние q5 по дуге с меткой X - в состояние q3 и из состояние q3по дуге с меткой а - в состояние q2, следовательно, получаем путь q2 ^а q2 или петлю. Рассмотрим пути q2 ^ q5 ^ qз ^ь q4 и q2 ^ q5 ^ qз ^ь q6. После удаления X-переходов получим пути q2 q4 и q2 ^а q6. Из состояния q5 по дуге с меткой X можно перейти в состояние q3 и из состояние q3 - в состояния q2 и q6 по дугам с метками а и в состояние q4 - по дуге с меткой Ь. Следовательно, получаем пути q5 ^а q2, q5 >ь q4 и q5 ^а q6.

Рис. 14. Конечный автомат М

Рис. 15. Конечный автомат Ml

Из состояний ql и q2 по дуге с меткой X можно перейти в заключительное состояние и, следовательно, они войдут в множество заключительных состояний F1, Г1={Я1,Я2,Я5,Я6>.

На рис. 15 представлен конечный автомат Ы1=(01, V, Б1з 81) без Х-переходов.

Чтобы детерминизировать полученный автомат, воспользуемся методом "вытягивания". На рис. 16 изображен конечный автомат Ы1, где для удобства дальнейшей работы все дуги с меткой а сделаем красными, а дуги с меткой Ь - синими, состояние я3 не показано на рис. 16, как недостижимое от входного состояния д1.

Рис. 16. Конечный автомат M1

Процедуру вытягивания начнем с начального состояния я1, из которого возможен переход по дуге с меткой а в состояния q2, я4 и q6, по дуге с меткой Ь в состояние q4 и q6. Получены новые состояния-множества {я2,я4,я6} и {я4,я6}. Из состояния-множества {Я2,Я4,Я6} по дуге с меткой а возможен переход в состояния q2, я4 и q6, то есть в тоже состояние, а по дуге с меткой Ь в состояние q4, и q6. Применяем процедуру "вытягивания" до тех пор, пока не перестанут появляться новые состояния-множества. Функции переходов конечного автомата Ы2 имеют вид:

1) 5l({ql},a)={q2,q4,q6}, 51({Я1},Ь)={Я4,Я6>;

2) 5 1({я2,я4,я6 },а)=5(я2,а)^5(я4,а)^5(я6,а)= {я^^} ^0={Я2^4,Я6 };

§1({я2,я4,я6},Ь)={я4,яЗ,я6};

3) 51({я4,Я6},а)=0,б1({я4,Я6},Ь)={яз};

4) 51({я4,я5,я6},а)={я2,я6}; 61({Я4,Я5,Я6},Ь)={Я4,Я5};

5) б1({я5},а)={я2;я6}; б1({Я5},Ь)={Я4};

6) 51({я2,я6},а)={я2,я4,я6}; 51({Я2,Я6},Ь)={Я4,Я5,Я6};

7) 61(^4^5},а)={Я2Лб}; 61(^4^5},6)={Я4Л5};

8) б1({д4},а)=0; 61({Я4},^)={Я5};

9) 61(0, а) =0; 61(0,6) =0;

В множество заключительных состояний конечного автомата М2 войдут следующие состояния-множества: ^^Лб}, {Я4,Яб}, {Я4,Я5,Яб}, {45}, {Я2,Яб},{Я4,Я5}, так как в каждое из этих состояний-множеств входят состояния конечного автомата М1, принадлежащие множеству Б1, Б^^^^^}.

По полученным функциям перехода построим граф детерминированного конечного автомата (рис. 17).

Рис. 17. Конечный автомат M2

Заключение

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

Список литературы

1. Белоусов А.И., Ткачев С.Б. Дискретная математика: учеб. для вузов / Под ред. В.С. Зарубина и А.П. Крищенко. 5-е изд. М.: Изд-во МГТУ им. Н.Э. Баумана, 2015. 743 с.

2. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. 2-е изд. М.: Вильямс, 2002. 527 с. [Hopcroft J.E., Motwani R., Ullman J.D. Introduction to automata theory, languages and computation. 2nd ed. Boston: Addison-Wesley, 2001. 521 p.].

3. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. В 2 т. Т.1. М.: Мир, 1978. 612 с. [Aho A.V., Ullman J.D. The theory of parsing, translation and compiling. Vol. 1. Englewood Cliffs: Prentice-Hall, 1972].

4. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979. 536 с. [Aho A.V., Hopcroft J.E., Ullman J.D. The design and analysis of computer algorithms. Reading: Addison-Wesley, 1974. 470 p.].

5. Новорусский В.В. Конечноавтоматные системы управления (принципы построения и анализ поведения). Новосиб.: Наука, 1982. 269 с.

6. Dantam N., Stilman M. The motion grammar: Analysis of a linguistic method for robot control // IEEE Transactions on Robotics. 2013. Vol. 29. No. 3. Pp. 704-718.

DOI: 10.1109/TRO.2013.2239553

7. Frazzoli E., Dahleh M.A, Feron E. Maneuver-based motion planning for nonlinear systems with symmetries // IEEE Transactions on Robotics. 2005. Vol. 21. No. 6. Pp. 1077-1091. DOI: 10.1109/TRO.2005.852260

8. Шалыто А.А. Автоматное проектирование программ. Алгоритмизация и программирование задач логического управления // Известия РАН. Теория и системы управления. 2000. № 6. C. 63-81.

9. Шалыто А.А. Алгоритмизация и программирование для систем логического управления и "реактивных" систем // Автоматика и телемеханика. 2001. № 1. C. 3-39.

10. Максимов А.А. Один подход к построению конечноавтоматной управляющей сети // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2012. Спец. вып. 6: Робото-технические системы. С. 14-29.

11. Kobele G.M., Riggle J., Brooks R., Friedlander D., Taylor C., Stabler E. Induction of prototypes in a robotic setting using local search MDL // 9th Intern. Symp. on artificial life and robotics: AR0B'2004 (Beppu, Oita, Japan, January 28-30, 2004): Proc. 2004.

Pp. 482-485.

12. Горячкин Б.С. Развитие теории конечных автоматов и ее приложений в МГТУ им. Н.Э. Баумана // Инженерный вестник. МГТУ им. Н.Э. Баумана. Электрон. журн. 2015. № 4. С. 538-542. Режим доступа: http://engbul.bmstu.ru/doc/730377.html (дата обращения 19.08.2017).

13. Brockett R.W. Formal languages for motion description and map making // Robotics. Providence: Amer. Math. Soc., 1990. Pp. 181-193.

Mathematics & Mathematical Modelling

Electronic journal http://mathmelpub.ru

Mathematics and Mathematical Modeling, 2017, no. 04, pp. 1-17.

DOI: 10.24108/mathm.0417.0000067

Received: 15.07.2017

© NP "NEICON"

The Determining Finite Automata Process

M.S. Vinogradova1, S.B. Tkachev1*, I.T. Kandaurova1

:Bauman Moscow State Technical University, Moscow, Russia

mathmo d@bmstu ju

Keywords: finite state automata; determinization; weighted directed graph

The theory of formal languages widely uses finite state automata both in implementation of automata-based approach to programming, and in synthesis of logical control algorithms.

To ensure unambiguous operation of the algorithms, the synthesized finite state automata must be deterministic. Within the approach to the synthesis of the mobile robot controls, for example, based on the theory of formal languages, there are problems concerning the construction of various finite automata, but such finite automata, as a rule, will not be deterministic. The algorithm of determinization can be applied to the finite automata, as specified, in various ways. The basic ideas of the algorithm of determinization can be most simply explained using the representations of a finite automaton in the form of a weighted directed graph.

The paper deals with finite automata represented as weighted directed graphs, and discusses in detail the procedure for determining the finite automata represented in this way. Gives a detailed description of the algorithm for determining finite automata. A large number of examples illustrate a capability of the determinization algorithm.

References

1. Belousov A.I., Tkachev S.B. Diskretnaia matematika [Discrete mathematics]: a textbook / Ed. by V.S. Zarubin, A.P. Krishchenko. 5th ed. Moscow: Bauman MSTU Publ., 2015. 743 p. (in Russian).

2. Hopcroft J.E., Motwani R., Ullman J.D. Introduction to automata theory, languages and computation. 2nd ed. Boston: Addison-Wesley, 2001. 521 p. (Russ. ed.: Hopcroft J.E., Motwani R., Ullman J.D. Vvedenie v teoriyu avtomatov, iazykov i vychislenij. 2nd ed. Moscow: Williams Publ., 2002. 527 p.).

3. Aho A.V., Ullman J.D. The theory of parsing, translation and compiling. Vol. 1. Englewood Cliffs: Prentice-Hall, 1972. (Russ. ed.: Aho A.V., Ullman J.D. Teoriia sintaksicheskogo analiza, perevoda i kompiliatsii. Vol. 1. Moscow: Mir Publ., 1978. 612 p.).

4. Aho A.V., Hopcroft J.E., Ullman J.D. The design and analysis of computer algorithms. Reading: Addison-Wesley, 1974. 470 p. (Russ. ed.: Aho A.V., Hopcroft J.E., Ullman J.D. Postroenie i analiz vychislitel'nykh algoritmov. Moscow: Mir Publ., 1979. 536 p.).

5. Novorusskij V.V. Konechnoavtomatnye sistemy upravleniia (printsipy postroeniia i analiz povedeniia) [Finite-automatic control systems (principles of construction and behavior analysis). Novosibirsk: Nauka Publ., 1982. 269 p. (in Russian).

6. Dantam N., Stilman M. The motion grammar: Analysis of a linguistic method for robot control. IEEE Transactions on Robotics, 2013, vol. 29, no. 3, pp. 704-718.

DOI: 10.n09/TRQ.2013.2239553

7. Frazzoli E., Dahleh M.A, Feron E. Maneuver-based motion planning for nonlinear systems with symmetries. IEEE Transactions on Robotics, 2005, vol. 21, no. 6, pp. 1077-1091. DOI: 10.n09/TRQ.2005.852260

8. Shalyto A.A. Software automation design: Algorithmization and programming of problems of logical control. J. of Computer and Systems Sciences Intern., 2000, vol. 39, no. 6,

pp. 899-916.

9. Shalyto A.A. Logic control and "reactive" systems: Algorithmization and programming. Automation and Remote Control, 2001, vol. 62, no. 1, pp. 1-29.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

10. Maksimov A.A. One approach to constructing a finite automaton control network. Vestnik MGTU im. N. E. Baumana. Ser. Priborostroenie, spec. iss. 6: Robototekhnicheskie sistemy [Herald of the Bauman MSTU. Instrument Engineering. Spec. iss. 6: Robototechnical systems], 2012, pp. 14-29 (in Russian).

11. Kobele G.M., Riggle J., Brooks R., Friedlander D., Taylor C., Stabler E. Induction of prototypes in a robotic setting using local search MDL. 9th Intern. Symp. on artificial life and robotics: AROB '2004 (Beppu, Oita Japan, January 28-30, 2004): Proc. 2004.

Pp. 482-485.

12. Goriachkin B.S. The development of the theory of finite automata and its applications in the Bauman MSTU. Inzhenernyj vestnik. Bauman MGTU [Engineering Bulletin], 2015, no. 4, pp. 538-542. Available at: http://engbul.bmstu.ru/doc/730377.html, accessed 19.08.2017 (in Russian).

13. Brockett R.W. Formal languages for motion description and map making. Robotics. Providence: Amer. Math. Soc., 1990. Pp. 181-193.

i Надоели баннеры? Вы всегда можете отключить рекламу.