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

第31章 复杂行为形成理论

第31章 复杂行为形成理论

31.1 简单行为

简单行为(Simple Behavior)是由一个基本行为单元或少量具有直接关系的动作构成,并能够在相对明确的条件下完成一个局部目标的行为结构。

简单行为是复杂行为形成的基础。

在第28章中,行为被定义为主体针对对象,在一定条件下,为实现目标而形成的结构化活动。因此,简单行为可以表示为:

Bs=(Sub,O,G,C,A,R,S)B_s=(Sub,O,G,C,A,R,S)

其中:

  • BsB_s:简单行为;
  • SubSub:行为主体;
  • OO:行为对象;
  • GG:行为目标;
  • CC:行为条件;
  • AA:动作;
  • RR:行为结果;
  • SS:行为状态。

例如:

打开(门)打开(门)

可以构成一个简单行为。

其结构为:

主体+门+打开目标+关闭状态→打开动作→门打开主体 + 门 + 打开目标 + 关闭状态 \rightarrow 打开动作 \rightarrow 门打开

简单行为通常具有以下特点:

第一,目标比较明确。

第二,行为对象相对集中。

第三,动作数量较少。

第四,动作之间的依赖关系较简单。

第五,行为结果比较直接。

因此可以表示为:

简单目标→简单行为→直接结果简单目标 \rightarrow 简单行为 \rightarrow 直接结果

简单行为并不是没有内部结构,而是其内部结构相对有限。

例如:

拿起杯子拿起杯子

本身可能包含识别、接近、抓取等多个动作,但从行为组织层面,它仍然可以作为一个相对独立的行为单元。

因此:

简单行为→行为单元简单行为 \rightarrow 行为单元

而多个简单行为进一步组合:

B1+B2+⋯+Bn→复杂行为B_1+B_2+\cdots+B_n \rightarrow 复杂行为

这构成复杂行为形成的基础。


31.2 行为组合

行为组合(Behavior Composition)是将两个或两个以上相对独立的行为单元按照目标、对象、条件、状态或结果关系组织成一个更高层行为结构的过程。

设存在:

B1,B2,…,BnB_1,B_2,\ldots,B_n

通过行为关系:

RBR_B

可以形成:

CB={B1,B2,…,Bn,RB}CB=\{B_1,B_2,\ldots,B_n,R_B\}

其中:

  • CBCB:复杂行为;
  • BiB_i:子行为;
  • RBR_B:子行为之间的关系。

行为组合不是简单地把多个行为放在一起,而是建立它们之间的结构关系。

例如:

寻找杯子→拿起杯子→饮水寻找杯子 \rightarrow 拿起杯子 \rightarrow 饮水

三个行为通过目标和过程关系组合起来,可以形成:

喝水行为喝水行为

因此:

行为组合=行为集合+行为关系行为组合 = 行为集合 + 行为关系

行为之间可以形成多种关系。

31.2.1 顺序组合

B1→B2B_1\rightarrow B_2

表示 B1B_1 完成后进入 B2B_2

31.2.2 条件组合

B1→Condition→B2B_1 \rightarrow Condition \rightarrow B_2

表示 B2B_2 是否发生取决于条件。

31.2.3 替代组合

