软考---有限自动机
考察形式
给出一个确定或不确定的有限自动机,指出其能够识别的字符串,或指出对应的正规式表示。
有限自动机识别字符串
一个有限自动机所识别的语言是从开始状态到终止状态所有路径上的字符串的集合。要判断一个字符串能否被指定的自动机识别,就看在该自动机的状态图中能否找到一条从开始状态到达终止状态的路径,且路径上的字符串等于需要识别的字符串。而对于其正规式,可以通过能够识别的字符串去总结规律。
例:下图所示的有限自动机中,s0是初始状态,s3为终止状态,该自动机不能识别()。
A.abab B.aaaa C.babb C.abba
只有A选项可以从Sn到达S3中去。
例:右图所示有限自动机的特点是()。
A.识别的0、1串是以0开头且以1结尾
B.识别的0、1串中1的数目为偶数
C.识别的0、1串中0后面必须是1
D.识别的0、1串中1不能连续出现
选D。
[解析] 从初始态q0输入0仍然到q0或者输入1到达终态q1,从q1还可以输入0重新到达初始态q0,所以这个有限自动机识别的0、1串不一定是以0开头的,1的数目的奇偶性也没办法确定,0后面也可以是0,所以选项A、B、C都是错误的。从q0输入1到达终态q1后,或者串结束,或者输入0再到q0,所以这个串中的1不会连续出现,选项D是正确的。
正规式
例:由a、b构造且仅包含偶数个a的串的集合用正规式表示____。
A.(a*a)*b* B.(b* (ab*a)*)* C.(a* (ba*)*b)* D.(a|b)* (aa)*
A中*表示0个或者n个,那么可以A可以表示ab。
B中b可以0个或者n个,但是一定是两个a的倍数,选B。
例:在仅由字符 a、b 构成的所有字符串中,其中以 b 结尾的字符串集合可用正规式表示为(21)。
A.(b|ab)*b B.(ab*)*b C.a*b*b D.(a|b)*b
解析:正规式(a|b)*对应的正则集为{ε,a,b,aa,ab,...,所有由a和b组成的字符串},结尾为b。
例:由字符a、b构成的字符串中,若每个a后至少跟一个b,则该字符串集合可用正规式表示为(48)。
(48)A.(b|ab)* B.(ab*)* C.(a*b*)* D.(a|b)*
解析:正规式中 |表示或的意思, *表示 *前的字符或字符串出现了 0 次或多次。因此,选择A。