第97章 方法理论
97.1 方法定义
在 ICAI 中,**方法(Method)**是机器个体针对特定对象、目标、条件和状态,为实现预期结果而形成的结构化执行方式。
方法不是简单的动作,也不是单一行为。
方法描述的是:
在什么条件下,对什么对象,按照什么步骤,通过什么能力,完成什么目标,并产生什么结果。
因此:
Method=Object+Goal+Condition+Capability+Step+Result\boxed{ Method= Object+ Goal+ Condition+ Capability+ Step+ Result }
方法的基本结构为:
目标
↓
方法
↓
步骤
↓
行为
↓
结果
进一步形成:
需求
↓
目标
↓
能力匹配
↓
方法形成
↓
方法选择
↓
方法执行
↓
行为
↓
结果
因此,方法是 ICAI 从认知与决策结构进入行为结构的重要中间层。
97.2 方法与目标的关系
方法不是独立产生的。
一个方法通常服务于一个目标:
Goal→MethodGoal\rightarrow Method
同一个目标可以存在多个方法:
Goal→{M1,M2,M3}Goal \rightarrow \{M_1,M_2,M_3\}
例如:
目标:到达指定地点
方法A:步行
方法B:骑车
方法C:驾驶
方法D:乘坐公共交通
因此:
OneGoal→MultiMethodsOneGoal\rightarrow MultiMethods
同时,一个方法也可能服务多个相似目标:
OneMethod→MultiGoalsOneMethod\rightarrow MultiGoals
但必须满足方法适用条件。
因此:
Applicable(Method,Goal)=TrueApplicable(Method,Goal)=True
才能建立有效的方法关系。
97.3 方法对象
**方法对象(Method Object)**是方法作用的主体或目标对象。
方法不能脱离对象独立存在。
例如:
对象:车辆
方法:启动
或者:
对象:客户订单
方法:修改订单
或者:
对象:机器人
方法:移动
因此:
Method→ObjectMethod\rightarrow Object
方法对象可以是:
- 人;
- 设备;
- 车辆;
- 商品;
- 订单;
- 文件;
- 信息;
- 环境;
- 其他机器个体;
- 复合对象。
方法对象还可以包含多个对象:
Method→{O1,O2,…,On}Method\rightarrow \{O_1,O_2,\ldots,O_n\}
例如维修方法可能同时作用于:
设备
+
故障部件
+
维修工具
形成:
Method(Object1,Object2,Object3)Method(Object_1,Object_2,Object_3)
因此,方法对象实际上构成方法执行的对象范围。
97.4 方法条件
**方法条件(Method Condition)**是方法能够成立和执行所必须满足的环境、对象、状态、资源、能力和规则条件。
基本关系:
Condition→MethodCondition\rightarrow Method
只有:
Condition=TrueCondition=True
方法才允许进入执行阶段。
方法条件可以包括:
对象条件
状态条件
环境条件
能力条件
资源条件
时间条件
空间条件
权限条件
安全条件
规则条件
因此:
C={Co,Cs,Ce,Cc,Cr,Ct,Cp,Csafe,Crule}C= \{ C_o,C_s,C_e,C_c,C_r,C_t,C_p,C_{safe},C_{rule} \}
其中:
- CoC_o:对象条件;
- CsC_s:状态条件;
- CeC_e:环境条件;
- CcC_c:能力条件;
- CrC_r:资源条件;
- CtC_t:时间条件;
- CpC_p:空间或位置条件;
- CsafeC_{safe}:安全条件;
- CruleC_{rule}:规则条件。
完整方法条件判断:
Applicable(M)=Co∧Cs∧Ce∧Cc∧Cr∧Csafe∧CruleApplicable(M)= C_o\land C_s\land C_e\land C_c\land C_r\land C_{safe}\land C_{rule}
97.5 方法适用条件
同一个方法并不是任何情况下都可以使用。
因此必须定义:
方法适用性(Method Applicability)。
表示:
Applicable(M,O,S,C)=TrueApplicable(M,O,S,C)=True
即当前方法适用于当前:
- 对象;
- 状态;
- 条件;
- 目标。
例如:
方法:高速行驶
适用:
道路允许
车辆状态正常
天气正常
驾驶条件满足
不适用:
车辆故障
道路禁止
危险环境
安全条件不足
因此:
Method≠AlwaysAvailableMethod \neq AlwaysAvailable
而是:
Method→ApplicableConditionMethod\rightarrow ApplicableCondition
97.6 方法步骤
**方法步骤(Method Step)**是构成一个完整方法的有序执行单元。
方法通常不是一个动作,而是一系列具有顺序关系的步骤:
M={S1,S2,S3,…,Sn}M= \{S_1,S_2,S_3,\ldots,S_n\}
例如:
方法:启动设备
步骤1:检查设备状态
↓
步骤2:检查电源
↓
步骤3:执行启动
↓
步骤4:检测运行状态
↓
步骤5:确认启动结果
因此:
Method→Step1→Step2→Step3→ResultMethod \rightarrow Step_1 \rightarrow Step_2 \rightarrow Step_3 \rightarrow Result
97.7 方法步骤关系
方法步骤之间存在顺序关系:
S1→S2→S3S_1\rightarrow S_2\rightarrow S_3
也可以存在条件分支:
步骤1
↓
状态判断
├── 正常 → 步骤2
└── 异常 → 步骤3
因此方法可以表示为:
Method=Sequence+Condition+Branch+ResultMethod= Sequence+ Condition+ Branch+ Result
复杂方法还可以形成:
主步骤
├── 子步骤A
├── 子步骤B
└── 子步骤C
从而形成方法层级:
Method→SubMethod→Step→ActionMethod \rightarrow SubMethod \rightarrow Step \rightarrow Action
97.8 方法步骤与行为
方法本身不是行为。
方法描述:
应该采用什么执行结构。
行为描述:
机器个体实际执行了什么。
因此:
Method→BehaviorMethod\rightarrow Behavior
例如:
方法:
接近目标对象
行为:
向前移动
↓
减速
↓
调整方向
↓
停止
因此:
Method≠BehaviorMethod\neq Behavior
而是:
Method→Behavior\boxed{ Method \rightarrow Behavior }
方法属于执行规划结构,行为属于实际运行结构。
97.9 方法与能力
方法必须依赖能力。
因此:
Method→CapabilityMethod\rightarrow Capability
一个方法需要一个或多个能力:
M={C1,C2,C3}M=\{C_1,C_2,C_3\}
例如:
方法:自动停车
需要:
空间识别能力
位置判断能力
方向控制能力
速度控制能力
车辆操作能力
如果关键能力不存在:
Capabilityrequired⊈CapabilityavailableCapability_{required} \not\subseteq Capability_{available}
则:
Method=UnavailableMethod=Unavailable
因此:
能力决定方法是否能够执行\boxed{ 能力决定方法是否能够执行 }
97.10 方法与知识
方法还必须建立在知识结构之上。
例如:
对象知识
↓
状态知识
↓
规则知识
↓
方法知识
↓
方法
因此:
Knowledge→MethodKnowledge\rightarrow Method
方法知识描述:
- 什么情况下使用方法;
- 方法作用于什么对象;
- 方法需要什么能力;
- 方法有哪些步骤;
- 方法产生什么结果;
- 方法有什么限制。
因此:
MethodKnowledge=Object+Condition+Step+Result+RestrictionMethodKnowledge = Object+ Condition+ Step+ Result+ Restriction
97.11 方法结果
**方法结果(Method Result)**是方法执行完成后产生的状态变化、对象变化、关系变化或目标状态变化。
基本关系:
Method→ResultMethod\rightarrow Result
例如:
方法:关闭设备
↓
设备状态:运行
↓
执行方法
↓
设备状态:关闭
因此:
Statebefore→Method→StateafterState_{before} \rightarrow Method \rightarrow State_{after}
方法结果可以包括:
对象变化
属性变化
状态变化
关系变化
位置变化
资源变化
目标变化
97.12 方法结果状态
方法结果不能只记录“成功”或“失败”。
可以建立:
ResultStatus={Success,Partial,Failed,Blocked,Interrupted}ResultStatus= \{ Success, Partial, Failed, Blocked, Interrupted \}
其中:
Success:方法完整成功;Partial:方法部分完成;Failed:方法执行失败;Blocked:执行受到条件阻止;Interrupted:执行过程中被中断。
因此:
Method→Execution→ResultStatusMethod \rightarrow Execution \rightarrow ResultStatus
97.13 方法成功条件
方法成功必须根据预期结果判断。
定义:
Success(M)=ActualResult≈ExpectedResultSuccess(M)= ActualResult \approx ExpectedResult
如果:
ActualResult=ExpectedResultActualResult=ExpectedResult
则:
Success=TrueSuccess=True
如果只完成部分目标:
ActualResult⊂ExpectedResultActualResult\subset ExpectedResult
则:
Partial=TruePartial=True
如果没有产生目标要求的结果:
Success=FalseSuccess=False
因此:
方法成功由结果判断,而不是由执行动作本身判断\boxed{ 方法成功由结果判断,而不是由执行动作本身判断 }
97.14 方法失败
方法失败表示方法已经执行或者尝试执行,但没有形成规定的目标结果。
例如:
目标
↓
方法
↓
执行
↓
结果不符合目标
↓
方法失败
方法失败原因可以包括:
对象错误
状态变化
能力不足
资源不足
环境变化
条件变化
执行错误
外部干扰
安全中断
因此:
FailureReason=f(Object,State,Capability,Resource,Environment,Execution)FailureReason= f(Object,State,Capability,Resource,Environment,Execution)
失败结果必须保存,为后续经验形成提供依据。
97.15 方法中断
方法不一定只有成功和失败。
在执行过程中,环境可能发生变化:
Environmentt≠Environmentt+1Environment_t\neq Environment_{t+1}
导致原方法不再适用:
Applicable(M,t)=TrueApplicable(M,t)=True
但是:
Applicable(M,t+1)=FalseApplicable(M,t+1)=False
此时:
Method→InterruptedMethod\rightarrow Interrupted
机器个体需要:
停止当前方法
↓
重新感知
↓
更新状态
↓
重新匹配
↓
重新选择方法
因此:
MethodInterrupt→ReCognition→ReMatching→NewMethod\boxed{ MethodInterrupt \rightarrow ReCognition \rightarrow ReMatching \rightarrow NewMethod }
97.16 方法适用范围
**方法适用范围(Method Scope)**是指一个方法能够作用的对象类型、状态范围、环境范围、能力范围和目标范围。
可以表示:
Scope(M)={ObjectRange,StateRange,EnvironmentRange,CapabilityRange,GoalRange}Scope(M)= \{ ObjectRange, StateRange, EnvironmentRange, CapabilityRange, GoalRange \}
例如:
方法:低速移动
对象范围:
车辆
状态范围:
正常运行
环境范围:
低速区域
能力范围:
具备方向与速度控制
目标范围:
安全移动
只有当前状态位于方法适用范围内:
CurrentState∈StateRangeCurrentState\in StateRange
方法才具有适用性。
97.17 方法范围与个体类型
不同机器个体具有不同方法范围。
例如:
司机人工智能
→
驾驶方法
客服人工智能
→
客户服务方法
销售人工智能
→
销售方法
机器人
→
移动方法、抓取方法、服务方法
设备人工智能
→
运行方法、检测方法、修复方法
因此:
IndividualType→MethodSetIndividualType \rightarrow MethodSet
但不同个体仍然可以共享通用方法结构:
CommonMethodStructure→IndividualMethodInstanceCommonMethodStructure \rightarrow IndividualMethodInstance
这为 ICAI 后续建立通用方法系统提供基础。
97.18 方法的组合
复杂目标通常需要多个方法组合。
例如:
Goal→M1+M2+M3Goal \rightarrow M_1+M_2+M_3
形成:
目标
↓
方法A
↓
方法B
↓
方法C
↓
目标结果
因此:
CompositeMethod={M1,M2,…,Mn}CompositeMethod= \{M_1,M_2,\ldots,M_n\}
方法之间可以形成:
- 顺序关系;
- 条件关系;
- 替代关系;
- 并行关系;
- 循环关系;
- 中断关系。
形成:
MethodRelation=Sequence+Condition+Alternative+Parallel+Loop+InterruptMethodRelation = Sequence+ Condition+ Alternative+ Parallel+ Loop+ Interrupt
97.19 方法与替代
一个目标可能存在多个方法:
Goal→{M1,M2,M3}Goal\rightarrow \{M_1,M_2,M_3\}
如果:
M1M_1
无法执行,则可以选择:
M2M_2
或者:
M3M_3
因此:
M1→M2→M3M_1 \rightarrow M_2 \rightarrow M_3
形成方法替代结构。
方法替代必须满足:
Result(M2)≈Result(M1)Result(M_2)\approx Result(M_1)
并且:
Applicable(M2)=TrueApplicable(M_2)=True
因此:
方法替代不是动作替换,而是目标结果保持下的执行路径替换\boxed{ 方法替代不是动作替换,而是目标结果保持下的执行路径替换 }
97.20 方法评价
当多个方法都能够实现同一个目标时,需要对方法进行评价。
可以建立:
MethodEvaluation=f(Applicability,Capability,Cost,Risk,Time,Result)MethodEvaluation= f( Applicability, Capability, Cost, Risk, Time, Result )
其中:
Applicability:适用程度;Capability:能力覆盖程度;Cost:执行成本;Risk:执行风险;Time:执行时间;Result:预期结果。
最终形成:
MethodScoreMethodScore
再进行排序:
M1>M2>M3M_1>M_2>M_3
这将直接连接下一阶段的方法选择理论。
97.21 方法数据结构
在 ICAI 工程中,可以建立:
CognitiveMethod——方法对象。
class CognitiveMethod
{
protected $id;
protected $name;
protected $objectType;
protected $goalId;
protected $conditions;
protected $capabilities;
protected $steps;
protected $result;
protected $scope;
protected $status;
}
建立方法步骤对象:
class MethodStep
{
protected $id;
protected $methodId;
protected $sequence;
protected $action;
protected $condition;
protected $result;
}
建立方法适用范围:
class MethodScope
{
protected $objectTypes;
protected $states;
protected $environments;
protected $capabilities;
protected $goals;
}
97.22 方法运行模型
方法运行可以形成:
Method Request
↓
Object Check
↓
Condition Check
↓
Capability Check
↓
Scope Check
↓
Method Available
↓
Step Loading
↓
Step Execution
↓
Result Check
↓
Method Result
如果条件不满足:
Condition Check
↓
Failed
↓
Method Blocked
如果能力不足:
Capability Check
↓
Failed
↓
Alternative Method
如果执行过程中状态变化:
State Change
↓
Method Invalid
↓
Interrupt
↓
ReMatching
97.23 方法 Runtime
建立:
Method Runtime——方法在机器个体实际运行过程中的动态实例。
可以表示:
MethodRuntime={Method,Object,Goal,State,Step,Condition,Execution,Result}MethodRuntime= \{ Method, Object, Goal, State, Step, Condition, Execution, Result \}
运行结构:
方法载入
↓
绑定目标
↓
绑定对象
↓
检查条件
↓
检查能力
↓
检查适用范围
↓
生成运行实例
↓
执行步骤
↓
监控状态
↓
产生行为
↓
获取结果
↓
更新Runtime状态
因此:
Method→MethodRuntime→Behavior→Result\boxed{ Method \rightarrow MethodRuntime \rightarrow Behavior \rightarrow Result }
97.24 方法理论统一模型
综合本章内容,可以建立方法统一模型:
M=(O,G,C,Cap,S,R,Scope)\boxed{ M= (O,G,C,Cap,S,R,Scope) }
其中:
- OO:方法对象;
- GG:目标;
- CC:条件;
- CapCap:能力;
- SS:步骤;
- RR:结果;
- ScopeScope:适用范围。
方法运行:
Method→Condition→Capability→Scope→Step→Behavior→Result\boxed{ Method \rightarrow Condition \rightarrow Capability \rightarrow Scope \rightarrow Step \rightarrow Behavior \rightarrow Result }
方法失效:
StateChange→ConditionInvalid→MethodInterrupt→ReMatching\boxed{ StateChange \rightarrow ConditionInvalid \rightarrow MethodInterrupt \rightarrow ReMatching }
方法替代:
MethodA→Unavailable→MethodB→Result\boxed{ Method_A \rightarrow Unavailable \rightarrow Method_B \rightarrow Result }
97.25 从认知到方法
前面第91—96章建立的是匹配体系。
现在进一步形成:
认知
↓
需求
↓
目标
↓
对象匹配
↓
需求匹配
↓
能力匹配
↓
综合匹配
↓
匹配结果
↓
方法
因此:
MatchResult→Method\boxed{ MatchResult \rightarrow Method }
匹配结果回答:
哪些对象、能力和结构能够满足目标?
方法理论回答:
满足目标以后,应该采用什么执行方式?
这两个层次必须严格区分。
97.26 本章总结
方法是 ICAI 中连接目标、能力、决策与行为的重要结构。
本章定义了方法的基本组成:
方法=对象+目标+条件+能力+步骤+结果+适用范围\boxed{ 方法= 对象+ 目标+ 条件+ 能力+ 步骤+ 结果+ 适用范围 }
方法不是简单动作,而是一种具有明确对象、条件、步骤和结果的结构化执行方式。
其基本运行链为:
目标→方法→步骤→行为→结果\boxed{ 目标 \rightarrow 方法 \rightarrow 步骤 \rightarrow 行为 \rightarrow 结果 }
其适用性由:
对象+状态+条件+能力+环境+规则\boxed{ 对象+ 状态+ 条件+ 能力+ 环境+ 规则 }
共同决定。
方法还可以进行:
方法组合方法组合 方法替代方法替代 方法评价方法评价 方法中断方法中断 方法重新选择方法重新选择
最终形成:
需求
↓
目标
↓
匹配
↓
匹配结果
↓
方法
↓
方法条件
↓
方法能力
↓
方法步骤
↓
行为
↓
结果
↓
反馈
由此,第97章完成了从**“匹配什么”向“采用什么方法实现目标”**的理论转换,为后续的方法匹配、方法选择、方法组合、行为形成以及执行Runtime建立理论基础。