06MARL经典算法 基于agent modelling

文章目录

  • 前言
  • agent modelling
  • 一、Fictitious Play(虚拟博弈)
  • 二、JAL with agent modelling


前言

基于JAL的算法需要对智能体的行为做出假设以便应用博弈知识求解策略,带来很多限制,根据其他智能体观察到的行为对其它智能体进行建模,预测其行为是agent modelling方法


agent modelling

在这里插入图片描述
agent model 能够构建其他智能体的模型,这些模型能够对它们的行为做出有效的预测,一般的智能体模型如图所示,在部分可观测的环境当中,agent model能够推断出所建模智能体对环境状态的信念
最常用的方法称为策略重构,目的是根据其他智能体的观测到过去的行为学习策略模型,学习策略模型的过程是有监督学习,数据采用所建模智能体的动作状态对 { ( s τ , a j τ ) } τ = 1 t \{(s^{\tau},a_{j}^{\tau})\}_{\tau=1}^{t} {(sτ,ajτ)}τ=1t,通过训练得到一系列策略的表示,建模智能体针对其他智能体选择最佳反应策略,以下将采用策略重构与最佳反应学习最优策略

一、Fictitious Play(虚拟博弈)

在虚拟博弈当中,智能体i构建关于j的概率分布模型,该模型是基于智能体j在过去采取的动作的数量决定的,公式如下
π ^ j ( a j ) = C ( a j ) ∑ a j ′ C ( a j ′ ) . \hat{\pi}_j(a_j)=\frac{C(a_j)}{\sum_{a_j^{\prime}}C(a_j^{\prime})}. π^j(aj)=ajC(aj)C(aj).
在每个episode中,智能体i根据智能体j的策略模型选择最佳反应,具体公式如下
B R i ( π ^ − i ) = arg ⁡ max ⁡ a i ∈ A i ∑ a − i ∈ A − i R i ( ⟨ a i , a − i ⟩ ) ∏ j ≠ i π ^ j ( a j ) \mathrm{BR}_i(\hat{\pi}_{-i})=\arg\max_{a_i\in A_i}\sum_{a_{-i}\in A_{-i}}\mathcal{R}_i(\langle a_i,a_{-i}\rangle)\prod_{j\neq i}\hat{\pi}_j(a_j) BRi(π^i)=argmaxaiAiaiAiRi(⟨ai,ai⟩)j=iπ^j(aj)
需要注意:虚拟博弈中最佳反应给出最佳动作而不是最佳策略,因此虚拟博弈并不能解决一些随机的均衡

二、JAL with agent modelling

结合联合动作价值函数与智能体模型与最佳反应得到智能体的概率分布,根据概率分布选择最佳动作,得到观测数据更新概率模型与Q值
在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 基础知识(四)之表操作

目录 1 约束 2 查看已有表 3 创建表 4 查看表结构 5 修改表 6 删除表 1 约束 主键约束 primary key:唯一,标识表中的一行数据,此列的值不可重复,且不能为 NULL,此外,可以多个列组成主键唯一约束 uniq…

Matplotlib自定义辅助函数 (一):让你的图表大放异彩!

Matplotlib美化秘诀:自定义辅助函数,让你的图表大放异彩! 利用Matplotlib进行数据可视化示例 🌵文章目录🌵 🌳一、创建自定义样式函数🌳🌳二、创建自定义颜色映射🌳&…

Rabbit和Springboot整合(高阶)

在昨天的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单…

【C语言】常见字符串函数的功能与模拟实现

目录 1.strlen() 模拟实现strlen() 2.strcpy() 模拟实现strcpy() 3.strcat() 模拟实现strcat() 4.strcmp() 模拟实现strcmp() 5.strncpy() 模拟实现strncpy() 6.strncat() 模拟实现strncat() 7.strncmp() 模拟实现strncmp() 8.strstr() 模拟实现strstr() 9.str…

每日五道java面试题之java基础篇(六)

第一题:Java 创建对象有哪⼏种⽅式? Java 中有以下四种创建对象的⽅式: new 创建新对象通过反射机制采⽤ clone 机制通过序列化机制 前两者都需要显式地调⽤构造⽅法。对于 clone 机制,需要注意浅拷⻉和深拷⻉的区别,对于序列化机制需要明…

每日OJ题_递归①_力扣面试题 08.06. 汉诺塔问题

目录 递归算法原理 力扣面试题 08.06. 汉诺塔问题 解析代码 递归算法原理 递归算法个人经验:给定一个任务,相信递归函数一定能解决这个任务,根据任务所需的东西,给出函数参数,然后实现函数内容,最后找出…

【Vue】工程化开发脚手架Vue CLI

📝个人主页:五敷有你 🔥系列专栏:Vue⛺️稳重求进,晒太阳 工程化开发&脚手架Vue CLI 基本介绍 Vue Cli是Vue官方提供的一个全局命令工具 可以帮助我们快速创建一个开发Vue项目的标准化基础架子【集成了we…

解决‘vue‘ 不是内部或外部命令,也不是可运行的程序(设置全局变量)

发现是没有执行: npm install -g vue/cli 但是发现还是不行 此时,我们安装了 Vue CLI,但是在运行 vue ui 命令时出现了问题。这通常是因为全局安装的 Vue CLI 的路径没有被正确地添加到系统的环境变量中。 可以尝试以下几种方法来解决这个问…

Cocos2dx-lua ScrollView[一]基础篇

一.ScrollView概述 cocos游戏中ScrollView控件大量使用,95%以上的项目都会使用ScrollView,个别游戏可能全部使用翻页的滑动效果。如果想要精通Cocos的UI开发,精通ScrollView控件非常关键,因此对ScrollView的使用进行总结很有必要。 下文缩写说明:sv = ScrollView, item代…

分布式文件系统 SpringBoot+FastDFS+Vue.js【三】

分布式文件系统 SpringBootFastDFSVue.js【三】 七、创建后台--分角色管理7.1.创建后台数据库表7.2.创建实体类7.2.1.Admin7.2.2.Menu7.2.3.MenuBean7.2.4.Role7.2.5.RoleMenu 7.3.编辑配置文件application.yml7.4.编写工具类7.4.1.AuthContextHolder7.4.2.HttpUtils7.4.3.Stri…

Linux——网络通信TCP通信常用的接口和tco服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符,他的作用就是打开一个网络通讯端口,返回的这个描述符其实就可以理解为一个文件描述符&a…

OpenGL-ES 学习(4)---- OpenGL-ES 坐标体系

坐标体系 我们知道 OpenGL -ES 坐标系中每个顶点的 x,y,z 坐标都应该在 -1.0 到 1.0 之间,超出这个坐标范围的顶点都将不可见。 将一个物体(图像)渲染到屏幕上,通常经过将物体坐标转换为标准化设备坐标&am…