从给定的正则表达式设计有限自动机。
有限自动机 (FA) 是一种抽象的计算设备。它可以用以下方式表示:
- 图形化(状态转换图)
- 表格化(状态转换表)
- 数学化(状态转换函数)
FA 的正式定义是它是五元组。
M=(Q, Σ, δ, q0, F)
其中,
- Q:称为状态的有限集合
- Σ:称为字符集的有限集合
- δ:Q × Σ → Q 是状态转换函数
- q0 ∈ Q 是起始或初始状态
- F:结束或接受状态
正则表达式
正则表达式可用于描述定义字符串的一系列模式。它用于匹配字符串中的字符组合。
某些正则表达式接受的语言称为正则语言
现在让我们考虑 **RE 10+(0+11)0*1**,
为该正则表达式构建有限自动机:
步骤 1

最初考虑两个状态 q0 和 qf。此外,考虑初始和最终状态,q0 到 qf 和给定的正则表达式 10+(0+11)0*1
步骤 2

现在应用并集运算,q0 上的 10 转到 qf,q0 上的 (0+11)0*1 转到 qf。
步骤 3

现在,通过应用连接来划分表达式,即设 L1=0,L2=1。连接两者,我们得到 L= L1.L2。
将此公式应用于正则表达式,因此 q0 上的 1 转到 q1,q1 上的 0 转到 qf。类似地,q0 上的 (0+1) 转到 q2,q2 上的 0*1 转到 qf。
步骤 4

q0 上的 1 转到 q1,q1 上的 0 转到 qf,q0 上的 (0+1) 转到 q2,q2 上的 0 转到 q2 本身,q2 上的 1 转到 qf。
步骤 5
给定正则表达式的最终有限自动机如下所示:

广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP