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

第33章 行为执行理论

第33章 行为执行理论

一、提出背景

第31章建立了复杂行为形成理论,说明复杂行为由简单行为、行为组合、行为序列、条件行为、状态驱动行为以及多对象协同行为形成。第32章进一步建立复杂行为模拟理论,说明复杂行为可以通过行为分解、行为组合、动态调整和连续行为形成转换为结构化的机器行为。

但是,行为形成和行为模拟仍然属于行为的结构层。一个行为被确定以后,还必须解决一个更加具体的问题:行为如何转化为实际动作,动作在什么条件下可以执行,执行过程中处于什么状态,以及最终产生什么结果。

因此,本章建立行为执行理论。

行为执行的基本过程为:

行为→动作→执行条件→执行→执行状态→执行结果→状态变化

其中,行为确定执行方向,动作确定具体操作,执行条件决定动作是否能够发生,执行状态描述动作当前所处阶段,执行结果描述动作执行以后产生的实际变化。

行为执行理论由此成为行为结构进入实际运行过程的中间层。


二、行为 → 动作

2.1 行为的执行结构

行为是具有目标、对象、条件、方法、动作、过程、状态和结果的完整结构。

定义行为:

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

其中:

  • Sub:行为主体;
  • O:行为对象;
  • G:行为目标;
  • C:行为条件;
  • M:行为方法;
  • A:行为动作;
  • P:行为过程;
  • S:行为状态;
  • R:行为结果。

其中 A 是行为进入执行层之后的具体操作集合。

因此:

行为≠动作

行为表示“为了目标而进行的一项完整活动”,动作表示该行为内部可以实际执行的操作单元。

例如:

拿起杯子

是一个行为,而:

移动手→接近杯子→接触杯子→抓握→提升

是构成该行为的动作过程。

2.2 行为动作化

行为必须经过动作化才能进入执行层。

可以表示为:

B→{A1,A2,...,An}

其中:

A_i=(Sub,O,T,C,P,R,S)

T 表示动作类型。

行为动作化实际上是将行为中的方法进一步具体化:

目标→方法→动作

例如:

获得杯子

抓取方法

定位→接触→抓握→提升

因此,行为到动作不是简单的数据转换,而是一个行为结构向执行结构的转换过程

2.3 行为与动作的层级关系

行为可以包含一个动作,也可以包含多个动作。

简单行为:

B→A

复杂行为:

B→A1→A2→A3→...→An

因此:

动作⊂行为

但是,行为不能简单理解为动作集合,因为行为还包含目标、条件、方法、状态和结果。

所以:

Behavior={Goal,Object,Condition,Method,Actions,State,Result}

而:

Action={Object,Type,Condition,Parameter,Result}

二者处于不同的结构层级。


三、动作 → 执行

3.1 执行的定义

动作是已经确定的操作结构,但动作本身尚未发生。

**执行(Execution)**是动作从“待执行结构”进入“实际运行过程”的过程。

因此:

Action→Execution

表示动作进入执行过程。

执行不是动作本身,而是动作发生的过程。

可以定义执行结构:

E=(A,C,S,P,R)

其中:

  • A:待执行动作;
  • C:执行条件;
  • S:执行状态;
  • P:执行过程;
  • R:执行结果。

由此:

动作→执行→结果

3.2 动作进入执行

动作进入执行之前必须首先经过条件判断:

Action→ConditionCheck

如果条件满足:

ConditionCheck=1

则:

Action→Executable→Executing

如果条件不满足:

Action→NotExecutable

因此:

动作形成→条件检查→执行判断→执行

这说明动作并不是生成以后立即执行,而是存在一个明确的执行入口。

3.3 执行过程

动作执行具有过程性:

Ready→Checking→Executing→Completed

其中:

  • Ready:动作已经准备完成;
  • Checking:正在检查执行条件;
  • Executing:动作正在执行;
  • Completed:动作执行完成。

异常情况下可以形成:

Checking→Failed

或:

Executing→Failed

以及:

Executing→Paused

Executing→Cancelled

因此执行是一个状态转换过程,而不是单一事件。


四、执行条件

4.1 执行条件的定义

**执行条件(Execution Condition)**是决定一个动作当前是否具备执行资格的一组结构化条件。

定义:

C_e=(C_o,C_s,C_p,C_r,C_t)

其中:

  • C_o:对象条件;
  • C_s:状态条件;
  • C_p:参数条件;
  • C_r:关系条件;
  • C_t:时序条件。

因此:

Executable(A)=C_o∧C_s∧C_p∧C_r∧C_t

当结果为 1 时,表示动作满足执行条件。

4.2 对象条件

对象条件用于判断动作对象是否正确。

例如:

ActionObject=杯子

需要满足:

ObjectMatch(Target,Cup)=1

如果目标对象错误:

ObjectMatch=0

则:

Action→NotExecutable

因此:

对象匹配→动作执行资格

4.3 状态条件

动作通常依赖当前状态。

例如某个动作要求:

杯子位于桌面

则当前状态必须满足:

S⊨C_s

其中 表示“状态满足条件”。

如果:

S⊭C_s

则动作不能执行。

因此:

当前状态→条件判断→执行资格

4.4 参数条件

动作参数决定具体动作如何发生。

定义:

P={p1,p2,...,pn}

执行前必须判断:

ParameterMatch(P,C_p)=1

参数可能包括:

位置

距离

方向

速度

力度

等。

如果参数不满足要求:

ParameterMatch=0

则动作不能正常进入执行阶段。

4.5 关系条件

某些动作必须建立在对象之间特定关系存在的基础上。

例如:

R(O1,O2)=连接

或者:

R(O1,O2)=位于上方

如果动作要求该关系存在,则:

RelationMatch(R,C_r)=1

才可以执行。

因此:

对象→关系→动作条件

4.6 时序条件

某些动作只有在特定行为顺序下才能执行。

例如:

B1→B2→B3

只有 B1 完成以后,B2 才能开始。

因此:

Result(B1)→Condition(B2)

时序条件保证行为执行具有连续结构。


五、执行状态

5.1 执行状态的定义

**执行状态(Execution State)**是描述动作当前执行阶段的状态结构。

定义:

S_e=(A,Status,T,P,R)

其中:

  • A:当前动作;
  • Status:执行状态;
  • T:时间信息;
  • P:执行进度;
  • R:当前结果。

执行状态表示的是“动作现在处于什么阶段”。

5.2 基本执行状态

可以建立以下执行状态:

Ready

→ 动作已经形成,等待执行。

Checking

→ 检查执行条件。

Executable

→ 条件满足,可以执行。

Executing

→ 动作正在执行。

Completed

→ 动作已经完成。

Failed

→ 动作执行失败。

Paused

→ 动作暂时停止。

Cancelled

→ 动作被取消。

形成基本状态链:

Ready→Checking→Executable→Executing→Completed

异常路径:

Checking→Failed

Executing→Failed

Executing→Paused

Executing→Cancelled

5.3 执行状态转换

执行状态可以表示为:

S_e(t)→S_e(t+1)

例如:

Ready→Checking

表示开始检查;

Checking→Executable

表示条件满足;

Executable→Executing

表示开始实际执行;

Executing→Completed

表示执行成功完成。

因此:

执行状态变化→执行过程

5.4 执行状态与行为状态

动作状态会影响行为状态。

如果一个行为包含:

B={A1,A2,A3}

当:

A1→Completed

则可以进入:

A2

如果:

A1→Failed

则可能发生:

Behavior→Failed

或者:

Behavior→Adjustment

因此:

动作状态→行为状态→下一动作


六、执行结果

6.1 执行结果的定义

**执行结果(Execution Result)**是动作执行以后产生的实际对象变化、状态变化或结果值。

定义:

R=(Type,O,V,S_before,S_after)

其中:

  • Type:结果类型;
  • O:结果相关对象;
  • V:结果值;
  • S_before:执行前状态;
  • S_after:执行后状态。

核心关系:

S_before→Action→S_after

因此执行结果不是简单的“成功”或“失败”,而是对执行后状态的结构化描述。

6.2 预期结果与实际结果

动作通常具有预期结果:

R_expected

执行以后产生实际结果:

R_actual

二者进行匹配:

ResultMatch=Match(R_actual,R_expected)

如果:

ResultMatch=1

则:

ActionSuccess=1

如果:

ResultMatch=0

则:

ActionSuccess=0

因此:

执行→实际结果→结果匹配→执行判断

6.3 结果与状态变化

动作的最终意义在于产生状态变化:

S_before→Action→S_after

因此:

Result→StateChange

状态变化又成为下一行为的输入:

StateChange→NextBehavior

由此形成:

动作→执行→结果→状态变化→下一行为

6.4 执行结果的类型

执行结果可以至少分为:

Success

表示达到预期结果。

Failure

表示没有达到预期结果。

Partial

表示只完成部分目标。

Cancelled

表示执行被取消。

NoChange

表示动作执行后没有产生预期状态变化。

这些结果都可以作为下一行为判断的依据。


七、行为执行完整模型

将本章五个核心部分统一,可以建立:

B→A→C_e→E→S_e→R

即:

行为→动作→执行条件→执行→执行状态→执行结果

再加入状态变化:

B→A→C_e→E→S_e→R→S_{t+1}

其中:

  • B:行为;
  • A:动作;
  • C_e:执行条件;
  • E:执行过程;
  • S_e:执行状态;
  • R:执行结果;
  • S_{t+1}:执行后的新状态。

完整闭环为:

行为→动作→条件判断→执行→执行状态→执行结果→状态变化

并进一步进入:

状态变化→下一行为

因此:

B_t→A_t→E_t→R_t→S_{t+1}→B_{t+1}

这使行为执行形成连续动态结构。


八、复杂行为的执行

复杂行为:

CB={B1,B2,...,Bn}

每一个行为又可以进一步分解为动作:

B1→{A11,A12,...}

B2→{A21,A22,...}

因此复杂行为执行可以展开为:

CB→B1→A11→执行→R11→S1

A12→执行→R12→S2

B2→A21→执行→R21→S3

B3→...

最终:

CB→Result(CB)

如果某个动作失败:

Ai→Failed

则需要判断:

Retry

或:

Replace

或:

Adjust

或:

Terminate

因此复杂行为执行与第32章的动态调整机制形成直接连接。


九、行为执行中的动态变化

执行不是完全固定的。

在执行过程中:

对象可能变化

状态可能变化

参数可能变化

关系可能变化

执行结果可能变化

因此:

Execution_t→StateChange→Reevaluation

重新判断:

ObjectMatch

StateMatch

ParameterMatch

RelationMatch

如果仍然满足:

Applicable=1

则继续执行。

如果不满足:

Applicable=0

则进入:

BehaviorAdjustment

由此形成:

执行→状态变化→重新判断→继续/调整→执行

这使行为执行具有动态性。


十、行为执行工程模型

从工程角度,可以将本章理论映射为以下对象。

1. Behavior

表示完整行为。

Behavior→Method→Action

2. Action

表示基本执行单元。

Action=(Sub,O,T,C,P,R,S)

3. ExecutionCondition

表示执行条件。

包括:

ObjectCondition

StateCondition

ParameterCondition

RelationCondition

TimeCondition

4. Execution

表示动作执行过程。

Execution=(Action,Condition,State,Process,Result)

5. ExecutionState

负责管理:

Ready

Checking

Executable

Executing

Completed

Failed

Paused

Cancelled

6. ExecutionResult

负责保存:

ExpectedResult

ActualResult

ResultMatch

StateChange

7. BehaviorExecutor

负责建立:

Behavior→Action→Execution

8. ExecutionController

负责统一管理:

ConditionCheck→Execution→StateUpdate→ResultCheck

最终工程运行结构可以表示为:

BehaviorController→BehaviorExecutor→ActionExecutor→ExecutionController→ExecutionResult→BehaviorState


十一、行为执行理论与前后章节的关系

本章不是孤立理论,而是连接前面行为理论的重要一层。

第31章解决:

复杂行为如何形成

第32章解决:

复杂行为如何模拟

第33章解决:

行为如何进入执行

因此形成:

复杂行为形成→复杂行为模拟→行为执行

进一步形成完整行为链:

目标→对象→状态→方法→行为→动作→执行→结果→状态变化

如果状态发生变化:

状态变化→重新判断→下一行为

由此逐渐形成:

目标→行为→动作→执行→结果→状态→下一行为


十二、本章总结

行为执行理论研究的是行为从结构状态进入实际执行状态的过程。

行为首先必须转化为具体动作:

行为→动作

动作产生以后,不能直接执行,而必须进行执行条件判断:

动作→执行条件

当条件满足以后:

执行条件→执行

执行过程中,动作具有明确的状态变化:

Ready→Checking→Executing→Completed

或者:

Executing→Failed

执行结束以后产生实际结果:

执行→执行结果

结果进一步改变系统状态:

执行结果→状态变化

最终形成:

行为→动作→执行条件→执行→执行状态→执行结果→状态变化

而状态变化又会影响下一行为:

状态变化→下一行为

因此,行为执行理论的完整结构可以归纳为:

B→A→C→E→S→R→S'→B'

其中 B 是行为,A 是动作,C 是执行条件,E 是执行过程,S 是执行状态,R 是执行结果,S' 是新的状态,B' 是下一行为。

这意味着,行为执行不是行为结构的终点,而是行为连续运行和状态持续变化的起点

最终形成:

行为形成→行为模拟→行为执行→结果产生→状态变化→下一行为

由此,WSaiOS的行为理论从“行为是什么”进一步进入“行为如何发生”的执行层。

Leave a Reply

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