
人工智能导论课程上机实验指导书.docx
9页人工智能导论课程上机实验指导书廉师友编运算机工程实验室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 */databasexpositive(symbol, symbol) xnegative(symbol, symbol) predicatesrunanimal_is(symbol)it_is(symbol)positive(symbol, symbol)negative(symbol, symbol) clear_factsremember(symbol, symbol, symbol) ask(symbol, symbol)goalrun.clausesrun:-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).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).需要讲明的是,严格来讲,该专家系统程序中并无显式的推理机, 而是利用了 PROLOG语言本身的推理机制实现推理的。
这确实是讲,用P ROLOG编写专家系统程序,能够省去推理机部分如果用其他语言编程, 推理机则是必不可少的因此,用PROLOG编写专家系统程序,也能够不 用它自身的推理机作为所实现的专家系统的推理机,而用户自己重新编写 一个显式的推理机,这可按照咨询题和需要而定如果要重新编写推理机, 一样讲来,规则就要用PROLOG的事实来实现知识库就要用PROLOG 的动态数据库来实现因此,以上实习也可用C或C++编程,但工作量要大得多七、实验报告实验报告用学校统一的实验报告纸书写,表头严格按其要求填写, 其中“实验名称”后填:小型专家系统设计与实现下面是实验报告的差 不多内容和书写格式一、 实验目的加深对专家系统的明白得,初步把握专家系统的设计与实现 方法二、 实验内容运用所学知识,设计并编程实现一个小型专家系统三、实验步骤1. 选题2. 系统分析3. 知识猎取与知识表示选择/设计4. 知识库组建5. 推理机选择/编制6. 系统调试与测试四、实验结果1. 系统名称〈所做系统的名称〉2. 系统概述(包括所做系统的背景和要紧功能等)3. 产生式规则集文本4. 系统运行演示过程(1) 输入的初始事实或数据:(2) 系统运行时产生的推理树(网):(3) 输出的结果:5. 源程序清单。












