理性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

相关文章

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五