Jump to content

Детерминированный конечный автомат

Пример детерминированного конечного автомата, который принимает только двоичные числа, кратные 3. Состояние S 0 является одновременно начальным и приемным состоянием. Например, строка «1001» ведет к последовательности состояний S0 , S1 , S2 , S1 , S0 и , следовательно, принимается.

В теории вычислений , разделе теоретической информатики , детерминированный конечный автомат ( DFA ) — также известный как детерминированный конечный акцептор ( DFA ), детерминированный конечный автомат ( DFSM ) или детерминированный конечный автомат ( DFSA ) — — это конечный автомат , который принимает или отклоняет заданную строку символов, проходя последовательность состояний, однозначно определяемую этой строкой. [1] Детерминированный означает уникальность выполнения вычислений. В поисках простейших моделей для описания конечных автоматов Уоррен Маккалок и Уолтер Питтс были одними из первых исследователей, представивших в 1943 году концепцию, подобную конечным автоматам. [2] [3]

На рисунке показан детерминированный конечный автомат с использованием диаграммы состояний . В этом примере автомата имеется три состояния: S 0 , S 1 и S 2 (обозначены графически кружками). Автомат принимает на вход конечную последовательность нулей и единиц. Для каждого состояния имеется стрелка перехода, ведущая к следующему состоянию как для 0, так и для 1. После считывания символа DFA детерминированно переходит из одного состояния в другое, следуя стрелке перехода. Например, если автомат в данный момент находится в состоянии S0 и текущий входной символ равен 1, то он детерминированно переходит в состояние S1 . У DFA есть начальное состояние (графически обозначенное стрелкой, появляющейся из ниоткуда), в котором начинаются вычисления, и набор состояний принятия (графически обозначенных двойным кружком), которые помогают определить, когда вычисление является успешным.

DFA определяется как абстрактная математическая концепция, но часто реализуется в аппаратном и программном обеспечении для решения различных конкретных задач, таких как лексический анализ и сопоставление с образцом . Например, DFA может моделировать программное обеспечение, которое решает, являются ли вводимые пользователем данные онлайн, такие как адреса электронной почты, синтаксически допустимыми. [4]

DFA были обобщены на недетерминированные конечные автоматы (NFA) , которые могут иметь несколько стрелок с одной и той же меткой, начинающихся из состояния. Используя метод построения powerset , каждый NFA можно перевести в DFA, распознающий тот же язык. DFA, а также NFA распознают именно набор обычных языков . [1]

Формальное определение

[ редактировать ]

Детерминированный конечный автомат M 5- кортеж собой ( Q , Σ, δ , q0 представляет , F ) , состоящий из

Пусть w = a 1 a 2 ... an строка в алфавите Σ . Автомат M принимает строку w, последовательность состояний r 0 , r 1 , ..., r n существует если в Q со следующими условиями:

  1. р 0 = д 0
  2. r i +1 = δ ( r i , a i +1 ) , for i = 0, ..., n − 1
  3. .

На словах первое условие говорит о том, что машина запускается в стартовом состоянии q 0 . Второе условие гласит, что с учетом каждого символа строки w машина будет переходить из состояния в состояние в соответствии с функцией перехода δ . Последнее условие говорит, что машина принимает w , если последний ввод w приводит к остановке машины в одном из состояний принятия. В противном случае говорят, что автомат отвергает строку. Набор строк, который M, принимает — это язык, распознаваемый M , и этот язык обозначается L ( M ) .

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

Более полное введение формального определения см. в теории автоматов .

Следующий пример представляет собой DFA M с двоичным алфавитом, который требует, чтобы входные данные содержали четное количество нулей.

Диаграмма состояний M

M знак равно ( Q , Σ, δ , q 0 , F ) где

0
1
С 1 SS2 С 1
SS2 С 1 SS2

Состояние S1 означает , что на данный момент во входных данных было четное количество нулей, а состояние означает S2 нечетное число. 1 на входе не меняет состояние автомата. Когда ввод закончится, состояние покажет, содержало ли вход четное количество нулей или нет. Если входные данные содержали четное количество нулей, M завершит работу в состоянии S 1 , состоянии принятия, поэтому входная строка будет принята.

