欢迎来到天天文库
浏览记录
ID:30820077
大小:92.16 KB
页数:8页
时间:2019-01-03
《宽度优先n皇后实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本科实验报告课程名称:人工智能实验项目:实验地点:实验室110专业班级:学号学生姓名:指导教师:2016年4月240太原理工大学学生实验报告学院名称计算机科学与技术专业班级计Z1303学号2013002007学生姓名宋纯显实验日期20160420成绩课程名称人工智能实验题目宽度优先n皇后一、实验目的和要求熟悉和掌握宽度优先搜索的定义和算法过程,并利用宽度优先算法求解n皇后问题,理解求解流程和搜索顺序。理解n皇后问题,并且用宽度优先算法求解。二、实验内容和原理用基于宽度优先搜索的方法求解n皇后问题。N皇后:在nXn格的国际象棋上摆放八个皇后,使
2、其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。宽度优先算法:宽度优先算法从一般的图搜索算法演变而来。在宽度优先算法中,每次选择深度最浅的结点优先拓展。将拓展的结点放在open表的最前边。三、主要仪器设备计算机,实验操作环境(jdk,eclipse),四、操作方法与实验步骤用基于宽度优先搜索的方法求解n皇后问题。N皇后:在nXn格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。宽度优先算法:宽度优先算法从一般的图搜索算法演变而来。在宽度优先算法
3、中,每次选择深度最浅的结点优先拓展。将拓展的结点放在open表的最前边。三、主要仪器设备计算机,实验操作环境(jdk,eclipse),四、操作方法与实验步骤1.先熟悉宽度优先算法的基本概念;2.熟悉n皇后问题的概念;3.用编程语言编程实现实验内容;4.java环境下的实验代码如下:代码:packageAI2;importjava4、een>opcn二newLinkedList();staticQucueclosed=newLinkedList();staticinta;publicstaticvoidmain(String]]args){//TODOAuto-generatedmethodstubintw二0;System,out.printin("请输入rT);Scannersc=newSearmer(System,in);a=sc.ncxtlnt();Queenql;ql=newQueen(0,null);open.offe5、r(ql);System,out.println(,z结果为:〃);while(!open.isEmpty()){Queenn=open,poll();//closed,offer(n);if(n.deep~a){//System.out.printIn(〃pk〃);for(inti二0;i6、rint!n(w);}staticvoidexpand(Queonq){for(inti=0;i7、8、(Math,abs(i-q・dcep+1)==Math.abs(q.path[9、i]一q.path[q.deep-1]))){returnfalse;}}returntrue;}}classQueen{intpath[];intdeep;Queen(intdeep,intpath[]){this・deep=deep;if(this,deep==0){this.path=newint[1]:}else{this.path=newint[deep];for(inti二0;i10、=i;}}五:实验结果与分析4皇后uterminated>AI2[JavaApplication]H:Ji请输入n结果为:1,3,0几28皇后Problems@J
4、een>opcn二newLinkedList();staticQucueclosed=newLinkedList();staticinta;publicstaticvoidmain(String]]args){//TODOAuto-generatedmethodstubintw二0;System,out.printin("请输入rT);Scannersc=newSearmer(System,in);a=sc.ncxtlnt();Queenql;ql=newQueen(0,null);open.offe
5、r(ql);System,out.println(,z结果为:〃);while(!open.isEmpty()){Queenn=open,poll();//closed,offer(n);if(n.deep~a){//System.out.printIn(〃pk〃);for(inti二0;i6、rint!n(w);}staticvoidexpand(Queonq){for(inti=0;i7、8、(Math,abs(i-q・dcep+1)==Math.abs(q.path[9、i]一q.path[q.deep-1]))){returnfalse;}}returntrue;}}classQueen{intpath[];intdeep;Queen(intdeep,intpath[]){this・deep=deep;if(this,deep==0){this.path=newint[1]:}else{this.path=newint[deep];for(inti二0;i10、=i;}}五:实验结果与分析4皇后uterminated>AI2[JavaApplication]H:Ji请输入n结果为:1,3,0几28皇后Problems@J
6、rint!n(w);}staticvoidexpand(Queonq){for(inti=0;i7、8、(Math,abs(i-q・dcep+1)==Math.abs(q.path[9、i]一q.path[q.deep-1]))){returnfalse;}}returntrue;}}classQueen{intpath[];intdeep;Queen(intdeep,intpath[]){this・deep=deep;if(this,deep==0){this.path=newint[1]:}else{this.path=newint[deep];for(inti二0;i10、=i;}}五:实验结果与分析4皇后uterminated>AI2[JavaApplication]H:Ji请输入n结果为:1,3,0几28皇后Problems@J
7、
8、(Math,abs(i-q・dcep+1)==Math.abs(q.path[
9、i]一q.path[q.deep-1]))){returnfalse;}}returntrue;}}classQueen{intpath[];intdeep;Queen(intdeep,intpath[]){this・deep=deep;if(this,deep==0){this.path=newint[1]:}else{this.path=newint[deep];for(inti二0;i10、=i;}}五:实验结果与分析4皇后uterminated>AI2[JavaApplication]H:Ji请输入n结果为:1,3,0几28皇后Problems@J
10、=i;}}五:实验结果与分析4皇后uterminated>AI2[JavaApplication]H:Ji请输入n结果为:1,3,0几28皇后Problems@J
此文档下载收益归作者所有