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

第3章 对象实例理论

第3章 对象实例理论

3.1 提出背景

在世界结构中,类解决的是“某一类对象具有什么共同结构”的问题,而真正存在于现实世界中的,并不是抽象的类本身,而是一个个具体对象。

例如,世界中存在“苹果类”,但现实中存在的是苹果A、苹果B、苹果C;存在“鸡蛋类”,但实际面对的是鸡蛋01、鸡蛋02、鸡蛋03。它们属于同一个基础类,却分别具有自己的位置、重量、颜色、状态以及与其他对象之间的关系。

因此,机器如果只有类知识,还不能完整描述现实世界。机器还必须建立从“类”到“具体对象”的映射,使抽象的类别结构能够落到现实中的具体个体上。

由此形成:

类 → 对象实例 → 属性 → 状态 → 关系 → 场景

对象实例理论所研究的核心问题,就是机器如何表示一个具体对象、如何保持对象的连续身份、如何描述对象属性与状态,以及如何处理对象随时间产生的动态变化。


3.2 对象的定义

**对象(Object)**是世界中能够被机器独立识别、描述、关联、处理和持续跟踪的具体实体。

**对象实例(Object Instance)**是某一个基础类在现实世界中的具体存在,是类结构向具体个体的实例化结果。

因此:

类是抽象结构,对象是具体实例。

例如:

苹果类
    ↓
苹果A
苹果B
苹果C

其中“苹果类”描述苹果这一类别的共同结构,而“苹果A”“苹果B”“苹果C”分别代表三个具体对象。

进一步表示:

苹果类
├── 苹果A
├── 苹果B
└── 苹果C

苹果A、苹果B、苹果C都属于苹果类,但它们并不是同一个对象。

对象因此具有两个基本特征:

第一,对象属于某一个类;

第二,对象具有自己的实例状态。

可以表示为:

Object ∈ Class

其中:

  • Object 表示具体对象;
  • Class 表示对象所属的类;
  • ∈ 表示“属于”。

例如:

苹果A ∈ 苹果类
鸡蛋01 ∈ 鸡蛋类
机械臂01 ∈ 机械臂类

对象实例由此成为连接“世界抽象结构”和“现实具体存在”的重要中间层。


3.3 类与对象实例

类与对象实例之间不是并列关系,而是定义与实例之间的关系。

类规定对象应该具有怎样的结构,对象则保存这一结构在具体个体上的实际内容。

例如:

鸡蛋类
│
├── 基本属性
│   ├── 颜色
│   ├── 重量
│   ├── 尺寸
│   └── 形状
│
├── 基本状态
│   ├── 完整
│   ├── 破损
│   ├── 生
│   └── 熟
│
└── 基本方法
    ├── 移动
    ├── 加热
    └── 处理

实际对象:

鸡蛋01
├── 颜色:白色
├── 重量:52g
├── 尺寸:中等
├── 形状:椭圆
└── 状态:完整、生

因此:

类
↓
规定结构
↓
对象实例
↓
保存具体值

类不需要为每一个对象重新建立。

例如,不能因为:

鸡蛋01 = 52g
鸡蛋02 = 58g
鸡蛋03 = 61g

就建立:

52g鸡蛋类
58g鸡蛋类
61g鸡蛋类

这种方式会破坏基础类的稳定性。

正确结构应该是:

鸡蛋类
├── 鸡蛋01 → 重量52g
├── 鸡蛋02 → 重量58g
└── 鸡蛋03 → 重量61g

因此:

对象差异属于实例层,而不是基础类层。


3.4 对象的唯一性

机器认知现实世界时,一个非常重要的问题是:

机器如何知道当前看到的对象,是之前看到的那个对象,还是一个新的对象?

这就是对象唯一性问题。

对象唯一性是指机器能够为具体对象建立独立身份标识,使不同对象即使具有相同或相似属性,也能够被分别管理和持续跟踪。

例如:

鸡蛋01
鸡蛋02

假设两个鸡蛋都是:

白色
50g
椭圆形
完整

从属性上看,它们可能完全相同。

但是:

鸡蛋01 ≠ 鸡蛋02

它们仍然是两个不同对象。

因此,对象身份不能简单地由属性值决定。

可以表示为:

ObjectIdentity ≠ AttributeValue

其中:

  • ObjectIdentity 表示对象身份;
  • AttributeValue 表示对象属性值;
  • ≠ 表示两者不是同一个概念。

对象唯一性使机器能够建立对象生命周期:

对象发现
↓
对象建立
↓
对象识别
↓
对象跟踪
↓
对象状态变化
↓
对象再次识别

例如机器第一次发现鸡蛋01:

鸡蛋01
位置:桌面左侧
状态:完整

经过一段时间以后:

鸡蛋01
位置:机械臂下方
状态:被抓取

如果机器能够确认两个时间点上的对象都是鸡蛋01,那么机器才能理解:

同一个对象发生了变化。

这也是连续认知的重要基础。


3.5 对象属性

**属性(Attribute)**是用于描述对象特征、性质和参数的数据结构。

属性回答的是:

“这个对象具有什么特征?”

例如鸡蛋对象:

鸡蛋01
├── 颜色:白色
├── 重量:52g
├── 长度:5.5cm
├── 宽度:4cm
└── 温度:24℃

属性可以分为多种类型。

3.5.1 固有属性

固有属性是对象相对稳定的基本特征。

例如:

形状
材质
型号
类别
尺寸

3.5.2 可变属性

可变属性可能随着环境和行为发生变化。

例如:

温度
位置
速度
数量
压力

3.5.3 关系属性

某些属性需要结合其他对象才能确定。

例如:

鸡蛋01
→ 位于
→ 桌面01

这里“位于桌面01”并不是孤立的属性,而是对象之间形成的关系结构。

因此,属性、关系和状态虽然相关,但不能简单地混为一体。

可以建立基本区分:

属性 → 描述对象具有什么特征
状态 → 描述对象当前处于什么情况
关系 → 描述对象与其他对象如何连接

3.6 对象状态

**状态(State)**是对象在某一个时间点上的动态条件。

属性主要回答:

“对象具有什么特征?”

状态主要回答:

“对象现在处于什么情况?”

例如鸡蛋:

属性:
颜色:白色
重量:52g
形状:椭圆

状态:
完整
生
室温
静止

经过行为以后:

鸡蛋01
↓
打破
↓
状态改变

可能变成:

破损
已打开

继续经过加热:

鸡蛋01
↓
加热
↓
状态变化
↓
熟

因此,对象并不是一个永远不变的数据记录,而是一个能够随着时间持续变化的实体。

可以表示为:

Object(t) → Action → Object(t+1)

其中:

  • Object(t) 表示时间 t 的对象状态;
  • Action 表示作用于对象的动作;
  • Object(t+1) 表示动作发生后的对象状态。

进一步展开:

对象
↓
当前状态
↓
环境作用 / 对象关系 / 动作
↓
状态变化
↓
新状态

状态因此成为机器理解动态世界的重要结构。


3.7 对象的动态变化

现实世界中的对象不是静态数据。

对象会移动、变化、组合、分离、生成、消失,也会受到其他对象、环境和动作的影响。

因此,机器不能只保存:

Object = 固定数据

而应该建立:

Object
+
Time
+
State
+
Relation
+
Action

共同构成对象的动态过程。

可以建立对象状态转换模型:

State(t+1) = F(State(t), Action, Relation, Environment)

其中:

  • State(t) 表示对象在时间 t 的当前状态;
  • State(t+1) 表示对象经过变化后的新状态;
  • Action 表示发生在对象上的动作;
  • Relation 表示对象与其他对象之间的关系;
  • Environment 表示对象所处的环境条件;
  • F 表示状态变化规则。

例如机械臂抓取鸡蛋:

鸡蛋01
↓
状态:桌面、静止、未抓取
↓
机械臂接近
↓
关系变化
↓
机械臂与鸡蛋形成接触关系
↓
抓取动作
↓
鸡蛋状态变化
↓
位置改变
↓
状态:被机械臂持有

这里并没有产生新的“鸡蛋基础类”。

始终存在的仍然是:

鸡蛋类

变化的是:

鸡蛋01

以及:

鸡蛋01的属性
鸡蛋01的状态
鸡蛋01与其他对象的关系
鸡蛋01所在的场景

这一区分非常重要。


3.8 对象连续性

