第30章 方法实例化
方法选择确定的是:
当前应该采用什么方法。
但“选中了方法”并不等于方法已经成为当前执行对象。
一个方法通常只是一个抽象的、可复用的处理结构。例如:
Method Template
↓
“移动到目标位置”
它本身并没有说明:
- 当前移动的是哪个对象;
- 当前对象在哪里;
- 目标位置在哪里;
- 当前速度是多少;
- 当前环境是什么状态;
- 使用哪些具体参数;
- 当前条件是否允许执行。
因此,在方法选择之后,还需要一个重要过程:
Method Selection
↓
Method Instantiation
↓
Method Instance
↓
Behavior
↓
Action
↓
Execution
方法实例化就是把抽象方法转换成当前认知场景中的具体方法实例。
30.1 方法实例化的定义
Method Instantiation(方法实例化)是指:
将一个通用方法模板,根据当前目标、当前对象、当前状态、当前场景以及具体参数进行绑定和映射,形成一个具有明确执行上下文的 Method Instance。
基本结构:
方法模板
+
参数映射
+
当前对象
+
当前状态
+
当前场景
↓
Method Instance
因此:
Method Template
=
“如何完成某类任务”
Method Instance
=
“当前这个对象,在当前状态下,按照这些具体参数执行这个方法”
这是抽象方法进入现实执行空间的关键一步。
30.2 方法模板
方法模板(Method Template)是方法的抽象定义。
它描述方法的基本结构,但不绑定某一个具体对象或某一次具体执行。
例如:
Method Template
│
├── Method Identity
├── Method Type
├── Goal
├── Target Type
├── Input Definition
├── Parameter Definition
├── Preconditions
├── Constraints
├── Processing Rules
├── Expected Output
└── Evaluation Rules
可以表示:
MethodTemplate
=
{
Goal,
TargetType,
Inputs,
Parameters,
Conditions,
Constraints,
Processing,
ExpectedOutput
}
例如一个抽象方法:
Method:
MoveToTarget
它只表示:
对象
↓
移动
↓
目标位置
但它还不知道:
当前对象 = ?
目标位置 = ?
当前速度 = ?
移动方向 = ?
移动距离 = ?
环境状态 = ?
因此方法模板本身不是一次执行。
30.3 方法模板与方法定义
方法模板与前面第26章的 Method Definition 存在密切关系,但二者关注层次不同。
Method Definition
↓
定义方法“是什么”
↓
Method Template
↓
提供可复用的方法结构
↓
Method Instance
↓
形成当前具体方法
可以理解为:
Method Definition
=
方法的概念与规则
Method Template
=
可被实例化的方法结构
Method Instance
=
当前具体方法
因此:
模板是实例化的来源,实例是模板在当前认知环境中的具体化。
30.4 参数映射
方法模板中的参数通常是抽象参数。
例如:
MoveToTarget(
Object,
TargetPosition,
Speed,
Direction
)
这里的:
Object
TargetPosition
Speed
Direction
只是参数定义。
真正执行时,需要将这些抽象参数映射到当前认知状态中的实际对象和数值。
因此:
Abstract Parameter
↓
Parameter Mapping
↓
Current Value
例如:
Object
↓
Object_001
TargetPosition
↓
Position_042
Speed
↓
CurrentSpeed
Direction
↓
CalculatedDirection
形成:
MoveToTarget(
Object_001,
Position_042,
CurrentSpeed,
CalculatedDirection
)
这就是参数映射。
30.5 参数映射的本质
参数映射实际上建立了:
方法空间
↓
当前认知空间
之间的联系。
可以表示为:
Method Parameter
↓
Semantic Mapping
↓
Cognitive Object / State / Value
例如:
Method Parameter:
TargetObject
↓
Cognitive Object:
Object#1024
又例如:
Method Parameter:
CurrentPosition
↓
Current State:
Position = (x,y,z)
因此参数映射并不是简单的数据赋值。
它实际上是在回答:
这个抽象方法中的变量,在当前认知世界中究竟对应什么?
30.6 参数映射的来源
参数并不一定来自同一个地方。
它们可能来自:
Parameter Source
│
├── Current Object
├── Current State
├── Scene
├── Goal
├── Knowledge
├── Experience
├── Environment
├── Sensor Data
├── Previous Method Output
└── Other Capability
因此:
Method Template
↓
Parameter Requirements
↓
Current Cognitive State
↓
Parameter Mapping
↓
Concrete Parameters
例如一个方法需要:
TargetPosition
它可能来自:
Goal
而:
CurrentPosition
可能来自:
Current State
而:
SafeDistance
可能来自:
Knowledge + Experience
所以方法实例化实际上依赖整个认知系统。
30.7 当前对象
当前对象(Current Object)是方法实例化中的核心元素。
抽象方法可能定义:
TargetObject
但是实际执行必须确定:
TargetObject = Object#001
因此:
Generic Method
↓
Object Binding
↓
Current Object
例如:
Method Template
Move()
Target Type:
Object
当前认知场景:
Object A
Object B
Object C
经过目标匹配:
Target Object
↓
Object B
形成:
Move(Object B)
这意味着方法已经从:
“移动一个对象”
变成:
“移动 Object B”
30.8 当前对象不是静态对象
当前对象不仅仅是一个 Object ID。
它还包含当前对象的认知状态。
例如:
Current Object
│
├── Object Identity
├── Attributes
├── Position
├── Velocity
├── State
├── Relations
├── Capability
└── Availability
因此:
Current Object
=
Object Identity
+
Current Attributes
+
Current State
+
Current Relations
方法实例化必须绑定的是:
当前对象的当前认知表示。
而不是仅仅绑定一个对象名称。
30.9 当前状态
方法模板通常要求某些前置状态。
例如:
Method:
Open(Object)
它可能要求:
Object.State = Closed
如果当前状态是:
Object.State = Open
那么该方法可能已经没有必要执行。
因此方法实例化必须读取:
Current State
并验证:
Current State
↓
Method Preconditions
↓
Compatibility
形成:
State Compatible
↓
可以实例化
State Incompatible
↓
不能实例化 / 重新选择方法
30.10 当前状态的动态性
当前状态不是固定值。
可以表示为:
State(t)
而执行过程中:
State(t)
↓
Action
↓
State(t+1)
因此:
MethodInstance(t)
实际上也是一个时间相关结构。
如果:
State(t) ≠ State(t+1)
则原来的 Method Instance 可能需要:
Update
Re-Instantiation
Method Adaptation
Method Re-Selection
因此方法实例并不是绝对静态的。
30.11 方法实例
Method Instance 是方法模板经过当前上下文绑定后的具体实例。
可以形式化为:
MethodInstance
=
MethodTemplate
+
ObjectBinding
+
StateBinding
+
ParameterBinding
+
SceneBinding
+
ConstraintBinding
进一步表示:
Method Instance
│
├── Method Identity
├── Template Reference
├── Current Object
├── Current State
├── Current Scene
├── Input Values
├── Parameter Values
├── Active Conditions
├── Active Constraints
├── Risk State
├── Expected Output
└── Execution Context
它已经不再是单纯的“方法定义”。
而是:
当前个体准备在当前场景中执行的具体方法结构。
30.12 方法模板到实例的转换
完整转换:
Method Template
↓
Read Parameter Requirements
↓
Find Current Object
↓
Read Current State
↓
Read Current Scene
↓
Resolve Inputs
↓
Map Parameters
↓
Apply Conditions
↓
Apply Constraints
↓
Create Method Instance
可以进一步表示为:
Generic Method
↓
Object Binding
↓
State Binding
↓
Parameter Binding
↓
Condition Binding
↓
Constraint Binding
↓
Method Instance
30.13 方法实例化与方法选择的区别
第29章解决:
选择哪个方法?
第30章解决:
这个方法如何变成当前具体方法?
因此:
Method Selection
=
选择
Method Instantiation
=
具体化
例如:
Method A
Method B
Method C
↓
Method Selection
↓
Method B
↓
Method Instantiation
↓
Method B + Object X + State Y + Parameters Z
↓
Method Instance
所以:
第29章:
Which Method?
第30章:
Which Object + Which State + Which Parameters?
30.14 方法实例化与能力实例化
第18章讨论过能力实例化。
两者不能混淆。
Capability Instance
=
当前能够做什么
而:
Method Instance
=
当前准备如何做
关系为:
Capability Instance
↓
Available Methods
↓
Method Selection
↓
Method Instantiation
↓
Method Instance
因此:
Capability
回答:
“我能做什么?”
Method
回答:
“我可以怎么做?”
Method Instance
回答:
“当前这个对象、当前这个状态下,我具体怎么做?”
30.15 方法实例化与行为
方法实例化完成之后,方法才可以进一步进入行为系统。
完整链条:
Capability
↓
Method
↓
Method Selection
↓
Method Instantiation
↓
Method Instance
↓
Behavior
↓
Action
↓
Execution
这里发生了一个重要转换:
Abstract Method
↓
Concrete Method Instance
↓
Dynamic Behavior
↓
Concrete Action
因此 Method Instance 是:
方法系统向行为系统输出的直接结构。
30.16 方法实例化中的对象—状态—参数三元关系
方法实例化可以进一步抽象为:
Object
+
State
+
Parameter
↓
Method Instance
其中:
Object
=
对谁执行
State
=
在什么状态下执行
Parameter
=
按照什么具体条件执行
因此:
Method Instance
=
Method
(Object, State, Parameters)
例如:
Method:
MoveToTarget
Object:
Robot_A
State:
Position=P1
Velocity=V1
Battery=80%
Parameters:
Target=P2
Speed=V2
SafetyDistance=D
最终:
MoveToTarget(
Robot_A,
P2,
V2,
D
)
这才成为真正的当前方法实例。
30.17 方法实例化与场景
方法实例化还必须考虑场景。
因为同一个对象、同一个方法,在不同场景下可能形成完全不同的实例。
例如:
Object A
Method M
在:
Scene 1
可能得到:
MethodInstance M1
在:
Scene 2
可能得到:
MethodInstance M2
因此:
Method Instance
=
Method
+
Object
+
State
+
Scene
+
Parameters
这说明方法实例具有明显的场景依赖性。
30.18 方法实例化的约束检查
方法实例创建之前,必须确认绑定结果仍然满足方法约束。
Method Template
↓
Parameter Mapping
↓
Constraint Validation
↓
┌───────────────┐
│ │
Valid Invalid
│ │
↓ ↓
Instance Re-Mapping
例如:
Speed = 100
而当前对象允许:
MaxSpeed = 50
则:
Speed > MaxSpeed
实例化失败。
可能产生:
Parameter Adjustment
或者:
Method Re-Evaluation
甚至:
Method Re-Selection
因此:
实例化不是无条件绑定,而是受约束的具体化过程。
30.19 方法实例化与实时认知
由于第25章已经建立实时认知,因此方法实例也必须具有实时更新能力。
基本过程:
Method Instance
↓
Execution Preparation
↓
Real-Time State Change
↓
Cognitive Update
↓
Parameter Update
↓
Instance Update
例如:
Target Position
↓
发生变化
↓
Parameter Mapping Update
↓
Method Instance Update
如果核心条件发生变化:
State Change
↓
Constraint Violation
↓
Method Instance Invalid
↓
Method Re-Evaluation
因此:
Method Instance
不是执行前一次性生成后永远不变的对象。
它可以随着认知状态进行更新。
30.20 方法实例生命周期
方法实例可以拥有自己的生命周期:
Created
↓
Bound
↓
Validated
↓
Ready
↓
Active
↓
Executing
↓
Completed
↓
Evaluated
失败路径:
Executing
↓
Failure
↓
Invalidated
↓
Re-Evaluation
↓
Re-Instantiation
或者:
Executing
↓
Failure
↓
Recovery Method
↓
New Method Instance
因此:
Method Template
↓
Instance
↓
Execution
↓
Result
↓
Evaluation
↓
Experience
方法实例也成为经验形成的重要载体。
30.21 方法实例与经验
执行结束以后,系统不仅需要记录:
Method = M
还应该记录:
Method Instance
+
Object
+
State
+
Parameters
+
Scene
+
Result
+
Feedback
例如:
MethodInstance
│
├── Object = A
├── State = S1
├── Scene = Scene01
├── Parameters = P1
├── Result = Success
└── Feedback = Stable
这些信息可以形成历史经验:
Method Instance
↓
Execution Result
↓
Experience
↓
Method Evaluation Update
因此,未来同类场景中的方法评价就不再完全依赖抽象方法统计,而可以参考:
这个方法在相似对象、相似状态、相似场景和相似参数下曾经发生过什么。
30.22 方法实例的认知意义
方法实例化实际上完成了一个非常重要的转换:
知识中的方法
↓
认知中的方法
↓
当前场景中的方法
↓
当前对象上的方法
↓
当前状态下的方法
↓
具体参数的方法
因此:
Knowledge
↓
Method Template
↓
Method Selection
↓
Method Instantiation
↓
Method Instance
可以理解为:
从“知道怎么做”进入“当前具体怎么做”。
30.23 方法实例化的完整模型
可以建立完整的 Method Instantiation 模型:
MethodInstantiation
│
├── MethodTemplate
│
├── CurrentObject
│
├── CurrentState
│
├── CurrentScene
│
├── InputMapping
│
├── ParameterMapping
│
├── ConditionBinding
│
├── ConstraintBinding
│
├── RiskBinding
│
├── ExpectedOutput
│
├── Validation
│
└── MethodInstance
其核心输入:
Method Template
Current Object
Current State
Current Scene
Goal
Input
Knowledge
Parameters
Conditions
Constraints
Risk
核心输出:
Method Instance
30.24 方法实例化的完整计算链
Current Cognitive State
↓
Current Goal
↓
Capability Matching
↓
Method Selection
↓
Method Template
↓
Identify Current Object
↓
Read Current State
↓
Read Current Scene
↓
Resolve Inputs
↓
Parameter Mapping
↓
Condition Binding
↓
Constraint Binding
↓
Validation
↓
Method Instance
↓
Behavior Generation
↓
Action
↓
Execution
↓
Feedback
↓
Re-Cognition
因此第30章实际上完成了从:
“选择方法”
到:
“形成当前可执行方法”
的转换。
30.25 方法模板、方法实例与执行的三级结构
可以将整个方法系统进一步划分为三个层次:
第一层:Method Template
“通用方法是什么?”
↓
第二层:Method Instance
“当前具体怎么做?”
↓
第三层:Execution
“实际发生了什么?”
即:
Template
↓
Instance
↓
Execution
这三个层次不能混淆。
Method Template
抽象、通用、可复用。
Method Instance
当前对象、当前状态、当前参数下的具体方法。
Execution
方法实例真正进入现实过程后的实际执行结果。
因此:
Template ≠ Instance ≠ Execution
30.26 方法实例化与现实世界
方法实例化是连接内部认知模型与现实执行的重要边界。
Internal Cognitive Space
────────────────────────
Method Template
↓
Method Selection
↓
Parameter Mapping
↓
Method Instance
────────────────────────
↓
Behavior Space
↓
Action Space
────────────────────────
↓
Physical / External World
因此 Method Instance 可以被视为:
内部抽象方法进入现实行为之前的最后一个具体认知结构。
30.27 本章核心结论
方法选择之后,人工个体还不能直接执行抽象方法。
必须经过:
Method Template
↓
Parameter Mapping
↓
Current Object
↓
Current State
↓
Current Scene
↓
Constraint Validation
↓
Method Instance
方法模板解决:
这个方法通常如何工作?
参数映射解决:
抽象参数在当前认知世界中分别对应什么?
当前对象解决:
这个方法现在作用于谁?
当前状态解决:
这个方法现在处于什么状态下?
Method Instance 解决:
当前这个对象、当前这个状态、当前这个场景下,究竟形成了一个怎样的具体方法?
最终形成:
Cognition
↓
Goal
↓
Capability
↓
Method Selection
↓
Method Template
↓
Parameter Mapping
↓
Current Object
↓
Current State
↓
Current Scene
↓
Method Instance
↓
Behavior
↓
Action
↓
Execution
↓
Feedback
↓
Re-Cognition
因此:
Method 是“方法”,Method Template 是“可复用的方法结构”,Method Instance 是“当前个体针对当前对象、当前状态、当前场景和当前参数形成的具体方法”。
第29章完成了:
Candidate Methods
↓
Selected Method
第30章进一步完成:
Selected Method
↓
Method Template
↓
Object + State + Parameters
↓
Method Instance
至此,方法系统已经从方法定义、动态生成、方法评价、方法排序、方法竞争、方法组合、方法选择进一步进入方法实例化阶段。
下一层自然形成:
Method Instance
↓
Behavior
↓
Behavior State
↓
Dynamic Behavior
↓
Action
↓
Execution
这标志着理论体系正式从Method System(方法系统)进入Behavior System(行为系统)。