资源描述:
《逻辑程序设计语言范型(逻辑程序设计理论基础).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、03八月2021程序设计语言范型ProgrammingLanguagesParadigms教师:张荣华华北电力大学计算机系软件教研室(保定)逻辑程序设计语言范型逻辑程序设计理论基础第三部分第六章逻辑程序设计理论基础第六章-3内容1.逻辑程序设计概述2.知识的表示2.1谓词演算2.2基于谓词演算的知识表示2.3谓词演算推理规则3.知识的利用3.1搜索3.2推理3.2.1置换与合一3.2.2自然演绎推理3.2.3归结演绎推理3.2.4子句集化简逻辑程序设计理论基础第六章-41.逻辑程序设计概述逻辑程序设计逻辑程序设计支持说明性程序设计范型根据问题的高层描述来构建程序
2、告诉计算机“什么是真的”和“需要做什么”,而不是“怎样做”。程序员把精力放在问题(封闭的问题世界)的描述上,而不是写一些诸如“下一步做什么”之类的底层算法指令。Prolog是目前唯一广泛使用的逻辑程序设计语言Prolog(ProgramminginLogic)20世纪70年代初、法国马赛大学主要应用于人工智能(人类智能活动的模拟)领域相关问题的求解。易于表达人的逻辑思维逻辑程序设计理论基础第六章-51.逻辑程序设计概述【例1】:水平线与垂直线问题。使用两个谓词:vertical/2和horizontal/2vertical(line(point(X,Y),poi
3、nt(X,Z))).horizontal(line(point(X,Y),point(Z,Y))).vertical(line(point(1,1),point(1,3))).yes事实查询/目标horizontal(line(point(1,1),point(2,Y))).Y = 1 ;nohorizontal(line(point(2,3),P)).P = point(_G434,3) ;no逻辑程序设计理论基础第六章-61.逻辑程序设计概述【例2】求解以下六个英语单词的纵横字谜问题。abalone,abandon,anagram,connect,
4、elegant,enhance事实规则逻辑程序设计理论基础第六章-71.逻辑程序设计概述aabloneanagramocnnectaadneeeathneaadnbonleeatngnehnecaaaoeaarmcnet查询/目标逻辑程序设计理论基础第六章-8内容1.逻辑程序设计概述2.知识的表示2.1谓词演算2.2基于谓词演算的知识表示2.3谓词演算推理规则3.知识的利用3.1搜索3.2推理3.2.1置换与合一3.2.2自然演绎推理3.2.3归结演绎推理3.2.4子句集化简逻辑程序设计理论基础第六章-92.知识的表示知识阈值理论知识是一切智能行为的基础智能取决
5、于知识的数量及其可运用的程度。要使计算机具有智能,就必须使它具有知识。知识表示方法(知识表示语言)谓词演算(一阶谓词逻辑表示法)产生式表示法语义网络表示法框架表示法脚本表示法面向对象表示法等等……逻辑程序设计理论基础第六章-102.知识的表示选择知识表示方法的重要性【例】缺角棋盘问题逻辑程序设计理论基础第六章-11内容1.逻辑程序设计概述2.知识的表示2.1谓词演算2.2基于谓词演算的知识表示2.3谓词演算推理规则3.知识的利用3.1搜索3.2推理3.2.1置换与合一3.2.2自然演绎推理3.2.3归结演绎推理3.2.4子句集化简逻辑程序设计理论基础第六章-12
6、2.1谓词演算这里讨论的谓词演算⑴一阶谓词演算(first-orderpredicatecalculus)全称量化变量和存在量化变量仅可以指向论域中的对象,而不允许指向谓词和函数。这样的谓词演算语言称为一阶谓词演算。⑵二值逻辑不讨论其它逻辑形态多值逻辑、多维逻辑、缺省逻辑、动态逻辑逻辑程序设计理论基础第六章-132.1谓词演算【例】用谓词表示命题P:星期二下了雨。谓词表示:weather(tuesday,rain)允许使用变量建立关于实体类的通用断言weather(X,rain)谓词演算符号(项)(以Prolog语言为例)由以下三部分组成:①英文字母,包括大写和
7、小写。②数字0,1……9。③下划线_。以字母开始,后面可以跟这些合法字符的任意序列。逻辑程序设计理论基础第六章-142.1谓词演算谓词演算符号(项)(以Prolog语言为例)①真值符号:true和false(保留符号)②变量符号:以大写字母开始的符号表达式。③常量符号:以小写字母开始的符号表达式。④函数符号:以小写字母开始的符号表达式。⑤谓词符号:以小写字母开始的符号表达式。例如:likes(george,kate)%likes/2likes(george,sarah,tuesday)%likes/3likes(X,kate)friends(father_of(
8、david),fathe