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

第26章 方法匹配理论

第26章 方法匹配理论

26.1 方法匹配的提出背景

第25章建立了方法理论,明确了方法由目标、对象、条件、状态、动作、过程和结果组成:

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

但是,系统拥有一个方法,并不意味着这个方法一定适用于当前任务。

同一个目标,在不同对象、不同状态、不同条件下,可能需要使用不同的方法。

例如:

目标=打开容器目标=打开容器

当对象是“门”时,可以使用推开方法;当对象是“瓶子”时,可能需要使用旋开方法。

因此:

目标相同≠方法相同目标相同\neq方法相同

同时,即使对象相同,如果当前状态不同,也可能需要不同的方法。

因此,方法使用之前必须进行方法匹配。

**方法匹配(Method Matching)**是指将当前目标、对象、状态、条件与候选方法进行结构比较,以判断方法是否适用于当前认知任务的过程。

其基本过程为:

当前状态→方法条件→方法匹配→方法选择→方法组合或替换当前状态 \rightarrow 方法条件 \rightarrow 方法匹配 \rightarrow 方法选择 \rightarrow 方法组合或替换

方法匹配理论解决的不是“有没有方法”,而是:

当前情况下,哪个方法能够满足当前目标。


26.2 当前状态

**当前状态(Current State)**是方法匹配发生时,对象、环境、主体以及相关关系所处的实际状态。

当前状态可以表示为:

Sc=(O,A,S,R,C,T)S_c=(O,A,S,R,C,T)

其中:

  • OO:当前对象;
  • AA:对象当前属性;
  • SS:对象当前状态;
  • RR:当前关系;
  • CC:当前条件;
  • TT:当前时间或状态时刻。

当前状态是方法匹配的起点。

例如,一个杯子的当前状态为:

O=杯子O=杯子 S=空S=空 R=桌面R=桌面 C=存在水源C=存在水源

系统需要实现:

G=装水G=装水

那么方法匹配就需要寻找能够使:

Scurrent=空S_{current}=空

变化为:

Starget=有水S_{target}=有水

的方法。

因此:

当前状态→目标状态当前状态 \rightarrow 目标状态

决定了方法匹配的方向。


26.3 当前状态与目标状态

方法匹配不能只判断当前状态,还必须判断目标状态。

定义:

Sc=当前状态S_c=当前状态 Sg=目标状态S_g=目标状态

如果存在方法 MM,使:

M:Sc→SgM:S_c\rightarrow S_g

则该方法具有实现当前目标的可能性。

例如:

杯子为空→倒水方法→杯子有水杯子为空 \rightarrow 倒水方法 \rightarrow 杯子有水

因此:

Sc=空S_c=空 Sg=有水S_g=有水

方法匹配的核心之一就是寻找:

M(Sc,Sg)M(S_c,S_g)

即能够完成当前状态向目标状态转换的方法。


26.4 方法条件

方法条件是方法能够成立和使用的必要条件。

第25章已经定义方法条件:

CM={c1,c2,…,cn}C_M=\{c_1,c_2,\ldots,c_n\}

当前环境也具有条件集合:

Cc={c1′,c2′,…,cm′}C_c=\{c’_1,c’_2,\ldots,c’_m\}

方法匹配需要判断:

CM⊆CcC_M\subseteq C_c

是否成立。

如果方法需要:

CM={有水源,杯子为空}C_M=\{有水源,杯子为空\}

而当前条件为:

Cc={有水源,杯子为空,桌面存在}C_c=\{有水源,杯子为空,桌面存在\}

则方法条件得到满足。

如果:

CM={有水源,杯子为空}C_M=\{有水源,杯子为空\}

而当前只有:

Cc={杯子为空}C_c=\{杯子为空\}

则:

有水源∉Cc有水源\notin C_c

方法不能直接匹配。

因此:

方法条件⊆当前条件方法条件 \subseteq 当前条件

是方法匹配的重要条件。


26.5 当前状态与方法条件的匹配

当前状态和方法条件之间存在直接关系。

方法条件描述:

方法要求什么。

当前状态描述:

当前实际有什么。

因此:

当前状态↔方法条件当前状态\leftrightarrow方法条件

可以定义状态条件匹配:

SCM(Sc,CM)SCM(S_c,C_M)

当方法要求的状态条件全部得到当前状态支持时:

SCM=1SCM=1

否则:

SCM=0SCM=0

例如:

方法要求:

S=关闭S=关闭

当前状态:

Sc=关闭S_c=关闭

则:

SCM=1SCM=1

如果:

Sc=打开S_c=打开

则:

SCM=0SCM=0

这说明方法匹配不是单纯比较方法名称,而是比较方法的适用结构与当前认知状态。


26.6 方法匹配

方法匹配是当前任务需求与候选方法之间的结构比较过程。

当前任务可以表示为:

Q=(G,O,C,S,R)Q=(G,O,C,S,R)

候选方法:

M=(Gm,Om,Cm,Sm,Am,Pm,Rm)M=(G_m,O_m,C_m,S_m,A_m,P_m,R_m)

方法匹配需要比较:

G↔GmG\leftrightarrow G_m O↔OmO\leftrightarrow O_m C↔CmC\leftrightarrow C_m S↔SmS\leftrightarrow S_m R↔RmR\leftrightarrow R_m

并进一步判断动作与过程是否能够完成目标。

因此:

MM(Q,M)=f(Gm,Om,Cm,Sm,Am,Pm,Rm)MM(Q,M)=f(G_m,O_m,C_m,S_m,A_m,P_m,R_m)

方法匹配不是单一条件,而是多个结构条件共同决定的结果。


26.7 目标匹配

目标是方法匹配的第一层。

定义:

GM(Q,M)GM(Q,M)

表示任务目标与方法目标之间的匹配程度。

如果:

Gq=GmG_q=G_m

则:

GM=1GM=1

如果二者完全不同:

GM=0GM=0

如果方法只能完成任务的一部分,则:

0<GM<10<GM<1

例如:

目标=打开门目标=打开门

候选方法:

方法A=打开门方法A=打开门

则目标完全匹配。

而:

方法B=移动到门前方法B=移动到门前

只能提供前置步骤,因此属于部分匹配。


26.8 对象匹配

目标相同还不代表方法可以使用。

还需要判断方法作用对象。

定义:

OM(Oq,Om)OM(O_q,O_m)

表示任务对象与方法对象之间的匹配。

例如:

任务对象=门任务对象=门 方法对象=门方法对象=门

则:

OM=1OM=1

如果:

任务对象=杯子任务对象=杯子

而方法对象为:

门门

则:

OM=0OM=0

对象类匹配可以先于对象实例匹配。

即:

对象类匹配→对象实例匹配对象类匹配 \rightarrow 对象实例匹配

例如:

汽车类→汽车实例汽车类 \rightarrow 汽车实例

先确认方法适用于汽车,再判断当前具体汽车是否满足要求。


26.9 状态匹配

状态匹配判断当前对象状态是否满足方法的初始状态要求。

定义:

SM(Sc,Sm)SM(S_c,S_m)

其中:

  • ScS_c:当前状态;
  • SmS_m:方法要求的状态。

当:

Sc=SmS_c=S_m

时,可以形成完全状态匹配。

如果当前状态经过允许的前置方法能够转换为方法要求状态,则可以形成间接匹配:

Sc→Mp→SmS_c \rightarrow M_p \rightarrow S_m

其中 MpM_p 为前置方法。

因此,状态不匹配并不一定意味着最终任务无法完成,而可能意味着需要先执行另一个方法。


26.10 方法匹配的综合判断

可以建立方法匹配的基本模型:

MM=GM∧OM∧CM∧SM∧RMMM=GM\land OM\land CM\land SM\land RM

其中:

  • GMGM:目标匹配;
  • OMOM:对象匹配;
  • CMCM:条件匹配;
  • SMSM:状态匹配;
  • RMRM:结果匹配。

当:

MM=1MM=1

表示候选方法满足基本匹配条件。

但是,如果候选方法存在多个,还不能直接执行。

必须进入:

方法匹配→方法选择方法匹配 \rightarrow 方法选择


26.11 方法匹配程度

方法并不一定只有“匹配”和“不匹配”两种结果。

可以定义:

MM∈{0,1,2,3,4}MM\in\{0,1,2,3,4\}

其中:

  • 00:不匹配;
  • 11:弱匹配;
  • 22:部分匹配;
  • 33:高度匹配;
  • 44:完全匹配。

例如:

M1=4M_1=4 M2=3M_2=3 M3=2M_3=2

则:

M1>M2>M3M_1>M_2>M_3

说明方法 M1M_1 在当前任务中的结构匹配程度最高。

但是,匹配程度不能单独决定方法选择。

