Thompson构造法

✍ dations ◷ 2025-12-01 10:25:34 #自动机,形式语言,算法

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

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

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

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

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

空表达式ε直接转化为:

直接转化为:

|可以转化为:

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

连接表达式可以转化为:

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

Kleene*闭包*可以转化为:

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

相关

  • 流体流体(英语:Fluid)就是在承受剪应力时将会发生连续变形的物体,包括气体和液体。流体没有一定形状,几乎可以任意改变形态,或者分裂。具有黏性的流体在发生变形时将产生阻力,而没有黏
  • 人工染色体人类人工染色体(Human artificial chromosome,HAC)是一种小型染色体,可作为载体搭载一些基因,并作为人类细胞中额外的染色体(第47个),使这些基因表现于人类体内。此种人工染色体可载
  • 城市人类学体质人类学 文化人类学 语言人类学 分子人类学 社会人类学 考古学应用人类学 民族志 参与观察 文化相对论文化 • 社会 史前史 • 人类演化 亲属 婚姻 • 家庭 物质文化 种
  • 疣鼻天鹅疣鼻天鹅别名瘤鼻天鹅、哑音天鹅、赤嘴天鹅、瘤鹄、亮天鹅、丹鹄(古名)等。是一种大型的游禽,体色洁白,脖颈细长,前额有一块瘤疣的突起,因此得名。疣鼻天鹅分布广泛,大量在欧洲,少数
  • 熏鲑鱼熏鲑鱼,亦称 烟三文鱼, 为西餐常见的一种餐点,烹调方式为将生鲑鱼肉用以生火烟薰至半熟。常见之配料有橄榄、 洋葱、柠檬等。以约37 °C的生烟慢熏。
  • Amis李芝宇(1990年8月6日-)艺名Amis 艾蜜丝,曾在中华职棒Lamigirls与Fubon Angels担任啦啦队 ,现为味全龙啦啦队总教练,在脸书粉专拥有超过30万名粉丝,被誉为“啦啦队女神”。写真书(20
  • 迪莫·巴卡洛夫迪莫·内德诺夫·巴卡洛夫(保加利亚语:Димо Найденов Бакалов,1988年12月19日-)是保加利亚足球运动员,司职中场,现时效力于拉兹格勒卢多戈雷茨足球俱乐部。最后
  • 2007年爱沙尼亚网络战爱沙尼亚网络战(爱沙尼亚语:2007. aasta küberrünnakud Eesti vastu)是指从2007年4月底开始,爱沙尼亚面对大规模的网络袭击。黑客目标包括国会、政府部门、银行以至媒体的网站
  • 工业巨头《工业巨头》(英语:Industry Giant)是一款由JoWood Productions公司制作和发行的经营模拟游戏。本游戏最初于1998年4月14日在北美和欧洲地区Windows发行。游戏的目的是建立一个
  • 红利红利,英文为bonus或extra dividend,是公司(或其它按出资资本决定收益分配的非公司经济组织,如中国大陆的农村信用合作社)的税后利润提取各种公积金、公益金、优先股股息后剩余的