Anguins L* Simple Case Study

一、介绍OT表

在这里插入图片描述

图1 OT表简介
闭包性:形象的理解就是辅助行区域T(S∪I)在T(S)中,否则就在S域中添加 SUI中不包含在原S域中对应的行标签及其所有前缀
一致性:就是指如果S域中二个行标签如果对应的值相同,则其加入同一个基本字a作为后缀,其值也要相同,否则为了区别这两个状态,需要在E中添加这a∪e。

二、学习过程

图2 算法流程

由于学习过程的前提是有一个被测系统(黑箱),所以需要首先构建,并且确认输入输出。
已知:被测系统SUI,输入表

图3 被测系统实际状态图

输入基本字:{a,b}
(1)初始化OT表
表1 三四行辅助行区域,三四行的行标签a,b为输入基本字的集合。第二行为状态行区域

O 1 O_1 O1ab
εAB
aAB
bAB

检查一致性与闭包性,符合S域的每一个行标签对应为一个状态,然后直接看对应的E区域的列标签(即基本字)所得到的值(即该基本字所对应的输出)。

图5 当前学习下的状态图
(2)完善OT表
构造好之后,询问teacher,teacher返回不对和一个反例。字串bba,SUL输出是C,而你输出是A,这个时候,算法就将 bba这个字串及其所有前缀添加进OT表的S域
表2 将bba字串及其所有前缀添加进OT表的状态区域

O 2 O_2 O2ab
εAB
bAB
bbCB
bbaAB
aAB
bAB

当然同时要需要更新辅助域,规则就是S∪I(S是状态行区域,I是基本字集合)即可然后重新经过成员查询得到OT表的值,如下图所示:
删除辅助域中的最后一行,计算{ε, b, bb, bba} 与 {a, b}的并集
表3 更新后的OT表

O 2 O_2 O2ab
εAB
bAB
bbCB
bbaAB
aAB
baAB
bbaaAB
bbbCB
bbabCB

T(S∪I)都包含于T(S),所以是闭包的,但是检查一致性的时候发现,在S域T(ε)和T(b)都一样是AB,可是其加上同一个后缀b,这个时候T(b)和T(bb)不同,一个是A B,一个是C B,所以不满足一致性,则需要在E中添加b∪e即ba

O 3 O_3 O3abba
εABA
bABC
bbCBC
bbaABC
aABA
baABA
bbaaABA
bbbCBC
bbabCBC

最后构造状态图

总结

整个流程需要代码模拟,但现有代码不能运行,只能看着代码结合论文构造,而且学习过程中需要向被测系统发送输入,接收输出,没有实际系统的话只能模拟它会返回什么。

整个算法的流程大体如上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值