多智能体深度强化学习在移动边缘计算的联合多通道访问和任务卸载中的应用

news2024/10/7 14:29:07

多智能体深度强化学习在移动边缘计算的联合多通道访问和任务卸载中的应用

  • 主要贡献
  • 与相关工作比较的贡献
  • 三、系统模型(only 2 pages)
    • 3.1 网络模型
    • 3.2 通信模型
    • 3.3 计算模型
      • 3.3.1 本地计算
      • 3.3.2 卸载计算
  • 四、预备知识(only 1 page)
  • 五、问题阐述(only 2 pages)
    • 基于 MADDPG 的多通道访问和任务卸载
      • 关于网络的训练过程(核心算法部分)
  • 实验部分
    • 作者设计的baseline
  • 附录
    • 缩写名词
    • 符号说明
    • 实验中的超参数的设定

主要贡献

  1. 我们首次考虑了 IIoT 中 MEC 协作环境中的联合多通道访问和任务卸载。
  2. 通过多代理强化学习算法对 MTA 的协作资源分配问题进行建模。
  3. 提出的算法能够处理大型 MEC 系统,它可以从历史观察中渐进地找到最优策略,而不需要系统动力学的优先级。
  4. 我们选择一个可以使其他MTA的信道增益算术平均值最大的MTA来存储全局经验重放缓冲区,减少相互通信的开销。

与相关工作比较的贡献

Although there have been some excellent works on multichannel access and task offloading in MEC, but none of them join the two issues in multiagent environment in which the cooperation between devices needs to be considered.
In this article, we first apply a multiagent reinforcement learning scheme to design multichannel access and offloading control in MEC to make MTAs learn to cooperate.
As far as we know, our proposed method is the first study and implementation of MARL in the field of IIoT.

三、系统模型(only 2 pages)

分为网络模型,通信模型,计算模型三个部分进行叙述。

3.1 网络模型

作为一种新型的网络范式,SDN允许直接的可编程的网络控制。
SDN通过分离控制层和数据层使基础设施对用户透明。 SDN 允许支持将计算和存储功能引入边缘网络设备所需的控制功能,从而使云服务更接近最终用户。由于网络控制器都是软件定义的,便于设计新的网络功能和软件接口。
如图 1 所示,在自上而下的视图中,我们提出的网络架构由四层组成:1)应用层; 2)控制层; 3)数据层; 4) ED 层(也就是edge层)。

在这里插入图片描述

  1. Application Layer: The application layer has a series of cloud service applications consisting of a bundle of application systems. The goal of the network design is to implement and execute these Web applications.
  2. Control Layer: In this layer, the SDN controller is responsible for the centralized management of data layer devices and edge computing servers. The controller receives requests from the application layer through the northbound API. These advanced commands are compiled by the controller and converted into low-level OpenFlow messages which is a network communication protocol dedicated to SDN for forwarding to the switch and implementing functionality there. Finally, the SDN controller allocates and adjusts spectrum resources in the network based on different functional or network requirements (e.g., resource allocation and task calculation). 也就是说,application 层通过控制层来控制下面得数据层和边缘计算设备。
  3. Data Layer: The data transmission layer includes switches, wireless access points, and gateways. All nodes can be controlled by receiving OpenFlow commands from the control layer through the southbound interface, eg. the computation decisions in our proposed task offloading algorithm.
    注意,数据传输层包含了交换机,无线访问节点和网关。
  4. Edge Device Layer: EDs consist of a variety of basic equipments, including smart car, sensors portable devices, robots, cameras, etc. Each device is considered an agent, and we consider a set of MTA, which is denoted as N ={1, 2,…,N}.

3.2 通信模型

在这里插入图片描述

为了更好地利用频谱资源,节省带宽,避免信道拥塞,我们考虑D2D通信。作为2LTE通信技术的补充,D2D通信可以在不经过基站(BS)的情况下实现两个设备之间短距离的直接链接,从而降低传输功率和重复利用频谱。我们考虑根据渠道情况选择 MTA 管理员,记为 aadmin。其余的 MTA 可以直接通过 D2D 通信从 MTA 管理员上传或下载历史信息(观察和行动)。

选择aadmin的方法使用[40]中提出的“A-means”方案,它可以最大化对其他MTA的信道增益的算术平均值
在这里插入图片描述
其中 gai,aj 表示 D2D 通信中从 MTAi 到 MTAj 的信道增益

作为说明,图 2 显示了最小网络单元的细节。在最小网络中,有 N 个 MTA 和一个 MEC Server。 MTA 通过 D2D 链接将其经验回放缓冲区 D i l D_i^l Dil (本地观察和操作)上传到 a a d m i n a_{admin} aadmin。 MTA 还可以从 a a d m i n a_{admin} aadmin 下载 全局经验回放缓冲区 D 以训练它的网络。

