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

第110章 行为与动作

第110章 行为与动作

110.1 行为与动作区别

在ICAI理论中,**行为(Behavior)动作(Action)**属于不同层级的运行概念。

行为是具有主体、对象、目的、条件、方法、决策、动作和结果的完整目的性过程;动作则是行为执行过程中的具体操作单位。

因此:

Action⊂BehaviorAction\subset Behavior

但:

Action≠BehaviorAction\neq Behavior

行为回答:

机器个体正在实施什么有目的的过程?

动作回答:

机器个体当前具体执行什么操作?

例如,一个机器个体需要完成“处理文件”这一行为:

Behavior=处理文件Behavior=处理文件

该行为可能包含:

Action1=打开文件Action_1=打开文件 Action2=读取文件Action_2=读取文件 Action3=检查内容Action_3=检查内容 Action4=保存结果Action_4=保存结果

因此:

Behavior→Action1→Action2→Action3→Action4Behavior \rightarrow Action_1 \rightarrow Action_2 \rightarrow Action_3 \rightarrow Action_4

行为具有完整目的,而动作具有具体执行性。

110.1.1 行为是过程,动作是执行单位

行为可以定义为:

B={Subject,Object,Goal,Purpose,Capability,Method,Decision,Condition,Action,Result,State,History}B= \{ Subject, Object, Goal, Purpose, Capability, Method, Decision, Condition, Action, Result, State, History \}

动作可以定义为:

A={Subject,Object,Behavior,MethodStep,Condition,Operation,Result,State}A= \{ Subject, Object, Behavior, MethodStep, Condition, Operation, Result, State \}

二者的主要区别在于:

项目 行为 动作
层级 过程层 执行层
目的 有完整目的 服务于行为目的
方法 包含方法 对应方法步骤
决策 通常承载最终决策 执行已经确定的选择
执行 由多个动作构成 直接执行
结果 行为整体结果 单个动作结果
状态 行为生命周期 动作生命周期

因此:

Goal→Method→Decision→Behavior→ActionGoal\rightarrow Method\rightarrow Decision\rightarrow Behavior\rightarrow Action

构成从目的到具体执行的逐级展开关系。


110.2 一个行为多个动作

一个完整行为通常不是一个单独动作,而是由一个或多个动作组成。

定义:

Behavior={Action1,Action2,…,Actionn}Behavior=\{Action_1,Action_2,\ldots,Action_n\}

其中:

  • BehaviorBehavior:完整行为;
  • ActioniAction_i:第 ii 个动作;
  • nn:行为包含的动作数量。

最简单的行为:

Behavior→Action1Behavior\rightarrow Action_1

复杂行为:

Behavior→Action1→Action2→Action3→⋯→ActionnBehavior \rightarrow Action_1 \rightarrow Action_2 \rightarrow Action_3 \rightarrow \cdots \rightarrow Action_n

110.2.1 顺序动作

部分行为要求动作按照固定顺序执行:

A1→A2→A3A_1\rightarrow A_2\rightarrow A_3

例如:

行为:处理一个数据文件

打开文件
↓
读取数据
↓
检查数据
↓
处理数据
↓
保存数据
↓
关闭文件

如果:

A1=FailedA_1=Failed

则可能无法进入:

A2A_2

因此:

Ai→Condition→Ai+1A_i\rightarrow Condition\rightarrow A_{i+1}

前一个动作的结果可能成为后一个动作的执行条件。

110.2.2 条件动作

一个行为中的后续动作可能由前一个动作的结果决定:

