一、逻辑

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

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



二、蕴含
即一个事情逻辑上是另一个事情的必然结果: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. linux的shell的until循环举例说明

    执行脚本: sh login.sh user,其中user为第一个参数 如下所示,如果用户‘user’登录,'who | grep "$1"'为true,until循环结束,程序继 ...

  2. 浅谈python中的“ ==” 与“ is”、还有cmp

    总之,比较内容相等使用 ‘==’ 1.is" 是用来比较 a 和 b 是不是指向同一个内存单元,而"=="是用来比较 a 和 b指向的内存单元中的值是不是相等 2.pyt ...

  3. TeamCity - Docker创建

    // 创建Server docker run -it --name teamcity-server-instance \-v /home/tc_datadir:/data/teamcity_serve ...

  4. java 报错非法的前向引用

    今天在看<thinking in java>的时候,第四章提到了非法的前向引用,于是自己试了一下,书中的例子倒是一下就明白了,但是自己写的一个却怎么也不明白,于是上网问了一位前辈,终于明白 ...

  5. Pthon的定时任务APScheduler的启动与关闭

    Pthon的定时任务APScheduler的启动与关闭 安装: sudo pip install apscheduler 使用: 直接运行Python文件即可,如 python XXX.py,XXX. ...

  6. asp.net mvc 中使用单例

    有这样一个service,需要运行的asp.net站点上,但要保证这个实例是唯一的.单例用来启用聊天机器人,保证唯一,以免启动多个,造成客户端发送消息的时候,会造成每个机器人都发送消息,app收到多条 ...

  7. iOS7获取UUID以及转换MD5

    近期项目开发,运用到要获取UUID转MD5,可是iOS7不能使用获取的UDID的接口(涉及到隐私),获取MAC地址的方式的接口在iOS7下也废弃了.眼下可能的就是获取UUID了,可是在iOS7下,UU ...

  8. linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案

    linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案 今天在安装程序时,发现有一个插件未安装,我就随手敲了一个命令,看都 ...

  9. WebService注解汇总

    Web Service 元数据注释(JSR 181) @WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值 ...

  10. [USACO 2017DEC] Haybale Feast

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5142 [算法] 首先用RMQ预处理S数组的最大值 然后我们枚举右端点 , 通过二分求 ...