专家系统: 就是弄个程序,像专家一样思考,像专家一样干活.
1 | 一个人要成为专家,就要有专家的资质,最基本的条件: |
-
专家的知识—-知识库
-
专家的思考方式—-推理方式
-
专家的判断力——与推理方式结合的输出解决方案。
简单说一下知识库:
知识库这个玩意就好像人的知识构成差不多。 而且有N多种,对于我现在是关于 产生式 的,所谓产生式,可以理解为 通过判断 递进的向下分支,直到你想要的位置。
入口:
使用者将事实或其它信息供应给专家系统,经由专家系统处理后,即可获得相当于专家建议的解答
在进行规则推理时,当事实数据库中的某些事实或用户输入信息与规则库中的某条规则的前提相匹配时,该规则被激活,并把用它推出的结论放人事实数据库中,作为后面推理的已知事实,因此事实数据库也是一个动态数据库。
上面提到了 “事实”,“规则”,咱们来谈一下。
事实:
啥是事实, 举例子来说。 有个设备维修工人用此专家系统,那么他提供的查询的条件就是事实。
“机器停电了怎么办?” 这句话就是一个正在发生的事实。
由此可知,第一个事实,是使用者输入的。 就好像一件事在生活中发生,引起了我们的思考。
这件事就是事实。
到这里还没完, 因为咱们还思考了。 关于咱们的思考,如果按照 产生式来说。就是一层一层的像ifelse一样的判断, 问题是,既然是一层一层的。
那么子层的判断是由什么引起的那?
没错。 就是由父层发生的事引起的。 也就是说在每次判断完成后都有一个结果,
1
然后咱们通过这个结果,再进行判断。
事实完成了。那么排排坐分果果,也该轮到“规则”了。
其实看到上面你肯定想,那么既然咱们人是通过事实去思考。 但是人用来针对这个事实的判断是哪些那?
没错。 这些针对事实的判断其实都是“规则”。
有个例子很容易让你明白,规则是长啥样。
事实库中存放了“任务A是紧急订货”、“任务B是出口任务”那样的事实。
规则库中存放着
“IF任务i是紧急订 货,and任务i是出口任务,THEN任务i按最优先安排计划”、
“IF任务i是紧急订货,THEN任务i按优先安排计划”那样的规则。
通过上面的例子就知道了。 规则是 有判断条件,而且输出结果的。
那么这个条件咱们叫条件,叫前件。
这个结果 叫结论 ,也叫后件。
咱们把这个结论放入到“事实”,可以触发下一层 规则去继续思考(推理)。 直到无法触发,那就可以作为最终结论来使用了。
OK。通过上面的学习,基本了解知识库的内容。下面有点小提示:
知识库包括事实库与规则库。
规则库分为条件库与结论库。
至于事实库,咱们来分析一下, 上面提到一个例子
事实库中存放了“任务A是紧急订货”、“任务B是出口任务”那样的事实
于是咱们的规则库是:
IF任务i是紧急订 货,and任务i是出口任务,THEN任务i按最优先安排计划”
条件库中写:紧急订 货,出口任务 都是条件。
结论库中写:按最优先安排计划
其实结论是咱们下一次的事实, 针对 “最优先安排计划” 也会有其他诊断结果。
那么 也就是说。
规则库的条件和结论都是一种事实。即事实库中存放这些结论与条件的谓词。
`**
从咱们故障上来说, 故障的条件就是咱们的故障现象, 结论就是咱们的故障原因。
**`
事实的表示:
一个语言变量的值或多个语言变量之间的关系的陈述句
三元组表示:
(对象,属性,值):(wang,age,40)
(关系,对象1,对象2):(friend,wang ,li)
规则的表示:
单个规则由前项和后项两部分组成。前项由逻辑联结词组成各种不同的前提条件,后项表示前提条件为真时,应采取的操作或所得的结论。如果考虑不精确推理,则可附加置信度量值。
<产生式>::=<前提>→<结论>
<前提>::=<简单条件>|<复合条件>
<结论>::=<事实>|<操作>
全局数据库(综合数据库)(当前动态数据库)——(已访问过的规则序列)。
全局数据库的内容可以为所有规则所访问,没有任何部分是专为某一规则建立的,这种特性便于模仿智能行为中的强数据驱动。
规则本身不调用其他规则。规则之间的联系必须通过全局数据库联系。
“综合数据库”的 ,是用来存放整个推理过程的。作为推理过程中的中间库,存放中间结果与最后结果。
一个动物的例子
动物分类问题的产生式系统描述及求解
`规则:
r1: IF 某动物有奶 THEN 它是哺乳动物
r2: IF 某动物有毛发 THEN 它是哺乳动物
r3: IF 某动物有羽毛 THEN 它是鸟
r4: IF 某动物会飞 AND 会下蛋 THEN 它是鸟
r5: IF 某动物是哺乳动物 AND 有犬齿 AND 有爪
1 | AND 眼盯前方 |
2 | THEN 它是食肉动物 |
r6:IF 某动物是哺乳动物 AND 吃肉 THEN 它是食肉动物
r7:IF 某动物是哺乳动物 AND 有蹄 THEN 它是有蹄类动物
r8:IF 某动物是有蹄动物 AND 是嚼反刍动物
1 | THEN 它是偶蹄动物 |
r9:IF某动物是食肉动物 AND 是黄褐色 AND 有黑色条纹
1 | THEN 它是虎 |
r10:IF某动物是食肉动物 AND是黄褐色 AND有暗斑点
1 | THEN 它是金钱豹 |
r11:IF 某动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND
1 | 身上有暗斑点 THEN 它是长颈鹿 |
r12:IF 某动物有蹄类动物 AND 身上有黑色条纹
1 | THEN 它是斑马 |
r13:IF 某动物是鸟 AND 有长脖子 AND 有长腿 AND 不会飞
1 | AND 有黑白二色 THEN 它是鸵鸟 |
r14: IF 某动物是鸟 AND 会游泳 AND 不会飞 AND 有黑白二色
1 | THEN 它是企鹅 |
r15:IF 某动物是鸟 AND 善飞 AND 不怕风浪
1 | THEN 它是海燕 |
`
1 | 初始事实:f1:某动物有毛发。f2:吃肉。f3:黄褐色。f4:有黑色条纹------目标条件为:该动物为什么? 这是推理算法的相关, 以后会讲到。 |
有一个实例的数据库结构设计,来体现他们之间的关系