人工智能实验报告知识表示方法及应用文档格式.docx

上传人:b****6 文档编号:22030427 上传时间:2023-02-02 格式:DOCX 页数:12 大小:522.05KB
下载 相关 举报
人工智能实验报告知识表示方法及应用文档格式.docx_第1页
第1页 / 共12页
人工智能实验报告知识表示方法及应用文档格式.docx_第2页
第2页 / 共12页
人工智能实验报告知识表示方法及应用文档格式.docx_第3页
第3页 / 共12页
人工智能实验报告知识表示方法及应用文档格式.docx_第4页
第4页 / 共12页
人工智能实验报告知识表示方法及应用文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

人工智能实验报告知识表示方法及应用文档格式.docx

《人工智能实验报告知识表示方法及应用文档格式.docx》由会员分享,可在线阅读,更多相关《人工智能实验报告知识表示方法及应用文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

人工智能实验报告知识表示方法及应用文档格式.docx

110->

211->

010->

021->

000

4.其中:

X1表示起始岸上的牧师人数;

X2表示起始岸上的野人人数;

X3表示小船现在位置(1表示起始岸,0表示目的岸)。

5.要求:

写出算法的设计思想和源程序,并以图形用户界面实现人机交互,进行输入和输出结果,如:

Pleaseinputn:

2Pleaseinputc:

2

SuccessedorFailed?

:

Successed

OptimalProcedure:

221->

3.算法设计

packagecn.xiaoyangege.mvc.yerenguohe;

//CrossRiverQuestion.java

importjava.util.ArrayList;

importjava.util.List;

importjava.util.Scanner;

