- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
人工智能实验报告
班级:计研-12班
学号:2012312120105
姓名:孔德星
实验二 知识表示方法
1.实验目的
了解
(2)掌握的分析方法。实验2个实验内容可以选择1个实现)
(1)梵塔问题实验。熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法;
(2)状态空间法实验。从前有一条河,河的左岸有m个传教士、m个野人和一艘最多可乘n人的小船。约定左岸,右岸和船上或者没有传教士,或者野人数量少于传教士,否则野人会把传教士吃掉。搜索一条可使所有的野人和传教士安全渡到右岸的方案。
3.实验报告要求简述实验原理及m/2。此种情况下,先把所有的野人度过去,每次返回一个野人,当出现(m,0,0)情况时,返回m-n个野人(若m==n,返回1个野人)。然后渡n个传教士,此时野人==传教士,然后返回一个野人和传教士,再开始最大限度的渡传教士,每次返回一个野人,最终直到a==b==c==0;
B、n=3n=m/2 || n==1,显然此时无解;
C、n=4n=m/2,此时只能每次传n/2个传教士和野人,每次返回一个野人和传教士,直到最终结果。
程序流程图:
(2)源程序清单:
本程序用C++语言编写。
#include iostream
using namespace std;
bool flag = false; //标记是否有解
bool af = false; //标记a是否为0
bool bf = false; //当b变为0后赋值为true;
bool ef = false; //当a==b后赋值为true
bool f = false; //判断n是否大于m/2
int m;//传教士野人的个数
int n;//船一次能装载的人数
void mc(int a,int b,int c);
int main()
{
cout传教士与野人过河问题。\n假设最初时传教士与野人在河的右岸。\n;
cout请输入传教士野人的个数:\n;
cinm;
cout请输入船一次能装载的人数: \n;
cinn;
cout右岸传教士人数\t右岸野人个数\t船的位置(1.右岸 0左岸)endl;
if((m=3 n=m/2) || n==1) //此种情况无解
{coutNo solution!\n;
system(pause);
return 0; }
if(n m/2)
f = true;
mc(m,m,1);
if(flag == true){ coutSuccess!\n; }
else{ coutNo solution!\n; }
system(pause);
return 0;
}
void mc(int a,int b,int c)
{
if(flag==true) return;
if(c == 1) {
cout\ta\t\tb\t\tc\t\n;
if(f==true) //如果nm/2
{
if(bf!=true) //b未达到过0
{
if(a+b=n) //如果a+b=n,完全渡过
mc(0,0,1-c); //递归
else
{
for(int j = n;j = 0;j--)
{
if(b = j)
{
mc(a,b-j,1-c); //递归
if(flag==true)
return;
}
}
}
}
else if(ef!=true af==false)
{
for(int i = n;i=0;i--)
{
if(a=i)
{
mc(a-i,b,1-c); //递归
if(flag==true) return;
}
}
}
if(ef == true af==false)
{
if(a=n)
mc(a-n,b,1-c); //递归
else if(a+bn)
mc(0,0,1-c);
else
mc(0,b-(n-a),1-c);
}
if(af==true)
{ if(b=n) mc(a,b-n,1-c); //递归
else mc(a,0,1-c);
您可能关注的文档
- 全技术信息系统安全等级保护指南_1.doc
- 人工智能AI-111.ppt
- 人工智能AI-112.ppt
- 人工智能复习要点d.doc
- 人工智能概论实验指导2.doc
- 人工智能原理及其应用——习题答案.doc
- 人工智能原理与方法.ppt
- 人工智能知识表示与推理博弈树搜索.ppt
- 人工智能总习题.doc
- 软件体系结构(微缩).doc
- 2025年陕西省延安市延长县某国企外包岗位招聘10人笔试备考题库及参考答案详解一套.docx
- 2025年陕西省延安市志丹县某国企外包岗位招聘10人笔试备考题库及完整答案详解1套.docx
- 2025年陕西省延安市延长县某国企外包岗位招聘10人笔试备考题库参考答案详解.docx
- 2025年陕西省延安市延长县某国企外包岗位招聘10人笔试备考题库及参考答案详解1套.docx
- 2025年陕西省延安市延川县某国企外包岗位招聘10人笔试备考题库含答案详解.docx
- 2025年陕西省延安市志丹县某国企外包岗位招聘10人笔试备考题库参考答案详解.docx
- 2025年陕西省延安市延长县某国企外包岗位招聘10人笔试备考题库及参考答案详解.docx
- 2025年陕西省延安市志丹县某国企外包岗位招聘10人笔试备考题库及参考答案详解.docx
- 2025年陕西省延安市延川县某国企外包岗位招聘10人笔试备考题库及参考答案详解.docx
- 平原区井工煤矿土地复垦与生态修复评价技术规程.docx
文档评论(0)