人工智能小型专家系统的设计与实现.docx

上传人:b****2 文档编号:1242141 上传时间:2022-10-19 格式:DOCX 页数:13 大小:326.41KB
下载 相关 举报
人工智能小型专家系统的设计与实现.docx_第1页
第1页 / 共13页
人工智能小型专家系统的设计与实现.docx_第2页
第2页 / 共13页
人工智能小型专家系统的设计与实现.docx_第3页
第3页 / 共13页
人工智能小型专家系统的设计与实现.docx_第4页
第4页 / 共13页
人工智能小型专家系统的设计与实现.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

人工智能小型专家系统的设计与实现.docx

《人工智能小型专家系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《人工智能小型专家系统的设计与实现.docx(13页珍藏版)》请在冰豆网上搜索。

人工智能小型专家系统的设计与实现.docx

人工智能小型专家系统的设计与实现

 

人工智能小型专家系统的设计与实现

 

人工智能技术基础实验报告

 

指导老师:

朱力

任课教师:

张勇

 

实验三小型专家系统设计与实现

一、实验目的

(1)增加学生对人工智能课程的兴趣;

(2)使学生进一步理解并掌握人工智能prolog语言;

(3)使学生加强对专家系统课程内容的理解和掌握,并培养学生综合运用所学知识开发智能系统的初步能力。

二、实验要求

(1)用产生式规则作为知识表示,用产生系统实现该专家系统。

(2)可使用本实验指导书中给出的示例程序,此时只需理解该程序,并增加自己感兴趣的修改即可;也能够参考该程序,然后用PROLOG语言或其它语言另行编写。

(3)程序运行时,应能在屏幕上显示程序运行结果。

三、实验环境

在TurboPROLOG或VisualProlog集成环境下调试运行简单的PROLOG程序。

四、实验内容

建造一个小型专家系统(如分类、诊断、预测等类型),具体应用领域由学生自选,具体系统名称由学生自定。

五、实验步骤

1、专家系统:

1.1建造一个完整的专家系统设计需完成的内容:

1.用户界面:

可采用菜单方式或问答方式。

2.知识库(规则库):

存放产生式规则,库中的规则能够增删。

3.数据库:

用来存放用户回答的问题、已知事实、推理得到的中

间事实。

4.推理机:

如何运用知识库中的规则进行问题的推理控制,建议

用正向推理。

5.知识库中的规则能够随意增减。

1.2推理策略

推理策略包括:

 正向(数据驱动),反向(目标驱动),双向 

2、动物分类实验规则集

(1)若某动物有奶,则它是哺乳动物。

(2)若某动物有毛发,则它是哺乳动物。

(3)若某动物有羽毛,则它是鸟。

(4)若某动物会飞且生蛋,则它是鸟。

