【人工智能】— 逻辑Agent、一般逻辑、Entailment 蕴涵、命题逻辑、前向链接、反向链接、Resolution归结

news2025/1/23 4:39:29

【人工智能】— 逻辑Agent、

  • 逻辑智能体
    • Knowledge bases
      • 一个简单的基于知识的智能体
  • 一般逻辑
    • Entailment 蕴涵
    • Models模型
    • 蕴涵与推理
  • 命题逻辑
    • 逻辑连接词
    • 枚举推理
      • 有效性
      • 可满足性
  • 推导和证明
    • 霍恩子句
    • Forward chaining 前向链接
      • Proof of completeness(完备性)
    • Backward chaining 反向链接
  • Resolution归结
    • 合取范式(CNF)
      • Resolution inference rule归结推理规则 (for CNF):
      • CNF转换
      • 举例
  • 小结

逻辑智能体

  • 逻辑智能体:基于知识的智能体
  • 知识和推理的重要性
    • 部分可观察的环境
    • 自然语言理解
    • 基于知识的智能体的灵活性

Knowledge bases

在这里插入图片描述

  • 知识库是一组用形式化语言表述的陈述句,其中包含有系统需要了解的信息。
  • 在构建一个智能体时,通常采用“告诉”和“询问”的方式,即先将需要的知识加入知识库中,然后智能体会通过查询知识库中的信息来得出答案。
  • 智能体可以从知识层次上进行观察,即从它们所知道的知识来描述,而不考虑具体的实现细节。
  • 也可以从实现层次上进行观察,即从知识库的数据结构和处理这些数据结构的算法来描述。通过这种方式,智能体能够有效地利用知识库中的信息进行推理和决策。

一个简单的基于知识的智能体

在这里插入图片描述
如下是基于知识的Agent的程序轮廓。与其他Agent一样,基于知识的Agent用感知信息作为输入,返回一个行动。Agent维护一个知识库,KB,该知识库在初始化时就包含了一些背景知识。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 一个智能体(agent)必须具备的几个关键能力。
    1. 智能体需要能够表示状态和行为,以便在环境中执行任务。
    2. 此外,智能体需要能够将新的感知信息纳入到其内部状态中,并更新其对世界的状态表示。
    3. 智能体还需要能够推导关于世界的隐藏属性,并基于这些推断出合适的行为。
    4. 这些能力可以通过代表性方法来实现,从而使智能体能够在环境中自主地执行任务。

一般逻辑

  • 逻辑是一种用于表示信息以推断出结论的形式语言。
  • 语法定义了该语言中的句子,即如何构建语句的规则。
  • 而语义定义了句子的“含义”,即句子在世界中的真实性。
  • 例如,算术语言中的x+2≥y是一个句子,而x2+y>不是一个句子。
  • x+2≥y是真的,如果x+2的数值不小于y的数值。在x=7,y=1的世界中x+2≥y是真的,在x=0,y=6的世界中x+2≥y是假的。
  • 这些知识与逻辑学中语法和语义的基本概念相关。同时,这些概念在人工智能中也具有重要作用,尤其是在推理和决策系统中。

Entailment 蕴涵

  • 逻辑中的关键概念之一是蕴涵,它指的是两个命题之间的关系,其中一个命题逻辑上可以推导出另一个命题。也就是说,如果命题A蕴涵命题B,则如果A为真,B也必须为真。例如,命题“所有人都会死亡”蕴涵命题“苏格拉底会死亡”,因为苏格拉底是一个人。

  • 蕴涵表示一个语句逻辑上跟随另一个语句而出现,即如果一个语句A蕴涵另一个语句B,那么当A为真时,B也必须为真。

  • 这种蕴涵关系可以用$KB |= α $来表示,其中KB是一个知识库,sentence α是一个语句。

  • 如果在KB为真的所有世界中, α也为真,则KB蕴涵 α。

  • 蕴涵是基于语义的关系,因为它基于语句在不同世界中的真值。因此,语句的语法语义是蕴涵关系的基础。

  • 如一个知识库包含“巨人队赢了”和“红队赢了”蕴涵“要么巨人队赢了,要么红队赢了”,以及x + y = 4蕴涵4 = x + y。

