lts
1.0.0
作者:恩里科·特羅姆貝塔、弗朗西斯科·佩羅內
在理論計算機科學中,過渡系統是計算研究中使用的概念。它用於描述離散系統的潛在行為。它由狀態和狀態之間的轉換組成,可以用從一組中選擇的標籤來標記它們;同一標籤可能出現在多個轉換上。如果標籤集是單例,則係統本質上是無標籤的,並且省略標籤的更簡單的定義是可能的。
取自維基百科。
這是我開始研究的場景:
問題涉及兩名特工,哈爾和卡拉。哈爾患有糖尿病,他意外失去了胰島素,迫切需要服用一些藥物來維持生命。他沒有足夠的時間購買新的胰島素,但他知道卡拉在家裡放了一些胰島素,就在附近。哈爾無權進入卡拉的財產,此外哈爾知道卡拉也患有糖尿病,他可能會因為奪走她的供應而將她的生命置於危險之中。另一方面,哈爾相信卡拉稍後可以購買一些胰島素。
關於此場景的簡要討論可以在notes/LTS_insulin.pdf
中找到(LaTex 原始碼位於src
資料夾下)。
Prolog 中的src/LTS.pl
中提供了實作草圖(特別是,我們決定採用 SWI Prolog)。
若要呼叫路徑,請在解釋器中載入知識庫,載入初始狀態並執行路徑。
例如:
?- [LTS].
initial_state ( InitialState ), path( InitialState , Path ) .
InitialState = . ..
Path = . ..
[And a bunch of alternative paths]
true .
?- initial_state(InitialState), export_tree("tree.csv", InitialState).
InitialState = . ..
true .
後一個指令應該寫下每個路徑的 csv 清單。該格式記錄在src/LTS.pl
中,但應該(希望)非常簡單。
里程碑:
[ ] 完成樹功能的LTS實作。
[ ] 實作解析器
[ ] 改進 LTS 的討論
[ ] 為過渡添加標籤。
[ ] ...