定义字符串和绘制语言

Define strings and draw language

在 Σ = {A, B, C} 上定义的所有以 B 开头,以 A 结尾且最小长度为 3 的字符串的语言,还为该语言绘制有限自动机。

请用正则表达式的方式和语言图来说明。在 Σ = {X, Y, Z} 上定义的所有字符串的语言,Y 为第三个字母,Z 为倒数第二个字母

s -> Bx

x -> 是 |通过 |赛

y -> 是 |通过 |赛| A

有限自动机的画法并不难。小写字母是状态,大写字母是输入符号。

状态"s"是起始状态。

从那里开始,单词以 B 开始并以状态 "x" 结束。

从 "x" 输入可以是 A 或 B 或 C 并导致状态 "y"。

从 "y" 输入可以是 A 或 B 或 C,然后返回 "y"。输入 C 是特殊的,因为它 can/must 是单词的最后一个符号。所以 A 只是以完成状态结束(规则中没有明确提及)。

自动机看起来像这样:

识别讨论语言的正则表达式如下:

B[ABC][ABC]*A - or shorter - B[ABC]+A

在这种情况下,很容易(尤其是第一个正则表达式)看到自动机和正则表达式之间的对应关系。


Divyesh 的回答也几乎​​是正确的,他画了一个确定性自动机。你只需要删除到 q4 的过渡就可以了。

这个的自动机必须是这个...