Thompson构造法

✍ dations ◷ 2025-11-19 11:24:25 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 奥林匹亚坐标:37°38′18″N 21°37′51″E / 37.63833°N 21.63083°E / 37.63833; 21.63083奥林匹亚(希腊语:Ολυμπία)是希腊南部平原的一个城市,位于伯罗奔尼撒的西北。它是古代
  • 气相色谱仪气液色谱法(英语:Gas chromatography,又称气相层析)是一种在有机化学中对易于挥发而不发生分解的化合物进行分离与分析的色谱技术。气相色谱的典型用途包括测试某一特定化合物的
  • 瑜伽论龙树、圣天、无著、世亲、陈那、法称、释迦光、功德光 【其他】─《入中论》《释量论》《俱舍论》《现观庄严论》《戒律本论》【其他】─ 《《瑜伽师地论》(梵语:Yogācāra
  • 贝蒂娜·冯·阿尔尼姆贝蒂娜·冯·阿尔尼姆(德语:Bettina von Arnim,1785年4月4日-1859年1月20日),原名伊丽莎白·卡瑟琳娜·卢多维卡·马格达伦娜·布伦塔诺(Elisabeth Catharina Ludovica Magdalena B
  • 久我建通久我建通(1815年3月11日-1903年9月26日),是江户时代后期及明治时代的公卿,也是村上源氏清华家的久我家(日语:久我家)当主。久我通明在文化十二年(1815年)于京都出生,是关白一条忠良与细
  • 燕娜·泰勒燕娜·泰勒(Janne Teller,1964年4月8日-)是一位具有德国背景的丹麦人,她的母亲来自奥地利,祖父来自北德。曾在世界各地居住和工作,其中包括在莫桑比克和坦桑尼亚。目前在纽约定居。
  • 诺曼·洛克威尔诺曼·洛克威尔(Norman Rockwell,1894年2月3日-1978年11月8日)是美国在20世纪早期的重要画家及插画家,作品横跨商业宣传与美国文化。他一生中的绘画作品大都经由《星期六晚邮报》
  • 锐度在摄影领域,锐度用来表示图像边缘的对比度,一种更加明确的定义是锐度是亮度对于空间的导数幅度。由于人类视觉系统的特性,高锐度的图像看起来更加清晰,但是实际上锐度的增加并没
  • 刘良 (中医内科学专家)刘良(1957年7月-),男,湖南汉寿人,中国中医内科学专家,中国工程院院士,现任澳门科技大学校长、讲座教授。主要从事风湿病研究。1990年毕业于广州中医药大学,获医学博士学位。
  • 甜甜圈 (荷兰)荷兰甜甜圈(荷兰语:Oliebol,荷兰语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gen