第17章 行为与动作匹配
17.1 行为与动作匹配的提出背景
在认知系统中,对象和关系主要描述相对稳定的认知结构,而行为描述对象发生的活动过程。
例如:
人 → 抓取 → 鸡蛋
表示一个行为。
但是,“抓取”本身还可以进一步分解为一系列具体动作:
手靠近 → 手接触 → 手闭合 → 鸡蛋离开桌面
因此,行为与动作虽然具有密切关系,但并不是同一个概念。
行为描述一个完整的活动过程。
动作描述构成行为的具体操作单元。
因此可以建立:
行为 → 动作集合 → 行为结果
例如:
抓取鸡蛋行为
→
靠近动作
→
接触动作
→
闭合动作
→
提起动作
→
鸡蛋被拿起
由此,行为与动作匹配成为认知匹配体系中的独立内容。
17.2 行为的定义
**行为(Behavior)**是对象在一定条件和目标约束下发生的具有过程、方向和结果的活动。
行为可以表示为:
B = (A, T, O, C, P, R, S)
其中:
- B:行为;
- A:行为主体;
- T:行为类型;
- O:行为对象;
- C:行为条件;
- P:行为过程;
- R:行为结果;
- S:行为状态。
例如:
人A → 抓取 → 鸡蛋A
构成一个完整行为。
行为的主要特点是:
具有主体
→
具有对象
→
具有活动过程
→
具有结果
因此,行为属于相对完整的认知结构。
17.3 动作的定义
**动作(Action)**是行为过程中可以独立识别、执行和描述的具体操作单元。
例如“抓取鸡蛋”这一行为可以包含:
移动手
靠近鸡蛋
接触鸡蛋
闭合手指
提起鸡蛋
这些都是动作。
因此:
行为 = 多个动作按照一定结构形成的活动过程
可以表示为:
B = {A₁ → A₂ → A₃ → … → Aₙ}
其中:
- A₁、A₂、A₃:动作;
- n:动作数量;
- →:动作之间的执行顺序。
例如:
抓取
→
接近
→
接触
→
闭合
→
提起
共同构成“抓取行为”。
17.4 行为与动作的区别
行为与动作具有不同的认知层级。
| 项目 | 行为 | 动作 |
|---|---|---|
| 认知层级 | 较高 | 较低 |
| 结构 | 完整活动 | 操作单元 |
| 时间范围 | 较长 | 较短 |
| 组成 | 可由多个动作构成 | 可以构成行为 |
| 结果 | 通常具有整体结果 | 可以产生局部结果 |
| 关系 | 包含动作 | 属于行为组成部分 |
因此:
动作是行为的组成元素
而:
行为是动作的结构集合
二者不能简单等同。
17.5 行为结构
行为可以进一步表示为:
行为主体 + 行为对象 + 行为类型 + 动作序列 + 条件 + 结果
例如:
人 → 抓取 → 鸡蛋
可以展开为:
人
→
接近鸡蛋
→
接触鸡蛋
→
抓住鸡蛋
→
提起鸡蛋
→
鸡蛋离开桌面
因此行为本身具有内部动作结构。
形成:
行为 → 动作1 → 动作2 → 动作3 → 动作4 → 结果
17.6 动作结构
一个动作也具有自己的结构。
可以表示为:
A = (Actor, Type, Object, Condition, Result)
其中:
- Actor:动作执行者;
- Type:动作类型;
- Object:动作作用对象;
- Condition:动作发生条件;
- Result:动作产生结果。
例如:
手 → 接触 → 鸡蛋
可以作为一个动作实例。
另一个动作:
手 → 闭合 → 鸡蛋
也是一个动作实例。
因此,动作不是简单的名称,而是具有主体、对象、条件和结果的基本操作结构。
17.7 行为匹配
行为匹配是两个完整行为之间的结构比较。
例如:
行为A:人A抓取鸡蛋A
行为B:人B抓取鸡蛋B
虽然对象实例不同,但是:
行为类型相同
主体类别相同
对象类别相同
行为结构相同
因此可以形成行为结构匹配。
行为匹配主要比较:
主体 → 类型 → 对象 → 条件 → 动作结构 → 结果
最终形成:
行为A ↔ 行为B
17.8 动作匹配
动作匹配是两个具体动作之间的对应判断。
例如:
手A → 接触 → 鸡蛋A
与:
手B → 接触 → 鸡蛋B
具体对象不同,但动作类型一致:
接触 = 接触
因此可以形成动作类型匹配。
动作匹配可以分为:
动作实例匹配
动作类型匹配
动作对象匹配
动作条件匹配
动作结果匹配
动作结构匹配
17.9 行为与动作的对应匹配
行为匹配不能只比较行为名称,还需要比较其动作组成。
例如:
行为A:
抓取
动作序列:
接近 → 接触 → 闭合 → 提起
行为B:
抓取
动作序列:
接近 → 接触 → 闭合 → 提起
则:
行为类型匹配
同时:
动作序列匹配
因此形成较高程度的行为匹配。
如果行为B变成:
接近 → 接触 → 推动 → 移动
虽然都可能涉及“接触对象”,但动作结构不同。
因此:
行为名称可能相近
但:
行为结构不匹配
17.10 动作顺序匹配
动作之间存在顺序关系。
例如:
接近 → 接触 → 抓取 → 提起
不能简单变成:
提起 → 接触 → 接近 → 抓取
因为动作顺序改变后,行为结构也可能发生变化。
因此动作匹配不仅比较:
动作集合
还需要比较:
动作顺序
可以表示为:
Sequence(A) = {A₁ → A₂ → A₃ → … → Aₙ}
两个行为:
B₁ = {A₁ → A₂ → A₃}
B₂ = {A₁ → A₂ → A₃}
动作顺序一致。
因此:
SequenceMatch = 1
17.11 动作结构匹配
动作结构匹配研究两个动作是否具有相同的结构。
例如:
人A → 推动 → 箱子A
与:
人B → 推动 → 箱子B
虽然对象实例不同,但是:
主体类别:人
动作类型:推动
对象类别:箱子
因此:
人 → 推动 → 箱子
形成相同动作结构。
这属于:
动作结构匹配
而不是动作实例匹配。
17.12 行为动作序列匹配
一个行为可以包含多个动作,因此可以进一步进行动作序列匹配。
行为A:
A₁ → A₂ → A₃ → A₄
行为B:
B₁ → B₂ → B₃ → B₄
分别进行:
A₁ ↔ B₁
A₂ ↔ B₂
A₃ ↔ B₃
A₄ ↔ B₄
如果全部对应,则:
动作序列完全匹配
如果只有部分动作对应:
动作序列部分匹配
如果核心动作完全不同:
动作序列不匹配
因此:
行为匹配 → 动作匹配 → 动作序列匹配
形成行为内部结构的比较机制。
17.13 行为与动作的层次结构
可以建立:
行为
↓
动作集合
↓
动作
↓
动作对象
↓
动作结果
例如:
抓取鸡蛋
↓
接近 + 接触 + 闭合 + 提起
↓
接近动作
↓
手 → 鸡蛋
↓
手与鸡蛋距离缩短
这种层次结构使认知系统能够同时认识:
“发生了什么行为”
以及:
“这个行为由什么动作构成”
17.14 行为与动作匹配条件
设两个行为:
B₁ = {A₁,A₂,…,Aₙ}
B₂ = {B₁,B₂,…,Bₘ}
行为与动作匹配需要考虑:
行为类型
行为主体
行为对象
动作数量
动作类型
动作顺序
动作条件
动作结果
因此可以表示为:
BM = f(T, Actor, Object, Action, Sequence, Condition, Result)
当核心条件一致时:
BM = 完全匹配
当部分结构一致时:
BM = 部分匹配
当只有行为类型相同而动作结构不同:
BM = 类型匹配
当核心结构完全不同:
BM = 不匹配
17.15 行为匹配与动作匹配的关系
二者形成上下层关系:
行为匹配
↓
动作结构比较
↓
动作逐项匹配
↓
动作顺序匹配
↓
整体行为匹配
因此:
动作匹配是行为匹配的重要组成部分。
但不能反过来说:
动作 = 行为
因为一个行为通常由多个动作构成。
例如:
“打开门”
可能包含:
靠近门 → 伸手 → 接触把手 → 转动把手 → 推门
“打开门”是行为。
“伸手”“接触”“转动”“推门”是动作。
17.16 行为结果与动作结果匹配
一个行为可能包含多个局部动作结果。
例如:
接触鸡蛋
→
手与鸡蛋建立接触关系
闭合手指
→
手形成抓取状态
提起鸡蛋
→
鸡蛋离开桌面
最终:
抓取行为完成
因此:
动作结果 → 行为状态 → 行为结果
构成结果传递结构。
如果两个行为的动作结果序列一致,则可以增强整体行为匹配。
17.17 行为与动作的动态匹配
行为具有时间性,因此动作匹配也具有动态性。
可以表示为:
t₁:动作A₁
→
t₂:动作A₂
→
t₃:动作A₃
→
t₄:动作A₄
形成完整行为:
B(t₁,t₂,t₃,t₄)
另一个行为:
B'(t₁’,t₂’,t₃’,t₄’)
系统可以比较:
动作顺序
动作间隔
动作持续状态
动作完成状态
从而判断两个行为过程是否对应。
17.18 行为与动作匹配的工程模型
在认知工程中,可以建立两个独立对象:
Behavior
├── behaviorId
├── actor
├── target
├── behaviorType
├── conditions
├── actions
├── result
└── state
动作对象:
Action
├── actionId
├── actor
├── actionType
├── target
├── condition
├── sequence
├── result
└── state
行为匹配器:
BehaviorMatcher
├── matchActor()
├── matchType()
├── matchTarget()
├── matchActions()
├── matchSequence()
├── matchCondition()
├── matchResult()
└── matchBehavior()
动作匹配器:
ActionMatcher
├── matchActor()
├── matchType()
├── matchTarget()
├── matchCondition()
├── matchSequence()
└── matchResult()
形成:
BehaviorA → BehaviorMatcher → BehaviorB
以及:
ActionA → ActionMatcher → ActionB
17.19 行为与动作匹配结果
匹配结果可以保存为结构化对象:
BehaviorActionMatchResult
├── behaviorTypeMatch
├── actorMatch
├── targetMatch
├── actionCountMatch
├── actionTypeMatch
├── actionSequenceMatch
├── conditionMatch
├── resultMatch
└── overallMatch
例如:
行为类型:匹配
主体类别:匹配
对象类别:匹配
动作数量:匹配
动作类型:匹配
动作顺序:匹配
行为结果:匹配
最终:
行为结构完全匹配
17.20 行为与动作匹配的认知意义
行为与动作匹配使认知系统能够从完整行为进一步进入行为内部。
单纯的行为认知:
人 → 抓取 → 鸡蛋
只能知道:
发生了抓取行为。
加入动作认知以后:
抓取
↓
接近
↓
接触
↓
闭合
↓
提起
系统进一步知道:
这个行为是如何发生的。
因此形成:
行为识别 → 动作分解 → 动作匹配 → 动作序列匹配 → 行为结构匹配
这为后续的方法认知提供基础。
因为:
方法本质上需要建立在动作组织结构之上。
由此形成:
行为 → 动作 → 动作序列 → 方法
17.21 本章总结
行为与动作匹配建立了行为认知的内部结构。
本章将:
行为
定义为具有主体、对象、条件、过程和结果的完整活动结构。
将:
动作
定义为行为过程中可以独立识别和描述的具体操作单元。
二者形成:
行为 → 动作集合 → 动作序列 → 行为结果
并建立:
行为匹配
→ 比较完整行为结构。
动作匹配
→ 比较具体动作结构。
动作序列匹配
→ 比较动作之间的执行顺序。
最终形成:
对象 → 关系 → 行为 → 动作 → 状态
以及对应的匹配过程:
对象匹配 → 关系匹配 → 行为匹配 → 动作匹配 → 状态匹配
而方法匹配则建立在这一基础上:
行为 → 动作 → 动作结构 → 方法
因此,行为与动作匹配是连接关系认知、行为认知和方法认知的重要中间层。