为什么运行DFA需要线性时间?

时间:2013-01-20 19:52:31

标签: algorithm complexity-theory theory dfa

我刚开始学习自动机。在给定DFA的情况下似乎很容易理解并且设计它并不太困难。但我觉得证明事情很难......

任何人都可以提供这个问题或一些提示的非正式证据吗?非常感谢!

PS:对不起,我没有说清楚。 @Dan所说的正是我的意思:

  

为什么要决定问题"给出一个字符串w。自动机是否接受   或拒绝w?"可以在线性时间内完成吗?

2 个答案:

答案 0 :(得分:4)

尝试这样思考:

  1. DFA读取的输入字符串中每个字符的次数是多少次?
  2. 从输入处理单个字符时,DFA的工作量是多少?
  3. 希望这有帮助!

答案 1 :(得分:4)

我想你想知道为什么决定问题“给定一个字符串w。自动机是接受还是拒绝w?”可以在线性时间内完成吗?

假设w = a_1 ... a_n。从初始状态q_0开始并应用transition \ delta(q_0,a_1)= q_1,它将带您进入q_1。现在,重复这个n次,直到你处理完最后一个字母。这是一个线性时间算法;)