人工智能导论课程指导书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工智能导论课程实验指导书

廉师友编

计算机工程实验室

2007年3月

目录

1. 小型专家系统设计与实现 (2)

专家系统涉及人工智能导论课程的大部分内容,而且实践性和应用性都很强。因此,本课程将专家系统设计与实现作为一个上机实验项目。该实验是一个设计性实验,它对加深课程内容的理解和掌握,培养学生运用所学知识开发智能系统的能力有重要意义。

一、实验名称

小型专家系统设计与实现

二、实验目的

1. 加深理解专家系统的结构原理与实际应用。

2. 初步掌握知识获取的基本方法。

3. 掌握产生式规则知识表示方法及其编程实现方法。

4. 初步掌握知识库的组建方法。

5. 加深理解推理机的算法原理并初步掌握其编程实现方法。

三、实验内容

运用所学知识,设计并编程实现一个小型专家系统(如分类、诊断、预测等类型)。

四、基本要求

1. 具体应用领域自选,具体系统名称自定;但所做系统绝对不能雷同。

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

3. 可用PROLOG语言编程并参考下面示例程序;但也可用其他语言另行编

程。

4. 所实现的专家系统必须上机运行演示;程序运行时,应有人机对话过程。

5. 系统完成后,要提交实验报告。

五、实验步骤

具体工作及步骤为:

1. 选题。

2. 系统分析。

3. 知识获取与知识表示选择/设计。

4. 知识库组建。

5. 推理机选择/编制。

6. 系统调试与测试:可先运行一两个简单的PROLOG程序,以熟悉语言环境;接着运行示例程序;然后编辑、调试、测试自己的系统程序。

7. 撰写实验报告。

六、系统示例

考虑到本实验有一定难度,下面给出一个“小型动物分类专家系统”示例,以供参考。

1. 动物分类规则集

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

下面是该规则集所形成的(部分)推理网络:

2. 源程序

/* An Animal Classifying Expert System */

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("\nYour animal may be a(n) ", X),

nl, nl, clear_facts.

run:-

write("\nUnable to determine what"),

write("your animal is. \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\nPlease press the space bar to Exit"), readchar(_).

/* Knowledge Base */

animal_is(cheetah):-

it_is(carnivore),

positive(has, tawny_color),

positive(has, black_spots).

相关文档
最新文档