第25章 方法理论
25.1 方法的定义
在结构化知识理论中,方法已经作为知识结构的重要组成部分出现。知识回答的是“知道什么”,而方法进一步回答“如何实现一个目标”。
**方法(Method)**是针对特定目标,在一定对象、条件和状态下,通过规定的动作与过程,使对象从某种初始状态向目标状态变化,并获得预期结果的结构化认知内容。
因此,方法不是一个简单的动作名称,也不是动作的无序集合,而是一种具有内部结构的目标实现结构。
方法可以表示为:
M=(G,O,C,S,A,P,R)M=(G,O,C,S,A,P,R)
其中:
- MM:Method,方法;
- GG:Goal,目标;
- OO:Object,对象;
- CC:Condition,条件;
- SS:State,适用状态或初始状态;
- AA:Action,动作集合;
- PP:Process,过程;
- RR:Result,结果。
方法的基本逻辑为:
目标+对象+条件+状态→动作组织→过程→结果目标+对象+条件+状态 \rightarrow 动作组织 \rightarrow 过程 \rightarrow 结果
例如,“给杯子倒水”不是单独一个动作,而是一个方法结构:
M=(装水,杯子,有水源,空杯,{拿起,倾倒},倒水过程,杯中有水)M=(装水,杯子,有水源,空杯,\{拿起,倾倒\},倒水过程,杯中有水)
因此:
方法本质上是面向目标的结构化行为实现规则。
25.2 方法的基本结构
方法具有明确的内部组成结构。
可以进一步表示为:
M=(G,O,C,S,A,P,R)M=(G,O,C,S,A,P,R)
其中目标决定方法为什么存在,对象决定方法作用于什么,条件决定方法什么时候能够适用,状态决定方法作用的初始状态,动作构成方法的具体操作内容,过程描述动作之间的组织顺序,结果描述方法完成之后产生的状态或结果。
因此,一个完整的方法至少需要回答七个问题:
- 要实现什么目标?
- 作用于什么对象?
- 在什么条件下使用?
- 对象处于什么状态?
- 需要执行什么动作?
- 动作按照什么过程组织?
- 最终得到什么结果?
形成:
目标→对象→条件→状态→动作→过程→结果目标 \rightarrow 对象 \rightarrow 条件 \rightarrow 状态 \rightarrow 动作 \rightarrow 过程 \rightarrow 结果
这构成方法的基本认知结构。
25.3 方法与知识
方法属于知识结构的重要组成部分,但方法并不等于全部知识。
第24章已经建立:
K=(O,A,S,R,M,B)K=(O,A,S,R,M,B)
其中 MM 就是方法。
因此:
M⊂KM\subset K
表示方法属于知识结构。
但是,知识和方法承担不同的认知功能。
知识主要描述:
对象是什么对象是什么 对象有什么属性对象有什么属性 对象处于什么状态对象处于什么状态 对象之间有什么关系对象之间有什么关系
而方法描述:
如何改变对象状态如何改变对象状态
因此可以区分:
知识→描述知识\rightarrow描述 方法→实现方法\rightarrow实现
例如:
“杯子是容器”属于对象知识。
“杯子容量为300ml”属于属性知识。
“杯子当前为空”属于状态知识。
“杯子放在桌子上”属于关系知识。
“如何向杯子中倒水”则属于方法知识。
因此:
对象知识→方法知识对象知识 \rightarrow 方法知识
方法建立在知识基础之上。
25.4 方法与对象
方法必须依附于对象而存在。
**对象(Object)**是方法作用的目标实体。没有明确对象的方法通常无法确定其实际作用范围。
因此:
M→OM\rightarrow O
表示方法与对象存在作用关系。
例如:
拿起→杯子拿起\rightarrow杯子 打开→门打开\rightarrow门 启动→机器启动\rightarrow机器
同一个动作作用于不同对象,可能形成不同的方法。
例如:
打开+门打开+门
与:
打开+机器打开+机器
虽然都包含“打开”这一动作,但对象不同,其方法结构、条件和结果也可能不同。
因此:
Method=f(Goal,Object,Condition,State,Action,Process,Result)Method=f(Goal,Object,Condition,State,Action,Process,Result)
方法不能脱离对象孤立理解。
25.5 对象类与方法
方法不仅可以作用于具体对象实例,也可以作用于对象类。
例如:
“启动汽车”可以定义为针对“汽车类”的一般方法。
而:
“启动这辆汽车”则是针对具体汽车实例的方法应用。
因此需要区分:
方法→对象类方法\rightarrow对象类
和:
方法→对象实例方法\rightarrow对象实例
对象类方法描述一般适用结构:
M(Class)M(Class)
对象实例方法描述具体应用结构:
M(Instance)M(Instance)
二者关系为:
对象类→方法类结构→对象实例→具体方法应用对象类 \rightarrow 方法类结构 \rightarrow 对象实例 \rightarrow 具体方法应用
这与前面对象类和对象实例的理论保持一致。
25.6 方法与状态
方法不是在任何状态下都能够使用。
方法的适用必须建立在对象状态基础之上。
例如,“启动汽车”的方法通常要求汽车处于停止状态。
因此:
Sinitial→M→StargetS_{initial}\rightarrow M\rightarrow S_{target}
其中:
- SinitialS_{initial}:方法执行前的初始状态;
- MM:方法;
- StargetS_{target}:方法完成后的目标状态。
例如:
汽车停止→启动方法→汽车运行汽车停止 \rightarrow 启动方法 \rightarrow 汽车运行
又例如:
杯子为空→倒水方法→杯子有水杯子为空 \rightarrow 倒水方法 \rightarrow 杯子有水
因此,方法实际上可以理解为一种状态转换结构:
M:S1→S2M:S_1\rightarrow S_2
这说明方法的核心作用之一,就是使对象状态发生符合目标的变化。
25.7 方法与状态转换
如果将状态变化进一步结构化:
StateTransition=(S1,C,S2)StateTransition=(S_1,C,S_2)
那么方法实际上可以参与状态转换:
S1→M→S2S_1 \rightarrow M \rightarrow S_2
其中条件 CC 决定方法是否能够介入。
完整结构为:
S1→C,MS2S_1 \xrightarrow{C,M} S_2
例如:
门=关闭→条件满足+开门方法门=打开门=关闭 \xrightarrow{条件满足+开门方法} 门=打开
因此,一个有效的方法必须具有明确的状态方向。
可以定义方法的状态作用关系:
MSR(M,S1,S2)=1MSR(M,S_1,S_2)=1
当方法 MM 能够使对象从 S1S_1 合法地转换到 S2S_2 时,方法与状态转换匹配。
因此:
方法→状态转换方法 \rightarrow 状态转换
是方法理论中的核心关系之一。
25.8 方法与行为
方法和行为具有密切关系,但二者不是同一个概念。
方法描述如何完成目标。
行为描述实际发生的活动。
因此:
方法≠行为方法\neq行为
方法属于认知知识结构:
MM
行为属于动态活动结构:
BB
方法可以产生行为:
M→BehaviorM \rightarrow Behavior
例如:
“倒水方法”描述:
拿起杯子→倾斜杯子→倒入液体拿起杯子 \rightarrow 倾斜杯子 \rightarrow 倒入液体
而实际执行这个过程:
人→拿起杯子→倾斜→倒水人 \rightarrow 拿起杯子 \rightarrow 倾斜 \rightarrow 倒水
则形成具体行为。
因此:
方法→方法调用→动作执行→行为方法 \rightarrow 方法调用 \rightarrow 动作执行 \rightarrow 行为
方法是行为形成的重要依据。
25.9 方法与动作
方法由一个或多个动作组成。
可以表示为:
A={a1,a2,…,an}A=\{a_1,a_2,\ldots,a_n\}
方法过程:
P=a1→a2→⋯→anP=a_1\rightarrow a_2\rightarrow\cdots\rightarrow a_n
例如“打开门”的方法:
M={目标=进入房间,对象=门,动作={走近,握把,转动,推开}}M= \{目标=进入房间, 对象=门, 动作=\{走近,握把,转动,推开\}\}
动作之间不是简单并列,而具有过程关系:
走近→握把→转动→推开走近 \rightarrow 握把 \rightarrow 转动 \rightarrow 推开
因此:
方法→动作集合→动作顺序方法\rightarrow动作集合\rightarrow动作顺序
方法构建的核心之一,就是确定动作之间的组织关系。
25.10 方法与过程
**过程(Process)**是方法内部动作按照一定逻辑形成的连续结构。
如果方法只有动作集合:
A={a1,a2,a3}A=\{a_1,a_2,a_3\}
仍然不能确定执行顺序。
加入过程之后:
P=a1→a2→a3P=a_1\rightarrow a_2\rightarrow a_3
才形成完整的方法结构。
因此:
动作集合→过程组织→方法动作集合\rightarrow过程组织\rightarrow方法
过程可以具有:
- 顺序关系;
- 条件关系;
- 分支关系;
- 循环关系;
- 前置关系;
- 后置关系。
例如:
a1→a2→a3a_1\rightarrow a_2\rightarrow a_3
表示顺序过程。
而:
C1→a2C_1\rightarrow a_2 C2→a3C_2\rightarrow a_3
表示条件分支过程。
因此,方法并不是动作简单相加,而是动作按照一定逻辑形成过程。
25.11 方法的适用条件
**方法适用条件(Method Applicability Condition)**是判断某个方法是否能够用于当前对象、状态和环境的条件集合。
定义:
CM={c1,c2,…,cn}C_M=\{c_1,c_2,\ldots,c_n\}
其中每一个 cic_i 都是方法适用所必须满足的条件。
方法能够使用的基本判断为:
Applicable(M)=1Applicable(M)=1
当:
ObjectMatch=1ObjectMatch=1 ConditionMatch=1ConditionMatch=1 StateMatch=1StateMatch=1 CapabilityMatch=1CapabilityMatch=1
并且不存在禁止性冲突时:
Applicable(M)=1Applicable(M)=1
因此:
Applicable(M)=ObjectMatch∧ConditionMatch∧StateMatch∧CapabilityMatchApplicable(M) = ObjectMatch \land ConditionMatch \land StateMatch \land CapabilityMatch
这里的 ∧\land 表示逻辑“与”。
也就是说,只满足其中一个条件并不能证明方法可用。
25.12 对象适用条件
首先需要判断方法是否适用于当前对象。
定义:
OM(M,O)=1OM(M,O)=1
表示方法 MM 与对象 OO 相匹配。
例如:
“开门方法”适用于门,而不适用于杯子。
因此:
Mopen_door→DoorM_{open\_door}\rightarrow Door
而:
Mopen_door↛CupM_{open\_door}\not\rightarrow Cup
对象匹配是方法适用判断的第一层条件。
25.13 状态适用条件
对象正确并不意味着方法一定能够使用。
还必须判断对象当前状态。
例如:
如果方法要求:
S=关闭S=关闭
而当前对象状态为:
S=打开S=打开
则:
StateMatch=0StateMatch=0
方法不能直接适用。
因此:
对象匹配∧状态匹配→方法适用基础成立对象匹配 \land 状态匹配 \rightarrow 方法适用基础成立
状态条件是方法使用的重要约束。
25.14 环境与外部条件
某些方法除了对象和状态之外,还依赖环境条件。
例如某种设备操作可能要求:
电源=开启电源=开启 温度<规定值温度<规定值 空间=可用空间=可用
因此可以定义:
EnvironmentCondition={e1,e2,…,en}EnvironmentCondition=\{e_1,e_2,\ldots,e_n\}
完整的适用条件可以表示为:
CM=CO∧CS∧CEC_M=C_O\land C_S\land C_E
其中:
- COC_O:对象条件;
- CSC_S:状态条件;
- CEC_E:环境条件。
最终:
Applicable(M)=CO∧CS∧CEApplicable(M) = C_O\land C_S\land C_E
任何必要条件不满足,都可能导致方法不可适用。
25.15 方法适用条件与能力
方法是否存在,与当前是否能够执行方法,是两个不同问题。
例如系统已经具有:
M=打开机器M=打开机器
说明系统知道这个方法。
但是如果当前没有执行该动作所需要的能力,则:
Knowledge(M)=1Knowledge(M)=1
而:
Capability(M)=0Capability(M)=0
此时:
Executable(M)=0Executable(M)=0
因此:
方法存在≠方法可执行方法存在\neq方法可执行
完整关系为:
知识→方法知识 \rightarrow 方法 能力→方法执行条件能力 \rightarrow 方法执行条件
最终:
知识+能力+适用条件→方法可执行知识+能力+适用条件 \rightarrow 方法可执行
这与前面的知识、能力、行为理论形成统一关系。
25.16 方法的完整适用模型
综合对象、状态、环境、条件和能力,可以建立完整方法适用模型:
MA(M,O,S,C,E,Cap)MA(M,O,S,C,E,Cap)
其中:
- MM:方法;
- OO:对象;
- SS:当前状态;
- CC:逻辑条件;
- EE:环境条件;
- CapCap:能力条件。
方法可适用的必要条件可以表示为:
MA=OM∧SM∧CM∧EM∧CapMMA=OM\land SM\land CM\land EM\land CapM
其中:
- OMOM:对象匹配;
- SMSM:状态匹配;
- CMCM:条件匹配;
- EMEM:环境匹配;
- CapMCapM:能力匹配。
因此:
对象→状态→条件→环境→能力→方法适用对象 \rightarrow 状态 \rightarrow 条件 \rightarrow 环境 \rightarrow 能力 \rightarrow 方法适用
25.17 方法的认知结构
从认知角度看,方法实际上连接了知识和行为。
完整关系为:
知识→方法→行为知识 \rightarrow 方法 \rightarrow 行为
其中:
知识提供对象、状态、关系和条件;
方法提供目标实现结构;
行为则产生实际动作和状态变化。
进一步展开:
知识→对象识别→状态识别→目标确定→方法匹配→适用条件判断→方法调用→动作→行为→状态变化→结果知识 \rightarrow 对象识别 \rightarrow 状态识别 \rightarrow 目标确定 \rightarrow 方法匹配 \rightarrow 适用条件判断 \rightarrow 方法调用 \rightarrow 动作 \rightarrow 行为 \rightarrow 状态变化 \rightarrow 结果
因此,方法是知识结构向行为结构转换的重要中间结构。
25.18 方法的分类
根据方法作用对象和作用方式,可以建立不同的方法类型。
按照对象划分:
对象方法对象方法
按照状态变化划分:
状态转换方法状态转换方法
按照目标划分:
目标实现方法目标实现方法
按照行为过程划分:
行为方法行为方法
按照对象数量划分:
单对象方法单对象方法 多对象方法多对象方法
例如:
对象A→方法→状态变化对象A \rightarrow 方法 \rightarrow 状态变化
属于单对象方法。
而:
对象A+对象B→方法→关系变化对象A+对象B \rightarrow 方法 \rightarrow 关系变化
则属于多对象方法。
25.19 方法的核心特征
方法具有以下基本特征。
第一,目标性。
方法必须服务于某个目标:
M→GM\rightarrow G
第二,对象性。
方法必须作用于明确对象:
M→OM\rightarrow O
第三,条件性。
方法必须具有适用条件:
M→CM\rightarrow C
第四,状态性。
方法通常要求特定初始状态,并产生目标状态:
S1→M→S2S_1\rightarrow M\rightarrow S_2
第五,动作性。
方法由动作组成:
M→AM\rightarrow A
第六,过程性。
动作按照一定结构形成过程:
A1→A2→⋯→AnA_1\rightarrow A_2\rightarrow\cdots\rightarrow A_n
第七,结果性。
方法必须产生预期结果:
M→RM\rightarrow R
因此可以归纳为:
方法=目标+对象+条件+状态+动作+过程+结果\boxed{ 方法= 目标+对象+条件+状态+动作+过程+结果 }
25.20 方法的统一理论模型
综合本章,可以建立方法的统一模型:
M=(G,O,C,S,A,P,R)\boxed{ M=(G,O,C,S,A,P,R) }
其内部逻辑为:
G→O→C→S→A→P→RG \rightarrow O \rightarrow C \rightarrow S \rightarrow A \rightarrow P \rightarrow R
方法适用判断:
Applicable(M)=ObjectMatch∧ConditionMatch∧StateMatch∧EnvironmentMatch∧CapabilityMatchApplicable(M) = ObjectMatch \land ConditionMatch \land StateMatch \land EnvironmentMatch \land CapabilityMatch
方法执行逻辑:
方法→方法调用→动作→行为→状态变化→结果方法 \rightarrow 方法调用 \rightarrow 动作 \rightarrow 行为 \rightarrow 状态变化 \rightarrow 结果
方法与知识关系:
知识→方法知识 \rightarrow 方法
方法与行为关系:
方法→行为方法 \rightarrow 行为
方法与状态关系:
S1→M→S2S_1 \rightarrow M \rightarrow S_2
方法因此成为对象、知识、状态、行为和能力之间的重要连接结构。
25.21 工程映射
在认知工程中,方法可以独立建立为方法对象。
核心对象:
Method
可以包含:
Method
├── Goal
├── Object
├── Condition
├── State
├── Actions
├── Process
└── Result
进一步建立:
MethodMatcher
MethodApplicabilityChecker
MethodInvocation
MethodExecutor
它们承担不同职责。
Method→MethodMatcher→MethodApplicabilityChecker→MethodInvocation→MethodExecutorMethod \rightarrow MethodMatcher \rightarrow MethodApplicabilityChecker \rightarrow MethodInvocation \rightarrow MethodExecutor
其中:
Method保存方法结构。
MethodMatcher负责判断当前目标与方法是否匹配。
MethodApplicabilityChecker负责判断方法是否满足对象、状态、条件、环境和能力要求。
MethodInvocation负责形成具体的方法调用。
MethodExecutor负责实际执行方法。
这样可以保持:
方法知识≠方法匹配≠方法调用≠方法执行方法知识 \neq 方法匹配 \neq 方法调用 \neq 方法执行
形成清晰的工程边界。
25.22 本章总结
本章建立了方法理论。
方法不是单个动作,也不是动作的简单集合,而是面向目标、作用于对象、依赖条件和状态、由动作和过程组成并产生结果的结构化认知内容。
方法的核心模型为:
M=(G,O,C,S,A,P,R)\boxed{ M=(G,O,C,S,A,P,R) }
即:
方法=目标+对象+条件+状态+动作+过程+结果方法= 目标+对象+条件+状态+动作+过程+结果
方法与知识的关系是:
知识→方法知识\rightarrow方法
知识提供方法形成所需要的对象、属性、状态、关系和条件信息。
方法与对象的关系是:
方法→对象方法\rightarrow对象
方法必须明确其作用对象。
方法与状态的关系是:
S1→M→S2S_1\rightarrow M\rightarrow S_2
方法能够推动对象从初始状态向目标状态变化。
方法与行为的关系是:
方法→行为方法\rightarrow行为
方法描述如何实现目标,行为描述实际发生的活动。
方法适用条件则可以表示为:
Applicable(M)=ObjectMatch∧ConditionMatch∧StateMatch∧EnvironmentMatch∧CapabilityMatchApplicable(M) = ObjectMatch \land ConditionMatch \land StateMatch \land EnvironmentMatch \land CapabilityMatch
因此,本章最终建立:
知识→方法→行为→状态变化→结果\boxed{ 知识 \rightarrow 方法 \rightarrow 行为 \rightarrow 状态变化 \rightarrow 结果 }
方法由此成为结构化知识进入动态行为的重要桥梁,并为下一阶段的方法知识、方法构建、方法匹配、方法调用以及方法执行理论提供基础。