Введение
Теория автоматов – это изучение абстрактных машин и автоматов, а также вычислительных задач, которые могут быть решены с их помощью. Это теория в теоретической информатике, тесно связанная с математической логикой. Слово «автомат» происходит от греческого слова αὐτόματος, что означает «самодействующий, самовольный, самодвижущийся». Автомат (автоматы во множественном числе) – это абстрактное самодвижущееся вычислительное устройство, автоматически выполняющее предопределённую последовательность операций. Автомат с конечным числом состояний называется конечным автоматом (FA) или машиной с конечным числом состояний (FSM). На рисунке справа изображена машина с конечным числом состояний, являющаяся хорошо известным типом автомата. Этот автомат состоит из состояний (представленных на рисунке кругами) и переходов (представленных стрелками). При получении символа входных данных автомат совершает переход (или скачок) в другое состояние в соответствии со своей функцией перехода, которая принимает предыдущее состояние и текущий входной символ в качестве аргументов. Теория автоматов тесно связана с теорией формальных языков. В этом контексте автоматы используются как конечные представления формальных языков, которые могут быть бесконечными. Автоматы часто классифицируются по классу формальных языков, которые они способны распознавать, как, например, в иерархии Чомского, описывающей отношения вложенности между основными классами автоматов. Автоматы играют важную роль в теории вычислений, построении компиляторов, искусственном интеллекте, синтаксическом анализе и формальной верификации.
Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory in theoretical computer science with close connections to mathematical logic. The word automata comes from the Greek word αὐτόματος, which means "self acting, self willed, self moving". An automaton (automata in plural) is an abstract self propelled computing device which follows a predetermined sequence of operations automatically. An automaton with a finite number of states is called a finite automaton (FA) or finite state machine (FSM). The figure on the right illustrates a finite state machine, which is a well known type of automaton. This automaton consists of states (represented in the figure by circles) and transitions (represented by arrows). As the automaton sees a symbol of input, it makes a transition (or jump) to another state, according to its transition function, which takes the previous state and current input symbol as its arguments. Automata theory is closely related to formal language theory. In this context, automata are used as finite representations of formal languages that may be infinite. Automata are often classified by the class of formal languages they can recognize, as in the Chomsky hierarchy, which describes a nesting relationship between major classes of automata. Automata play a major role in the theory of computation, compiler construction, artificial intelligence, parsing and formal verification.
История
Теория абстрактных автоматов была разработана в середине 20-го века в связи с конечными автоматами. Теория автоматов изначально рассматривалась как отрасль теории математических систем, изучающая поведение систем с дискретными параметрами. Ранние работы в теории автоматов отличались от предшествующих исследований систем тем, что для описания информационных систем использовалась абстрактная алгебра, а не дифференциальное исчисление для описания материальных систем. Теория конечных преобразователей была разработана под разными названиями различными исследовательскими группами. Более ранняя концепция машины Тьюринга также была включена в эту дисциплину вместе с новыми формами автоматов с бесконечным числом состояний, такими как автоматы с магазинной памятью. В 1956 году было опубликовано издание «Исследования автоматов», в котором были собраны работы ученых, включая Клода Шеннона, У. Росса Эшби, Джона фон Неймана, Марвина Мински, Эдварда Ф. Мура и Стивена Коула Клини. С публикацией этого тома «теория автоматов оформилась как относительно самостоятельная дисциплина». В том же году Ноам Хомский описал иерархию Хомского – соответствие между автоматами и формальными грамматиками, а Росс Эшби опубликовал «Введение в кибернетику» – доступный учебник, объясняющий автоматы и информацию с использованием базовой теории множеств. Изучение линейно ограниченных автоматов привело к теореме Майхилла — Нерода, которая дает необходимое и достаточное условие для регулярности формального языка, а также точное определение количества состояний в минимальном автомате для этого языка. Лемма о накачке для регулярных языков, также полезная при доказательстве регулярности, была доказана в этот период Майклом О. Рабином и Даной Скотт вместе с вычислительной эквивалентностью детерминированных и недетерминированных конечных автоматов. В 1960-х годах сформировался комплекс алгебраических результатов, известный как «теория структуры» или «теория алгебраического разложения», который рассматривал реализацию последовательных машин из меньших машин посредством соединения. Хотя любой конечный автомат может быть смоделирован с использованием универсального набора логических элементов, для этого требуется, чтобы имитирующая схема содержала петли произвольной сложности. Теория структуры занимается «беспетлевой» реализуемостью машин. К концу десятилетия теория автоматов стала рассматриваться как «чистая математика информатики».
Приложения
Каждая модель в теории автоматов играет важную роль в нескольких прикладных областях. Конечные автоматы используются в обработке текста, компиляторах и разработке аппаратного обеспечения. Контекстно-свободные грамматики (CFG) применяются в языках программирования и искусственном интеллекте. Изначально CFG использовались при изучении естественных языков. Клеточные автоматы находят применение в области искусственной жизни, наиболее известным примером является "Игра жизни" Джона Конвея. Другие примеры, которые можно объяснить с помощью теории автоматов в биологии, включают рост моллюсков и шишек сосны, а также формирование пигментных узоров. Более того, некоторые ученые поддерживают теорию о том, что вся Вселенная вычисляется неким дискретным автоматом. Эта идея берет начало в работах Конрада Цузе и получила распространение в Америке благодаря Эдварду Фредкину. Автоматы также встречаются в теории конечных полей: множество неприводимых многочленов, представимых в виде композиции многочленов второй степени, фактически является регулярным языком. Еще одна задача, для решения которой можно использовать автоматы, – индукция регулярных языков.
Симуляторы автоматов
Симуляторы автоматов — это педагогические инструменты, используемые для обучения, изучения и проведения исследований в области теории автоматов. Симулятор автомата принимает на вход описание автомата и затем моделирует его работу для произвольной входной строки. Описание автомата можно ввести несколькими способами. Автомат может быть задан на символическом языке, либо его спецификация может быть введена в предопределенную форму, либо его диаграмма переходов может быть построена путем перетаскивания мышью. К известным симуляторам автоматов относятся Turing's World, JFLAP, VAS, TAGS и SimStudio.