第19章补充 方法匹配判定规则
19.29 方法匹配判定规则的定义
方法匹配判定规则(Method Matching Decision Rules)是指用于确定两个方法之间是否存在对应关系,以及确定对应程度和匹配类型的一组认知判断规则。
方法匹配不是简单地执行:
M₁ ↔ M₂
而是必须经过一组明确的条件判断:
方法识别 → 元素匹配 → 结构判断 → 条件判断 → 整体判定 → 匹配分类
因此,方法匹配必须具有明确的判定规则。
19.30 方法匹配的基本判定单位
设:
M₁ = (G₁,O₁,C₁,A₁,P₁,R₁)
M₂ = (G₂,O₂,C₂,A₂,P₂,R₂)
其中:
- G:目标;
- O:对象;
- C:条件;
- A:动作;
- P:过程;
- R:结果。
首先分别计算六个基本匹配关系:
g = Match(G₁,G₂)
o = Match(O₁,O₂)
c = Match(C₁,C₂)
a = Match(A₁,A₂)
p = Match(P₁,P₂)
r = Match(R₁,R₂)
其中每一个匹配结果可以采用离散值:
1 = 匹配
0 = 不匹配
也可以扩展为:
0 = 不匹配
1 = 弱匹配
2 = 部分匹配
3 = 高度匹配
4 = 完全匹配
因此,方法匹配首先不是直接判断方法,而是先建立方法组成元素的匹配结果。
19.31 规则一:方法身份判定规则
在进行方法匹配之前,首先必须判断两个对象是否确实属于“方法”。
如果:
M₁ ∉ Method
或者:
M₂ ∉ Method
则不能进入方法匹配。
判定:
非方法对象 → 不进入方法匹配
该规则用于避免将对象、行为、动作或者状态直接当作方法进行匹配。
19.32 规则二:目标一致性判定规则
目标是方法的方向约束。
如果:
G₁ = G₂
则两个方法具有直接目标一致性。
如果:
G₁ ≠ G₂
则不能直接判定为相同方法。
因此:
G₁ ≠ G₂ → M₁ ≠ M₂
但是,目标不同并不一定意味着两个方法完全不存在关系。
如果两个目标具有父子目标、阶段目标或者功能对应关系,则仍然可以形成:
目标关联 → 方法弱匹配
因此需要区分:
目标相同
和:
目标相关
两种情况。
19.33 规则三:对象适用性判定规则
方法必须作用于一定对象。
如果两个方法作用于完全不同且不存在对应关系的对象,则不能判定为完全方法匹配。
即:
O₁ ≠ O₂ ∧ Relation(O₁,O₂)=0
则:
M₁ ≠ M₂
如果:
O₁ ↔ O₂
则允许继续进行方法匹配。
例如:
Door ↔ Door
属于直接对象匹配。
而:
Door ↔ Box
如果不存在规定的对象对应关系,则不能形成直接方法匹配。
19.34 规则四:对象类型优先判定规则
对象匹配必须首先判断对象类型。
设:
Type(O₁)
和:
Type(O₂)
如果:
Type(O₁)=Type(O₂)
则形成类型一致。
如果:
Type(O₁)≠Type(O₂)
则需要进一步检查是否存在允许的类关系:
ClassRelation(Type₁,Type₂)
只有存在规定的继承、包含、对应或者替代关系时,才允许继续进行方法匹配。
因此:
对象类型匹配 → 对象实例匹配 → 方法对象匹配
不能跳过对象类型直接进行方法整体判定。
19.35 规则五:条件满足判定规则
方法具有适用条件。
设:
C₁ = {c₁,c₂,…,cₙ}
C₂ = {d₁,d₂,…,dₘ}
如果两个方法的必要条件存在冲突,则不能判定为完全匹配。
例如:
C₁:对象必须关闭
C₂:对象必须打开
如果两者属于同一执行阶段,则:
Conflict(C₁,C₂)=1
于是:
M₁ ≠ M₂
如果条件不存在冲突,则可以继续进行匹配。
19.36 规则六:必要条件优先规则
方法条件可以分为:
必要条件
和:
非必要条件
如果必要条件不匹配,则不能判定为完全方法匹配。
即:
Necessary(C₁) ↔ Necessary(C₂) = 0
则:
FullMatch(M₁,M₂)=0
而非必要条件差异只能降低匹配程度,不一定直接否定方法匹配。
因此:
必要条件冲突 → 否定完全匹配
非必要条件差异 → 降低匹配等级
19.37 规则七:动作集合判定规则
方法中的动作必须进行集合匹配。
设:
A₁ = {a₁,a₂,…,aₙ}
A₂ = {b₁,b₂,…,bₘ}
如果主要动作均存在对应关系:
∀aᵢ ∈ A₁, ∃bⱼ ∈ A₂ : Match(aᵢ,bⱼ)=1
则说明两个方法具有较高动作覆盖程度。
如果只有少量动作对应,则只能形成部分方法匹配。
因此:
动作覆盖率 → 方法匹配程度
19.38 规则八:动作顺序判定规则
动作集合相同并不能直接判定方法相同。
例如:
A₁ → A₂ → A₃
和:
A₁ → A₃ → A₂
虽然动作集合相同:
{A₁,A₂,A₃} = {A₁,A₂,A₃}
但是顺序不同:
Sequence₁ ≠ Sequence₂
因此:
动作集合匹配 ≠ 方法完全匹配
只有当规定的关键动作顺序也对应时,才能提高整体方法匹配等级。
19.39 规则九:关键动作判定规则
并非所有动作对方法的重要程度相同。
方法可以包含:
关键动作
和:
辅助动作
如果关键动作不匹配,即使辅助动作高度相似,也不能判定为完全方法匹配。
即:
KeyActionMatch = 0
则:
FullMethodMatch = 0
因此:
关键动作优先于普通动作。
19.40 规则十:过程连续性判定规则
方法必须形成连续过程。
例如:
A₁ → A₂ → A₃
如果两个方法分别为:
A₁ → A₂ → A₃
和:
B₁ → B₂ → B₃
并且:
A₁ ↔ B₁
A₂ ↔ B₂
A₃ ↔ B₃
则过程具有连续对应关系。
如果出现:
A₁ → A₂ → A₃
对应:
B₁ → B₃
导致关键过程缺失,则只能形成部分匹配。
因此:
过程完整性是方法匹配的重要条件。
19.41 规则十一:结果一致性判定规则
如果两个方法最终结果一致:
R₁ = R₂
则两个方法具有结果一致性。
结果一致可以增强方法匹配。
但是:
R₁ = R₂
不能单独推出:
M₁ = M₂
因为不同方法可以产生相同结果。
所以:
结果一致 → 增强匹配
而不是:
结果一致 → 直接判定相同方法
19.42 规则十二:目标—结果一致性规则
方法必须保持目标与结果之间的逻辑一致性。
即:
Goal → Process → Result
如果方法目标是:
移动对象
但结果却是:
对象保持原位置
则目标与结果之间存在不一致。
因此:
Goal-Result Consistency = 0
时,该方法不能被判定为有效对应方法。
这条规则用于保证方法本身的认知完整性。
19.43 规则十三:结构一致性判定规则
方法整体结构可以表示为:
G → O → C → A → P → R
两个方法:
M₁:G₁ → O₁ → C₁ → A₁ → P₁ → R₁
M₂:G₂ → O₂ → C₂ → A₂ → P₂ → R₂
如果关键节点和关键关系均对应:
Structure(M₁) ↔ Structure(M₂)
则可以形成结构匹配。
结构一致性是判断完全方法匹配的重要依据。
19.44 规则十四:核心结构优先规则
方法中可以区分:
核心结构
和:
附加结构
如果核心结构一致,而附加结构不同,可以形成高度匹配或者部分匹配。
例如:
M₁:A₁ → A₂ → A₃
M₂:B₁ → B₂ → B₃ → B₄
如果:
A₁ ↔ B₁
A₂ ↔ B₂
A₃ ↔ B₃
而B₄只是附加检查动作,则两个方法仍然可以形成较高程度的结构匹配。
因此:
核心结构优先于附加结构。
19.45 规则十五:完全匹配判定规则
如果满足:
G₁ ↔ G₂
O₁ ↔ O₂
C₁ ↔ C₂
A₁ ↔ A₂
P₁ ↔ P₂
R₁ ↔ R₂
并且不存在关键条件冲突、关键动作缺失和关键过程冲突,则:
M₁ = M₂
在方法认知意义上判定为:
完全匹配
即:
FullMatch(M₁,M₂)=1
19.46 规则十六:高度匹配判定规则
如果目标、对象、核心条件、核心动作、主要过程和结果均对应,但存在少量非核心差异,则:
M₁ ≈ M₂
判定为:
高度匹配
例如:
M₁:抓取 → 移动 → 放置
M₂:夹取 → 搬运 → 放置 → 检查
如果“检查”属于附加动作,则两者仍可以形成高度方法匹配。
19.47 规则十七:部分匹配判定规则
如果两个方法只有部分结构对应:
G₁ ↔ G₂
O₁ ↔ O₂
但:
A₁ ≠ A₂
或者:
P₁ ≠ P₂
则不能判定为完全匹配。
如果仍存在有效公共结构:
CommonStructure(M₁,M₂) ≠ ∅
则:
M₁ ⇢ M₂
判定为:
部分匹配
19.48 规则十八:等价方法判定规则
如果两个方法内部结构不同,但满足:
G₁ ↔ G₂
O₁ ↔ O₂
R₁ ↔ R₂
并且两个方法均能够完成规定目标,则可以形成:
M₁ ≈ M₂
即:
等价方法关系
等价不表示结构完全相同,而表示两个方法在规定的目标和结果条件下具有功能对应关系。
因此:
结构不同 + 目标对应 + 结果对应 → 等价方法
19.49 规则十九:替代方法判定规则
如果:
G₁ ↔ G₂
并且:
R₁ ↔ R₂
但是:
P₁ ≠ P₂
同时两个方法均可以达到目标,则可以建立:
M₁ ⇔ M₂
表示:
方法替代关系
例如:
方法A:人工执行
方法B:机械执行
二者过程不同,但如果均能达到同一目标并产生对应结果,则属于替代方法。
19.50 规则二十:不匹配判定规则
如果满足以下任一核心否定条件:
目标完全冲突
或:
对象完全不适用
或:
必要条件冲突
或:
核心动作完全不存在对应关系
或:
核心过程完全不对应
或:
结果与目标严重冲突
则:
M₁ ≠ M₂
判定为:
不匹配
19.51 方法匹配的逻辑判定表
可以将基本规则归纳为:
| 条件 | 判定 |
|---|---|
| 方法身份不成立 | 不进入方法匹配 |
| 目标完全冲突 | 不匹配 |
| 对象完全不适用 | 不匹配 |
| 必要条件冲突 | 不匹配 |
| 核心动作不对应 | 不匹配 |
| 核心过程不对应 | 不匹配 |
| 目标、对象、条件、结构、结果全部对应 | 完全匹配 |
| 核心结构对应,存在少量非核心差异 | 高度匹配 |
| 只有部分结构对应 | 部分匹配 |
| 目标和结果对应、结构不同 | 等价/替代匹配 |
| 核心条件或核心结果存在冲突 | 不匹配 |
19.52 方法匹配的判定优先级
方法匹配不能按照任意顺序进行,而应建立认知优先级:
方法身份
↓
目标
↓
对象
↓
必要条件
↓
核心动作
↓
动作顺序
↓
过程结构
↓
结果
↓
整体方法结构
↓
匹配类型
其中前面的核心条件具有否决后续判断的能力。
例如:
必要条件冲突
↓
停止完全匹配判断
不需要继续通过大量普通动作相似性证明两个方法相同。
因此:
核心约束优先于普通相似元素。
19.53 方法匹配的否决规则
为了防止局部高度相似导致错误匹配,需要建立否决规则。
如果:
GoalConflict = 1
则:
FullMatch = 0
如果:
NecessaryConditionConflict = 1
则:
FullMatch = 0
如果:
KeyActionMissing = 1
则:
FullMatch = 0
如果:
KeyProcessConflict = 1
则:
FullMatch = 0
如果:
ResultConflict = 1
则:
FullMatch = 0
因此:
任一核心否决条件成立 → 完全匹配失败
但完全匹配失败不一定意味着“不匹配”。
仍然可以进一步判断:
高度匹配 / 部分匹配 / 等价 / 替代
19.54 方法匹配的充分条件与必要条件
在方法匹配理论中,需要区分必要条件和充分条件。
必要条件
方法必须满足:
MethodIdentity = 1
并且:
GoalCompatibility = 1
ObjectCompatibility = 1
NecessaryConditionCompatibility = 1
否则不能进入完全方法匹配。
充分条件
如果:
目标对应
对象对应
必要条件对应
核心动作对应
核心过程对应
结果对应
并且:
不存在核心冲突
则可以判定:
FullMethodMatch = 1
因此:
核心元素对应 + 核心结构对应 + 无核心冲突 → 完全方法匹配
19.55 方法匹配的规则链
完整判定可以表示为:
M₁,M₂
↓
方法身份判断
↓
目标判断
↓
对象判断
↓
必要条件判断
↓
核心动作判断
↓
动作顺序判断
↓
过程判断
↓
结果判断
↓
核心冲突检查
↓
整体结构判断
↓
匹配类型判定
↓
MatchResult
最终形成:
方法输入 → 方法解析 → 条件过滤 → 结构比较 → 匹配判定 → 匹配结果
19.56 方法匹配的形式化判定
定义:
MM(M₁,M₂)
为方法匹配函数。
可以定义完全匹配:
MM(M₁,M₂)=1
当且仅当:
Gm=1 ∧ Om=1 ∧ Cm=1 ∧ Am=1 ∧ Pm=1 ∧ Rm=1 ∧ Conflict=0
其中:
- Gm:目标匹配;
- Om:对象匹配;
- Cm:条件匹配;
- Am:动作匹配;
- Pm:过程匹配;
- Rm:结果匹配;
- Conflict:核心冲突标记。
如果:
Conflict=1
则:
FullMatch=0
如果完全匹配条件不成立,但存在:
GoalMatch=1 ∧ ObjectMatch=1 ∧ ResultMatch=1
并且两个方法能够独立实现目标,则可以进一步判定:
EquivalentMatch=1
如果过程存在明显差异,则可以判定:
AlternativeMatch=1
如果只有部分结构对应,则:
PartialMatch=1
19.57 方法匹配的最终判定模型
可以建立统一的判定模型:
方法身份
→
目标兼容
→
对象兼容
→
必要条件兼容
→
核心动作兼容
→
过程兼容
→
结果兼容
→
核心冲突检查
→
整体结构判断
→
完全 / 高度 / 部分 / 等价 / 替代 / 不匹配
最终形成:
Method₁ → Method Matching Rules → Method₂ → Match Result
19.58 方法匹配判定规则的核心原则
方法匹配判定规则最终可以归纳为六条核心原则。
第一,目标原则。
方法必须首先具有相同或兼容的目标方向。
第二,对象原则。
方法必须作用于相同、对应或允许转换的对象。
第三,条件原则。
必要条件不能发生核心冲突。
第四,结构原则。
方法不能仅通过单个动作进行判断,而必须考虑整体结构。
第五,过程原则。
动作顺序和关键过程属于方法的重要组成部分。
第六,结果原则。
方法必须能够产生与目标相对应的结果。
因此:
目标 + 对象 + 条件 + 核心动作 + 过程 + 结果 + 无核心冲突 → 方法匹配判定
进一步形成:
元素匹配 → 结构匹配 → 关系判定 → 方法分类
这使方法匹配从“相似性描述”进入了真正的规则化认知判定。
19.59 本节小结
方法匹配判定规则的作用,是将第19章的方法匹配从概念层推进到判定层。
方法匹配不是:
名称相同 → 方法相同
也不是:
动作相似 → 方法相同
而是:
方法身份 → 目标 → 对象 → 条件 → 动作 → 顺序 → 过程 → 结果 → 冲突检查 → 整体结构 → 匹配类型
其中核心规则为:
核心条件冲突 → 否决完全匹配
核心动作缺失 → 否决完全匹配
核心过程冲突 → 否决完全匹配
目标、对象、条件、动作、过程、结果均对应且无核心冲突 → 完全匹配
核心结构对应但存在非核心差异 → 高度匹配
部分结构对应 → 部分匹配
目标和结果对应、实现结构不同 → 等价或替代匹配
核心目标、对象、条件或结果发生冲突 → 不匹配
由此,方法匹配形成了从元素比较、结构比较到逻辑判定的完整认知机制,为下一层的方法调用匹配提供明确的候选方法关系基础。