计算机研究与发展
JOURNAL OF COMPUTER RESEARCH AND DEVELOPMENT
1999年 第36卷 第8期 Vol.36 No.8 1999



真稳定类与辩论语义
陈　荣　孙吉贵
摘　要　稳定类语义和辩论语义是逻辑程序语义学研究方面突出的两种语义统一框架理论，它们统一了一些很重要的语义.因为它们有着不同的直觉和概念，它们的相互关系并不清楚.我们在它们最基础的概念层次上证明了，常规逻辑程序句法下二者是等价的，它们有着同样的语义统一能力.基于这个结果,我们为有前途的辩论语义指明一种迭代构造的方法.
关键词　逻辑程序设计,稳定类,辩论系统,溯因推理,程序说明语义,证明过程
中图法分类号　TP301
PROPER STABLE CLASS AND ARGUMENTATION SEMANTICS
CHEN Rong and SUN Ji－Gui
(Department of Computer Science, Jilin University, Changchun 130023)
Abstract　Stable class and argumentation semantics are two outstanding unifying frameworks in the research of declarative semantics for logic programs, and they unify some very important semantics. Because they have different intuition and concepts, their relation is not clear yet. It is shown that their fundamental concepts are equivalent under normal logic programs, so they have the same unifying capability. Based on such a result, a constructive procedure is presented for computing the promising argumentation semantics.
Key words　logic programming, stable class, argumentation system, abductive reasoning, declarative semantics, proof procedure
1　引　言
　　在逻辑系统中，如果无法证明一个基原子，失败即否定(NAF)规则允许系统作出对该原子为假的判断.NAF是一种重要的缺省推理模式，它的一个特性是不需要显式存储某原子为假的信息，从而减少演绎数据库的空间需求，同时它体现了表达能力与计算复杂性间的一种平衡.最为重要的是，逻辑程序的一个突出特点是可以通过NAF很自然地支持非单调推理和溯因推理(abductive reasoning).
　　但是，当逻辑程序包含由NAF传递的循环依赖时，直承算子Tp不再是单调的［1］.这使得寻找适当的程序说明语义――准确反映程序在常识背景下的直观含义变得即十分重要又非常困难.已有的研究工作加深了人们对NAF的语义的认识.当初NAF的含义具有很强的过程性，但如今可以把形如“～p”的文字看成缺省文字、假设或者诱因(abducible).这充分表现在常规程序类的研究结果多样化，诸如Fitting模型、完美模型、稳定模型和良基模型及其各种扩充等［1］.对于大多数程序而言，虽然它们与程序的直观含义是吻合的，但总可以构造出特殊的程序例，使得它们不能抓住程序的直观含义［1］.而且，不同的方法基于不同的直觉和前提，使用了不同的术语和概念.它们的特点和相互关系并不清楚，有时甚至令人迷惑.因此，研究它们的统一框架理论变得尤为重要，这会结合各种方法的优势，极大地促进程序语义问题的解决.
　　稳定类语义［2］和辩论语义［3］是统一理论中的佼佼者，都具有结构简单、完全和广泛之特点，然而它们有着不同的直觉和概念.稳定类语义的基本思想是，依据Gelfond和Lifschitz变换，把常规程序P变换成正程序PI，利用单调算子FP2定义稳定类，程序语义由稳定类决定.辩论语义的基础是抽象辩论系统［4,5］，Dung的做法是把程序P视为一个辩论框架A＝〈P,H,〉，其中H是P的基负文字的全体，H的任意一个子集表示可能的诱因（称为假说）；是假说间的攻击关系.具有某种稳定性的假说是可接受的，可接受假说在集合包含关系下构成一个完全半格，这个“倒三角的”层次结构就是程序的语义.值得注意的是，这两种统一理论有各自的优势――稳定类的定义使用不动点理论，具有计算上的优势；辩论语义更灵活，易于扩充，支持溯因推理.特别是，几乎全部的非单调形式推理都可以统一在辩论系统下［5］，它的应用领域涉及了诊断、溯因、规划、行动理论和演绎数据库等.
　　Dung的方法中最重要的概念是攻击关系和可接受条件.因为假说空间是庞大的，判定假说是否可接受时不但要求该假说与程序相容，还需考虑所有攻击它的假说，所以按定义直接构造辩论语义是困难的.在我们所掌握的文献中，还没见到结合两种统一框架的结果，而这种研究会有诱人的前景.虽然稳定类语义与辩论语义是两种基于不同直觉的方法，本文试图证明它们在本质上是相通的.我们首次论证二者在它们的最基础概念层次上是等价的，并基于这个结果，提出算法，建立辩论语义的“自底向上”的迭代构造过程.实例表明，两种方法可以做到优势互补，相互利用各自已有的结果.
2　语法及符号约定
　　与一阶逻辑的句法定义类似，可以定义逻辑程序的常元、函词、谓词、项、基项、基原子、Herbrand域、Herbrand基、和正负文字等等.
　　程序子句是如下形式的规则：

