Не буду Вам явно подсказывать, а опишу немного иной пример. Мы его разбираем со студентами в рамках имитационного моделирования в Matlab.
Есть автомат по продаже проездных билетов. Такой автомат может быть описан в рамках теории конечных автоматов как автомат Мили или Мура.
Рассмотрим автомат Мили.
Для того, чтобы задать конечный детерминированный автомат, нужно:
1. задать конечное множество входов или входной алфавит
2. определить конечное множество состояний, которое может принимать автомат
3. задать конечное множество выходов - выходной алфавит
4. задать функцию переходов из состоянии в состояние под воздействием того или иного входа
5. задать функцию выходов - результат, который выдает автомат находящийся в том или ином состоянии.
Если переход в N_ое состояние зависит от нахождении автомата в некотором состояии и значение входного сигнала, т.е. z(t+1) = z(t) + x(t),
а выход описывается как y(t) = z(t) + x(t),
то мы имеем автомат Мили.
Пусть X = {1,2,5}
Z = {0,1,2,3,4}
Y = {0,1}
Т.е. на вход можно подать монеты достоинством 1, 2 и 5 рублей
Пока в автомате меньше 5 рублей, былите не выдается y=0
Как только сумма достигнет 5 рублей или выше - выдается билет и сдача
Таким образом автомат графически может быть изображен в виде 5 состояний. переход из состояния зависит от состояния и входного сигнала - моенты , которую поместили в монетоприемник.
Начальным состоянием может быть состояние с нулевым количеством в монетоприемнике.
При входе в состояние осуществляется действие увеличение счетчика монет, при выходе Y либо остается равным 0 - билет не выдается, либо y=1 билет выдан. Выдача билета будет происходить, если автомат находится в состоянии 4 и получает дополнительную монету, с переходом в состояние 0 (если предполагается выдача сдачи) или переходом в состояние равное количеству сдачи.
Тот же автомат можно смоделировать как автомат Мура, т.е. y(t) = z(t), ограничив количество состояний до двух:
1 состояние - денег не достаточно, билет не выдается
2 состояние - денег достаточно, билет выдается
Автомат будет находится в 1 состоянии пока общее количество денег будет меньше или равно 4, в противном случае перейдет в состояние выдачи билета и возможно сдачи , коли мы это определим
Событием перехода будет вброс монеты в монетоприемник
При моделировании в Matlab мы используем соединение (join). Однако реализовать задачу можно и по другому
Урок: опишите сначала состояния, не старайтесь их слишком дробить, выбирайте значимые для вашего условия состояния.
Определите список событий и значения входных сигналов, под воздействием которых автомат меняет состояния.
Определите условия переходов
Что будет выходом из каждого состояния и соответственно из автомата