- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章
2.8 运行,举个实例
用你喜欢的语言实现unify算法
int main(){
coutconst:lowercase\tvarible:capital.endl;//输入两个谓词公式
string f1,f2;
coutintput F1:;cinf1;
coutintput F2:; cinf2;
vector transform mgu;
if(syncretism(f1,f2,mgu))//存在最一般合一,并输出结果
{
coutmgu={;
int i=0;
for(i=0;imgu.size()-1;i++)
coutmgu[i].t_f1/mgu[i].t_f2,;
coutmgu[i].t_f1/mgu[i].t_f2}endl;
}
else //不存在最一般合一
{
coutcannot be syncretizedendl;
}
return 0;
}
struct transform //一组置换
{
string t_f1;
string t_f2;
};
//函数声明
bool syncretism(const string f1,const string f2, vectortransform );//合一方法,判断是否可进行合一
bool same(const string f1,const string f2) ;//判断两个谓词f1和f2是否相同
transform dif(const string f1,const string f2);//求解f1和f2的差异集
string change(string f,transform q);//该函数查找t_f2在f中的位置并用t_f1替代f中相应的t_f2
int legal(transform );//判断置换t是否合法
bool var(const string s);//判断一个字符串是变量还是常量
string varData(string s);//该函数是剥去外层括号
bool syncretism (const string tf1,const string tf2,vectortransform mgu){
string f1=tf1,f2=tf2;
while(!same(f1,f2))//f1与f2中的符号不完全相同时才进入while循环
{
transform t=dif(f1,f2);//得到f1和f2的一个差异集,并把它赋给t
int flag=legal(t);
if(flag==0)
return false;
else{
mgu.push_back(t);
f1=change(f1,mgu.back());
f2=change(f2,mgu.back());
if(same(f1,f2)) break;//f1和f2相同时就停止循环
}
}
return true;
}
int legal(transform t)//判断置换t是否合法{
if(t.t_f1.length()==0||t.t_f2.length()==0)
return 0;
if(var(t.t_f2)){
if(var(t.t_f1)(varData(t.t_f1)==varData(t.t_f2)))//不能代换合一
return 0;
else{
string temp;
temp=t.t_f1;
t.t_f1=t.t_f2;
t.t_f2=temp;
return 1;
}
}
if(!var(t.t_f1)) return 0;//若t_f1和t_f2都不是变量,也不能合一
string temp;
temp=t.t_f1;
t.t_f1=t.t_f2;
t.t_f2=temp;//在t_f1是变
您可能关注的文档
- 广东开 放大学远程教育专科2018年秋计算机应用基础Word模块测试.doc
- 广东开 放大学远程教育专科2018年秋社交礼仪作业练习题四.doc
- 广东省工贸行业小微型企业安全标准化评定申请资料汇总.doc
- 广东省广州市2017届高三模拟考试文综试题.doc
- 广东省广州市南沙区华南师大二附中2017-2018年八年级(上)期中物理试卷(word版含答案解析).doc
- 广东省惠州市2019年高考生物总复习2-1(1)减数分裂和受精作用学案.doc
- 广东省惠州市东江高级中学2018届高三英语第二轮复习高考英语七选五解题技巧课件(共33张).ppt
- 广东省社会力量办学申报审批表(通用).docx
- 广东省实验中学2019届高三第二次阶段考试-语文.doc
- 广东省湛江市第一中学2017-2018年高一上学期期末考试物理试题.doc
文档评论(0)