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

Из Википедии, бесплатной энциклопедии

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

Теория автоматов — это изучение абстрактных машин и автоматов , а также вычислительных задач , которые можно решить с их помощью. Это теория теоретической информатики , тесно связанная с математической логикой . Слово «автоматы» происходит от греческого слова αὐτόματος, что означает «самодействующий, своевольный, самодвижущийся». Автомат (во множественном числе автоматы) — абстрактное самоходное вычислительное устройство, автоматически выполняющее заданную последовательность операций. Автомат с конечным числом состояний называется конечным автоматом (КА) или конечным автоматом (КАМ). На рисунке справа показан конечный автомат, который является широко известным типом автоматов. Этот автомат состоит из состояний (изображенных на рисунке кружками) и переходов (изображенных стрелками). Когда автомат видит входной символ, он осуществляет переход (или переход) в другое состояние в соответствии со своей функцией перехода , которая принимает в качестве аргументов предыдущее состояние и текущий входной символ.

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

История [ править ]

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

В 1956 году была опубликована книга « Исследования автоматов» , в которой собраны работы таких ученых, как Клод Шеннон , У. Росс Эшби , Джон фон Нейман , Марвин Мински , Эдвард Ф. Мур и Стивен Коул Клини . [4] С публикацией этого тома «теория автоматов превратилась в относительно автономную дисциплину». [5] Книга включала описание Клини набора регулярных событий или регулярных языков , а также относительно стабильную меру сложности программ для машин Тьюринга Шеннона. [6] В том же году Ноам Хомский описал иерархию Хомского — соответствие между автоматами и формальными грамматиками . [7] и Росс Эшби опубликовал «Введение в кибернетику» , доступный учебник, объясняющий автоматы и информацию с использованием базовой теории множеств .

Исследование линейных ограниченных автоматов привело к теореме Майхилла – Нерода : [8] которое дает необходимое и достаточное условие регулярности формального языка, а также точный подсчет числа состояний в минимальной машине для этого языка. Лемма о накачке для регулярных языков , также полезная в доказательствах регулярности, была доказана в этот период Майклом О. Рабином и Даной Скотт , наряду с вычислительной эквивалентностью детерминированных и недетерминированных конечных автоматов. [9]

В 1960-х годах появился корпус алгебраических результатов, известных как «теория структуры» или «теория алгебраической декомпозиции», которые касались реализации последовательных машин из меньших машин путем соединения. [10] Хотя любой конечный автомат можно смоделировать с помощью универсального набора вентилей , для этого требуется, чтобы моделирующая схема содержала циклы произвольной сложности. Теория структуры имеет дело с реализуемостью машин «без петель». [5] Теория вычислительной сложности также сформировалась в 1960-х годах. [11] [12] К концу десятилетия теория автоматов стала рассматриваться как «чистая математика информатики». [5]

Автоматы [ править ]

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

Неофициальное описание [ править ]

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

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

Формальное определение [ править ]

Автомат
Автомат формально можно представить пятеркой . , где:
  • — конечное множество символов , называемое входным алфавитом автомата,
  • — другой конечный набор символов, называемый выходным алфавитом автомата,
  • представляет собой совокупность состояний ,
  • это функция следующего состояния или функция перехода отображение пар состояние-вход в состояния-преемники,
  • это функция следующего вывода сопоставление пар состояние-вход с выходами.
Если конечно, то является конечным автоматом . [5]
Введите слово
Автомат считывает конечную строку символов. , где , которое называется входным словом . Множество всех слов обозначается .
Бегать
Последовательность состояний , где такой, что для , представляет собой запуск автомата по входу начиная с состояния . Другими словами, сначала автомат находится в стартовом состоянии. и получает входные данные . Для и каждый следующий во входной строке автомат выбирает следующее состояние по функции перехода , до последнего символа был прочитан, оставив машину в конечном состоянии работы, . Аналогично на каждом шаге автомат выдает выходной символ в соответствии с выходной функцией. .
Функция перехода индуктивно продолжается в для описания поведения машины при вводе целых входных слов. Для пустой строки , для всех штатов и для строк где это последний символ и это (возможно, пустая) оставшаяся часть строки, . [10] Выходная функция может быть расширено аналогичным образом на , который дает полный вывод машины при запуске по слову из штата .
Акцептор
Для изучения автомата с помощью теории формальных языков автомат можно рассматривать как акцептор , заменяя выходной алфавит и функцию и с
  • , назначенное начальное состояние и
  • , набор состояний (т.е. ), называемые состояниями принятия .
Это позволяет определить следующее:
Принятие слова
Слово является принимающим словом для автомата, если , то есть, если после использования всей строки машина находится в состоянии принятия.
Признанный язык
Язык распознаваемый автоматом – это совокупность всех слов, которые принимает автомат, . [13]
Узнаваемые языки
Распознаваемые языки — это набор языков, распознаваемых некоторым автоматом. Для конечных автоматов распознаваемыми языками являются регулярные языки . Для разных типов автоматов распознаваемые языки разные.

