Степан Митькин писал(а):
"Сцепленность" автоматов означает, что по смыслу переменных две, но их значения засунуты в одну.
Владимир Паронджанов писал(а):
Есть ли на этот счет какое-нибудь формальное или полуформальное правило? Правило, позволяющее выяснить, является ли автомат "сцепленным"?
Правило, которое позволяет забраковать данный автомат, потому что он является "сцепленным".
Степан Митькин писал(а):
Формального правила я не знаю.
Может, оно и есть. Специалисты по автоматному программированию его, наверное, знают.
Сам пользуюсь следующими двумя неформальными правилами.
1. Количество состояний
Если количество состояний больше 7-9,
возможно, имеет смысл разбить автомат на несколько.
2. Повторы в именах состояний.
Если в именах состояний есть повторяющиеся части,
возможно имеет смысл разбить автомат на несколько.
Пример. Есть список состояний:
1. Работа от сети.
2. Подтверждение отключения сети.
3. Запуск генератора.
4. Подтверждение подключения сети при запуске генератора.
5. Работа от генератора.
6. Подтверждение подключения сети при работе генератора.
7. Аварийное состояние.
8. Подтверждение подключения сети при аварийном состояни.
Видим, что "Подтверждение подключения сети" повторяется 3 раза.
Это сигнал, что имеются сцепленные автоматы.
Алгоритм
Как построить конечный автоматВложение:
20171030065455.png [ 63.08 КБ | Просмотров: 4014 ]