理性Agent、任务环境

2024-03-01 12:18
文章标签 环境 理性 任务 agent

本文主要是介绍理性Agent、任务环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

——参考文献《人工智能:一种现代的方法》(第3版)

一个agent与环境的互动(接受刺激,反馈行动):

 

 

所以人,机器等,都可以看作是一个agent:

注:softbots  维基百科解释为: In computer science, a software agent is a computer program that acts for a user or other program in a relationship of agency, which derives from the Latin agere (to do): an agreement to act on one's behalf. Such "action on behalf of" implies the authority to decide which, if any, action is appropriate.    意思是softbots是另一个人或者软件的代理。例如:Siri(它从别的地方收集信息并推给你)

 

如何判定一个agent是“优秀的”、“好的”?

显而易见的是,从它的行为判断。

以扫地机器人为例。有A、B两个方块,它需要做的是把方块清扫干净。我们假定环境地形已知(作为先验知识)、命令不会使它移出环境、它能正确感知灰尘的是否存在、灰尘的位置。我们给定奖惩机制(例如一定周期内某方块保持干净给1分等)。

这时它有几个选择:向左、向右、吸尘

                                                                (功能描述)

 

实际上,我们会发现情况比较复杂。

如果单从行为结果上考虑,可能会发现不同的扫地机器人在某时间段内行为结果是一样的,这意味着它们一样优秀吗?显然不一定。

所以这个时候用性能度量会更加客观。例如计算八小时内清理灰尘总量、或者每小时清理灰尘总量。

这时我们又会发现,可能一个机器人会不停的把灰尘清扫了再倒出来,以提高它清扫灰尘的总量,或者另一个在前几分钟之内清理完所有灰尘然后无所事事。

so,我们会希望一个agent 是理性的。

 

什么是理性的?A rational agent chooses whichever action maximizes the expected value of the performance measure given the percept sequence to date.

在现有环境序列下,一个理性的agent会做在规定的性能度量下利益最大化的事情。

理性,即探索,学习,自主性,

理性agent执行的结果不是完美的,但是当下环境最佳的。

 

 

what is 性能度量?

在构建一个理性agent时,首先考虑它所处的环境。(扫地机器人和自动驾驶仪当然需要不同的衡量标准)

 

 

任务环境的描述,称为PEAS描述:Performance(性能)、 Environment(环境)、 Actuators(执行器)、 Sensors(感知器)

 

来定义几个维度吧!

 

完全可观察与部分可观察

 

单Agent与多Agent(竞争、合作、部分竞争部分合作。例如国际象棋【竞争性的多Agent】和无人驾驶【部分竞争,比如停车位;部分合作,比如避免发生冲撞】)

 

确定与随机(确定:环境的下一个状态完全取决于此时的状态和Agent的动作。注意!:”不确定“和“随机”是两个概念。不确定:环境中行动有多种可能,但与概率无关【走在路上被花盆砸中】。随机:后果是不确定的但是可以用概率量化【抛一个硬币你不知道它落下来朝哪面】

 

片段与延续(片段的环境中当前决策不会影响下一个片段的决策)

 

静态与动态(静态、动态、半动态。半动态:环境本身不随时间变化而变化,但是Agent的性能评价随时间变化【国际象棋,就算它不动但是时间在变化,它的性能评价也随之变化】)

 

离散与连续(环境的状态、时间的处理方式、Agent的感知信息与行动【国际象棋的环境、感知信息与行动是离散的;自动驾驶的时间和状态连续;】)

 

已知与未知(Agent的知识状态。注意 “已知/未知” 和“可观察/不可观察” 也是两个概念)

 

 

 

 

 

 

这篇关于理性Agent、任务环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762429

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme