基于L*算法的自动机模型更新方法技术

技术编号:34609836 阅读:15 留言:0更新日期:2022-08-20 09:15
本发明专利技术公开了一种基于L

【技术实现步骤摘要】
基于L
*
算法的自动机模型更新方法


[0001]本专利技术涉及自动控制领域,尤其涉及有限状态自动机DFA(Deterministic Finite Automaton,简称DFA),具体是一种基于L
*
算法(LSTAR算法简称L
*
算法)的自动机模型更新方法。

技术介绍

[0002]多年来,工程系统的复杂性显着增加,离散事件系统DES(Discrete Event System,简称DES)已成为一个活跃的研究领域。DES的研究是受许多不同应用领域的需求所驱动的,例如制造、控制系统、运输、通信网络、软件工程等。离散事件系统框架是一个由事件序列(系统及其运行模式的突然且明显的变化)描述系统高层次行为的系统框架,它以抽象而高效的方式表现复杂系统的逻辑行为,受到了人们的广泛关注。目前,已有许多不同的方法用于给DES建模,例如Petri网,进程代数以及有限状态自动机。将DES建模为自动机的好处在于它提供了对系统直观且可视化的表示,便于进行后续的组合操作和分析。
[0003]学习未知的DES有广泛的应用领域,从机器人和控制系统到数据挖掘,以及许多其它有趣的应用。一般来说,学习算法分为两类:主动学习和被动学习。与被动学习不同,主动学习算法通过主动查询字符串是否存在于待建模的DES系统产生的语言中,来选择能够提供足够信息的例子。
[0004]在将DES建模为自动机的过程中,难免会遇到系统发生变化,进而需要更新模型的情况。此时如果忽略原有的已知信息,低效地将系统视为一个完全未知的系统,对系统重新进行建模,将会在建模的过程中花费更多的计算和交互(向Teacher查询)。

技术实现思路

[0005]本专利技术的目的是针对现有技术的不足,而提供一种基于L
*
算法的自动机模型更新方法。这种方法利用原有的信息,能对原自动机模型进行更新,构建一个与变化后的新系统行为等价的自动机模型,更新速度快。
[0006]实现本专利技术目的的技术方案是:
[0007]一种基于L
*
算法的自动机模型更新方法,包括如下步骤:
[0008]1)定义模型:包括:
[0009]1‑
1)假设一个确定的有限状态自动机DFA是一个五元组,用G表示,
[0010]G=(Q,Σ,δ,q0,Q
m
),其中,
[0011]Q为状态集,Σ为字母表,δ:Q
×
Σ

Q为状态转移函数,q0∈Q为初始状态,为标记状态集,字母表Σ是一个非空的有限字符集合,事件序列形成一个字符串,一组字符串形成一种语言,如果事件e是构成字符串s的事件之一,则用e∈s说明事件e属于字符串s,两个字符串s1,s2∈Σ
*
的连接用s1·
s2表示,一般可简写为s=s1s2,对于状态q,q

∈Q和σ∈Σ,转移函数δ(q,σ)=q

表示状态q经过事件σ转移到状态q

,如果δ(q,σ)有定义,用δ(q,σ)!表示,一般而言,转移函数δ以以下递归的方式从域Q
×
Σ扩展到域Q
×
Σ
*

[0012](1)δ(q,ε)=q;
[0013](2)对于σ∈Σ,q,q

∈Q,s∈Σ
*
,如果δ(q,s)=q

,且δ(q

,σ)!,则δ(q,sσ)!且δ(q,sσ)=δ(δ(q,s),σ);
[0014]集合Σ*表示所有在Σ上定义的有限字符串,包括空字符ε,字符串在字母表Σ上定义的语言L是Σ*的一个子集,G产生的语言generated language记为L(G)={s∈Σ
*
|δ(q0,s)!},若s
p
,u,s
s
∈Σ
*
,字符串s=s
p
·
u
·
s
s
,则s
p
称为字符串s的前缀,u称为字符串s的子串,s
s
称为字符串s的后缀,且ε和s都可以是s的前缀、字串或后缀,若s1为s2的前缀,则记为s1≤s2,集合Pre(L)和Suf(L)分别包含L所有的前缀和后缀,在本技术方案的内容中,自动机均指DFA;
[0015]1‑
2)定义L
*
算法:L
*
算法的目标是构造一个与系统行为等价的自动机模型,L
*
算法假定一个Teacher的角色,Teacher能正确回答关于未知系统的两种类型的问题:第一种类型是成员资格查询,答案为是或否,答案为是或否取决于所查询的字符串t是否属于系统的行为;第二种类型是等价查询,即所构造的DFA模型是否与系统行为等价,如果等价,则回答是,否则答案为与系统语言的对称差中的字符串t,其中,字符串t被称为反例,它用来对所构造的DFA进行改进,将描述未知系统行为的语言用U表示,并假定U在一个固定的已知有限字母表A上,在任何给定时间,L
*
算法都具有有关A上有限字符串集合的信息,将它们分类为未知系统语言U的成员或非成员,这些信息用观察表OT(Observation Table,简称OT)表示,观察表由三个部分组成:非空有限字符串的前缀闭合集合S、字符串的非空有限后缀闭合集合E和集合((S∪S
·
A)
·
E)到{0,1}的有限映射函数T,观察表用(S,E,T)表示,假定:
[0016]当且仅当语言L中所有的字符串的前缀也是语言L的成员时,则语言L是前缀闭合的,当且仅当语言L中所有的字符串的后缀也是语言L的成员时,则语言L是后缀闭合的;
[0017]当且仅当u是未知系统语言U的成员时,T(u)才为1,观察表初始化为S=E={ε},后随着L
*
算法的运行而增加,观察表可以可视化为一个二维数组,其中行是(S∪S
·
A)的元素,列是E的元素,由行s和列e定位的内容为T(s
·
e),如果s是(S∪S
·
A)的元素,则row(s)表示即E到{0,1}的有限映射函数f,用f(e)=T(s
·
e)表示,L
*
算法采用观察表来构建自动机,用S的元素标记的行是待建模系统状态的候选者,而用E的元素标记的列用于区分这些状态,由S
·
A元素标记的所有行用于构造转移函数,在字母表A上定义一个与观察表(S,E,T)对应的自动机M(S,E,T)=(Q,Σ,δ,q0,Q
m
)如下,自动机M(S,E,T)状态集为Q,初始状态为q0,标记状态为F,转移函数为δ:
[0018]Q={row(s)|s∈S},
[0019]q0=row(ε),
[0020]F={row本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于L
*
算法的自动机模型更新方法,包括如下步骤:1)定义模型:包括:1

1)假设一个确定的有限状态自动机DFA是一个五元组,用G表示,G=(Q,Σ,δ,q0,Q
m
),其中,Q为状态集,Σ为字母表,δ:Q
×
Σ

Q为状态转移函数,q0∈Q为初始状态,为标记状态集,字母表Σ是一个非空的有限字符集合,事件序列形成一个字符串,一组字符串形成一种语言,如果事件e是构成字符串s的事件之一,则用e∈s说明事件e属于字符串s,两个字符串s1,s2∈Σ
*
的连接用s1·
s2表示,简写为s=s1s2,对于状态q,q

∈Q和σ∈Σ,转移函数δ(q,σ)=q

表示状态q经过事件σ转移到状态q

,如果δ(q,σ)有定义,用δ(q,σ)!表示,转移函数δ以以下递归的方式从域Q
×
Σ扩展到域Q
×
Σ
*
:(1)δ(q,ε)=q;(2)对于σ∈Σ,q,q

∈Q,s∈Σ
*
,如果δ(q,s)=q

,且δ(q

,σ)!,则δ(q,sσ)!且δ(q,sσ)=δ(δ(q,s),σ);集合Σ
*
表示所有在Σ上定义的有限字符串,包括空字符ε,字符串在字母表Σ上定义的语言L是Σ
*
的一个子集,G产生的语记为L(G)={s∈Σ
*
|δ(q0,s)!},若s
p
,u,s
s
∈Σ
*
,字符串s=s
p
·
u
·
s
s
,则s
p
称为字符串s的前缀,u称为字符串s的子串,s
s
称为字符串s的后缀,且ε和s都是s的前缀、子串或后缀,若s1为s2的前缀,则记为s1≤s2,集合Pre(L)和Suf(L)分别包含L所有的前缀和后缀;1

