有限自动机

有限自动机

DFA(确定有限自动机)

一个确定有限自动机M是一个5元组 M={S,∑,f,S0,Z}
S: 是一个有限状态集,它的每一个元素称为一个状态;
∑: 是一个有穷字母表,它的每一个元素称为一个输入符号;
f: 是转换函数,定义了从上的一个单值映射,即,指明当前的状态为p,当输入符号为a时,则转换到下一个状态q,q称为p的后继状态;
S0: 是一个唯一的初始状态;S0∈S
Z: 是一个终止状态集。

有限自动机_第1张图片

NFA(不确定有限自动机)

一个不确定有限自动机M是一个5元组 M={S,∑,f,S0,Z}
S: 是一个有限状态集,它的每一个元素称为一个状态;
∑: 是一个有穷字母表,它的每一个元素称为一个输入符号;
f: 是转换函数,定义了从上的一个单值映射,即,指明当前的状态为p,当输入符号为a时,则转换到下一个状态q,q称为p的后继状态;
S0: 是一个非空状态集;S0属于S
Z: 是一个终止状态集。

NFA转DFA

有限自动机_第2张图片
ε:输入空

有限自动机_第3张图片
有限自动机_第4张图片
求T1
{1,3,4,5,Z} 输入0 分析:
1输入0 后 T1={1,3}
然后 3输入0 T1={1,3,4,5,Z}
然后 4输入0 T1={1,3,4,5,Z}
然后5输入0 T1={1,3,4,5,Z,6}
然后z输入0 T1={1,3,4,5,Z,6}
求T2:
首先求T3: {1,3,4,5,Z}输入1 T3={}
有限自动机_第5张图片

左边列不能重复,下图中的六个集合只有{4,5,Z}在左边列表中没有出现在左边列所以T2={4,5,Z}
有限自动机_第6张图片
最终表
有限自动机_第7张图片

NFA转DFA
为集合不同的集合编号
有限自动机_第8张图片

有限自动机_第9张图片

正规式与有限自动机的转换

有限自动机_第10张图片
有限自动机_第11张图片
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(#,编译原理)