“需要记录动作名称时,可把上述骨架扩展为标号转移系统”
从无标号状态到动作转移 ​
标号转移系统写作
其中
状态机已经给出无标号骨架
便得到它的无标号投影。LTS 的新增信息是“哪一种动作导致了这一步”,不是另造一套与状态机平行的可达性概念。
标签只需是可比较的符号,可以表示程序指令、消息收发、接口调用或环境事件。时间长度、概率与输入输出值若要进入模型,必须由更丰富的标签结构或额外成分明确加入,不能从一个动作名称自动推断。
路径、使能与可达性 ​
有限路径是交替序列
其中
路径保留每一步前后的内部状态与动作。只抽取动作串
若同一对
自动门的状态轨迹 ​
考虑自动门的状态
初始状态为 closed。动作 detect 使门从 closed 到 opening,finish-open 使其到 open,timeout 使其到 closing,finish-close 使其回到 closed。一条完整路径是
若关闭过程中再次 detect,可以加入 closing 到 opening 的转移。模型随后允许两种到达 opening 的历史,但当前状态只保留未来行为所需的信息;如果反向开门速度还依赖已关闭的比例,这个比例也必须进入状态。
该模型能准确回答某动作是否可执行以及什么状态可达,却没有给每个动作持续多久,也没有证明传感器输入会到来。把现实假设遗漏在状态和转移之外,再详尽地枚举图也不能补回它们。
内部动作与弱观察 ​
常用特殊标签 reply。路径中仍记录
多个内部步骤常缩写为
表示零步或多步
隐藏也会制造新的非确定性:两条内部路径投影后可能拥有同一可见动作序列,却在以后允许不同响应。由此可见,动作 trace 一般比完整路径遗忘更多分支结构。
终止、死锁与全转移化 ​
没有任何出边的状态在图论上是 terminal state。它可能表示程序按规格正常结束,也可能表示系统仍有义务却无法继续的 deadlock;两者拥有相同的局部图形,差别来自规格和状态标记。
若时序语义只接受无限路径,常给终止状态增加一个带 stutter 标签的自环,使转移关系 total。这个技术变换会改变含 next 算子的公式如何观察终止,因此必须显式说明,不能把“补自环”当作无语义影响的格式整理。
LTS 适合离散步骤。时间自动机会另行加入时钟、guard 与 reset;Petri 网则把资源和并发使能作为一等结构。给所有离散系统贴上 LTS 表示并不意味着这些扩展信息已经被保留。
参考资料
- Robin Milner, Communication and Concurrency, Prentice Hall, 1989, Chs. 2–4。
- Christel Baier and Joost-Pieter Katoen, Principles of Model Checking, MIT Press, 2008, Ch. 2。
- Rocco De Nicola, “A Gentle Introduction to Process Algebras,” in Formal Methods for Performance Evaluation, Springer, 2007, §§2–3。