Примеры конечных автоматов

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

Пример 1. Дано. Организм, возбуждается двумя стимулами: «положительным» и «отрицательным». Организм не реагирует на отрицательный стимул и реагирует на чередование положительных стимулов.

X = {положительный стимул, отрицательный стимул},

Z = {реакция, нет реакции},

S = {реакция на последний положительный стимул, нет реакции на последний положительный стимул}.

При состоянии в настоящий момент — «реакция на последний положительный стимул» и входе — «положительный стимул» появляется выход — «нет реакции» и следующее состояние — «нет реакции на последний положительный стимул». При состоянии системы в настоящий момент «нет реакции на последний положительный стимул» и входе «положительный стимул» появляется выход «реакция» и следующее состояние «реакция на последний положительный стимул». При входе «отрицательный стимул» появляется выход «нет реакции», независимо от состояния в настоящий момент, а состояние системы не изменяется.

Пример 2. Дано. Английский текст, составленный из 26 букв алфавита и пропусков, просматривается с целью подсчета числа слов, начинающихся с ил и кончающихся на d (таких, как «understand», «united» и т. д.). Для простоты пропуски обозначим буквой π, а все другие буквы, кроме d, n и u, —буквой λ.

X={ d, n, u, π, λ},

Z= {считать, не считать},

S= {новое слово, ждать нового слова, появление u,

появление u - n, появление u-n-d).

При входе π появляется состояние в следующий момент «новое слово», независимо от существующего состояния. При существующем в настоящий момент состоянии «появление u-n-d» и входе л появляется выход «считать»; во всех остальных случаях появляется выход «не считать». При настоящем состоянии «новое слово» и входе и наступает следующее состояние «появление и», а при входе d, n или λ — следующее состояние «ждать нового слова». При настоящем состоянии «появление и» и входе n состояние в следующий момент будет «появление и - n», а при входе d, u или λ — состояние в следующий момент будет «ждать нового слова». Если состояние в настоящий момент «появление u - n» или «появление u-n-d» при входе d, то в следующий момент наступает состояние «появление u-n-d», а при входе n, u или λ состояние «появление u - n». Состояние «ждать нового слова» при входе, отличном от я, остается неизменным.

Пример 3. Дано. Вращение колеса, приводимого в движение двигателем, определяется двухпозиционным ключом; правое положение ключа соответствует вращению в направлении по часовой стрелке,,левое — против часовой стрелки. В момент изменения направления вращения вспыхивает индикаторная лампа.

X = {справа, слева},

Z= {лампа включена, лампа выключена},

S= {по часовой стрелке, против часовой стрелки}.

При состоянии в настоящий момент «по часовой стрелке» и входе «справа» или при состоянии в настоящий момент «против часовой стрелки» и входе «слева» состояние остается неизменным и имеется выход «лампа выключена». При состоянии в настоящий момент «по часовой стрелке» и входе «слева» или при состоянии в настоящий момент «против часовой стрелки» и входе «справа» состояние изменяется и появляется выход «лампа включена».

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: