- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序与系统模型-例子2c
* * * * * * * * * * * * * * * * * * * * * * * * z0 z12 z35 z67 z97 z46 z20 z24 z47 抽象状态变化图: z78 z55 p?q?r p: a=s0 q: b=t0 r: t=0 s: a=s0?b=t0 ?p??q??r p??q?r p??q??r p??q??r ?p?q??r ?p?q??r ?p?q??r ?p??q?r ?p??q * 迁移关系 (z35,z67) (z35,z46/z47) (z35,{z67}) (z35,{z46,z47}) (z35,a,{z67}) (z35,b,{z46,z47}) * 交错迁移系统 动作信息 系统状态 状态变化 初始状态 符号 抽象状态 三元组(S,?,2S) 状态集合 交错迁移系统 * 交错迁移系统:例子 标号集合: 状态集合: 迁移关系: 初始状态集: { a, b } { z0, z1, z2, z3, … } { (z0,a,{z35}), (z35,b,{z46,z47}), … } { z0 } * s01 s0 s1 s2 s11 s02 s12 p,q p p q p?q 交错迁移系统:例2 p,q q s2 p,q * s01 s11 s02 s12 p,q p 交错迁移系统:例2 p,q q s2 p,q s01 s11 s02 s12 p,q p q s2 p,q * 交错迁移系统:例2 s01 s11 s02 s12 p,q p q s2 p,q s0 q q q p,q p,q s01 s11 s02 s12 p,q p q s2 p,q * 交错迁移系统:例2 (s0, p, {s01}), (s0, pq,{s02}), (s01,q, {s11,s12}), (s02,q, {s11,s12}), (s11,q, {s11,s12}), (s11,pq,{s2}), (s12,q, {s11,s12}), (s12,pq,{s2}), (s2, pq,{s2}) * 交错迁移系统:例2 标号集合: 状态集合: 迁移关系: 初始状态集: { p,q,pq,?} { s0, s01,s02,s11,s12,s2 } { (s0,p,{s01}), (s0,pq,{s02}), … } { s0 } * 火车进站控制 S0 S3 og, req S2 S1 train ctr ctr og train og, gr ig tr ctr ctr tr ctr tr * 非确定型自动机/确定型自动机 * 非确定型Buchi自动机 L(A) = (α+β)*αω S0 S1 S1 α,β α α * 确定型Buchi自动机 L(B) = L(?A) = (α*β)ω S0 S1 S0 β α α β * 确定型Buchi自动机的补 L(A) ≠ (α+β)*αω αω αn1 βαω αn1 βαn2 βαω … αn1 αn1 βαn2 αn1 βαn2 βαn3 … 无限多个β、无限多次经过接受状态 * Buchi自动机非空判定 start() { W = A = B = {}; for each initial state s ? I, if (s is not in A) { add s to W; dfs1(); } } * Buchi自动机非空判定 dfs1() { q = last element from W; add q to A; for each successor state s of q, if (s is not in A) { add s to W; dfs1(); } if (accept(q)) { add q to B; dfs2(); } delete q from W; } * Buchi自动机非空判定 dfs2() { q = last element from B; for each successor state s of q, if (s is in W) report(“nonempty”); if (s is not in B) { add s to B; dfs2(); } } * 算法正确性和复杂度 算法报告 “nonempty”当且仅当自动机的语言非空 Buchi自动机语言非空判定算法的复杂度是线性的 * * * * * * * * * * * * * * 标号迁移系统 中国科学院软件研究所
文档评论(0)