Варианты определений автоматов [ править ]

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

Вход
  • Конечный ввод : автомат, который принимает только конечные последовательности символов. Приведенное выше вводное определение охватывает только конечные слова.
  • Бесконечный ввод : автомат, который принимает бесконечные слова ( ω-слова ). Такие автоматы называются ω-автоматами .
  • Ввод дерева : входными данными может быть дерево символов , а не последовательность символов. В этом случае после чтения каждого символа автомат считывает все последующие символы во входном дереве. Говорят, что автомат делает одну копию самого себя для каждого преемника, и каждая такая копия начинает работать на одном из символов-последователей из состояния в соответствии с отношением перехода автомата. Такой автомат называется древовидным автоматом .
  • Ввод бесконечного дерева : два вышеуказанных расширения можно комбинировать, чтобы автомат считывал древовидную структуру с (не)конечными ветвями. Такой автомат называется автоматом бесконечного дерева .
состояния
  • Одно состояние : автомат с одним состоянием, также называемый комбинационной схемой , выполняет преобразование, которое может реализовать комбинационную логику . [10]
  • Конечные состояния : автомат, который содержит только конечное число состояний.
  • Бесконечные состояния : автомат, который может не иметь конечного или даже счетного числа состояний. Чтобы дать таким машинам конечные описания, можно использовать различные виды абстрактной памяти.
  • Память стека : автомат также может содержать некоторую дополнительную память в виде стека, в который можно помещать и извлекать символы. Этот тип автомата называется автоматом с выталкиванием .
  • Память очереди : Автомат может иметь память в виде очереди . Такая машина называется машиной очереди и является Тьюринг-полной.
  • Ленточная память : входы и выходы автоматов часто описываются как ленты ввода и вывода . Некоторые машины имеют дополнительные рабочие ленты , включая машину Тьюринга , линейный ограниченный автомат и преобразователь лог-пространства .
Функция перехода
  • Детерминированный : для данного текущего состояния и входного символа, если автомат может перейти только в одно и только одно состояние, то это детерминированный автомат .
  • Недетерминированный : автомат, который после считывания входного символа может перейти в любое из нескольких состояний в соответствии с его отношением перехода. Термин «функция перехода» заменяется отношением перехода: автомат недетерминированным образом решает перейти к одному из разрешенных вариантов. Такие автоматы называются недетерминированными автоматами .
  • Чередование : эта идея очень похожа на древовидные автоматы, но ортогональна. Автомат может запустить несколько своих копий для одного и того же следующего символа чтения. Такие автоматы называются альтернирующими автоматами . условие принятия должно быть удовлетворено во всех запусках таких копий . Чтобы принять входные данные,
  • Двусторонность : автоматы могут считывать вводимые данные слева направо или им может быть разрешено перемещаться вперед и назад по вводу, аналогично машине Тьюринга . Автоматы, которые могут двигаться вперед и назад на входе, называются двусторонними конечными автоматами .
Условие приемки
  • Принятие конечных слов : То же, что описано в неформальном определении выше.
  • Принятие бесконечных слов : ω-автомат не может иметь конечных состояний, поскольку бесконечные слова никогда не заканчиваются. Скорее, принятие слова определяется путем рассмотрения бесконечной последовательности посещенных состояний во время прогона.
  • Вероятностное принятие : автомату не обязательно строго принимать или отклонять входные данные. Он может принять входные данные с некоторой вероятностью от нуля до единицы. Например, квантовые конечные автоматы , геометрические автоматы и метрические автоматы имеют вероятностное принятие.

Различные комбинации указанных выше вариантов дают множество классов автоматов.

Теория автоматов — это предмет, изучающий свойства различных типов автоматов. Например, о данном типе автоматов изучаются следующие вопросы.

  • Какой класс формальных языков распознается автоматами того или иного типа? (Узнаваемые языки)
  • ли определенные автоматы Закрыты относительно объединения, пересечения или дополнения формальных языков? (Свойства замыкания)
  • Насколько выразителен тип автоматов с точки зрения распознавания класса формальных языков? И их относительная выразительная сила? (Языковая иерархия)

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

  • Принимает ли автомат хотя бы одно входное слово? (проверка пустоты)
  • Можно ли преобразовать данный недетерминированный автомат в детерминированный автомат без изменения распознаваемого языка? (Определение)
  • Какой наименьший автомат распознает данный формальный язык? ( Минимизация )

Виды автоматов [ править ]

Ниже приводится неполный список типов автоматов.

