Context free grammar 查找以下内容的上下文无关语法

Context free grammar 查找以下内容的上下文无关语法,context-free-grammar,Context Free Grammar,查找以下(产生式规则)的上下文无关语法对于第一个规则,将其重写为L={a^2k a^m b^m c^k}。注意,我们可以从外向内构建字符串,首先要求每个c添加两个a,然后要求每个b添加一个额外的a L = {a^n b^m c^k | n=m+2k } L = {wE(a,b)*|Na(w)+2Nb(w) != Nc(w)} 对于第二种情况,将其改写为不同情况的联合: Na(w)+2Nb(w)Nc(w) 我们可以从Na(w)+2Nb(w)=Nc(w)的语法开始: 对于案例1,我们需要更多的c。

查找以下(产生式规则)的上下文无关语法

对于第一个规则,将其重写为L={a^2k a^m b^m c^k}。注意,我们可以从外向内构建字符串,首先要求每个c添加两个a,然后要求每个b添加一个额外的a

L = {a^n b^m c^k | n=m+2k }
L = {wE(a,b)*|Na(w)+2Nb(w) != Nc(w)}
对于第二种情况,将其改写为不同情况的联合:

  • Na(w)+2Nb(w)
  • Na(w)+2Nb(w)>Nc(w)
  • 我们可以从Na(w)+2Nb(w)=Nc(w)的语法开始:

    对于案例1,我们需要更多的c。我们可以按如下方式更改上述语法:

    S -> Sac | Sca | aSc | acS | caS | cSa | SS | T
    T -> Tbcc | Tcbc | Tccb | TScc | bcTc | bccT | cTbc 
              | cTcb | cbTc | cbcT | ccTb | ccbT | TT | e
    
    S -> Sac | Sca | aSc | acS | caS | cSa | SS | T
    T -> Tbcc | Tcbc | Tccb | bTcc | bcTc | bccT | cTbc 
              | cTcb | cbTc | cbcT | ccTb | ccbT | TT | C
    C -> cC | c
    
    这确保了在某个地方至少添加一个c,并允许在任何地方添加任意数量的额外c。对于案例2,我们需要更多的a或b。我们可以按如下方式更改上述语法:

    S -> Sac | Sca | aSc | acS | caS | cSa | SS | T
    T -> Tbcc | Tcbc | Tccb | TScc | bcTc | bccT | cTbc 
              | cTcb | cbTc | cbcT | ccTb | ccbT | TT | e
    
    S -> Sac | Sca | aSc | acS | caS | cSa | SS | T
    T -> Tbcc | Tcbc | Tccb | bTcc | bcTc | bccT | cTbc 
              | cTcb | cbTc | cbcT | ccTb | ccbT | TT | C
    C -> cC | c
    
    这确保了至少有一个a或b被添加到某个地方,并允许任意数量的额外a或b被添加到任何地方