八数码问题实验报告讲解

八数码问题实验报告讲解
八数码问题实验报告讲解

《八数码问题》实验报告

一、实验目的:

熟练掌握启发式搜索A *算法。

二、实验内容:

使用启发式搜索算法求解8数码问题。编制程序实现求解8数码问题A *算法,采用估价函数

()()()()

w n f n d n p n ??=+???, 其中:()d n 是搜索树中结点n 的深度;()w n 为结点n 的数据库中错放的棋子个数;()p n 为结点n 的数据库中每个棋子与其目标位置之间的距离总和。

三、实验原理:

1. 问题描述:

八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(以数字0来表示),与空格相邻的棋子可以移到空格中。

要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。

所谓问题的一个状态就是棋子在棋盘上的一种摆法。解八数码问题实际上就是找出从初始状态到达目标状态所经过的一系列中间过渡状态。

2. 原理描述:

启发式搜索

(1)原理

启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。

(2)估价函数

计算一个节点的估价函数,可以分成两个部分:

1、 已经付出的代价(起始节点到当前节点);

2、 将要付出的代价(当前节点到目标节点)。

节点n 的估价函数)(n f 定义为从初始节点、经过n 、到达目标节点的路径的最小代价的估计值,即)(*n f = )(*n g + )(*

n h 。 )(*n g 是从初始节点到达当前节点n 的实际代价;

)(*n h 是从节点n 到目标节点的最佳路径的估计代价。

)(*n g 所占的比重越大,越趋向于宽度优先或等代价搜索;反之,)(*n h 的比重越大,表示启发性能就越强。

(3)算法描述:

① 把起始节点S 放到OPEN 表中,并计算节点S 的)(S f ;

② 如果OPEN 是空表,则失败退出,无解;

③ 从OPEN 表中选择一个f 值最小的节点i 。如果有几个节点值相同,当其中有一个 为目标节点时,则选择此目标节点;否则就选择其中任一个节点作为节点i ;

④ 把节点i 从 OPEN 表中移出,并把它放入 CLOSED 的已扩展节点表中;

⑤ 如果i 是个目标节点,则成功退出,求得一个解;

⑥ 扩展节点i ,生成其全部后继节点。对于i 的每一个后继节点j :

计算)(j f ;如果j 既不在OPEN 表中,又不在CLOCED 表中,则用估价函数f 把 它添入OPEN 表中。从j 加一指向其父节点i 的指针,以便一旦找到目标节点时记住一个解答路径;如果j 已在OPEN 表或CLOSED 表中,则比较刚刚对j 计算过的f 和前面计算过的该节点在表中的f 值。如果新的f 较小,则

(I)以此新值取代旧值。

(II)从j 指向i ,而不是指向他的父节点。

(III)如果节点j 在CLOSED 表中,则把它移回OPEN 表中。

⑦ 转向②,即GOTO ②。

(3)算法流程图:

四、实验结果

输入矩阵: 目标矩阵: 2 8 3 1 2 3 1 4 5

8 0 4 7 6 0

7 6 5

五、实验小结

通过本次试验,我对启发式搜索有了更加深入的了解。在实验中,通过对两种启发式搜索所扩在的节点数来看,)(n p 看来比)(n 更加有效,能在复杂情况下求得更加优质的解,避免不必要的节点的扩展。所以,要更好地定义一个估价函数还有待深入讨论。

源代码:

#include"stdio.h"

#define num 3 //宏定义数码的行列数为3

/*显示当前待调整数码矩阵*/

void show(int begin[num][num])

{

for(int i = 0; i < num; i++)

{

for(int j = 0; j < num; j++)

printf("%d ", begin[i][j]);

printf("\n");

}

printf("\n");

}

/*交换数码中的 begin[row_one][column_one] 与 begin[row_two][column_two] 这两个数*/ void exchange(int begin[num][num], int row_one, int column_one, int row_two, int column_two)

{

int temp;

temp = begin[row_two][column_two] ;

begin[row_two][column_two] = begin[row_one][column_one];

begin[row_one][column_one] = temp;

}

/*判断待调整的数码与最终数码相比正确位置数码的个数*/

int judge(int begin[num][num], int end[num][num])

{

int count=0; //count记录数码中正确位置的个数

for(int i = 0; i < num; i++) //检查当前图形的正确度

for(int j = 0; j < num; j++)

{

if(begin[i][j] == end[i][j] && end[i][j] != 0)

count++;

}

return count; //返回数码中正确位置的个数

}

/* 将待调整数码从开始位置移动到终止位置,并将其过程输出*/

int yidong(int begin[num][num], int end[num][num]

, int right, int jishu, int ji_shu[50][3][3]

, int biaoji, int row, int column) //biaoji存储上一轮移动的反方向代号

{

int temp_zhi;

show(begin); //显示数组矩阵

if(jishu >= 20)

return 0;

int node; //,node为标记

int temp; //存储当前待调整数码正确的个数

for(int q=0; q

node = 1;

for(int w=0; w

for(int r=0; r

if(ji_shu[q][w][r] != begin[w][r])

node = 0;

if(node == 1) //如果先前遍历过,返回0

{

return 0;

}

}

for(int i = 0; i < num; i++)

for(int j = 0; j < num; j++)

ji_shu[jishu][i][j] = begin[i][j];

if(right == num * num - 1) //如果待调整数码与最终数码完全相同时,返回1 return 1;

if(row > 0 && biaoji != 0) //存储0的位置不是在第一行

{

exchange(begin, row - 1, column, row , column); //将0与其上面的元素交换存储位置

temp = judge(begin, end);

if(temp < right) //如果交换后正确数码的个数不大于原来正确数码的个数exchange(begin, row - 1, column, row , column); //再将其交换回来

else if(temp >= right) //如果交换后正确数码的个数大于或等于原来正确数码的个数

{

temp_zhi = yidong(begin, end, temp, jishu+1, ji_shu, 2, row-1, column);

if( temp_zhi == 1) //进行下一步的移动

return 1;

exchange(begin, row - 1, column, row , column); //再将其交换回来}

}

if(column > 0 && biaoji != 1)

{

exchange(begin, row, column - 1, row , column); //将0与其左边的元素交换存储位置

temp = judge(begin, end);

if(temp < right)

exchange(begin, row, column - 1, row , column);

else if(temp >= right)

{

temp_zhi = yidong(begin, end, temp, jishu+1, ji_shu ,3, row, column - 1);

if(temp_zhi == 1)

return 1;

exchange(begin, row, column - 1, row , column);

}

}

if(row < num-1 && biaoji != 2)

{

exchange(begin, row + 1, column, row , column); //将0与其下面的元素交换存储位置

temp = judge(begin, end);

if(temp < right)

exchange(begin, row + 1, column, row , column);

else if(temp >= right)

{

temp_zhi =yidong(begin, end, temp, jishu+1, ji_shu, 0, row+1, column);

if(temp_zhi == 1)

return 1;

exchange(begin, row + 1, column, row , column);

}

}

if(column < num-1 && biaoji != 3)

{

exchange(begin, row, column + 1, row , column); //将0与其右边的元素交换存储位置

temp = judge(begin, end);

if(temp < right)

exchange(begin, row, column + 1, row , column);

else if(temp >= right)

{

temp_zhi = yidong(begin, end, temp, jishu+1, ji_shu, 1, row, column+1);

if(temp_zhi == 1)

return 1;

exchange(begin, row, column + 1, row , column);

}

}

return 0; //移动失败,返回0

}

/*有用户输入待调整的数码矩阵最初状态的数,并将其存入到begin[][]数组中*/

void shuru(int begin[][num],int blank[])

{

int temp, node, zero = 0;

for (int i = 0; i < num; i++)

for(int j = 0; j < num; j++)

{

node = 1;

printf("请输入第%d行,第%d列的元素的值:", i+1, j+1);

scanf("%d", &temp);

for (int q = 0; q <= i && node == 1; q++) //当输入的值有重复的,提示重新输入

for (int w = 0; w < j; w++)

if(temp == begin[q][w])

{

printf("输入重复,请重新输入\n");

node = 0;

j--;

break;

}

if(temp < 0 || temp > num*num-1) //当输入的值不是在数码的区间范围内时,提示重新输入

{

printf("请输入从%d到%d的数\n", zero, num*num-1);

node = 0;

j--;

}

if(node == 1) //如果输入满足条件

{

if(temp == 0) //如果输入的值为零,由blank[0]记录行号,blank[1]记录列号

{

blank[0] = i;

blank[1] = j;

}

begin[i][j] = temp;//将满足条件的值存储起来

}

}

}

int main()

{

int jishu = 0, ji_shu[50][3][3];//jishu存储已经遍历过的八数码图形的个数,jishu[][][]存储已经遍历过的八数码图形的形状

int row; //存储数字零的行数

int column; //存储数字零的列数

int begin[num][num], blank[2],count=1;

int end[num][num] = {1, 2, 3, 8, 0, 4, 7, 6, 5}; //给最终状态的数码矩阵赋值 printf ("-------%d数码游戏开始!--------\n", num);

shuru(begin, blank); //输入带调整状态的数码矩阵的值

row = blank[0];

column = blank[1];

if(yidong (begin, end,judge(begin,end),jishu,ji_shu,4,row,column) == 0) printf("\n此8数码的问题可能无解!");

else

show(begin);

getchar();getchar();

return 0;

}

游戏人工智能实验报告记录四

游戏人工智能实验报告记录四

————————————————————————————————作者:————————————————————————————————日期:

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 Windows7系统 Microsoft Visual Studio2015 三、实验原理及过程 1)制作菜单 设置参数:点击会弹出对话框,设置一些参数,红、黑蚂蚁的家会在地图上标记出来 运行:设置好参数后点击运行,毒药、食物、水会在地图上随机显示 下一步:2只红蚂蚁和2只黑蚂蚁会随机出现在地图上,窗口右方还会出现红、黑蚂蚁当前数量的统计 不断按下一步,有限状态机就会不断运行,使蚁群产生变化 2)添加加速键

资源视图中下方 选择ID和键值

3)新建头文件def.h 在AntView.cpp中加入#include"def.h" 与本实验有关的数据大都是在这里定义的 int flag=0; #define kForage 1 #define kGoHome 2 #define kThirsty 3 #define kDead 4 #define kMaxEntities 200 class ai_Entity{ public: int type; int state; int row; int col; ai_Entity(); ~ai_Entity() {} void New (int theType,int theState,int theRow,int theCol); void Forage(); void GoHome(); void Thirsty(); void Dead();

八数码问题求解--实验报告讲解

实验报告 一、实验问题 八数码问题求解 二、实验软件 VC6.0 编程语言或其它编程语言 三、实验目的 1. 熟悉人工智能系统中的问题求解过程; 2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用; 3. 熟悉对八数码问题的建模、求解及编程语言的应用。 四、实验数据及步骤 (一、)实验内容 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 2 8 3 1 2 3 1 4 8 4 7 6 5 7 6 5 (a) 初始状态(b) 目标状态 图1 八数码问题示意图 (二、)基本数据结构分析和实现 1.结点状态 我采用了struct Node数据类型 typedef struct _Node{

int digit[ROW][COL]; int dist; // distance between one state and the destination一 个表和目的表的距离 int dep; // the depth of node深度 // So the comment function = dist + dep.估价函数值 int index; // point to the location of parent父节点的位置 } Node; 2.发生器函数 定义的发生器函数由以下的四种操作组成: (1)将当前状态的空格上移 Node node_up; Assign(node_up, index);//向上扩展的节点 int dist_up = MAXDISTANCE; (2)将当前状态的空格下移 Node node_down; Assign(node_down, index);//向下扩展的节点 int dist_down = MAXDISTANCE; (3)将当前状态的空格左移 Node node_left; Assign(node_left, index);//向左扩展的节点 int dist_left = MAXDISTANCE; (4)将当前状态的空格右移 Node node_right; Assign(node_right, index);//向右扩展的节点 int dist_right = MAXDISTANCE; 通过定义结点状态和发生器函数,就解决了8数码问题的隐式图的生成问题。接下来就是搜索了。 3.图的搜索策略 经过分析,8数码问题中可采用的搜速策略共有:1.广度优先搜索、2.深度优先搜索、2.有界深度优先搜索、4.最好优先搜索、5.局部择优搜索,一共五种。其中,广度优先搜索法是可采纳的,有界深度优先搜索法是不完备的,最好优先和局部择优搜索法是启发式搜索法。 实验时,采用了广度(宽度)优先搜索来实现。 (三、)广度(宽度)优先搜索原理 1. 状态空间盲目搜索——宽度优先搜索 其基本思想是,从初始节点开始,向下逐层对节点进形依次扩展,并考察它是否为目标节点,再对下层节点进行扩展(或搜索)之前,必须完成对当层的所有节点的扩展。再搜索过程中,未扩展节点表OPEN中的节点排序准则是:先进入的节点排在前面,后进入的节点排在后面。其搜索过程如图(1)所示。

人体解剖学实验报告指导

《人体解剖学实验报告指导》 解剖教研室编写 邢台医学高等专科学校 目录 第一章绪言 一、实验课的目的及要求………………………… 二、实验报告书写要求…………………………… 三、实验室守则…………………………………… 第二章实验指导及报告 任务一观察躯干骨及其连结………………………… 任务二观察颅骨及其连结…………………………… 任务三观察四肢骨及其连结………………………… 任务四观察头颈肌(系解+局解)…………………… 任务五观察躯干肌(系解+局解)…………………… 任务六观察四肢肌(系解+局解)………………… 任务七观察消化系统………………………………… 任务八观察呼吸系统………………………………、、 任务九观察泌尿系统………………………………、、 任务十观察男性生殖系统………………………………、、任务十一观察女性生殖系统……………………………、任务十二观察腹膜内分泌系统……………………、 任务十三观察心脏模型……………………

任务十四观察全身动脉…………………… 任务十五观察全身静脉…………………………、、 任务十六观察淋巴系统……………………………、 任务十七观察眼模型……………………………… 任务十八观察耳模型………………………………… 任务十九观察脊髓模型……………………………… 任务二十观察脑干、小脑、间脑、端脑………… 任务二十一观察中枢神经系统传导通路……………… 任务二十二观察脑的被膜、血管…………………… 任务二十三观察脑神经………………………………… 任务二十四观察脊神经………………………………… 任务二十五观察内脏神经…………………………… 第一章绪言 一、实验课的目的及要求 系统解剖学就是研究正常人体形态结构的科学。本实验课的目的就是通过观察标本模型,使学生掌握掌握人体九大系统器官的形态结构及功能,巩固解剖学基本理论与基本知识,从而培养学生的观察能力与思维能力,自学、表达与分析解决问题的能力。因此,要求学生: 1、重视实验课,实验前仔细阅读实验指导,了解实验目的、方法及步骤并结合实验内容复习有关理论。 2、实验时要仔细观察、认真操作,并对观察结果进行思考。如:(1)椎骨的形态特征?(2)各部椎骨的特殊结构?(3)椎间盘的结构及临床意义。(4)脊柱的侧面的四个生理弯曲及意义。 3、实验后,认真整理实验物品,如有损坏及时交给实验老师。 二、实验报告书写要求 每次试验后要写实验报告,实验报告要求文字简练、通顺、书写整洁。主要项目要求如下:

人工智能实验报告大全

人工智能实验报告大 全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034 目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5)

课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题

四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) { printf("Step %d:monkey从%c走到%c\n", ++i, x, y);//x表示猴子的位置,y为箱子的位置 } void Monkey_Move_Box(char x, char y) { printf("Step %d:monkey把箱子从%c运到%c\n", ++i, x, y);//x表示箱子的位置,y为香蕉的位置 } void Monkey_On_Box() { printf("Step %d:monkey爬上箱子\n", ++i); } void Monkey_Get_Banana() { printf("Step %d:monkey摘到香蕉\n", ++i); } void main() { unsigned char Monkey, Box, Banana; printf("********智能1501班**********\n"); printf("********06153034************\n"); printf("********刘少鹏**************\n"); printf("请用a b c来表示猴子箱子香蕉的位置\n"); printf("Monkey\tbox\tbanana\n"); scanf("%c", &Monkey); getchar(); printf("\t"); scanf("%c", &Box); getchar(); printf("\t\t"); scanf("%c", &Banana); getchar(); printf("\n操作步骤如下\n"); if (Monkey != Box) { Monkey_Go_Box(Monkey, Box); } if (Box != Banana)

八数码问题人工智能实验报告

基于人工智能的状态空间搜索策略研究 ——八数码问题求解 (一)实验软件 TC2.0 或VC6.0编程语言或其它编程语言 (二)实验目的 1. 熟悉人工智能系统中的问题求解过程; 2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用; 3. 熟悉对八数码问题的建模、求解及编程语言的应用。 (三)需要的预备知识 1. 熟悉TC 2.0或VC6.0 编程语言或者其它编程语言; 2. 熟悉状态空间的宽度优先搜索、深度优先搜索和启发式搜索算法; 3. 熟悉计算机语言对常用数据结构如链表、队列等的描述应用; 4. 熟悉计算机常用人机接口设计。 (四)实验数据及步骤 1. 实验内容 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 图1 八数码问题示意图 请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。 2. 实验步骤 (1)分析算法基本原理和基本流程; 程序采用宽度优先搜索算法,基本流程如下:

(2)确定对问题描述的基本数据结构,如Open表和Closed表等;

(3)编写算符运算、目标比较等函数; (4)编写输入、输出接口; (5)全部模块联调; (6)撰写实验报告。 (五)实验报告要求 所撰写的实验报告必须包含以下内容: 1. 算法基本原理和流程框图; 2. 基本数据结构分析和实现; 3. 编写程序的各个子模块,按模块编写文档,含每个模块的建立时间、功能、输入输出参数意义和与其它模块联系等; 4. 程序运行结果,含使用的搜索算法及搜索路径等; 5. 实验结果分析; 6. 结论; 7. 提供全部源程序及软件的可执行程序。 附:实验报告格式 一、实验问题 二、实验目的 三、实验原理 四、程序框图 五、实验结果及分析 六、结论

A星算法求八数码问题试验报告

人工智能实验报告实验名称:八数码问题 姓名:xx 学号:2012210xx xx计算机学院

2014年1月14日 一.实验目的. 的思想,启发式搜索,来求解在代价最小的情况下将九宫格从一掌握A* 个状态转为另状态的路径。 二.实验内容且要求在有限步的操作内,使其转化为目标状态,给定九宫 格的初始状态,并打印出求解路径。例如(即移动的步数最少)所得到的解是代 价最小解 3 8 2 4 6 1 5 0 7 3 2 8 4 6 1 5 0 7 A*三、算法思想:1、思想:估价值与实际A*算法是一种静态路网中求 解最短路最有效的直接搜索方法。值越接近,估价函数取得就越好、原理:2 f(n)=g(n)+h(n), 估价函数公式表示为:是在状态空g(n) 是从初始点经由节点n到目标点的估价函数,其中 f(n) 到目标节点最佳路径的估计nh(n) 是从间中从初始节点到n节点的实际代价,h(n)的选取:代价。保证找到最短路径(最优解的)条件,关键在于估价函数到目标节点的距离实际值,这种情况下,搜索的点数多,搜索估价值h(n)<= n等于h(n)范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计如

果估那么搜索将严格沿着最短路径进行此时的搜索效率是最高的。最短距离, ,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。价值>实际值 四、算法流程:

1、使用了CreateChild()函数,求得了任意未拓展九宫格的扩展结点,便于拓展子空间,搜索所有情况。 关键代码: bool CreateChild(NOExtend ns[],NOExtend ne){

数字图像实验报告讲解

数 字 图 像 实 验 报 告 学院:计算机与信息工程学院 专业:通信工程 学号:1008224072 姓名:张清峰

实验一图像增强—灰度变换 专业:通信工程学号:1008224072姓名:张清峰 一、实验目的: 1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。 2、学会对图像直方图的分析。 3、掌握直接灰度变换的图像增强方法。 二、实验原理及知识点 术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。空间域处理方法分为两种:灰度级变换、空间滤波。空间域技术直接对像素进行操作其表达式为 g(x,y)=T[f(x,y)] 其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。 定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域,。此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。T应用于每个位置(x,y),以便在该位置得到输出图像g。在计算(x,y)处的g值时,只使用该领域的像素。 灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f 在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式: s=T(r) 其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。 三、实验内容: 1、图像数据读出 2、计算并分析图像直方图 3、利用直接灰度变换法对图像进行灰度变换 下面给出灰度变化的MATLAB程序 f=imread('C:\ch17\tu\6.jpg'); g=imhist(f,256); imshow(g) %显示其直方图

人工智能实验报告大全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034

目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5) 课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题 四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) {

八数码问题C语言A星算法详细实验报告含代码

一、实验内容和要求 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 例如: [ (a) 初始状态 (b) 目标状态 图1 八数码问题示意图 请任选一种盲目搜索算法(广度优先搜索或深度优先搜索)或任选一种启发式搜索方法(全局择优搜索,加权状态图搜索,A 算法或 A* 算法)编程求解八数码问题(初始状态任选)。选择一个初始状态,画出搜索树,填写相应的OPEN 表和CLOSED表,给出解路径,对实验结果进行分析总结,得出结论。 二、实验目的 1. 熟悉人工智能系统中的问题求解过程; 2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用; % 3. 熟悉对八数码问题的建模、求解及编程语言的应用。 三、实验算法 A*算法是一种常用的启发式搜索算法。 在A*算法中,一个结点位置的好坏用估价函数来对它进行评估。A*算法的估价函数可表示为: f'(n) = g'(n) + h'(n) 这里,f'(n)是估价函数,g'(n)是起点到终点的最短路径值(也称为最小耗费或最小代价),h'(n)是n到目标的最短路经的启发值。由于这个f'(n)其实是无法预先知道的,所以实际上使用的是下面的估价函数: f(n) = g(n) + h(n) 其中g(n)是从初始结点到节点n的实际代价,h(n)是从结点n到目标结点的最佳路径的估计代价。在这里主要是h(n)体现了搜索的启发信息,因为g(n)是已

知的。用f(n)作为f'(n)的近似,也就是用g(n)代替g'(n),h(n)代替h'(n)。这样必须满足两个条件:(1)g(n)>=g'(n)(大多数情况下都是满足的,可以不用考虑),且f必须保持单调递增。(2)h必须小于等于实际的从当前节点到达目标节点的最小耗费h(n)<=h'(n)。第二点特别的重要。可以证明应用这样的估价函数是可以找到最短路径的。 *算法的步骤 A*算法基本上与广度优先算法相同,但是在扩展出一个结点后,要计算它的估价函数,并根据估价函数对待扩展的结点排序,从而保证每次扩展的结点都是估价函数最小的结点。 A*算法的步骤如下: & 1)建立一个队列,计算初始结点的估价函数f,并将初始结点入队,设置队列头和尾指针。 2)取出队列头(队列头指针所指)的结点,如果该结点是目标结点,则输出路径,程序结束。否则对结点进行扩展。 3)检查扩展出的新结点是否与队列中的结点重复,若与不能再扩展的结点重复(位于队列头指针之前),则将它抛弃;若新结点与待扩展的结点重复(位于队列头指针之后),则比较两个结点的估价函数中g的大小,保留较小g值的结点。跳至第五步。 4)如果扩展出的新结点与队列中的结点不重复,则按照它的估价函数f大小将它插入队列中的头结点后待扩展结点的适当位置,使它们按从小到大的顺序排列,最后更新队列尾指针。 5)如果队列头的结点还可以扩展,直接返回第二步。否则将队列头指针指向下一结点,再返回第二步。 四、程序框图

人工智能实验报告

实验报告 1.对CLIPS和其运行及推理机制进行介绍 CLIPS是一个基于前向推理语言,用标准C语言编写。它具有高移植性、高扩展性、 强大的知识表达能力和编程方式以及低成本等特点。 CLIPS由两部分组成:知识库、推理机。它的基本语法是: (defmodule< module-n ame >[< comme nt >]) CLIPS的基本结构: (1).知识库由事实库(初始事实+初始对象实例)和规则库组成。 事实库: 表示已知的数据或信息,用deftemplat,deffact定义初始事实表FACTLIS,由关系名、后跟 零个或多个槽以及它们的相关值组成,其格式如下: 模板: (deftemplate [] *) :: = | 事实: (deffacts [] *) 当CLIPS系统启动推理时,会把所有用deffact定义的事实自动添加到工作存储器中。常用命令如下:asser:把事实添加到事实库(工作存储器)中retract:删除指定事实 modify :修改自定义模板事实的槽值duplicate :复制事实 clear:删除所有事实 规则库 表示系统推理的有关知识,用defrule命令来定义,由规则头、后跟零个或多个条件元素以 及行为列表组成,其格式如下: (defrule [] * ; =>

八数码问题C语言A星算法详细实验报告含代码

八数码问题C语言A星算法详细实验报告含代 码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

一、实验内容和要求 八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。 例如: (a) 初始状态 (b) 目标状态 图1 八数码问题示意图 请任选一种盲目搜索算法(广度优先搜索或深度优先搜索)或任选一种启发式搜索方法(全局择优搜索,加权状态图搜索,A 算法或 A* 算法)编程求解八数码问题(初始状态任选)。选择一个初始状态,画出搜索树,填写相应的OPEN表和CLOSED表,给出解路径,对实验结果进行分析总结,得出结论。 二、实验目的 1. 熟悉人工智能系统中的问题求解过程; 2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用; 3. 熟悉对八数码问题的建模、求解及编程语言的应用。 三、实验算法 A*算法是一种常用的启发式搜索算法。 在A*算法中,一个结点位置的好坏用估价函数来对它进行评估。A*算法的估价函数可表示为: f'(n) = g'(n) + h'(n)

这里,f'(n)是估价函数,g'(n)是起点到终点的最短路径值(也称为最小耗费或最小代价),h'(n)是n到目标的最短路经的启发值。由于这个f'(n)其实是无法预先知道的,所以实际上使用的是下面的估价函数: f(n) = g(n) + h(n) 其中g(n)是从初始结点到节点n的实际代价,h(n)是从结点n到目标结点的最佳路径的估计代价。在这里主要是h(n)体现了搜索的启发信息,因为g(n)是已知的。用f(n)作为f'(n)的近似,也就是用g(n)代替 g'(n),h(n)代替h'(n)。这样必须满足两个条件:(1)g(n)>=g'(n)(大多数情况下都是满足的,可以不用考虑),且f必须保持单调递增。(2)h必须小于等于实际的从当前节点到达目标节点的最小耗费 h(n)<=h'(n)。第二点特别的重要。可以证明应用这样的估价函数是可以找到最短路径的。 *算法的步骤 A*算法基本上与广度优先算法相同,但是在扩展出一个结点后,要计算它的估价函数,并根据估价函数对待扩展的结点排序,从而保证每次扩展的结点都是估价函数最小的结点。 A*算法的步骤如下: 1)建立一个队列,计算初始结点的估价函数f,并将初始结点入队,设置队列头和尾指针。

无线话筒实验报告讲解

无线话筒实验报告 一、实验目的 1. 了解无线话筒的构造与工作原理; 2. 掌握调频发射机整机电路的设计与调试方法,以及高频电路的调试中常见故障的分析与排除; 3. 以小功率调频发射机为例,学会如何将高频单元电路组合起来实现满足工程要求的整机电路的设计与调试技术; 4. 巩固理论知识,提高实际动手能力和分析能力; 5. 增强与同学之间的交流与合作能力。 二、实验仪器与工具 (1)直流稳压电源一台; (2)数字万用表一只; (3 )示波器(≥100MHz) 一台; (4)调频收音机(87~108Hz) 一台; (5)烙铁,镊子,斜口钳若干; 三、系统原理分析 调频系统的组成: 对于小功率的调频无线话筒,设计时在保证技术指标的前提下,应力求电路简单、性能稳定可靠。单元电路的级数尽可能少,以减小级间的相互感应、干扰和自激。本实验设计中采用的调频发射系统如下: 音频放大→高频振荡与频率调制→缓冲隔离→高频功放

图中的高频功放在发射功率较小时可工作于甲类状态(丙类状态要求有较大的功率激励)。 主要技术指标: ●发射功率P A:一般是指发射机输送到天线上的功率。只有当天线的长度L和发射频率的波长可以比拟时,天线才能有效地将信号发射出去。 ●工作频率或波段:发射机的工作频率是指其载波频率,应依据调制方式,在国家有关部门所规定的范围内选取。调频广播频段规定为87MHz~108MHz。 ●总效率:总效率=发射的总功率/消耗的总功率 ●输出阻抗:对调频广播而言,一般要求输出阻抗为50欧姆,对电视差转而言一般要求75欧姆 ●残波辐射:残波辐射是指杂波功率与有效输出功率之比 ●信杂比:信杂比是指已调波在规定的频偏情况下经理想解调后又用信号功率和载波功率之比 ●失真度:失真度是指已调波在规定的频偏情况下经理想解调后输出单音频信号的失真度 ●频率响应:频率响应是指已调波在规定的频偏情况下经理想解调后输出音频的幅频响应

A星算法求八数码问题实验报告

人工智能实验报告 实验名称:八数码问题 姓名:xx 学号:2012210xx xx计算机学院 2014年1月14日

一.实验目的 掌握A*的思想,启发式搜索,来求解在代价最小的情况下将九宫格从一个状态转为另状态的路径。 二.实验内容 给定九宫格的初始状态,要求在有限步的操作内,使其转化为目标状态,且所得到的解是代价最小解(即移动的步数最少)并打印出求解路径。例如 2 8 3 1 6 4 7 0 5 2 8 3 1 6 4 7 0 5 三、A*算法思想: 1、思想: A*算法是一种静态路网中求解最短路最有效的直接搜索方法。估价值与实际值越接近,估价函数取得就越好 2、原理: 估价函数公式表示为: f(n)=g(n)+h(n), 其中 f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n) 是从n到目标节点最佳路径的估计代价。保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取:估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行此时的搜索效率是最高的。如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

四、算法流程: 是 是,输出路径 否,生成n 的所有子状态 Heuristic_Search(启发式搜索) While (未拓展表不为空?) 从未拓展表中删除第一个状态n N 为目标状态? Case:此子状态 不在拓展表和 未拓展表中 Case:此子状态在未拓展表中 Case:此子状态在拓展表 计算该子状态的估价函数值; 记录比已有的路径更短 的路径 记录比已有的路径更短的路径 返回

图的遍历实验报告讲解

实验四:图的遍历 题目:图及其应用——图的遍历 班级:姓名:学号:完成日期: 一.需求分析 1.问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。 2.基本要求:以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 3.测试数据:教科书图7.33。暂时忽略里程,起点为北京。 4.实现提示:设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制,注意,生成树的边是有向边,端点顺序不能颠倒。 5.选作内容: (1).借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。 (2).以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。 二.概要设计 1.为实现上述功能,需要有一个图的抽象数据类型。该抽象数据类型的定义为: ADT Graph { 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。 数据关系R: R={VR} VR={ | v,w v且P(v,w),表示从v到w得弧,谓词P(v,w)定义了弧的意义或信息} } ADT Graph 2.此抽象数据类型中的一些常量如下: #define TRUE 1 #define FALSE 0 #define OK 1 #define max_n 20 //最大顶点数 typedef char VertexType[20]; typedef enum{DG, DN, AG, AN} GraphKind; enum BOOL{False,True}; 3.树的结构体类型如下所示:

人工智能实验报告

人工智能课程项目报告 姓名: 班级:二班

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体0~9 三、实验原理 用K-最近邻算法对数据进行分类。逻辑回归算法(仅分类0和1)四、实验内容 使用knn算法: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3.使用knnClassify()进行测试 4.依据k的值,得出结果 使用逻辑回归: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3. 使用上式求参数。步长0.07,迭代10次 4.使用参数以及逻辑回归函数对测试数据处理,根据结果判断测试数 据类型。 五、实验结果与分析 5.1 实验环境与工具 Window7旗舰版+ python2.7.10 + numpy(库)+ notepad++(编辑)

Python这一语言的发展是非常迅速的,既然他支持在window下运行就不必去搞虚拟机。 5.2 实验数据集与参数设置 Knn算法: 训练数据1934个,测试数据有946个。

数据包括数字0-9的手写体。每个数字大约有200个样本。 每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下图所 示 建立一个kNN.py脚本文件,文件里面包含三个函数,一个用来生成将每个样本的txt文件转换为对应的一个向量:img2vector(filename):,一个用 来加载整个数据库loadDataSet():,最后就是实现测试。

八数码问题实验报告讲解

《八数码问题》实验报告 一、实验目的: 熟练掌握启发式搜索A *算法。 二、实验内容: 使用启发式搜索算法求解8数码问题。编制程序实现求解8数码问题A *算法,采用估价函数 ()()()()w n f n d n p n ??=+??? , 其中:()d n 是搜索树中结点n 的深度;()w n 为结点n 的数据库中错放的棋子个数;()p n 为结点n 的数据库中每个棋子与其目标位置之间的距离总和。 三、实验原理: 1. 问题描述: 八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(以数字0来表示),与空格相邻的棋子可以移到空格中。 要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。 所谓问题的一个状态就是棋子在棋盘上的一种摆法。解八数码问题实际上就是找出从初始状态到达目标状态所经过的一系列中间过渡状态。 2. 原理描述: 启发式搜索 (1)原理 启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。 (2)估价函数

计算一个节点的估价函数,可以分成两个部分: 1、 已经付出的代价(起始节点到当前节点); 2、 将要付出的代价(当前节点到目标节点)。 节点n 的估价函数)(n f 定义为从初始节点、经过n 、到达目标节点的路径的最小代价 的估计值,即)(* n f = )(* n g + )(* n h 。 )(*n g 是从初始节点到达当前节点n 的实际代价; )(*n h 是从节点n 到目标节点的最佳路径的估计代价。 )(*n g 所占的比重越大,越趋向于宽度优先或等代价搜索;反之,)(*n h 的比重越大, 表示启发性能就越强。 (3)算法描述: ① 把起始节点S 放到OPEN 表中,并计算节点S 的)(S f ; ② 如果OPEN 是空表,则失败退出,无解; ③ 从OPEN 表中选择一个f 值最小的节点i 。如果有几个节点值相同,当其中有一个 为目标节点时,则选择此目标节点;否则就选择其中任一个节点作为节点i ; ④ 把节点i 从 OPEN 表中移出,并把它放入 CLOSED 的已扩展节点表中; ⑤ 如果i 是个目标节点,则成功退出,求得一个解; ⑥ 扩展节点i ,生成其全部后继节点。对于i 的每一个后继节点j : 计算)(j f ;如果j 既不在OPEN 表中,又不在CLOCED 表中,则用估价函数f 把 它添入OPEN 表中。从j 加一指向其父节点i 的指针,以便一旦找到目标节点时记住一个解答路径;如果j 已在OPEN 表或CLOSED 表中,则比较刚刚对j 计算过的f 和前面计算过的该节点在表中的f 值。如果新的f 较小,则 (I)以此新值取代旧值。 (II)从j 指向i ,而不是指向他的父节点。 (III)如果节点j 在CLOSED 表中,则把它移回OPEN 表中。 ⑦ 转向②,即GOTO ②。 (3)算法流程图:

动物实验报告讲解

实验动物学实验报告 学院: 学号: 姓名 时间:

实验一:小鼠实验 一、实验目的 1、掌握小鼠抓取、固定的基本方法; 2、掌握小鼠的雌雄鉴别方法; 3、掌握小鼠的标记方法; 4、掌握小鼠的基本采血技术; 5、掌握小鼠的常用给药方法; 6、掌握小鼠的解剖方法,熟悉内部脏器的自然位置; 二、实验材料 1、实验动物:每组两只雌鼠,两只雄鼠; 2、实验器械及试剂:鼠笼;小鼠固定器和小鼠固定板;眼科剪;眼科镊;解剖刀;1ml注射器;毛细玻璃管;灌胃针;苦味酸染料;葡萄糖液;2%水合氯醛; 三、实验内容及方法 1、小鼠的抓取和固定 抓取时先用右手抓取鼠尾提起,置于鼠笼或实验台向后拉,在其向前爬行时,用左手拇指和食指抓住小鼠的两耳和颈部皮肤,将鼠体置于左手心中,把后肢拉直,以无名指按住鼠尾,小指按住后腿即可。这种在手中固定方式,能进行实验动物的灌胃、皮下、肌肉和腹腔注射以及其他实验操作。 2、小鼠的雌雄鉴别 雄鼠的阴囊明显,雄鼠可见阴道开口和五对乳头。幼鼠或仔鼠则主要从外生殖器与肛门的距离判定,近者为雌,远者为雄。另外,雌鼠肛门和生殖器之间有一无毛小沟,而雄鼠则在肛门和生殖器之间长毛。 3、小鼠的标记方法 1)耳孔法 用耳号钳在耳上打洞或者用剪刀在耳边缘剪缺口,左耳为十位,右耳为个位。 2)剪趾法 适用于出生一周以内新生仔鼠; 3)染色法

