一、逻辑

逻辑是一种可以从中找出结论的形式化语言。

  • 句法(规则)用语言定义句子。
  • 语义定义句子的含义。定义一个句子的真假性。



二、蕴含
即一个事情逻辑上是另一个事情的必然结果:KB ╞ α
知识库KB蕴含句子α,当且仅当α在所有KB为真的世界里均为真。


蕴含是基于语法的句子关系。


三、命题逻辑
  • 命题逻辑是最简单的逻辑——只能表明基础的思想
命题符号P1,P2等都是句子,则:
如果S1是句子,那么 !S也是句子(否定)
如果S1和S2都是句子,那么 S1 ^ S2也是句子(合取)
如果S1和S2都是句子,那么 S1 V S2也是句子(析取)
如果S1和S2都是句子,那么 S1 -> S2也是句子(蕴含)
如果S1和S2都是句子,那么 S1 <-> S2也是句子(双向蕴含)



  • 命题逻辑语义

对每个命题符号的模型均有真/假两种可能的取值,对与P1,2 , P2,2 , P3,1三个命题,可以通过枚举的形式自动地给出8个模型.







  • 逻辑的永真性和可满足性
一个句子在某些模型中为真,则它是可满足的。
e.g., A V B, C
一个句子没有模型为真,则它是不可满足的。
e.g., A ^ !A




四、归结
合取范式一些析取式的合取式。

• 对与命题逻辑来说归结法是可靠的,也是完备的。




转换规则






五、有效的命题推理

两个有效的命题推理算法家族:
       完备的回溯搜索算法
             戴维斯-普特南算法DPLL(Davis, Putnam, Logemann, Loveland)
      不完全局部搜索算法
             WalkSAT 算法



1、戴维斯-普特南算法DPLL
DPLL算法以合取范式形式的子句集作为输入。(反证法)
(思想)改进真值表枚举法:
(1)及早终止当一个子句的一个文字为真,则该子句为真。如,(A V !B)中A为真,则(A V !B)为真当一个子句为假,则该句子(合取范式)为假。
(2)纯文字(删除)启发所谓纯文字就是在子句集里,只有一种符号的文字。如,子句集中A和B都只有一种符号,而C就有互补的文字。设纯文字为真。
(3)单元子句启发(优先)只有一个文字的子句优先只有一个文字的子句必须为真(否则,子句集为假)趋势:使归结往目标的方向进行,无论是寻找结果还是寻找矛盾。



2、WalkSat算法
思想:
对于逻辑命题,我们寻找满足每一个子句集的一个赋值。因此,设计统计未满足子句的数量的评价函数。算法采用每次反转一个符号真值的方法。
性能:
• 不完备:局部搜索算法。
• 评价函数:最小冲突启发,最小不满足子句个数。
• 在贪婪和随机中找平衡。







人工智能(七)逻辑Agent的更多相关文章

  1. 阿里BCG重磅报告《人工智能,未来致胜之道》

    阿里BCG重磅报告<人工智能,未来致胜之道> 阿里云研究中心.波士顿咨询公司以及Alibaba Innovation Ventures合作共同推出的<人工智能:未来制胜之道>这 ...

  2. 逻辑编程入门--clojure.core.logic

    此文已由作者张佃鹏授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1. 逻辑编程思维: 逻辑编程(逻辑程序设计)是种编程范型,它设置答案须匹配的规则来解决问题,而非设置步骤来 ...

  3. 人工智能AI------有限状态机、分层状态机、行为树

    https://www.cnblogs.com/zhanlang96/p/4793511.html 人工智能遵循着:感知->思考->行动决策方法:有限状态机(Finite-State Ma ...

  4. CMDB(Configuration Management Database)资产管理系统和 运维自动化

    一.传统运维方式和自动化运维的区别 二.CMDB的介绍 三.CMDB的四种方式 四.项目的目录架构介绍以及配置文件的升级编写 五.比较low的项目架构书写 六.可插拔式收集资产 七.对收集的服务器信息 ...

  5. AI1.1-人工智能史

    来自:http://zh.wikipedia.org/wiki/人工智能史#CITEREFBerlinski2000 这篇是来自维基百科上面的人工智能史,将其大部分保留(真的是大部分,所以差不多没有原 ...

  6. 游戏引擎架构 (Jason Gregory 著)

    第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...

  7. C语言操作符/表达式及其作用总结

    一.算术操作符:+ - * / % 1. 除了 %操作符之外,其他的 几个操作符可以作 用于整数和浮点数. 2. 对于"/"操作符如果两个操作数都为整数,执行整数除法.而只要有浮点 ...

  8. [源码解析] PyTorch 分布式之弹性训练(5)---Rendezvous 引擎

    [源码解析] PyTorch 分布式之弹性训练(5)---Rendezvous 引擎 目录 [源码解析] PyTorch 分布式之弹性训练(5)---Rendezvous 引擎 0x00 摘要 0x0 ...

  9. ApacheCN C# 译文集 20211124 更新

    C# 代码整洁指南 零.前言 一.C# 代码标准和原则 二.代码审查--过程和重要性 三.类.对象和数据结构 四.编写整洁的函数 五.异常处理 六.单元测试 七.端到端系统测试 八.线程和并发 九.设 ...

随机推荐

  1. java 返回json数据

    Student st1 = new Student(1, "dg", 18, new Date());            Student st2 = new Student(2 ...

  2. Deepin-安装git

    sudo apt-get install git 命令介绍(安装软件):apt-get install 命令介绍(Debian系列以管理员运行的前缀):sudo

  3. 【Android开发-4】进入实践,最喜欢折腾的计算器

    前言:前面对项目文件有了感性认识.接下来我们就须要通过不断实践,对项目的文件有理性的认识. 曾经折腾Unity3d.IOS开发都是拿计算器开刀.所以这次Android开发实践也不例外,继续拿计算器折腾 ...

  4. 鸟哥的Linux私房菜-----13、账号管理

  5. python的线程thread笔记

    python的线程是用thread和threading来实现的.其中利用threading会更好,因为thread没有线程保护,当主线程退出了之后,子线程也会被强行退出.threading支持守护线程 ...

  6. PHP开发者实用的代码

    一.查看邮件是否已被阅读 当你在发送邮件时,你或许很想知道该邮件是否被对方已阅读.这里有段非常有趣的代码片段能够显示对方IP地址记录阅读的实际日期和时间. <? error_reporting( ...

  7. Selenium系列之--02 不同浏览器获取Xpath的方法

    一.Chrome浏览器 1.1 获取XPath 1.  使用浏览器打开需测试的网址,然后点击[F12]按钮,打开开发者调试工具: 2.  点击开发者工具中第一行的第一个对话框Elements,这时就看 ...

  8. android真机调试 INSTALL_FAILED_MEDIA_UNAVAILABLE 问题解决方案

    前提是手机用数据线连到电脑,安装好手机对应的驱动. 1:打开cmd 2:cd切换到sdk安装目录的platform-tools目录,比如我安装到了D盘根目录,则输入: cd d:\android-sd ...

  9. ArrayAdapter requires the resource ID to be a TextView

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABDUAAADFCAIAAADLz168AAAgAElEQVR4nO2d368kxZXnQ37dn9qdWa

  10. mipi屏在内核可以显示logo但是u-boot无法显示的问题【转】

    本文转载自:http://blog.csdn.net/fulinus/article/details/45071721 平台:瑞芯的rk3288 u-boot版本:u-boot-2014.10 ker ...