证明CFL在并集和闭包下是封闭的,但在交集下不是封闭的?


CFL指的是计算理论(TOC)中的上下文无关语言。现在让我们了解CFL如何在并集下封闭。

CFL在并集下封闭

如果L1和L2是CFL,则L1 U L2也是CFL。

假设L1和L2由上下文无关文法(CFG)生成。

G1=(V1,T1,P1,S1)和G2=(V2,T2,P2,S2),不失一般性地将G1的每个非终结符下标为a1,将G2的每个非终结符下标为a2(以便V1∩V2=φ)。

后续步骤使用完全来自G1或G2的产生式。

因此生成的每个单词要么是L1中的单词,要么是L2中的单词。

示例

假设L1是回文,定义为

S->aSa|bSb|a|b|^

假设L2是{anbn|n>=0},定义为−

S->aSb|^

则并集语言定义为−

S->S1|S2

S1->aS1a|bS1b|a|b|^

S2->aS2b|^

CFG在克莱尼星号下是封闭的

现在,让我们了解CFG如何在星号下封闭。

证明

如果L1是CFL,则L1*是CFL。

假设L1由CFG G1=(V1,T1,P1,S1)生成,不失一般性地将G1的每个非终结符下标为a1。

定义CFG G生成L1*为−

   G=(v1 U {S}, T1, P1 U {S->S1S{^},S})

生成的每个单词要么是^,要么是L1中相同单词的序列。

L1*中的每个单词都可以由G生成。

示例

假设L1是{anbn|n>=0},定义为S->aSb|^

则L1*生成为

S->S1S|^

S1->aS1b|^

CFG在交集下不是封闭的

现在让我们了解CFG如何在交集下不是封闭的。

证明

如果L1和L2是CFL,则L1∩L2可能不是CFL。

L1={anbnam|n,m>=0}由CFG生成−

   S->XA

   X->aXb|^

   A->Aa|^

L2-{anbmam|n,n>=0}由CFG生成−

   S->AX

   X->aXb|^

   A->Aa|^

L1∩L2 ={anbnan|n>=0},它不是CFL。

更新于: 2021年6月16日

3K+ 次查看

开启您的职业生涯

完成课程获得认证

开始学习
广告

© . All rights reserved.