对象唯一性解决“它是谁”的问题,对象连续性解决“它是否一直是它”的问题。

机器必须能够将不同时间获得的信息关联到同一个对象。

例如:

T1:
鸡蛋01
位置:桌面
状态:静止

T2:
鸡蛋01
位置:机械臂前方
状态:接近

T3:
鸡蛋01
位置:机械臂夹持位置
状态:被抓取

三个时间点的数据不同,但对象仍然是:

鸡蛋01

因此:

对象身份保持
+
属性变化
+
状态变化
+
关系变化
=
对象动态连续性

如果没有对象连续性,机器每一次感知都可能把变化后的对象当成一个新的对象,那么机器就无法形成真正连续的行为过程。


3.9 对象与场景

单个对象不能完全构成机器对现实世界的理解。

对象必须进入场景,与其他对象建立关系。

例如:

机械臂01
鸡蛋01
锅01
炉具01
桌面01

这些对象分别属于不同基础类:

机械臂类
鸡蛋类
锅类
炉具类
桌面类

但是,当它们同时处于一个具体环境中时,就形成:

烹饪场景

其结构可以表示为:

机械臂01
    ↓ 操作
鸡蛋01
    ↓ 放入
锅01
    ↓ 位于
炉具01

因此:

对象是场景的基本构成单元。

而场景则是多个对象、对象状态以及对象关系在特定时间和空间条件下形成的整体结构。

可以表示为:

Scene = {Object, Attribute, State, Relation, Time, Space}

其中:

  • Scene 表示场景;
  • Object 表示场景中的对象;
  • Attribute 表示对象属性;
  • State 表示对象当前状态;
  • Relation 表示对象之间的关系;
  • Time 表示时间条件;
  • Space 表示空间条件。

3.10 对象变化与认知变化

对象发生变化以后,机器的认知结果也必须发生变化。

例如:

鸡蛋01
↓
完整

机器认知:

可以抓取
可以移动
可以加工

经过打破:

鸡蛋01
↓
破损 / 已打开

机器认知可能变为:

不能按照完整鸡蛋进行抓取
可以进入搅拌步骤
可以进入烹饪步骤

因此:

对象状态变化
↓
场景结构变化
↓
认知匹配变化
↓
方法匹配变化
↓
行为变化
↓
动作变化

这说明机器智能不是简单地对对象进行一次分类,而是必须持续跟踪对象及其变化。


3.11 对象实例的机器表示

在工程系统中,对象可以被表示为一个具有身份、类型、属性、状态和关系的数据结构。

例如:

ObjectInstance
{
    id
    class_id
    attributes
    states
    relations
    position
    history
}

其中:

  • id:对象唯一标识;
  • class_id:对象所属基础类;
  • attributes:对象属性集合;
  • states:对象状态集合;
  • relations:对象关系集合;
  • position:对象当前位置或空间信息;
  • history:对象历史变化记录。

在面向对象工程中,可以建立:

ClassDefinition
        ↓
ObjectClass
        ↓
ObjectInstance

例如:

EggClass
    ↓
EggObject
    ↓
Egg01

其中基础类结构可以保持稳定,而具体对象的数据由运行时动态维护。

这意味着工程系统不需要不断修改程序源代码来创造新的基础类,而可以通过数据结构建立新的对象实例。


3.12 对象实例与认知系统

对象实例进入认知系统以后,其意义不再只是“一个数据记录”。

机器需要将对象实例与类知识、属性、状态、关系以及当前场景进行匹配。

形成:

感知
↓
对象发现
↓
对象实例建立
↓
基础类匹配
↓
属性匹配
↓
状态匹配
↓
关系匹配
↓
场景形成
↓
认知

例如机器发现一个白色椭圆形物体。

最初:

感知元素
↓
候选对象

经过结构匹配:

形状匹配
+
尺寸匹配
+
属性匹配
+
环境关系匹配
↓
鸡蛋类

然后建立具体对象:

鸡蛋类
↓
鸡蛋01

再进一步获得:

鸡蛋01
├── 属性
├── 状态
├── 位置
└── 与其他对象的关系

此时机器才从“感知到一个东西”进入到“认识一个具体对象”。


3.13 对象动态变化的完整结构

