人工智能课程设计报告八皇后问题与罗马尼亚问题.docx
- 文档编号:1000806
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:35
- 大小:192.40KB
人工智能课程设计报告八皇后问题与罗马尼亚问题.docx
《人工智能课程设计报告八皇后问题与罗马尼亚问题.docx》由会员分享,可在线阅读,更多相关《人工智能课程设计报告八皇后问题与罗马尼亚问题.docx(35页珍藏版)》请在冰豆网上搜索。
人工智能课程设计报告八皇后问题与罗马尼亚问题
人工智能课程设计报告
学号:
20091000608
姓名:
王沙沙
班级:
191091
指导老师:
赵老师
2011年10月14
1•N皇后问题1
需求分析,设计1••…
设计表示1
运行结果2……
用户手册即测试数据2…
结论5……
主要算法代码5••…
2罗马尼亚问题9
需求分析,设计9•…
设计表示,详细设计9…
用户手册11••…
运行结果11••…
12
主要算法代码
3.实习心得
21
1N皇后问题
1.问题描述、需求分析
在N*N的棋盘上分布N个皇后,其中N个皇后不能在同一行同一列,也不能出现在同一对角线上,此时N个皇后不会相互攻击。
程序需能手动输入皇后个数,并分别采用回溯法、爬山法、遗传法得出皇后的分布情况,输出皇后的位置即棋盘。
2.设计思想
2.1形式化
N个皇后的位置可用一个N维数组表示,如921543,意思是第
一个皇后在第一列的第9行。
2.2程序模块
CreatIndividual()函数用于产生一组表示皇后不在同一行也不再同
一列的的一位数组,即产生一组互不相等的0~N之间的整数,便于快速求解。
IsLegal()函数用于判断新放置的皇后是否合法,在回溯法中用到。
AttackQueenNum()用于计算整个棋盘的攻击皇后个数,相当于一
个评价函数,在爬山法和遗传法中用到;
Find()回溯法求解函数
ClimbHill()爬山法求解函数;
GA()遗传算法求解函数;
(1)函数调用关系图如下:
(2)函数接口规格说明:
下图中的箭头指向表示为被指向函数所用
2.3详细设计
a:
Creatlndividual(int*A,intQueenNum):
以当时时间为种子循环产生
随机数,为了使得产生的随机数都不想等,设计集合S[N]并初始化为0,表示还没有产生一个皇后,当产生的皇后不在S[N]中即S[N]!
=1时
将S[n]置为1,接着产生下一个皇后,如此循环便产生一组互不相等的值。
循环调用IsLegal()函数对
b:
lsLegal(int*A,intt)此函数用于判断第t列的皇后是否合法,即有没有皇后在同一行、同一列,同一对角线上,并返回true或者false。
c:
AttackQueenNum(int*A,intQueenNum)
攻击数进行累加并返回其值,此函数作为棋盘的评价函数。
d:
Find(int*A,intk,intQueenNum,longbeginTime)回溯法求解,因为
回溯法的每一层都是for循环,所以不能单纯的用break语句进行控制,因为即使当前层循环停止了,程序还会继续执行上一层的循环,所以将起始时间作为参数进行传递,以便求出算法执行时间,然后用exit(0)语句终止程序,所以要将回溯法放在其它两个算法的后面执行。
e:
ClimbHill(int*A,intQueenNum):
由于在产生一个棋盘个体的时候所有的皇后就不在同一行同一列,所以在爬山法中只对棋盘的列进行交换,这样即使再怎么交换所有的皇后还是不在同一行同一列,但在交换的时候需要调用AttackQueenNum()函数进行棋盘的评价,如果交换前的攻击数大于交换后的攻击数则进行交换,否则与下一列进行交换比较,如此循环直到找出解。
f:
GA()
3.用户手册
运行程序,输入皇后个数N,各种算法得到的皇后分布情况、耗时自动显示;
4.测试数据及测试结果
分别测试4,20,30,50皇后,测试结果如下:
程序运行结果:
4皇后运行结果
I',F;\A^WrJ1R®\Ct-bug\QueenNum.rxr
■阜后^问号帀・暂・■・gM*
审输入皇启的个數2冷丄』….QueenNum=4
00tt0
ft400
0O0H
肥山法4皇启耗时:
6
0*00
000tt
ft0□o
0OIto
林茸法4皇后耗时;5
0otto
noo□
0oott
0too
F溯法却皇后耗时:
?
Pi*escainy] ns ns ns inua 20皇后运行结果如下 Il OO0OOO0QOQ00000同算迭2B主后廷时. 0O 00N Nmu 0 0 %. 0 t) oooo 0 □ 0 o 0 oooooooao o 0 0 0 o oooooott o 回欄轶20皐后耗时,proc■琴anijkeyrocontinue 4? oo ■■IS 0 □ 0oo 0Dna 0 0o 0 □ 0o 0 ooooo 0 □ 0 o o 0a ooooo 0 0 0 0 0 0 0000 □0o0000 oooO ooo0o otto 30皇后运行结果如下: "F—宜皇官l^^\0ebug\Queen^Jum.exe 请输入呈后的个数: QueenNufn=39 0 0 0 0 0 0 0 0 n 0 tt o 0 0 00 0 0 0 O' 0 o o 0 0 O o o 0 0 0 o 0 □ o o 0 0 0 0 0 c 0 0 0 0 0 0 0 n 0 0 0 0 □ 0 0 0 0 0 0 Q 00 00 0 0 町 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 tt 0 0 0 0 0 a o o 0 0 □ o o 6 0 0 0 0 0 0 o o 11 0 6 0 0 0 0 0 0 0 0 a 0 0 o o 0 0 0 o o 0 0 0 o 0 0 0 o o c 0 0 tt o 0 0 0 0 0 0 0 t 0 o o c 0 0 o o 0 0 0 o 0 0 □ o o 0 0 0 0 o 0 0 0 0 0 0 0 Q a u 0 c Q u n o 0 0 D o c 0 0 o u Q 0 0 0 0 0 0 0 0 0 Q 0 0 0 D D 0 0 0 0 0 0 0 0 o # c 0 j o o 0 0 0 o 0 0 0 o 0 o 0 0 0 0 0 0 0 0 0 0 0 o o c G 0 o o 0 0 0 o 0 0 0 o 0 0 0 0 0 0 n 0 0 0 0 0 0 o o 0 0 1J o o 0 0 □ o 0 0 0 o o o u 0 0 0 0 0 0 0 0 (J 0 o 0 0 0 0 D 0 0 0 0 0甘 0 0 0 0 0 00rc0 000 0 tf 胆山祛3W呈后耗日h 00000 00DO0 00000 00OO0 000O0 0t>000 0 0 0 0 Ci 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tt 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 tt 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a 0 0 0 0 c 0 0 0 0 0 0 0 0 t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n 0 0 0 0 0 0 tt 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 D 0 0 b 0 0 0 it 0 0 d 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tt 0 0 0 0 0 0 0 0 0 0 o 0 fl 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tt o o o 0 Q Q 0 o o o 0 0 0 0 0 0 0 0 0 0 0 0 o o 0 0 0 0 u u u o o 0 u V R 打 0 0 u Q 0 □ 0 0 u 0 u 0 □ u 0 0 0 c 0 c 0 (J 0 0 0 c I) 0 0 0 0 0 0 u 0 a 0 0 0 0 0 0 □ 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 D 0 0 0 0 D 0 0 0 0 0 0 tt 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 D 0 0 0 0 u 0 0 0 0 Q 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 tt 0 0 0 0 0 0 0 0 0 0 0 Q 0 0 0 0 0 c 打 0 Ci 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 n a 廿 o o Cl ft 0 n 0 0 0 0 0 0 0 0 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 课程设计 报告 皇后 问题 罗马尼亚