Learning Finite Automata by Experimentation通过二叉树自动学习有限状态自动机

Access Strings 和 Distinguishing Strings

T T T:代表分类树
M M M:实际等价自动机
M ^ \hat{M} M^:假设自动机
Access Strings 代表了状态机的一个状态,标记在leaf node
Distringuishing Strings 代表了状态机的转移路径,标记在internal node

有限自动机学习算法子程序

该算法包括:Sift、Tentative-Hypothesis、Update-Tree三部分。
Sift:该程序的目的是查询Access Strings和Distringuishing Strings是否存在
Tentative-Hypothesis:将构建的分类树转换为自动机
Update-Tree:根据Counterexample对分类树进行更新

Sift子程序

子程序Sift( s s s, T T T)以字符串s和当前分类树 T T T作为输入,输出实际等价自动机M[ s s s]在 T T T中的Access Strings,即 M M M s s s访问的状态。

  • 初始化:当前的node为 T T T的根node。
  • 主循环:
    • d d d T T T目前节点的Distringuishing Strings
    • M M M上对 s d sd sd进行member queries,如果被接收,更新当前的node为right child,否则为left child
    • 如果当前是leaf node,返回其标记的Access Strings,否则重复主循环

Tentative-Hypothesis( T T T)

  • 对于T的每个Access Strings(叶节点),在 M ^ \hat{M} M^中创建一个由该Access Strings标记的状态。设 M ^ \hat{M} M^的起始状态是 λ λ λ
  • 对于 M ^ \hat{M} M^的每个Access Strings和 b ∈ { 0 } b\in\{0\} b{0},计算 M ^ \hat{M} M^中状态s的b转移:
    • s ′ s' s S i f t ( s b , T ) Sift(sb,T) Sift(sb,T)
    • 引导 b b b转移从状态s到状态 s ′ s' s
  • 返回 M ^ \hat{M} M^

Update-Tree

该过程将当前分类树 T T T和假设自动机 M ^ \hat{M} M^的反例字符串 γ γ γ作为输入,输出为在分类树 T T T中标记新的Access Strings, 具体的流程如下:
Procedure Update-Tree( γ γ γ, T T T):

  • 对于 γ γ γ的每个前缀 γ [ i ] γ[i] γ[i]:
    • s i s_i si S i f t ( s b , T ) Sift(sb,T) Sift(sb,T)
    • s ^ i = M ^ [ γ [ i ] ] \hat{s}_i = \hat{M}[γ[i]] s^i=M^[γ[i]]
  • j j j s i ≠ s_i \neq si= s ^ i \hat{s}_i s^i i i i最小值
  • 将T中的Access Strings s j − 1 s_{j-1} sj1替换为一个内部node和两个leaf node,内部node替换为Distinguishing String γ j d γ_ j d γjd, 左边的leaf node被替换为 s j − 1 s_{j-1} sj1,右边的leaf node被替换为 γ [ j − 1 ] γ_ {[j-1]} γ[j1]

有限自动机学习算法主程序

初始化

  • 对字符串 λ λ λ执行membership query,以确定 M M M的开始状态是接受还是拒绝
  • 构建一个假设自动机 M ^ \hat{M} M^,该自动机仅由单一(接受或拒绝)状态组成,并标明0和1状态转移
  • 在假设自动机 M ^ \hat{M} M^上进行equivalence query,找到counterexample string γ γ γ
  • 初始化分类树T,根node标记为 Distinguishing String λ λ λ,两个叶node标记为 Access String λ λ λ 和counterexample string γ γ γ

主循环

  • 设T为当前的分类树
  • M ^ \hat{M} M^← Tentative-Hypothesis(T)
  • M {M} M进行等价查询,如果与目标等价,则输出 M ^ \hat{M} M^并停止。否则,设 γ γ γ为反例字符串。
  • Update-Tree( γ γ γ, T T T)
  • 重复主循环

示例

算法Learn-Automaton在3 mod 4计数器目标自动机上的示例执行
算法Learn-Automaton在3 mod 4计数器目标自动机上的示例执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值