Автомат Узнаваемые языки
Недетерминированный/детерминированный конечный автомат (FSM) обычные языки
Детерминированный автомат с понижением уровня (DPDA) детерминированные контекстно-свободные языки
Нажимной автомат (КПК) контекстно-свободные языки
Линейный ограниченный автомат (LBA) контекстно-зависимые языки
Машина Тьюринга рекурсивно перечислимые языки
Детерминированный автомат Бюхи ω-предельные языки
Недетерминированный автомат Бюхи ω-регулярные языки
Автомат Рабина , автомат Стритта , автомат четности , автомат Мюллера
Взвешенный автомат

и гибридные автоматы Дискретные , непрерывные

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

Иерархия полномочий [ править ]

Ниже представлена ​​неполная иерархия полномочий различных типов виртуальных машин. Иерархия отражает вложенные категории языков, которые могут принимать машины. [14]

Автомат
Детерминированный конечный автомат (DFA) — наименьшая степень

(та же мощность) (та же мощность)
Недетерминированный конечный автомат (NFA)
(выше слабее) (ниже сильнее)
Детерминированный автомат с нажатием вниз (DPDA-I)
с 1 выдвижным магазином

Недетерминированный автомат с нажатием вниз (NPDA-I)
с 1 выдвижным магазином

Линейный ограниченный автомат (LBA)

Детерминированный автомат с нажатием вниз (DPDA-II)
с 2 выдвижными магазинами

Недетерминированный автомат с нажатием вниз (NPDA-II)
с 2 выдвижными магазинами

Детерминированная машина Тьюринга (DTM)

Недетерминированная машина Тьюринга (НТМ)

Вероятностная машина Тьюринга (ПТМ)

Многоленточная машина Тьюринга (МТМ)

Многомерная машина Тьюринга

Приложения [ править ]

Каждая модель теории автоматов играет важную роль в нескольких прикладных областях. Конечные автоматы используются в обработке текста , компиляторах и проектировании аппаратного обеспечения . Контекстно-свободная грамматика (CFG) используется в языках программирования и искусственном интеллекте. Первоначально CFG использовались при изучении человеческих языков . Клеточные автоматы используются в области искусственной жизни , наиболее известным примером является » Джона Конвея «Игра жизни . Некоторые другие примеры, которые можно объяснить с помощью теории автоматов в биологии, включают модели роста и пигментации моллюсков и сосновых шишек. Идя дальше, некоторые ученые отстаивают теорию, предполагающую, что вся Вселенная вычисляется неким дискретным автоматом. Идея возникла в работах Конрада Цузе и была популяризирована в Америке Эдвардом Фредкиным . Автоматы появляются и в теории конечных полей : множество неприводимых многочленов , которые можно записать как композицию многочленов второй степени, на самом деле является регулярным языком. [15] Другая задача, для решения которой можно использовать автоматы, — это индукция регулярных языков .

Симуляторы автоматов [ править ]

Симуляторы автоматов — это педагогические инструменты, используемые для преподавания, изучения и исследования теории автоматов. Симулятор автомата принимает на вход описание автомата, а затем моделирует его работу для произвольной входной строки. Описание автомата можно ввести несколькими способами. Автомат можно определить на символьном языке , его спецификацию можно ввести в заранее заданной форме, или диаграмму его переходов можно нарисовать, щелкнув и перетащив мышь. Хорошо известные симуляторы автоматов включают Turing's World, JFLAP, VAS, TAGS и SimStudio. [16]

Теоретико-категорные модели [ править ]

Можно определить несколько различных категорий автоматов. [17] следуя классификации автоматов на разные типы, описанной в предыдущем разделе. Математическая категория детерминированных автоматов, последовательных машин или последовательных автоматов и машин Тьюринга с гомоморфизмами автоматов , определяющими стрелки между автоматами, является декартовой замкнутой категорией , [18] он имеет как категориальные пределы , так и копределы . Гомоморфизм автоматов отображает пятерку автомата A i на пятерку другого автомата А Дж . Гомоморфизмы автоматов также можно рассматривать как преобразования автоматов или как гомоморфизмы полугрупп , когда пространство состояний S автомата определяется как полугруппа S g . Моноиды также считаются подходящей средой для автоматов в моноидальных категориях . [19] [20] [21]

Категории переменных автоматов

Можно также определить переменный автомат в смысле Норберта Винера в его книге « Человеческое использование человеческих существ» через эндоморфизмы. . Тогда можно показать, что такие гомоморфизмы переменных автоматов образуют математическую группу. Однако в случае недетерминированных или других сложных видов автоматов последний набор эндоморфизмов может стать переменным автоматным группоидом . Поэтому в самом общем случае категории переменных автоматов любого вида являются категориями группоидов или категориями группоидов . Более того, категория обратимых автоматов тогда является 2-категория , а также подкатегория 2-категории группоидов, или категория группоидов.

См. также [ править ]