2)定义L
*
算法:假定一个Teacher的角色,Teacher能正确回答关于未知系统的两种类型的问题:第一种类型是成员资格查询,答案为是或否,答案为是或否取决于所查询的字符串t是否属于系统的行为;第二种类型是等价查询,即所构造的DFA模型是否与系统行为等价,如果等价,则回答是,否则答案为与系统语言的对称差中的字符串t,其中,字符串t被称为反例,它用来对所构造的DFA进行改进,将描述未知系统行为的语言用U表示,并假定U在一个固定的已知有限字母表A上,在任何给定时间,L
*
算法都具有有关A上有限字符串集合的信息,将它们分类为未知系统语言U的成员或非成员,这些信息用观察表OT表示,观察表由三个部分组成:非空有限字符串的前缀闭合集合S、字符串的非空有限后缀闭合集合E和集合((S∪S
·
A)
·
E)到{0,1}的有限映射函数T,观察表用(S,E,T)表示,假定:当且仅当语言L中所有的字符串的前缀也是语言L的成员时,则语言L是前缀闭合的,当且仅当语言L中所有的字符串的后缀也是语言L的成员时,则语言L是后缀闭合的;当且仅当u是未知系统语言U的成员时,T(u)才为1,观察表初始化为S=E={ε},后随着L
*
算法的运行而增加,观察表可视化为一个二维数组,其中行是(S∪S
·
A)的元素,列是E的元素,由行s和列e定位的内容为T(s
·
e),如果s是(S∪S
·
A)的元素,则row(s)表示即E到{0,1}的有限映射函数f,用f(e)=T(s
·
e)表示,L
*
算法采用观察表来构建自动机,用S的元素标记的行是待建模系统状态的候选者,而用E的元素标记的列用于区分这些状态,由S
·
A元素标记的所有行用于构造转移函数,在字母表A上定义一个与观察表(S,E,T)对应的自动机M(S,E,T)=(Q,Σ,δ,q0,Q
m
)如下:自动机M(S,E,T)状态集为Q,初始状态为q0,标记状态为F,转移函数为δ:Q={row(s)|s∈S},q0=row(ε),F={row(s)|s∈S且T(s)=1},δ(row(s),a)=row(s
·
a),其中,L
*
算法如下方法1所示:
方法1为:将S和E初始化为{ε};对ε和每个A中的a做成员资格查询;构造初始观察表(S,E,T);重复:当(S,E,T)未闭合或未一致时:如果(S,E,T)未一致,查找s1,s2∈S,a∈A,e∈E,使得row(s1)=row(s2)且T(s1·
a
·
e)≠T(s2·
a
·
e);在E中添加a
·
e,采用成员资格查询将T拓展到(S∪S
·
A)
·
E,如果(S,E,T)未闭合:查找s1∈S,a∈A,使得对于所有s∈S,row(s1·
a)都不同于row(s);在E中添加s1·
a,采用成员资格查询将T拓展到(S∪S
·
A)
·
E,直到(S,E,T)闭合且一致,令M=M(S,E,T),构造自动机M,询问M是否和目标自动机等价,如果Teacher返回一个反例t:在S中添加t和t的所有前缀,采用成员资格查询将T拓展到(S∪S
·
A)
·
E,直到Teacher对构造的自动机M回复是,停止循环并输出M,其中,如果一个观察表对于S
·
A中的每个t,都有一个S中的s,使得row(t)=row(s),则称这个观察表是闭合的;如果一个观察表对于S中的任意两个元素s1和s2,有row(s1)=row(s2),且对于A中的所有a,都有row(s1·
a)=row(s2·
a),则称这个观察表是一致的;2)生成集合Z
m
:找出(S,E,T)中每个T(u)=true的字符串u,并将u加入Z
m
集合,最终生成Z
m
集合;3)生成得到新观察表(S,E,T

):对集合Z
m
中的每个字符串u向Teacher进行成员资格查询,根据查询的结果修改(S,E,T),若回答依旧为是,则T(u)=true;若回答为否,则修改为T(u)=0,生成新观察表(S,E,T

);4)检查观察表(S,E,T

)是否闭合且一致:首先检查(S,E,T

)是否闭合且一致,若不一致,则修改观察表,得到闭合且一致的观察表(S

,E

,T

);5)生成最终的观察表(S

,E

,T

),构造更新后的自动机模型M

(S

,E

,T

):依据步骤4)得到的观察表构造自动机并进行等价查询,若查询结果为不等价,则根据返回的反例t更新观察表,再次构造新的自动机进行查询,直到查询结果为等价,即根据最终的闭合且一致的观察表(S

,E

,T

)构造的自动机M

(S

,E

,T

)为新系统的自动机模型,用S

的成员标记的行是待建模系统状态的候选者,而用E

的成员标记的列用于区分这些状态,由S

·
A元素
标记的所有行用于构造转移函数。2.根据权利要求1所述的基于L
*
算法的自动机模型更新方法,其特征在于,所述更新方法针对以下三种情况分别为:2

1)情况1即删除一个系统状态:假设(S,E,T)表示原系统的观察表...

【专利技术属性】
技术研发人员:张慧敏施薏
申请(专利权)人:广西师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1