B1→{B2B3B_1 \rightarrow \begin{cases} B_2\\ B_3 \end{cases}

表示根据不同条件选择不同子行为。

31.2.4 并行组合

B1∥B2B_1\parallel B_2

表示两个行为可以在同一整体行为结构中同时存在或协同推进。

因此复杂行为的组合关系可以表示为:

CB=Compose(B1,B2,…,Bn,RB)CB=Compose(B_1,B_2,\ldots,B_n,R_B)

行为组合使行为结构获得层级性。


31.3 行为序列

行为序列(Behavior Sequence)是多个行为按照一定先后关系排列形成的动态行为结构。

最基本的行为序列为:

B1→B2→B3→⋯→BnB_1\rightarrow B_2\rightarrow B_3\rightarrow\cdots\rightarrow B_n

其中:

Bi→Bi+1B_i\rightarrow B_{i+1}

表示前一个行为与后一个行为存在过程上的先后关系。

行为序列不是简单的时间排列,而是存在一定的逻辑依赖。

例如:

打开门→进入房间打开门 \rightarrow 进入房间

“进入房间”依赖于“门已经打开”的状态。

因此:

Result(B1)⊨Condition(B2)Result(B_1)\models Condition(B_2)

才可以形成有效行为序列。

行为序列可以表示为:

BS=(B,Rs)BS=(B,R_s)

其中:

  • BB:行为集合;
  • RsR_s:行为顺序关系。

进一步:

Bi→ResultSi→ConditionBi+1B_i \xrightarrow{Result} S_i \xrightarrow{Condition} B_{i+1}

因此:

行为→状态→下一行为行为 \rightarrow 状态 \rightarrow 下一行为

构成行为序列的动态连接。

如果前一个行为未达到要求:

Result(Bi)⊭Condition(Bi+1)Result(B_i)\not\models Condition(B_{i+1})

则:

Bi+1B_{i+1}

不能正常进入执行状态。

所以行为序列具有状态连续性:

Si→Bi+1S_i\rightarrow B_{i+1}

行为序列最终形成:

B1→S1→B2→S2→B3→⋯→BnB_1 \rightarrow S_1 \rightarrow B_2 \rightarrow S_2 \rightarrow B_3 \rightarrow \cdots \rightarrow B_n


31.4 条件行为

条件行为(Conditional Behavior)是根据当前对象、状态、环境、目标或其他条件决定是否发生、发生哪一种或以何种方式发生的行为结构。

条件行为的核心是:

Condition→BehaviorCondition\rightarrow Behavior

可以表示为:

C→BC\rightarrow B

当:

C=1C=1

则:

BB

可以形成或执行。

当:

C=0C=0

则:

BB

不能形成或进入当前执行状态。

更复杂的条件行为可以表示为:

C1∧C2∧C3→B1C_1\land C_2\land C_3 \rightarrow B_1

或者:

C1→B1C_1 \rightarrow B_1 ¬C1→B2\neg C_1 \rightarrow B_2

形成行为选择结构:

Condition→BehaviorSelection→BehaviorCondition \rightarrow BehaviorSelection \rightarrow Behavior

例如:

对象=门对象=门

并且:

门状态=关闭门状态=关闭

则:

打开门行为打开门行为

可以成立。

如果:

门状态=打开门状态=打开

则“打开门”不再是当前必要行为,系统可能进入:

通过门行为通过门行为

因此:

状态→条件→行为选择状态 \rightarrow 条件 \rightarrow 行为选择

条件行为使复杂行为能够根据当前情况产生不同路径。


31.5 状态驱动行为

状态驱动行为(State-Driven Behavior)是由当前对象状态、环境状态或场景状态决定行为形成、选择和变化的行为结构。

状态驱动行为的核心关系为:

State→BehaviorState\rightarrow Behavior

设当前状态为:

StS_t

则行为可以表示为:

Bt=f(St,G,O,C)B_t=f(S_t,G,O,C)

其中:

  • StS_t:当前状态;
  • GG:目标;
  • OO:对象;
  • CC:条件。

执行行为后:

Bt→St+1B_t\rightarrow S_{t+1}

因此形成:

St→Bt→St+1S_t \rightarrow B_t \rightarrow S_{t+1}

然后:

St+1→Bt+1S_{t+1} \rightarrow B_{t+1}

形成连续状态驱动过程:

S0→B1→S1→B2→S2→⋯S_0 \rightarrow B_1 \rightarrow S_1 \rightarrow B_2 \rightarrow S_2 \rightarrow \cdots

例如:

门=关闭→打开门行为→门=打开门=关闭 \rightarrow 打开门行为 \rightarrow 门=打开

新的状态:

门=打开门=打开

又成为:

进入房间行为进入房间行为

的前置条件。

因此:

State1→Behavior2State_1 \rightarrow Behavior_2

状态成为行为之间的连接结构。

状态驱动行为与固定行为序列的区别在于:

固定序列:B1→B2→B3固定序列: B_1\rightarrow B_2\rightarrow B_3

而状态驱动结构是:

St→Bi→St+1S_t\rightarrow B_i\rightarrow S_{t+1}

下一行为由新的状态决定。

因此状态驱动行为具有动态性。


31.6 多对象协同行为

多对象协同行为(Multi-Object Coordinated Behavior)是一个行为过程中存在两个或两个以上相互关联的对象,并且多个对象之间的关系共同影响行为形成、动作组织和最终结果的行为结构。

设:

O={O1,O2,…,On}O=\{O_1,O_2,\ldots,O_n\}

其中:

n≥2n\geq2

行为可以表示为:

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

其中:

O={O1,O2,…,On}O=\{O_1,O_2,\ldots,O_n\}

多个对象之间存在关系:

RO=(Oi,R,Oj)R_O=(O_i,R,O_j)

因此:

O1+O2+⋯+On+RO→CoordinatedBehaviorO_1+O_2+\cdots+O_n + R_O \rightarrow CoordinatedBehavior

例如,一个主体将杯子放到桌子上。

这里至少存在:

主体主体 杯子杯子 桌子桌子

行为并非只作用于一个对象,而是涉及:

杯子→桌子杯子\rightarrow桌子

的位置关系。

因此行为可以表示为:

移动(杯子)+目标位置(桌子)→放置行为移动(杯子) + 目标位置(桌子) \rightarrow 放置行为

多对象协同行为的关键不是对象数量,而是对象之间存在行为上的依赖关系。

例如:

O1→RelationO2O_1 \xrightarrow{Relation} O_2

可能决定动作参数:

Relation(O1,O2)→Parameter→ActionRelation(O_1,O_2) \rightarrow Parameter \rightarrow Action

进一步:

Action(O1,O2)→BehaviorAction(O_1,O_2) \rightarrow Behavior

因此,多对象关系可以影响:

  • 动作对象;
  • 动作参数;
  • 动作顺序;
  • 行为条件;
  • 行为结果;
  • 场景状态。

31.7 多对象协同中的对象关系

多对象协同行为通常不是多个对象分别执行独立行为,而是多个对象在同一个行为结构中相互约束。

例如:

对象A=杯子对象A=杯子 对象B=桌子对象B=桌子

行为目标:

G=杯子放在桌子上G=杯子放在桌子上

则形成:

杯子→移动→桌子→位置关系改变杯子 \rightarrow 移动 \rightarrow 桌子 \rightarrow 位置关系改变

最终:

Relation(Cup,Table)=OnRelation(Cup,Table)=On

因此:

Rt→BehaviorRt+1R_t \xrightarrow{Behavior} R_{t+1}

多对象行为实际上可以通过改变对象关系产生行为结果。

因此:

多对象协同→关系约束→动作组织→关系变化多对象协同 \rightarrow 关系约束 \rightarrow 动作组织 \rightarrow 关系变化


31.8 复杂行为形成机制

复杂行为形成机制(Complex Behavior Formation Mechanism)是指简单行为、行为组合、行为序列、条件关系、状态变化和多对象关系共同作用,形成复杂行为的结构化过程。

复杂行为可以形式化表示为:

CB=F(G,O,C,S,M,B,RB,P,Sc)CB=F(G,O,C,S,M,B,R_B,P,Sc)

其中:

  • GG:目标;
  • OO:对象集合;
  • CC:条件集合;
  • SS:状态;
  • MM:方法;
  • BB:行为集合;
  • RBR_B:行为关系;
  • PP:行为过程;
  • ScSc:场景。

复杂行为形成的第一步是确定目标:

GoalGoal

第二步确定相关对象:

Goal→ObjectGoal\rightarrow Object

第三步判断当前状态:

Object→StateObject\rightarrow State

第四步判断行为条件:

State+Condition→BehaviorConditionState+Condition\rightarrow BehaviorCondition

第五步选择或形成方法:

Goal+Object+Condition→MethodGoal+Object+Condition \rightarrow Method

第六步形成简单行为:

Method→SimpleBehaviorMethod\rightarrow SimpleBehavior

第七步进行行为组合:

B1+B2+⋯+Bn→BehaviorCompositionB_1+B_2+\cdots+B_n \rightarrow BehaviorComposition

第八步建立行为之间的顺序和条件关系:

BehaviorComposition→BehaviorSequenceBehaviorComposition \rightarrow BehaviorSequence

第九步根据状态变化动态调整:

StateChange→BehaviorUpdateStateChange \rightarrow BehaviorUpdate

最终形成:

ComplexBehaviorComplexBehavior

完整过程可以表示为:

目标→对象→状态→条件→方法→简单行为→行为组合→行为序列→复杂行为目标 \rightarrow 对象 \rightarrow 状态 \rightarrow 条件 \rightarrow 方法 \rightarrow 简单行为 \rightarrow 行为组合 \rightarrow 行为序列 \rightarrow 复杂行为

在动态运行过程中:

复杂行为→行为执行→状态变化→行为重新判断复杂行为 \rightarrow 行为执行 \rightarrow 状态变化 \rightarrow 行为重新判断

因此形成:

Scenet→Goalt→Behaviort→Statet+1→Behaviort+1Scene_t \rightarrow Goal_t \rightarrow Behavior_t \rightarrow State_{t+1} \rightarrow Behavior_{t+1}


31.9 复杂行为的分层形成

复杂行为不是一次性产生的,而可以按照层级逐步形成。

第一层:

ActionAction

基本动作。

第二层:

SimpleBehaviorSimpleBehavior

简单行为。

第三层:

BehaviorSequenceBehaviorSequence

行为序列。

第四层:

BehaviorCompositionBehaviorComposition

行为组合。

第五层:

ComplexBehaviorComplexBehavior

复杂行为。

因此:

Action→SimpleBehavior→BehaviorSequence→BehaviorComposition→ComplexBehaviorAction \rightarrow SimpleBehavior \rightarrow BehaviorSequence \rightarrow BehaviorComposition \rightarrow ComplexBehavior

也可以存在:

SimpleBehavior→ComplexBehaviorSimpleBehavior \rightarrow ComplexBehavior

因为某些简单行为本身就可以作为复杂行为中的独立组成单元。

复杂行为还可以继续向上组合:

ComplexBehavior1+ComplexBehavior2→ComplexBehavior3ComplexBehavior_1 + ComplexBehavior_2 \rightarrow ComplexBehavior_3

因此行为系统可以形成层级结构:

行为单元→子行为→复杂行为→高级复杂行为行为单元 \rightarrow 子行为 \rightarrow 复杂行为 \rightarrow 高级复杂行为


31.10 复杂行为的动态形成

复杂行为形成后,并不意味着结构永久固定。

对象可能变化:

Ot→Ot+1O_t\rightarrow O_{t+1}

状态可能变化:

St→St+1S_t\rightarrow S_{t+1}

条件可能变化:

Ct→Ct+1C_t\rightarrow C_{t+1}

场景可能变化:

Sct→Sct+1Sc_t\rightarrow Sc_{t+1}

因此:

CBt→CBt+1CB_t\rightarrow CB_{t+1}

复杂行为可能继续:

CBt→CBt+1CB_t\rightarrow CB_{t+1}

也可能暂停:

CBt→PauseCB_t\rightarrow Pause

也可能替换:

CBt→CBt′CB_t\rightarrow CB’_t

或者终止:

CBt→EndCB_t\rightarrow End

因此复杂行为不是固定的行为列表,而是一个能够随着认知条件变化而调整的动态结构。


31.11 复杂行为的统一形成模型

综合本章,可以建立复杂行为形成模型:

CBF=Goal+Object+Condition+State+Method+BehaviorSet+BehaviorRelation+SceneCBF= Goal + Object + Condition + State + Method + BehaviorSet + BehaviorRelation + Scene

其结果为:

CBF→ComplexBehaviorCBF\rightarrow ComplexBehavior

行为形成过程:

Goal→Object→State→Condition→Method→SimpleBehaviorGoal \rightarrow Object \rightarrow State \rightarrow Condition \rightarrow Method \rightarrow SimpleBehavior

进一步:

SimpleBehavior→BehaviorComposition→BehaviorSequence→ComplexBehaviorSimpleBehavior \rightarrow BehaviorComposition \rightarrow BehaviorSequence \rightarrow ComplexBehavior

运行过程:

ComplexBehavior→Behavior1→State1→Behavior2→State2→⋯ComplexBehavior \rightarrow Behavior_1 \rightarrow State_1 \rightarrow Behavior_2 \rightarrow State_2 \rightarrow \cdots

场景反馈:

ComplexBehavior→SceneChangeComplexBehavior \rightarrow SceneChange

最终形成:

Scenet→Goalt→Methodt→SimpleBehaviort→BehaviorCompositiont→ComplexBehaviort→Statet+1→Scenet+1Scene_t \rightarrow Goal_t \rightarrow Method_t \rightarrow SimpleBehavior_t \rightarrow BehaviorComposition_t \rightarrow ComplexBehavior_t \rightarrow State_{t+1} \rightarrow Scene_{t+1}

因此,复杂行为是一个由简单行为逐层组合,并通过条件、状态、对象关系和行为关系不断组织形成的动态行为结构


31.12 复杂行为形成的基本规则

为了使复杂行为具有明确的结构,可以建立以下基本规则。

规则一:目标一致规则

参与同一复杂行为的子行为,应当服务于总体目标或其子目标:

Goal(Bi)⊆Goal(CB)Goal(B_i)\subseteq Goal(CB)

规则二:行为连接规则

相邻行为之间必须存在明确的过程、条件或状态关系:

Relation(Bi,Bi+1)≠∅Relation(B_i,B_{i+1})\neq\varnothing

规则三:状态连续规则

前一行为产生的状态应能够作为后一行为的输入:

Result(Bi)→Statei+1Result(B_i)\rightarrow State_{i+1}

规则四:条件满足规则

下一行为必须满足其执行条件:

Statei⊨Condition(Bi+1)State_i\models Condition(B_{i+1})

规则五:对象关系规则

涉及多个对象时,必须明确对象之间的关系:

R(Oi,Oj)R(O_i,O_j)

规则六:结果一致规则

复杂行为最终结果必须与总体目标保持一致:

Match(Result(CB),Goal(CB))=1Match(Result(CB),Goal(CB))=1

因此复杂行为形成条件可以统一表示为:

CBFormation=GoalMatch∧BehaviorRelation∧StateContinuity∧ConditionMatch∧ObjectRelation∧ResultMatchCBFormation= GoalMatch \land BehaviorRelation \land StateContinuity \land ConditionMatch \land ObjectRelation \land ResultMatch


31.13 复杂行为的工程映射

在认知工程中,可以将复杂行为设计为独立对象,并通过行为组合和行为关系进行管理。

基本对象结构:

ComplexBehavior
├── Goal
├── Subject
├── Objects
├── Conditions
├── Method
├── Behaviors
├── BehaviorRelations
├── State
├── Process
├── Parameters
├── Result
└── Scene

对应工程对象可以包括:

SimpleBehavior
Behavior
ComplexBehavior
BehaviorSequence
BehaviorCondition
BehaviorRelation
BehaviorComposer
BehaviorBuilder
BehaviorStateManager
BehaviorController

其中:

SimpleBehavior表示基本行为单元。

Behavior表示一般行为结构。

ComplexBehavior表示由多个行为组成的高级行为结构。

BehaviorSequence负责管理行为顺序。

BehaviorCondition负责管理条件行为。

BehaviorRelation负责管理行为之间的关系。

BehaviorComposer负责将多个行为组合成复杂行为。

BehaviorBuilder负责根据目标、方法、对象和状态形成行为。

BehaviorStateManager负责维护行为状态。

BehaviorController负责管理复杂行为运行过程。

工程流程可以表示为:

Goal→Method→SimpleBehavior→BehaviorComposer→ComplexBehaviorGoal \rightarrow Method \rightarrow SimpleBehavior \rightarrow BehaviorComposer \rightarrow ComplexBehavior

运行过程中:

ComplexBehavior→BehaviorSequence→BehaviorCondition→BehaviorState→NextBehaviorComplexBehavior \rightarrow BehaviorSequence \rightarrow BehaviorCondition \rightarrow BehaviorState \rightarrow NextBehavior

最终:

Behavior→Action→Result→State→SceneBehavior \rightarrow Action \rightarrow Result \rightarrow State \rightarrow Scene

这样,理论中的复杂行为形成机制可以对应到实际的软件对象和模块结构。


31.14 本章总结

复杂行为形成理论研究的核心问题,是说明多个行为如何从简单结构逐步形成具有目标、顺序、条件、状态和对象关系的高级行为结构。

简单行为是基本行为单元:

SimpleBehaviorSimpleBehavior

行为组合建立行为之间的结构关系:

B1+B2+⋯+Bn→BehaviorCompositionB_1+B_2+\cdots+B_n \rightarrow BehaviorComposition

行为序列建立过程关系:

B1→B2→⋯→BnB_1\rightarrow B_2\rightarrow\cdots\rightarrow B_n

条件行为建立条件约束:

Condition→BehaviorCondition\rightarrow Behavior

状态驱动行为建立动态关系:

Statet→Behaviort→Statet+1State_t \rightarrow Behavior_t \rightarrow State_{t+1}

多对象协同行为建立对象关系:

O1+O2+⋯+On+RO→CoordinatedBehaviorO_1+O_2+\cdots+O_n + R_O \rightarrow CoordinatedBehavior

最终形成:

简单行为→行为组合→行为序列→条件行为→状态驱动→多对象协同→复杂行为简单行为 \rightarrow 行为组合 \rightarrow 行为序列 \rightarrow 条件行为 \rightarrow 状态驱动 \rightarrow 多对象协同 \rightarrow 复杂行为

更加完整地表示:

目标→对象→状态→条件→方法→简单行为→行为组合→行为序列→复杂行为目标 \rightarrow 对象 \rightarrow 状态 \rightarrow 条件 \rightarrow 方法 \rightarrow 简单行为 \rightarrow 行为组合 \rightarrow 行为序列 \rightarrow 复杂行为

复杂行为执行之后:

复杂行为→动作→结果→状态变化→场景变化复杂行为 \rightarrow 动作 \rightarrow 结果 \rightarrow 状态变化 \rightarrow 场景变化

并根据新的状态重新形成下一阶段行为:

Scenet→Goalt→ComplexBehaviort→Statet+1→Scenet+1→ComplexBehaviort+1Scene_t \rightarrow Goal_t \rightarrow ComplexBehavior_t \rightarrow State_{t+1} \rightarrow Scene_{t+1} \rightarrow ComplexBehavior_{t+1}

因此,复杂行为不是预先固定的动作或行为列表,而是由目标驱动、行为组合、条件约束、状态变化、多对象关系和场景变化共同形成的动态结构

本章建立了从“简单行为”向“复杂行为”的形成机制,为后续研究复杂行为的匹配、选择、分解、调整以及行为控制提供理论基础。

Leave a Reply

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