如何在一组q状态下提出给定DFA的递推方程?

时间:2016-03-26 05:04:44

标签: combinatorics recurrence finite-automata dfa formal-languages

我正在尝试通过以下链接解决问题2:Check out Q.2

这就是我对以下确定性有限自动机接受的长度为N(k)的二进制字符串的数量k感兴趣(来源:URL)。

Finite state automaton

例如N(2)=2,因为只有0110这样的字符串。特别是我对N(k)的递归关系很感兴趣。

1 个答案:

答案 0 :(得分:1)

N(k) = 2*N(k-3) + N(k-2)的重复为k>=3,边界条件为N(0)=N(1)=0N(2)=2

原因是给定一个可接受的字符串w(可接受的我指的是DFA接受的字符串),您可以使用11将其扩展为“保持”最终状态或添加010001(长度均为3)要么“保持”在最终状态;复发直接来自这些观察(想一想)。

举个例子,这是自动机接受的前几个长度为k=2,3,...,7的字符串:

  • 对于k = 2,解决方案为0110
  • 对于k = 3,没有解决方案。
  • 对于k = 4,解决方案为01111011
  • 对于k = 5,解决方案为01001010101001010001
  • 对于k = 6,解决方案为011111101111
  • 对于k = 7,解决方案为010011101010111001011100011101110010111010,{{1} },1011001

我们可以看到重复正确计算解决方案的数量:

  • N(3)= 2 * N(0)+ N(1)= 2 * 0 + 0 = 0.
  • N(4)= 2 * N(1)+ N(2)= 0 + 2 = 2.
  • N(5)= 2 * N(2)+ N(3)= 2 * 2 + 0 = 4.
  • N(6)= 2 * N(3)+ N(4)= 2 * 0 + 2 = 2.
  • N(7)= 2 * N(4)+ N(5)= 2 * 2 + 4 = 8.