07 Logical agents
一些建模范式
- 基于状态的模型:搜索问题,博弈
- 应用:路径搜索,玩游戏等
- 考虑状态、行动和代价
- 基于变量的模型:CSPs,贝叶斯网络
- 应用:调度、医疗诊断等
- 考虑状态和潜力
- 基于逻辑的模型: 命题逻辑、一阶逻辑
- 应用:定理证明、验证、推理
- 考虑逻辑公式和推理规则
- 基于状态的模型:搜索问题,博弈
- 应用:路径搜索,玩游戏等
- 考虑状态、行动和代价
- 基于变量的模型:CSPs,贝叶斯网络
- 应用:调度、医疗诊断等
- 考虑状态和潜力
- 基于逻辑的模型: 命题逻辑、一阶逻辑
- 应用:定理证明、验证、推理
- 考虑逻辑公式和推理规则
动机:聪明的个人助理
目录
- 逻辑智能体:基于知识的智能体
- 知识和推理的重要性
- 部分可观察的环境
- 自然语言理解
- 基于知识的智能体的灵活性
- 逻辑智能体:基于知识的智能体
- 知识和推理的重要性
- 部分可观察的环境
- 自然语言理解
- 基于知识的智能体的灵活性
逻辑的两个目标
- 代表世界的知识
- 推理知识
- 代表世界的知识
- 推理知识
Outline
- 基于知识的Agent
- Wumpus 世界
- 关于基于知识的智能体运转的例子
- 普遍的逻辑:逻辑和蕴涵
- 命题逻辑
- 等价、合法性和可满足性
- 推理规则与定理证明
- 前向链接
- 反向链接
- 归结
- 基于知识的Agent
- Wumpus 世界
- 关于基于知识的智能体运转的例子
- 普遍的逻辑:逻辑和蕴涵
- 命题逻辑
- 等价、合法性和可满足性
- 推理规则与定理证明
- 前向链接
- 反向链接
- 归结
知识库
- 知识库=形式语言中的句子集
- 将新语句添加到知识库——建立Agent(或其他系统)的声明方法:告诉(TELL)它需要知道什么
- 查询目前所知内容——它可以询问(ASK)自己需要做什么—答案应该从KB里面找
- Agents可以从知识层上观察,即它们知道什么而不管怎么实现的;或者在实现层,即KB中的数据结构和操纵它们的算法
一个简单的基于知识的Agent
- 知识库=形式语言中的句子集
- 将新语句添加到知识库——建立Agent(或其他系统)的声明方法:告诉(TELL)它需要知道什么
- 查询目前所知内容——它可以询问(ASK)自己需要做什么—答案应该从KB里面找
- Agents可以从知识层上观察,即它们知道什么而不管怎么实现的;或者在实现层,即KB中的数据结构和操纵它们的算法
一个简单的基于知识的Agent
function KB-AGENT(percept) returns an action
static: KB,a knowledge base
t,a counter,initially 0,indicating time
TELL(KB<MAKE-PERCEPT-SENTENCE(percept,t))
action←ASK(KB,MAKE-ACTION-QUERY(t))
TELL(KB,MAKE-ACTION-SENTENCE(action,t))
t←t+1
return action
- TELL->ASK->TELL
- 表示语言的细节隐含于MAKE-PERCEPT-SENTENCE和MAKE-ACTION-QUERY中
- 推理机制的细节隐藏于TELL和ASK中
- Agent必须能够:
- 表示状态和行为
- 加入新的感知信息
- 更新关于世界的状态表示
- 推导关于世界的隐藏信息
- 推导应采取的合适的行为
- 表示语言的细节隐含于MAKE-PERCEPT-SENTENCE和MAKE-ACTION-QUERY中
- 推理机制的细节隐藏于TELL和ASK中
- Agent必须能够:
- 表示状态和行为
- 加入新的感知信息
- 更新关于世界的状态表示
- 推导关于世界的隐藏信息
- 推导应采取的合适的行为
Wumpus世界的PEAS描述
- 性能度量:金子+100,死亡-1000,每一步-1,用箭-10
- 环境:4×4网格,智能体初始在[1,1],面向右方,金子和wumpus在[1,1]之外随机均匀分布,[1,1]之外的任意方格是陷阱的概率是0.2
- 执行器:左转,右转,前进,捡起,射箭
- 智能体可向前、左转或右转
- 智能体如果进入一个有陷阱或者活着的wumpus的方格,将死去。
- 如果智能体前方有一堵墙,那么向前移动无效
- Grab:捡起智能体所在方格中的一个物体
- Shoot:向智能体所正对方向射箭(只有一枝箭)
- 传感器:
- Smell:在wumpus所在之外以及与之直接相邻的方格内,智能体可以感知到臭气。
- Breeze:在与陷阱直接相邻的方格内,智能体可以感知到微风。
- Glitter(发光):在金子所处的方格内,智能体可以感知到闪闪金光。
- 当智能体撞到墙时,它感受到撞击。
- 当wumpus被杀死时,它发出洞穴内任何地方都可感知到的悲惨嚎叫。
- 以5个符号的列表形式将感知信息提供给智能体,例如(stench,breeze,none,none,none).
- 性能度量:金子+100,死亡-1000,每一步-1,用箭-10
- 环境:4×4网格,智能体初始在[1,1],面向右方,金子和wumpus在[1,1]之外随机均匀分布,[1,1]之外的任意方格是陷阱的概率是0.2
- 执行器:左转,右转,前进,捡起,射箭
- 智能体可向前、左转或右转
- 智能体如果进入一个有陷阱或者活着的wumpus的方格,将死去。
- 如果智能体前方有一堵墙,那么向前移动无效
- Grab:捡起智能体所在方格中的一个物体
- Shoot:向智能体所正对方向射箭(只有一枝箭)
- 传感器:
- Smell:在wumpus所在之外以及与之直接相邻的方格内,智能体可以感知到臭气。
- Breeze:在与陷阱直接相邻的方格内,智能体可以感知到微风。
- Glitter(发光):在金子所处的方格内,智能体可以感知到闪闪金光。
- 当智能体撞到墙时,它感受到撞击。
- 当wumpus被杀死时,它发出洞穴内任何地方都可感知到的悲惨嚎叫。
- 以5个符号的列表形式将感知信息提供给智能体,例如(stench,breeze,none,none,none).
Wumpus世界的表征
- 可观察的:不,只是部分感知
- 确定的:是的,结果完全确定
- 片段的:不,在行动水平上是连续的
- 静态的:是的,Wumpus和陷阱不移动
- 离散的:是的
- 单个Agent的:是的,Wumpus本质上是一种自然特征
探索wumpus世界
- 可观察的:不,只是部分感知
- 确定的:是的,结果完全确定
- 片段的:不,在行动水平上是连续的
- 静态的:是的,Wumpus和陷阱不移动
- 离散的:是的
- 单个Agent的:是的,Wumpus本质上是一种自然特征
探索wumpus世界
图略
普遍的逻辑
- 逻辑是一种形式语言,可以表示能得出结论的信息
- 语法(Syntax)定义了语言中的句子
- 语义(Semantics)定义了句子的意思,即语义定义了每个语句关于每个可能世界的真值
蕴涵
- 蕴涵意为一个语句逻辑上跟随另一个语句而出现:KB |=α
- 知识库KB蕴涵句子α当且仅当在KB为真的每个世界中,α也为真
- 蕴涵是句子间的关系,其基于语义
Models模型
- 当需要精确描述时,用术语模型取代“可能世界”
- “m是α的一个模型”表示语句α在模型m中为真
- M(α)是α的所有模型的集合,则KB|=α当且仅当M(KB)∈M(α),在KB为真的所有模型中α为真
wumpus世界中的蕴含
- 考虑相邻的方格是否包含陷阱
- KB = wumpus-world rules + observations
- α1 = “[1,2]安全“,KB|=α1,通过模型检验证明
- 在KB为真的每个模型中,α1也为真,因此KB|=α1
- α2 = “[2,2]安全“,KB≠α2
- 在KB为真的某些模型中,α为假,因此KB≠α2
- 逻辑是一种形式语言,可以表示能得出结论的信息
- 语法(Syntax)定义了语言中的句子
- 语义(Semantics)定义了句子的意思,即语义定义了每个语句关于每个可能世界的真值
蕴涵
- 蕴涵意为一个语句逻辑上跟随另一个语句而出现:KB |=α
- 知识库KB蕴涵句子α当且仅当在KB为真的每个世界中,α也为真
- 蕴涵是句子间的关系,其基于语义
Models模型
- 当需要精确描述时,用术语模型取代“可能世界”
- “m是α的一个模型”表示语句α在模型m中为真
- M(α)是α的所有模型的集合,则KB|=α当且仅当M(KB)∈M(α),在KB为真的所有模型中α为真
wumpus世界中的蕴含
- 考虑相邻的方格是否包含陷阱
- KB = wumpus-world rules + observations
- α1 = “[1,2]安全“,KB|=α1,通过模型检验证明
- 在KB为真的每个模型中,α1也为真,因此KB|=α1
- α2 = “[2,2]安全“,KB≠α2
- 在KB为真的某些模型中,α为假,因此KB≠α2
Infere