用毛笔将苦味酸涂在动物的不同部位,注意逆着毛发生长方向刷。 4、小鼠的基本采血 1)剪尾采血 当所需血量很少时采用本法。固定动物并历出鼠尾,将鼠尾在45℃温水中浸泡数分钟,也可用酒精棉球涂擦,使局新血管扩张。将鼠尾擦干,再用刀片剪去1-2mm,让血液滴入盛器或直接用移液器吸取,同时自尾根部向尾尖按摩。取血后,先用棉球压迫止血并立即用6%液体火棉胶涂于尾巴伤口处,使伤口外结一层火棉胶薄膜,保护伤口。也可采用切割尾静脉的方法采血,三根尾势脉可交替切割,并自尾尖向尾根方向切割,每次可取0.2~0.3ml血,切割后用棉球压迫止血。这种采血方法在大鼠进行较好,可以较长的间隔时间连续取血,进行血常规检查。 2)眼眶后静脉丛取血 当需中等量的血液,而又需避免动物死亡时采用此法。用左手固定鼠,尽量捏紧头部皮肤,使头固定,并轻轻向下压迫颈部两侧,引起头部静脉血液回流困难,使眼球充分外突(示眼眶后静脉丛充血),右手持毛细玻璃管,沿内眦眼眶后壁向喉头方向旋转刺入。刺入深度小鼠2~3mm。当感到有阻力时再稍后退,保持水平位,稍加吸引,由于血压的关系,血液即流人玻璃管中。得到所需的血量后,拨出毛细管。若手法恰当,小鼠约可采血0.2~0.3ml。 3)心脏取血 动物仰卧固定在固定板上,剪去心前区部位的被毛,用碘酒酒精消毒皮肤。在