A1→Result1→Condition→{A2A3A_1 \rightarrow Result_1 \rightarrow Condition \rightarrow \begin{cases} A_2\\ A_3 \end{cases}

例如:

检查文件
↓
结果判断
├── 文件正常 → 读取文件
└── 文件异常 → 异常处理

因此,行为中的动作并不一定是固定线性序列。

110.2.3 并行动作

如果两个动作互不冲突,并且条件允许,则可以并行:

A1∥A2A_1\parallel A_2

例如:

行为:准备运行环境

检查数据库
       ╲
        → 环境确认
       ╱
检查文件系统

两个检查动作可以分别执行。

但是并行执行必须满足:

Conflict(A1,A2)=FalseConflict(A_1,A_2)=False

以及:

ResourceConflict(A1,A2)=FalseResourceConflict(A_1,A_2)=False

否则必须调整为顺序执行。

110.2.4 动作依赖

动作之间可以存在依赖关系:

A1→A2A_1\rightarrow A_2

表示 A2A_2 依赖 A1A_1

也可以:

A1→{A2,A3}A_1\rightarrow\{A_2,A_3\}

表示一个动作完成后产生两个后续动作。

进一步:

{A2,A3}→A4\{A_2,A_3\}\rightarrow A_4

表示两个动作都完成之后才能执行 A4A_4

因此,一个行为实际上可以形成一个动作关系结构:

ActionGraph=(VA,EA)ActionGraph=(V_A,E_A)

其中:

  • VAV_A:动作集合;
  • EAE_A:动作之间的执行关系。

这使行为不再只是简单的动作列表,而成为一个具有顺序、条件、依赖和结果关系的执行结构。


110.3 多个行为一个任务

在ICAI中,**任务(Task)**是比行为更高一级的执行组织单位。

一个任务可能需要多个行为共同完成:

Task={Behavior1,Behavior2,…,Behaviorn}Task=\{Behavior_1,Behavior_2,\ldots,Behavior_n\}

因此:

Behavior⊂TaskBehavior\subset Task

但:

Behavior≠TaskBehavior\neq Task

任务回答:

机器个体需要完成什么完整工作?

行为回答:

完成这个任务需要实施哪些目的性过程?

动作回答:

当前具体执行什么操作?

因此形成三级结构:

Task→Behavior→Action\boxed{ Task \rightarrow Behavior \rightarrow Action }

110.3.1 一个任务多个行为

例如任务:

Task=完成数据备份Task=完成数据备份

可以形成:

Behavior1=检查数据Behavior_1=检查数据 Behavior2=整理数据Behavior_2=整理数据 Behavior3=创建备份Behavior_3=创建备份 Behavior4=验证备份Behavior_4=验证备份

形成:

任务:完成数据备份
│
├── 行为1:检查数据
│   ├── 动作1
│   └── 动作2
│
├── 行为2:整理数据
│   ├── 动作3
│   ├── 动作4
│   └── 动作5
│
├── 行为3:创建备份
│   ├── 动作6
│   └── 动作7
│
└── 行为4:验证备份
    ├── 动作8
    └── 动作9

因此:

Task→Behavior1→Action1..nTask \rightarrow Behavior_1 \rightarrow Action_{1..n}

同时:

Task→Behavior2→Action1..nTask \rightarrow Behavior_2 \rightarrow Action_{1..n}

最终:

Task→{Behavior1,Behavior2,…,Behaviorn}Task \rightarrow \{Behavior_1,Behavior_2,\ldots,Behavior_n\}

110.3.2 行为之间的关系

多个行为之间也可能存在:

顺序关系:

B1→B2→B3B_1\rightarrow B_2\rightarrow B_3

条件关系:

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

并行关系:

B1∥B2B_1\parallel B_2

依赖关系:

B1→B2B_1\rightarrow B_2

因此任务本身可以建立行为关系结构:

TaskGraph=(VB,EB)TaskGraph=(V_B,E_B)

其中:

  • VBV_B:任务中的行为集合;
  • EBE_B:行为之间的执行关系。

110.4 行为与动作关系

行为与动作不是简单的包含关系,而是具有形成、分解、执行、结果汇总和状态传递等多种关系。

可以建立:

Behavior→MethodStep→Action→ActionResult→BehaviorResult\boxed{ Behavior \rightarrow MethodStep \rightarrow Action \rightarrow ActionResult \rightarrow BehaviorResult }

110.4.1 行为形成动作

行为形成之后,根据方法步骤生成具体动作:

Behavior→Method→MethodStep→ActionBehavior \rightarrow Method \rightarrow MethodStep \rightarrow Action

即:

Actioni=F(Behavior,MethodStepi,Conditioni)Action_i=F(Behavior,MethodStep_i,Condition_i)

动作因此不是脱离行为独立产生的。

110.4.2 行为控制动作

行为状态决定动作是否能够继续:

BehaviorState→ActionStateBehaviorState \rightarrow ActionState

例如:

Behavior=ExecutingBehavior=Executing

允许相关动作执行。

如果:

Behavior=PausedBehavior=Paused

则相关动作可以:

Action→PausedAction\rightarrow Paused

如果:

Behavior=CancelledBehavior=Cancelled

则未完成动作必须停止:

Action→CancelledAction\rightarrow Cancelled

因此:

BehaviorState→ActionPermissionBehaviorState \rightarrow ActionPermission

110.4.3 动作状态影响行为状态

关系也可以反向传递:

ActionResult→BehaviorEvaluation→BehaviorStateActionResult \rightarrow BehaviorEvaluation \rightarrow BehaviorState

例如:

A1=SuccessA_1=Success

可以使行为继续:

Behavior→ExecutingBehavior\rightarrow Executing

如果关键动作:

A2=FailedA_2=Failed

则可能:

Behavior→FailedBehavior\rightarrow Failed

如果动作只是暂时无法继续:

A3=PausedA_3=Paused

则行为可能:

Behavior→PausedBehavior\rightarrow Paused

因此:

ActionState→BehaviorStateActionState\rightarrow BehaviorState

但并不是所有动作失败都会导致整个行为失败。

必须根据动作的重要程度和行为规则判断:

BehaviorState=F(ActionResults,Rule,Condition)BehaviorState = F(ActionResults,Rule,Condition)

110.4.4 关键动作与普通动作

行为中的动作可以区分为:

ActionType∈{Critical,Normal,Optional}ActionType\in \{ Critical, Normal, Optional \}

如果关键动作失败:

CriticalActionFailed→BehaviorFailedCriticalActionFailed\rightarrow BehaviorFailed

如果普通动作失败:

NormalActionFailed→BehaviorReevaluationNormalActionFailed\rightarrow BehaviorReevaluation

如果可选动作失败:

OptionalActionFailed→BehaviorContinueOptionalActionFailed\rightarrow BehaviorContinue

因此,动作结果对行为的影响必须通过规则计算,而不能简单地“一动作失败,整个行为就失败”。

110.4.5 行为结果由动作结果形成

一个行为可能有多个动作结果:

{AR1,AR2,…,ARn}\{AR_1,AR_2,\ldots,AR_n\}

行为结果:

BR=F(AR1,AR2,…,ARn,Rule)BR= F(AR_1,AR_2,\ldots,AR_n,Rule)

例如:

AR1=SuccessAR_1=Success AR2=SuccessAR_2=Success AR3=SuccessAR_3=Success

则:

BR=SuccessBR=Success

如果:

AR1=Success,AR2=Success,AR3=FailedAR_1=Success,\quad AR_2=Success,\quad AR_3=Failed

则根据动作重要性:

BR∈{Partial,Failed}BR\in\{Partial,Failed\}

因此:

ActionResult→BehaviorResultActionResult \rightarrow BehaviorResult

是动作与行为之间非常重要的结果关系。


110.5 动作结果

动作结果是动作执行后产生的实际变化,是连接执行层与行为层的重要数据。

可以定义:

ActionResult={ActionID,BeforeState,AfterState,ExpectedResult,ActualResult,Output,Status,Difference,Time}ActionResult= \{ ActionID, BeforeState, AfterState, ExpectedResult, ActualResult, Output, Status, Difference, Time \}

其中:

  • ActionIDActionID:动作标识;
  • BeforeStateBeforeState:动作执行前状态;
  • AfterStateAfterState:动作执行后状态;
  • ExpectedResultExpectedResult:预期结果;
  • ActualResultActualResult:实际结果;
  • OutputOutput:动作输出;
  • StatusStatus:结果状态;
  • DifferenceDifference:实际结果与预期结果之间的差异;
  • TimeTime:结果产生时间。

110.5.1 动作成功

当实际结果满足预期:

ActualResult≈ExpectedResultActualResult\approx ExpectedResult

则:

ActionResult=SuccessActionResult=Success

并可以:

Action→CompletedAction \rightarrow Completed

110.5.2 动作部分成功

如果动作只完成部分要求:

RequiredResult∩ActualResult≠∅RequiredResult\cap ActualResult\neq\varnothing

但:

RequiredResult⊈ActualResultRequiredResult\not\subseteq ActualResult

则:

ActionResult=PartialActionResult=Partial

此时行为系统需要重新判断:

Partial→BehaviorReevaluationPartial \rightarrow BehaviorReevaluation

可能产生新的动作。

110.5.3 动作失败

如果实际结果不满足关键要求:

ActualResult⊭ExpectedResultActualResult\not\models ExpectedResult

则:

ActionResult=FailedActionResult=Failed

失败动作进入:

Failed→DiagnosisFailed \rightarrow Diagnosis

然后根据诊断结果进入:

RepairRepair

或者:

MethodRematchingMethodRematching

或者:

DecisionReevaluationDecisionReevaluation

或者:

BehaviorReformationBehaviorReformation

110.5.4 动作阻止

动作有时根本没有真正执行,而是在执行前被条件阻止:

Condition=FalseCondition=False

因此:

ActionResult=BlockedActionResult=Blocked

这与失败不同。

Blocked≠FailedBlocked\neq Failed

Blocked表示动作没有获得执行许可;Failed表示动作已经执行或者进入执行过程,但没有达到要求。

110.5.5 动作中断

如果动作已经开始:

ExecutingExecuting

但是因为外部事件、条件变化或者资源变化而停止:

Executing→InterruptedExecuting\rightarrow Interrupted

则:

ActionResult=InterruptedActionResult=Interrupted

后续可以根据条件决定:

Interrupted→ResumeInterrupted\rightarrow Resume

或者:

Interrupted→FailedInterrupted\rightarrow Failed

或者:

Interrupted→CancelledInterrupted\rightarrow Cancelled


110.6 动作结果与行为结果

多个动作结果需要汇总为行为结果。

设一个行为:

B={A1,A2,A3}B=\{A_1,A_2,A_3\}

其动作结果:

RA={R1,R2,R3}R_A=\{R_1,R_2,R_3\}

则:

BehaviorResult=F(R1,R2,R3,Rule)BehaviorResult= F(R_1,R_2,R_3,Rule)

例如:

R1=SuccessR_1=Success R2=SuccessR_2=Success R3=SuccessR_3=Success

得到:

BehaviorResult=SuccessBehaviorResult=Success

如果:

R1=SuccessR_1=Success R2=FailedR_2=Failed R3=NotStartedR_3=NotStarted

则需要进一步判断 R2R_2 是否属于关键动作。

如果:

Critical(A2)=TrueCritical(A_2)=True

则:

BehaviorResult=FailedBehaviorResult=Failed

如果:

Critical(A2)=FalseCritical(A_2)=False

则可能:

BehaviorResult=PartialBehaviorResult=Partial

因此:

BehaviorResult≠SimpleActionResultBehaviorResult \neq SimpleActionResult

行为结果是对多个动作结果进行结构化评价之后形成的更高层结果。


110.7 任务、行为、动作三级结构

通过本章可以建立ICAI执行结构的三级模型:

Task→Behavior→Action\boxed{ Task \rightarrow Behavior \rightarrow Action }

进一步:

Task→Behavior→Action→ActionResult→BehaviorResult→TaskResult\boxed{ Task \rightarrow Behavior \rightarrow Action \rightarrow ActionResult \rightarrow BehaviorResult \rightarrow TaskResult }

其中:

**任务(Task)**规定完整工作;

**行为(Behavior)**规定完成任务所需要实施的目的性过程;

**动作(Action)**规定行为中的具体操作;

**动作结果(ActionResult)**记录具体操作产生的实际结果;

**行为结果(BehaviorResult)**综合多个动作结果;

**任务结果(TaskResult)**综合多个行为结果。

因此形成:

任务
│
├── 行为1
│   ├── 动作1
│   ├── 动作2
│   └── 动作3
│
├── 行为2
│   ├── 动作4
│   ├── 动作5
│   └── 动作6
│
└── 行为3
    ├── 动作7
    └── 动作8

结果则反向汇总:

动作结果
↓
行为结果
↓
任务结果

由此形成:

ActionResult→BehaviorResult→TaskResultActionResult \rightarrow BehaviorResult \rightarrow TaskResult


110.8 行为—动作运行模型

ICAI机器个体运行时,可以形成如下执行结构:

任务
↓
任务目标
↓
行为形成
↓
行为
↓
方法步骤
↓
动作形成
↓
动作条件检查
├── 不满足 → 等待/阻止
└── 满足
      ↓
    动作执行
      ↓
    动作结果
      ↓
    动作结果验证
      ├── 成功 → 下一个动作
      ├── 部分 → 重新判断
      ├── 失败 → 诊断/重新决策
      ├── 暂停 → 等待恢复
      └── 取消 → 终止动作
      ↓
全部动作完成
↓
形成行为结果
↓
行为结果验证
├── 成功 → 下一个行为
├── 部分 → 行为调整
└── 失败 → 重新决策
↓
全部行为完成
↓
形成任务结果

因此:

Task→Behavior→Action→ActionResult→BehaviorResult→TaskResultTask \rightarrow Behavior \rightarrow Action \rightarrow ActionResult \rightarrow BehaviorResult \rightarrow TaskResult

构成一个完整的层级执行结构。


110.9 工程映射

在WSaiOS-ICAI工程中,任务、行为和动作应当分别建立对象模型,而不能全部混合为一个对象。

核心对象:

CognitiveTask
CognitiveBehavior
CognitiveAction
CognitiveActionResult
CognitiveBehaviorResult
CognitiveTaskResult

110.9.1 行为与动作关系对象

class BehaviorAction
{
    protected $behaviorId;
    protected $actionId;
    protected $sequence;
    protected $dependency;
    protected $condition;
    protected $critical;
}

其中:

  • $behaviorId:所属行为;
  • $actionId:对应动作;
  • $sequence:执行顺序;
  • $dependency:动作依赖;
  • $condition:动作执行条件;
  • $critical:是否为关键动作。

110.9.2 行为执行引擎

class BehaviorExecutionEngine
{
    public function buildActions($behavior)
    {
        return array();
    }

    public function checkAction($action, $context)
    {
        return false;
    }

    public function executeAction($action)
    {
        return null;
    }

    public function evaluateActionResult($action, $result)
    {
        return null;
    }

    public function evaluateBehavior($behavior, $results)
    {
        return null;
    }

    public function continueBehavior($behavior)
    {
        return false;
    }
}

其核心流程:

Behavior→ActionBuilder→ActionExecution→ActionResult→BehaviorEvaluationBehavior \rightarrow ActionBuilder \rightarrow ActionExecution \rightarrow ActionResult \rightarrow BehaviorEvaluation

110.9.3 数据库结构

可以建立:

cognitive_tasks
cognitive_task_behaviors
cognitive_task_results

cognitive_behaviors
cognitive_behavior_actions
cognitive_behavior_results

cognitive_actions
cognitive_action_results
cognitive_action_states
cognitive_action_state_history

关系为:

Task→TaskBehavior→BehaviorAction→ActionResultTask \rightarrow TaskBehavior \rightarrow BehaviorAction \rightarrow ActionResult

这样能够保存:

任务
  ↓
行为
  ↓
动作
  ↓
动作结果
  ↓
行为结果
  ↓
任务结果

形成完整的机器运行历史。


110.10 行为与动作的认知意义

行为与动作的区分,使ICAI能够解决一个重要问题:

机器个体不是直接从目标跳到一个动作,而是先形成完整行为,再将行为分解为可执行动作。

因此:

Goal≠Behavior≠ActionGoal\neq Behavior\neq Action

三者分别属于不同层级:

Goal→Behavior→ActionGoal\rightarrow Behavior\rightarrow Action

目标决定方向;

行为组织目的性过程;

动作负责具体执行。

进一步结合方法与决策:

Goal→Capability→Method→Decision→Behavior→ActionGoal \rightarrow Capability \rightarrow Method \rightarrow Decision \rightarrow Behavior \rightarrow Action

这形成了从认知到实际执行的完整层级。


110.11 本章总结

本章进一步明确了ICAI中任务、行为和动作之间的层级关系。

首先:

Action⊂BehaviorAction\subset Behavior

动作是行为中的具体执行单位,行为则是具有目的、条件和结果的完整过程。

其次,一个行为可以包含多个动作:

Behavior={Action1,Action2,…,Actionn}Behavior=\{Action_1,Action_2,\ldots,Action_n\}

这些动作可以具有顺序、条件、并行和依赖关系。

再次,一个任务可以包含多个行为:

Task={Behavior1,Behavior2,…,Behaviorn}Task=\{Behavior_1,Behavior_2,\ldots,Behavior_n\}

因此建立:

Task→Behavior→Action\boxed{ Task \rightarrow Behavior \rightarrow Action }

同时,结果沿相反方向进行层级汇总:

ActionResult→BehaviorResult→TaskResult\boxed{ ActionResult \rightarrow BehaviorResult \rightarrow TaskResult }

最终形成完整的执行模型:

Task→Behavior→Action→Execution→ActionResult→BehaviorResult→TaskResult\boxed{ Task \rightarrow Behavior \rightarrow Action \rightarrow Execution \rightarrow ActionResult \rightarrow BehaviorResult \rightarrow TaskResult }

再与前面的认知、需求、目标、能力、方法和决策体系连接:

Cognition→Need→Goal→Capability→Matching→Method→Decision→Task→Behavior→Action→Result→Feedback→Learning\boxed{ Cognition \rightarrow Need \rightarrow Goal \rightarrow Capability \rightarrow Matching \rightarrow Method \rightarrow Decision \rightarrow Task \rightarrow Behavior \rightarrow Action \rightarrow Result \rightarrow Feedback \rightarrow Learning }

由此,ICAI形成了从认知对象、需求、目标,到能力、方法、决策,再到任务、行为、动作和结果的连续机器运行结构。

动作不再是孤立的程序调用,而成为行为执行结构中的基本单位;行为也不再是抽象的“做某件事情”,而成为可以由多个动作构成、能够运行、暂停、失败、恢复并产生结果的机器执行过程。

这为后续建立动作执行、动作结果验证、行为反馈、任务执行、异常处理和执行学习等理论提供了基础。

Leave a Reply

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