人工智能实验报告-2-王浩算法.docx人工智能基础实验报告实验题目:王浩算法姓名:薛晓波 学号:2220152080班级:软件工程2015-2班指导老师:邓安生老师完成日期:2017年11刀23日一、实验内容实现命题逻辑框架内的王浩算法。(1) 将命题逻辑中的王浩算法推广至下述命题语言的情形之下:i命题变量符号:,,,ii逻辑连接符:,,,,iii间隔符:,(2) 在上述⑴中所定义的命题语言中实现王浩算法。二、实验目的及要求1•目的:熟练掌握命题逻辑中的王浩算法要求:(1) 实验题冃必须由个人独立完成,允许自行参考相关文献资料,但严禁同学间相互拷贝和抄袭程序以及文档资料。实验结束后一周内上交实验报告和实验文档资料。(2) 提交的文档资料包括设计文档和程序源代码。设计文档和程序源代码以书而文档方式提供(用A4纸打印);并提交电子文档备查。实验环境:WindowslO4bit+SWI-Prolog二、实验思路•主要思路王浩算法实质上是一个反向推理的过程,它将给定的公式化成合取范式,然后通过判断每个子句是否恒真的来判定给定的公式是否是恒真的。•主要函数(1) init():主要作用是负责将符号初始化成树的结构。(2) clone():复制一棵完全相同的符号树。(3) restruct():查找所有&,|,<・〉等符号,并将其拆分成新形式:!,・>符号。(4) searching():王浩算法的主体(5) show()和output。:主要用于输出符号串和推理过程四、实验结果及代码•C\Users\tW®\Deslrtop\Ji50i^\I^fi2&\Debug\*品;梦验证的式子(p->(q->r))->((p・>q)->(p->r))>p=>r,q,p^2>rt,p=>r,pC3>q,p=>r,q⑷!P,P=>r»q(5>p=>r,p,p<6>r,q,p=>r〈7》“!p,p=>r⑻p・>q,ps>r,q〈9:qp=>r,pno>!p,p二>(ll>r,p->q,ps>rC12>!q,p->q,p=>rC13>p->q,p=>r,p由<10>和<9>根据规则<3〉推岀CU>q->r>p->q,p=>r 由<12>和<11〉根据规则<3>推岀<15>!p,p->q,P=>r 由<13>根据规则<2〉推出C16>p->(q->r),p->q,p=>r由<15>和<14>根据规则<3>推岀公理公理公理由<1>根据规则<2>推岀公理公理由⑵根据规则⑵推岀由<4>和<3>根据规则<3〉推岀公理由<5>根据规则<2>推出由<7〉和〈6>根据规则<3>推岀由<8>根据规则<2>推岀^l7>p->(q->r),p->q=>!p,r^18>p->(q->r),p->q=>p->rJ9>p->(q->r)=>!(p->q),p->r:20>p・>(q・〉T)=>(p->q)->(p->r)"2l>®>!(p->(q->r)),(p->q)->(p->r):22>=>(p->(q->r))->((p・〉q)->(p->r))青输入要验证的式子由<16>根据规则<1>推出由<17>根由<18>根由<19>根据规则<4>推岀由<20>根据规贝Yl>推出由<21>根据规贝Y4>推岀S:#include<>#include<>structnumber{charright[400];charleft[400];intrule;intfather[2];};numberst[60];intid=l;voidmoveright(intstart){intnu=1;while(st[id+nu].right[O]!=NULL||st[id+nu].left[O]!=NULL)nu++;intw=start+l,b,fan=0;for(inta=O;st[id].left[a]!=NULL;a++)st[id+nu].left[a]=st[id].left[a];讦(a!=0){st[id+nu].left[a]=7;a++;}if(st[id].right[w]=='('){for(b=l;st[id].right[w+b]!=NULL;b++){if(st[id].right[w+b]=='(')fan++;elseif(st[id].right[w+b]==')'&&fan==O)break;elseif(st[id].right[w+b]=-)')fan-;st[id+nu]」eft[a+b-l]=st[id].right[w+b];}}else{for(b=0;st[id].right[w+b]!=NULL;b++){if(st[id].right[w+b]==,(,)fan++;elseif(st[id].right[w+
人工智能实验报告-2-王浩算法 来自淘豆网m.daumloan.com转载请标明出处.