MTA更新其策略后,根据当前策略选择在本地计算任务或通过M2M链路将任务卸载到MEC服务器,并处于观察状态。最小网络的频谱被划分为K个通道,记为集合K = {1, 2, …, K}。MTA将在每个时隙决定是否将任务卸载到MEC服务器并选择用于无线通信的信道。每个信道的带宽表示为 B a i , k B_{{a_i},k} Bai,k。当MTAi选择将计算卸载到MEC服务器并接入通道k时,上行速率表示为:
在这里插入图片描述
where g a i , k g_{{a_i},k} gai,k is the channel gain of MTAi to channel k and obeys a Gaussian distribution with zero mean and unit variance σ 2 σ^2 σ2 which is the system noise power.
Each channel has two states, which can be expressed as s k ( t ) ∈ 0 , 1 s_k(t) ∈{0, 1} sk(t)0,1, which means {free, busy}, respectively. When the channel is transmitting a task, the channel will be occupied and the status will change to be busy. In addtion, the connection establishment time is relatively short, and we only consider the transmission time.

3.3 计算模型

在本文的设定中,计算任务是原子的并且不可以被进一步分割。

3.3.1 本地计算

在这里插入图片描述
分子是计算任务需要的时钟周期数,分母是计算能力。

3.3.2 卸载计算

在这里插入图片描述
在这里插入图片描述
其实就是数据传输量除以数据传输的能力。
在这里插入图片描述

最终的计算延迟的表述为:
在这里插入图片描述

四、预备知识(only 1 page)

五、问题阐述(only 2 pages)

在多智能体问题中,像 DQN 这样的传统强化学习算法存在障碍。最重要的原因是在训练过程中,对于每一个agent来说,其他agent都是环境的一部分,其他agent的变化会使环境变得不稳定,这就打破了Q-learning算法所需要的马尔可夫假设。因此,DQN 在多智能体环境中不容易收敛。在本节中,我们考虑 IIoT 中 MEC 的多通道访问和任务卸载问题。然后,我们提出了一种基于 MADDPG 的算法,如算法 1 所示,应用于我们的问题,以便 MTA 可以学习合作策略并提高系统效率。

奖励分为两个部分 the channel quality reward 和 time difference reward for the MTAi

the channel quality reward
当MTA将计算任务卸载给MEC服务器时,考虑到多通道访问问题,MTA会根据当前策略选择一个最优通道。如果MTA选择的频道是空闲的,则表示传输成功,奖励设置为+1。如果通道忙,则表示传输失败,奖励设置为-1。
在这里插入图片描述

time difference reward for the MTAi
We take the time difference between the local computation delay and the currently obtained delay as part of the reward, which means that the delay reward will be 0 when the MTA process computing tasks locally.
在这里插入图片描述
在这里插入图片描述
It can be seen that the reward will be 0 if the MTA decides to calculate task locally at one time slot, and we use this as a comparison item. MTA will get a positive reward if the MTA obtains a lower delay than the local calculation. Otherwise, a negative reward will be obtained. Then, the total reward at time slot t is the sum of the reward all MTAs have obtained, which is denoted as
在这里插入图片描述

基于 MADDPG 的多通道访问和任务卸载

在这里插入图片描述

行动者网络:图 4 描述了应动者网络的细节。对于每个MTA,actor网络的输入是它的状态,表示为si(t),然后通过带有ReLU激活层的两层全连接网络。最后,输出层节点的数量是所有可能动作的数量(即K + 1,包括卸载到MEC服务器并在本地计算时的K个通道选择)。输出层经过一层softmax,输出的每个值代表对应动作的概率。最终的输出动作是根据输出概率随机选择的,输出动作用长度为K+1的one-hot向量表示。one-hot是一种将离散特征的值扩展到欧空间的编码方式,使机器更容易处理数据。然后,one-hot vector 可以转换为特定的通道选择 au(t) 和设备选择 ac(t)。为了避免陷入局部最优,我们还将探索概率固定为0.05来输出随机动作。
在这里插入图片描述

评论家网络:图5描述了评论家网络的细节。评论家网络比演员网络简单。它由两个全连接的网络隐藏层和一个单节点的输出层组成。激活函数为ReLU。图5所示。评论家网络模型。评论家网络的输入是所有mta的状态s和动作a,输出是q值。q值可记为Qπ (st, at)。

在这里插入图片描述

关于网络的训练过程(核心算法部分)

在每个时隙开始时,每个MTA都会从全局经验回放缓冲区D中采样S个随机样本的minibatch。将minibatch输入到critic网络后,将得到长度为S的Q值向量。演员网络可以用采样梯度更新,表示为
在这里插入图片描述

