打印

状态中的状态转移图该如何设计?

[复制链接]
3687|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
欧阳青云|  楼主 | 2010-7-23 14:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
欧阳青云|  楼主 | 2010-8-2 14:06 | 只看该作者
比如说检测信号1101001101,如果输入的信号是它则输出1否则输出0,这样的话状态转移图该怎么设计呢?
请大侠们多多指教.

使用特权

评论回复
板凳
HWM| | 2010-8-2 14:13 | 只看该作者
先确定状态集,然后根据状态和输出函数(这些都是根据具体要求所得)画图或制表即可。最后可能还要进行适当的优化(就是状态集最简化)。至于如何落实到某种计算机语言所对应的程序,那是程序设计的事情。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
欧阳青云 + 1
地板
欧阳青云|  楼主 | 2010-8-2 15:04 | 只看该作者
但状态集怎么确定呢?就说信号1101001101,我都不知道他有多少种状态。

使用特权

评论回复
5
HWM| | 2010-8-2 15:16 | 只看该作者
re 4L:

状态集怎么确定?无定则。如若只识别1101001101,最直接就是S0,S1,....,S10,再加个S-err。其中S0是初态,S10是末态(或成果态),S-err是出错态。最直接的未必是最简的,所以才会有优化。

使用特权

评论回复
6
欧阳青云|  楼主 | 2010-8-2 15:32 | 只看该作者
先谢谢了,不过你这样说我还是不知道怎么确定那些状态之间是怎么转移的,特别是进入出错态时。

使用特权

评论回复
7
HWM| | 2010-8-2 15:40 | 只看该作者
这个....,如下:

S0,1 -> S1
S0,0 -> S-err
S1,1 -> S2
S1,0 -> S-err
S2,0 -> S3
S2,1 -> S-err
....
S9,1 -> S10
S9,0 -> S-err

到了S10和S-err都将终结。

使用特权

评论回复
8
HWM| | 2010-8-2 15:45 | 只看该作者
关于此,LZ不妨可以推广到识别一般的定长字符串。看看状态图会大概是个什么模样。

使用特权

评论回复
9
欧阳青云|  楼主 | 2010-8-2 15:48 | 只看该作者
那如果进入S-err状态呢?出来往哪个状态跳,S0?而且有些状态可以重复利用,比如说信号信号1101001101中有两个1101可以重复利用,就是在这里不知所向

使用特权

评论回复
10
HWM| | 2010-8-2 15:56 | 只看该作者
本帖最后由 HWM 于 2010-8-2 16:56 编辑

进入S-err则必须进行出错处理,然后再进入S0。至于有重复码且重复数任意,如果是紧挨着的,可以用“循环”替代,这也是优化的一种,但这里不行。

使用特权

评论回复
11
欧阳青云|  楼主 | 2010-8-2 16:28 | 只看该作者
下图这样有错吗?你觉得还能不能再优化呢?

未命名.JPG (142.29 KB )

未命名.JPG

使用特权

评论回复
12
HWM| | 2010-8-2 17:01 | 只看该作者
这图画得....

转移箭头线上的输入(0,1)不对。若仅识别1101001101,基本就这样了,无法进一步优化。

使用特权

评论回复
13
欧阳青云|  楼主 | 2010-8-2 17:13 | 只看该作者
呵呵,我平常很少画图,而且没什么艺术细胞,只有这种水平了,见笑了。
哪个状态到哪个状态的输入(0,1)不对?
不过想想那个出错状态或许可以省掉。我得好好想想怎么优化得简单点。

使用特权

评论回复
14
HWM| | 2010-8-2 17:21 | 只看该作者
具体在7L已经标出。如:S0到S1的转移输入为1,而S0到S-err的转移输入为0。S-err不可省略,没此状态无法区分出错和初始态。

使用特权

评论回复
15
欧阳青云|  楼主 | 2010-8-2 17:26 | 只看该作者
我知道了。我少了一根线。谢谢了哈。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

378

帖子

0

粉丝