奥卡姆剃刀原理在Petri网覆盖性问题中的应用
1. ICover算法概述
ICover过程对每个输入都能终止且结果正确。从高级并发程序转换而来的Petri网,常包含从任何可达标识都无法触发的转换。下闭不变量可用于预处理算法,过滤掉其中一些转换。若转换t在不变量I的任何标识中都未启用,则可安全移除它,而不改变覆盖集。当I是下闭的,检测此属性就简化为I中的成员问题。实际上,转换t在下闭标识集D中启用,当且仅当D包含由$m_t(p) = F(p, t)$(对每个位置p)定义的标识$m_t$。
ICover算法由一个先验已知的下闭不变量作为输入进行参数化。一方面,该不变量要足够精确,以丢弃标识(在第8行)并加速主循环;另一方面,需高效判断一个标识是否在不变量中,避免减慢主循环。接下来将介绍如何生成具有高效成员测试的下闭不变量。
2. 下闭不变量的状态不等式
状态方程为Petri网可达性关系提供了简单的上近似,在最近两个用于判定覆盖性问题的算法中得到成功应用。通过引入总函数$\Delta(t)$(称为转换t的位移),定义为$\Delta(t)(p) = F(t, p) - F(p, t)$(对每个位置p),可得到该方程。
假设标识$m_{final}$在Petri网N的覆盖集中,则存在转换序列$t_1 … t_k$和标识$m \geq m_{final}$,使得$m_{init} \xrightarrow{t_1} \cdots \xrightarrow{t_k} m$。由此可推导出关系:
$m_{init} + \Delta(t_1) + \cdots + \Delta(t_k) = m \geq m_{final}$
重新排列$\D
超级会员免费看
订阅专栏 解锁全文

766

被折叠的 条评论
为什么被折叠?