此外,在训练网络时,actor 网络需要本地信息(即每个 MTA 本身的状态)和 critic 网络输出的 Q 值, 而 critic 网络需要有关所有 MTA 的信息。训练完成后,执行阶段只需要actor网络,每个MTA可以根据自己的状态信息做出最优动作。

实验部分

下面的actor-critic算法假设每一个MTA并不知道其他MTA的信息。
在这里插入图片描述

作者设计的baseline

此外,为了提供基线,我们设计了贪心策略。我们假设在贪心策略下所有通道的状态都是已知的。在每个时间段,如果任务成功卸载到 MEC 服务器,MTA 会计算奖励。如果reward大于0且有空闲通道可用,则任务会通过随机空闲通道卸载到服务器,否则任务会在本地计算。显然,由于缺少其他MTA 的信息,当空闲信道的数量远小于将向服务器卸载任务的MTA 的数量时,将导致信道拥塞。 该策略虽然不能达到全局最优,但可以代表单智能体算法在多智能体环境下所能获得的理论上的最优结果。

附录

缩写名词

mobileedge computing (MEC)
the industrial Internet of Things (IIoT) 工业互联网
machine-type agent (MTA)
unmanned aerial vehicles (UAVs) 无人驾驶飞行器

符号说明

在这里插入图片描述

实验中的超参数的设定

在这里插入图片描述

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

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

相关文章

Autosar COM Stack系列介绍01_一文看懂各层PDU

本文框架1. 概述1.1 缩写2. OSI模型在Autosar中应用3. 各层PDU介绍3.1 L-PDU3.2 N-PDU3.2.1 N_AI3.2.2 N_PCI3.3 I-PDU1. 概述 在学习Autosar通信栈时中会遇到关于PDU的各种缩写,例如,L-PDU,N-PDU,I-PDU还有SDU等,它们…

Kafka3.0.0版本——生产者自定义分区器

目录一、生产者自定义分区器代码示例1.1、自定义分区器类1.2、生产者发送消息代码(生产者的配置中添加分区器参数)1.3、测试一、生产者自定义分区器代码示例 1.1、自定义分区器类 代码 package com.xz.kafka.producer;import org.apache.kafka.clients.…

Web API学习笔记1(DOM学习)

一、API 和 web API 1API API —— 应用程序编程接口,是给程序员提供的一种工具,以便能更轻松的实现想要完成的功能。可以比作为充电接口 2.Web API 是浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM),主…

HarmonyOS/OpenHarmony应用开发-ArkTS画布组件CanvasRenderingContext2D对象(十一)

measureText measureText(text: string): TextMetrics 该方法返回一个文本测算的对象,通过该对象可以获取指定文本的宽度值。 示例: // xxx.etsEntryComponentstruct MeasureText { private settings: RenderingContextSettings new RenderingConte…

机器学习 异常值检测与处理

文章目录一、异常值检测1.1 简单统计1.2 3σ原则检测1.3 箱线图检测1.4 DBScan密度聚类二、异常值处理异常值是指不属于某一特定群体的数据点。它是一个与其他数值大不相同的异常观测值,与良好构成的数据组相背离。在机器学习建模准备数据集时,检测出所有…

Day940.开发分支 -系统重构实战

开发分支 Hi,我是阿昌,今天学习记录的是关于开发分支的内容。 组件化,软件变得更加高内聚、低耦合,开发及维护的效率也更高了,但是组件化的架构又会引入新的复杂度。 举个例子,在重构前我们基于一个模块…

解决Failed to load ApplicationContext问题的思路

中文翻译&#xff1a; 加载ApplicationContext失败 第一步&#xff1a;首先检查测试类的注解 以及 依赖 SpringBootTest <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope…

【数据库复习】第三章关系数据库标准语言SQL 集合查询 2

用EXISTS/NOT EXISTS实现全称量词 SQL语言中没有全称量词" &#xff08;For all&#xff09; 可以把带有全称量词的谓词转换为等价的带有存在量词的谓词&#xff1a; 查询学生S没有选修的课程 查询选修了全部课程的学生姓名。 等价于&#xff1a;查询这样的学生&#xf…

基于灵动微SPIN系列开发的水泵方案介绍 以 MM32SPIN040C/MM32SPIN560C为主控

水泵是输送液体或使液体增压的机械。它将原动机的机械能或其他外部能量传送给液体&#xff0c;使液体能量增加&#xff0c;主要用来输送液体包括水、油、酸碱液、乳化液、悬乳液和液态金属等。 水泵以 MM32SPIN040C/MM32SPIN560C为主控。 水泵方案 MCU: MM32SPIN系列 1.输入…

