第13章 个体类型
一、类型定义
**类型(Type)**是对具有相同或相近结构特征、属性特征、存在方式、能力特征和行为特征的一组个体进行抽象后形成的分类结构。
在个体人工智能中,身份用于确定“具体是哪一个个体”,而类型用于确定“这个个体属于哪一类个体”。
因此:
Identity≠TypeIdentity\neq Type
身份具有个体唯一性,而类型具有个体分类性。
例如:
DEVICE_001
DEVICE_002
DEVICE_003
是三个不同的个体身份,而:
IndustrialDevice
可以是它们共同所属的类型。
因此:
ID(I1)≠ID(I2)ID(I_1)\neq ID(I_2)
但是:
Type(I1)=Type(I2)Type(I_1)=Type(I_2)
类型可以定义为:
T={Name,Parent,Attributes,Capabilities,Behaviors,Rules}T=\{Name,Parent,Attributes,Capabilities,Behaviors,Rules\}
其中:
- NameName:类型名称;
- ParentParent:父类型;
- AttributesAttributes:类型属性;
- CapabilitiesCapabilities:类型能力;
- BehaviorsBehaviors:类型行为;
- RulesRules:类型规则。
一个具体个体则可以表示为:
I=(ID,T,⋯ )I=(ID,T,\cdots)
其中 TT 为该个体所属类型。
因此:
Individual→TypeIndividual\rightarrow Type
是个体结构的重要组成关系。
二、类型分类
类型分类是将现实世界中的大量个体按照一定的共同特征进行结构化组织。
ICAI中的类型不是简单按照名称进行分类,而是可以根据个体的存在性质、结构、功能、运行方式和应用环境进行分类。
例如:
个体
├── 个人个体
├── 企业个体
├── 品牌个体
├── 行业个体
├── 组织个体
├── 学校个体
├── 医疗机构个体
├── 新闻个体
├── 网站个体
├── 平台个体
├── 产品个体
├── 设备个体
├── 机器人个体
├── 工业个体
└── 服务个体
进一步可以形成层级分类:
个体
↓
工业个体
↓
工业设备个体
↓
生产设备
↓
具体设备
或者:
个体
↓
服务个体
↓
服务企业个体
↓
企业客服个体
↓
具体服务个体
因此,类型分类本质上是:
Individuals→Classification→TypesIndividuals \rightarrow Classification \rightarrow Types
分类可以继续细化:
T0→T1→T2→T3T_0\rightarrow T_1\rightarrow T_2\rightarrow T_3
形成类型层级。
类型分类的作用主要包括:
- 确定个体所属类别;
- 提供共同结构;
- 提供共同属性;
- 提供共同能力基础;
- 提供共同行为规则;
- 支持类型继承;
- 支持机器对象分类;
- 支持机器Class组织。
因此:
Type→StructureType\rightarrow Structure Type→CapabilityType\rightarrow Capability Type→BehaviorType\rightarrow Behavior
三、类型继承
**类型继承(Type Inheritance)**是指一个较具体的类型继承较一般类型的结构、属性、能力或者规则,并在此基础上形成更加具体的类型。
例如:
个体
↓
工业个体
↓
工业设备个体
↓
机器人个体
可以表示为:
T3⊂T2⊂T1⊂IndividualT_3\subset T_2\subset T_1\subset Individual
如果:
Robot⊂IndustrialDeviceRobot\subset IndustrialDevice
则机器人类型可以继承工业设备类型的共同结构。
例如:
IndustrialDevice
├── device_id
├── model
├── state
├── maintenance
└── operation
Robot
├── inherited device structure
├── sensor
├── actuator
├── movement
└── task execution
因此:
Robot=IndustrialDevice+RobotSpecificStructureRobot=IndustrialDevice+RobotSpecificStructure
类型继承并不意味着两个个体身份相同。
例如:
Type(Robot001)=RobotType(Robot_001)=Robot Type(Robot002)=RobotType(Robot_002)=Robot
但:
ID(Robot001)≠ID(Robot002)ID(Robot_001)\neq ID(Robot_002)
因此:
SameType≠SameIndividualSameType\neq SameIndividual
类型继承解决的是结构复用和分类层级问题,而不是个体身份问题。
四、类型属性
**类型属性(Type Attribute)**是某一类型所具有的共同属性结构。
例如设备类型可能具有:
型号
功率
重量
尺寸
制造商
运行状态
机器人类型可能进一步具有:
传感器
执行器
移动能力
负载能力
运动范围
类型属性可以表示为:
AT={A1,A2,⋯ ,An}A_T=\{A_1,A_2,\cdots,A_n\}
而具体个体具有自己的实例属性:
AI={a1,a2,⋯ ,am}A_I=\{a_1,a_2,\cdots,a_m\}
二者之间存在:
AT→AIA_T\rightarrow A_I
即类型定义属性结构,个体提供具体属性值。
例如:
Type=RobotType=Robot
定义:
Robot
├── model
├── weight
├── sensor
├── actuator
└── movement_range
具体个体:
ROBOT_001
model = R100
weight = 50kg
sensor = camera
actuator = motor
movement_range = 5m
因此:
TypeAttribute≠IndividualAttributeTypeAttribute\neq IndividualAttribute
类型属性描述“这一类个体应该具有什么属性结构”,个体属性描述“这个具体个体实际具有什么属性值”。
五、类型能力
类型不仅规定个体具有哪些属性,还可以规定其能力基础。
**类型能力(Type Capability)**是某一类型个体通常具备或者允许具备的能力集合。
可以表示为:
CT={C1,C2,⋯ ,Cn}C_T=\{C_1,C_2,\cdots,C_n\}
例如:
机器人类型
├── 感知能力
├── 移动能力
├── 抓取能力
├── 操作能力
└── 环境检测能力
但类型能力并不意味着所有具体个体都具有完全相同的实际能力。
因此需要区分:
TypeCapabilityTypeCapability
和:
IndividualCapabilityIndividualCapability
实际个体能力可以表示为:
CI=f(CT,K,E,G,S,Md)C_I=f(C_T,K,E,G,S,Md)
其中:
- CTC_T:类型能力基础;
- KK:个体知识;
- EE:个体经验;
- GG:个体目标;
- SS:个体状态;
- MdMd:个体方法。
因此:
CI⊆PotentialCapability(T)C_I\subseteq PotentialCapability(T)
具体个体可以因为知识、经验、状态、资源和方法不同而产生能力差异。
例如两个同型号设备:
Type(D1)=Type(D2)Type(D_1)=Type(D_2)
但:
Capability(D1)≠Capability(D2)Capability(D_1)\neq Capability(D_2)
原因可能包括:
运行时间不同
维修历史不同
当前状态不同
已有经验不同
配置不同
资源条件不同
所以:
类型决定能力的基础范围,个体结构决定实际能力。
六、类型行为
类型也可以定义该类型个体的基本行为结构。
**类型行为(Type Behavior)**是某一类型个体在一定条件下可能产生的共同行为模式。
可以表示为:
BT=f(T,S,C,Md,Condition)B_T=f(T,S,C,Md,Condition)
例如设备类型:
启动
停止
运行
报警
维护
故障
恢复
机器人类型:
移动
定位
抓取
运输
避障
停止
返回
类型行为实际上规定的是:
这一类型个体能够出现哪些基本行为,以及这些行为受到什么条件约束。
但类型行为不是具体个体某一次实际行为。
因此:
TypeBehavior≠IndividualBehaviorTypeBehavior\neq IndividualBehavior
可以表示为:
BI=f(BT,G,C,S,Md,Condition)B_I=f(B_T,G,C,S,Md,Condition)
也就是说,类型提供行为可能性,具体个体根据自己的目标、能力、状态和条件产生实际行为。
例如:
机器人类型
↓
具有移动行为
↓
机器人001
↓
当前目标:进入工作区
↓
当前状态:可移动
↓
执行移动
所以:
Type→BehaviorPossibilityType\rightarrow BehaviorPossibility
而:
Individual→ActualBehaviorIndividual\rightarrow ActualBehavior
七、类型与实例
**实例(Instance)**是按照某一类型结构建立的具体个体。
类型与实例的基本关系为:
Instance∈TypeInstance\in Type
或者:
Ii:TypeI_i:Type
例如:
类型:
Robot
实例:
Robot_001
Robot_002
Robot_003
可以表示:
Robot001∈RobotRobot_001\in Robot Robot002∈RobotRobot_002\in Robot Robot003∈RobotRobot_003\in Robot
但:
Robot001≠Robot002Robot_001\neq Robot_002
因为:
ID(Robot001)≠ID(Robot002)ID(Robot_001)\neq ID(Robot_002)
类型可以理解为“共同结构定义”,实例则是“具体存在对象”。
因此:
Type→InstanceType\rightarrow Instance
形成:
类型
↓
类型结构
↓
实例化
↓
具体个体
例如:
Enterprise
↓
Enterprise Type
↓
Enterprise_001
具体实例可以继承类型定义,同时拥有自己的:
属性
状态
关系
知识
记忆
经验
目标
能力
方法
行为
历史
因此:
Instance=TypeStructure+IndividualStructureInstance= TypeStructure+ IndividualStructure
这是ICAI中“类型”和“个体”之间最基本的关系。
八、类型与机器Class
在ICAI工程中,理论上的类型需要进入面向对象程序结构。
因此可以建立:
Type→ClassType\rightarrow Class
例如理论类型:
IndustrialDevice
可以对应PHP:
class IndustrialDevice extends Individual
{
protected $model;
protected $power;
protected $manufacturer;
}
机器人类型:
class Robot extends IndustrialDevice
{
protected $sensors;
protected $actuators;
protected $movementRange;
}
形成:
Individual
↓
IndustrialDevice
↓
Robot
对应:
Individual Class
↓
IndustrialDevice Class
↓
Robot Class
因此:
TypeHierarchy→ClassHierarchyTypeHierarchy\rightarrow ClassHierarchy
但必须明确:
Type≠ClassType\neq Class
类型属于ICAI理论中的分类概念,Class属于程序工程中的实现结构。
二者关系是:
Type→Model→ClassType\rightarrow Model\rightarrow Class
而不是:
Type=ClassType=Class
具体机器个体则可以通过Class进行实例化:
$robot = new Robot();
形成:
RobotClass→RobotInstanceRobotClass\rightarrow RobotInstance
再通过身份系统赋予具体机器身份:
Robot Class
↓
Robot Instance
↓
Identity
↓
ROBOT_001
最终形成:
Type→Class→Instance→IdentityType\rightarrow Class\rightarrow Instance\rightarrow Identity
这成为ICAI个体工程的重要结构。
九、类型动态变化
通常情况下,一个个体的类型具有相对稳定性,但在现实世界中,个体类型也可能发生变化。
因此必须区分:
TypeStaticTypeStatic
与:
TypeDynamicTypeDynamic
例如一个项目最初可以是:
ProjectProject
完成后可能转变为:
OperationalSystemOperationalSystem
一个设备经过改造后,其原有类型可能发生扩展:
Device→SmartDeviceDevice \rightarrow SmartDevice
类型变化可以表示为:
Tt→Tt+1T_t\rightarrow T_{t+1}
但类型变化并不一定意味着身份变化。
可以出现:
IDt=IDt+1ID_t=ID_{t+1}
同时:
Tt≠Tt+1T_t\neq T_{t+1}
即:
同一个个体
↓
类型发生变化
↓
身份仍然保持连续
例如:
ID=DEVICE_001ID=DEVICE\_001
原类型:
T0=IndustrialDeviceT_0=IndustrialDevice
升级以后:
T1=SmartIndustrialDeviceT_1=SmartIndustrialDevice
此时:
ID0=ID1ID_0=ID_1
但是:
T0≠T1T_0\neq T_1
这说明:
身份连续性与类型连续性是两个不同的问题。
类型变化可能由以下因素产生:
StructureChangeStructureChange CapabilityChangeCapabilityChange FunctionChangeFunctionChange EnvironmentChangeEnvironmentChange RoleChangeRoleChange
因此可以建立类型变化判断:
TypeChange=f(Structure,Capability,Role,Rule,State)TypeChange=f(Structure,Capability,Role,Rule,State)
类型变化以后,机器个体的Class结构不一定需要立即改变。
工程上可以采用:
个体身份
↓
当前类型
↓
类型版本
↓
类型属性
↓
类型能力
↓
类型规则
例如:
individual_id = 1001
type = robot
type_version = 2
从而支持类型演化。
十、类型与个体的统一关系
通过以上分析,可以建立ICAI中的类型—个体关系:
Individual=(ID,T,O,A,S,R,K,G,C,Md,B,H)Individual=(ID,T,O,A,S,R,K,G,C,Md,B,H)
其中:
T=TypeT=Type
类型提供:
T→{Structure,Attribute,Capability,Behavior,Rule}T\rightarrow \{Structure,Attribute,Capability,Behavior,Rule\}
个体进一步形成:
Type→Instance→IndividualType \rightarrow Instance \rightarrow Individual
具体个体在类型基础上形成自身结构:
Individual=TypeStructure+IndividualSpecificStructureIndividual= TypeStructure+ IndividualSpecificStructure
因此两个同类型个体:
T(I1)=T(I2)T(I_1)=T(I_2)
仍然可能满足:
A(I1)≠A(I2)A(I_1)\neq A(I_2) S(I1)≠S(I2)S(I_1)\neq S(I_2) K(I1)≠K(I2)K(I_1)\neq K(I_2) E(I1)≠E(I2)E(I_1)\neq E(I_2) C(I1)≠C(I2)C(I_1)\neq C(I_2) B(I1)≠B(I2)B(I_1)\neq B(I_2)
这正是ICAI能够研究“个体差异”的理论基础。
十一、本章小结
本章对个体类型进行了系统定义。
类型解决的是:
一个个体属于什么类别,以及这一类别具有什么共同结构。
身份解决的是:
这个个体具体是谁。
因此:
Identity≠TypeIdentity\neq Type
类型具有分类和结构组织作用:
Individuals→Classification→TypesIndividuals \rightarrow Classification \rightarrow Types
类型可以形成层级:
T1→T2→T3T_1\rightarrow T_2\rightarrow T_3
类型可以向实例传递基础结构:
Type→InstanceType\rightarrow Instance
类型可以定义属性:
Type→TypeAttributesType\rightarrow TypeAttributes
可以定义能力基础:
Type→TypeCapabilitiesType\rightarrow TypeCapabilities
可以定义行为基础:
Type→TypeBehaviorsType\rightarrow TypeBehaviors
也可以形成工程Class:
Type→Model→ClassType\rightarrow Model\rightarrow Class
再形成具体机器对象:
Class→Instance→MachineIndividualClass\rightarrow Instance\rightarrow MachineIndividual
最终形成完整关系:
个体类型
↓
类型结构
├── 类型属性
├── 类型能力
├── 类型行为
└── 类型规则
↓
实例化
↓
具体个体
↓
个体身份
↓
个体自身属性
├── 个体状态
├── 个体知识
├── 个体经验
├── 个体能力
├── 个体方法
└── 个体行为
类型还具有动态性:
Tt→Tt+1T_t\rightarrow T_{t+1}
而身份可以保持:
IDt=IDt+1ID_t=ID_{t+1}
因此,ICAI中的个体不是被固定在某一个不可变化的分类中,而是可以在保持身份连续性的同时发生结构、角色、能力和类型变化。
本章最终建立:
Identity→Type→Instance→Individual\boxed{ Identity\rightarrow Type\rightarrow Instance\rightarrow Individual }
以及工程映射:
Type→TypeModel→PHPClass→Instance→MachineIndividual\boxed{ Type \rightarrow TypeModel \rightarrow PHPClass \rightarrow Instance \rightarrow MachineIndividual }
本章的核心结论是:
个体类型是对具有共同结构、属性、能力和行为特征的个体进行抽象形成的分类结构;类型规定个体的基础结构和能力行为范围,实例将类型转化为具体个体,而个体在类型基础上形成自身独立的属性、状态、知识、经验、能力、方法和行为。身份确定个体是谁,类型确定个体属于哪一类,实例则实现类型向具体个体的转换。