Models模型

当需要精确描述时,用术语模型取代“可能世界"

  • 首先,当一个语句 α \alpha α 在一个模型 m m m 中为真时,我们称 m m m α \alpha α 的一个模型。用语言表达就是“ m m m α \alpha α 的一个模型”表示语句 α \alpha α 在模型 m m m 中为真。
  • 其次, M ( α ) M(\alpha) M(α) 表示 α \alpha α 的所有模型的集合。
  • 最后,当且仅当在知识库 KB 为真的所有模型中 α \alpha α 为真时,我们说 α \alpha α 在 KB 中是可满足的。用语言表达就是“在 KB 为真的所有模型中 α \alpha α 为真”等价于“KB |= α \alpha α”。
  • 例如,当知识库 KB 包含“Giants 赢了”和“Reds 赢了”时,语句 α \alpha α = “Giants 赢了”在 KB 中是可满足的。

蕴涵与推理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

命题逻辑

逻辑连接词

在这里插入图片描述

两个句子在逻辑上是等价的(逻辑等价):
在这里插入图片描述

枚举推理

所有模型的深度优先枚举是合理和完整的

在这里插入图片描述
但是,对于n个符号,时间复杂度为 O ( 2 n ) O(2^n) O(2n),空间复杂度为 O ( n ) O(n) O(n);问题是co-NP-complete的
在这里插入图片描述

有效性

在这里插入图片描述

可满足性

在这里插入图片描述

推导和证明

  • 证明方法主要有两类:推理规则的应用和模型检查。
    1. 其中推理规则的应用是通过合法的(sound)推理规则,从已知的句子中产生新的句子,通过应用一系列推理规则来构建证明。这个过程可以看作是在搜索空间中使用推理规则作为操作符的搜索过程。通常需要将句子转换成正常形式,以便应用推理规则。
    2. 另一种方法是模型检查,即对于给定的句子,通过枚举其所有可能的赋值,检查是否存在一个模型使得该句子为真。这种方法包括真值表枚举(在 n 中始终是指数级别的),改进的回溯算法(如Davis-Putnam-Logemann-Loveland算法)和模型空间中的启发式搜索(sound但不完备)。

霍恩子句

在这里插入图片描述

Forward chaining 前向链接

前向链接算法:
在这里插入图片描述
在这里插入图片描述

流程:
箭头表示决定某个符号的符号,比如,A和B蕴涵L,

  1. agenda为AB,count如图所示
    这里是引用
  2. 处理完A,对应的count-1
    在这里插入图片描述
  3. AB都为真且处理完毕,此时知道L为真,待处理
    在这里插入图片描述
  4. 此时M计数为0,添加到agenda待处理
    在这里插入图片描述
  5. 处理完毕后P再次变为0
    在这里插入图片描述
  6. 最后处理Q
    在这里插入图片描述
  7. 前向链接算法结束“:
    在这里插入图片描述
  • 对于霍恩子句构成的知识库,Forward chaining 是
    1. 可靠的:每个推理本质上是分离规则的一个应用
    2. 完备的:每个被蕴涵的原子语句都将得以生成

Proof of completeness(完备性)

在这里插入图片描述)
在这里插入图片描述

Backward chaining 反向链接

  1. 从目标Q开始
    在这里插入图片描述
  2. 试图找到能令蕴涵式P->Q为真的情况
    在这里插入图片描述
  3. 同理继续往回推,几个步骤后得到这样的情况:根据AB得到L为真
    在这里插入图片描述
  4. 根据BL得到M为真
    在这里插入图片描述
  5. 最后结果是相同的:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Resolution归结

合取范式(CNF)

合取范式(CNF)是一个逻辑学术语,它表示为文字的析取式的合取式,其中每个文字都是一个变量或者它的否定形式,而每个合取项都是由一个或多个文字的析取组成的,这些合取项被称为clauses。因此,CNF是由多个clause(子句)组成的合取式。
例如:在这里插入图片描述

