命题逻辑等值演算的计算机求解方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Zhan L ing
(D ep t of M a th, X inyang T eachers Co llege. X inyang, H enan; Ch ina 464000)
Abstract A t t ribu te of genera lized list in da ta st ructu re is u sed to the design fo r log ica l
图4 (9) PRO C D EL - W H (H EAD ) 消去蕴涵联接 词′- > ′操作, 按深度优先顺序从下往上逐步消去表 达式中的所有蕴涵连接词′- > ′, 对应公式 A - > B < = > - = A ∨B
第 12 卷 第 2 期 万继光等: 命题逻辑等值演算的计算机求解方法
参 考 文 献
1 严蔚敏, 吴伟民 1 数据结构 1 清华大学出版社, 19921
2 郑启华 1PA SCAL 程序设计 1 清华大学出版社, 19911 3 陈进元, 屈婉玲 1 离散数学 1 北京大学出版社, 19871
4 左孝凌, 李为钅监, 刘永才 1 离散数学 1 上海科学技术文献出版社, 19821
( ( a, - > , b ) , < - > , ( ( a, ^ , b ) , ∨, c) ) , 其存储结构如图 1。
图1
此时 COU N T 值为 3,O PTR 存放{′a′, ′b′, ′c′}1 说明:
( 1) 在联接词优先级方面, 规定所有联接词为同 优先级, 按先后顺序运算, 但规定括号内的优先级比 括号外的优先级高, 因此可Fra Baidu bibliotek括号来调整运算次序。
变量的前面, 方法是将否定作用域下的所有表结点, (设存储结构已建好) :
变量结点的 TA G 求反, 连接词结点的 S IT 值 2、3 互
① D EL - DJ (H EAD ) {消去等价连接词},
换, 对应公式= (A ∨B ) < = > (= A ^ = B ) , = (A ^
② D EL - W H (H EAD ) {消去蕴涵连接词},
万继光 詹 玲
(信阳师范学院计算机系 1 河南, 信阳 464000) (信阳师范学院数学系 1 河南, 信阳 464000)
摘 要 探讨了利用数据结构中广义表的特性来设计命题逻辑表达式在计算机上的逻辑结
构和存储结构, 以及在这种结构上如何实现它的基本操作, 进而实现其它复杂的等值演算。
关键词 广义表; 命题逻辑; 等值演算; 联接词
and sto rage st ructu re of p ropo sit iona l log ic exp ression on the com p u ter and u sed to rea lise it s ba sic m an ip u la t ion and com p lex fo rm a l deduct ion on th is st ructu re.
表达式为 ( a- > b) < - > ( ( a^ b) ∨c) 可 转化为 ( ( a- > b) , < - > , ( a^ b) ∨
NOD EPTR = ^ NOD E;
NOD E= R ECO RD TA G: IN T EGER; R IGH T: NOD EPTR; CA SE TA G O F ±1: (L EFT: NOD EPTR ) ; ±2, 3: (S IT: IN T EGER ) ;
图2 (7) PRO C X ISHOU (H EAD ) 吸收操作, 对应 公式 A ∨A < = > A , A ^ A < = > A A - > 3 3 - > A ] A
图3 ( 8) PRO C D EL - DJ (H EAD ) 消去等价联接 词 ′< - > ′操作, 按深度优先顺序从下往上逐步消去表 达式中的所有等价连接词′< - > ′, 对应公式 A < - > B < = > (A - > B ) ^ (B - > A )
初始化部分, 将 O PT 中存放{′< - > , ′- > ′, ′ ^ ′, ′∨′, ′ ′}, 其中规定′< - > ′为等价联接词, ′> ′为蕴涵联接词, ′^ ′为合取联接词, ′∨′为析取联接 词, ′= ′为否定联接词。 例如: 表达式
= ( a- > b) < - > ( ( a^ b) ∨c) 可转化为
信阳师范学院学报 (自然科学版) 第 12 卷 第 2 期 1999 年 4 月
Jou rna l of X inyang T eachers Co llege (N a tu ra l Science Edition)V o l. 12 N o. 2 A p r. 1999
命题逻辑等值演算的计算机求解方法Ξ
在以上各步中, 每一次操作都输出表达式即可输
应公式 A ∨ (B ^ C) < = > (A ∨B ) ^ (B ∨C)
出演算过程中的每一步, 考虑运算过程中会出现同一
层的多余的相同项和多余的括号, 在后两步过程中每
次操作执行吸收操作和去括号操作, 就可得到最终简
洁的合取范式。
( 2) 求析取范式的过程, 实际就是逐步对表达式
END , END 1 说明:
(1) TA G 为标志域, 其值为±1 时表示该结点为 表结点, 为±2 时表示该结点为变量结点, 为 3 时表 示该结点为联接词结点, 为负时表示该结点前有否定 联接词。
c) ) 其中 ( a- > b) 可转化为 ( a, - > , b) ,
( 2) S IT 存放变量或联接词在相应数组中的位 置。
151
4 等值演算的实现
有了上面的基本操作, 就很容易实现其它复杂的
等值演算。
图5
( 1) 求合取范式的过程, 实际就是逐步对表达式
(10) PRO C IN - NO T (H EAD ) 否定深入操作, 进行消去等价连接词、消去蕴涵连接词、否定深入、按
将表达式的所有否定连接词′= ′从下往上逐步深入到 分配律 1 演算的过程。因此实现步骤可化为下列几步
(2) PRO C D EL (H EAD ) 删除过程, 删除表达 式 H EAD 的整个存储结构, 可按深度优先顺序递归 地实现。
(3) PRO C OU T PU T (H EAD ) 输出过程, 输 出表达式 H EAD , 可按深度优先顺序递归地实现。
(4) PRO C CO PY (H EAD 1, H EAD 2) 复制过 程, 由 表 达 式 H EAD 1 的 结 构 复 制 一 个 表 达 式 H EAD 2 的结构, 类似输出过程, 在遍历 H EAD 1 结构 的过程中复制 H EAD 2 的结构。
^ (B ^ C) < = > A ^ B ^ C, (A ) < = > A 如图 2。
(2) 表达式必须符合命题逻辑表达式所规定的语 法规则。
3 在此结构上基本操作的设计和实现
(1) FU N C CR EA T (H EAD , CH ) 创建函数, 由 输入的表达式串建立一个表达式, 根据存储结构的特 点, 按深度优先顺序递归地实现, 建立的过程中进行 表达式的分解并进行语法查错, 如有错误, 返回错误 位置, 如无错误, 返回 0。
互换即可。 说明: 以上图示中 A 、B 、C 表示一个子表达式
结构, 可以是一个或多个结组成。
对 N 个变量分配不同的真值, 求出表达式真值的过 程, 因为共有 2N 种不同的分配方法, 所以对每种分配 方法执行 ZH I(H EAD ) 操作即可, 共需执行 2N 次 ZH I (H EAD ) 操作, 并输出每次的分配方法和表达式的结 果。
合适的存储结构, 进而在这种结构上设计它的基本操 一种是表结点, 第二种是变量结点, 第三种是联接词
作, 而其它复杂的等值演算就可利用这些基本操作来 结点, 其类 PA SCAL 语言形式说明如下:
实现。
T YPE
1 命题逻辑表达式的逻辑结构
命题逻辑表达式可以看作一个递归的表达式, 即 一个表达式可包含不同的子表达式, 而子表达式又可 包含其子表达式, 考虑其类似于数据结构中的广义 表, 可把其表达式分解成几部分作为广义表的元素, 而表达式本身即看作广义表。分解方法是把每一对括 号所包含的部分看作一个子表达式作为一部分, 每一 个联接词变量作为一部分, 即广义表的每一个元素可 作为表达式的子表达式、变量或联接词, 其中否定联 接词包含于其作用域的子表达式或变量中。 例如:
( a^ b) ∨c 可转化为 ( a^ b, ∨, c) , = a^ b 可转化为 ( a, ^ , b) , 即原表达式可转化为 ( ( a, - > , b) , < - > , ( ( a, ^ , b) , ∨, c)
另外, 考虑联接词长度不一致, 定义一字符串数 组来存放它, 而同一变量在一表达式中可多次重复出 现, 为了便于识别不同变量, 也定义一数组用来存放 变量名, 并规定变量名只用一个字母表示。
(5) FU N C ZH I(H EAD ) 求值操作, 在给出一 组表达式中所有变量的值的情况下, 求整个表达式的 值, 可按深度先顺序递归地实现。
(6) PRO C D EL - KH (H EAD ) 去括号操作, 将 表达式中多余的括号去掉。
对应的公式为 A ∨ ( (B ∨C ) < = > A ∨B ∨C, A
Key words Genera lized list ; P ropo sit iona l log ic; Fo rm a l deduct ion; Connect ive 责任编辑 郭红建
B ) < = > (= A ∨= B ) , 要求表达式中无′< - > ′, ′
③ IN - NO T (H EAD ) {否定深入},
- > ′连接词的条件下执行。
④ FPL 1 (H EAD ) {分配律 1}。
(11) PRO C FPL 1 (H EAD ) 分配律 1 操作, 对
Ξ 收稿日期 1999—01—07
150
信阳师范学院学报 (自然科学版) 1999 年 4 月
PA SCAL 语言定义如下: CON ST N = 5,M A X = 20;
VAR O PT: A RRA Y [ 1. . N ] O F STR IN G; O PTR: A RRA Y [ 1. . M A X ] O F CHA R; COU N T: IN T EGER; H EAD: NOD EPTR; 其中常量 N 为联接词的个数,M A X 为一表达式 中变量的最大个数, COU N T 记录实际当前表达式中 变量的个数, H EAD 为头指针。
A pp ro ach to Fo rm a l D educt io n o f P ropo sit io na l L o g ic
W an J iguang
(D ep t of Com p u ter Science, X inyang T eachers Co llege. X inyang, H enan; Ch ina 464000)
分类号 T P30116
命题逻辑的等值演算是根据已知的等值式推演 2 这种逻辑结构的存储结构
出另外一些等值式的过程, 主要运用于求析取范式、
类似广义表, 这种逻辑结构适合于链式存储结
合取范式。 而命题逻辑表达式初始状态是一个字符 构, 首先设计其结点类型, 因为表达式转换为广义表
串, 必须将其分解为含特定意义的逻辑结构, 并选取 后, 广义表的元素有三种类型, 因此需要三种结点, 第
进行消去等价连接词、消去蕴涵接词、否定深入、按分
配律 2 演算的过程。因此实现步骤类似求合取范式可
图6
得, 只需将分配律 1 操作改为分配律 2 操作。
(12) PRO C FPL 2 (H EAD ) 分配律 2 操作, 对
(3) 求 N 个变量表达式真值表的过程, 实际就是
应公式 A ^ (B ∨C) < = > (A ^ B ) ∨ (B ^ C) 图示类似图 6, 只需将连接词结点的 S IT 域 2, 3