第30章 动态参数理论
30.1 参数的定义
参数(Parameter)是用于描述、约束和确定对象、动作、方法或行为具体执行特征的数据要素。
在动作理论中,参数用于把抽象动作转换为具有明确执行规格的具体动作。
例如:
移动(物体)移动(物体)
只能表示存在一个“移动”动作,而:
移动(物体,位置,速度,方向)移动(物体,位置,速度,方向)
则进一步规定了动作的具体执行参数。
因此:
动作类型+参数→具体动作动作类型+参数 \rightarrow 具体动作
参数可以表示为:
P={p1,p2,…,pn}P=\{p_1,p_2,\ldots,p_n\}
其中:
- PP:参数集合;
- pip_i:单个参数;
- nn:参数数量。
单个参数可以进一步表示为:
p=(Name,Type,Value,Range,Condition)p=(Name,Type,Value,Range,Condition)
其中:
- NameName:参数名称;
- TypeType:参数类型;
- ValueValue:参数当前值;
- RangeRange:参数允许范围;
- ConditionCondition:参数适用条件。
因此,参数并不是单纯的数值,而是具有名称、类型、取值、范围和适用条件的结构化数据。
例如:
速度=(Name=Speed,Type=Number,Value=2,Range=[0,10])速度=(Name=Speed,Type=Number,Value=2,Range=[0,10])
参数的核心作用是对抽象结构进行具体化。
可以表示为:
抽象动作+参数→具体动作抽象动作 + 参数 \rightarrow 具体动作
进一步:
方法→参数确定→动作→结果方法 \rightarrow 参数确定 \rightarrow 动作 \rightarrow 结果
因此,参数是连接方法结构、动作结构和实际执行状态的重要中间结构。
30.2 静态参数
静态参数(Static Parameter)是指在特定对象、方法或动作结构中,在一定范围内保持稳定、不因当前运行状态变化而频繁改变的参数。
静态参数主要用于描述动作或对象的固定结构特征。
可以表示为:
Ps=(Name,Type,Default,Range)P_s=(Name,Type,Default,Range)
其中:
- NameName:参数名称;
- TypeType:参数类型;
- DefaultDefault:默认值;
- RangeRange:允许范围。
例如,一个动作“移动物体”可能规定:
Ps={Direction,Speed,Distance}P_s=\{Direction,Speed,Distance\}
其中参数类型和允许范围在方法定义阶段已经确定。
静态参数具有以下特点:
第一,参数定义相对稳定。
第二,参数类型通常固定。
第三,参数范围通常固定。
第四,参数不会因为一次普通状态变化而立即改变结构。
因此:
StaticParameter≈固定参数结构StaticParameter \approx 固定参数结构
但需要注意,静态参数的“静态”是相对于运行过程而言,并不意味着参数值在所有时间永远不变。
例如:
SpeedSpeed
可以作为一个固定定义的参数,但其具体值仍然可以根据运行情况发生变化。
所以必须区分:
参数定义稳定≠参数值永远不变参数定义稳定 \neq 参数值永远不变
30.3 动态参数
动态参数(Dynamic Parameter)是指其具体取值会随着对象、状态、条件、时间或场景变化而发生变化的参数。
动态参数的核心特征不是“参数名称变化”,而是:
Valuet≠Valuet+1Value_t\neq Value_{t+1}
即同一个参数在不同认知状态下可能具有不同的值。
动态参数可以表示为:
Pd(t)={p1(t),p2(t),…,pn(t)}P_d(t)=\{p_1(t),p_2(t),\ldots,p_n(t)\}
因此:
Pd(t)→Pd(t+1)P_d(t) \rightarrow P_d(t+1)
参数变化可以进一步表示为:
ΔP=Pt+1−Pt\Delta P=P_{t+1}-P_t
对于非数值参数,则可以采用离散状态变化表示:
pt≠pt+1p_t\neq p_{t+1}
例如:
位置t=(10,20)位置_t=(10,20)
变化之后:
位置t+1=(15,20)位置_{t+1}=(15,20)
因此:
ΔPosition≠0\Delta Position\neq0
这就是动态参数。
动态参数的变化可能由多个因素产生:
对象变化→参数变化对象变化 \rightarrow 参数变化 状态变化→参数变化状态变化 \rightarrow 参数变化 场景变化→参数变化场景变化 \rightarrow 参数变化
还可能存在:
时间变化→参数变化时间变化 \rightarrow 参数变化
因此动态参数不是孤立变化的,而是受到认知结构变化的驱动。
30.4 静态参数与动态参数
静态参数和动态参数并不是两种完全不同的参数类型,而是参数在不同运行层级上的两种状态。
可以建立:
Parameter=StaticPart+DynamicPartParameter= StaticPart+DynamicPart
例如:
P=(Definition,Value)P=(Definition,Value)
其中:
- Definition:参数定义;
- Value:参数当前值。
参数定义可以保持稳定:
Definitiont=Definitiont+1Definition_t=Definition_{t+1}
而参数值可以发生变化:
Valuet≠Valuet+1Value_t\neq Value_{t+1}
因此:
参数定义→静态结构参数定义 \rightarrow 静态结构 参数值→动态状态参数值 \rightarrow 动态状态
形成:
参数结构稳定+参数值动态变化参数结构稳定 + 参数值动态变化
这使系统能够同时保存“参数是什么”和“参数当前是多少”。
30.5 对象差异与参数变化
参数并不是脱离对象独立确定的。
不同对象具有不同属性、类别、状态和结构,因此同一种动作作用于不同对象时,所需要的参数可能不同。
可以表示为:
Object1≠Object2→Parameter1≠Parameter2Object_1\neq Object_2 \rightarrow Parameter_1\neq Parameter_2
例如同样是“移动”动作:
移动(小物体)移动(小物体)
和:
移动(大型物体)移动(大型物体)
虽然动作类型相同:
Type1=Type2=移动Type_1=Type_2=移动
但是参数可能不同:
P1≠P2P_1\neq P_2
原因在于对象本身不同。
可以定义对象参数函数:
P=f(O)P=f(O)
其中:
- PP:动作参数;
- OO:动作对象;
- ff:根据对象特征确定参数的关系函数。
进一步考虑对象属性:
P=f(O,A)P=f(O,A)
其中 AA 为对象属性集合。
例如对象重量、尺寸、位置等属性发生变化时,都可能导致动作参数变化。
因此:
对象属性变化→参数重新确定对象属性变化 \rightarrow 参数重新确定
这种机制可以称为对象驱动的参数变化。
例如:
ObjectA→重量=轻→参数PAObject_A \rightarrow 重量=轻 \rightarrow 参数P_A
而:
ObjectB→重量=重→参数PBObject_B \rightarrow 重量=重 \rightarrow 参数P_B
即使:
ActionTypeA=ActionTypeBActionType_A=ActionType_B
仍然可能:
PA≠PBP_A\neq P_B
所以动作类型相同,并不意味着动作参数相同。
30.6 状态变化与参数变化
对象状态是影响动态参数的重要因素。
设对象在两个时间点的状态分别为:
StS_t
和:
St+1S_{t+1}
如果:
St≠St+1S_t\neq S_{t+1}
则相关动作参数可能需要重新计算或重新选择。
可以表示为:
P=f(S)P=f(S)
因此:
St→PtS_t\rightarrow P_t
而:
St+1→Pt+1S_{t+1}\rightarrow P_{t+1}
形成:
St≠St+1→Pt≠Pt+1S_t\neq S_{t+1} \rightarrow P_t\neq P_{t+1}
但这种关系不是绝对的。
状态发生变化,并不一定导致所有参数变化。
因此更加准确的表达是:
ΔS→ΔPrelevant\Delta S \rightarrow \Delta P_{relevant}
其中 PrelevantP_{relevant} 表示与发生变化的状态相关的参数。
例如某对象的位置发生变化:
Positiont≠Positiont+1Position_t\neq Position_{t+1}
那么“移动到目标位置”的动作,其距离参数可能发生变化:
Distancet≠Distancet+1Distance_t\neq Distance_{t+1}
但动作的类型参数:
Type=移动Type=移动
仍然保持不变。
因此:
状态变化→相关参数变化状态变化 \rightarrow 相关参数变化
而不是:
状态变化→所有参数变化状态变化 \rightarrow 所有参数变化
这一区分对于结构化认知系统非常重要。
30.7 场景变化与参数变化
场景(Scene)是由对象、属性、状态、关系、行为以及结构共同组成的整体环境。
场景变化可能同时影响多个对象及其关系,因此也可能引起参数整体变化。
可以表示为:
Scenet→ParametertScene_t \rightarrow Parameter_t
以及:
Scenet+1→Parametert+1Scene_{t+1} \rightarrow Parameter_{t+1}
如果:
Scenet≠Scenet+1Scene_t\neq Scene_{t+1}
则可能产生:
Pt≠Pt+1P_t\neq P_{t+1}
场景参数变化主要来自三个方面。
30.7.1 场景对象变化
如果场景中增加或减少对象:
Ot≠Ot+1O_t\neq O_{t+1}
那么动作对象选择可能发生变化:
ObjectParametert≠ObjectParametert+1ObjectParameter_t \neq ObjectParameter_{t+1}
例如原来只有一个对象可操作,后来出现第二个对象,动作的对象参数就需要重新确定。
30.7.2 场景关系变化
如果对象之间的关系发生变化:
Rt≠Rt+1R_t\neq R_{t+1}
则动作参数可能随之变化。
例如:
ObjectA→ObjectBObject_A\rightarrow Object_B
原本处于“前方”关系,后来变成“后方”关系,则方向参数可能发生变化:
Directiont≠Directiont+1Direction_t\neq Direction_{t+1}
30.7.3 场景状态变化
如果整个场景状态发生变化:
St≠St+1S_t\neq S_{t+1}
则相关动作参数需要重新计算。
因此:
SceneChange→ObjectChange→StateChange→ParameterChangeSceneChange \rightarrow ObjectChange \rightarrow StateChange \rightarrow ParameterChange
或者直接:
SceneChange→ParameterUpdateSceneChange \rightarrow ParameterUpdate
这说明场景是动态参数的重要外部约束。
30.8 动态参数的形成机制
动态参数不是随机变化的,而是根据对象、状态和场景重新确定。
可以建立参数形成函数:
Pt=f(Ot,St,Sct,Ct,Gt)P_t=f(O_t,S_t,Sc_t,C_t,G_t)
其中:
- PtP_t:时间 tt 的参数;
- OtO_t:当前对象;
- StS_t:当前状态;
- SctSc_t:当前场景;
- CtC_t:当前条件;
- GtG_t:当前目标。
当任意相关输入发生变化:
O,S,Sc,C,GO,S,Sc,C,G
就可能触发参数重新计算:
(Ot,St,Sct,Ct,Gt)→Pt(O_t,S_t,Sc_t,C_t,G_t) \rightarrow P_t
变化之后:
(Ot+1,St+1,Sct+1,Ct+1,Gt+1)→Pt+1(O_{t+1},S_{t+1},Sc_{t+1},C_{t+1},G_{t+1}) \rightarrow P_{t+1}
因此:
Pt→Pt+1P_t\rightarrow P_{t+1}
不是简单的数值变化,而是一次基于当前认知条件的参数重新确定。
30.9 动态参数与动作
动作参数直接影响动作的具体执行形式。
因此:
A=(Sub,O,T,C,P,R,S)A=(Sub,O,T,C,P,R,S)
当:
Pt≠Pt+1P_t\neq P_{t+1}
即使:
Tt=Tt+1T_t=T_{t+1}
动作的具体形式也可能发生变化。
因此:
相同动作类型+不同参数→不同具体动作相同动作类型 + 不同参数 \rightarrow 不同具体动作
例如:
移动(Object,P1)移动(Object,P_1)
与:
移动(Object,P2)移动(Object,P_2)
属于相同动作类型,但由于:
P1≠P2P_1\neq P_2
其实际动作可能不同。
所以动作可以进一步表示为:
Action=f(Type,Object,Condition,Parameter)Action=f(Type,Object,Condition,Parameter)
参数成为从抽象动作类型到具体动作实例的重要转换因素。
30.10 动态参数与方法
方法规定动作的组织方式,但方法在不同对象、状态和场景中可能需要使用不同参数。
因此:
Method→ParameterDetermination→ActionMethod \rightarrow ParameterDetermination \rightarrow Action
方法可以规定参数的来源、类型和范围:
M=(G,O,C,S,A,P,R)M=(G,O,C,S,A,P,R)
其中 PP 是方法的重要组成部分。
实际执行时:
Method+Context→Parameter→ActionMethod+Context \rightarrow Parameter \rightarrow Action
因此方法本身可以保持稳定,而参数随具体情况变化:
Mt=Mt+1M_t=M_{t+1}
但:
Pt≠Pt+1P_t\neq P_{t+1}
这意味着:
方法稳定+参数动态→动作适应不同条件方法稳定 + 参数动态 \rightarrow 动作适应不同条件
由此,动态参数成为连接稳定方法与动态现实的重要机制。
30.11 动态参数与行为
行为由动作构成,因此动作参数变化会进一步影响行为的具体执行过程。
设行为为:
B={A1,A2,…,An}B=\{A_1,A_2,\ldots,A_n\}
每一个动作具有参数:
Ai=(…,Pi,…)A_i=(…,P_i,…)
因此:
Pi→Ai→BP_i\rightarrow A_i\rightarrow B
当某一个关键动作参数发生变化:
Pit≠Pit+1P_i^t\neq P_i^{t+1}
则可能产生:
Ait≠Ait+1A_i^t\neq A_i^{t+1}
进一步导致:
Bt≠Bt+1B_t\neq B_{t+1}
因此形成:
参数变化→动作变化→行为变化参数变化 \rightarrow 动作变化 \rightarrow 行为变化
这说明动态参数虽然属于动作层,但可以向上影响行为层。
30.12 动态参数与状态闭环
动作参数变化最终会作用于对象或场景,并产生新的状态。
因此可以形成:
Statet→Parametert→Actiont→Resultt→Statet+1State_t \rightarrow Parameter_t \rightarrow Action_t \rightarrow Result_t \rightarrow State_{t+1}
然后新的状态再次影响下一次参数:
Statet+1→Parametert+1State_{t+1} \rightarrow Parameter_{t+1}
形成:
Statet→Parametert→Actiont→Statet+1→Parametert+1State_t \rightarrow Parameter_t \rightarrow Action_t \rightarrow State_{t+1} \rightarrow Parameter_{t+1}
这构成动态参数的状态反馈结构。
更完整地表示:
Scenet→Objectt→Statet→Parametert→Actiont→Resultt→Scenet+1Scene_t \rightarrow Object_t \rightarrow State_t \rightarrow Parameter_t \rightarrow Action_t \rightarrow Result_t \rightarrow Scene_{t+1}
然后:
Scenet+1→Parametert+1Scene_{t+1} \rightarrow Parameter_{t+1}
因此参数不是一次确定、永久使用的静态数据,而是在动态认知过程中不断受到当前对象、状态和场景约束的结构。
30.13 动态参数的工程映射
在认知工程中,可以建立独立的参数对象:
Parameter
├── Name
├── Type
├── Value
├── DefaultValue
├── Range
├── Condition
└── DynamicState
进一步建立:
StaticParameter
DynamicParameter
ParameterSet
ParameterValue
ParameterCondition
ParameterResolver
ParameterUpdater
ParameterMatcher
其中:
Parameter负责描述参数的基本结构。
StaticParameter负责保存稳定的参数定义。
DynamicParameter负责保存运行过程中的动态参数。
ParameterSet负责管理多个参数。
ParameterValue负责保存参数当前值。
ParameterCondition负责描述参数适用条件。
ParameterResolver负责根据对象、状态、目标和场景确定参数。
ParameterUpdater负责在状态或场景变化后更新参数。
ParameterMatcher负责判断当前参数是否满足动作或方法要求。
工程运行关系可以表示为:
Object+State+Scene+Goal→ParameterResolver→Parameter→ActionObject + State + Scene + Goal \rightarrow ParameterResolver \rightarrow Parameter \rightarrow Action
状态发生变化:
StateChange→ParameterUpdater→NewParameterStateChange \rightarrow ParameterUpdater \rightarrow NewParameter
场景发生变化:
SceneChange→ParameterUpdater→NewParameterSceneChange \rightarrow ParameterUpdater \rightarrow NewParameter
因此可以形成:
对象→参数确定→动作→结果→状态变化→参数更新对象 \rightarrow 参数确定 \rightarrow 动作 \rightarrow 结果 \rightarrow 状态变化 \rightarrow 参数更新
30.14 动态参数统一模型
综合本章,可以建立动态参数统一模型:
Pt=f(Ot,St,Sct,Ct,Gt)P_t=f(O_t,S_t,Sc_t,C_t,G_t)
其中参数受到:
对象+状态+场景+条件+目标对象 + 状态 + 场景 + 条件 + 目标
共同约束。
参数变化可以表示为:
ΔP=Pt+1−Pt\Delta P=P_{t+1}-P_t
对于离散参数:
ΔP≠0 ⟺ Pt+1≠Pt\Delta P\neq0 \iff P_{t+1}\neq P_t
其动态过程为:
Objectt→Statet→Scenet→Parametert→Actiont→Resultt→Statet+1Object_t \rightarrow State_t \rightarrow Scene_t \rightarrow Parameter_t \rightarrow Action_t \rightarrow Result_t \rightarrow State_{t+1}
然后:
Statet+1→Parametert+1State_{t+1} \rightarrow Parameter_{t+1}
形成动态闭环:
Parametert→Actiont→Statet+1→Parametert+1Parameter_t \rightarrow Action_t \rightarrow State_{t+1} \rightarrow Parameter_{t+1}
因此,动态参数理论建立了“当前认知条件”到“具体动作规格”之间的动态转换机制。
30.15 本章总结
参数(Parameter)是用于确定对象、方法、动作和行为具体特征的结构化数据。
参数可以分为:
Parameter=StaticParameter+DynamicParameterParameter=StaticParameter+DynamicParameter
静态参数主要描述稳定的参数定义:
ParameterDefinition→StableParameterDefinition\rightarrow Stable
动态参数则描述参数在具体运行环境中的当前值:
ParameterValuet→ParameterValuet+1ParameterValue_t \rightarrow ParameterValue_{t+1}
动态参数变化受到对象、状态和场景的共同影响:
对象变化→参数变化对象变化 \rightarrow 参数变化 状态变化→参数变化状态变化 \rightarrow 参数变化 场景变化→参数变化场景变化 \rightarrow 参数变化
因此可以建立:
Pt=f(Ot,St,Sct,Ct,Gt)P_t=f(O_t,S_t,Sc_t,C_t,G_t)
最终形成:
对象→状态→场景→参数→动作→结果→状态变化→参数更新对象 \rightarrow 状态 \rightarrow 场景 \rightarrow 参数 \rightarrow 动作 \rightarrow 结果 \rightarrow 状态变化 \rightarrow 参数更新
动态参数理论的核心不是研究参数本身的数值变化,而是建立一种结构关系:
参数是动作具体化的条件变量,动态参数则是对象、状态和场景变化在动作层面的结构化反映。
由此,第29章建立的“动作结构”进一步获得了动态适应能力,为后续建立动作参数匹配、动态动作选择、参数更新以及状态驱动行为等理论提供基础。