文档介绍:--------------------------校验:_____________-----------------------日期:_____________人工智能-合一算法(C++)人工智能第1次作业一般合一算法(C++实现)姓名:佟学号:201224班级:12计本非师学院:信息学院简单程序如下#include<iostream>#include<string>#include<vector>usingnamespacestd;intiC=0;//标记公式集中括号匹配数classSyncretism{private:structTransform{//一个代换(差异集)stringt_f1;stringt_f2;};public:boolIssyn(stringf1,stringf2,vector<Transform>&t);//是否能合一Transformdifferent(conststringf1,conststringf2)//求差异集{inti=0;Transformt;while(ii))i++;intj1=i;while(j1++;if(j1-i==0)returnt;i,j1-i);intj2=i;while(j2++;if(j2-i==0)returnt;i,j2-i);while({j1-1-i);j2-i-1);j1--;j2--;}returnt;}boolsame(conststringf1,conststringf2);//判断两个公式是否相同stringchange(stringf,Transformt);//用代换q对公式f进行合一代换boollegal(Transform&t);//intvar(conststrings);//s中每个()内的子串是变量还是常量voidshow();//最终演示算法};boolSyncretism::Issyn(stringf1,stringf2,vector<Transform>&lan){while(!same(f1,f2)){Transformt=different(f1,f2);boolflag=legal(t);if(!flag)returnfalse;else{(t);//将t加入vectorlan中if(flag){用lan的最后一个元素代换f2=change(cout<<"变换后:"<<endl;cout<<"f1:"<<f1<<endl;cout<<"f2:"<<f2<<endl<<endl;}if(same(f1,f2))break;}}returntrue;}boolSyncretism::same(conststringf1,conststringf2){if(elsereturnfalse;}stringSyncretism::change(stringf,Transformt){inti=while(i<()){i=(if(i<())f=(}returnf;}boolSyncretism::legal(Transform&t){if(returnfalse;elseif(varvarelseif(varvarreturnfalse;elseif(var{if(var{变量常量交换位置}else{inti1=vari1=iC;iC=0;inti2=v