基于图匹配状态空间表示的设计模式挖掘与K-means聚类算法改进
设计模式挖掘
在设计模式挖掘中,我们可以通过图匹配的状态空间表示来检测设计模式是否存在于模型图中。具体判断规则如下:
- 如果对于任何关系,模型图中存在多个对应实例,那么设计模式的多个实例或部分实例可能存在于模型图中。
- 如果最终映射(F_Mi)为空,则设计模式不存在于模型图中。
- 如果F_Mi覆盖了设计模式的每个节点,则设计模式完整存在于模型图中。
- 否则,设计模式部分存在于模型图中。
下面通过几个具体的设计模式检测案例来详细说明:
- 策略设计模式:精确匹配
- 策略设计模式有直接关联关系和聚合关系两种关系。我们先考虑模型图(MG)的泛化关系图和策略设计模式(DPG)的泛化关系图,应用Match_DPG_MG算法进行匹配。
- 初始时,Match_DPG_MG(s) 为空,不覆盖DPG的所有节点,通过计算得到P(s) = ((1, a), (2, a), (3, a))。
- 计算F(s, 1, a)时,发现存在图 - 子图同构,得到s’ = (1, a),进而P_M = (1, a)。
- 继续调用Match_DPG_MG (s’),重新计算P(s),最终得到P_M1 = {((1, a), (2, b)), ((1, a), (3, b))}。
- 对于聚合关系,同样进行匹配计算,得到P_M2 = {(1, a), (5, c)}。
- 最后应用Union_Relationships算法,得到F_Mi = ((1, a), (2, b), (5, c))和F_M2 = ((1
超级会员免费看
订阅专栏 解锁全文

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



