2016-02-16 37 views
0

發佈somewhat ambiguous question之後,我相信我已經確定了我在想什麼(我是FSM中的一名完全新手)。有限的可能非確定性狀態機持續時間

我想在clojure中使用有限狀態機(可能是非確定性自動機,即允許多個下一狀態轉換)來模擬狀態空間。

這主要是我的問題:

假設我們有這些國家Q={flying,cycling,running,driving},我們在D={120,30,30,60}平均每天爲每個狀態的持續時間 - 用於參數的緣故這些都是以分鐘爲單位。那麼如何使用clojure創建一個可能非確定性的FSM(允許多個目標狀態)?我看過例如https://github.com/cdorrat/reduce-fsmhttps://github.com/ztellman/automat但我不相信這是我想要的。

我的最終目標是獲得類似於S = {flying,flying,flying,flying,flying,cycling,cycling,running,driving,driving,driving}的模擬。

在狀態機中有效地引發嚴重的自我轉換偏差。結束和開始狀態並不重要。

+0

你的問題對我來說似乎仍然很模糊。當你說「每分鐘的狀態持續時間」,我不清楚爲什麼這是相關的,他們不加起來24 * 60,所以沒有其他一些代表剩餘時間?或者你有很大的差異?此外,我不清楚在什麼基礎上決定何時更改州(例如每30分鐘)?或者你想如何選擇替代國家? –

回答

0

這個問題沒有完全明確地提出來明確回答。總之: 如果你只是想承認國家的特定序列,則可以使用有限自動機,你將不得不寫他們的順序,如:

flying -> flying -> flying -> flying -> flying -> cycling -> cycling -> running -> driving -> driving -> driving 

在那裏我考慮到過渡是由你引用的持續時間引起的。

但是,我懷疑你可能需要更詳細的說明。那在這裏不能詳細闡述。在我看來,如果這是爲了編程的目的,我建議你使用UML的狀態機圖。他們足夠強大,可以解決您的問題。