文档库 最新最全的文档下载
当前位置:文档库 › 人工智能课程设计报告

人工智能课程设计报告

人工智能课程设计报告
人工智能课程设计报告

人工智能课程设计报告

----设计三:八皇后

学院:信息科学与工程学院

班级:自动化0703班

姓名:宋金财

学号:0901070305

指导教师:陈白帆陈学

2010年6月10日

目录

一、概述

1.1、设计题目………………………………………………………………

1.2、系统主要内容与功能…………………………………………………

二、设计流程及描述

2.1、设计流程图……………………………………………………………

2.2、设计思路简介…………………………………………………………

三、运行界面简介

3.1、游戏模式界面演示……………………………………………………

3.2、解答界面演示…………………………………………………………

四、源程序代码

4.1、游戏模式代码…………………………………………………………

4.2、解答代码………………………………………………………………

五、课程设计体会

5.1设计体会…………………………………………………………………

附录

参考文献……………………………………………………………………………

(一)概述

设计题目:

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。

系统主要内容与功能

设计内容:在8*8的国际象棋棋盘上,放置8个皇后后,使8个棋子不能被相互对方吃掉。设计要求:(1)较好的人机操作界面,登陆界面应有系统的各种功能信息。

(2)能够进行基本的游戏操作,用不同的颜色在棋盘上表示能占用的格子和不能占用的。

(3)当程序出错后应能可以重新开始进行游戏

(4)此系统应包括答案解答功能,其中答案解答功能应包括各种答案的游戏界面共有92种情况。

(二)设计流程及描述

2.1 设计流程图:

算法基本流程图主函数:

2.2设计思路简介:

由于这是一个平面上的棋子布局处理问题,因此我们可以将问题堪称一个2维数组问题,不妨设这个8*8数组A,并假定第一行是为后一位置的位置,第二行为后卫放置的位置,依次类推,8行分别存放8个后的位置,为了简便处理,我们先将A(8,8)的初值设为1 ,一旦一个位置存放一个后,则其他后不能处于同一行,同一列,同一个斜线,将这些位置的数组元素的值设为0。

1.1在其中一个位置上有一后的数据处理

设第m 行,n 列有一个后,则根据原则,分别从八个不同的方向将对应的元素置为0。

1.2第K个后的位置设定

假定前面:k-1个后的位置已经确定,则第:K个后只能放置在第K 行中元素不为0 的位置上。因此只需找到这个不为0的元素A(K,J),J就是第K个后的位置。

1.3最后一个后的位置确定

如果第8 行中有元素不为0,则表明你已经找到了一种摆法,可以通过文本框text1 输

将文本框的ScrollBar 的属性设为2-Vertivcal, Multiline属性设为true。但是输出后还要寻找是否有其它的摆法?如果第8行中元素均为0,则表明你的这种摆法不行,还得要尝试其它的方法,看看是否能行?但是,如何尝试其它的摆法呢?这就是问题的关键所在,需要我们回溯到以前的状态,重新摆放!

1.4 回溯处理

回溯到以前的状态可以用下面的算法来实现:

(1) 寻找到第: 个后的位置。

(2)将当前数组6 的值全部保存到另外一个数组" 中,以便回溯时用到。

(3)进行%7 % 的数据处理。

(4)寻找下一个后的位置。

(5)不管是否找到正确摆放方法,都应当去尝试其它方法。因此,必须再将B中的数据还原到数组A 中进行回溯处理。至此,八皇后问题的算法已基本解决,用户可以从第一个后开始,通过多重循环逐个处理,完成设计,最终得到的92 种不同的算法。

2、算法改进

由于通过多重循环进行处理,8个后就需要8 重循环处理,使得程序就显得很长,效率不是很高,能否通过改进程序来提高效率?值得我们去探讨。

2.1对数据处理1.1的改进

根据问题的实际情况,由于后是按顺序进行处理的,因此当你处理到第K个后时,前面K-1 个的位置已经确立,也就是说前面K-1 行数据已经处理完毕,所以没有必要在1.1中对向左上,向上,向右上三个方向的数据进行处理,只需要处理1.1中其它5个方向即可。

2.2保存数据的改进

将数组A的当前状态存放到B数组中去,以便将来回溯时使用。由于回溯并不是回到初始状态,因此没有必要将整个数组全部保存,只需部分保存即可。例如,你在处理第K 个后时,只要将第K行到第8 行数组A中的数据保存。回溯时,只要将第K行之后的元素还原即可。

2.3 多重循环的改进

8个后,使用8 重循环,而且处理的方法类同,使得我们的程序冗长,用户可以使用递归算法来缩短程序的长度。算法如下:

(1)寻找第K 个后

(2)确定第K个后的位置

(3)保存K 行之后的数($7 $)

(4)进行第K 个后位置确定后的数据处理(2.1)

(5)K=K+1;

(6)如果K不大于8,重复(1),进行递归处理。如果等于8,进行

(7)处理

(7)如果找到摆法,在文本框中输出。