Язык, распознаваемый M, является регулярным языком, заданным регулярным выражением (1*) (0 (1*) 0 (1*))*, где * это звезда Клини , например, 1* обозначает любое количество (возможно, ноль) последовательных единиц.

Вариации

[ редактировать ]

Полный и неполный

[ редактировать ]

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

Хотя это наиболее распространенное определение, некоторые авторы используют термин «детерминированный конечный автомат» для несколько другого понятия: автомат, который определяет не более одного перехода для каждого состояния и каждого входного символа; функция перехода может быть частичной . [5] Если переход не определен, такой автомат останавливается.

Локальные автоматы

[ редактировать ]

Локальный автомат — это ДКА, не обязательно полный, у которого все ребра с одинаковой меткой ведут в одну вершину. Локальные автоматы принимают класс локальных языков , для которых принадлежность слова к языку определяется «скользящим окном» длины два на слове. [6] [7]

Граф Майхилла над алфавитом A — это ориентированный граф с множеством вершин A и подмножествами вершин, помеченными «начало» и «конец». Язык, принятый графом Майхилла, представляет собой набор направленных путей от начальной вершины до конечной вершины: таким образом, граф действует как автомат. [6] Класс языков, принимаемый графами Майхилла, — это класс локальных языков. [8]

Случайность

[ редактировать ]

Когда начальное состояние и состояния принятия игнорируются, DFA из n состояний и алфавита размера k можно рассматривать как орграф из n вершин, в котором все вершины имеют k исходящих дуг, помеченных 1, ..., k ( ak -внешний диграф). Известно, что когда k ≥ 2 — фиксированное целое число, с большой вероятностью наибольшая сильно связная компонента (SCC) в таком равномерно выбранном наугад k -out орграфе имеет линейный размер и достижима всеми вершинами. [9] Также было доказано, что если k разрешено увеличиваться с увеличением n , то весь орграф имеет фазовый переход для сильной связности, аналогичный модели Эрдеша – Реньи для связности. [10]

В случайном DFA максимальное количество вершин, достижимых из одной вершины, с высокой вероятностью очень близко к количеству вершин в наибольшем SCC . [9] [11] Это также верно для наибольшего индуцированного подграфа минимальной степени, который можно рассматривать как направленную версию 1 -core . [10]

Свойства замыкания

[ редактировать ]
Верхний левый автомат распознает язык всех двоичных строк, содержащих хотя бы одно вхождение «00». Правый нижний автомат распознает все двоичные строки с четным номером «1». Левый нижний автомат получается как произведение первых двух, он распознает пересечение обоих языков.

Если DFA распознают языки, полученные в результате применения операции к распознаваемым DFA языкам, то DFA считаются закрытыми в соответствии с этой операцией. ДФА закрываются при следующих операциях.

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

Как переходный моноид

[ редактировать ]

Выполнение данного ДКА можно рассматривать как последовательность композиций очень общей формулировки функции перехода с самой собой. Здесь мы создаем эту функцию.

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

Очевидно, что этот процесс можно рекурсивно продолжить, дав следующее рекурсивное определение :

, где пустая строка и
, где и .

определено для всех слов . Прогон DFA представляет собой последовательность композиций с самим собой.

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

Преимущества и недостатки

[ редактировать ]

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

  • дополнение языка, распознаваемое данным DFA.
  • объединение/пересечение языков, признаваемых двумя данными DFA.

Поскольку ДКА можно привести к канонической форме ( минимальные ДКА ), существуют также эффективные алгоритмы для определения:

  • принимает ли DFA какие-либо строки (проблема пустоты)
  • принимает ли DFA все строки (проблема универсальности)
  • признают ли два DFA один и тот же язык (проблема равенства)
  • включен ли язык, распознаваемый DFA, в язык, распознаваемый вторым DFA (проблема включения)
  • ДКА с минимальным количеством состояний для конкретного регулярного языка (задача минимизации)

