簡體   English   中英

我的轉換函數正確嗎(與有限自動機匹配的字符串)

[英]Is my transition function correct (String matching with finite automata)

我正在從CLRS學習具有有限自動機的字符串匹配。 我正在解決一些運動問題。對於運動問題32.3-1,

構造模式P = aabab的字符串匹配自動機,並說明其在文本字符串T = aaababaabaababaab上的操作。

以下是我的轉換函數,

states   a   b
 0       1   0
 1       2   0
 2       2   3
 3       4   3
 4       4   5
 5       ?   ?

我的轉換函數正確嗎? 那我怎么填最后一行呢? 任何幫助

我假設您正在創建一個有限自動機,該自動機接受包含模式aabab的字符串。

有限自動機有兩個錯誤,

在狀態3和狀態4,

對於狀態3 ,如果輸入為b ,則必須返回狀態0 例如, aabb模式將迫使您返回狀態0 在這里,您必須從狀態0重新開始。

對於狀態4 ,如果輸入為a ,則必須返回狀態2因為您具有模式aa 例如,模式aabaa將迫使您返回狀態2

修正后的有限自動機如下所示,

states   a   b
 0       1   0
 1       2   0
 2       2   3
 3       4   0
 4       2   5
 5       5   5

這里5是您的接受狀態。 僅當在字符串中找到所需的模式時,您才會達到此狀態。 一旦找到模式,無論什么字符串保持接受狀態。 因此,對於狀態5輸入ab ,狀態5本身都保持不變。

過渡函數是fa接受帶有子字符串“ aabab ”的字符串的函數 如果你想回到狀態1a0b ,那么轉換函數接受與子串“aabab的 ”結尾的字符串。 假定只有狀態5是接受狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM