教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

正规文法与有限自动机的相互转换(3)

来源:网络收集 时间:2026-08-23
导读: 8 a1?ak,因而,在M中存在一条从S0出发一次经过A1,?,Ak-1到达终态的通路,该通路上所有箭弧的标记依次为a1,?,ak。反之亦然。所以,w L(GR)当且仅当w L(M),故L(M)=L(GR)。 (2)若S0 F,因为d(S0,ε)= S0,所以

8

a1?ak,因而,在M中存在一条从S0出发一次经过A1,?,Ak-1到达终态的通路,该通路上所有箭弧的标记依次为a1,?,ak。反之亦然。所以,w L(GR)当且仅当w L(M),故L(M)=L(GR)。

(2)若S0 F,因为d(S0,ε)= S0,所以ε L(M),但上面构造的L(GR)中不含ε。因此,需在文法中添加产生式S0→ε,这样,就有L(M)=L(GR)。

2. 设DFAM=(S,∑,d,S0,F),分以下两种情况进行证明:

(1)若S0 F,则令GL=(∑,S, X, P),其中X F,P是由以下规则定义的产生式集合,对任何a ∑及A,B S,若d(A,a)=B,则:

①当A≠S0时,令B→Aa; ②当A=S0时,令B→a∣Aa;

显然,上述得到的文法为一个左线性正规文法,下面说明它们的等价性(L(M)=L(GL) )。

在DFAM中,对任何w ∑*,不妨设w=a1a2?ak,其中ai ∑(i=1,2,?,k),若存在一条从S0到X的通路,通路上所有箭弧的标记依次为a1,?,ak,则在GL中一定存在一个最左推导:X Akak Ak-1ak-1ak ? A2a2?ak ? a1?ak,即w L(GL)。反之亦然。所以,w L(GL)当且仅当w L(M),故L(M)=L(GL)。

(2)若S0 F,则ε L(M),但上面构造的L(GL)中不含ε。因此,需在文法中添加产生式X→ε,这样,就有L(M)=L(GL)。 3.22 有限自动机到正规文法的构造方法

上述定理的证明采用了构造性的证明方法,由此可以得出由有限自动机到正规文法的构造方法。

从有限自动机M=( S,∑,d,S0,F)构造右线性正规文法GR的方法如下: 令GR=(∑,S, S0,P),其中P是由以下规则定义的产生式集合: 对任何d(A,a)=B, ①若B F,则令A→aB;

②若B F,并且B状态有箭弧射出,则令A→aB∣a;若B F,并且B状态没有箭弧射出,则令A→a;

③若S0 F,则令S0→ε。

从有限自动机M=( S,∑,d,S0,F)构造左线性正规文法GL的方法如下:

9

令GL=(∑,S, X,P),其中P是由以下规则定义的产生式集合: 对任何d(A,a)=B,

①若A不是初始状态,则令B→Aa;

②若A是初始状态,并且A状态有箭弧射入,则令B→Aa∣a;若A是初始状态,并且A状态没有箭弧射入,则令B→a;

③若S0 F,则令X→ε。

4代码编写

#include using namespace std;

int main() {

int n, m;

//n为自动机状态的总数目 //m为自动机终结符的数目 int n_midd_stat, n_final_stat; //n_midd_stat为中间状态的数目 //n_final_stat为终态的数目

cout << \请输入自动机共有的状态数目:\ cin >> n;

char* stat = new char[n];

cout << \请输入开始状态:\ cin >> stat[0];

cout << \请输入中间状态的个数:\ cin >> n_midd_stat;

10

正规文法与有限自动机的相互转换(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/519402.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)