实验八 小型专家系统
与实现 一、实验原理 专家系统是人工智能最 b...b
实验八 小型专家系统设计与实现 一、实验原理
专家系统是人工智能最重要的应用之一,它的目的是让电脑在某种程度上帮助或者替代某个领域的专家解决问题。例如医疗诊断系统、投资风险分析系统、家居设计系统等等。
专家系统是一个含有大量的某个领域专家水平的知识与经验智能计算机程序系统,能够利用人类专家的知识和解决问题的
来处理该领域问题。简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。 二、实验目的
1. 加深理解专家系统的结构原理与实际应用。
2. 初步掌握知识获取的基本方法。
3. 掌握产生式规则知识
示方法及其编程实现方法。
4. 初步掌握知识库的组建方法。
5. 加深理解推理机的算法原理并初步掌握其编程实现方法。 三、实验内容
运用所学知识,设计并编程实现一个小型专家系统(如分类、诊断、预测等类型)。
四、实验设计
小型动物分类专家系统
1. 动物分类规则集
(1)若某动物有奶milk,则它是哺乳动物mammal。
(2)若某动物有毛发hair,则它是哺乳动物。
(3)若某动物有羽毛feather,则它是鸟bird。
(4)若某动物会飞fly且生to produce蛋egg,则它是鸟。
(5)若某动物是哺乳动物且有爪claw且有犬齿cuspid目盯stare前方frontage,则它是食肉动物carnivore。
(6)若某动物是哺乳动物且吃肉meat,则它是食肉动物。
(7)若某动物是哺乳动物且有蹄hoof,则它是有蹄动物 ungulate_animal。
(8)若某动物是有蹄动物且反刍ruminate食物,则它是偶蹄动物artiodacty。
(9)若某动物是食肉动物carnivore且黄褐色filemot且有黑色black条纹list,则它是老虎tiger。
(10)若某动物是食肉动物且黄褐色且有黑色black斑点fleck,则它是金钱豹leopard。
(11)若某动物是有蹄动物且长腿leg且长脖子neck且黄褐色filemot且有暗dark斑点fleck,则它是长颈鹿giraffe。
(12)若某动物是有蹄动物且白色white且有黑色条纹,则它是斑马zebra。
(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟struthio。
(14)若某动物是鸟且不会飞且会游泳swim且黑白色,则它是企鹅penguin。
(15)若某动物是鸟且善飞且不怕风浪stormy waves,则它是海燕salangane。
2(下面是该规则集所形成的(部分)推理网络:
长颈鹿老虎 金钱豹
有黑色条纹 黄褐色 食肉动物 有蹄动物 有黑色斑点
哺乳动物 有蹄
有犬齿 有爪 有奶 目盯前方 有毛发 吃肉 长腿 有暗斑点 长脖子
3(实验完全代码:
order(mammal):-have(milk);have(hair).
aves(bird):-have(feather).
aves(bird):-can(fly),to(produce_egg).
genus(carnivore):-have(claw),have(cuspid),stare(frontage). genus(carnivore):-order(mammal),eat(meat).
genus(ungulate_animal):-order(mammal),have(hoof).
animal(artiodacty):-genus(ungulate_animal),ruminate(food). animal(tiger):-genus(carnivore),color(filemot),have(black_stripe). animal(leopard):-genus(carnivore),color(filemot),have(black_macula). animal(giraffe):-genus(ungulate_animal),leg(long),neck(long),color(filemot),have(dark_macula).
animal(zebra):-genus(ungulate_animal),color(white),have(black_stripe). animal(struthio):-aves(bird),can(not_fly),leg(long),neck(long),color(black_white). animal(penguin):-aves(bird),can(not_fly),can(swim),color(black_white). animal(salangane):-aves(bird),can(fly),unafraid(stormy_waves).
have(milk).
have(hair).
eat(meat).
stare(frontage).
五、实验结果
(1) 此时在Dialog框中询问:
genus(X)
X= carnivore
X= carnivore
2 Solutions
aves(X)
X= bird
1 Solution
(2) 在原有事实的基础上再加:have(hoof).
在Dialog框中询问:
genus(X)
X= carnivore
X= carnivore
X= ungulate_animal
X= ungulate_animal
4 Solutions
(3) 事实中再加入事实:color(filemot). have(black_stripe).
Dialog框中:
animal(X)
X= tiger
X= tiger
2 Solutions
注:完成此次实验需要的工具为Visual Prolog 6.1,使用了推理机。