第一篇:汉诺塔实验(人工智能)
实验二——专家系统一、源代码
import javax.swing.JCheckBox;import javax.swing.JOptionPane;import javax.swing.JPanel;
public class Index extends javax.swing.JFrame {
jmilk = new javax.swing.JCheckBox();jclaw = new javax.swing.JCheckBox();jhoof = new javax.swing.JCheckBox();jbird = new javax.swing.JCheckBox();jloogLeg = new javax.swing.JCheckBox();jflyable = new javax.swing.JCheckBox();jeatMeat = new javax.swing.JCheckBox();jfur = new javax.swing.JCheckBox();jruminate = new javax.swing.JCheckBox();jswim = new javax.swing.JCheckBox();jfeather = new javax.swing.JCheckBox();jdogTooth = new javax.swing.JCheckBox();jflyest = new javax.swing.JCheckBox();jlayEgg = new javax.swing.JCheckBox();jblackWhite = new javax.swing.JCheckBox();jyellow = new javax.swing.JCheckBox();jinFlyable = new javax.swing.JCheckBox();jdarkDot = new javax.swing.JCheckBox();jhoofAnimal = new javax.swing.JCheckBox();jpredator = new javax.swing.JCheckBox();jmammal = new javax.swing.JCheckBox();jblackStrip = new javax.swing.JCheckBox();jgaze = new javax.swing.JCheckBox();jLabel1 = new javax.swing.JLabel();btnOk = new javax.swing.JButton();jloogNeck = new javax.swing.JCheckBox();private void initComponents(){ public Index(){ } initComponents();数组设置//:
checkBoxs[0] = jmilk;checkBoxs[1] = jclaw;checkBoxs[2] = jhoof;checkBoxs[3] = jbird;checkBoxs[4] = jloogLeg;checkBoxs[5] = jflyable;checkBoxs[6] = jeatMeat;checkBoxs[7] = jfur;checkBoxs[8] = jruminate;checkBoxs[9] = jswim;checkBoxs[10] = jfeather;checkBoxs[11] = jdogTooth;checkBoxs[12] = jflyest;checkBoxs[13] = jlayEgg;checkBoxs[14] = jblackWhite;checkBoxs[15] = jyellow;checkBoxs[16] = jinFlyable;checkBoxs[17] = jdarkDot;checkBoxs[18] = jhoofAnimal;checkBoxs[19] = jpredator;checkBoxs[20] = jmammal;checkBoxs[21] = jblackStrip;checkBoxs[22] = jgaze;checkBoxs[23] = jloogNeck;://数组设置
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jmilk.setText(“u5976”);jclaw.setText(“u722a”);jhoof.setText(“u8e44”);jbird.setText(“u9e1f”);jloogLeg.setText(“u957fu817f”);jflyable.setText(“u4f1au98de”);jeatMeat.setText(“u5403u8089”);
{
jfur.setText(“u6bdbu53d1”);jruminate.setText(“u53cdu520d”);jswim.setText(“u6e38u6cf3”);jfeather.setText(“u7fbdu6bdb”);jdogTooth.setText(“u72acu9f7f”);jflyest.setText(“u5584u98de”);jlayEgg.setText(“u4e0bu86cb”);jblackWhite.setText(“u9ed1u767du8272”);jyellow.setText(“u9ec4u8910u8272”);jinFlyable.setText(“u4e0du4f1au98de”);jdarkDot.setText(“u6697u6591u70b9”);jhoofAnimal.setText(“u6709u8e44u7c7bu52a8u7269”);jpredator.setText(“u98dfu8089u52a8u7269”);jmammal.setText(“u54fau4e73u52a8u7269”);jblackStrip.setText(“u9ed1u8272u6761u7eb9”);jgaze.setText(“u773cu775bu76efu7740u524du65b9”);jLabel1.setFont(new java.awt.Font(“黑体”, 0, 24));jLabel1.setText(“u4e13u5bb6u7cfbu7edf”);btnOk.setText(“u731cu731cu662fu4ec0u4e48uff1f”);btnOk.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt)} btnOkActionPerformed(evt);});jloogNeck.setText(“u957fu8116u5b50”);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout
.setHorizontalGroup(layout
.createParallelGroup(.addGroup(layout
.createSequentialGroup().addGap(35, 35, 35).addGroup(layout
.addGroup(layout
javax.swing.GroupLayout.Alignment.LEADING).createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jmilk).addComponent(jclaw).addComponent(jhoof)
.addComponent(jbird)).addGap(44, 44, 44).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jeatMeat).addComponent(jfur).addComponent(jflyable).addComponent(jruminate)))
.addGroup(layout
.createSequentialGroup().addComponent(jloogLeg)
.addGap(32, 32, 32).addComponent(jswim)))
.addGap(26, 26, 26).addGroup(layout
.addComponent(.addComponent(btnOk).addGroup(layout
98,jLabel1,.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jflyest).addComponent(jdogTooth).addComponent(jfeather).addComponent(jlayEgg).addComponent(jgaze)).addGap(23, 23, 23).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jloogNeck).addGroup(layout
.createSequentialGroup().addGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jyellow)
.addComponent(jblackWhite)
.addComponent(jinFlyable)
.addComponent(jdarkDot))
.addGap(18, 18, 18)
.addGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jmammal)
.addComponent(jpredator)
.addComponent(jblackStrip)
.addComponent(jhoofAnimal))))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)));layout.setVerticalGroup(layout
.createParallelGroup(.addGroup(layout
.createSequentialGroup().addGroup(layout
.addGroup(layout
javax.swing.GroupLayout.Alignment.LEADING).createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).createSequentialGroup().addGap(81, 81, 81).addComponent(jLabel1)
.addGap(65, 65, 65).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jfeather, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jfur).addComponent(jmilk).addComponent(jyellow)).addGap(18, 18,18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jdogTooth).addComponent(jeatMeat).addComponent(jclaw).addComponent(jblackWhite).addComponent(jpredator)).addGap(24, 24, 24).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jflyable)
.addComponent(jhoof)).addGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jlayEgg)
.addComponent(jinFlyable)
.addComponent(jblackStrip))).addGap(18,18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jflyest).addComponent(jbird).addComponent(jruminate).addComponent(jdarkDot).addComponent(jhoofAnimal)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
.addGroup(layout
.createSequentialGroup().addContainerGap(175,Short.MAX_VALUE).addComponent(jmammal, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(141, 141, 141)))
.addPreferredGap(.addGroup(layout
.addGroup(layout
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jswim).addComponent(jgaze)
.addComponent(jloogNeck)).addComponent(jloogLeg))
.addGap(73, 73,.addGap(27, 27, 27)));73).addComponent(btnOk)pack();}// //GEN-END:initComponents
private void btnOkActionPerformed(java.awt.event.ActionEvent evt){
// TODO add your handling code here: if(jfur.isSelected()&& count()== 1){ show(“哺乳动物”);} else if(jmilk.isSelected()&& count()== 1){ show(“哺乳动物”);} else if(jfeather.isSelected()&& count()== 1){ 主要代码//:
show(“鸟”);} else if(jflyable.isSelected()&& jlayEgg.isSelected()&& count()
show(“鸟”);} else if(jeatMeat.isSelected()&& count()== 1){ show(“食肉动物”);} else if(jdogTooth.isSelected()&& jclaw.isSelected()&& show(“食肉动物”);} else if(jmammal.isSelected()&& jhoof.isSelected()&& count()show(“有蹄类动物”);} else if(jmammal.isSelected()&& jruminate.isSelected()&& show(“有蹄类动物”);} else if(jmammal.isSelected()&& jpredator.isSelected()&& show(“金钱豹”);} else if(jmammal.isSelected()&& jpredator.isSelected()&& show(“虎”);} else if(jhoofAnimal.isSelected()&& jloogNeck.isSelected()&& show(“长颈鹿”);== 2){ jgaze.isSelected()&& count()== 3){ == 2){ count()== 2){ jyellow.isSelected()&& jdarkDot.isSelected()&& count()== 4){ jyellow.isSelected()&& jblackStrip.isSelected()&& count()== 4){ jloogLeg.isSelected()&& jdarkDot.isSelected()&& count()== 4){
} else if(jhoofAnimal.isSelected()&& jblackStrip.isSelected()show(“斑马”);} else if(jbird.isSelected()&& jinFlyable.isSelected()&& && count()== 2){ jloogNeck.isSelected()&& jloogLeg.isSelected()&& jblackWhite.isSelected()&& count()== 5){
//GEN-BEGIN:variables
public static void main(String args[]){
} java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){ } new Index().setVisible(true);public void show(String message){ }
public int count(){
} int sum = 0;for(int i = 0;i < checkBoxs.length;i++){
} return sum;if(checkBoxs[i].isSelected()){ } sum ++;JOptionPane.showMessageDialog(this, message);}
show(“鸵鸟”);} else if(jbird.isSelected()&& jinFlyable.isSelected()&& show(“企鹅”);} else if(jbird.isSelected()&& jflyest.isSelected()&& count()show(“信天翁”);} else { show(“我不知道是什么。。”);} jblackWhite.isSelected()&& jswim.isSelected()&& count()== 4){ == 2){ ://主要代码
});
} // Variables declaration-do not modify private javax.swing.JButton btnOk;private javax.swing.JLabel jLabel1;private javax.swing.JCheckBox jbird;private javax.swing.JCheckBox jblackStrip;private javax.swing.JCheckBox jblackWhite;private javax.swing.JCheckBox jclaw;private javax.swing.JCheckBox jdarkDot;private javax.swing.JCheckBox jdogTooth;private javax.swing.JCheckBox jeatMeat;private javax.swing.JCheckBox jfeather;private javax.swing.JCheckBox jflyable;private javax.swing.JCheckBox jflyest;private javax.swing.JCheckBox jfur;private javax.swing.JCheckBox jgaze;private javax.swing.JCheckBox jhoof;private javax.swing.JCheckBox jhoofAnimal;private javax.swing.JCheckBox jinFlyable;private javax.swing.JCheckBox jlayEgg;private javax.swing.JCheckBox jloogLeg;private javax.swing.JCheckBox jloogNeck;private javax.swing.JCheckBox jmammal;private javax.swing.JCheckBox jmilk;private javax.swing.JCheckBox jpredator;private javax.swing.JCheckBox jruminate;private javax.swing.JCheckBox jswim;private javax.swing.JCheckBox jyellow;// End of variables declaration//GEN-END:variables
public JCheckBox[] checkBoxs = new JCheckBox[24];
二、结果截图
示例1:
示例2:
三、推理树
第二篇:汉诺塔教学反思
师生问答对话的探索----《汉诺塔》教学反思
山东省日照市文登路小学 刘卫妮
汉诺塔游戏,起源于古印度的一个传说,这一堂从游戏中开始的数学课,将一改有些学生认为“数学很枯燥的”的想法,通过让学生自己动手去体验,不仅是在学习数学知识,更是在训练数学思维。揭开的不仅是谜底,更是想教给学生如何学好数学的一种方法。下面,我将对师生问答对话进行一下反思。
过程课中,第一,开始通过师生会话自然导入,如:你喜欢玩游戏吗?你还想继续玩吗?通过传说中关于世界末日的预言,让学生迫不及待的想找到问题的答案。第二,通过让学生到黑板上贴标题的方法,一方面自然出现课题,另一方面通过这种活动又复习了游戏规则,让学生通过活动说出游戏规则。如,师:孩子们,眼睛看到这儿来,你发现了什么? 生:老师,汉诺塔这款游戏器具既有立柱,还有圆盘,我发现黑板上只有三根立柱,而缺少圆盘。师:孩子,你有一双善于发现的眼睛。圆盘在老师手里。谁来将这三个纸质圆盘贴到黑板上的第一根圆柱上?生贴师:大家同意他的贴法吗?理由是什么?师:同学们同意他的观点吗?生:。。师:是的,小盘在上,大盘在下,这是我们玩这款游戏的规则之一(PPT出示),汉诺塔仅仅这一个规则吗?生:老师,我知道。玩汉诺塔还有一个规则是:一次只能移动一个圆盘。师:说的很好。请同学们仔细观察,看老师的操作是否正确,并说出理由。(师故意做错误演示)生:。。第三,注重在各个环节中渗透对学生的情感目标。比如“师:孩子们知道了游戏规则,我想征求大家的意见,此时,你最想干什么?”通过询问,拉近和学生的距离,建立一种平等民主的教学环境。又如“师:XX同学,不仅善于分析,还讲述的非常清楚,跟大家分享了他的成功。孩子们,分享别人的成功,也是一种进步。”让学生知道要取长补短,互相学习。第四,通过让学生找最少步数之间的规律进行拓展延伸,找到里面的数学奥秘,让学生觉得数学是很有趣的,数学无处不在,我们可以用数学问题解释生活中的很多事情。如,师:要是我们一直这样做下去,还没有做到咱们所有的9个圆盘的游戏,就已经下课了,来,我们先一起看一下我们的研究成果,认真看,你发现这些数字有什么规律了吗?最后,作为奖励我给学生讲了一个小故事,这个故事正好体现了本节课的数学问题,让学
生在课下研究探索,找到问题的答案,寓教于乐。师:同学们,今天的这堂课老师分享了你们的成功和快乐,老师有一个故事也想和大家分享一下,“百万富翁的破产”:杰米是百万富翁,一天,他碰到上一件奇怪的事。一个叫韦伯的人对他说,我想和你订个合同,我将在整整一个月中每天给你10万元,而你第一天只需给我1分钱,以后你每天给我的钱是前一天的两倍。杰米说,真的?!你说话算数? 合同开始生效了,杰米欣喜若狂。第一天杰米支出1分钱,收入10万元。第二天,杰米支出2分钱,收入10万元。到了第10天,杰米共得100万元,而总共才付出5元1角2分。到了第20天,杰米共得200万元,而韦伯才得5千元多。杰米想:要是合同订、三个月该多好!结果杰米却破产了。孩子们,原因是什么?我期待着你们能帮帮我。
汉诺塔问题在数学界有很高的研究价值,而且至今还在被一些数学家们所研究,它可以帮助开发智力,激发我们的思维。让小学生接触这款益智游戏,利用一次次不断的探索和尝试,可以激发他们的兴趣,积极应对困难,获得成功体验,锻炼他们的思维,同时,培养主动探索,不服输的精神。数学磨砺孩子的思维品质。数学,是思维的体操;数学课堂应是师生思维活动的场所。数学学习的主要任务,其实就是发展学生的思维,要让学生学会思维的方式,形成良好的思维品质。课堂里知识的学习是有形的,思维的发展是无形的。如何让无形的思维发展转化为外在的有形体现,这就要求学生在掌握知识的过程中,理解掌握知识之间的内在联系,联系就是思维,联系就是方法,联系就是能力,我们要在数学学习过程中让孩子寻找到知识与知识之间的联系,知识与生活之间的联系等。只有建立联系学生才会触类旁通,一通百通。然而,学生的思维单靠老师是教不会的。靠的是学生自己在经验中的摸索、体悟和积累,依靠学生自主地将这种摸索和体悟所得进行内化,逐渐学会如何思维,这个过程只有孩子自己才能实现。
在活动过程中,教师应更善于引导学生积极动脑自己去找到游戏策略,让学生更多参与,更多发现,培养学生独立思考的良好学习习惯,同时,这样也有利于学生建立学习信心。
第三篇:汉诺塔c语言程序代码
汉诺塔c语言程序代码(通过vc++6.0验证)(附讲解)让我们先看看代码吧 #include
printf(“%d->%dn”,a,c);else {t=c;c=b;b=t;hj(a,b,c,i-1);printf(“%d->%dn”,a,b);t=a;a=c;c=t;t=b;b=c;c=t;hj(a,b,c,i-1);return 0;} } main(){ int a,b,c,i;a=1;b=2;c=3;printf(“请输入汉诺塔的盘数”);scanf(“%d”,&i);hj(a,b,c,i);return 0;}
以上是汉诺塔的代码,该程序主要是运用了递归的思想,比如数学中的f(x)=f(x-1)+f(x-2),在本程序中为:int hj(int a,int b, int c,int i){ int t;if(i==1)
printf(“%d->%dn”,a,c);else {t=c;c=b;b=t;hj(a,b,c,i-1);也就是说,我们在这个函数中再次调用这个函数,相当于一个循环,而在再次调用的过程中,i的值变成i-1,就类似于f(x-1),这样层层调用,最终就变成当i=1的时候的值,然后通过运算,计算出想要得到的值。汉诺塔的数值分析:
我们可以发现,当只有一个盘的时候,我们只需要做1->3(就是把第一个柱子上的最顶端的盘移动到第三根柱子,以下不再解释)当有两个盘的时候,是1->2
1->3
2->3 三个盘子是:1->3
1->2
3->2
1->3
2->1
2->3 分析一下可以得出以下结论: 初始值a=1 b=2 c=3 一个盘子就是a->c 两个盘子与一个盘子的关系是:
第一步:b与c交换值,然后打印a->c 第二步:打印a->b 第三步:a与c交换值,b与c交换值,打印a->c 进一步分析,便可以得出以下结论 只要盘子数量为i(i大于1),那么它就有三部分 第一部分,b与c交换值,然后运行i-1 第二部分,打印a->b 第三部分,a与c交换值,b与c交换值,然后运行i-1 程序表示便是: if(i==1)
printf(“%d->%dn”,a,c);else {t=c;c=b;(交换值)
b=t;hj(a,b,c,i-1);printf(“%d->%dn”,a,b);t=a;a=c;c=t;(a c交换)
t=b;b=c;c=t;(b c交换)
hj(a,b,c,i-1);不明加QQ765233918(请写清备注)
1->3
第四篇:C语言程序设计(汉诺塔问题)
C语言程序设计(汉诺塔设计)
#include
/*函数声明*/
int m;printf(“please enter the number of diskes:n”);scanf(“%d”,&m);printf(“the step of move %d diskes :”,m);tian(m,'A','B','C');
} void tian(int n,int x,int y,int z)
/*当我选定这一行的时候 然后单击组间选择调试
run to_
发现不管输入的x值是多少
ABC的值都是65 66 67
后来才发现原来是他们所代表的十进制的值*/ {void move(int x,int y);
if(n==1)move(x,z);
/*这里是递归函数的结束条件*/ else
{tian(n-1,x,z,y);move(x,y);
tian(n-1,y,x,z);} } void move(int x, int y)
/*
定义move函数用来显示移动的路线*/ {printf(“%c——>%cn”,x,y);
} /*汉洛塔问题:如果有N个盘子
那么可以简化为n-1个盘子和一个盘子来处理,只要先把上面的n-1个盘子从A——>B
把第n个盘子由A——>C 再把n-1个盘子由B——>C 即可;
n-1盘子
那么可以简化为n-2个盘子和一个盘子来处理
只要
把上面的n-2个盘子从A——>B
把第n个盘子由A——>C 再把n-1个盘子由B——>C 即可;
n-3盘子
那么可以简化为n-3个盘子和一个盘子来处理
只要
把上面的n-4个盘子从A——>B
把第n个盘子由A——>C 再把n-1个盘子由B——>C 即可;
N-4
.....4个盘子
那么可以简化为3个盘子和一个盘子来处理
只要 把上面的3个盘子有a 到b
把第4个盘子由a到c 再把上面的三个盘子由b到c;
3个盘子
可以简化为。。*/
第五篇:人工智能实验
《人工智能应用》课程实验教学大纲时间:2010-05-23 00:04来源:知行网 编辑:麦田守望者 点击:168次
一、实验课程基本情况与说明
(一)课程中文名称:人工智能应用
(二)课程英文名称:Application of Artificial Intelligence
(三)实验学分:1
(四)实验学时:36
(五)适用专业及年级:教育技术学3年级
(六)所属实验室名称:软件实验室
(七)实验教材及参考书:
1.实验教科书(五号宋体加粗)
[1]《人工智能教程》,张仰森、黄改娟编著,2008年,高等教育出版社;
2.实验参考书(五号宋体加粗)
[1]《人工智能及其应用》李长河主编,2006年,机械工业出版社;
[2] 《人工智能》,[美]Rob Callan编,2004年,黄厚宽、田盛丰等译,电子工业出版社;
[3] 《人工智能及其应用》(第三版),2004年,蔡自兴、徐光佑编,清华大学出版社。
[4] 《人工智能技术导论》(第二版),2000年,廉师友编,西安电子科技大学出版社;
(八)实验目的和内容:
目的:通过本课程的学习,培养学生掌握计算机如何来模仿人脑所从事的推理、学习、思考和规划等思维活动,来解决需人类专家才能解决的复杂问题,进一步熟悉知识的获取、知识的表示方法和知识的使用等。
内容:
1、产生式系统
2、问题归约
3、逻辑推理
4、机器人问题求解
5、专家系统
(九)考核方式及成绩评定:(五号宋体加粗)
上机考试、编程并运行通过,提交实验报告。成绩评定标准:学生成绩以20%的比例计入《人工智能应用》这门课程。
(十)实验环境:
硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
软件: C、lisp、C++、prolog任选;
所有实验使用到的设备:微机、服务器、网络设备、打印机、编程环境等。
(十一)实验项目及安排
以下实验项目中必做题目在学期结束时必须完成,并提交实验报告;选做题可以根据实际情况选择做和不做。
序号 实验名称 实验类型 学时 每组人数 备注
1产生式系统 基础与验证性 4 1 必做
2问题归约 基础与验证性 4 1 必做
3逻辑推理 基础与验证性 4 1 必做BP网络解决XOR分类问题(用BP神经网络实现XOR分类)基础与验证性 4 1 4、5二
选一状态空间搜索(8数码问题)基础与验证性 4 1机器人问题求解 综合性、设计性 8 1 必做专家系统 综合性、设计性 12 1 必做
(十二)实验报告要求
基础和验证性实验:理工类:参照范本、计算机类:电子版数据全部存盘
设计性、综合性实验:按照定义(设计性实验是指给定实验目的要求和实验条件,由学生自行设计实验方案并加以实现的实验;综合性实验是指实验内容涉及本课程的综合知识或与本课程相关课程知识的实验)来做,理工类:纸质材料存档,、计算机类:电子版数据全部存盘。
二、实验课程授课大纲
实验一 产生式系统
1、实验目的熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)对已有的产生式系统(默认的例子)进行演示,同时可以更改其规则库或(和)事实库,进行正反向推理,了解其推理过程和机制。
(2)自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验二问题归约
1、实验目的熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)演示已有的梵塔问题(默认程序例程),可以更改圆盘数量,了解问题解决的归约过程。
(2)分析归约机理,熟悉问题规约的详细过程。
(3)自己建造一个梵塔问题归约系统,然后根据归约原理进行逆向推理,得到本原问题集合。通过解决这些本原问题,最终求解问题。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验三 逻辑推理
1、实验目的熟悉和掌握逻辑推理的原理、实质和过程。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)编写公理系统证明程序。
(2)上机运行。打印出运行结果,并结合程序运行结果进行分析。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验四 BP网络解决XOR分类问题
1、实验目的用BP神经网络实现XOR分类。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)用BP神经网络实现XOR分类
(2)上机运行。打印出运行结果,并结合程序运行结果进行分析。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验五 状态空间搜索
1、实验目的用实验方法模拟8数码问题。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)用实验方法模拟8数码问题。
(2)上机运行。打印出运行结果,并结合程序运行结果进行分析。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验六 机器人问题求解
1、实验目的了解机器人的信息处理流程,比较基于行为主义和符号主义的人工智能方法在机器人中的应用特点和效果,以及结合两者的规划与决策方式。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)了解AmigoBot移动机器人的传感器和驱动器工作情况;
(2)观察机器人的反射式避障行为;
(3)编程控制机器人路径,观察行为并比较其避障效果;
(4)观察混合式方法的导航效果,分析行为决策和规划在系统中的作用;
(5)分析根据先验地图规划路径的导航系统的优缺点。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验七 专家系统
1、实验目的加深学生对专家系统原理的理解,使学生初步掌握专家系统的设计和实现方法。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)了解专家系统设计与实现的一般方法;
(2)熟悉和掌握产生式系统的运行机制、产生式规则的程序语言实现;
4、实验内容及步骤
综合利用人工智能的产生式系统、图搜索算法以及专家系统的框架,建造一个小型的医疗诊断专家系统,要求系统具有知识库、推理机和动态数据库三部分。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
(责任编辑:麦田守望者