You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于有限状态机正确性的验证问询:含指定正则语言FSM校验

关于你的有限状态机正确性的判断建议

首先得明确:你提到的两个问题都需要你提供具体的FSM状态转移图/状态表才能准确判断正确性哦!不过先给你拆解一下目标正则表达式的逻辑,你可以先对照自己的FSM自查:

目标正则表达式的语义拆解

正则表达式 ((00)(0+1)^*)+((0+1)^*(110)) 其实是两个语言的并集,拆分来看:

  1. 第一部分:(00)(0+1)^* 的闭包:本质等价于00(0+1)^*,也就是所有以连续两个0开头,后面跟任意长度(包括0)的0或1的字符串——哪怕重复这个模式(比如0000),也依然属于这个范围。
  2. 第二部分:(0+1)^*(110):所有以连续的110结尾的字符串,前面可以是任意长度(包括0)的0或1。

所以正确的FSM需要满足:只要字符串属于上述两部分中的任意一种,就能被接受。

自查你的FSM是否正确的关键点

你可以从这几个维度检查自己的FSM:

  • 针对第一部分匹配:是否存在路径,从起始状态出发,读入两个0后进入接受状态,且后续读任意0/1都能保持在接受状态?
  • 针对第二部分匹配:是否存在路径,从起始状态出发,不管前面读了多少0/1,只要最后依次读入1->1->0,就能进入接受状态?
  • 边界情况验证:
    • 纯00是否被接受?
    • 仅110是否被接受?
    • 同时满足两部分的字符串(比如00110)是否被接受?
    • 只满足第二部分的字符串(比如0110)是否被接受?
    • 只满足第一部分的字符串(比如000)是否被接受?
  • 错误情况排查:像01、11、010这类既不以00开头也不以110结尾的字符串,是否被FSM拒绝?

如果你能把你的FSM的状态转移图或者状态表贴出来,我就能帮你做更精准的判断啦!

内容的提问来源于stack exchange,提问作者Bleeeaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:33:12