还必须考虑方法条件、执行能力、过程完整性和结果可靠性。


26.12 方法选择

**方法选择(Method Selection)**是从多个匹配方法中,根据目标、状态、条件、结果和方法结构选择适合当前任务的方法的过程。

如果候选方法集合为:

M={M1,M2,…,Mn}M=\{M_1,M_2,\ldots,M_n\}

首先进行方法匹配:

Mi→MMiM_i\rightarrow MM_i

然后形成候选集合:

M′={Mi∣MMi>0}M’=\{M_i|MM_i>0\}

再根据匹配程度和适用条件进行选择。

可以表示为:

M∗=arg⁡max⁡Mi∈M′Score(Mi)M^*=\arg\max_{M_i\in M’}Score(M_i)

其中:

  • M∗M^*:最终选择的方法;
  • Score(Mi)Score(M_i):方法综合评价值。

综合评价可以考虑:

Score=wgG+woO+wcC+wsS+wrR+wpPScore= w_gG+ w_oO+ w_cC+ w_sS+ w_rR+ w_pP

其中:

  • GG:目标匹配;
  • OO:对象匹配;
  • CC:条件匹配;
  • SS:状态匹配;
  • RR:结果匹配;
  • PP:过程匹配;
  • ww:各因素的权重。

权重用于表达不同匹配因素的重要程度。


26.13 方法选择的优先原则

方法选择应遵循结构优先原则。

第一优先:

目标匹配目标匹配

第二优先:

对象匹配对象匹配

第三优先:

状态匹配状态匹配

第四优先:

条件匹配条件匹配

第五优先:

过程完整性过程完整性

第六优先:

结果一致性结果一致性

因此:

目标→对象→状态→条件→过程→结果目标 \rightarrow 对象 \rightarrow 状态 \rightarrow 条件 \rightarrow 过程 \rightarrow 结果

如果核心目标不匹配,即使其他条件很好,也不能作为优先方法。


26.14 方法组合

当一个方法不能独立完成目标时,需要将多个方法组合起来。

**方法组合(Method Composition)**是将两个或多个具有结构关联的方法按照目标、状态、条件和结果连接起来,形成新的方法过程。

假设:

M1:S0→S1M_1:S_0\rightarrow S_1 M2:S1→S2M_2:S_1\rightarrow S_2

则可以组合:

M1→M2M_1\rightarrow M_2

形成:

S0→M1→S1→M2→S2S_0 \rightarrow M_1 \rightarrow S_1 \rightarrow M_2 \rightarrow S_2

例如:

寻找杯子→拿起杯子→倒水寻找杯子 \rightarrow 拿起杯子 \rightarrow 倒水

可以由三个方法组成:

M1→M2→M3M_1\rightarrow M_2\rightarrow M_3

方法组合的关键不是简单排列,而是前一个方法的结果必须能够满足后一个方法的前置条件。

即:

Result(M1)⊇Condition(M2)Result(M_1)\supseteq Condition(M_2)


26.15 方法组合的条件

两个方法能够组合,需要满足以下基本条件:

GoalCompatibility=1GoalCompatibility=1 ObjectCompatibility=1ObjectCompatibility=1 StateContinuity=1StateContinuity=1 ConditionCompatibility=1ConditionCompatibility=1 ResultConditionMatch=1ResultConditionMatch=1

因此:

MC=GC∧OC∧SC∧CC∧RCMC= GC\land OC\land SC\land CC\land RC

其中:

  • GCGC:目标兼容;
  • OCOC:对象兼容;
  • SCSC:状态连续;
  • CCCC:条件兼容;
  • RCRC:结果与下一方法条件兼容。

只有满足这些条件,方法组合才具有结构完整性。


26.16 方法组合的类型

方法可以形成不同的组合结构。

顺序组合:

M1→M2→M3M_1\rightarrow M_2\rightarrow M_3

表示方法按照固定顺序执行。

条件组合:

C1→M1C_1\rightarrow M_1 C2→M2C_2\rightarrow M_2

表示不同条件选择不同方法。

并行组合:

M1∥M2M_1\parallel M_2

表示两个方法之间不存在直接的先后依赖。

循环组合:

M1→M2→M1M_1\rightarrow M_2\rightarrow M_1

表示方法可以重复使用。

因此,方法组合可以形成复杂的结构:

MethodSet→MethodStructureMethodSet \rightarrow MethodStructure


26.17 方法替换

当当前方法无法满足目标时,可以寻找另一个方法进行替换。

**方法替换(Method Substitution)**是指在目标基本保持一致的情况下,用另一个具有相同或兼容目标结果的方法替代原方法。

设:

M1M_1

为原方法,

M2M_2

为候选替代方法。

如果:

Goal(M1)=Goal(M2)Goal(M_1)=Goal(M_2)

并且:

Result(M1)≈Result(M2)Result(M_1)\approx Result(M_2)

则可以考虑:

M1→M2M_1\rightarrow M_2

这里的 ≈\approx 表示结果具有功能等价或目标等价关系,而不要求内部动作完全相同。

例如:

方法A→推开门方法A \rightarrow 推开门

如果无法使用,而存在:

方法B→拉开门方法B \rightarrow 拉开门

只要二者都能实现:

门从关闭→打开门从关闭\rightarrow打开

则:

MA↔MBM_A\leftrightarrow M_B

可以形成替代关系。


26.18 方法替换的条件

方法替换不是任意替换。

至少需要判断:

GoalMatch=1GoalMatch=1 ObjectMatch=1ObjectMatch=1 ResultCompatibility=1ResultCompatibility=1 ConditionAvailable=1ConditionAvailable=1 StateApplicable=1StateApplicable=1

因此:

Substitute(M1,M2)=1Substitute(M_1,M_2)=1

当:

GM∧OM∧RC∧CA∧SA=1GM\land OM\land RC\land CA\land SA=1

其中:

  • GMGM:目标匹配;
  • OMOM:对象匹配;
  • RCRC:结果兼容;
  • CACA:替代方法条件可获得;
  • SASA:替代方法状态适用。

如果替代方法的目标不同,或者无法产生目标所要求的结果,则不能进行方法替换。


26.19 方法匹配、选择、组合与替换的关系

四者不是相互独立的过程,而构成连续的方法认知结构。

首先:

当前任务→方法匹配当前任务 \rightarrow 方法匹配

得到候选方法。

然后:

候选方法→方法选择候选方法 \rightarrow 方法选择

选择最适合的方法。

如果单一方法无法完成目标:

方法→方法组合方法 \rightarrow 方法组合

如果当前方法无法使用:

当前方法→方法替换当前方法 \rightarrow 方法替换

因此形成:

当前状态→方法条件→方法匹配→方法选择→方法组合→方法替换→目标实现当前状态 \rightarrow 方法条件 \rightarrow 方法匹配 \rightarrow 方法选择 \rightarrow 方法组合 \rightarrow 方法替换 \rightarrow 目标实现

但实际运行并不是所有步骤都必须发生。

如果存在完全匹配方法:

匹配→选择→执行匹配 \rightarrow 选择 \rightarrow 执行

如果不存在单一完整方法:

匹配→选择→组合→执行匹配 \rightarrow 选择 \rightarrow 组合 \rightarrow 执行

如果原方法无法使用:

匹配→替换→重新匹配匹配 \rightarrow 替换 \rightarrow 重新匹配

因此形成动态方法调整过程。


26.20 方法匹配的动态性

方法匹配不是一次性的。

当对象状态发生变化时,原方法的适用性可能发生变化。

例如:

S1→M1→S2S_1 \rightarrow M_1 \rightarrow S_2

如果在执行过程中实际产生:

S2′≠S2S_2’\neq S_2

则原方法的后续条件可能不再成立。

此时需要重新进行:

当前状态→方法匹配当前状态 \rightarrow 方法匹配

因此:

方法匹配→方法执行→状态变化→重新匹配方法匹配 \rightarrow 方法执行 \rightarrow 状态变化 \rightarrow 重新匹配

这使方法匹配成为动态认知过程,而不是静态查询过程。


26.21 方法匹配与知识

方法匹配依赖结构化知识。

第24章建立了:

K=(O,A,S,R,M,B)K=(O,A,S,R,M,B)

方法作为知识结构中的一部分,可以从知识中被读取。

因此:

知识→方法集合→方法匹配知识 \rightarrow 方法集合 \rightarrow 方法匹配

同时,当前状态也需要通过知识结构进行表示:

当前对象→属性→状态→关系当前对象 \rightarrow 属性 \rightarrow 状态 \rightarrow 关系

然后与方法结构进行比较。

因此:

当前知识结构↔方法知识结构当前知识结构 \leftrightarrow 方法知识结构

构成方法匹配的基础。


26.22 方法匹配与行为

方法匹配的最终目的不是获得一个抽象的匹配结果,而是为后续行为提供合适的方法。

因此:

方法匹配→方法选择→方法调用→行为方法匹配 \rightarrow 方法选择 \rightarrow 方法调用 \rightarrow 行为

如果方法匹配成功,但没有形成可执行的方法,则不能形成实际行为。

因此:

MethodMatch=1MethodMatch=1

只是表示:

方法在结构上适合当前任务。

而:

Executable=1Executable=1

才表示:

当前条件下可以进一步进入方法执行。

因此:

方法匹配≠方法执行方法匹配\neq方法执行


26.23 工程映射

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

MethodMatch
MethodMatcher
MethodSelector
MethodComposer
MethodSubstituter

其关系为:

CurrentState
      ↓
MethodCondition
      ↓
MethodMatcher
      ↓
CandidateMethods
      ↓
MethodSelector
      ↓
SelectedMethod
      ↓
MethodComposer / MethodSubstituter
      ↓
MethodInvocation

核心对象可以表示为:

MethodMatch
 ├── GoalMatch
 ├── ObjectMatch
 ├── ConditionMatch
 ├── StateMatch
 ├── ProcessMatch
 └── ResultMatch

方法选择对象:

MethodSelector
 ├── collectCandidates()
 ├── scoreMethods()
 ├── rankMethods()
 └── selectMethod()

方法组合对象:

MethodComposer
 ├── checkCompatibility()
 ├── connectMethods()
 ├── buildSequence()
 └── compose()

方法替换对象:

MethodSubstituter
 ├── findAlternatives()
 ├── checkSubstitution()
 ├── compareResults()
 └── substitute()

最终形成工程结构:

CurrentState→MethodMatcher→MethodSelector→MethodComposer→MethodSubstituter→MethodInvocationCurrentState \rightarrow MethodMatcher \rightarrow MethodSelector \rightarrow MethodComposer \rightarrow MethodSubstituter \rightarrow MethodInvocation


26.24 方法匹配的统一模型

综合本章,可以建立方法匹配统一模型:

Q=(G,O,C,S,R)Q=(G,O,C,S,R)

表示当前任务需求。

候选方法:

M=(Gm,Om,Cm,Sm,Am,Pm,Rm)M=(G_m,O_m,C_m,S_m,A_m,P_m,R_m)

匹配:

MM(Q,M)MM(Q,M)

综合判断:

MM=GM∧OM∧CM∧SM∧RMMM= GM\land OM\land CM\land SM\land RM

匹配成功后:

候选方法→方法选择候选方法 \rightarrow 方法选择

如果一个方法无法完成目标:

方法→方法组合方法 \rightarrow 方法组合

如果方法不可适用:

方法→方法替换方法 \rightarrow 方法替换

因此形成完整过程:

当前状态→方法条件→方法匹配→方法选择→方法组合/替换→目标实现\boxed{ 当前状态 \rightarrow 方法条件 \rightarrow 方法匹配 \rightarrow 方法选择 \rightarrow 方法组合/替换 \rightarrow 目标实现 }


26.25 本章总结

本章建立了方法匹配理论。

第25章解决的是“方法是什么”,第26章进一步解决:

面对当前状态和目标,如何判断一个方法是否适合、如何选择方法、如何组合多个方法,以及如何用替代方法解决原方法不可用的问题。

方法匹配的起点是当前状态:

ScS_c

方法具有自身的适用条件:

CMC_M

二者进行结构比较:

Sc↔CMS_c\leftrightarrow C_M

再结合目标、对象、条件和结果进行综合判断:

MM=GM∧OM∧CM∧SM∧RMMM= GM\land OM\land CM\land SM\land RM

当存在多个候选方法时:

候选方法→方法选择候选方法 \rightarrow 方法选择

当单一方法无法完成目标时:

方法→方法组合方法 \rightarrow 方法组合

当原方法无法适用时:

原方法→替代方法原方法 \rightarrow 替代方法

最终形成:

当前状态→方法匹配→方法选择→方法组合→方法替换→方法调用→行为\boxed{ 当前状态 \rightarrow 方法匹配 \rightarrow 方法选择 \rightarrow 方法组合 \rightarrow 方法替换 \rightarrow 方法调用 \rightarrow 行为 }

由此,方法理论从“方法结构”进一步发展为“方法决策结构”,为后续的方法构建、方法调用、方法执行以及方法与行为之间的动态转换提供理论基础。

Leave a Reply

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