DFA эквивалентны по вычислительной мощности недетерминированным конечным автоматам (NFA). Это связано с тем, что, во-первых, любой DFA также является NFA, поэтому NFA может делать то же, что и DFA. Кроме того, учитывая NFA, используя конструкцию powerset, можно построить DFA, который распознает тот же язык, что и NFA, хотя DFA может иметь экспоненциально большее количество состояний, чем NFA. [15] [16] Однако, несмотря на то, что NFA вычислительно эквивалентны DFA, вышеупомянутые проблемы не обязательно решаются эффективно и для NFA. Проблема неуниверсальности NFA является PSPACE-полной , поскольку существуют небольшие NFA с кратчайшим отклоняющим словом экспоненциального размера. DFA является универсальным тогда и только тогда, когда все состояния являются конечными состояниями, но это не относится к NFA. Проблемы равенства, включения и минимизации также являются PSPACE полными, поскольку они требуют формирования дополнения к NFA, что приводит к экспоненциальному увеличению размера. [17]

С другой стороны, автоматы с конечным числом состояний имеют строго ограниченную мощность на языках, которые они могут распознавать; многие простые языки, включая любую проблему, для решения которой требуется больше, чем постоянное пространство, не могут быть распознаны DFA. Классическим примером просто описанного языка, который не может распознать ни один DFA, является скобочный язык или язык Дика , т. е. язык, который состоит из правильно парных скобок, таких как слово «(()())». Интуитивно понятно, что ни один DFA не может распознать язык Дейка, потому что DFA не способен считать: автомату, подобному DFA, необходимо иметь состояние для представления любого возможного количества «открытых в данный момент» круглых скобок, а это означает, что ему потребуется неограниченное количество состояний. Другой более простой пример — язык, состоящий из строк вида a н б н но произвольного числа a для некоторого конечного , количество b , за которым следует такое же . [18]

Идентификация DFA по помеченным словам

[ редактировать ]

Дан набор позитивных слов и набор негативных слов можно построить ДКА, который принимает все слова из и отвергает все слова из : эта проблема называется DFA-идентификация (синтез, обучение).Хотя некоторые ДКА можно построить за линейное время, задача идентификации ДКА с минимальным числом состояний является NP-полной. [19] Первый алгоритм минимальной идентификации DFA был предложен Трахтенбротом и Барздином. [20] и называется ТБ-алгоритмом .Однако TB-алгоритм предполагает, что все слова из до заданной длины содержатся либо в .

Позднее К. Ланг предложил расширение ТБ-алгоритма, не использующее никаких предположений о и , алгоритм Traxbar . [21] Однако Traxbar не гарантирует минимальность построенного DFA.В своей работе [19] EM Gold также предложил эвристический алгоритм для минимальной идентификации DFA.Алгоритм Голда предполагает, что и содержать характерный набор регулярного языка; в противном случае построенный DFA будет несовместим либо с или .Другие известные алгоритмы идентификации DFA включают алгоритм RPNI, [22] основанный на доказательствах алгоритм объединения состояний Blue-Fringe, [23] и оконный-EDSM. [24] Еще одним направлением исследований является применение эволюционных алгоритмов : эволюционный алгоритм интеллектуальной маркировки состояний. [25] позволило решить модифицированную задачу идентификации DFA, в которой обучающие данные (наборы и ) зашумлен в том смысле, что некоторые слова относятся к неправильным классам.

Еще один шаг вперед был сделан благодаря использованию SAT решателей Марджином Дж. Хойле и С. Вервером: минимальная задача идентификации DFA сведена к определению выполнимости булевой формулы. [26] Основная идея состоит в том, чтобы построить акцептор расширенного префиксного дерева ( дерево, содержащее все входные слова с соответствующими метками) на основе входных наборов и уменьшить проблему поиска DFA с указывает на раскраску вершин дерева с помощью состояния таким образом, что при объединении вершин одного цвета в одно состояние сгенерированный автомат является детерминированным и соответствует и .Хотя этот подход позволяет найти минимальный DFA, он страдает от экспоненциального увеличения времени выполнения при увеличении размера входных данных.Поэтому первоначальный алгоритм Хойле и Вервера позже был дополнен выполнением нескольких шагов алгоритма EDSM перед выполнением решателя SAT: алгоритма DFASAT. [27] Это позволяет сократить пространство поиска задачи, но приводит к потере гарантии минимальности.Другой способ сокращения пространства поиска был предложен Ульянцевым и др. [28] с помощью новых предикатов нарушения симметрии, основанных на алгоритме поиска в ширину :искомые состояния DFA ограничены нумерацией в соответствии с алгоритмом BFS, запускаемым из исходного состояния. Этот подход уменьшает пространство поиска на путем исключения изоморфных автоматов.