Ссылки [ править ]

  1. ^ Махони, Майкл С. «Структуры вычислений и математическая структура природы» . Резерфордский журнал . Проверено 7 июня 2020 г.
  2. ^ Бут, Тейлор (1967). Последовательные машины и теория автоматов . Нью-Йорк: Джон Уайли и сыновья. п. 1-13. ISBN  0-471-08848-Х .
  3. ^ Эшби, Уильям Росс (15 января 1967 г.). «Место мозга в мире природы» (PDF) . Течения в современной биологии . 1 (2): 95–104. дои : 10.1016/0303-2647(67)90021-4 . ПМИД   6060865 . Архивировано из оригинала (PDF) 4 июня 2023 г. Проверено 29 марта 2021 г. : «Теории, в настоящее время хорошо развитые, о «конечном автомате» (Гилл, 1962), о «бесшумном преобразователе» (Шеннон и Уивер, 1949), о «системе, определяемой состоянием» (Эшби, 1952). и «последовательной цепи» по существу гомологичны».
  4. ^ Эшби, WR; и другие. (1956). CE Шеннон; Дж. Маккарти (ред.). Исследования автоматов . Принстон, Нью-Джерси: Издательство Принстонского университета.
  5. ^ Перейти обратно: а б с д Это Арбиб, Майкл (1969). Теории абстрактных автоматов . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл.
  6. ^ Ли, Мин; Пол, Витаний (1997). Введение в колмогоровскую сложность и ее приложения . Нью-Йорк: Springer-Verlag. п. 84.
  7. ^ Хомский, Ноам (1956). «Три модели описания языка» (PDF) . IRE Транзакции по теории информации . 2 (3): 113–124. дои : 10.1109/TIT.1956.1056813 . S2CID   19519474 . Архивировано (PDF) из оригинала 7 марта 2016 г.
  8. ^ Нерод, А. (1958). «Линейные автоматные преобразования» . Труды Американского математического общества . 9 (4): 541. doi : 10.1090/S0002-9939-1958-0135681-9 .
  9. ^ Рабин, Майкл ; Скотт, Дана (апрель 1959 г.). «Конечные автоматы и проблемы их решения» (PDF) . Журнал исследований и разработок IBM . 3 (2): 114–125. дои : 10.1147/рд.32.0114 . Архивировано из оригинала 14 декабря 2010 г. {{cite journal}}: CS1 maint: неподходящий URL ( ссылка )
  10. ^ Перейти обратно: а б с Хартманис, Дж .; Стернс, RE (1966). Алгебраическая структурная теория последовательных машин . Энглвуд Клиффс, Нью-Джерси: Прентис-Холл.
  11. ^ Хартманис, Дж.; Стернс, RE (1964). «Вычислительная сложность рекурсивных последовательностей» (PDF) .
  12. ^ Пока, Лэнс; Гомер, Стив (2002). «Краткая история сложности вычислений» (PDF) .
  13. ^ Мур, Кристофер (31 июля 2019 г.). «Автоматы, языки и грамматики». arXiv : 1907.12713 [ cs.CC ].
  14. ^ Ян, Сун Ю. (1998). Введение в формальные языки и машинные вычисления . Сингапур: World Scientific Publishing Co. Pte. ООО, стр. 155–156. ISBN  978-981-02-3422-5 .
  15. ^ Феррагути, А.; Микели, Г.; Шнайдер, Р. (2018), Неприводимые композиции полиномов второй степени над конечными полями имеют регулярную структуру , Ежеквартальный журнал математики, том. 69, Oxford University Press, стр. 1089–1099, arXiv : 1701.06040 , doi : 10.1093/qmath/hay015 , S2CID   3962424
  16. ^ Чакраборти, П.; Саксена, ПК; Катти, CP (2011). «Пятьдесят лет автоматического моделирования: обзор» . ACM Inroads . 2 (4): 59–70. дои : 10.1145/2038876.2038893 . S2CID   6446749 .
  17. ^ Иржи Адамек и Вера Трнкова . 1990. Автоматы и алгебры в категориях . Академические издательства Kluwer: Дордрехт и Прага.
  18. ^ Мак Лейн, Сондерс (1971). Категории для работающего математика . Нью-Йорк: Спрингер. ISBN  978-0-387-90036-0 .
  19. ^ http://www.math.cornell.edu/~worthing/asl2010.pdf Джеймс Уортингтон.2010.Определение, забывание и автоматы в моноидальных категориях. Ежегодное собрание ASL в Северной Америке, 17 марта 2010 г.
  20. ^ Агиар, М. и Махаджан, С.2010. «Моноидальные функторы, виды и алгебры Хопфа» .
  21. ^ Месегер, Дж., Монтанари, У.: 1990 Сети Петри являются моноидами. Информация и вычисления 88 : 105–155.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]