(8)K=K-1

(9)还原第K 行后的数据,处理第K个后的其它摆法。

3、算法比较

通过改进程序算法,运行效率明显提高,其中实际运算时间提高%50,程序长度缩短%40。

三、运行界面简介

游戏开始界面:

此部分包括两部分:(1)当游戏失败后可以进行重新开始游戏,(2)游戏帮助信息游戏运行界面:

很明显此游戏完成失败!

成功的完成游戏!!

答案解答界面:

此部分包含两个模块:运算和显示模块

此为其计算的结果,共有92中不同的结果。

选择自己希望的答案组数

以上为对应的显示的答案,从中可以看出游戏成功!

四、源程序代码

4.1、游戏模式代码

Option Explicit

Dim Sd(63) As Integer

Dim Cnt As Integer

Private Sub Form_Load()

Me.Caption = "八皇后游戏"

Me.Width = 5000

Me.Height = 5500

Dim m As Integer, n As Integer

With Picture1(0)

.Left = 500

.Top = 500

.Width = 500

.Height = 500

.BackColor = vbWhite

End With

'初始化,载入8*8个格

For m = 0 To 7

For n = 0 To 7

If m = 0 And n = 0 Then n = 1

Load Picture1(m * 8 + n)

With Picture1(m * 8 + n)

.Left = (n + 1) * 500

.Top = (m + 1) * 500

.Width = 500

.Height = 500

.BackColor = vbWhite

.Visible = True

End With

Next

Next

End Sub

Private Sub hp_Click()

MsgBox "请在下面8*8共64个方格中填入8个绿色方格" & vbCrLf & "要求这8个绿色方格两两之间不能共行或共列,也不能共斜线" & vbCrLf & Space(60) & "---xinfresh编写", vbInformation, "游戏帮助"

End Sub

Private Sub Picture1_Click(Index As Integer)

If Picture1(Index).BackColor = vbWhite Then '未用

Picture1(Index).BackColor = vbGreen '该格标绿,说明已选中

Cnt = Cnt + 1

Form1.Caption = Left(Form1.Caption, 5) & " 已放入" & CStr(Cnt) & "个皇后"

If Cnt = 8 Then

MsgBox "恭喜您成功完成!!强人!!", vbInformation, "强烈恭喜!"

Call ReSt_Click

Exit Sub

End If

ElseIf Picture1(Index).BackColor = vbGreen Then '已选用,撤销

Picture1(Index).BackColor = vbWhite '该格标白,说明未用

Cnt = Cnt - 1

Form1.Caption = Left(Form1.Caption, 5) & " 已放入" & CStr(Cnt) & "个皇后" Else

Exit Sub

End If

Dim m As Integer, n As Integer, p As Integer, q As Integer

m = Index \ 8 '获得当前行

n = Index Mod 8 '获得当前列

Dim fc As ColorConstants

Dim tmpadd As Integer

If Picture1(Index).BackColor = vbWhite Then

fc = vbWhite

tmpadd = -1

End If

If Picture1(Index).BackColor = vbGreen Then

fc = vbRed

tmpadd = 1

End If

'同行变色

p = m - 1

Do While p >= 0

With Picture1(p * 8 + n)

.BackColor = fc

Sd(p * 8 + n) = Sd(p * 8 + n) + tmpadd

If Sd(p * 8 + n) > 0 Then

.BackColor = vbRed

ElseIf Sd(p * 8 + n) < 0 Then

Sd(p * 8 + n) = 0

End If

End With

p = p - 1

Loop

p = m + 1

Do While p <= 7

With Picture1(p * 8 + n)

.BackColor = fc

If Sd(p * 8 + n) > 0 Then

.BackColor = vbRed

ElseIf Sd(p * 8 + n) < 0 Then

Sd(p * 8 + n) = 0

End If

End With

p = p + 1

Loop

'同列变色

q = n - 1

Do While q >= 0

With Picture1(m * 8 + q)

.BackColor = fc

Sd(m * 8 + q) = Sd(m * 8 + q) + tmpadd

If Sd(m * 8 + q) > 0 Then

.BackColor = vbRed

ElseIf Sd(m * 8 + q) < 0 Then

Sd(m * 8 + q) = 0

End If

End With

q = q - 1

Loop

q = n + 1

Do While q <= 7

With Picture1(m * 8 + q)

.BackColor = fc

Sd(m * 8 + q) = Sd(m * 8 + q) + tmpadd

If Sd(m * 8 + q) > 0 Then

.BackColor = vbRed

ElseIf Sd(m * 8 + q) < 0 Then

Sd(m * 8 + q) = 0

End If

End With

q = q + 1

Loop

'左斜变色

p = m - 1: q = n + 1

Do While p >= 0 And q <= 7

With Picture1(p * 8 + q)

.BackColor = fc

If Sd(p * 8 + q) > 0 Then

.BackColor = vbRed

ElseIf Sd(p * 8 + q) < 0 Then

Sd(p * 8 + q) = 0

End If

End With

