一、逻辑

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

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



二、蕴含
即一个事情逻辑上是另一个事情的必然结果: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. 前端3D、动画相关开源JS

    WebGL http://taobaofed.org/blog/2015/12/21/webgl-handbook/ D3 (或者叫 D3.js )是一个基于 web 标准的 JavaScript 可 ...

  2. influxDB系列(二)

    来源于我在一个influxDB的qq交流群中的提问, 然后有个人 提了一个问题---->触发了我的思考!! :) 哈哈 自己的每一次说出一个回答,都是一次新的思考,也都进行了一些查阅资料,思考, ...

  3. [Node.js] Read a File in Node.js with fs.readFile and fs.readFileSync

    We'll read a csv file in node.js both synchronously, and asynchronously. The file we're reading is a ...

  4. Android c/c++ 应用向linux 平台迁移执行

    鉴于近期在minicamera (linux + FPGA) 平台上模拟 安卓系统camera流程遭遇不断升级同步的困扰.尤其是 不开放源代码后 , 应用要链接封闭动态库造成的困难.以及在sprdis ...

  5. unique函数(STL)

    unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除.他是c++中的函数,所以头文件 ...

  6. RAM、ROM和磁盘

     计算机存储数据的存储器主要分为RAM(随机訪问存储器).ROM.磁盘. RAM又分为SRAM和DRAM两种,SRAM用作快速缓存,DRAM用作主存. 1.SRAM SRAM又被称为静态RAM.利 ...

  7. Xsolla和Hi-Rez工作室联手推行SMITE

    视频游戏店面管理和计费解决方式的领导者,Xsolla.将重拳出击将与Hi-Rez游戏工作室合作.该工作室是一家美国的独立游戏开发商,主要开发MOBA游戏-SMITE. 支持全球600多种支付方式 Xs ...

  8. python 【第二篇】python基本数据类型

    python数据类型 python的数据类型和大多数编程语言一样,有int,float,long,string但是python有三个特殊的数据类型:列表,元组,字典 如果不知道你的数据类型有什么方法: ...

  9. 关于OutOfMemoryError的处理

    转自:http://www.blogjava.net/rosen/archive/2010/05/21/321575.html http://www.blogjava.net/rosen/archiv ...

  10. 配置mahout

    构建Mahout要求系统事先安装 1)JDK 1.6 或更高版本 2)Maven 2.0.9 或 2.0.10 Mahout是Hadoop的一种高级应用.运行Mahout需要提前安装好Hadoop.H ...