其中是原子.～是缺省否定.
　　常规程序是有限个程序子句的集合.特别是，若m=0，则称(1)为正程序子句；正程序子句集合构成正程序.
　　给定程序P，用基项替换程序中的每个变量，得到例化规则；所有可能的例化规则构成例化程序P*.由于我们限制在Herbrand域上讨论程序的说明语义，不失一般性，假定本文讨论的程序都是例化程序.由于这种假定，一个程序可能包含无穷多个子句.而这么做在语义上不损失什么［1］.
　　令S是一个基文字集，为书写方便，约定.按照Tarski语义结构，任意Herbrand解释Ⅰ是Herbrand基的一个子集，并认定不属于Ⅰ的基原子为假.贯穿全文，小写字母a,b,c等表示谓词，P表示一个常规逻辑程序，HB是P的Herbrand基，I,J是P的Herbrand解释，H～HB是P的一个假说，h∈～HB是P的一个假设.
　　给定程序P和它的一个假说H，递归定义推演关系：
　　(1) P∪Ha 当且仅当事实子句a←∈P.
　　(2) P∪Ha 如果存在程序子句(1)∈P，满足.
　　不难验证，对于也成立.换言之，关于假说是单调的.
　　对于任意正程序P，存在P的最小模型，可以用支承算子的最小不动点TP↑ω刻画它.让我们先回忆一下TP的含义，当以原子a为头的正程序子句的规则体在I下成真时，a属于集合TP(I)，即.
3　稳定类语义
　　Baral和subrahmanian在文献［2］中定义了稳定类理论，本文只讨论逻辑程序下的稳定类语义.在某个解释I下，Gelfond-Lifschitz变换是把常规程序P变成正程序PI的方法，准确地说，程序子句, bn当且仅当存在a←b1,…, bn,～c1, …, ～cm∈P并且满足{c1, …, cm}∩I={}
　　定义1. FP是GL-算子，满足.
　　可以证明是FP反单调的，（应用FP两次）是单调的，的最小不动点和最大不动点都存在［2］.
　　定义2. 设I,J是P的任意两个Herbrand解释，R是Herbrand解释间的二元关系，R(I,J)成立当且仅当J=FP(I).
　　定义3［2］. 令S={Ii}是程序P的一个有限的Herbrand解释集合，称S是P的一个稳定类当且仅当S={FP(Ii)}.
　　定义4［2］. 称S是程序P的一个严格稳定类当且仅当不存在S的非空真子集也是P的一个稳定类.
　　定义5. 令S1和S2是P的两个稳定类，称S1≤S2当且仅当对于任意J∈S1，存在I∈S2，满足IJ.
　　直观上，稳定类反映了这样一种情况：尽管GL-算子FP没有不动点（即单点集），但它可能围绕一个有限点集（即一组解释）而循环，的确文献［2］使用严格稳定类来定义程序的语义.概括起来，稳定类有以下性质［2］：
　　(1) 稳定模型是一个单元素的稳定类；
　　(2) 良基模型对应一个≤极小的稳定类；
　　(3) 任意稳定类的并集也是一个稳定类.
　　显然稳定类的并集包含了太多的解释，没有什么意义.我们发现，即使一个严格的稳定类，也可能包含一个很大的环――例如程序，易验证{{a}, {a,b}, {b}, {b,c}, {c}, {c,a}}就是一个严格的稳定类，但它给出的语义信息实在太弱.所以有别于文献［2］的工作，我们认为因而我们应使用如下定义的真稳定类来定义程序的语义.
　　定义6. 称S是程序P的真稳定类当且仅当S是二元关系R的一个对称封闭闭包.
　　显然，对于真稳定类中的任意元素I，I=FP2(I)恒真.
　　定义7. 程序P的语义解图G=(V,E)是一个有向图，其中点集V=2HB，E为有向边集合，满足对于P的任意Herbrand解释I和J，如果R(I,J)成立，存在由I到J的有向弧.
　　例1. 程序P={1. p←～q 2. q←～p 3. r←～r 4. r←q}.它的语义解图为


