第9节逻辑程序设计.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计语言范型 Programming Languages Paradigms 内容 1.逻辑和逻辑程序 2.Horn子句 3.归结与合一 4.Prolog语言 1.逻辑和逻辑程序 逻辑程序设计 逻辑程序设计支持说明性程序设计范型 根据问题的高层描述来构建程序 告诉计算机“什么是真的”和“需要做什么”,而不是“怎样做”。 程序员把精力放在问题(封闭的问题世界)的描述上,而不是写一些诸如“下一步做什么”之类的底层算法指令。 1.逻辑和逻辑程序 谓词演算 逻辑程序设计中使用的逻辑 【例】用谓词表示的逻辑命题 0是自然数 2是自然数 对于所有的x,如果x是自然数,则x+1也是自然数 -1是自然数 1.逻辑和逻辑程序 谓词演算 谓词演算元素 ①常量:数或名称 ②谓词:值域为真或假的函数名 ③函数:区别谓词的其余函数 ④变量:不确定值 ⑤连接词: ⑥量词:描述变量 ⑦标点符号:( ) , ; 1.逻辑和逻辑程序 谓词演算 一阶谓词演算(first-order predicate calculus) 全称量化变量和存在量化变量仅可以指向论域中的对象,而不允许指向谓词和函数 谓词和函数的参数是项 常量 变量 函数 1.逻辑和逻辑程序 谓词演算 推理规则 【例】有如下三段论: “所有人会死;苏格拉底是人,所以苏格拉底会死。” 1.逻辑和逻辑程序 【例】证明:Fido会死 ①Fido是狗 ②所有的狗都是动物 ③所有的动物都会死 证明 ①所有的狗都是动物: ②Fido是狗: ③取式假言推理和{fido/X}: ④所有的动物都会死: ⑤取式假言推理和{fido/Y}: 1.逻辑和逻辑程序 谓词演算 推理规则 为了应用推理规则进行推理,推理机必须能够判断两个表达式是否相同(匹配)。 这种寻找项对变量的置换,使谓词一致的过程叫做合一的过程(合一算法) 项:常量、函数或其他变量 公式集F={man(X),man(socrates)}中的两个公式是可合一的,置换θ= scorates/X是该公式集的一个合一。 1.逻辑和逻辑程序 谓词演算 推理规则 ①化简式(与消除):P∧Q = P 和 P∧Q=Q ②附加式: P=P∨Q 和 Q=P∨Q ③析取三段论: P,P V Q = Q ④取式假言推理: P,P→Q = Q ⑤拒式假言推理: Q,P → Q = P ⑥假言三段论: P → Q,Q → R = P → R ⑦二难推理: P ∨ Q,P → R,Q →R = R ⑧全称固化: ( x)P(x) = P(a) ⑨存在固化: ( x)P(x) = P(a) 1.逻辑和逻辑程序 谓词演算 推理规则 自然演绎推理 从一组已知为真的事实出发,直接运用经典逻辑中的推理规则推出结论的过程 内容 1.逻辑和逻辑程序 2.Horn子句 3.归结与合一 4.Prolog语言 2. Horn 子句 Horn子句是形如 的命题 其中a只能是简单的不包含连接词的命题 a的数量可以为零 注意:Horn子句能够被用来表示大多数的逻辑命题,但不是全部 2. Horn 子句 2. Horn 子句 目标驱动 自动推理系统,反向使用Horn子句 询问(目标语句) 内容 1.逻辑和逻辑程序 2.Horn子句 3.归结与合一 4.Prolog语言 3. 归结与合一 归结(消解) 两个Horn子句 第一个Horn子句的头与第二个子句体的一个命题匹配 则第二个子句中的命题可以被替换为第一个子句的体 【例】 3. 归结与合一 归结过程(目标驱动) 用已知子句的头部来匹配无头子句体中的一个目标 如果成功,用已知子句的体替换被匹配的目标(归结),建立新的子句 继续用同样的方式修改目标系列 这些新的目标被称为子目标 如果成功消除了所有的目标,则初始命题得证 3. 归结与合一 3 归结与合一 必须解决的问题 逻辑程序系统必须使用一个高效执行的算法,规定 求解目标应用子句的顺序 3 归结与合一 必须解决的问题 逻辑程序系统必须使用一个高效执行的算法,规定 系统求解子目标的顺序 内容 1.逻辑和逻辑程序 2.Horn子句 3.归结与合一 4.Prolog语言 Prolog语言概述 Prolog(Programming in Logic) 诞生于20世纪70年代初 法国马赛大学作为自然语言理解项目的一部分研制成功 目前,爱丁堡大学开发的Prolog版本使用最为广泛 主要应用于人工智能领域相关问题的求解 易于表达人的逻辑思维 迄今最能体现逻辑程序设计思想的逻辑编程语言 “说明式”的语言; 采用一阶谓词演算说明(描述)问题 知识库(事实和规则)的

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档