2009-12-04 2 views
2

Я знаю, что FSM может перейти к следующему состоянию и даже к текущему состоянию, то есть к состоянию, которое переходит к самому себе, но является ли законным переход состояния к предыдущему состоянию (переход состояния состояния C в состояние B)?Может ли конечный автомат перейти к предыдущему состоянию?

+0

связаны: http://stackoverflow.com/questions/1647631/c-state-machine-design – jldupont

ответ

9

Да, многие практические FSM на самом деле это сделают. Рассмотрим FSM, который идентифицирует допустимые строки числа, разделенные одним или несколькими пробелами. Это началось бы в «цифровом» состоянии и в какой-то момент переходило бы в «космическое» состояние, из которого он мог бы вернуться к состоянию «цифры».

+0

Не могли бы вы любезно предоставить источник для вашего ответа? – Brandon

+10

Тридцать лет опыта программирования? – 2009-12-04 11:33:42

+0

Фактически, есть примеры этого в любой книге теории автоматов. –

8

«Следующее состояние» FSM определяется как состояние, на котором машина будет переходить в следующий «срез времени» или когда приходит следующий вход, или что-то еще.

Таким образом, следующее состояние C может быть само C, B, A, D, ZORG или любым другим состоянием, которое у вас есть на машине. Алфавитные буквы не определяют, что было раньше и что дальше, а только логический поток FSM.

Это состояние машины со страницы Википедии:

SVG Image, use the link below if you can't view here
http://en.wikipedia.org/wiki/File:Finite_state_machine_example_with_comments.svg

Смежные вопросы