在工作中,我們使用FSM。最近,我必須設計FSM來解決我認爲「對於簡單的FSM來說太複雜」的問題。爲什麼?由於該問題具有大約6個不同的數據維度,並且該數據的許多排列顯着影響解決方案的行爲。如果全部是布爾數據,我的大腦會認爲「6個數據屬性意味着這個數據的2^6 +1排列」。此外,在任何給定的時間內,大約有8個輸入可能發生。什麼是設計複雜FSM的方法?
這個問題讓我意識到,我的FSM創造技能停止在我的愛好項目中使用的簡單問題。在工作中,我們被限制使用FSM。這意味着,我不能說「這個問題不在FSM的範圍之內,我會用其他的東西。」事實上,我們現有的FSM平臺確實爲我們的解決方案提供了大量的功能。
問題:當問題足夠複雜時,什麼是設計FSM的方法?我在這方面進行了一些研究,並發現了一些論文,說實話,這些論文對我沒有多大幫助。我希望這有一些最佳實踐,我要求的只有一個。請和謝謝。
我想你的意思是[有限狀態機](https://en.wikipedia.org/wiki/Finite-state_machine),而不是許多其他FSM中的一個,例如[Flying Spaghetti Monster](https:// en.wikipedia.org/wiki/Flying_Spaghetti_Monster)。或[糞便污泥管理](https://en.wikipedia.org/wiki/Septage).... –
無論如何,這個問題對於SO來說太廣泛了。它可能更適合[程序員SE](http://programmers.stackexchange.com/),但如果你決定在那裏擺姿勢,那麼請在這裏刪除它。 –
如果FSM意味着「有限狀態機」,那麼我的答案將是一般的:FSM就像其他任何編程語言一樣。你如何爲複雜任務設計FSM?你如何吃大象? – Patrick87