p = p - 1: q = q + 1

Loop

p = m + 1: q = n - 1

Do While p <= 7 And q >= 0

With Picture1(p * 8 + q)

.BackColor = fc

Sd(p * 8 + q) = Sd(p * 8 + q) + tmpadd

If Sd(p * 8 + q) > 0 Then

.BackColor = vbRed

ElseIf Sd(p * 8 + q) < 0 Then

Sd(p * 8 + q) = 0

End If

End With

p = p + 1: q = q - 1

Loop

'左斜变色

p = m - 1: q = n - 1

Do While p >= 0 And q >= 0

With Picture1(p * 8 + q)

.BackColor = fc

Sd(p * 8 + q) = Sd(p * 8 + q) + tmpadd

If Sd(p * 8 + q) > 0 Then

.BackColor = vbRed

ElseIf Sd(p * 8 + q) < 0 Then

Sd(p * 8 + q) = 0

End If

End With

p = p - 1: q = q - 1

Loop

p = m + 1: q = n + 1

Do While p <= 7 And q <= 7

With Picture1(p * 8 + q)

.BackColor = fc

Sd(p * 8 + q) = Sd(p * 8 + q) + tmpadd

If Sd(p * 8 + q) > 0 Then

.BackColor = vbRed

ElseIf Sd(p * 8 + q) < 0 Then

Sd(p * 8 + q) = 0

End If

End With

p = p + 1: q = q + 1

Loop

End Sub

Private Sub ReSt_Click()

Dim m As Integer

For m = 0 To 63

Picture1(m).BackColor = vbWhite

Sd(m) = 0

Next

Cnt = 0

Form1.Caption = Left(Form1.Caption, 5) & " 已放入" & CStr(Cnt) & "个皇后" End Sub

4.2、解答代码

Option Explicit

Dim CountA As Integer

Dim Answ() As Integer

Private Sub Form_Load()

Me.Caption = "八皇后求解"

Me.Width = 5000

Me.Height = 5500

Dim m As Integer, n As Integer

With Picture1(0)

.Left = 500

.Top = 500

.Width = 500

.Height = 500

.BackColor = vbWhite

End With

'初始化,载入8*8个格

For m = 0 To 7

For n = 0 To 7

If m = 0 And n = 0 Then n = 1

Load Picture1(m * 8 + n)

With Picture1(m * 8 + n)

.Left = (n + 1) * 500

.Top = (m + 1) * 500

.Width = 500

.Height = 500

.BackColor = vbWhite

.Visible = True

End With

Next

Next

End Sub

Private Sub Form_Unload(Cancel As Integer) Close

Kill App.Path & "\答案数据.txt"

End Sub

Private Sub Picture1_Click(Index As Integer) End Sub

Private Sub Start_Click()

'以第0行起始,起始时皇后数Cnt为0

Dim CurRow As Integer

Dim Cnt As Integer

Dim k As Integer, m As Integer, n As Integer

Dim Stas(7, 7) As Boolean '表示该位是否可用

CurRow = 0

Cnt = 0

'初始化各格状态,均为可用

For m = 0 To 7

For n = 0 To 7

Stas(m, n) = True

Next

Next

Call Ep(Stas, CurRow, Cnt)

ReDim Answ(1, 7, CountA - 1)

'读入答案数据

Open App.Path & "\答案数据.txt" For Input As #1

For k = 0 To CountA - 1

For m = 0 To 7

For n = 0 To 1

Input #1, Answ(n, m, k)

Next

Next

Next

MsgBox "共有" & CStr(CountA) & "组答案", vbInformation, "解题完成"

End Sub

Private Sub Ep(ByRef Sts() As Boolean, ByVal SubRow As Integer, ByVal SubCnt As Integer) Dim m As Integer, n As Integer, k As Integer

Dim SubSts(7, 7) As Boolean

For k = 0 To 7

If Sts(SubRow, k) Then

If SubCnt + 1 = 8 Then

Call Ots(Sts) '已填完八个皇后,输出

CountA = CountA + 1

Exit Sub

End If

If SubRow + 1 = 8 Then

Exit Sub

End If

'复制状态数组

For m = 0 To 7

For n = 0 To 7

SubSts(m, n) = Sts(m, n)

Next

Next

Call ChgSt(SubSts, SubRow, k) '放入皇后,依皇后位置调整状态数组

Call Ep(SubSts, SubRow + 1, SubCnt + 1)

End If

Next

End Sub

Private Sub ChgSt(ByRef Sbsts() As Boolean, ByVal Row As Integer, ByVal Col As Integer) '由皇后位置(Row,Col),改变状态

Dim m As Integer, n As Integer

'行变

m = Row

Do While m - 1 >= 0

m = m - 1

Sbsts(m, Col) = False

Loop

m = Row

Do While m + 1 <= 7

m = m + 1

Sbsts(m, Col) = False

Loop

'列变

n = Col

Do While n - 1 >= 0

n = n - 1

Sbsts(Row, n) = False

Loop

n = Col

