Computer science 图灵机辅助

Computer science 图灵机辅助,computer-science,finite-automata,automata,Computer Science,Finite Automata,Automata,我一直在练习设计图灵机,最近我解决了一个语言L={w:na(w)=nb(w)},其中w中a的数量等于w中b的数量 然而,对于一种语言,如果w中a的数量不等于w中b的数量,我该如何为它设计一台图灵机呢?(例如L={w:na(w)≠ nb(w)} 我参考的书和网站对图灵机的定义如下: M=(Q,∑,ℾ, δ、 问题0,☐, F) ,其中Q是状态,∑是输入字母,ℾ 是磁带字母表,δ是转换,q0是开始状态,☐ 是一个空白空间,它是ℾ (☐ ∊ ℾ), F是指定为qf的最终状态。如果您最近解决了a和b的数

我一直在练习设计图灵机,最近我解决了一个语言L={w:na(w)=nb(w)},其中w中a的数量等于w中b的数量

然而,对于一种语言,如果w中a的数量不等于w中b的数量,我该如何为它设计一台图灵机呢?(例如L={w:na(w)≠ nb(w)}

我参考的书和网站对图灵机的定义如下:


M=(Q,∑,ℾ, δ、 问题0,☐, F) ,其中Q是状态,∑是输入字母,ℾ 是磁带字母表,δ是转换,q0是开始状态,☐ 是一个空白空间,它是ℾ (☐ ∊ ℾ), F是指定为qf的最终状态。

如果您最近解决了a和b的数量相等的情况,那么它们不相等的情况下的直接解决方案是:

  • 如果您过去经常崩溃(没有有效的转换),则添加一个转换以停止\u accept
  • 如果您过去通过停止拒绝来明确拒绝,请改为停止接受
  • 如果您过去通过输入halt\u accept接受,请转到halt\u reject
此新TM(1)接受您的TM在a和b数量相等的情况下不会接受的任何内容,以及(2)拒绝您的TM在a和b数量相等的情况下会接受的任何内容


事实上,此过程适用于任何TM,其工作只是确定机器语言中输入字符串的成员身份;在补充语言中枚举字符串不起作用,但这不一定是您需要的(使用这样构造的机器作为另一个机器中的子机器,枚举并检查所有字符串,可以获得枚举)。

愚蠢(但简单)的解决方案:像往常一样扫描输入,对每个a,交叉它,然后查找b。如果找不到,接受,如果可以,交叉它(使用不同的符号)然后回到最后一个a交叉点。用bs做镜面反射。重复直到输入结束。另一个麻烦的解决方案:在输入的左侧为as保留一个计数器,在右侧为bs保留一个计数器。计数然后比较。CS理论解决方案:让M为决定L的TM(如您所证明的那样存在),模拟M并接受iif M拒绝(即TM可判定性在补码下关闭)。@MargaretBloom你能解释一下你的意思吗“用b做镜面反射吗?我不相信我用你的方式来使用这个词。交换a和b的角色。当你看到b时,找一个a。@MargaretBloom好的,那么如果我写下转换,可以安全地假设它们看起来如下吗?δ(q0,a)=(q1,x,R)δ(q0,b)=(q,y,L)δ(q1,a)=(q0,x,R)δ(q1,b)=(q2,y,L)δ(q2,☐) = (qf,☐, (R)