　　显然P有3个稳定类{{},{p,q,r}}，{{p},{p,r}}和{{q,r}}.真稳定类对应语义解图中的一个长度小于2的环路.
　　可以使用FP2↑ω定义良基模型，而良基模型存在且唯一［1,2］，所以我们不难得到如下的定理.
　　定理1. 每个常规程序都有一个非空的真稳定类. 
4　辩论语义
　　Dung的辩论语义［3,4］中最基础的概念是假说间的攻击关系和可接受假说的判据.
　　定义8［3,4］. 设H1和H2是P的两个假说，称H1攻击H2，记为HH2，如果存在假设成立.
　　定义9［3,4］. 称某假设h关于假说H是可接受的，如果对于任意假说H1，只要，都有HH2成立.
　　定义10［4］. 称假说H没有冲突，如果不存在，满足AB或者BA.
　　定义11［4］. 一个假说H是可接受假说（记为AH），如果下面两个条件都得到满足：① H没有冲突，② 每个假设h∈H关于H都可接受.
　　由定义易知，没有冲突的假说至少不应自己攻击自己，可接受假说至少应可以攻击任何攻击者的假说，这符合人们的直观.注意到(～HB,)构成一个完备格，在下面的定义中，我们隐含地把集合包含关系作为假说间的序关系.
　　定义12［3］. 假说H是择优假说（记为PH）当且仅当H是极大可接受的.
　　引理1. 假说H有冲突当且仅当P∪H不相容.
　　证明. (充分性)若P∪H不相容，则HH，H有冲突.
　　（必要性）若H有冲突，则存在，满足AB或BA.不失一般性，假定AB.于是存在 .因为推演关系关于假说H是单调的，也成立.由于.因此P∪H不相容.
证毕.
　　定义13. 算子AP是定义在假说空间上的映射，假设h关于H可接受}.
　　既然AP(H)代表全体关于假说H的可接受假设，定义11中的条件等价于.下面的引理是显然的.
　　引理2. 算子AP是单调的.
　　定义14. H是完全假说（记为CH）当且仅当(1) P∪H相容，和(2) H=AP(H).
　　定义15. H是基础假说（记为GH）当且仅当H是极小的完全假说.
　　定义16. H是稳定假说（记为SH）当且仅当(1)P∪H是相容的，并且(2)对于任意假设.
　　完全假说和基础假说是谨慎(skeptical)语义的基础，基础假说对应着程序P的良基模型；而择优假说和稳定假说提供了大胆推理(credulous reasoning)模式，稳定假说与程序的稳定模型相对应.一个可接受假说H与P∪H在下的全部推演结果构成一个Herbrand模型(可能是部分的），因此可接受假说与（部分）Herbrand模型是一致的，举例来说，择优假说也就隐含地定义了择优模型的概念.定理2阐明了各种可接受假说间的关系.
　　例2. 继续考虑例1中的程序P.它有8个假说：H0={}, H1={～p}, H2={～q}, H3={～r}, H4={～p,～q}, H5={～p,～r}, H6={～r,～q}, H7={～p,～q,～r}.显然H0是完全假说，不难验证，H1和H2也是完全假说，并且H0是基础假说，H1是稳定假说,H2是择优假说.注意，H3不是可接受假说，因为H2H3，H3H2不成立.
　　定理2. 以下蕴涵式成立. 

　　证明. 根据定义，蕴涵式(1)、(2)、(3)和(4)是显然的.我们只给出(5)和(6)的证明.
(5) 令假说H为SH，往证H也是CH.H为SH，P∪H相容.再由定义16(2)知道，对于任意非空假说H1，因此.考虑到引理1，H是CH.
(6) 既然(2)和(5)成立，只须证得SH极大就足够了.用反证法.设HH1，而H1可接受.于是H1/H非空，.又由于H1可接受，H1H，考虑到HH1，H1有冲突，H1不可能是可接受的，矛盾.因此H是极大的.
证毕.
　　根据定理2，PH，SH，GH和CH形成程序P的唯一一个完全假说的等价类，它就是程序的辩论语义.这个等价类中的元素在集合包含关系下构成一个“倒三角”的半格，而空假说显然是最平凡的假说，因而，该等价类非空，即辩论语义是完全的.而它的灵活性又体现在，为准确理解程序的直观含义提供了多种可能的选择.
　　虽然引理2表明AP是单调的.Dung指出，如果辩论框架是有限的，算子AP连续，但一般来说，AP有可能是不连续的①.通常，因为假说空间是庞大的；例化程序P可能会有无穷多个假说，某个假说受到的攻击也可能是无数次的；而判断一个假说是否可接受时，不但要考虑它与程序的相容性，还要考虑那些有冲突的攻击假说（虽然它们与程序P是不相容的！），所以按照算子AP直接构造辩论语义是很复杂的.而稳定类语义恰好有这方面的优势.
5　真稳定类=辩论语义
　　定义17. 令H是P程序P的任意假说，定义IH∪～H=HB，称Herbrand解释IH和H互补.
　　定义17中假说H有其互补的Herbrand解释IH，反之I和HI也有这样的互补关系.此时，容易看到FP(I)=是成立的.虽然算子AP是比较复杂的，但在常规程序的句法下，它与GL-算子FP2有着密切的关系.
　　定理3. 给定常规程序P，令H是P的任意假说，.
　　证明. 先证(1)：.
　　对于任意假设h∈AP(H)(注意此时～h是正文字).先考虑最特殊的情况：对于任意假说H1，若P(H1～h不成立（这相当于P中没有以～h为头的程序子句），则P∪(～HB/FP(IH))～h也不成立，因此h∈～（HB/FP2(IH)).一般情况下，对于任何假说H1，只要H1{h}，则HH1.现在考虑假说～(HB/FP(IH))，分两种情况讨论它与H的关系：
　　（1）假设～(HB/FP(IH))不会攻击{h}，即有P∪～(HB/FP(IH))～h是不成立的.因此成立，于是，而，所以，那么有.由于h的任意性，(1)式成立.
　　（2）不失一般性，假设.因，于是，即，即，显然这导致矛盾.
　　下面证(2)：.设h是～(HB/FP2(IH))中的任意假设，于是～hFP2(IH).如果程序P中没有以～h为头的规则，那么，对于任意假说都不会成立，即h不会受到攻击，因此h∈AP(H).否则，令H1是满足的任意非空假说，于是～h∈FP(IH).断言H1不是～(HB/FP(IH))的子集.否则，设，于是，根据算子FP的反单调性，，又因～h∈FP(IH1)，故～h∈FP2(IH)，矛盾.因此H-1=H1/(～(HB/FP(IH)))非空.注意到.由于H－1非空，至少存在一个假设，于是～h1∈FP(IH)，而h1∈H1.所以H1{h}，HH1.由于H1的任意性，h关于H可接受，即h∈AP(H).再由h的任意性，(2)式成立.
证毕.
　　定理4. 令程序P的一个真稳定类为{I,J}. (1) 如果，则P∪HJ是相容的. (2) 如果，则P∪HI是不相容的.
　　证明. (用反证法)
　　(1) 已知，不妨设P∪HJ是不相容的.于是，当且仅当存在正基原子b，满足，但～b∈HJ.容易看到.因FP(I)=J，考虑到，故有.于是，矛盾.因此不存在这样的基原子b，这也就证明了P∪HJ是相容的.
　　(2) 已知，不妨设P∪HI是相容的.于是，当且仅当不存在正基原子b，同时满足和～b∈HI.考虑到和，一定存在正基原子c∈J/I.由于一定成立；由于一定不成立.既然I∪～HI=HB，c∈HI.因此存在同时满足P∪HIc和～c∈HI的正基原子c，矛盾.因此P∪HI是不相容的.
证毕.
　　定理3表明，使用算子FP2迭代出来的假说HI，满足等式(*)HI = AP(HI)，反之，若(*)式成立，FP2(I)=I.定理4进一步证明，有些满足等式(*)的假说HI，关于程序P是不相容的，因而不能成为完全假说，但是每个真稳定类中都存在唯一一个完全假说.的确，定理3和定理4从另一个角度给出了判定完全假说的合理判据.对于稳定类语义和辩论语义，定理3和定理4表明，二者在各自最基础的概念层次上是等价的，语义统一能力相同，有如下的等价性质.这样，我们为辩论语义找到了一种合理的构造方法.
　　定理5. (1) 单元素的真稳定类决定稳定假说，反之亦然.
(2) ≤_极小的真稳定类决定基础假说，反之亦然.
(3) ≤_极大的真稳定类决定择优假说，反之亦然
6　构造辩论语义的算法
　　熟悉不动点理论的读者都知道，不动点定义对应着一个“自底向上”的迭代过程.算子FP2的最小不动点决定程序的良基模型；而定义7表明，从非空集开始迭代可以构造其它的语义解（稳定模型和择优模型）.可以说，定义7已给出了辩论语义的构造算法.
　　假定本节只考虑有穷的常规程序P.不妨令HB的元素个数为n（即P有n个基原子），不失一般性，把原子看成自然数1,…,n.令{i1,i2,…,in}是程序P的任意一个Herbrand解释，不失一般性，再假定.显然，P只能有2n个不同的Herbrand解释.因此我们可以赋予每个解释唯一一个编号j；反之，给定一个编号j (1≤j≤2n)，也可以确定它所代表的Herbrand解释.公式(2)准确表述了这种关系.我们的算法中隐含使用了(2)式.给定集合{i1,…,ij}，它的编号为：

算法. （辩论语义的迭代算法）

　　因算法中S的数目有限，循环过程中它的数目不断减少，所以算法一定终止.第6行判定是否为稳定模型，第10行判定是否为良基模型或择优模型.因而不难证明算法是正确的.
　　使用集合编号的做法后，集合相等、求差、并集、（不）属于等操作更简单了.例如，易知，∏i∈S(i-b)=0 当且仅当b∈S.
7　结束语
　　程序的辩论语义定义的3种重要的完全假说――基础假说、稳定假说和择优假说反映了常识推理过程中谨慎的和大胆的推理模式.辩论语义不仅结构简单，攻击关系符合人们的直观，它具备可扩充性，业已证明，辩论系统是非单调逻辑的一种重要的统一框架理论［5］.稳定类理论也如此，已有的结果表明，可以用它扩充非单调逻辑［2］.本文为辩论语义找到了一种易于构造的可解类.
　　当然，在广义逻辑程序的句法下，真稳定类语义和辩论语义都存在推广的问题.我们认为值得研究的问题有：（1）把二者推广到扩展程序类，甚至于广义程序上去，讨论二者的等价关系是否可以保持下去.（2）考虑把本文的结果应用到演绎数据库、诊断、规划和法律推理中去.
　　致谢 特别感谢审稿者的多方面建议和指正.吉林大学计算机科学系自动推理教研室的全体成员都参加了本文的讨论，在此表示感谢.
基金项目：本课题得到国家自然科学基金(项目编号69783009)资助
作者简介：陈荣，男，1969年生，博士研究生，主要从事逻辑程序设计与非单调推理的研究工作.孙吉贵，男，博士，教授，主要从事定理机器证明、自动推理、逻辑程序、约束与调度的研究工作
作者单位：陈　荣　孙吉贵　吉林大学计算机科学系　长春　130023)
参考文献
1　Apt K R, Bol R. Logic programming and negation: A survey. J Logic Programming, 1994, 19/20(1): 9～71
2　Baral C R, Subrahmanian V S. Stable and extension class theory for logic programs and default logics. J Automated Reasoning, 1992, 8(3): 345～366
3　Dung P M. An argumentation-theoretic foundation for logic programming, J Logic Programming, 1995, 22(2): 51～177
4　Dung P M. On the acceptability of arguments and its fundamental role in nonmonotonic reasoning, logic programming and N-person games. Artificial Intelligence, 1995, 77(3): 321～357
5　Bondarenko A, Dung P M, Kowalski R A et al. An abstract, argumentation-theoretic approach to default reasoning. Artificial Intelligence, 1997, 93(1): 63～101
6　Dung P M. An argumentation semantics for logic programming with explicit negation. In: Warren D S, Szeredi P eds. Proceedings of the 10th International Conference on Logic Programming. MA: MIT Press, 1993. 616～630
收到日期：1998-04-28
修改日期：1998-12-14