(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

(6)若某动物是哺乳动物且吃肉,则它是食肉动物。

(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。

(8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。

(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。

(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是猎豹。

(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。

(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。

(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

(15)若某动物是鸟且善飞且不怕风浪,则它是海燕。

 3、实验具体步骤

本实验用正向推理策略来完成,实现推理机的程序与知识库的具体内容无关,对知识库的修改不需要改动推理机。

1、充分理解知识库现有知识,提出待解决问题 

2、建立规则库 

3、从规则库中获取可用规则集 

4、确定搜索控制策略(例如:

估价函数策略)

5、经过搜索控制策略,从规则集中选出最优规则 

6、执行最优规则,更新知识库 

7、重复多次以上步骤

8、获得解决方案或无解 

4、编写程序及调试运行步骤

4.1程序代码

“小型动物分类专家系统”

/*AnAnimalClassifyingExpertSystem*/

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

run

animal_is(symbol)

it_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

clear_facts

remember(symbol,symbol,symbol)

ask(symbol,symbol)

goal

run.

clauses

run:

-

animal_is(X),!

write("\nYouranimalmaybea(n)",X),

nl,nl,clear_facts.

run:

-

write("\nUnabletodeterminewhat"),

write("youranimalis.\n\n"),clear_facts.

positive(X,Y):

-xpositive(X,Y),!

.

positive(X,Y):

-not(xnegative(X,Y)),ask(X,Y).

negative(X,Y):

-xnegative(X,Y),!

.

negative(X,Y):

-not(xpositive(X,Y)),ask(X,Y).

ask(X,Y):

-

write(X,"it",Y,"?

\n"),

readln(Reply),

remember(X,Y,Reply).

remember(X,Y,y):

-asserta(xpositive(X,Y)).

remember(X,Y,n):

-asserta(xnegative(X,Y)),fail.

clear_facts:

-retract(xpositive(_,_)),fail.

clear_facts:

-retract(xnegative(_,_)),fail.

clear_facts:

-write("\n\nPleasepressthespacebartoExist"),

readchar(_).

/*KnowledgeBase*/

animal_is(cheetah):

-%猎豹

it_is(carnivore),

positive(has,tawny_color),

positive(has,black_spots).

animal_is(tiger):

-%老虎

it_is(carnivore),

positive(has,tawny_color),

positive(has,black_stripes).

animal_is(giraffe):

-%长颈鹿

it_is(ungulate),

positive(has,long_neck),

positive(has,long_legs),

positive(has,dark_spots).

animal_is(zebra):

-%斑马

it_is(ungulate),

positive(has,black_stripes).

animal_is(ostrich):

-%鸵鸟

it_is(bird),

negative(does,fly),

positive(has,long_neck),

positive(has,long_legs),

positive(has,black_and_white_color).

animal_is(penguin):

-%企鹅

it_is(bird),

negative(does,fly),

positive(does,swim),

positive(has,black_and_white_color).

animal_is(albatross):

-%信天翁

it_is(bird),

positive(does,fly_well).

it_is(mammal):

-%哺乳动物

positive(has,hair).

it_is(mammal):

-

positive(does,give_milk).

it_is(bird):

-%鸟类

positive(has,feathers).

it_is(bird):

-

positive(does,fly),

positive(does,lay_eggs).

it_is(carnivore):

-%肉食动物

positive(does,eat_meat).

it_is(carnivore):

-

it_is(mammal),

positive(has,pointed_teeth),

positive(has,claws),

positive(has,forward_eyes).

it_is(ungulate):

-%有蹄类动物

it_is(mammal),

positive(has,hooves).

it_is(ungulate):

-

it_is(mammal),

positive(does,chew_cud).

4.2调试步骤

1.在TXT文本中编写规则代码,添加到状态图通用搜索程序中,修改程序。

2.打开Turboprolog2.0文件,启动prolog.exe应用程序,并按空格键(SPACE)进入集成开发环境。

3.选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择SaveConfiguration项,保存修改。

4.在相应的路径所在文件件夹中会生成work.Pro文件将其用文本打开,将要运行的程序写入,保存。

5.选择Files项,选择Load项,选择要打开的示例程序

6.编辑之后,能够选择Run项,执行程序,能够在Dialog窗口进行询问,并回答y/n,依次回答问题,即可找到解

7.退出,选择Quit项,能够退出TurboProlog程序。

4.3书籍识别系统

根据所给示例程序,我修改出一个简单的书籍识别系统

4.3.1系统简介

这是一个简单的书籍识别系统,有:

   唐诗三百首、鲁迅散文集 、红楼梦 、泰戈尔诗词 、呼啸山庄。

使用我们这个系统,只需根据窗口提供的内容回答y/n,系统将会帮你选择你可能中意的书籍。

该专家系统设计书籍的特性是:

中文,英文,诗集,散文,小说

各种书籍特性如下:

书籍

特性

唐诗三百首

中文

诗词

红楼梦

中文

小说

泰戈尔诗词

英文

诗词

鲁迅散文集

中文

散文

呼啸山庄

英文

小说

4.3.2系统程序

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

run

book_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

clear_facts

remember(symbol,symbol,symbol)

ask(symbol,symbol)

goal

run.

clauses

run:

-

book_is(X),!

write("\nYourfavoritebookmaybe",X),

nl,nl,clear_facts.

run:

-

write("\nUnabletodeterminewhat"),

write("yourbookis.\n\n"),clear_facts.

positive(X,Y):

-xpositive(X,Y),!

.

positive(X,Y):

-not(xnegative(X,Y)),ask(X,Y).

negative(X,Y):

-xnegative(X,Y),!

.

negative(X,Y):

-not(xpositive(X,Y)),ask(X,Y).

ask(X,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1