Resolution inference rule归结推理规则 (for CNF):

在这里插入图片描述
其中li和mj是互补的文字,例如:在这里插入图片描述

  • 命题逻辑中归结是可靠和完备的

CNF转换

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

举例

在这里插入图片描述

小结

  • 逻辑智能体应用推理于知识库,以推导新信息并作出决策。逻辑的基本概念包括:
    1. 语法:句子的形式结构
    2. 语义:句子关于模型的真假性
    3. 蕴涵:给定一个句子,另一个句子成立的必要条件
    4. 推理:从其他句子推导出新句子
    5. 可靠性:推导过程只产生蕴涵的句子
    6. 完备性:推导可以产生所有蕴涵的句子
  • “Wumpus world”需要能够表示部分和否定信息,通过情况进行推理等能力。
  • 前向链接和后向链接是线性时间的,并且对于霍恩子句具有完备性。
  • 归结对于命题逻辑具有完备性。
  • 命题逻辑缺乏表达能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/413986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT学习开发笔记(项目实战之智能家居物联网项目1 )

智能家居物联网项目 本章介绍使用 Qt 开发智能家居中的一个物联应用。简单直白的说就是通过云服务器远程控 制设备(与设备通信等)。本章可以直接做毕设,是毕设物联网项目的一大福音!本章将实现远 程点亮开发板 LED 作为一个项目实…

springboot从2.1.3升级到2.3.5后控制台自动输出http请求日志RequestResponseBodyMethodProcessor

springboot从2.1.3升级到2.3.5后控制台自动输出http请求日志RequestResponseBodyMethodProcessor和RequestMappingHandlerMapping推荐使用第二个方案简单 明了 方便 快捷方案一第一步定义TurboFilter第二步配置logback方案二 直接配置logback的配置XML推荐使用第二个方案简单 明…

Insomnia 简单使用方法

文章目录1. 新建工程2. 新建若干文件夹3. 设置环境变量4. 授权以及进行请求的链式调用 (chaining requests)4. 1 解决办法 14. 2 解决办法 2Insomnia 同 Postman, 用于测试后端 endpoint,很容易使用。使用步骤如下:1. 新建工程 2. 新建若干文…

字节跳动软件测试面试过了,起薪20k

普通二本计算机专业毕业,从毕业后,第一份接触测试的工作是在一家通讯小公司,大部分接触的工作是以功能测试为主,一直都是几千块钱工资,还一度被派出差,以及兼职各种产品、运维、运营的活,感觉自…

四十五、docker之nginx手动部署前端项目

nginx的作用: 一、静态文件服务器和反向代理django服务 django框架中的静态文件服务只在开发调试时提供服务,当以生产模式运行时需要将静态文件部署到静态文件服务器上。 1. 收集django项目中的静态文件 在配置文件中配置STATIC_ROOT 我们在我的项目…

如何在低代码平台上构建ERP软件?

ERP软件是企业管理日常运营需求的关键组件。然而,对于许多企业,尤其是资源有限的企业来说,尝试构建和管理ERP平台可能要担负较高的成本的。幸运的是,低代码平台可以使这个过程变得容易得多。今天我们来解释如何在低代码平台上构建…

细粒度软件缺陷预测模型构建方法

在软件缺陷预测领域,粒度指的是缺陷库中每条样本的项目粒度.其中可以分为类粒度、文件粒度或者包粒度等。不同的开发语言有不同的层级的模块粒度,在软件缺陷预测领域,一般来说,在预测效果能够满足要求的情况下,粒度越小…

map容器(重要)

1、map容器简介 Map容器中所有的元素都会根据元素的键值自动实现排序。Map中所有的元素都是pair,pair的简介 同时拥有实值和键值,而前面的 set 只是拥有 键值,pair 中的 第一个元素是键值,而第二个值是 实值。Map 中是不允许有两…

Maven的进阶操作

