Thompson构造法

✍ dations ◷ 2025-11-26 09:17:40 #自动机,形式语言,算法

Thompson构造法在计算机科学中是指一个能将正则表达式转化为一个与之等价的非确定有限状态自动机(NFA)的算法。算法得到的NFA可以在编程中用于匹配一个正则表达式,这也是正则表达式引擎实现的基本思路之一。

正则表达式和非确定有限状态自动机是形式语言的两种不同的抽象表达方式。在诸如文本编辑器的高级“查找和替换”以及许多编程语言中,人们都习惯使用正则表达式来表示字符串的匹配模式。然而,当计算机执行匹配程序时,NFA却是更加适合的一种格式。因此,Thompson构造法有着重要的应用价值,它实际上可以视作正则表达式到NFA的一个编译器。而从理论角度上来说,该算法实际上是正则表达式和NFA等价性证明的一部分——事实上,这两种表述形式本质上都对应着相同的语言,即正则语言。

在应用中,算法得到的NFA可以再次通过幂集构造和最小化的过程得到一个对应的最简的确定有限状态自动机(DFA),进而用于匹配正则表达式。但是有些情况下也会直接使用对应的NFA。

算法通过递归地将一个正则表达式划分成构成它的子表达式,在得到每个子表达式对应的NFA之后,根据子表达式之间的运算关系和一系列规则构造表达式自身对应的NFA。具体来说,这套构造规则如下所示 :

对于正则表达式为ε或者只由一个符号构成的情况,则无需继续递归,对应的NFA可以直接由下列规则给出:

空表达式ε直接转化为:

直接转化为:

|可以转化为:

可以直接到达()或()的初态。而()或()原来的终态也可以通过ε转移直接到达整个NFA的新终态。

连接表达式可以转化为:

()的初态成为新的NFA的初态。 原来()的终态成为()的初态。而原来()的终态成为新的NFA的终态。

Kleene*闭包*可以转化为:

()连接起来的ε转移使得可以选择经过或者不经过子表达式。而从()的终态到初态的ε转移使得可以重复任意多次。

相关

  • 宇宙年龄宇宙年龄是指自宇宙大爆炸开始至今所经历的宇宙历史时间,当今天文学界理论和观测皆一致认为这个年龄介于137-138亿年之间。这个不确定的区间是从多个科研项目的研究结果的共识
  • 北方园林三山五园是指北京西北部的皇家园林群的统称。这些园林兴建于清康熙时期,兴盛于乾隆时期,大多在1860年第二次鸦片战争中被焚毁。有关三山五园的具体所指,目前比较通行的说法是,三
  • Ascomycota子囊菌门(学名:Ascomycota)是真菌界中种类最多的一个门,其中除酵母亚门为单细胞外,其余种类都是多细胞的,有分枝、有隔的菌丝组成的。它与担子菌门(Basidiomycota)一起构成了双核亚
  • 日冕日冕是环绕太阳周围的等离子体光环, 环绕其它恒星的称为冕或星冕。太阳的日冕延伸到外太空数百万公里,在每一次的日全食中都很容易看到;平常也可以透过日冕仪观测。英文的冕 (co
  • 量子穿隧在量子力学里,量子隧穿效应(Quantum tunnelling effect)指的是,像电子等微观粒子能够穿入或穿越位势垒的量子行为,尽管位势垒的高度大于粒子的总能量。在经典力学里,这是不可能发
  • 美琳达·盖茨梅琳达·盖茨女爵士(英语:Melinda Gates,1964年8月15日-),DBE,婚前原名梅琳达·安·法兰奇(英语:Melinda Ann French)。美琳达·盖茨出生于美国德克萨斯州达拉斯,并在达拉斯长大,其丈夫
  • 多头绒泡菌多头绒泡菌(学名:Physarum polycephalum)是一种生活在腐烂的树叶、木头等阴凉潮湿环境中的黏菌。像普通的黏菌一样,它对光线敏感,光线可以抑制其生长,不过光线也是触发其孢子生长
  • debdeb是Debian软件包格式,文件扩展名为.deb,跟的命名一样,deb也是因Debra Murdock(Debian创始人Ian Murdock的前妻)而得名。Debian包是Unixar的标准归档,将包文件信息以及包内容,经过
  • 李震 (官员)李震(1914年-1973年10月20日),河北省藁城县人,中华人民共和国公安部部长,是中国共产党第九届、第十届中央委员。1973年自杀身亡。出生于中国河北省藁城县,曾入清华大学,1937年加入中
  • 1¹¹=1 (Power of Destiny)《1¹¹=1 (POWER OF DESTINY)》是韩国男子团体Wanna One的首张正规专辑,于2018年11月19日推出,主打歌曲为〈Spring Breeze〉。10月3日,所属经纪公司SWING娱乐透露,Wanna One的