接受给定字符串并拒绝其他给定字符串的最小DFA


11

给定字母两组字符串,我们可以计算最小的确定性有限状态自动机(DFA)从而使A,BΣMAL(M)L(M)ΣB

换句话说,代表一组积极的例子。DFA必须接受A中的每个字符串。 B代表一组否定示例。DFA不接受B中的任何字符串。AABB

是否可以使用DFA最小化技术来解决此问题?我可以想象创建一个具有三种状态的类似于DFA的自动机:接受状态,拒绝状态和“无关”状态(任何以“无关”状态结尾的输入都可以被接受或被拒绝)。但是,我们能否找到一种将这种情况最小化到普通DFA的方法呢?

给出正面和负面的例子,您可以将其视为学习DFA的问题。

这是受 regex golf NP-Complete吗?,它向正则表达式而不是DFA询问类似的问题。


1
我认为您需要对B可能是哪种语言以及如何指定它们进行某种限制。AB
reinierpost 2014年

关于学习功能/语言的文献很多,例如极限学习下的文献(也是金牌学习法)。这些不完全适合您的问题,但可能很有趣。
拉斐尔

Answers:


7

您所描述的DFA称为分离DFA。当B为常规语言时,有一些有关此问题的文献,例如,陈宇芳,Azadeh Farzan,Edmund M. Clarke,Yih-Kuen Tsay,Bow-Yaw的“学习最小分离DFA进行成分验证”。AB

请注意,正如@reinierpost所述,对A和B没有任何限制,该问题可能无法确定。


如果A和B都是常规语言,并且如果允许A或B任意接受或拒绝A和B会产生相同结果的任何输入,那么我看不出问题是如何无法判断的。对于任何特定大小的DFA,有可能构建一套完整的,应接受的输入和应拒绝的输入,以使状态数或更少的任何DFA都能正确处理所有测试用例在所有情况下都可以保证表现相同。由于一台接受一切内容的机器A接受并拒绝其他一切内容……
超级猫

...满足约束条件,可以对机器必须包含的状态数设置上限;由于给定大小的机器数量有限,并且要评估的测试用例数量有限,因此可以生成所有小于A的可能机器,并查看它们是否满足必要条件。这并不是解决问题的快速方法,但是如果A和B是规则的,则可以确定。如果它们不规则,则DFA将无法解决A或B。即使A和B不是,“差异”有时也可能是规则的,但是……
超级猫

...将是“不寻常的”情况。
2014年

8

ABAB=AAB

找到与给定字符串集一致的最小DFA是NP完全的。该结果在Angluin 关于正则集的最小推理的复杂度的论文中显示为定理1 。显然,您的问题也是NP完全的。

有关学习常规语言的大量链接和讨论,请查看CSTheory博客文章“学习常规语言”


如果更改了要求,以便自动机可以任意接受或拒绝A和B中的任何东西,那么对于任何A和B来说,问题总是可以解决的;如果不选择最佳自动机就可以做到NP完全化,即使有这个要求也可以做到NP完全化。
2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.