首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第19章 方法匹配

第19章 方法匹配

19.1 方法匹配的提出背景

在认知过程中,系统面对一个目标时,不仅需要识别对象、属性、关系、行为和动作,还需要判断当前所面对的方法与已有方法之间是否存在对应关系。

例如,一个对象需要从位置A移动到位置B,当前形成的方法可能是:

抓取 → 移动 → 放置

系统已有的方法可能是:

夹取 → 搬运 → 放置

两个方法虽然使用了不同的动作名称,但其目标、对象、过程和结果可能具有对应关系。

因此,认知系统不能只通过方法名称判断两个方法是否相同,也不能只比较某几个动作,而需要从方法整体结构判断:

方法A是否与方法B属于相同、相似、对应、替代或不同的方法。

由此产生方法匹配理论。

方法匹配处于方法构建匹配之后、方法调用匹配之前。

完整关系可以表示为:

方法元素 → 方法构建 → 方法形成 → 方法匹配 → 方法调用

方法构建解决:

方法如何形成?

方法匹配解决:

已经形成的两个方法是否对应?

方法调用匹配解决:

当前是否应该调用某一个方法?

三个概念具有不同的认知职责。


19.2 方法匹配的定义

方法匹配(Method Matching)是指认知系统根据目标、对象、条件、动作、过程、结构和结果等特征,对两个或多个方法进行对应性判断,以确定它们之间是否存在方法上的认知关系。

设:

M₁ = 方法A

M₂ = 方法B

则方法匹配表示为:

M₁ ↔ M₂

其中:

  • M₁:被匹配方法;
  • M₂:目标方法;
  • :方法之间的对应关系。

方法匹配的结果可以是:

相同

高度对应

部分对应

可替代

弱对应

不匹配

因此,方法匹配不是简单的名称比较,而是对方法整体认知结构进行判断。


19.3 方法匹配的基本对象

方法匹配的基本对象是已经形成的方法。

一个方法可以表示为:

M = (G,O,C,A,P,R)

其中:

  • G:Goal,目标;
  • O:Object,对象;
  • C:Condition,条件;
  • A:Action,动作;
  • P:Process,过程;
  • R:Result,结果。

因此两个方法:

M₁ = (G₁,O₁,C₁,A₁,P₁,R₁)

M₂ = (G₂,O₂,C₂,A₂,P₂,R₂)

需要判断:

G₁ ↔ G₂

O₁ ↔ O₂

C₁ ↔ C₂

A₁ ↔ A₂

P₁ ↔ P₂

R₁ ↔ R₂

这些局部匹配关系共同构成方法整体匹配。


19.4 方法匹配与方法构建匹配的区别

方法构建匹配和方法匹配关系密切,但两者不是同一个概念。

方法构建匹配研究:

一个方法内部是如何构建的。

方法匹配研究:

两个已经形成的方法之间是否对应。

例如:

方法A:

目标 → 对象 → 条件 → 动作 → 过程 → 结果

方法构建匹配研究这些元素如何组织成为方法A。

而方法匹配研究:

方法A ↔ 方法B

即判断方法A和方法B是否属于对应的方法。

因此:

方法构建匹配 = 方法内部结构匹配

方法匹配 = 方法之间整体关系匹配

这是两个不同的认知层次。


19.5 方法匹配与方法调用匹配的区别

方法匹配发生在方法知识层。

方法调用匹配发生在运行过程层。

例如系统中存在:

M₁ = MoveObject

M₂ = CarryObject

方法匹配判断:

MoveObject ↔ CarryObject

是否存在目标、对象、过程和结果上的对应关系。

而实际执行时出现:

MoveObject(ObjectA, PositionB)

此时需要判断:

当前对象是否正确?

当前参数是否正确?

当前条件是否满足?

当前状态是否允许调用?

这属于方法调用匹配。

因此:

方法匹配 → 方法调用匹配

不是:

方法匹配 = 方法调用匹配

前者属于方法认知关系,后者属于实际调用关系。


19.6 方法匹配的核心条件

方法匹配至少包含以下几个基本条件:

目标对应

对象对应

条件对应

动作对应

过程对应

结果对应

其中,目标和结果通常决定方法的整体方向,动作和过程决定方法的实现结构,对象和条件决定方法适用范围。

因此可以表示为:

方法匹配 = 目标 + 对象 + 条件 + 动作 + 过程 + 结果


19.7 目标匹配

目标匹配是方法匹配的重要基础。

如果两个方法具有完全不同的目标,则即使它们包含部分相同动作,也不能直接认为两个方法匹配。

例如:

方法A:打开门

方法B:关闭门

两者都可能包含:

接触门 → 操作门

但是目标不同:

G₁ = Open

G₂ = Close

因此:

G₁ ≠ G₂

整体方法不能直接判定为相同。

目标匹配解决的是:

两个方法是否朝向同一个认知目标。


19.8 对象匹配

方法必须作用于对象,因此对象也是方法匹配的重要条件。

例如:

方法A:打开门

方法B:打开箱子

两者目标都可以描述为“打开”,但对象类别不同。

因此:

Goal₁ = Goal₂

并不能推出:

Method₁ = Method₂

还必须判断:

Object₁ ↔ Object₂

对象匹配进一步可以进入:

对象类型 → 对象属性 → 对象状态

例如:

Door + Closed

和:

Box + Closed

即使状态相同,也不能因为“Closed”相同而认为两个方法相同。

因此方法匹配必须保持对象结构。


19.9 条件匹配

方法具有适用条件。

设:

C = {C₁,C₂,…,Cₙ}

如果两个方法的条件完全不同,则它们可能属于不同的方法。

例如:

方法A:直接抓取

条件:

对象可直接接触

而:

方法B:先解除限制,再抓取

条件:

对象受到限制

两个方法虽然最终都可以实现抓取,但方法条件不同。

因此:

条件差异 → 方法差异

条件匹配用于判断两个方法是否具有相同或者对应的适用范围。


19.10 动作匹配

方法通常由多个动作构成。

例如:

M₁ = A₁ → A₂ → A₃

M₂ = B₁ → B₂ → B₃

需要判断:

A₁ ↔ B₁

A₂ ↔ B₂

A₃ ↔ B₃

动作匹配越高,两个方法的结构通常越接近。

但是:

动作匹配高 ≠ 方法一定相同

因为方法还受到目标、条件、对象、过程和结果的约束。


19.11 过程匹配

过程是方法的重要组成部分。

例如:

方法A:

获取 → 操作 → 完成

方法B:

获取 → 检查 → 操作 → 完成

两者具有相同的起点和终点,但是中间增加了一个检查过程。

因此:

动作集合具有一定对应关系

但:

过程结构并不完全相同

这说明方法匹配必须考虑过程,而不能只比较动作集合。


19.12 结果匹配

方法最终产生结果。

设:

R₁ = 方法A的结果

R₂ = 方法B的结果

如果:

R₁ ↔ R₂

则说明两个方法在结果方向上具有对应关系。

例如:

方法A → 对象到达目标位置

方法B → 对象到达目标位置

虽然具体动作可能不同,但结果一致,因此两者存在方法层面的对应可能。

但是结果相同仍然不能单独证明方法相同。

因此:

结果匹配是方法匹配的重要条件,但不是唯一条件。


19.13 方法整体匹配

方法整体匹配是将多个局部匹配结果综合起来。

设:

Gm = GoalMatch

Om = ObjectMatch

Cm = ConditionMatch

Am = ActionMatch

Pm = ProcessMatch

Rm = ResultMatch

则方法匹配可以表示为:

MM = F(Gm,Om,Cm,Am,Pm,Rm)

其中:

MM = Method Matching

表示方法整体匹配结果。

如果主要结构全部对应:

MM → 完全匹配

如果核心结构对应但存在部分差异:

MM → 部分匹配

如果目标相同但方法过程不同:

MM → 目标对应

如果目标和结构都不存在对应:

MM → 不匹配


19.14 方法匹配的类型

根据匹配程度,可以将方法匹配划分为以下类型。

19.14.1 相同方法匹配

两个方法的目标、对象、条件、动作、过程和结果基本一致。

表示:

M₁ = M₂

这种匹配说明两个方法可以视为同一方法。


19.14.2 等价方法匹配

两个方法内部动作不同,但最终目标和结果一致,并且在认知功能上可以实现相同效果。

表示:

M₁ ≈ M₂

这里的“≈”表示方法等价或功能对应,而不是结构完全相同。


19.14.3 部分方法匹配

两个方法只有部分结构对应。

