Thompson构造法

✍ dations ◷ 2025-11-28 09:35:27 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 鸦片类药物过量鸦片类药物过量是指因为鸦片类药物使用过量造成的中毒现象。鸦片类药物包括吗啡、海洛因、芬太尼、曲马多和美沙酮。症状包括呼吸量不足(英语:respiratory depression)、瞳孔缩
  • 云杉5 种云杉(学名:Picea asperata)为松科云杉属的一种,是原产于中国西部的特有树种,主要分布于青海东部、甘肃南部、陕西西南与南部、到四川西部一带。云杉为多年生长绿乔木,栖息在海
  • 网状结缔组织网状结缔组织(Reticular connective tissue),也叫网状组织(Reticular tissue),是一种由网状纤维和网状细胞组成的结缔组织,其中的网状纤维由Ⅲ型胶原α1(英语:type III collagen)构成
  • 扑灭通扑灭通(英语:Prometon)是一种正三嗪类除草剂,1,3,5-三嗪环的三个碳原子分别连接一个甲氧基和两个异丙氨基,抑制一年生和阔叶杂草的生长。
  • 刺猬炮刺猬炮,也叫刺猬弹(英语:Hedgehog)是第二次世界大战时加拿大人Charles F. Goodeve带领英国皇家海军的杂项武器发展指导部(Department of Miscellaneous Weapons Development)发明
  • 开元之治开元之治,亦称为开元盛世和开天盛世,是唐朝在唐玄宗统治时期所出现的盛世。唐玄宗治国头三十年,以开元作为年号,那时玄宗励精图治,并且任用贤能,发展经济,提倡文教,使得天下大治,所以
  • 威廉·M·巴斯威廉·马文·巴斯三世(英语:William Marvin Bass III)是美国著名的法医人类学家,以人类骨科学及人体死后分解腐败的研究闻名,同时也协助从大到联邦调查局(FBI)、小到地方小镇的司法
  • SEA-ME-WE 3亚欧3号国际海底光缆(South-East Asia - Middle East - Western Europe 3,或简称:SEA-ME-WE 3)又称法新欧亚三号海缆,2000年底建成,是全世界连接区域最长的海底光缆。该海缆由法国
  • 全美超级模特儿新秀大赛 (第十九季)《全美超级模特儿新秀大赛》第十九季,是美国真人秀《全美超级模特儿新秀大赛》的第十九季,在2012年8月24日于CW首播。本季冠军可以成为New York Model Management及LA Model M
  • 明日贸易明日贸易(日语:日明貿易),是指明朝与日本(室町时代)两国之间所实行的商业交易活动。明日贸易的时候因为需要使用到被称为“勘合符”的许可证,所以明日贸易又被称为“勘合贸易”。在