第19章
PHP OOP 智能对象设计
19.1 智能对象化思想
WSaiOS-ICAI 的核心工程思想:
将人工个体智能的组成元素,转换为具有属性、关系和行为的软件对象。
传统软件:
对象模拟:
- 用户;
- 商品;
- 订单;
- 文件。
WSaiOS-ICAI:
对象模拟:
- 感知;
- 认知;
- 知识;
- 能力;
- 行为;
- 学习;
- 记忆;
- 经验。
因此:
人工个体不是一个巨大程序。
而是:
IndividualAI
|
├── Perception Object
├── Cognition Object
├── Knowledge Object
├── Capability Object
├── Behavior Object
├── Learning Object
├── Memory Object
└── Experience Object
19.2 为什么采用对象模型
人的智能具有三个特点:
19.2.1 独立性
人的视觉能力:
可以独立工作。
人的记忆:
可以独立保存。
软件对象:
对应:
class Memory
{
}
19.2.2 组合性
人的能力:
不是单一能力。
而是组合:
认知能力
+
知识
+
经验
=
解决能力
软件:
对象组合:
Capability
{
Knowledge $knowledge;
Experience $experience;
}
19.2.3 可进化性
人的能力:
可以变化。
对象:
可以升级:
$capability->upgrade();
19.3 EOM 理论与 OOP 映射
WSaiOS-ICAI:
元素对象方法理论:
Element
Object
Method
对应软件:
Element(元素)
智能组成单位。
例如:
知识元素
记忆元素
能力元素
对应:
类属性。
Object(对象)
元素的工程表达。
例如:
KnowledgeObject
MemoryObject
Method(方法)
对象行为。
例如:
search()
learn()
execute()
映射:
理论层
Element
↓
工程层
Property
Object
↓
Class
Method
↓
Function
19.4 IndividualAI 根对象设计
人工个体系统:
需要一个总对象。
设计:
IndividualAI
职责:
管理所有智能对象。
结构:
IndividualAI
属性:
name
state
modules
方法:
think()
learn()
solve()
remember()
19.5 IndividualAI 类实现
文件:
modules/core/IndividualAI.php
代码:
<?php
class IndividualAI
{
protected $modules=[];
protected $state;
public function addModule(
$name,
$object
)
{
$this->modules[$name]
=
$object;
}
public function think($input)
{
$perception =
$this->modules[‘perception’]
->process($input);
$cognition =
$this->modules[‘cognition’]
->process(
$perception
);
return $cognition;
}
}
19.6 抽象智能对象设计
所有智能对象:
具有共同特征。
例如:
都有:
- 状态;
- 初始化;
- 处理能力。
建立抽象类:
abstract class AIComponent
{
protected $state;
abstract public function process($data);
public function getState()
{
return $this->state;
}
}
所有模块:
继承:
AIComponent
↓
Perception
Cognition
Memory
Learning
19.7 感知对象设计
感知:
负责:
获取。
对象:
PerceptionObject
属性:
input
source
type
time
方法:
capture()
parse()
normalize()
PHP:
class PerceptionEngine
extends AIComponent
{
public function process($data)
{
return [
“input”=>$data
];
}
}
19.8 认知对象设计
认知:
负责:
理解。
不是生成答案。
核心:
输入
↓
分析
↓
建立关系
↓
形成理解
对象:
CognitionObject
PHP:
class CognitionEngine
extends AIComponent
{
public function process($data)
{
return [
“meaning”=>$data
];
}
}
19.9 知识对象设计
知识:
不是字符串。
而是对象。
结构:
KnowledgeObject
属性:
content
type
source
relation
方法:
search()
update()
apply()
PHP:
class KnowledgeObject
{
protected $content;
protected $type;
public function apply()
{
}
}
19.10 能力对象设计
能力:
是应用知识解决问题的方法集合。
结构:
CapabilityObject
属性:
knowledge
experience
level
方法:
solve()
evaluate()
upgrade()
PHP:
class CapabilityObject
{
protected $level=1;
public function solve($problem)
{
}
public function upgrade()
{
$this->level++;
}
}
19.11 行为对象设计
行为:
负责执行。
结构:
BehaviorObject
属性:
task
action
result
方法:
execute()
feedback()
PHP:
class BehaviorEngine
{
public function execute($action)
{
return $action;
}
}
19.12 学习对象设计
学习:
是行为对象。
不是知识对象。
结构:
LearningObject
属性:
goal
source
process
方法:
discover()
acquire()
update()
PHP:
class LearningEngine
{
public function learn($need)
{
return $need;
}
}
19.13 组合关系设计
人工个体:
通过组合形成。
不是继承所有能力。
结构:
IndividualAI
+
Perception
+
Cognition
+
Knowledge
+
Capability
+
Behavior
+
Learning
+
Memory
PHP:
class IndividualAI
{
private $learning;
private $memory;
private $knowledge;
}
这对应人的智能结构:
多个能力共同组成个体。
19.14 智能对象生命周期
每个智能对象:
都有生命周期。
流程:
创建
↓
初始化
↓
运行
↓
学习
↓
更新
↓
保存
↓
再次运行
例如:
KnowledgeObject:
创建
↓
学习获取
↓
保存
↓
调用
↓
更新
19.15 对象化智能系统优势
第一:
模块独立。
增加新能力:
只增加对象。
第二:
容易扩展。
例如:
增加:
视觉能力。
新增:
VisionObject。
第三:
支持进化。
对象可以:
升级。
第四:
支持个体差异。
不同人工个体:
拥有不同对象组合。
19.16 本章总结
WSaiOS-ICAI 使用 PHP OOP 实现:
不是为了编程方便。
而是因为:
面向对象思想与人工个体智能结构具有天然对应关系。
核心映射:
人工个体元素
↓
智能对象
↓
PHP Class
↓
Object实例
↓
智能行为
最终形成:
IndividualAI
↓
智能对象集合
↓
自主运行系统
下一章:
第20章
MySQL 数据库与人工个体状态存储设计
重点:
- 为什么人工个体需要数据库;
- 数据不是知识;
- 状态存储模型;
- 知识表设计;
- 记忆表设计;
- 学习表设计;
- 能力表设计;
- PHP Model 数据访问层实现。