publicclassCrossRiverQuestion{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

intn=0;

intc=0;

Stringns=null;

Stringcs=null;

booleanflag;

do{

flag=false;

System.out.print("

"

);

ns=scanner.nextLine();

Pleaseinputc:

cs=scanner.nextLine();

try{

n=Integer.(ns);

c=Integer.(cs);

}catch(NumberFormatExceptione){

System.out.println("

输入不合法。

flag=true;

continue;

}

if(!

flag&

&

(n<

0||c<

0)){

}while(flag);

scanner.close();

CrossRiverQuestionq=newCrossRiverQuestion(n,c);

q.solveQuestion();

}

privateintpeoNum;

privateintsavageNum;

privateList<

Node>

resultList=newArrayList<

();

publicList<

solveQuestion(){

Noden=newNode(peoNum,savageNum,0,0,0,newArrayList<

Integer>

(),

0,0);

booleandfsResult=dfs(n);

System.out.print("

SucceedorFailed?

"

if(dfsResult){

System.out.println("

Succeed."

resultList.add(0,n);

for(Nodenode:

resultList){

System.out.print(node.getLeftPeo()+"

+node.getLeftSavage()

+"

+(1-node.getCURR_STATE())+"

-->

End"

returnresultList;

}else{

Failed."

}

returnnull;

publicCrossRiverQuestion(intpeoNum,intsavageNum){

super();

this.peoNum=peoNum;

this.savageNum=savageNum;

privatebooleandfs(Noden){

if(n.hasVisited()){

returnfalse;

n.addCheckSum();

if(n.getLeftPeo()==0&

n.getLeftSavage()==0){

returntrue;

if(n.getLeftPeo()<

0||n.getRightPeo()<

0||n.getLeftSavage()<

0

||n.getRightSavage()<

0){

n.getLeftSavage()&

n.getLeftPeo()>

if(n.getRightPeo()<

n.getRightSavage()&

n.getRightPeo()>

if(n.getCURR_STATE()==n.getStateBoatLeft()){

Noden1=newNode(n.getLeftPeo()-1,n.getLeftSavage()-1,

n.getRightPeo()+1,n.getRightSavage()+1,

n.getStateBoatRight(),n.getNodesCheckSum(),1,1);

if(dfs(n1)){

resultList.add(0,n1);

returntrue;

Noden4=newNode(n.getLeftPeo()-2,n.getLeftSavage(),

n.getRightPeo()+2,n.getRightSavage(),

n.getStateBoatRight(),n.getNodesCheckSum(),2,0);

if(dfs(n4)){

resultList.add(0,n4);

Noden5=newNode(n.getLeftPeo(),n.getLeftSavage()-2,

n.getRightPeo(),n.getRightSavage()+2,

n.getStateBoatRight(),n.getNodesCheckSum(),0,2);

if(dfs(n5)){

resultList.add(0,n5);

Noden6=newNode(n.getLeftPeo(),n.getLeftSavage()+1,

n.getRightPeo(),n.getRightSavage()-1,

n.getStateBoatLeft(),n.getNodesCheckSum(),0,1);

if(dfs(n6)){

resultList.add(0,n6);

Noden7=newNode(n.getLeftPeo()+1,n.getLeftSavage(),

n.getRightPeo()-1,n.getRightSavage(),

n.getStateBoatLeft(),n.getNodesCheckSum(),1,0);

if(dfs(n7)){

resultList.add(0,n7);

Noden1=newNode(n.getLeftPeo()+1,n.getLeftSavage()+1,

n.getRightPeo()-1,n.getRightSavage()-1,

n.getStateBoatLeft(),n.getNodesCheckSum(),1,1);

Noden4=newNode(n.getLeftPeo()+2,n.getLeftSavage(),

n.getRightPeo()-2,n.getRightSavage(),

n.getStateBoatLeft(),n.getNodesCheckSum(),2,0);

Noden5=newNode(n.getLeftPeo(),n.getLeftSavage()+2,

n.getRightPeo(),n.getRightSavage()-2,

n.getStateBoatLeft(),n.getNodesCheckSum(),0,2);

returnfalse;

getResultList(){

returnresultList;

}

classNode{

nodesCheckSum=newArrayList<

privateintleftPeo;

privateintrightPeo;

privateintleftSavage;

privateintrightSavage;

privateintCURR_STATE=0;

privateintonBoatPeoNum=0;

privateintonBoatSavageNum=0;

privatefinalintSTATE_BOAT_LEFT=0;

privatefinalintSTATE_BOAT_RIGHT=1;

publicNode(intleftPeo,intleftSavage,intrightPeo,intrightSavage,

intstate,List<

checkSumList,intonBoatPeoNum,

intonBoatSavageNum){

CURR_STATE=state;

this.leftPeo=leftPeo;

this.leftSavage=leftSavage;

this.rightPeo=rightPeo;

this.rightSavage=rightSavage;

nodesCheckSum.addAll(checkSumList);

this.onBoatPeoNum=onBoatPeoNum;

this.onBoatSavageNum=onBoatSavageNum;

publicintgetLeftPeo(){

returnleftPeo;

publicvoidsetLeftPeo(intleftPeo){

publicintgetRightPeo(){

returnrightPeo;

publicvoidsetRightPeo(intrightPeo){

publicintgetLeftSavage(){

returnleftSavage;

publicvoidsetLeftSavage(intleftSavage){

publicintgetRightSavage(){

returnrightSavage;

publicvoidsetRightSavage(intrightSavage){

@Override

publicStringtoString(){

returnleftPeo+"

"

+leftSavage+"

+rightPeo+"

+rightSavage

+"

+CURR_STATE;

publicintgetCURR_STATE(){

returnCURR_STATE;

publicvoidsetCURR_STATE(intcURR_STATE){

CURR_STATE=cURR_STATE;

publicintgetStateBoatLeft(){

returnSTATE_BOAT_LEFT;

publicintgetStateBoatRight(){

returnSTATE_BOAT_RIGHT;

publicintcalcCheckSum(){

return1*getCURR_STATE()+10*getLeftPeo()+100*getLeftSavage()

+1000*getRightPeo()+10000*getRightSavage();

publicvoidaddCheckSum(){

intcheckSum=calcCheckSum();

nodesCheckSum.add(checkSum);

publicbooleanhasVisited(){

intsum=calcCheckSum();

for(IntegercheckSum:

nodesCheckSum){

if(checkSum==sum){

getNodesCheckSum(){

returnnodesCheckSum;

publicintgetOnBoatPeoNum(){

returnonBoatPeoNum;

publicvoidsetOnBoatPeoNum(intonBoatPeoNum){

publicintgetOnBoatSavageNum(){

returnonBoatSavageNum;

publicvoidsetOnBoatSavageNum(intonBoatSavageNum){

4.程序调试

(实验数据记录——根据程序要求输入几组不同数据,记录程序运行结果,并分析结果,分析程序运行中出现的主要错误。

或对其他程序环境的使用情况的记录。

注:

必须认真书写)

错误:

当输入不合法时,程序会抛出异常而终止运行。

于是改进程序如下:

5.讨论

(通过实验的一些体会、学会的知识和技能等)

(1)若代码所要实现的功能较多或者程序较为复杂,可先设计好程序的整体框架,画出流程图,然后依次编写代码分别实现上述功能,最后将各部分代码按照顺序结合起来,对各个参数稍加调试,便可得到清晰正确的程序。

(2)在用到循环或者递归等算法时,很容易出现对某一界限界定不明导致程序无法正常运行,而且这些疏漏之处往往是简短几步中不容易发现的,这就需要细心、耐心地梳理清楚各条脉络,找出问题所在。

(3)在编写程序时,应在方便的情况下尽可能使用同一种变量进行各步的运算,减少不必要的变量定义,以免造成代码过于混乱。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1