王浩算法c语言实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
王浩算法c语言实现

大连海事大学 人工智能基础课程实验报告 (2011-2012学年第一学期) 王浩算法 班 级: 学 号: 姓 名: 指导老师: 2011年 12月 7日 王浩算法的实现 一.实验内容 实现命题逻辑框架内的王浩算法。 1.将命题逻辑中的王浩算法推广至下述命题语言的情形之下: (1).命题变量符号:p1,p2,p3,…… (2).逻辑连接符:﹁,︿,﹀,-,…… (3).间隔符:(,)…… 2.在上述1中所定义的命题语言中实现王浩算法。 二.实验目的 熟练掌握命题逻辑中的王浩算法。 三.实验要求 1.实验题目必须由个人独立完成,允许自行参考相关文献资料,但严禁同学间相互拷贝和抄袭程序以及文档资料。实验结束后一周内上交实验报告和实验文档资料。 2.提交的文档资料包括设计文档和程序源代码。设计文档和程序源代码以书面文档方式提供(用A4纸打印),并提交电子文档备查。 四.数据结构 给定公式,例如:(p1-(q1-r1))-((p1-q1)-(p1-r1)) 函数inite主要作用是负责将符号初始化成树的结构。 函数clone复制一棵完全相同的符号树。 函数restruct查找所有,|, -等符号,并将其拆分成新形式:!,-符号。 函数searching王浩算法的主要函数。 函数show和output:显示符号串和推理过程。 五.实验结果 公式正确 公式错误 六.实验总结 公式不是恒真的时候,不一定是恒假的,王浩算法实质上是一个反向推理过程,它把给定的公式化成合取范式,然后通过判断每个子句是否恒真的来判定给定的公式是否是恒真的。所以,王浩算法不能说明公式恒假,只能说明不是恒真的。程序中的move函数十分重要,有的时候可能出现程序不能运行的情况所以,写这个函数时候是非常谨慎小心的。 附:程序源代码 #includestdio.h #includestdlib.h #includestring.h #define MAX_L 5 int i=0; int stepcount=1; enum type{ and,or,detrusion,equal,level,variable }; struct node{ char *s; type kind; int polar; node *next; node *child; int start; }; struct step{ step *child; step *brother; node *lhead; node *rhead; int count; char name[30]; }; int inite(char *s,node *head){ int len=strlen(s); int j=0,polar=1; node *current=NULL; node *last=NULL; if(s==NULL)return 0; last=head; while(ilen){ if(s[i]==|){ if(!(s[i+1]=Zs[i+1]=A||s[i+1]=zs[i+1]=a)s[i+1]!=1s[i+1]!=0s[i+1]!=(s[i+1]!=!||i==0)return 0; current=(node*)malloc(sizeof(node)); current-kind=or; current-s=NULL; current-next=NULL; current-child=NULL; current-polar=polar; current-start=0; if(last-kind==levellast-child==NULL){ last-child=current; } else{ last-next=current; } last=current; i++; } else if(s[i]==){ if(!(s[i+1]=Zs[i+1]=A||s[i+1]=zs[i+1]=a)s[i+1]!=1s[i+1]!=0s[i+1]!=(s[i+1]!=!||i==0)return 0; current=(node*)malloc(sizeof(node)); current-kind=and; current-s=NULL; current-next=NULL; current-child=NULL; current-polar=polar;

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档