与有限自动机的模式匹配

时间:2015-05-06 14:47:49

标签: c++ regex algorithm pattern-matching finite-automata

最近我正在阅读着名的算法设计书CLRS(Cormen,Leiserson,Rivest,Stain,第3版)。在经典的KMP和Rabin - Karp算法之间,有一部分关于字符串与有限自动机的匹配。因此算法根据模式创建自动机并开始处理字符串。 enter image description here

所以在这个例子中,算法搜索模式" ababaca"在输入字符串中。所以除了两件事之外,一切似乎都符合逻辑。

当我到达" b"时,为什么没有从州4的先前状态的路径,因为在那种情况下我将有#34; ababb",这已经是不匹配? ???当我读到" b"或" c"来自州6 ??有什么东西让我误解了吗?也没有阅读" c"状态从0到4等等..

1 个答案:

答案 0 :(得分:3)

检查表(b)。 你所谈论的所有州都标记为0.所以你回到起点。 在图像中,你会得到很多边缘回到0,所以他们不会显示它们(为了清晰起见)。