系列文章目录 Maven进阶操作的学习 文章目录系列文章目录前言一、分模块开发与设计二、依赖管理1.依赖传递2.可选依赖3.排除依赖三、继承与聚合1.聚合2.继承四、属性1.属性2.版本管理五、多环境配置与应用1.多环境开发2.跳过测试六、私服1.私服简介2.私服仓库分类3.资源上传与…

IDEA的基本使用

IDEA的基本使用IDEA的基本使用1 IDEA概述2 IDEA的下载和安装2.1 下载2.2 安装3 IDEA中层级结构介绍3.1 结构分类3.2 结构介绍project(项目、工程)module(模块)package(包)class(类)3…

C#基础学习--委托

委托 什么是委托 可以认为委托是持有一个或多个方法的对象。 委托和类一样,是一种用户自定义的类型。但类表示的是数据和方法的集合,而委托则持有一个或多个方法,以及一系列预定操作。 可以通过一下擦欧总来使用委托: 可以把d…

度量,我们如何以终为始,以始为终?

你好,我是黄俊彬。 很多时候在研发过程中,我们都习惯性地用“拍脑袋”的方式来看待一个事情。例如这个代码写得不好、这个自动化测试覆盖不充分、版本的发布频率太差了等等。往往只知道哪里有问题,但是却不知如何去找出根因,真正…

14、MyBatis-Plus入门到进阶

1、Mybatis的问题 【简介】: 每个实体类对应一个实体类,对应一个mapper接口,对应一个mapper.xml文件,每个mapper接口都有重复的crud方法,每一个mapper.xml都有重复的crud的sql配置。 2、Mybatis-plus简介 1、官网 Mybatis-plusMybatis-plus 2、MyBatis是什么&a…

JS常用字符串方法

📝个人主页:爱吃炫迈 💌系列专栏:数据结构与算法 🧑‍💻座右铭:道阻且长,行则将至💗 文章目录移除字符串首尾空白符trim()trimStart()trimEnd()获取字符串指定位置的值ch…

记2023第十四届蓝桥杯感受

弱校ACM队员,曾获CB国二,CG国优第六。(我是fw) ------------------------------------------------------------------------分割线 2023.04.09 今年再次参加CG组,估计g了,盲猜一波省二前排,出…

基于BenchmarkSQL的Oracle数据库tpcc性能测试

基于BenchmarkSQL的Oracle数据库tpcc性能测试安装BenchmarkSQL及其依赖安装软件依赖编译BenchmarkSQLBenchmarkSQL props文件配置数据库用户配置BenchmarkSQL压测装载测试数据TPC-C压测(固定事务数量)TPC-C压测(固定时长)生成测试…

C++轻量级Web服务器TinyWebServer源码分析之http篇

文章目录http篇简介一、服务器接收http请求和http报文解析解析报文整体流程从状态机逻辑主状态机逻辑二、服务器响应请求报文http篇简介 http类这篇个人觉得是最难同时也是最繁琐的一篇,本篇在基础知识方面,包括epoll、HTTP报文格式、状态码和有限状态机…

Python 小型项目大全 71~75

七十一、声音模拟 原文:http://inventwithpython.com/bigbookpython/project71.html 类似于西蒙电子玩具,这款识记游戏使用第三方playsound模块,播放四种不同的声音,分别对应键盘上的A、S、D、F键。当你成功地重复游戏给你的图案时…

驱动保护 -- 通过PID保护指定进程

一、设计界面 1、添加一个编辑框输入要保护的进程PID,并添加两个按钮,一个保护进程,一个解除保护 2、右击编辑框,添加变量 二、驱动层代码实现 1、声明一个受保护的进程PID数组 static UINT32 受保护的进程PID[256] { 0 }; 2…

Python Web开发技巧II

Postman安置Cookie 对于大型项目而已,所携带的cookie往往都不止一个,而是一堆,甚至特别特别长,postman文档提供的cookie操作是全局的,但需要一个一个打(折磨),唯一的优点就是作用域…