Do While n + 1 <= 7

n = n + 1

Sbsts(Row, n) = False

Loop

'左上右下斜

m = Row: n = Col

Do While m - 1 >= 0 And n - 1 >= 0

m = m - 1: n = n - 1

Sbsts(m, n) = False

人工智能课程设计报告--动物识别系统

计算机科学与技术学院 《人工智能》课程设计报告设计题目:动物识别系统 设计人员:学号: 学号: 学号: 学号: 学号: 学号: 指导教师: 2015年7月

目录 目录 (1) 摘要 (2) Abstract (2) 一、专家系统基本知识 (3) 1.1专家系统实际应用 (3) 1.2专家系统的开发 (3) 二、设计基本思路 (4) 2.1知识库 (4) ....................................................................................................... 错误!未定义书签。 2.1.2 知识库建立 (4) 2.1.3 知识库获取 (5) 2.2 数据库 (6) ....................................................................................................... 错误!未定义书签。 ....................................................................................................... 错误!未定义书签。 三、推理机构 (7) 3.1推理机介绍 (7) 3.1.1 推理机作用原理 (7) ....................................................................................................... 错误!未定义书签。 3.2 正向推理 (7) 3.2.1 正向推理基本思想 (7) 3.2.2 正向推理示意图 (8) 3.2.3 正向推理机所要具有功能 (8) 3.3反向推理 (8) ....................................................................................................... 错误!未定义书签。 3.3.2 反向推理示意图 (8) ....................................................................................................... 错误!未定义书签。 四、实例系统实现 (9)

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

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

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

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 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();

人工智能实验报告大全

人工智能实验报告大 全

人工智能课内实验报告 (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)

人工智能课程设计报告-罗马尼亚度假问题

人工智能课程设计报告-罗马尼亚度假 问题 1

2

3 2020年5月29日 课 程 :人工智能课程设计报告 班 级: 姓 名: 学 号: 指导教师:赵曼 11月

人工智能课程设计报告 课程背景 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,能够设想,未来人工智能带来的科技产品,将会是人类智慧的”容器”。 人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些一般需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种”复杂工作”的理解是不同的。 人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅 速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐 - 1 - 2020年5月29日

《人工智能导论》课程研究总结

《人工智能导论》课程研究总结题目:BP神经网络的非线性函数拟合 班级: 姓名: 学号: 年月日

本次作业我负责程序的编写,过程如下 Matlab软件中包含Matlab神经网络工具箱。它是以人工神经网络理论为基础,用Matlab语言构造出了该理论所涉及的公式运算、矩阵操作和方程求解等大部分子程序以用于神经网络的设计和训练。用户只需根据自己的需要调用相关的子程序,即可以完成包括网络结构设计、权值初始化、网络训练及结果输出等在内的一系列工作,免除编写复杂庞大程序的困扰。目前,Matlab神经网络工具包包括的网络有感知器、线性网络、BP神经网络、径向基网络、自组织网络和回归网络等。BP神经网络主要用到newff、sim和train3个神经网络函数,各函数解释如下。 1、newff:BP神经网络参数设置函数 函数功能:构建一个BP神经网络。 函数形式:net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) P:输入数据矩阵。 T:输出数据矩阵。 S:隐含层结点数。 TF:结点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传递函数hardlims,线性传递函数pureline,正切S型传递函数tansig,对数S型传递函数logsig。 BTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数traingdx,Levenberg_Marquardt的BP算法训练函数trainlm。 BLF:网络学习函数,包括BP学习规格learngd,带动量项的BP学习规则learngdm。 PF:性能分析函数,包括均值绝对误差性能分析函数mae,均方差性能分析函数mse。 IPF:输入处理函数。 OPF:输出处理函数。 DDF:验证数据划分函数。 一般在使用过程中设置前面6个参数,后面4个参数采用系统默认参数。 2、train:BP神经网络训练函数 函数功能:用训练数据训练BP神经网络。 函数形式:[net,tr] = train(NET,X,T,Pi,Ai) NET:待训练网络。

游戏人工智能实验报告四

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 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(); }; ai_Entity entityList[kMaxEntities]; #define kRedAnt 1 #define kBlackAnt 2

人工智能课程设计报告-n皇后问题解读

人工智能课程设计报告 课班姓学程:人工智能课程设计报告级 : 名: 号: 指导教师:赵曼 2015年11月

人工智能课程设计报告 人工智能课程设计报告 课程背景 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。 人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。 人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。

三子棋c代码

