自动机理论简介

自动机 – 它是什么?

"自动机"一词源于希腊语"αὐτόματα",意为"自动行动"。自动机(复数为 Automata)是一种抽象的自推进计算设备,可自动遵循预定的操作序列。

具有有限状态数的自动机称为有限自动机 (FA) 或有限状态机 (FSM)。

有限自动机的正式定义

自动机可以用 5 元组 (Q、∑、δ、q0、F) 表示,其中 −

  • Q 是一组有限的状态。

  • 是一组有限的符号,称为自动机的字母表

  • δ 是转换函数。

  • q0 是处理任何输入的初始状态 (q0 ∈ Q)。

  • F 是 Q 的一组最终状态 (F ⊆ Q)。

相关术语

字母表

  • 定义字母表 是任何有限的符号集。

  • 示例 − ∑ = {a, b, c, d} 是一个 字母表集,其中 'a'、'b'、'c' 和 'd' 是 符号

字符串

  • 定义字符串 是从 ∑ 中获取的有限符号序列。

  • 示例 − 'cabcad' 是字母表集 ∑ = {a, b, c, d} 上的有效字符串。

字符串的长度

  • 定义 − 它是字符串中存在的符号数。 (用 |S| 表示)。

  • 示例

    • 如果 S = 'cabcad',|S|= 6

    • 如果 |S|= 0,则称为 空字符串(用 λε 表示)

Kleene Star

  • 定义 −克莱尼星号 ∑* 是符号或字符串集 上的一元运算符,它给出 上所有可能长度的所有可能字符串的无限集,包括 λ

  • 表示 − ∑* = ∑0 ∪ ∑1 ∪ ∑2 ∪……。其中 ∑p 是长度为 p 的所有可能字符串的集合。

  • 示例 − 如果 ∑ = {a, b}, ∑* = {λ, a, b, aa, ab, ba, bb,………..>

Kleene 闭包 / Plus

  • 定义 − 集合 + 是 ∑ 上所有可能长度(不包括 λ)的所有可能字符串的无限集。

  • 表示 − ∑+ = ∑1 ∪ ∑2 ∪ ∑3 ∪…….

    + = ∑* − { λ

  • 示例 − 如果 ∑ = { a, b } ,则 ∑+ = { a, b, aa, ab, ba, bb,………..

语言

  • 定义 − 对于某些字母表 ∑,语言是 ∑* 的子集。它可以是有限的,也可以是无限的。

  • 示例 − 如果语言采用所有可能的字符串,长度为 2,超过 ∑ = {a,b},则 L = {ab,aa,ba,bb }