人工智能实验报告

《一人工智能方向实习一》 实习报告 专业:计算机科学与技术 班级:12419013 学号: 姓名: 江苏科技大学计算机学院 2016年3月

实验一数据聚类分析 一、实验目的 编程实现数据聚类的算法。 二、实验内容 k-means聚类算法。 三、实验原理方法和手段 k-means算法接受参数k ;然后将事先输入的 n个数据对象划分为 k个聚类以便使得 所获得的聚类满足:同一聚类中的对象相似度较高 四、实验条件 Matlab2014b 五、实验步骤 (1)初始化k个聚类中心。 (2)计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。 (3)计算(2)分类后,k个类别的中心(即求聚类平均距离) (4)继续执行(2)(3)直到k个聚类中心不再变化(或者数据集所属类别不再变化) 六、实验代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % mai n.m % k-mea ns algorithm % @author matcloud %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all ; load fisheriris ; X = [meas(:,3) meas(:,4)]; figure; plot(X(:,1),X(:,2), 'ko' ,'MarkerSize' ,4); title( 'fisheriris dataset' , 'FontSize' ,18, 'Color' , 'red'); [idx,ctrs] = kmea ns(X,3); figure; subplot(1,2,1); plot(X(idx==1,1),X(idx==1,2), 'ro' , 'MarkerSize' ,4); hold on;

