首页 文章 自动机入门

自动机入门

2024-05-24 13:50  浏览数:371  来源:白可    

自动机入门
首先理解一下自动机是用来干什么的:自动机是一个对信号序列进行判定的数学模型。
这句话涉及到的名词比较多,逐一解释一下。
信号序列是指一连串有顺序的信号,
例如字符串从前到后的每一个字符、
数组从 1 到 n 的每一个数、数从高到低的每一位等。
【判定】是指针对某一个命题给出或真或假的回答。
有时我们需要对一个信号序列进行判定。
一个简单的例子就是判定一个二进制数是奇数还是偶数,
较复杂的例子例如判定一个字符串是否回文,
判定一个字符串是不是某个特定字符串的子序列等等。
自动机的工作原理和地图很类似。
假设你在你家,然后你从你家到学校,
按顺序经过了很多路口。每个路口都有岔路,
而你在所有这些路口的选择就构成了一个序列。
例如,你的选择序列是【家门-右拐-
萍水西街-尚园街-古墩路-地铁站-下宁桥】,
那你按顺序经过的路口可能是【家-
家门口-萍水西街竞舟北路口-萍水西
街尚圆街路口-尚园街古墩路口-古墩路中
-三坝地铁站-下宁桥地铁站】。可以发现
上学的选择序列不止这一个。同样要去地铁站,
你还可以从竞舟北路绕道,或者横穿文鼎苑抄近路。
而我们如果找到一个选择序列,就可以
在地图上比划出这个选择序列能不能去学校。
比如,如果一个选择序列是【家门-右拐-
萍水西街-尚园街-古墩路-地铁站-
钱江路-四号线站台-联庄】,那么它就
不会带你去同一个学校,但是仍旧可能是一
个可被接受的序列,因为目标地点可能不止一个。
也就是说,我们通过这个地图和一组目的地,
将信号序列分成了三类,一类是无法识别的
信号序列(例如【家门-???】),一类是能
去学校的信号序列,另一类是不能的信号序列。
我们将所有合法的信号序列分成了两类,完成了
一个判定问题。
既然自动机是一个数学模型,那么显然不可能
是一张地图。对地图进行抽象之后,可以简化
为一个有向图。因此,自动机的结构就是一张有向图。
而自动机的工作方式和流程图类似,不同的是:
自动机的每一个结点都是一个判定结点;自动机
的结点只是一个单纯的状态而非任务;自动机的边
可以接受多种字符(不局限于 T 或 F)。



声明:以上文章均为用户自行添加,仅供打字交流使用,不代表本站观点,本站不承担任何法律责任,特此声明!如果有侵犯到您的权利,请及时联系我们删除。

字符:    改为:
去打字就可以设置个性皮肤啦!(O ^ ~ ^ O)