Конечный автомат
Коне́чный автома́т — в теории алгоритмов, математическая абстракция, позволяющая описывать пути изменения состояния объекта в зависимости от его текущего состояния и входных данных, при условии что общее возможное количество состояний конечно. Конечный автомат является частным случаем абстрактного автомата. Конечный автомат может быть детерминированным или недетерминированным, в зависимости от того, имеется ли один или несколько вариантов его поведения на каком-то шаге.
Формально конечный автомат определяется как пятёрка:
,
где
- K — конечное множество состояний автомата,
- — единственно допустимое начальное состояние автомата,
- — множество конечных состояний, причём допустимо F = Ø, и F = K,
- Σ — допустимый входной алфавит, из которого формируются строки, считываемые автоматом,
- — функция переходов.
Автомат начинает работу в состоянии s, считывая по одному символы входной строки. Считанный символ переводит автомат в новое состояние из K, в соответствии с функцией переходов. Процесс продолжается до тех пор, пока не будет достигнуто одно из состояний F.
Виды[править | править код]
Конечный автомат M называется обратимым, если существует конечный автомат M1, такой, что по описанию автомата M, его начальному состоянию и произвольному выходному слову автомата M автомат M1 однозначно определяет входное слово.[1]
Зеркальный автомат — это автомат, в графе состояний которого направление стрелок, помеченных буквами входного алфавита, изменено на обратное, а входящие состояния заменены на допускающие, а допускающие на входящие состояния.[2]
Ссылки[править | править код]
- ↑ В. А. Орлов, В. А. Конявский. Общеавтоматное шифрование.
- ↑ Н. И. Крайнюков. Обратимые конечные автоматы и условия вложения полугруппы в группу