DFA或NFA单头读取输入字符串,从左到右移动。对于具有多个磁头的有限状态机似乎很自然,每个磁头从左到右在输入中移动,但不一定与其他输入在同一位置。
让我们定义一个具有个头的有限状态机,如下所示:
甲K-头NFA是一个元组,其中:
像往常一样,是一组有限状态,是一个有限字母,是初始状态,是一组接受状态。让表示包括空字符串在内的字符集。
是过渡关系:过渡表示,如果机器处于状态,它可以读入,使得是头部的下一个字符(如果头部不移动,则为\ varepsilon),然后进入状态q。
此类机器的运行(从开始状态开始并以接受状态结束的任何路径)都不会产生一个字符串,而是会产生不同的字符串(通过在运行过程中将字符串联而形成)。然后我们说,如果k个字符串相同,则运行有效。
机器的语言是字符串的集合,因此存在一个有效的机器运行,其中沿着该行产生的字符串都等于。
问题:此类机器可识别的语言类别是什么?已经研究过了吗?
第一个观察结果是,此类机器产生的类别比常规语言还要大。例如,语言
被以下具有状态的 NFA 识别:
(这里,标有表示形式的过渡。)
但是,第二个观察结果是,并非所有与上下文无关的语言都得到了认可。例如,似乎这些机器无法识别Dyck语言。