有算法求程序(逻辑运算的)

youngcave 2005-02-16 03:13:02
算法的预处理
为便于计算机程序的编制,提高归结的速度,我们首先对子句集S进行如下的预处理:
1、对于输入的子句集进行三种规则(单文字规则、纯文字规则和Tautology规则)的删除策略,得到子句集S。
实际上,本算法只需进行Tautology规则即可。
2、对S中n个不同的原子进行编码,用[1,n]中整数来表示这些原子,用[-n,-1]中的整数来表示这些原子的否定。从而任何一个文字都可用[-n,n]上的一个整数来表示。
3、我们定义一个二维数组sen[m][n]来存放子句集S,sen[i-1]表示子句Ci,i=1, …,m。如:sen[0]表示子句C1,sen[1]表示子句C2等。在下面的叙述中,我们不再区分sen[i-1]与Ci;Sen[i]中的第j个文字称作sen[i][j]。
这样,我们判断两个文字是否互补对,只需计算这两个数字是否互为非零相反数即可。
4、定义一个一维数组num[m],num[i]表示子句sen[i]中的有效文字个数。
5、对sen[i]中的文字进行按绝对值大小进行排序, i=1,…,m。
由定理4知,5步的处理是合法的。
6、定义一个一维数组route[m],并置其初值为0。route记录当前查找的前k元子路径,k表示route的有效长度。置k的初值为0。
7、定义一个一维数组c[m],并置其初值为0,用于记录子句中当前查找位置。
例如:若route[i]=sen[i][j],则c[i]=j。
8、定义一个k,初值为0,用于标记当前子句位置。
4 自动推理算法及其程序设计步骤
第0步:从S中选定sen[0]。
在S中找一个文字最少的子句sen[i](如果多于一个,选择下标i最小的),如果i≠0,则将子句sen[0]和sen[i]对调。
令k=0;c[0]=0;
第1步:选定sen[k+1]。
1、执行:route[k]=sen[k][c[k]];对任意m>i>k,route[i]=0。
2、在后(m-1-k)个子句中选择与子路径route有互补对的子句。
说明:在本文中子路径route是指{route[0],…, route[k]},当前路径是指{route[0],…, route[k],c[k+1]}。
(1)若这样的子句不存在:
a.若(m-1-k)>2则删除前k+1个子句,重置S:
①sen[i]=sen[i+k+1],num[i]=num[i+k+1],i=0,1, …,m-2-k
②sen[j]=0,i=k+1,…,m-1
③route=0;k=0;转第0步。
b.若(m-1-k)=2,如果sen[m-1]和sen[m-2]是互补对,则子句集S不可满足。程序结束;
c. 若(m-1-k)=2,如果sen[m-1]和sen[m-2]不是互补对,则子句集S可满足。程序结束;
否则子句集S可满足。程序结束。
d.若(m-1-k)≤1,则子句集S可满足。程序结束。


自动推理第四章的一个算法,谁给帮忙给个源程序?
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
viena 2005-02-16
  • 打赏
  • 举报
回复
看到的感兴趣的帖我都回
  • 打赏
  • 举报
回复
没有现成的,用google搜索吧,自己写太费事了
youngcave 2005-02-16
  • 打赏
  • 举报
回复
又是楼上,我的每个帖你都回?还是你所有的帖都回的?
好多星星,哪弄来的?
viena 2005-02-16
  • 打赏
  • 举报
回复
晕~
  在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力浅显易懂,不失深度和数学严谨性。 《算法导论(原书第3版)》选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在it专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。    第3版的主要变化:    新增了van emde boas树和多线程算法,并且将矩阵基础移至附录。    修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。    移除两章很少讲授的内容:二项堆和排序网络。    修订了动态规划和贪心算法相关内容。    流网络相关材料现在基于边上的全部流。    由于关于矩阵基础和strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。    修改了对knuth-morris-pratt字符串匹配算法的讨论。    新增100道练习和28道思考题,还更新并补充了参考文献。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