利用SAT求解器进行精确DFA识别及从交错字符串学习DFA
利用SAT求解器进行精确DFA识别
在DFA识别问题中,将其转化为SAT问题时,无论是直接编码、带冗余子句的紧凑编码还是不带冗余子句的紧凑编码,都使用了一组固定的颜色。为了证明DFA的最小规模等于k,需要证明使用k种颜色的转换是可满足的,而使用k - 1种颜色的转换是不可满足的。以下是确定最小规模的具体步骤:
1. 找到大团L :在表示APTA的图中找到一个大团L(顶点集)。
2. 初始化颜色集C :初始化颜色集C,使得|C| = |L|。
3. 构建CNF :根据C和L上的对称破缺谓词(SBPs)对APTA进行转换,构建一个合取范式(CNF)。
4. 求解公式 :求解步骤3中的公式。
5. 判断可满足性 :如果公式不可满足,则向C中添加一种颜色,然后回到步骤3。
6. 返回DFA :返回步骤4中找到的DFA。
然而,尽管这种转换方法很高效,但在某些情况下,上述过程可能会导致生成的公式对于当前最先进的SAT求解器来说太大。例如,Abbadingo问题集包含一些非常困难的问题,需要数百种颜色,从而产生超过1亿个子句。而目前最先进的SAT求解器在处理多达500万个子句时效果较好,因此这些问题的公式规模太大。
为了解决这个问题,可以利用编码的另一个优点,即当输入是(部分识别的)DFA而不是APTA时,该编码仍然有效。以下是一种可以减小问题规模的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



