第一章绪论
本书试图在梳理国内外一阶动态逻辑研究成果的基础上,阐释一阶动态逻辑的两个核心系统——命题动态逻辑和量化动态逻辑,把握其研究脉络,挖掘这两个核心系统之间的关系。进而在一阶动态逻辑的基础上对Agent能力、行动、规划修订和交互协议推理等问题进行深入研究。最后对相关问题进行哲学反思和展望性研究。
第一节学术背景和研究价值
自18世纪莱布尼茨提倡用“通用符号和推理演算”改造逻辑学以来,逻辑学发生了质的飞跃,在形式逻辑数学化的基础上建立了完整的经典逻辑理论体系,其中包括命题演算、谓词演算、公理集合论、递归函数论、证明论和模型论,通常简称“两算四论”。经典逻辑反映了信息世界的基本规律,它的出现奠定了信息学科群的理论基础,在它的基础上出现了形式语言学、自动机理论、信息科学、计算机科学和人工智能等科学(何华灿和马盈仓,2008,第3-26页)。
1974年联合国教科文组织规定的七大基础学科依次为数学、逻辑学、天文学和天体物理学、地球科学和空间科学、物理学、化学、生命科学。弗雷格学派认为“数学是逻辑学的一个分支”;而布尔学派则认为“逻辑学是数学的一个分支”。
不争的事实是:数学与逻辑学“血肉相连”“生命相依”,二者无法完全剥离(张晓君,2014,第220页)。中科院计算技术研究所的博士生导师史忠植教授在其专著《高级人工智能》中指出:逻辑学是人工智能重要的形式工具。自从20世纪30年代以来,人工智能所使用的数学方法广泛渗透、运用于数理逻辑,使得数理逻辑成为数学领域中与代数、几何并列的学科之一。
人工智能是当今世界的科学技术前沿与重点研究领域。国内外学者从不同的维度给出了人工智能的定义。人工智能主要研究Agent(智能体)模仿和执行与人类智能有关的行为,这些智能行为包括学习、感知、理解、识别、判断、推理、证明、通信、设计、规划、行动和问题求解等活动。人工智能研究内容非常广泛,包括知识表示方法、确定性推理、非经典推理、计算智能、专家系统、机器学习、自动规划、分布式人工智能、Agent理论与技术、自然语言理解等等(蔡自兴和徐光祐,2010)。本课题研究的“人工智能视域下的一阶动态逻辑与Agent行为推理及其哲学反思”,涉及人工智能中的知识表示、知识推理、非经典推理与Agent理论与技术等重要内容。
大致说来,“人工智能逻辑是指用逻辑方法(如数理逻辑)和逻辑成果研究Agent如何处理知识的理论。人工智能逻辑的研究对象与人工智能的研究对象不同,人工智能逻辑不研究智能体如何从外部获得知识。人工智能逻辑起源于人们在计算机中进行知识处理的探索,为此必须建立实现知识处理的形式理论。至少需要在基础研究或者在理论重建的层面上,利用现代逻辑的种种方法和成果来建立知识处理的形式理论。知识处理的内容主要包括知识表示、知识反思、知识修正、知识推理。知识推理除了传统意义上的演绎推理、归纳推理和类比推理外,还包括常识推理。常识推理是人类日常生活中获取新知识的最重要手段之一,具有非单调性和信息不完备性。人工智能逻辑的研究重点是常识推理”。
最早研究人工智能逻辑的可能是John McCarthy,他提出采用逻辑方法来形式化人工智能需要解决的问题。为了满足信息科学和智能科学的迫切需要,近年来,人工智能逻辑获得了蓬勃发展。迄今为止,属于人工智能逻辑这一大家族的分支逻辑包括缺省逻辑、模态逻辑及其变种、时序逻辑、多值逻辑、模糊逻辑、非单调逻辑、组合逻辑、限定逻辑、自认知逻辑、信念-愿望-意图逻辑、动态描述逻辑、动态认知逻辑、动态逻辑及其变种等等。
人类进入信息时代,计算机科学、人工智能、知识工程和系统工程等学科对逻辑学的巨大需求,导致现代逻辑学与这些学科进行了高度的交叉融合。进行人工智能逻辑研究需要广博的专业知识和深厚的数学功底。研究者要想在人工智能逻辑方面具备很深的造诣并取得较大的突破,就必须具备数理逻辑、无穷逻辑、算法逻辑、单值程序逻辑、递归论、形式语言、自动机、可计算性与复杂性、程序检验等方面的知识(郝一江和张晓君,2009)。由于多种原因,我国这类复合型人才严重匮乏,导致了我国人工智能逻辑研究相对滞后。
虽然我国学者对于人工智能逻辑的各个分支都有所涉猎,但是相关研究还是远远没有赶上国外研究者的步伐。对“人工智能视域下的一阶动态逻辑与Agent行为推理及其哲学反思”这一人工智能逻辑的前沿重点交叉领域的研究更是如此。
本书旨在改善这一状况,属于逻辑学、科技哲学、人工智能、计算机科学等学科前沿重点交叉研究领域。
“行动”或“行为”是哲学、人工智能等诸多学科研究的核心概念。使用认知建模技术对人类行为进行细致建模,使得仿真实体能够不需要人的交互,而自动地对环境中的事件和状态做出实时正确的反应,可节省大量人力、物力、时间和资金。行为建模(behavioral modelling)涉及的领域非常广泛,比如,系统分析与设计、机械设计、动画设计、网络安全、军事仿真、仿人机器人等等(陈中祥,2004,第5-6页)。
行为建模是对仿真实体内部思维活动进行建模,使其与真实智能体(Agent)“神似”;而建立智能体的行为模型要面对大量不确定且难以形式化的因素,涉及行为的推理、决策和知识学习等方面的内容,实现难度大。因此,行为建模是构建仿真智能体系统的关键,是系统工程、先进分布仿真和人工智能技术的重点、难点和核心(张晓君,2017,第2页)。
行为建模的主要方法有:.1基于传统的人工智能方法(蔡自兴和徐光祐,2010);.2基于有穷状态机的方法(刘秀罗等,2001);.3基于Agent的方法(高济,2009)。
随着仿真技术的发展,要求越来越多的系统具有自寻优、自适应、自解释和学习的功能,这一要求与人工智能中的Agent特性不谋而合(张晓君和郝一江,2013)。
做知识级分析的系统称为智能体(Agent),也译为“主体”“真体”等,比如人、具有智能的高级动物和仿人机器人均可视为智能体。智能体强调理性作用,是描述人类智能、动物智能和机器智能的统一模型,这些智能往往是构成社会智能的一部分。智能体是一种通过传感器感知其环境,再通过执行器作用于该环境的智能实体,实则是从感知序列到实体动作的映射(蔡自兴和徐光祐,2010,第208页)。这一定义使得我们可以通过函数和数值对行动或行为进行建模。
Agent技术具有良好的反应性、社会性、自主性和自治性等特点,可以建立行为的全过程模型,能够解决环境适应性、信息不完全性等传统人工智能不能很好解决的问题,已经成为描述行为模型的通用技术框架(张晓君,2017,第3页)。
目前国内外提出的Agent结构主要有三种:反应Agent模型(如一般的控制器)、社会Agent模型、以BDI(Belief-Desire-Intension)为代表的慎思Agent模型(陈中祥,2004,第9-10页)。
计算机科学和人工智能科学中的一个程序(program)就是从给定的输入数据出发,计算出所期望的输出数据的一个形式语言。动态逻辑(dynamic logic)就是能够对程序输入/输出行为进行形式化推理的多个逻辑系统的总称。动态逻辑的两个核心系统是命题动态逻辑(propositional dynamic logic)与量化动态逻辑(quantificational dynamic logic),也叫一阶动态逻辑。
命题动态逻辑是使用程序对命题逻辑的一个扩张,是动态逻辑的基础系统。
量化动态逻辑是命题动态逻辑的一阶扩展版本。与标准的正则命题动态逻辑相比,量化动态逻辑具有以下特征:.1存在被称为计算域(domain computation)的一阶结构A,允许该结构上的一阶量化(因而也叫作一阶动态逻辑);.2状态不再是抽象的点,而是一阶结构A的承载子(carrier)上的一组变元赋值;.3原子程序不再是抽象的二元关系,而是各种形式的赋值语句,在计算过程中赋值语句把值
指派给变元。动态谓词逻辑是量化动态逻辑的子系统,它是“公式即程序”语言的最基本层级(郝一江和张晓君,2009)。
动态逻辑的一些变种包括算法逻辑、非正则动态逻辑和动态代数等。与动态逻辑关系密切的系统有霍尔逻辑、时态逻辑、过程逻辑、μ-演算和正则代数。
命题动态逻辑可以表征程序和“独立于计算论域的”命题之间的相互作用。命题动态逻辑是量化动态逻辑的子系统,因此命题动态逻辑的所有性质在量化动态逻辑中也是有效的。在命题动态逻辑中,初始程序被解释为状态集合上的任意二元关系。从句法上看,命题动态逻辑是命题逻辑、模态逻辑和正则表达式代数这三个经典成分的融合。命题动态逻辑有多个版本,这取决于程序算子的选择。命题动态逻辑的语义来源于模态逻辑的语义,用于解释命题动态逻辑的程序和命题的结构是Kripke(克里普克)结构(郝一江和张晓君,2009)。
当我们把存储变化当作命题动态逻辑中的基本行为时,就得到了量化动态逻辑,该逻辑起源于“基于带前置条件和后置条件的注释程序的”正确性推理,其程序原子可以进一步分析成给程序变元所赋的值或者被分析成关系测试,而状态则是从程序变元到适当的值之间的映射。动态谓词逻辑是量化动态逻辑的子系统,该逻辑在自然语言的动态语义理论的发展方面扮演着重要的角色。
动态逻辑在语法方面比霍尔逻辑更为灵活,也具有更强的表达力,因为在动态逻辑中,公式的递归定义允许模态算子的任意前缀存在。为了分析程序和公式的相互作用,动态逻辑不仅可以通过“限制每个程序用一个固定的模态词”对经典逻辑加以扩张,而且可以使用程序的不同演算对其进行扩张。这些程序与经典命题逻辑和经典谓词逻辑的规则联系在一起,就出了一个非常丰富的系统家族。在动态逻辑中,典型的原子程序就是赋值语句和基本测试。诸如while-do与if-thenelse这些熟悉的程序设计结构,可以利用算子来构造复合程序。动态逻辑可以表示“在状态转换过程中出现的”赋值变化。
动态逻辑主要用于程序分析、树描述、交流行为以及自然语言的动态语义,尤其适合于对动态情景的推理,也就是那些语句的真值并不固定的情景,即随着时间的变化而变化的情景。该逻辑还可用于分析诸如行为、知识、信念的变化以及计算机程序等,是理解程序结构的相对表达力与复杂性的有力工具。
动态逻辑并不仅仅局限于“用每个程序的一个固定模态词”对经典逻辑加以扩展;它也不仅仅是一个多模态逻辑。动态逻辑是由多个系统组成的丰富家族,它不仅使用了各种程序演算,而且还能够分析程序与公式的相互作用。其复合公式是由原子公式组成的,与此类似,程序演算也允许复合程序由原子程序构成。动态逻辑不仅具有经典命题逻辑和谓词逻辑的规则,而且还有“根据子程序来分析程序行为的”规则,以及能够分析程序与公式的相互作用的规则(张晓君和张呈,2023)。
动态逻辑又称关于程序的模态逻辑,是进行程序逻辑性质研究、程序正确性证明研究的有力的数学工具。动态逻辑是一种与自然语言的语义分析和人工智能都有密切联系的新思想,为现代逻辑理论的发展提供了新题材和新思路。首先,在逻辑系统方面,动态逻辑为逻辑研究的很多方面提供了崭新的研究视角,它不但改革了经典逻辑的静态语义模型,而且打开了动态算子及其推理的广阔空间。其次,在语言科学方面,动态逻辑的特点符合人类运用自然语言的认知过程,可以看成是对基于自然语言的思维过程的理论描述,它比经典逻辑更加适合作为理论语言学的逻辑基础与描述工具。最后,在人工智能方面,动态逻辑与计算机程序语言的关系非常密切。这种逻辑的句法语言直接添加了表征“程序”概念的表达式,可据此编制计算机处理自然语言的程序指令,甚至能够直接提供便于计算机处理的算法,动态逻辑能够为计算机理解自然语言提供理论依据(郝一江和张晓君,2009)。