综合以上理论,对象的完整生命周期可以表示为:

世界
↓
感知
↓
对象发现
↓
对象实例建立
↓
类匹配
↓
属性建立
↓
状态建立
↓
关系建立
↓
场景形成
↓
动作作用
↓
对象变化
↓
状态更新
↓
关系更新
↓
场景更新
↓
再认知

因此,对象不是认知过程的终点,而是认知过程中的持续存在单元。

机器通过对象的连续变化建立:

过去对象
↓
当前对象
↓
未来对象

从而形成对象的时间连续性。


3.14 对象实例理论的核心原则

对象实例理论可以归纳为六条基本原则。

第一,对象实例原则。

对象是基础类在现实世界中的具体实例。

类 → 对象实例

第二,对象唯一性原则。

不同对象即使属性完全相同,也仍然保持独立身份。

ObjectA ≠ ObjectB

第三,属性实例化原则。

类提供属性结构,对象保存属性的具体取值。

类属性定义
↓
对象属性值

第四,状态动态原则。

状态属于对象当前条件,并且可以随着时间、环境、关系和动作发生变化。

状态(t)
↓
作用
↓
状态(t+1)

第五,对象连续原则。

对象在变化过程中应保持身份连续,使机器能够认识“同一个对象发生了变化”。

第六,场景构成原则。

对象通过关系进入场景,多个对象的属性、状态和关系共同形成动态场景。


3.15 本章理论模型

对象实例理论可以最终归纳为:

基础类
↓
对象实例
↓
对象身份
↓
对象属性
↓
对象状态
↓
对象关系
↓
对象所在场景
↓
动作作用
↓
对象状态变化
↓
关系变化
↓
场景变化
↓
再认知

进一步形成一个动态闭环:

对象
↓
状态
↓
场景
↓
认知
↓
方法
↓
动作
↓
对象变化
↓
状态更新
↓
场景更新
↓
再认知

这个闭环说明,对象实例并不是静态的数据结构,而是机器世界模型中的持续动态实体


3.16 工程映射

从理论到工程,可以建立如下映射关系:

理论概念 工程对象
基础类 ClassDefinition
对象实例 ObjectInstance
对象身份 ObjectIdentity
对象属性 ObjectAttribute
对象状态 ObjectState
对象关系 ObjectRelation
对象历史 ObjectHistory
场景 Scene
状态变化 StateTransition
对象变化 ObjectUpdate
再认知 ReCognition

在系统运行过程中:

ClassDefinition
↓
ObjectInstance
↓
ObjectAttribute
↓
ObjectState
↓
ObjectRelation
↓
Scene
↓
Action
↓
StateTransition
↓
ObjectUpdate
↓
ReCognition

这样,理论中的“对象实例”就能够转化为机器运行时可以管理、查询、更新和追踪的工程对象。


3.17 本章总结

对象实例是世界结构从抽象类别进入具体现实的重要层次。

类提供稳定的分类结构,对象提供具体的现实存在。对象具有独立身份,并通过属性描述自身特征,通过状态描述当前条件,通过关系与其他对象建立连接,并在时间、环境和动作作用下持续发生变化。

因此:

类 → 定义结构
对象 → 表示个体
属性 → 描述特征
状态 → 描述当前条件
关系 → 建立对象连接
场景 → 组织对象整体
动作 → 造成对象变化
反馈 → 形成状态更新
再认知 → 重新理解变化后的世界

对象实例理论由此建立了机器世界从“类”进入“现实个体”的关键桥梁。

更重要的是,对象不是一次性识别结果,而是具有身份、属性、状态、关系和历史的持续存在单元。机器只有能够持续认识“同一个对象在不同时间发生了什么变化”,才能从静态分类走向动态认知,从对象识别走向场景理解,再进一步形成连续行为。

由此可以得到本章的核心结论:

类提供稳定性,对象提供连续性,属性提供特征,状态提供变化,关系提供连接,场景提供整体结构。对象实例是机器连接抽象世界与动态现实世界的基本认知单元。

在此基础上,下一阶段需要解决的问题便是:不同的类之间如何建立结构关系,不同的对象之间又如何形成对应关系,以及类关系和对象关系如何共同构成机器所理解的世界结构。

Leave a Reply

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