三子棋问题 一目的 运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计提高学生综合运用所学知识来解决实际问题及进行科学实验或技术设计的初步能力。 二需求分析 1、该程序主要为设计简单的三子棋游戏; 2、三子棋问题即在3 * 3的二维数组上下棋,只要有棋子在行、列或对角线连成一线即取得胜利。 3、可实现玩家与电脑对弈。 三概要设计 1、主函数模块 int main() { do{ 开始新的对弈; }while(玩家选择停止游戏); return 0; } 2、调用函数模块 ①int chess(); /*函数功能:开始对弈 函数参数:无 函数返回值:return 0*/ { 初始化棋局; 选择玩家或电脑先行; do{ //开始下棋 输出当前棋局; if(该玩家走棋) { do{

玩家输出走棋位置; 检查走棋位置的合法性; }while(玩家输入合法的位置); } else if(电脑走棋) { 调用函数使电脑走棋 } 判断是否有一方胜出; }while(有一方胜出或平局); printf("最终棋局:\n"); 输出最终棋局; if(平局) 输出平局; } ②int check(char *chess,char sign); /*函数功能:使用了指针,判断位置可行则走棋,不可行则返回值为1 函数参数:使用指针传递棋局,以及欲走棋的位置 函数返回值:0代表可以走棋,1代表不可走棋 */ { 判断走棋位置是否合法; 不合法则返回1; 否则返回0; } ③int judge(char *chess); /*函数功能:判断是否有胜出 函数参数:当前棋局 函数返回值:0代表未有胜出,1代表玩家胜出,2代表电脑胜出*/ { for(行检查) { if(某行三子连线) { if(连线棋子为‘O’) 玩家胜出; else 电脑胜出; } } for(列检查)//思想同上 if(对角三字连线检查)//思想同上

人工智能实验报告大全

人工智能课内实验报告 (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) {

《人工智能导论》课程研究总结

《人工智能导论》课程研究总结 题目:BP神经网络的非线性函数拟合 班级: 姓名: 学号: 年月日 本次作业我负责程序的编写,过程如下 Matlab软件中包含Matlab神经网络工具箱。它是以人工神经网络理论为基础,用Matlab语言构造出了该理论所涉及的公式运算、矩阵操作和方程求解等大部分子程序以用于神经网络的设计和训练。用户只需根据自己的需要调用相关的子程序,即可以完成包括网络结构设计、权值初始化、网络训练及结果输出等在内的一系列工作,免除编写复杂庞大程序的困扰。目前,Matlab神经网络工具包包括的网络有感知器、线性网络、BP神经网络、径向基网络、自组织网络和回归网络等。BP神经网络主要用到newff、sim和train3个神经网络函数,各函数解释如下。 1、newff:BP神经网络参数设置函数 函数功能:构建一个BP神经网络。 函数形式:net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) P:输入数据矩阵。 T:输出数据矩阵。 S:隐含层结点数。 TF:结点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传递函数hardlims,线性传递函数pureline,正切S型传递函数tansig,对数S型传递函数logsig。 BTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数traingdx,Levenberg_Marquardt的BP算法训练函数trainlm。 BLF:网络学习函数,包括BP学习规格learngd,带动量项的BP学习规则learngdm。 PF:性能分析函数,包括均值绝对误差性能分析函数mae,均方差性能分析函数mse。IPF:输入处理函数。 OPF:输出处理函数。 DDF:验证数据划分函数。 一般在使用过程中设置前面6个参数,后面4个参数采用系统默认参数。 2、train:BP神经网络训练函数 函数功能:用训练数据训练BP神经网络。 函数形式:[net,tr] = train(NET,X,T,Pi,Ai) NET:待训练网络。 X:输入数据。 T:输出数据。 Pi:初始化输入层条件。 Ai:初始化输出层条件。 net:训练好的网络。 tr:训练过程记录。

人工智能实验报告

实验报告 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 [] * ; =>

人工智能深度优先算法课程设计报告

人工智能课程报告 题目: 深 度 优 先 算 法 班级:XXXXXXXXXXX 学号:XXXXXXXXXXX 姓名:XXXXXXXXXXX

【摘要】结合生活中解决搜索问题所常用的思考方法与解题方法,从深度优先探讨了提高程序效率的适用技巧。 【关键词】1搜索顺序;2搜索对象;3搜索优化; 一、深度优先搜索的优化技巧 我们在做事情的时候,经常遇到这类问题——给出约束条件,求一种满足约束条件的方案,这类问题我们叫它“约束满足”问题。对于约束满足问题,我们通常可以从搜索的顺序和搜索的对象入手,进而提高程序的效率。 二、搜索的顺序及对象: 在解决约束满足问题的时候,问题给出的约束条件越强,对于搜索就越有利。之所以深度优先搜索的效率在很大程度上优于穷举,就是因为它在搜索过程中很好的利用了题目中的约束条件进行优化,达到提高程序效率的目的。 显然,在同样的一棵搜索树中,越在接近根接点的位置利用约束条件优化效果就越好。如何在搜索中最大化的利用题目的约束条件为我们提供剪枝的依据,是提高深度优先搜索效率的一个很重要的地方。而不同的搜索顺序和搜索对象就直接影响到我们对于题目约束条件的运用。 三、搜索特点 1.由于深度搜索过程中有保留已扩展节点,则不致于重复构造不必要的子树系统。 2.深度优先搜索并不是以最快的方式搜索到解,因为若目标节点在第i层的某处,必须等到该节点左边所有子树系统搜索完毕之后,才会访问到该节点,因此,搜索效率还取决于目标节点在解答树中的位置。

3.由于要存储所有已被扩展节点,所以需要的内存空间往往比较大。 4.深度优先搜索所求得的是仅仅是目前第一条从起点至目标节点的树枝路径,而不是所有通向目标节点的树枝节点的路径中最短的路径。 5.适用范围:适用于求解一条从初始节点至目标节点的可能路径的试题。若要存储所有解答路径,可以再建立其它空间,用来存储每个已求得的解。若要求得最优解,必须记下达到目前目标的路径和相应的路程值,并与前面已记录的值进行比较,保留其中最优解,等全部搜索完成后,把保留的最优解输出。 四、算法数据结构描述 深度优先搜索时,最关键的是结点扩展(OPEN)表的生成,它是一个栈,用于存放目前搜索到待扩展的结点,当结点到达深度界限或结点不能再扩展时,栈顶结点出栈,放入CLOSE表(存放已扩展节点),继续生成新的结点入栈OPEN 表,直到搜索到目标结点或OPEN栈空为止。 具体算法如下: ①把起始结点S放到非扩展结点OPEN表中(后进先出的堆栈),如果此结点为一目标结点,则得到一个解。 ②如果OPEN为一空表,则搜索失败退出。 ③取OPEN表最前面(栈顶)的结点,并把它放入CLOSED的扩展结点表中,并冠以顺序编号n。 ④如果结点n的深度等于最大深度,则转向2。 ⑤否则,扩展结点n,产生其全部子结点,把它们放入OPEN表的前头(入栈),并配上指向n的返回指针;如果没有后裔,则转向2。 ⑥如果后继结点中有任一个为目标结点,则求得一个解,成功退出;否则,转向2。

智能科学与技术专业培养方案及教学计划10级

信息科学与工程学院 智能科学与技术专业本科培养方案 一、培养目标 培养具备良好的科学素质,系统地掌握智能科学与技术的基本理论、基本知识和基本技能与方法,在智能科学与工程领域具有较强的知识获取能力、知识工程能力和创新创业能力的宽口径复合型高质量以及具有计算机、自动化、电子等交叉学科基础的人才,能在企业、事业、科研部门、教育单位和行政部门等单位从事智能系统、智能信息处理、智能行为决策等方面的科学研究、开发设计、工程应用、决策管理和教学等工作。 二、培养要求 本专业学生主要学习智能科学技术及相关信息科学技术的基础理论和专业知识。学生接受从事科学研究、工程技术开发、教学、管理及应用等方面所需要的基本训练,具备从事智能系统、智能信息处理、智能行为决策等方面研究、开发、应用及管理的综合能力。 毕业生应获得以下几个方面的知识和能力: 1、具有较扎实的自然科学基础,较好的人文社会科学基础和外语能力。 2、系统掌握本专业领域必需的科学技术基础理论知识,主要包括电路理论、模拟电子技术、数字电子技术、自动控制理论、微机原理与接口技术、离散数学、数据结构、脑与认知科学基础、人工智能、智能控制、机器人学导论、计算机仿真技术、数据库技术、网络工程等。 3、较好地掌握智能系统、智能信息处理等方面的专业知识,具有本专业领域1~2个方向的专业知识和技能,了解本专业学科的前沿和发展趋势,获得较好的工程实践训练,具有熟练的计算机应用能力。 4、具有本专业的科学研究、科技开发和组织决策管理能力,具有较强的工作适应能力。 5、能将智能技术与计算机技术、信息处理、控制技术有机结合应用于工程实践,具有创新意识和一定的创新能力。 三、主干学科 控制科学与控制工程、电气工程、计算机科学与技术 四、主要课程和特色课程 本专业主干课程主要包括:电路理论、模拟电子技术、数字电子技术、自动控制理论、微机原理与接口技术、离散数学、数据结构、脑与认知科学基础、人工智能、智能控制、机器人学导论、计算机仿真技术、Web程序设计、语音信号处理、决策支持技术、运筹学、虚拟现实与智能游戏、智能优化算法及其应用、生物特征识别等。

人工智能遗传算法实验报告

人工智能实验报告 学号: 姓名: 实验名称:遗传算法 实验日期:2016.1.5

【实验名称】遗传算法 【实验目的】 掌握遗传算法的基本原理,熟悉遗传算法的运行机制,学会用遗传算法来求解问题。 【实验原理】 遗传算法( Genetic Algorithm )是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来 越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学 的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 遗传算法程度流程图为:

【实验名称】遗传算法 【实验目的】 掌握遗传算法的基本原理,熟悉遗传算法的运行机制,学会用遗传算法来求解问题。 【实验原理】 遗传算法( Genetic Algorithm )是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来 越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学 的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 遗传算法程度流程图为:

人工智能课程报告封面

物理与电子工程学院 《人工智能》 课程设计报告 课题名称 专业 班级 学生姓名 学号 指导教师崔明月 成绩 2014年6月18日

题目 摘要: 关键词: 1.引言 正文 结论 参考文献:(文献10篇以上,参考下面的文献列写格式) [1]徐国华,谭民.移动机器人的发展现状及其趋势[J]. 机器人技术与应用, 2001(3):7~14. [2]H.F Durrant Whyte. Where am I? A tutorial on mobile vehicle localization. Industrial Robot, 1994, 21(2):11~16. [3]彭文刚,彭宝林,柳胜.移动机器人导航系统的研究现状与发展趋势[J]. 机电信 息, 2009(36):69~70. [4]高峰, 黄玉美, 林义忠等.自主移动机器人的模糊导航[J]. 西安理工大学 报,2005,21(4):337~341. 一、报告内容: 就下面的一方面或几方面的内容写一篇报告综述,包括目的、意义,基本概念、定义,主要的控制方法以及结果分析等,最后给出小节及自己的学习心得,要有图表,严禁抄袭,如若发现本课程按零分计! 1.模糊控制系统设计 2.神经网络控制系统 3.遗传算法在系统辨识、控制中的应用 4.模糊控制综述 5.神经网络控制综述 注:题目自拟,也可以自选题目。

二、格式与字体要求: 正文开头的每段开头空2个字符,正文小四号字,22磅行距。大小标题加黑,标题后空一行,一级标题三号字,二级标题四号字,三级标题小四号字(不按格式要求做扣分处理)。 封面见前面示例,单面打印。

人工智能课程设计(五子棋)解读

《人工智能导论》课程报告 课题名称:五子棋 姓名: X X 学号:114304xxxx 课题负责人名(学号): X X114304xxxx 同组成员名单(学号、角色): x x1143041325 XXX1143041036 指导教师:张建州 评阅成绩: 评阅意见: 提交报告时间:2014年 1 月 9 日

五子棋 计算机科学与技术专业 学生XXX 指导老师张建州 [摘要]人类之所以不断在进步,是因为我们人类一直不断的在思考,五子棋游戏程序的开发符合人类进步也是促进人类进步的一大动力之一。五子棋游戏程序让人们方便快捷的可以下五子棋,让人们在何时都能通过下棋来提高逻辑思维能力,同时也培养儿童的兴趣以及爱好,让孩子更加聪明。 同时,五子棋游戏程序的开发也使得五子棋这个游戏得到了广泛的推广,让世界各地的人们知道五子棋,玩上五子棋,这已经不是局限。五子棋游戏程序使得越来越多的人喜欢上了五子棋,热爱下五子棋,它是具有很好的带动性的。 关键词:五子棋进步思考

目录 《人工智能导论》课程报告 0 1 引言 (3) 1.1五子棋简介 (3) 1.2 五子棋游戏的发展与现状 (3) 2 研究问题描述 (4) 2.1 问题定义 (4) 2.2 可行性研究 (4) 2.3 需求分析 (5) 2.4 总体设计 (5) 2.5 详细设计 (6) 2.6编码和单元测试 (6) 3 人工智能技术 (6) 4 算法设计 (7) 4.1α-β剪枝算法 (7) 4.2极大极小树 (7) 4.3深度优先搜索(DFS) (8) 4.4静态估值函数 (9) 5 软件设计和实现 (9) 5.1 数据结构定义 (9) 5.2 程序流程图 (17) 6 性能测试 (18) 6.1 程序执行结果 (18) 7 总结 (21) 参考文献 (21)

人工智能结课报告

结课报告 课程名称:人工智能 学院:信息工程与自动化学院 专业:物联网工程 年级:2013级 学号:201310107125 学生姓名:王子龙 指导教师:吴霖 日期:2014年12月28日 教务处制

智能家居 摘要 智能家居是在互联网影响之下物联化的体现。智能家居通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。与普通家居相比,智能家居不仅具有传统的居住功能,兼备建筑、网络通信、信息家电、设备自动化,提供全方位的信息交互功能,甚至为各种能源费用节约资金。 智能家居的概念起源很早,但一直未有具体的建筑案例出现,直到1984年美国联合科技公司(United Technologies Building System)将建筑设备信息化、整合化概念应用于美国康涅狄格州(Connecticut)哈特佛市(Hartford)的CityPlaceBuilding时,才出现了首栋的“智能型建筑”,从此揭开了全世界争相建造智能家居派的序幕。 应用价值 随着物联网技术的日益发展,依照物联网技术发展的新兴产业智能家居以住宅为平台,通过物联网、云计算、无线通讯等新技术,将照明、门窗、家电、安防等家居设施集,从而构建高效的住宅设施家庭日程事务的管理系统,并为用户营造安全、健康、舒适的家居生活环境。家居与人们的生活息息相关,所以比传统家居更具优势的智能家居也为人所称道,走进千家万户也是势在必行。 难点 1、用户搞不懂智能家居的概念 2、“智能家居产品太贵了” 3、安全隐患 收获 近年来智能家居行业发展迅速,所以对于行业标准的制定非常重要,1979年,美国的斯坦福研究所提出了将家电及电气设备的控制线集成在一起的家庭总线(HOMEBUS), 并成立了相应的研究会进行研究,1983年美国电子工业协会组织专门机构开始制定家庭电气设计标准,并于1988年编制了第一个适用于家庭住宅的电气设计标准,即:《家庭自动化系统与通讯标准》,也有称之为家庭总线系统标准(HBS,Home Bus System)。在其制定的设计规范与标准中,智能住宅的电气设计要求必须满足以下三个条件,即: 1.具有家庭总线系统; 2.通过家庭总线系统提供各种服务功能; 3.能和住宅以外的外部世界相连接。 物联传感技术是全球第一个利用物联网来控制灯饰及电子电器产品(我们通称为zigbee产品),并将其作为智能家居主流产品走向了商业化。ZigBee最初预计的应用领域主要包括消费电子、能源管理、卫生保健、家庭自动化、建筑自动化和工业自动化。这种技术低功耗、

人工智能实验报告

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

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体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():,最后就是实现测试。

人工智能实习报告(--)

人工智能 课 程 设 计 报 告 姓名: 班级:191092 学号:2009100 指导老师: 2011年10月

序言 经过近一周的奋战,我终于初步实现了我的“四子棋”游戏。起初,我选择这个游戏是因为它很独特、少有人做,而且我想当然的认为四子比五子少一子,实现起来应该相对简单,但是面对一个个头疼的错误,遭受一次又一次失败的打击,我才发现自己想错了,四子棋人机对战比五子棋更让人纠结。 暑期我和班上两名同学xxx,xx一起完成过五子棋和黑白棋的编程。当时,五子棋我们是参照别人的模板完成的,黑白棋是在透彻研究过五子棋的基础上不断讨论、优化算法最终完成的。现在,他们一个继续做五子棋一个做黑白棋,将其完善作为人工智能的课程设计课题。我只得另陌新路,关注起了四子棋。 界面的搭建以及二人对战的实现只用了我两个晚上的时间,当然我的界面构建的相对简单。二人对战实现关键一步就是输赢判断函数judge()的编写。人机对战整整折腾了自己四五天的时间,我本来对于博弈过程中alpha—beta剪枝算法很理解的,但是具体要自己编程实现时我觉得自己只了解到其皮毛。所以,我不断看五子棋程序、单步跟踪、寻问同学,终于算是把其递归和剪枝过程搞得明明白白。 花了两天完成了alpha—beta剪枝算法我本以为核心都解决了,却不知更让人头疼的是评估函数的确定还有统计当前棋局状况的函数Calculate()的编写。难题终究是可以被客服的,我花了整整一天写完了我的Calculate()函数。 直至10月27日上午我依然没有让机器足够智能,或者说它目前很呆板。我一直在找原因,自己的模块设计算法思路都是对的,请教过同学她也觉得设计思路没有错。现在,我整体的想了一下,觉得应该是我的静态评估函数设计的不够合理,或者说目前的设计方法对于五子棋很合理但是对于规则不同的四子棋就可能存在缺陷。既然目前时间不允许没能实现足够智能,那就只能把这粗略的程序提交。我一定会继续完善、改进算法,重新设计评估函数,争取让机器达到理想的“智能”。

人工智能实验报告材料

标准文档 《人工智能》课外实践报告 项目名称:剪枝法五子棋 所在班级: 2013级软件工程一班 小组成员:李晓宁、白明辉、刘小晶、袁成飞、程小兰、李喜林 指导教师:薛笑荣 起止时间: 2016-5-10——2016-6-18

项目基本信息项目名称五子棋 项目简介 智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能和计算机进行对弈。这个项目我们实现了当人点击“开始”按钮时,开始下棋,当人的棋子落时,计算机会根据算法进行最佳路径计算,然后落子下棋。任何一方赢了都会弹出哪方赢了。然后单击重新开始。 任务分工李晓宁 130904021 白明辉 130904001:负责界面实现和估值函数设计文档整理 刘小晶 130904032 袁成飞 130904051:负责极小极大值算法的设计与实现 李喜林 130904019 程小兰 130904004:负责αβ剪枝法的设计与实现 一、系统分析 1.1背景

1.1.1 设计背景 智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能和计算机进行对弈。能使人们在与电脑进行对弈的过程中学习五子棋,陶冶情操。并且推进人们对AI的关注和兴趣。 1.1.2可行性分析 通过研究,本游戏的可行性有以下三方面作保障 (1)技术可行性 本游戏采用Windows xp等等系统作为操作平台,使用人工智能进行算法设计,利用剪枝法进行编写,大大减少了内存容量,而且不用使用数据库,便可操作,方便可行,因此在技术上是可行的。 (2)经济可行性 开发软件:SublimText (3)操作可行性 该游戏运行所需配置低、用户操作界面友好,具有较强的操作可行性。 1.2数据需求 五子棋需要设计如下的数据字段和数据表: 1.2.1 估值函数:

相关文档
相关文档 最新文档