redis主从复制详解

文章目录主从复制概述主从复制的作用主要包括&#xff1a;数据冗余故障恢复负载均衡高可用基石主从库之间采用的是读写分离的方式读操作写操作主从复制原理全量复制确立主从关系全量复制的三个阶段第一阶段是主从库间建立连接、协商同步的过程&#xff0c;主要是为全量复制做准…

业务逻辑复杂如何解决性能问题

0 前言 上节针对生成订单信息这个接口做了三个阶段的分析定位和优化动作&#xff0c;让TPS变得正常。不过&#xff0c;系统资源并没有完全用起来&#xff0c;这个接口显然还有优化空间。性能优化的过程中&#xff0c;要把资源都用起来。 在性能环境中做优化&#xff0c;把资源…

自动化测试框架之selenium

目录1 自动化测试1.1 单元测试1.2 接口测试1.3 UI测试1.3.1 UI自动化测试的优点&#xff1a;1.3.2 UI自动化测试的适用对象1.4 自动化测试流程2 selenium3 selenium IDE 录制脚本1 自动化测试 自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或者系统&…

50 openEuler搭建PostgreSQL数据库服务器-配置环境

文章目录50 openEuler搭建PostgreSQL数据库服务器-配置环境50.1 关闭防火墙并取消开机自启动50.2 修改SELINUX为disabled50.3 创建组和用户50.4 创建数据盘50.4.1 方法一&#xff1a;在root权限下使用fdisk进行磁盘管理50.4.2 方法二&#xff1a;在root权限下使用LVM进行磁盘管…

图解HTTP阅读笔记:第5章 与HTTP协作的Web服务器

《图解HTTP》第五章读书笔记 图解HTTP第5章 与HTTP协作的Web服务器5.1 用单台虚拟主机实现多个域名5.2 通信数据转发程序&#xff1a;代理、网关、隧道5.2.1 代理5.2.2 网关5.2.3 隧道5.3 保存资源的缓存5.3.1 缓存的有限期限5.3.2 客户端的缓存第5章 与HTTP协作的Web服务器 5…

学习系统编程No.18【进程间通信之管道实战】

引言&#xff1a; 北京时间&#xff1a;2023/4/11/21:17&#xff0c;今天的文章更新啦&#xff01;但是还是没有上热榜&#xff0c;所以我们需要继续更文啦&#xff01;我相信下一篇博客肯定是可以上热榜的&#xff0c;加油&#xff01;并且今天晚上因为有一节体育课&#xff…

Linux下让进程不再被拉起

Linux下为了防止应用挂掉&#xff0c;我们会设置服务进程来拉起这些应用。但某些流氓软件也会利用该机制使得它们被杀掉后能再被拉起来。本文讲述让这些进程不再被拉起的方法。 比如&#xff0c;有名称为recordmain.bin的进程&#xff0c;使用kill -9 杀掉它后&#xff0c;过几…

NVIDIA jetson tensorrt加速yolov5摄像头检测

link 在使用摄像头直接检测目标时&#xff0c;检测的实时画面还是有点慢&#xff0c;下面是tensorrt加速过程记录。 一、设备 1、设备jetson agx xavier 2、jetpack4.6.1 3、tensorrt 8.2.1.8 4、conda虚拟环境 python3.6 二、虚拟环境搭建及依赖 1、参考此博客安装torch Nvidi…

做自动化测试时所谓的“难点”

这篇关于自动化测试的文章&#xff0c;可能和你看到的大多数自动化的文章有所不同。我不是一位专职的自动化测试工程师&#xff0c;没有开发过自动化的工具或者框架&#xff0c;用的自动化的工具也不多&#xff0c;也没有做过开发&#xff0c;所以我讲不出那些现在很多人很看重…

[C++]日期类计算器的模拟实现

目录 日期类计算器的模拟实现&#xff1a;&#xff1a; 1.获取某年某月的天数 2.构造函数 3.拷贝构造函数 4.赋值运算符重载 5.析构函数 6.日期天数 7.日期天数 8.日期-天数 9.日期-天数 10.前置的运算符重载 11.后置的运算符重载 12.前置--的运算符重载 13.后置--的运算符重载…

前后端交互系列之Axios详解(包括拦截器)

目录前言一&#xff0c;服务器的搭建二&#xff0c;Axios的基本使用2.1 Axios的介绍及页面配置2.2 如何安装2.3 Axios的前台代码2.4 Axios的基本使用2.5 axios请求响应结果的结构2.6 带参数的axios请求2.7 axios修改默认配置三&#xff0c;axios拦截器3.1 什么是拦截器3.2 拦截…