Эквивалентные модели

[ редактировать ]

Правосторонние машины Тьюринга только для чтения

[ редактировать ]

Машины Тьюринга, движущиеся вправо только для чтения, представляют собой особый тип машины Тьюринга , которая движется только вправо; этипочти точно эквивалентны DFA. [29] Определение, основанное на единственной бесконечной ленте, представляет собой семикортеж

где

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

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

Пример машины Тьюринга с 3 состояниями и 2 символами только для чтения

[ редактировать ]
Текущее состояние А Текущее состояние Б Текущее состояние C
символ ленты Написать символ Переместить ленту Следующее состояние Написать символ Переместить ленту Следующее состояние Написать символ Переместить ленту Следующее состояние
0 1 Р Б 1 Р А 1 Р Б
1 1 Р С 1 Р Б 1 Н ОСТАНОВКА
, "пустой";
, пустой набор;
см. таблицу состояний выше;
, исходное состояние;
одноэлементный набор конечных состояний: .

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Jump up to: Перейти обратно: а б Хопкрофт 2001 г.
  2. ^ Маккалок и Питтс (1943)
  3. ^ Рабин и Скотт (1959)
  4. ^ Бай, Джина Р.; Кли, Брайан; Шреста, Нишал; Чепмен, Карл; Райт, Симоне; Столи, Кэтрин Т. (2019). «Изучение инструментов и стратегий, используемых при выполнении задач по составлению регулярных выражений» . В Геэнеке — Янн-Гаэль; Хомх, Футс; Сарро, Федерика (ред.). Материалы 27-й Международной конференции по программированию, ICPC 2019, Монреаль, Квебек, Канада, 25-31 мая 2019 г. IEEE/АКМ. стр. 197–208. дои : 10.1109/ICPC.2019.00039 .
  5. ^ Могенсен, Торбен Эгидиус (2011). «Лексический анализ». Введение в проектирование компилятора . Темы бакалавриата по информатике. Лондон: Спрингер. п. 12. дои : 10.1007/978-0-85729-829-4_1 . ISBN  978-0-85729-828-7 .
  6. ^ Jump up to: Перейти обратно: а б Лоусон (2004) стр.129
  7. ^ Сакарович (2009) стр.228
  8. ^ Лоусон (2004) стр.128
  9. ^ Jump up to: Перейти обратно: а б Грушо, А.А. (1973). «Предельные распределения некоторых характеристик случайных автоматных графов». Математические записки Академии наук СССР . 4 : 633–637. дои : 10.1007/BF01095785 . S2CID   121723743 .
  10. ^ Jump up to: Перейти обратно: а б Цай, Син Ши; Деврой, Люк (октябрь 2017 г.). «Структура графа случайно выбранного детерминированного автомата». Случайные структуры и алгоритмы . 51 (3): 428–458. arXiv : 1504.06238 . дои : 10.1002/rsa.20707 . S2CID   13013344 .
  11. ^ Карайоль, Арно; Нико, Сирил (февраль 2012 г.). Распределение числа доступных состояний в случайном детерминированном автомате . STACS'12 (29-й симпозиум по теоретическим аспектам информатики). Том. 14. Париж, Франция. стр. 194–205.
  12. ^ Джон Э. Хопкрофт и Джеффри Д. Ульман (1979). Введение в теорию автоматов, языки и вычисления . Ридинг/Массачусетс: Аддисон-Уэсли. ISBN  0-201-02988-Х .
  13. ^ Jump up to: Перейти обратно: а б с Роуз, Джин Ф. (1968). «Замыкания, сохраняющие конечность в семействах языков». Журнал компьютерных и системных наук . 2 (2): 148–168. дои : 10.1016/S0022-0000(68)80029-7 .
  14. ^ Jump up to: Перейти обратно: а б Спаниер, Э. (1969). «Грамматики и языки». Американский математический ежемесячник . 76 : 335–342. дои : 10.1080/00029890.1969.12000214 . JSTOR   2316423 . МР   0241205 .
  15. ^ Сакарович (2009) стр.105
  16. ^ Лоусон (2004) стр.63
  17. ^ Эспарса Эстаун, Франсиско Хавьер; Сикерт, Саломон; Блонден, Майкл (16 ноября 2016 г.). «Операции и тесты на множествах: реализация в DFA» (PDF) . Автоматы и формальные языки 2017/18 . Архивировано из оригинала (PDF) 8 августа 2018 года.
  18. ^ Лоусон (2004) стр.46
  19. ^ Jump up to: Перейти обратно: а б Золото, ЕМ (1978). «Сложность идентификации автоматов по заданным данным». Информация и контроль . 37 (3): 302–320. дои : 10.1016/S0019-9958(78)90562-4 .
  20. ^ Де Врис, А. (28 июня 2014 г.). Конечные автоматы: поведение и синтез . Эльзевир. ISBN  9781483297293 .
  21. ^ Ланг, Кевин Дж. (1992). «Случайные DFA можно приблизительно узнать из редких однородных примеров». Материалы пятого ежегодного семинара по теории вычислительного обучения - COLT '92 . стр. 45–52. дои : 10.1145/130385.130390 . ISBN  089791497X . S2CID   7480497 .
  22. ^ Ончина, Дж.; Гарсия, П. (1992). «Вывод регулярных языков за полиномиальное время обновления». Распознавание образов и анализ изображений . Серия «Машинное восприятие и искусственный интеллект». Том. 1. С. 49–61. дои : 10.1142/9789812797902_0004 . ISBN  978-981-02-0881-3 .
  23. ^ Ланг, Кевин Дж.; Перлмуттер, Барак А.; Прайс, Родни А. (1998). «Результаты конкурса обучения Abbadingo one DFA и новый алгоритм слияния состояний, основанный на фактических данных». Грамматический вывод (PDF) . Конспекты лекций по информатике. Том. 1433. стр. 1–12. дои : 10.1007/BFb0054059 . ISBN  978-3-540-64776-8 .
  24. ^ За пределами ЭДСМ | Материалы 6-го Международного коллоквиума по грамматическому выводу: алгоритмы и приложения . 23 сентября 2002 г. стр. 37–48. ISBN  9783540442394 .
  25. ^ Лукас, С.М.; Рейнольдс, Ти Джей (2005). «Изучение детерминированных конечных автоматов с помощью интеллектуального эволюционного алгоритма разметки состояний». Транзакции IEEE по анализу шаблонов и машинному интеллекту . 27 (7): 1063–1074. дои : 10.1109/TPAMI.2005.143 . ПМИД   16013754 . S2CID   14062047 .
  26. ^ Хойле, MJH (2010). «Точная идентификация DFA с использованием решателей SAT». Грамматический вывод: теоретические результаты и приложения . Грамматический вывод: теоретические результаты и приложения. ICGI 2010. Конспекты лекций по информатике. Конспекты лекций по информатике. Том. 6339. стр. 66–79. дои : 10.1007/978-3-642-15488-1_7 . ISBN  978-3-642-15487-4 .
  27. ^ Хойле, Марин Дж. Х .; Вервер, Сикко (2013). «Программный синтез модели с использованием решателей выполнимости» . Эмпирическая программная инженерия . 18 (4): 825–856. дои : 10.1007/s10664-012-9222-z . hdl : 2066/103766 . S2CID   17865020 .
  28. ^ Ульянцев Владимир; Закирзянов Илья; Шалыто, Анатолий (2015). «Предикаты нарушения симметрии на основе BFS для идентификации DFA». Теория и приложения языка и автоматов . Конспекты лекций по информатике. Том. 8977. стр. 611–622. дои : 10.1007/978-3-319-15579-1_48 . ISBN  978-3-319-15578-4 .
  29. ^ Дэвис, Мартин; Рон Сигал; Элейн Дж. Вейкер (1994). Второе издание: Вычислимость, сложность, языки и логика: основы теоретической информатики (2-е изд.). Сан-Диего: Academic Press, Harcourt, Brace & Company. ISBN  0-12-206382-1 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b5531f09ac99180e54d0f76b1ea3ab33__1721147700
URL1:https://arc.ask3.ru/arc/aa/b5/33/b5531f09ac99180e54d0f76b1ea3ab33.html
Заголовок, (Title) документа по адресу, URL1:
Deterministic finite automaton - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)