欢迎来到天天文库
浏览记录
ID:55514477
大小:52.00 KB
页数:23页
时间:2020-05-15
《实验一 知表示方法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一:知识表示方法一、实验目的状态空间表示法是人工智能领域最基本的知识表示方法之一,也是进一步学习状态空间搜索策略的基础,本实验通过牧师与野人渡河的问题,强化学生对知识表示的了解和应用,为人工智能后续环节的课程奠定基础。二、问题描述有n个牧师和n个野人准备渡河,但只有一条能容纳c个人的小船,为了防止野人侵犯牧师,要求无论在何处,牧师的人数不得少于野人的人数(除非牧师人数为0),且假定野人与牧师都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出小船来回次数最少的最佳方案。三、基本要求输入:牧师人数(即野人人数):n;小
2、船一次最多载人量:c。输出:若问题无解,则显示Failed,否则,显示Successed输出一组最佳方案。用三元组(X1,X2,X3)表示渡河过程中的状态。并用箭头连接相邻状态以表示迁移过程:初始状态->中间状态->目标状态。例:当输入n=2,c=2时,输出:221->110->211->010->021->000其中:X1表示起始岸上的牧师人数;X2表示起始岸上的野人人数;X3表示小船现在位置(1表示起始岸,0表示目的岸)。要求:写出算法的设计思想和源程序,并以图形用户界面实现人机交互,进行输入和输出结果,如:Pleasein
3、putn:2Pleaseinputc:2SuccessedorFailed?:SuccessedOptimalProcedure:221->110->211->010->021->000四、实验组织运行要求本实验采用集中授课形式,每个同学独立完成上述实验要求。五、实验条件每人一台计算机独立完成实验。#include#include#includetypedefstruct{ intxds;//xiudaoshi intyr;//yeren intcw;//chuanwei
4、}DataType;DataTypefa[50000];typedefstructnode{ DataTypedata; structnode*son; structnode*bro; structnode*par; structnode*next;}Ltable;voidLtableinit(Ltable**head)//初始化邻接表的操作{ *head=(Ltable*)malloc(sizeof(Ltable));//动态分配空间 (*head)->son=NULL; (*head)->bro=NULL; (*head)-
5、>par=NULL; (*head)->next=NULL;}voidinsertson(Ltable*head,DataTypex)//在邻接表中插入儿子结点的操作{ Ltable*q,*s; q=(Ltable*)malloc(sizeof(Ltable)); q->data=x; head->son=q; s=head; while(s->next!=NULL) s=s->next; q->par=head; q->son=NULL; q->bro=NULL; s->next=q; q->next=NULL;}voidin
6、sertbro(Ltable*head,DataTypex)//在邻接表中插入兄弟结点的操作,所有的兄弟结点都指向他们右边的结点;{ Ltable*q,*s; q=(Ltable*)malloc(sizeof(Ltable)); s=head->son; q->data=x; while(s->bro!=NULL) s=s->bro; s->bro=q; s->next=q; q->next=NULL; q->bro=NULL; q->par=head; q->son=NULL;} intfindfa(DataTypex,int
7、n)//生成在船上修道士仍安全的几种情况;{ inti=0,a,b,t=0; if(x.cw) { a=0;b=n-a; while(a+b>=1) { t++; while(b>=0) { fa[i].xds=a; fa[i].yr=b; i++; a++; b--; } a=0; b=n-a-t; } } else { a=1;b=0;t=0; while(a+b<=n) { t++; while(a>=0) { fa[i].xds=a*(-1); fa[i].yr=b*(-1); i++; a--; b++; }
8、a=fa[0].xds*(-1)+t; b=0; } } returni; } intjiancha(DataTypex,intn)//安全性检测,检查当前情况下,修道士是否安全{ if((x.xds>=x.yr
9、
10、x.xds==0)&&((n-x.xds)>=
此文档下载收益归作者所有