一门语言可以有多个DFA吗?


17

例如,当我们考虑一个DFA允许不包含子字符串的字符串,00或者11我可以产生以下两个DFA时:

在此处输入图片说明

Answers:


37

首先,您的左DFA错误-它接受例如011。

其次,可以规范地最小化 DFA ,因此从某种意义上讲,您始终可以为某种语言找到一个规范的DFA。

但通常,每种语言都有无限多种不同的DFA,因此您可以获得不同的正确答案。


同构甚至还有无限多个。
G. Bach

N

甚至对于有限的语言,无穷无尽的DFA吗?
Bergi 2016年

1
@Bergi:当然可以-您可以添加任意多个冗余状态。这听起来可能很“傻”,而且当您自己构建自动机时,这的确是毫无意义的。但是,很多时候自动机是通过翻译其他形式主义(例如NFA的确定化)来构造的,在这种情况下,您很可能会获得冗余状态。
Shaull,

@Shaull:您的意思是具有ε过渡或不可达状态?好吧,我没有考虑这些。
Bergi 2016年
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.