小学科学实验报告单讲解

实验类型9月17日班五年级时级间演示实验 小组成员 钟摆的秘密实验名称 支架、细铁丝、胡萝卜、回形针、秒表、细线实验器材 发现钟摆的奥妙,揭示钟摆的原理目的、用细线的一端拴住回形针1厘米;2、把细线的另一端固定到支架上,使线长正好等于20、用手拨动摆锤,同时利用秒表计时,并数摆来回摆动的次3 实验步骤数;、记录一分钟摆所摆动的次数;4 、重复53-5步再做一次。现象:测试条件测量次数第三次第二次第一次 每分70 钟70 70 摆摆锤相同观察到的动的次数摆长相等 现象或实实验结果:验结果当摆锤的重量和摆长一定时,摆每分钟摆动的次数一样多。 实验结论摆锤一定,摆长一定,摆的速度也一定。 胡健指导教师优秀评定等级.

实验类型日间9班月级17时五年级演示实验 小组成员 钟摆的秘密实验名称支架、细铁丝、胡萝卜、回形针、秒表、细

线实验器材 的发现钟摆的奥妙,揭示钟摆的原理目 1、用细线的一端拴住回形针厘米;20 2、把细线的另一端固定到支架上,使线长正好等于、用手拨动摆锤,同时利用秒表计时,并数摆来回摆动的次3 实验步骤数;、记录一分钟摆所摆动的次数;4 步操作。105、把摆线缩短到厘米后,重复第3-4 现象:摆长摆每分钟摆动的次数摆锤95 10厘米回形针 观察到的78 回形针15厘米 现象或实70 回形针20 厘米实验结果:验结果当摆锤的重量一定时,摆线越长,摆动的次数越少;摆线越短,摆动的次数越多。摆锤一定,摆长越长,摆的速度越慢;摆长越短,摆的速度实验结论越快。 优秀评定等级优秀评定等级. 小学科学实验报告单

实验类型17间9班月级日五年级时演示实验 小组成员 钟摆的秘密实验名称 实验器材支架、细铁丝、胡萝卜、回形针、秒表、细线目的发现钟摆的奥妙,揭示钟摆的原理1、用细线的一端拴住回形针厘米;202、把细线的另一端固定到支架上,使线长正好等于、用手拨动摆

相关文档
最新文档