第7章 类组合理论
7.1 类组合的定义
在机器世界中,基础类并不是孤立存在的。现实世界中的复杂对象、复杂系统和复杂活动,往往都由多个不同类别的对象共同参与,并通过一定的结构关系、功能关系和行为关系形成整体。
**类组合(Class Composition)**是指:根据多个类之间已经存在的结构关系、功能关系、行为关系或场景关系,将两个或两个以上的类组织为一个具有更高层次结构意义的组合结构。
类组合不是创建新的基础类,而是对已有类进行组织。
其基本结构可以表示为:
类A
+
类B
+
类C
↓
结构关系
↓
类组合
例如:
锅类
+
炉具类
+
食材类
+
厨具类
↓
烹饪结构
这里的“锅类”“炉具类”“食材类”“厨具类”仍然分别保持自己的基础类别定义,并没有因为被组合到一起而失去原来的类身份。
因此,类组合的核心不是“改变基础类”,而是:
在已有类的基础上建立新的结构组织。
类组合解决的是“多个类如何形成一个整体结构”的问题。
基础类解决:
这是什么类别?
类关系解决:
这些类别之间是什么关系?
类组合解决:
这些类别如何组织成一个更高层次的结构?
因此可以形成:
基础类
↓
类关系
↓
类组合
↓
组合结构
7.2 基础类组合
**基础类组合(Basic Class Composition)**是指两个或多个基础类按照明确的结构关系进行组合。
例如:
人类
+
汽车类
如果只知道两个类存在,并不能形成有意义的组合。
当进一步定义:
人类
↓
驾驶
↓
汽车类
则产生了具有行为意义的组合结构:
驾驶者
+
汽车
↓
驾驶结构
再例如:
机械手类
+
鸡蛋类
+
桌面类
通过空间和操作关系:
机械手
↓
位于
↓
鸡蛋附近
机械手
↓
抓取
↓
鸡蛋
鸡蛋
↓
位于
↓
桌面
这些基础类就形成了一个具有明确行为意义的组合结构:
机械手类
+
鸡蛋类
+
桌面类
↓
抓取结构
因此,基础类组合至少需要满足两个条件:
第一,组合成员必须具有明确的类别身份。
第二,组合成员之间必须存在能够解释整体结构的关系。
因此:
类A + 类B ≠ 有效组合
而:
类A
+
关系
+
类B
↓
有效类组合
类组合的最小结构可以表示为:
ClassA
↓
Relation
↓
ClassB
当组合成员增加时:
ClassA
+
ClassB
+
ClassC
+
RelationSet
↓
Class Composition
7.3 多类组合
当一个结构需要三个或者更多基础类共同参与时,就形成多类组合(Multi-Class Composition)。
多类组合不是简单增加类的数量,而是建立多个类之间的整体结构。
例如烹饪行为:
人类
+
锅类
+
炉具类
+
鸡蛋类
+
西红柿类
+
油类
+
盐类
这些类别共同参与:
准备
↓
加热
↓
处理食材
↓
烹饪
↓
调味
↓
完成
因此形成:
多类
↓
多关系
↓
多状态
↓
多行为
↓
整体结构
多类组合的关键在于“关系集合”。
可以表示为:
C = {C₁, C₂, C₃, ..., Cₙ}
R = {R₁, R₂, R₃, ..., Rₘ}
其中:
C表示参与组合的类集合;C₁...Cₙ表示不同的类;R表示这些类之间的关系集合;R₁...Rₘ表示具体关系。
因此,一个有效的多类组合可以抽象为:
Composition = Classes + Relations + Structure
其中:
- Classes 表示参与组合的类;
- Relations 表示类之间的关系;
- Structure 表示这些关系形成的整体组织方式。
多类组合可以形成树状结构,也可以形成网络结构。
树状:
组合类
├── 人类
├── 锅类
├── 炉具类
├── 鸡蛋类
└── 西红柿类
网络状:
人类
/ \
使用 操作
/ \
锅类 食材类
\ /
炉具类
因此,多类组合实际上是从单一类别描述走向复杂结构描述的重要一步。
7.4 组合类
当一个类组合具有稳定的内部结构,并且该结构可以作为一个整体被识别、描述、调用和再次组合时,可以形成组合类(Composite Class)。
组合类不是基础类,而是由多个已有类按照一定规则组织形成的高层次类结构。
例如:
汽车类
+
发动机类
+
车轮类
+
车身类
↓
汽车系统组合类
这里的发动机、车轮、车身仍然具有自己的类别。
组合类描述的是:
这些类如何共同形成一个整体。
因此:
基础类
↓
组合
↓
组合类
组合类具有两个重要特征。
第一,成员结构明确
组合类必须知道由哪些类构成。
例如:
汽车组合类
├── 车身类
├── 发动机类
├── 车轮类
└── 控制系统类
第二,内部关系明确
不仅需要知道有哪些成员,还需要知道成员之间如何联系。
例如:
发动机类
↓
驱动
↓
车轮类
车身类
↓
包含
↓
发动机类
因此组合类可以表示为:
组合类
=
成员类集合
+
关系集合
+
结构规则
组合类的意义在于,它可以作为更高层次的结构单元继续参与新的组合。
例如:
发动机类
+
车轮类
+
车身类
↓
汽车组合类
汽车组合类
+
道路类
+
驾驶者类
↓
驾驶场景组合
由此产生层级化组合:
基础类
↓
组合类
↓
更高层组合
↓
复杂结构
7.5 群类
当多个同类或者不同类对象按照共同结构、共同关系、共同功能或共同活动形成一个具有整体意义的集合时,可以定义为群类(Group Class)。
群类与组合类存在区别。
组合类强调:
不同成员
+
明确结构
↓
一个整体
群类强调:
多个对象
+
共同属性 / 共同关系 / 共同活动
↓
对象群体
例如:
苹果类
↓
苹果A
苹果B
苹果C
苹果D
↓
苹果对象群
也可以形成:
人类
+
汽车类
+
道路类
+
交通设施类
↓
交通参与群
群类的成员可以是:
对象
也可以是:
类
还可以是:
组合类
因此可以形成:
对象
↓
对象群
基础类
↓
类群
组合类
↓
组合群
群类的核心不是简单的“数量增加”,而是成员之间存在可以被机器识别的共同结构。
例如:
苹果A
苹果B
苹果C
如果只有三个对象,并不能自动形成具有认知意义的群。
当机器发现:
苹果A → 属于 → 苹果类
苹果B → 属于 → 苹果类
苹果C → 属于 → 苹果类
并且它们处于同一场景或者承担共同功能时,就可以形成:
苹果对象群
群类因此承担着从“个体”向“集合结构”转换的作用。
7.6 场景类
**场景类(Scene Class)**是根据场景中稳定出现的对象类别、关系结构、状态结构、行为结构和空间时间结构,对一类场景进行抽象形成的结构类别。
场景类不是某一次具体场景。
例如:
厨房场景
可以抽象为:
人类
+
炉具类
+
锅类
+
食材类
+
厨具类
+
空间关系
+
烹饪行为
形成:
厨房场景类
实际发生的一次具体烹饪:
厨房01
+
厨师01
+
锅01
+
炉具01
+
鸡蛋01
+
西红柿01
则属于某一个具体的:
厨房场景实例
因此必须区分:
场景类
↓
场景实例
类似于:
苹果类
↓
苹果A
以及:
厨房场景类
↓
厨房场景01
场景类的核心作用,是把重复出现的复杂结构进行抽象。
例如机器多次观察到:
人
+
锅
+
炉具
+
食材
+
加热关系
+
烹饪行为
机器可以形成:
烹饪场景类
以后再次出现类似结构时,可以进行场景类匹配:
当前场景
↓
场景结构匹配
↓
烹饪场景类
↓
调用相关知识 / 方法 / 行为结构
因此,场景类是机器从具体场景向可复用结构知识转换的重要形式。
7.7 类组合的结构规则
类组合不能任意进行。
如果机器仅仅把大量类别堆积在一起,就无法形成真正的结构化知识。
因此,类组合必须具有明确的结构规则。
7.7.1 类身份规则
参与组合的成员必须首先具有明确的类身份。
对象
↓
类匹配
↓
类身份确定
↓
进入组合
例如:
鸡蛋01
↓
鸡蛋类
只有确定对象属于鸡蛋类之后,才能参与更高层次的类组合。
7.7.2 关系规则
参与组合的类之间必须具有明确关系。
例如:
人类
↓
使用
↓
锅类
或者:
锅类
↓
包含
↓
食材类
关系决定组合成员之间的结构意义。
因此:
类集合
+
关系集合
↓
结构化组合
7.7.3 结构完整性规则
组合结构必须能够解释其成员之间为什么被组织在一起。
例如:
人类
+
锅类
+
鸡蛋类
如果没有任何关系,不能直接判断三者构成什么整体。
但如果存在:
人类
↓
使用
↓
锅类
人类
↓
操作
↓
鸡蛋类
锅类
↓
处理
↓
鸡蛋类
则可以形成具有明确意义的:
烹饪组合结构
7.7.4 状态一致性规则
类组合不仅需要考虑类别和关系,还必须考虑状态。
例如:
锅类
+
鸡蛋类
+
炉具类
当:
炉具 = 未开启
则:
加热行为
无法直接进入执行状态。
如果:
炉具 = 已开启
锅 = 已放置
鸡蛋 = 未处理
则组合结构可以进入下一阶段。
因此:
类组合
↓
对象状态匹配
↓
行为条件判断
↓
下一结构
7.7.5 行为一致性规则
如果多个类参与同一个复杂行为,那么它们必须能够通过行为关系形成统一结构。
例如:
机械手类
+
鸡蛋类
+
桌面类
通过:
机械手
↓
接近
↓
鸡蛋
机械手
↓
抓取
↓
鸡蛋
鸡蛋
↓
离开
↓
桌面
形成:
抓取行为结构
因此,行为可以成为类组合的重要组织依据。
7.7.6 层级组合规则
类组合可以继续参与更高层次组合。
例如:
鸡蛋类
+
西红柿类
+
锅类
+
炉具类
↓
烹饪组合类
再:
烹饪组合类
+
厨师类
+
厨房类
↓
烹饪场景类
再:
烹饪场景类
+
订单类
+
服务类
↓
餐饮服务结构
因此形成:
基础类
↓
基础类组合
↓
组合类
↓
更高层组合类
↓
群类
↓
场景类
↓
复杂世界结构
7.7.7 可分解规则
一个组合结构不仅能够形成,还必须能够被拆解。
例如:
烹饪场景类
↓
烹饪组合类
↓
锅类
↓
炉具类
↓
鸡蛋类
↓
西红柿类
如果机器能够把复杂结构分解为组成部分,就能够进一步进行:
结构识别
↓
成员识别
↓
关系识别
↓
状态识别
↓
行为识别
因此:
可组合与可分解是同一个结构系统的两个方向。
7.7.8 可复用规则
当某一种组合结构反复出现,并且结构具有稳定性时,可以将其保存为可复用的组合知识。
例如机器多次观察:
人
+
锅
+
炉具
+
食材
+
加热
+
翻炒
最终形成:
烹饪组合结构
以后遇到新的对象:
鸡蛋01
西红柿01
锅02
炉具03
虽然对象实例不同,但只要结构匹配:
对象不同
↓
基础类相同
↓
关系结构相似
↓
状态条件满足
↓
组合结构匹配
↓
调用已有组合知识
这就是结构复用。
7.8 类组合与认知匹配
类组合理论与前面的认知匹配理论具有直接关系。
认知匹配并不是简单判断“两个东西像不像”,而是对:
类
+
对象
+
属性
+
状态
+
关系
+
行为
+
场景
进行结构匹配。
其基本过程可以表示为:
感知
↓
对象形成
↓
类匹配
↓
属性匹配
↓
状态匹配
↓
关系匹配
↓
行为匹配
↓
类组合匹配
↓
组合结构形成
例如机器面对:
机械手
+
鸡蛋
+
桌面
机器首先确定:
机械手 → 机械手类
鸡蛋 → 鸡蛋类
桌面 → 桌面类
然后确定:
机械手 → 接近 → 鸡蛋
鸡蛋 → 位于 → 桌面
进一步识别:
机械手
↓
可能执行
↓
抓取
↓
鸡蛋
于是形成:
机械手类
+
鸡蛋类
+
桌面类
+
空间关系
+
抓取行为
↓
抓取组合结构
由此可以看到:
认知匹配负责发现结构,类组合负责组织结构。
二者不是同一个过程。
可以表示为:
认知匹配
↓
发现匹配关系
↓
确定组合成员
↓
确定组合结构
↓
形成组合类
7.9 类组合的动态性
基础类具有相对稳定性,但类组合具有明显的动态性。
同样的基础类,可以因为不同关系、不同状态和不同场景形成不同组合。
例如:
人类
+
汽车类
可以形成:
驾驶组合
也可以形成:
维修组合
还可以形成:
运输组合
因此:
基础类不变
+
关系变化
+
行为变化
+
场景变化
↓
组合结构变化
这说明机器世界的动态性并不主要表现为基础类不断改变,而表现为:
类的组织变化
+
对象关系变化
+
状态变化
+
场景变化
+
行为变化
因此,本章的核心动态模型可以表示为:
基础类
↓
对象实例
↓
关系变化
↓
状态变化
↓
认知匹配
↓
类组合变化
↓
组合类变化
↓
群类变化
↓
场景结构变化
7.10 类组合理论的统一模型
综合本章内容,可以建立如下结构:
世界
↓
基础类
↓
类关系
↓
对象实例
↓
对象关系
↓
属性 / 状态
↓
认知匹配
↓
基础类组合
↓
多类组合
↓
组合类
↓
群类
↓
场景类
↓
场景实例
↓
行为
↓
动作
↓
反馈
↓
再认知
↓
新的结构组织
这个模型说明,机器世界不是由大量孤立类别构成的。
它具有明显的层级结构:
第一层:基础类
第二层:对象实例
第三层:对象关系
第四层:基础类组合
第五层:组合类
第六层:群类
第七层:场景类
第八层:场景实例
第九层:行为与动作
这些层级并不是完全固定的线性关系,而是可以相互作用。
例如:
场景变化
↓
对象关系变化
↓
认知重新匹配
↓
组合结构变化
↓
行为变化
同时:
行为执行
↓
对象状态变化
↓
关系变化
↓
场景变化
↓
再次认知
因此,类组合并不是一次性的结构建立过程,而是机器动态世界模型的重要组成部分。
7.11 类组合的机器知识意义
如果机器只有基础类知识:
鸡蛋类
锅类
炉具类
机械手类
机器只能知道:
分别是什么。
如果增加类关系:
机械手类 → 操作 → 鸡蛋类
炉具类 → 加热 → 锅类
锅类 → 处理 → 食材类
机器开始知道:
它们之间有什么联系。
如果进一步形成类组合:
机械手类
+
鸡蛋类
+
桌面类
+
抓取关系
+
抓取行为
↓
抓取组合类
机器就开始获得:
一个完整行为结构。
进一步形成场景类:
机械手
+
工作台
+
目标物
+
空间关系
+
操作关系
+
行为规则
↓
机器人操作场景类
机器获得的就不再只是单个对象知识,而是:
能够描述复杂行为发生条件和组织方式的结构化知识。
因此,类组合是从:
对象知识
走向:
结构知识
再走向:
场景知识
以及:
行为知识
的重要桥梁。
7.12 本章总结
类组合理论解决的是机器世界中的一个核心问题:
多个已经存在的类,如何根据结构关系、对象关系、状态条件、行为和场景形成更高层次的整体结构。
本章建立了以下基本概念:
基础类
→ 稳定的类别结构
基础类组合
→ 两个或多个基础类按照关系形成组合
多类组合
→ 多个类别通过关系集合形成复杂结构
组合类
→ 具有稳定内部结构、能够整体识别和复用的类组合
群类
→ 按共同结构、关系、功能或活动形成的集合结构
场景类
→ 对一类重复出现的复杂场景进行结构抽象
其核心关系可以概括为:
基础类
↓
类关系
↓
对象实例
↓
对象关系
↓
认知匹配
↓
类组合
↓
组合类
↓
群类
↓
场景类
↓
场景实例
↓
行为
↓
动作
↓
反馈
最终可以得到一个重要结论:
基础类负责提供稳定的世界分类,类关系负责规定类别之间的结构联系,对象实例负责承载现实个体,属性和状态负责描述个体差异与变化,对象关系负责形成现实连接,而认知匹配则根据这些结构发现可以共同组织的类别与对象。类组合由此形成组合类、群类和场景类,使机器能够从单个对象知识进一步形成复杂结构知识,并最终为复杂行为的形成提供结构基础。
因此:
类组合不是简单的类别相加,而是以关系、状态、行为和场景为依据,对已有类别进行结构化组织的过程。
这也意味着,机器智能不能只建立“对象是什么”的知识,还必须建立:
对象之间如何组合
↓
组合为什么成立
↓
组合如何变化
↓
组合能够形成什么行为
这为下一阶段研究动态类组织、认知匹配与复杂行为形成建立了结构基础。