




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 知识表示方法1实验目的(1)了解知识表示相关技术;(2)掌握问题规约法或者状态空间法的分析方法。2实验内容(2个实验内容可以选择1个实现)(1)梵塔问题实验。熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法;(2)状态空间法实验。从前有一条河,河的左岸有m个传教士、m个野人和一艘最多可乘n人的小船。约定左岸,右岸和船上或者没有传教士,或者野人数量少于传教士,否则野人会把传教士吃掉。搜索一条可使所有的野人和传教士安全渡到右岸的方案。3实验报告要求(1)简述实验原理及方法,并请给出程序设计流程图。本次试验选择传教士过河问题,以状态空间法实现。解答步骤如下:(1) 设置状态变量并确定值域M为传教士人数,C 为野人人数,B为船数,要求M=C且M+C = 3,L表示左岸,R表示右岸。初始状态目标状态LRLRM30M03C30C03B10B01(2) 确定状态组,分别列出初始状态集和目标状态集用三元组来表示:(ML , CL , BL)(均为左岸状态)其中,BL 0 , 1 :(3 , 3 , 1) : (0 , 0 , 0)初始状态表示全部成员在河的的左岸;目标状态表示全部成员从河的左岸全部渡河完毕。(3) 定义并确定规则集合仍然以河的左岸为基点来考虑,把船从左岸划向右岸定义为Pij操作。其中,第一下标i表示船载的传教士数,第二下标j表示船载的食人者数;同理,从右岸将船划回左岸称之为Qij操作,下标的定义同前。则共有10种操作,操作集为 F=P01,P10,P11,P02,P20,Q01,Q10,Q11,Q02,Q20P10if ( ML ,CL , BL=1 ) then ( ML1 , CL , BL 1 ) P01if ( ML ,CL , BL=1 ) then ( ML , CL1 , BL 1 ) P11if ( ML ,CL , BL=1 ) then ( ML1 , CL1 , BL 1 ) P20if ( ML ,CL , BL=1 ) then ( ML2 , CL , BL 1 ) P02if ( ML ,CL , BL=1 ) then ( ML , CL2 , BL 1 ) Q10 if ( ML ,CL , BL=0 ) then ( ML+1 , CL , BL+1 ) Q01if ( ML ,CL , BL=0 ) then ( ML , CL+1 , BL +1 ) Q11if ( ML ,CL , BL=0 ) then ( ML+1 , CL +1, BL +1 ) Q20if ( ML ,CL , BL=0 ) then ( ML+2 , CL +2, BL +1 ) Q02if ( ML ,CL , BL=0 ) then ( ML , CL +2, BL +1 ) (4) 当状态数量不是很大时,画出合理的状态空间图 图1 状态空间图箭头旁边所标的数字表示了或操作的下标,即分别表示船载的传教士数和食人者数。接下来进行树的遍历,根据规则由根(初始状态)扩展出整颗树,检测每个结点的“可扩展标记”,为“-1”的即目标结点。由目标结点上溯出路径。(2)源程序清单:/关键代码#include #include #include using namespace std;typedef structint m;/表示传教士int c;/ 表示野人int b;/船状态MCNode;list fringe;/相当于队列vector closed;/closed表/判断是否是目标结点bool IsGoal(MCNode tNode)if(tNode.m=0&tNode.c=0&tNode.b=0)return true;elsereturn false;/判断是否是合法状态bool IsLegal(MCNode tNode)if(tNode.m=0&tNode.m=0&tNode.c=3)if(tNode.m=tNode.c)|(tNode.m=3)|(tNode.m=0)return true;elsereturn false;elsereturn false;bool operator=(MCNode m1,MCNode m2) /重载运算符,判断两结构体是否相等if(m1.m=m2.m&m1.c=m2.c&m1.b=m2.b)return true;elsereturn false;bool IsClosed(MCNode tNode) /判断是否已在closed表中int i;for(i=0;i!=closed.size();i+)if(tNode=closedi)return true;if(i=closed.size()return false;void ExpandNode(MCNode tNode,int b,list &fringe)MCNode node5;/应用5条规则集生成新结点if(b=1)for(int i=0;i5;i+)nodei.b=0;node0.m=tNode.m-1;node0.c=tNode.c;node1.m=tNode.m;node1.c=tNode.c-1;node2.m=tNode.m-1;node2.c=tNode.c-1;node3.m=tNode.m-2;node3.c=tNode.c;node4.m=tNode.m;node4.c=tNode.c-2;elsefor(int i=0;i5;i+)nodei.b=1;node0.m=tNode.m+1;node0.c=tNode.c;node1.m=tNode.m;node1.c=tNode.c+1;node2.m=tNode.m+1;node2.c=tNode.c+1;node3.m=tNode.m+2;node3.c=tNode.c;node4.m=tNode.m;node4.c=tNode.c+2;for(int i=0;i5;i+)if(IsLegal(nodei)&!IsClosed(nodei)fringe.push_front(nodei);/队列后进先出,深度优先搜索,最后得到一条最小解序列/fringe.push_back(nodei);/队列后进后出,广度优先搜索,最后得到最小解序列状态空间图void main()MCNode InitNode,unode;InitNode.m=3;InitNode.c=3;InitNode.b=1;fringe.push_back(InitNode);/将初始状态空间加入到队列while(!fringe.empty()unode=fringe.front();fringe.pop_front();if(IsGoal(unode)closed.push_back(unode);for(int i=0;i!=closed.size();i+)coutclos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农资公司购销合同(标准版)
- 二手车买卖交易合同(标准版)
- 2025年行政组长考试试题及答案
- 2025年融合教育考试试题及答案
- 2025年铁路安全教育培训考试试题及答案
- 黑龙江省牡丹江市职业卫生技术服务专业技术人员考试(放射卫生检测与评价)模拟题及答案(2025年)
- 2025年中医确有专长和出师考核(中医医师资格考试)历届真题及答案清远
- 浙江省2025年高级经济师考试(高级经济实务财政税收)能力提高训练试题库及答案
- 2024年地下智能输电系统投资申请报告代可行性研究报告
- 2025企业税法试题及答案
- 教师晋升答辩常见问题汇编
- 新加坡安全培训题库及答案解析
- (人教A版)选择性必修一数学高二上册 第一章 空间向量与立体几何(A卷·知识通关练+B卷提升练习)(原卷版)
- 2025煤矿安全规程解读
- 初级消防员培训课程教学大纲
- 2025-2026学年北师大版数学小学三年级上册(全册)教案设计及教学计划
- 2025年“学宪法讲宪法”主题活动知识竞赛题库附答案
- 2025年党纪法规知识测试题(含答案)
- 护理伦理与法律
- 网赌网贷专题教育
- 物业出纳培训课件内容
评论
0/150
提交评论