例如:

A₁ → A₂ → A₃

和:

B₁ → B₂ → B₃ → B₄

其中前三个动作存在对应关系,但整体过程不同。

因此:

M₁ ⇢ M₂

表示存在部分对应。


19.14.4 替代方法匹配

两个方法的内部结构不同,但是都可以完成同一目标。

例如:

方法A:人工操作

方法B:机械操作

如果两者都能够实现同一个目标,则可以形成替代方法关系。

表示:

M₁ ⇔ M₂

这种关系强调方法功能上的可替代性。


19.14.5 不匹配

如果目标、对象、条件、过程和结果均不存在有效对应关系,则:

M₁ ≠ M₂

形成方法不匹配。


19.15 方法匹配的结构模型

方法匹配可以表示为:

M₁

目标

对象

条件

动作

过程

结果

与另一个方法:

M₂

目标

对象

条件

动作

过程

结果

进行对应。

最终形成:

M₁ ↔ M₂

因此,方法匹配实际上是一个结构对应过程。


19.16 方法匹配的优先级

不同方法元素对整体方法的影响并不完全相同。

通常可以形成:

目标 → 对象 → 条件 → 过程 → 结果 → 动作细节

目标决定方法方向。

对象决定方法作用范围。

条件决定方法适用范围。

过程决定方法组织方式。

结果决定方法最终效果。

动作细节决定方法内部具体操作。

因此,在方法匹配过程中,应当避免只依据单一动作进行判断。


19.17 方法名称匹配不能代替方法匹配

方法名称可以作为方法识别依据,但不能作为完整匹配依据。

例如:

Move

MoveObject

Carry

这些名称可能不同,但它们可能具有一定的方法对应关系。

反过来,两个名称相同的方法也不一定完全相同。

例如:

Open

可以作用于:

Door

也可以作用于:

Box

其对象、条件和过程可能不同。

因此:

名称匹配 ≠ 方法匹配

正确关系应该是:

名称识别 → 方法识别 → 方法结构读取 → 方法匹配


19.18 方法匹配与行为匹配

行为匹配研究行为之间是否对应。

方法匹配研究方法之间是否对应。

二者存在上下关系:

方法 → 动作 → 行为

例如:

方法:

抓取 → 移动 → 放置

产生行为:

对象被移动

行为匹配可能只判断:

行为A ↔ 行为B

而方法匹配进一步判断:

方法A ↔ 方法B

因此,一个行为可能由多个不同方法产生。

形成:

方法A → 行为

方法B → 行为

两个方法产生相似行为,并不意味着两个方法完全相同。


19.19 方法匹配与动作匹配

动作匹配属于更低层次。

例如:

抓取 ↔ 夹取

可以形成动作匹配。

但是:

抓取 → 移动 → 放置

与:

夹取 → 搬运 → 放置

则需要进入方法匹配。

因此:

动作匹配是方法匹配的组成条件之一。

但:

动作匹配不能替代方法匹配。


19.20 方法匹配与状态匹配

方法最终会影响对象状态。

例如:

方法A → 门打开

方法B → 门打开

两种方法都可以产生:

State = Open

因此可以形成:

方法 → 状态结果

但是相同状态并不能说明方法相同。

可能存在:

方法A → 直接打开

方法B → 解除锁定 → 打开

最终状态相同,但方法不同。

因此:

状态匹配 ≠ 方法匹配

状态是方法结果的重要参考,但不能独立决定方法关系。


19.21 方法匹配的认知过程

完整的方法匹配过程可以表示为:

获取方法M₁

获取方法M₂

识别目标

匹配目标

匹配对象

匹配条件

匹配动作

匹配过程

匹配结果

形成整体方法匹配关系

输出匹配类型

即:

M₁ → 元素解析 → 结构比较 → 整体判断 → 匹配结果


19.22 方法匹配结果

方法匹配的结果可以形成一个独立的认知对象:

MethodMatchResult
{
    sourceMethod
    targetMethod
    goalMatch
    objectMatch
    conditionMatch
    actionMatch
    processMatch
    resultMatch
    matchType
    relation
}

其中:

sourceMethod

表示源方法。

targetMethod

表示目标方法。

goalMatch

表示目标匹配结果。

objectMatch

表示对象匹配结果。

conditionMatch

表示条件匹配结果。

actionMatch

