让语言L_n具有字符集Sigma = {a_1,...,a_n}。 L_n恰好包含一些奇数次的字符。等效地,如果L_n ^ i是每个单词包含奇数a_i的语言,则L_n = L_n ^ 1 union ... union L_n ^ n。
我已经制作了一个接受L_n和2 ^ n状态的DFA的NFA。
我现在需要证明这是接受这种语言的最小DFA。我被暗示假设有一个D< 2 ^ n状态接受L_n,然后显示在Sigma ^ *中有一些字符串 u,v ,其中 u 包含 a 和奇数次数, v 包含偶数次,DFA必须在同一状态下终止。
我一直试图将2 ^ n作为一个强烈的暗示,就像考虑长度为n的所有字符串一样,但是这些字符串都是n ^ n。也许只使用字符 a,b 来考虑长度为n的所有字符串。由于有k < 2 ^ n个状态,那么这样的两个字符串必须被发送到相同的状态。此集合中被拒绝的字符串是具有偶数个 a 和 b 的字符串,但我无法知道这些的两个此类实例是否进入相同的状态,或者他们这样做了,这甚至是多么重要。
也许考虑所有字符串的选择,其中a_1发生一次或0次,a_2发生一次或0次,等等。这些中有2 ^ n个选择,因此其中一些必须进入相同的状态。这里唯一不在语言中的字符串是空字符串。我仍然被困住了。
答案 0 :(得分:1)
在任何给定的输入字符串中,a_i中的每一个都出现奇数次或偶数次。对于任何给定的字符串,都有一个最短的字符串,其符号按字典顺序排列,如果附加到给定的字符串,则会产生不在语言中的字符串。该字符串最多只有一个字母符号,按索引排序,以便使所有符号计数的奇偶校验均匀。
这意味着2 ^ n奇偶校验配置中的每一个都可以通过w.r.t区分。 Myhill-Nerode不可分辨关系;这种语言有2 ^ n个类,因此最小DFA必须有2 ^ n个状态。
我认为这基本上就是你的直觉,只是重申了明确使用Myhill-Nerode和不可区分的关系。
编辑:添加一个示例以使其更清晰。
考虑字母{a,b,c}。然后在任何字符串中,a,b和c中的每一个都出现偶数次或奇数次。考虑2 ^ 3 = 8个最短的字符串,其中符号按字典顺序排列,涵盖了每种可能的情况:
对于涵盖所有奇偶校验配置的这些最短字符串中的每一个,存在相应的最短字符串,其具有按字典顺序排序的符号,这使得连接具有偶数个所有符号。片刻的反射显示最短的字符串与表示类的最短字符串相同:对于上面的8个最短代表中的每一个,与自身连接产生的字符串具有偶数个出现的所有符号,并且可能没有短弦产生相同的效果。
就Myhill-Nerode而言,等价类[x]必须与等价类[y]不同,因为可以跟随[x]中的字符串并且不导致L中的字符串的最短字符串是x,而在[y]中可以跟随字符串并且不在L中导致字符串的最短字符串是y,并且我们已经要求x和y不同。我们可以确认我们的8个案例:
答案 1 :(得分:0)
你的想法是字符串“a_1发生一次或0次......”是好的。但是把它们视为你的字符串的结尾:
假设您已读取输入字符串且处于状态q。
你准确到达2 ^ n种不同的情况和不同的字符串集应该导致接受/拒绝。因此,状态q在每种情况下必须是不同的,因此必须至少有2 ^ n。