第二章
人工个体的软件工程基础
——面向对象编程、MVC、Smarty 与 PHP OOP 结构实现
2.1 人工个体与软件工程
个体人工智能不是单一算法模型,而是一个具有长期运行能力的软件实体。
如果把人工个体作为软件对象,它必须具备:
- 自身属性;
- 自身状态;
- 自身行为;
- 自身关系;
- 自身生命周期。
这与面向对象编程(Object-Oriented Programming)的核心思想高度一致。
面向对象的基本思想:
将现实世界中的对象,通过类、属性、方法和关系映射为软件对象。
因此:
人工个体可以被抽象为:
2.2 人工个体对象模型
传统软件对象:
人工个体对象:
例如:
一个人工医生个体:
这意味着:
人工个体不是数据库中的一条记录。
而是:
一个具有内部结构和运行能力的软件对象。
2.3 PHP OOP 与人工个体对象
PHP OOP 提供了实现人工个体的基础结构。
例如:
其中:
属性对应:
个体元素。
方法对应:
个体能力。
2.4 个体元素类设计
人工个体不是一个巨大类。
应该采用对象组合。
结构:
例如:
身份元素:
性格元素:
经历元素:
这样:
人工个体不是固定结构。
而是:
多个认知元素对象组合形成。
2.5 个体元素关系对象
第二章的重要工程基础:
个体差异来自元素关系。
因此需要:
ElementRelationship Object。
结构:
PHP:
例如:
在系统中表现为:
2.6 MVC 架构与人工个体系统
WSaiOS-ICAI 采用 MVC 架构。
MVC:
但是在人工个体系统中:
MVC 对应:
Model:个体认知模型
负责:
- 身份;
- 元素;
- 关系;
- 记忆;
- 经验。
例如:
Controller:个体行为控制
负责:
接收事件:
↓
调用认知:
↓
形成判断:
↓
执行行为。
例如:
View:个体认知表现
负责:
展示:
- 当前状态;
- 分析结果;
- 决策结果。
2.7 Smarty 模板与个体表达层
Smarty 是 PHP 经典模板引擎。
在 ICAI 中:
Smarty 对应:
人工个体外部表达层。
结构:
例如:
模板:
输出:
模板层不负责认知。
它只负责:
将人工个体内部状态表达出来。
2.8 Engine 设计模式
人工个体需要多个引擎。
结构:
PHP:
决策:
学习:
2.9 数据库与个体记忆
人工个体需要长期保存:
- 经历;
- 状态;
- 关系;
- 经验。
数据库对应:
人工个体长期记忆。
例如:
数据库不是人工个体。
数据库只是:
人工个体记忆存储。
2.10 人工个体运行流程
完整运行:
形成:
人工个体生命周期。
2.11 面向对象工程原则
ICAI 软件工程遵循:
封装
每个人工个体拥有自己的内部元素。
继承
不同类型人工个体可以继承基础能力。
例如:
多态
不同人工个体:
面对相同事件:
产生不同处理。
组合
个体由多个元素对象组成。
2.12 本章总结
个体人工智能不仅是理论模型,更需要软件工程实现。
通过:
- PHP OOP;
- MVC;
- Smarty;
- Object Model;
- Engine Architecture;
可以将:
身份、
性格、
经历、
关系、
认知、
经验、
决策
转化为可运行的软件对象。
最终形成:
本章建立了《个体人工智能——认知元素人工认知工程》的软件工程基础:
人工个体不是被描述出来的,而是通过面向对象工程被构建出来的。