表示动作匹配结果。

processMatch

表示过程匹配结果。

resultMatch

表示结果匹配结果。

matchType

表示匹配类型。

relation

表示最终方法关系。


19.23 方法匹配的工程对象

在认知工程中,可以将方法匹配建立为独立对象:

MethodMatcher
├── matchGoal()
├── matchObject()
├── matchCondition()
├── matchAction()
├── matchProcess()
├── matchResult()
├── classifyMatch()
└── matchMethod()

整体调用关系为:

Method₁ → MethodMatcher → Method₂ → MatchResult

方法匹配器并不负责创建方法,也不负责执行方法。

它只负责:

识别方法之间的对应关系。

因此方法匹配器应当与:

MethodBuilder

和:

MethodInvocation

保持职责分离。


19.24 方法构建、方法匹配与方法调用的三层结构

到本章为止,可以建立清晰的三层关系。

第一层:

方法构建

解决:

方法如何形成。

第二层:

方法匹配

解决:

方法之间如何对应。

第三层:

方法调用

解决:

当前调用哪个方法。

因此完整结构为:

动作 → 方法构建 → 方法

方法 → 方法匹配 → 对应方法

目标 → 方法选择 → 方法调用

这三个层次构成方法认知的完整链条。


19.25 方法匹配的核心原则

方法匹配需要遵循几个基本原则。

第一,目标优先原则

方法首先必须具有相同或对应的目标方向。

第二,对象约束原则

方法必须考虑实际作用对象。

第三,条件约束原则

方法匹配不能脱离适用条件。

第四,结构判断原则

不能仅通过一个动作判断两个方法。

第五,过程判断原则

方法的动作组织过程属于方法结构的一部分。

第六,结果验证原则

方法最终结果可以作为方法对应关系的重要验证依据。

因此:

目标 + 对象 + 条件 + 结构 + 过程 + 结果 → 方法匹配


19.26 方法匹配的完整模型

综合本章内容,可以建立:

方法M₁

目标识别

对象识别

条件识别

动作识别

过程识别

结果识别

方法结构

与M₂进行对应

方法匹配

相同 / 等价 / 部分 / 替代 / 不匹配

该模型表明,方法匹配不是单一条件判断,而是多层认知元素共同形成的整体判断。


19.27 方法匹配在认知体系中的位置

在前面的认知匹配体系中,可以形成:

对象匹配

属性匹配

关系匹配

行为匹配

动作匹配

方法构建匹配

方法匹配

方法调用匹配

状态匹配

场景匹配

其中:

对象匹配解决对象对应。

属性匹配解决对象特征对应。

关系匹配解决对象之间关系对应。

行为匹配解决行为对应。

动作匹配解决具体操作对应。

方法构建匹配解决方法内部结构对应。

方法匹配解决方法整体对应。

方法调用匹配解决实际调用对应。

状态匹配解决状态对应。

场景匹配解决整体场景对应。

这样就形成了从认知元素到认知方法,再到实际执行和场景状态的完整匹配体系。


19.28 本章小结

方法匹配是认知匹配理论中的独立层次。

它建立在方法已经形成的基础之上,不研究方法如何构建,而研究已经形成的方法之间是否存在对应关系。

方法可以表示为:

M = (G,O,C,A,P,R)

方法匹配则表示为:

M₁ ↔ M₂

其主要匹配维度包括:

目标匹配

对象匹配

条件匹配

动作匹配

过程匹配

结果匹配

最终形成:

方法整体匹配

方法匹配的结果可以进一步分为:

相同方法、等价方法、部分匹配、替代方法、不匹配。

由此形成清晰的理论分工:

方法构建匹配 → 判断方法内部结构

方法匹配 → 判断方法之间关系

方法调用匹配 → 判断实际调用关系

因此,方法认知链条进一步完整化:

目标 → 动作 → 方法构建 → 方法 → 方法匹配 → 方法调用 → 行为 → 状态 → 场景

方法由动作形成,通过方法匹配与其他方法建立认知关系,再通过方法调用进入具体执行过程,最终影响对象状态和场景状态。

这使“方法”从一个单纯的执行概念转变为一个具有目标、对象、条件、动作、过程和结果结构,并能够参与认知匹配、方法选择和方法调用的独立认知对象

Leave a Reply

Your email address will not be published. Required fields are marked *