强化学习-DQN改进及一些强化学习路由优化论文笔记

news2024/11/27 20:58:24

RL

  • 通用超参数

DQN改进

Duel Structure

在这里插入图片描述

VS→该state在当前policy下的value

QSA→该state进行这个action在当前policy下的value

advantage = VS - QSA

裁剪区域的确定?

34194按行输出min,33193min为90*90

Replay buffer

background knowledge

[bisect Module]
python自带的二分查找的包

重要函数

基本使用

bisect.bisect_left(2)//返回2左端index
bisect.bisect()//与bisect_right()相同
bisect.bisect_right()//返回右端index

bisect with list

在一个increasing array插入一个元素并仍保持有序

def list_insert(arr,num):
	ind = bisect.bisect_left(arr,num)
	arr.insert(ind,num)

a = [0,1,2,2,2,3,4]
list_insert(a,2.1)

[Sum Tree]
概念

Sum Tree 线段树,结构是二叉树,父节点是子节点的和,且只有度为0和2的情况。

可以认为叶结点表示一个相连的区间,每个叶节点的数值表示该区间长度,此时可以轻易找到任意值的对应区间的叶节点

Basic Replay Buffer

  • 记录新加入的transition→存储在list中
  • 忘记太久之前的transition→用deque数据自动遗忘,也可以覆盖list中已存在的transition
  • 从存储的记忆中抽样→用random.sample()抽样

Proportion-based Replay Buffer

Sum Tree用于记录和更新cumulative weight以进行快速采样,时间复杂度为O(logn)新功能:

  • 一个Sum Tree储存和更新每个transition的weight
  • 更新Sum Tree的方法

Rank-based Repley buffer

需要知道每个transition的td_error的rank1以调整weight,基于该rank需要计算和储存分割点,从而进行抽样,复杂度为o(n),新功能:

  • 1.对于所有transition TD_error及对应rank的存储
  • 2.更新rank的方法

由于训练过程中有大量TDerror变更,以及新加入的transition,快速更新rank需要一直维持记录一个排好序的所有TD-error的序列,这样才能在o(logn)的时间内确定rank,否则每个新样本加入时更新rank都需要O(n)的时间

快速抽样的方法是在有序TD-error的序列上抽样在对应到具体的transition,此处有俩种存储方式

  • 将transition与TD-error一起储存在tuple中
  • 将transition储存在list中,将其index和TD-error一起存储到tuple中

第一钟方式缺点:当我们删除transition时,会需要O(n)时间寻找应该删除的rank和TD-error。选择第二种存储方式,locate时间复杂度为o(1),具体如下

  • 与之前的方式类似,建立一个list存储transition
  • 建立另一个list存储transition对应rank
  • 建立第三个list储存TD-error,transition index的tuple

删改操作时间复杂度O(n)

  • gnn meets rl

    https://github.com/knowledgedefinednetworking/DRL-GNN/blob/master/DQN/README.md

  • sp

    OSPF:OSPF 即开路最短路径优先,依据该规则,网络会把数据流转发在长度最短的路径上,

    由于没有考虑链路的传输能力,个别链路容易陷入拥塞。

    MCFCSP:多物网络流流约束最短路径方案将链路的传输能力作为约束条件,在保证网络不出现

    拥塞的条件下传输数据流。

    KSP:k 路最短路径方案会在两节点对间选择前 k 条最短的路径作为路由路径对数据流完成转发操作。

    多路径路由(ECMP)**:**在多个传输路径上均匀地分配流量

  • rsir

    在这里插入图片描述

  • 牵引控制

    DRL算法分类:基于下一跳控制的 DRL 路由方案、基于逐个数据流路径调整的 DRL 路由方案和基于全网链路权重调整的路由方案

    通过分析网络拓扑特征,结合牵引控制理论,选取部分链路作为代表链路,DRL对代表链路生成控制信号,结合网络路由算法扩展到全网路由。

    优点:避免输出动作空间过大,解决DRL维度灾难问题,策略更加健壮

    牵引链路选取:由于牵引控制理论目前尚未对复杂网络的具体牵引控制元素选择做出选择,设计启发式算法选取牵引节点

    • 在线路由策略部署阶段主要分为 3 个环节:

      1. 网络信息收集

        OpenFlow端口数据量统计字段结合采集间隔,近似计算相应端口的数据吞吐量,形成牵引链路的流量视图,作为DRL 神经网络的输入参数

      2. 智能策略生成:每个输出层对应于一个牵引链路的权重

      3. 策略执行

        默认将所有链路权重设置为 1,用DRL输出更新相应链路权重,通过 Floyd-Warshall 算法计算路由。

    DRL算法: TD3

    state为网络中链路的吞吐量信息

    action对应于牵引链路的权重

    reward综合考虑路由策略在平均时延、负载均衡和抖动等

  • Scalable DRL

    中心性的概念类似于描述一个顶点与其他顶点的关系的图中的度的概念,该链路与其他链路共享更多的转发路径,即具有较高的中心性。

    在ScaleDRL中,我们根据每个链路的中心性来选择关键链路。根据所有链路的中心性值按降序排序,并从排序的链路列表中选择中间的k个链路作为关键链路。

    • DRL:ACKTR

      行为网络以网络状态作为输入,其输出作为动作a

      批评网络以网络状态和临时动作a作为输入,对临时策略生成评价值。奖励r用于更新批评者网络。

      状态:每个链路上的流量强度分布

      动作:a^|L|·d,表示关键链接的数量,其中|L|表示关键链接的数量,d表示每个流的候选路径数。

      奖励:使用平均端到端延迟作为评估TE策略的度量标准。

  • Scalable Routing

    优点:提高路由性能和对拓扑变化的弹性。

    ScaleDeep将网络的节点分为两类:驱动节点和跟随节点。驱动节点是可以模拟网络运行的关键节点,采用钉扎控制理论进行选择,其余节点为跟随节点。

    通过从驱动节点轮询网络信息,DRL代理可以有一个近似的网络全局视图。调整驱动节点的链路权值,以动态更新路由策略。

    驱动节点选择的启发式算法:以不同的选择概率分配不同程度的节点,然后根据选择概率选择驱动节点。根据节点的程度分配(分类?)不同概率的节点,然后根据其概率选择驱动节点。

    DRL:ddpg

    DRL框架使用了两种类型的神经网络:门控递归单元(GRU)和前馈神经网络。GRU是一种先进的递归神经网络(RNN),善于从输入数据中提取与时间相关的信息。

    状态:状态是网络状态信息表示的吞吐量矩阵大小t×n,其中t表示时间步长的长度,d表示流类型的数量,和n表示总数的交通强度

    奖励r:网络中所有流的平均流完成时间

  • 基于深度强化学习的软件定义网络 QoS 优化

    优点:保证了端到端传输时延和分组丢失率,而且提高了 22.7%的网络负载均衡程度,增加了 8.2%的网络吞吐率。

    解决:基于启发式算法的 QoS 优化方案因参数与网络场景不匹配出现性能下降的问题

    方案:首先将网络资源和状态信息统一到网络模型中,然后通过长短期记忆网络提升算法的流量感知能力,最后基于深度强化学习生成满足 QoS 目标的动态流量调度策略。

    状态:某一次网络测量时网络中的流请求信息和所有链路的时延和利用率信息

    动作:各节点对之间可用转发路径的分流比重

    奖赏:优化目标是最小化网络使用率U。r=-U。

    LSTM 网络负责对网络状态信息 s 进行预处理生成隐含状态 h,并将该隐含状态传输给 Actor 和 Critic 架构中的神经网络,提高神经网络的决策的效率和准确性;Actor 和 Critic 架构中的神经网络依据LSTM网络提供的网络状态数据生成动作,并更新内部网络参数。

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

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

相关文章

最优算法100例之41-用两个栈实现队列

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 用两个栈实现队列 题解报告 stack<int> stack1; stack<int> stack2; void push(int node) {stack1.push(node);…

多线程的入门(五)线程池的保活策略

线程池是如何保活的呢&#xff1f;通过对源码的分析得出&#xff0c;线程池通过阻塞队列&#xff0c;与关闭工作线程后新生成空闲线程实现的保活策略源代码如下&#xff1a; runkworker&#xff08;&#xff09;方法的getTask&#xff08;&#xff09;方法中有这样一段代码&…

读书笔记之《如何精心设计提示词来精通ChatGPT》

《如何精心设计提示词来精通ChatGPT》这本书英文标题为&#xff1a;《The Art of Prompt Engineering with chatGPT》&#xff0c;于2023年出版。作者是Nathan Hunter 。 Nathan Hunter简介&#xff1a;ChatGPT培训的创始人。作为一名资深培训师和教学设计师&#xff0c;我在过…

睿尔曼复合机器人之底盘操作流程

以操作流程为例&#xff0c;介绍底盘的操作流程。 开机&#xff1a;长按电源按钮&#xff0c;蜂鸣器短响两声&#xff0c;当第三声变长鸣后松开&#xff0c;等待机器开机。 使用&#xff1a; 建立通讯&#xff1a;主要采用无线WiFi与底盘进行通讯连接 无线连接方式&#xff…

Oracle 数据库 count的优化-避免全表扫描

Oracle 数据库 count的优化-避免全表扫描 select count(*) from t1; 这句话比较简单&#xff0c;但很有玄机&#xff01;对这句话运行的理解&#xff0c;反映了你对数据库的理解深度&#xff01; 建立实验的大表他t1 SQL> conn scott/tiger 已连接。 SQL> drop table …

流媒体的安全谁来保障

流媒体的安全谁来保障 说起媒体&#xff0c;我们马上就会想到报纸新闻、广播、电视。 其实所谓的流媒体同我们通常所指的媒体是不一样的&#xff0c; 它只是一个技术名词。流媒体到底是什么&#xff1f;能给我们的生活带来什么&#xff1f;跟小德一起来看看。 流媒体是什么&a…

最优算法100例之39-机器人的运动范围

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 题目描述: 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,…

备考ICA----Istio实验20---跨网络Primary-Remote主从架构部署

备考ICA----Istio实验20—跨网络Primary-Remote主从架构部署 按照本实验在 cluster1&#xff08;主集群&#xff09;上安装 Istio 控制平面&#xff0c;并将 cluster2&#xff08;远程集群&#xff09;配置为使用 cluster1 中的控制平面。群集 cluster1 在 network1 网络上&am…

[Kubernetes[K8S]集群:master主节点初始化]:通过Calico和Coredns网络插件方式安装

文章目录 操作流程&#xff1a;前置&#xff1a;Docker和K8S安装版本匹配查看0.1&#xff1a;安装指定docker版本 **[1 — 7] ** [ 配置K8S主从集群前置准备操作 ]一&#xff1a;主节点操作 查看主机域名->编辑域名->域名配置二&#xff1a;安装自动填充&#xff0c;虚拟…

贪心算法|763.划分字母区间

力扣题目链接 class Solution { public:vector<int> partitionLabels(string S) {int hash[27] {0}; // i为字符&#xff0c;hash[i]为字符出现的最后位置for (int i 0; i < S.size(); i) { // 统计每一个字符最后出现的位置hash[S[i] - a] i;}vector<int> …

ASUS华硕ROG幻16Air笔记本电脑GU605M原装出厂Win11系统工厂包下载,带有ASUSRecovery一键重置还原

适用型号&#xff1a;GU605MI、GU605MY、GU605MZ、GU605MV、GU605MU 链接&#xff1a;https://pan.baidu.com/s/1YBmZZbTKpIu883jYCS9KfA?pwd9jd4 提取码&#xff1a;9jd4 华硕原厂Windows11系统带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性联机支持…

VUE typescript 调用stompjs[Rabbit MQ]

npm拉下来最新的2.3.9版本&#xff0c;发现一些原来Js代码已经不能用了。顺便解读了下最新定义的内容 // <reference types"node" />export const VERSIONS: {V1_0: string;V1_1: string;V1_2: string;supportedVersions: () > string[]; };export class C…

风储微网虚拟惯性控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 风储微网虚拟惯性控制系统simulink建模与仿真。风储微网虚拟惯性控制系统是一种模仿传统同步发电机惯性特性的控制策略&#xff0c;它通过集成风力发电系统、储能系统和其他分…

微信小程序自定义关闭按钮在弹窗下面的效果

效果图: 我之前用vant 的popup的弹窗写&#xff0c;会出现close图标移动到弹窗内容外部不可见。 自定义代码&#xff1a; popup.JS/*** 生命周期函数--监听页面初次渲染完成*/onReady() {//自定义弹窗 动态获取屏幕高度var that this;wx.getSystemInfo({success: (result) &…

嵌入式操作教程_数字信号处理_音频编解码:3-6 AAC音频解码实验

一、实验目的 了解AAC音频格式&#xff0c;掌握AAC音频解码的原理&#xff0c;并实现将AAC格式的音频解码为PCM 二、实验原理 音频编解码的主要对象是音乐和语音&#xff0c;音频的编解码格式可分为无压缩的格式、无损压缩格式、有损音乐压缩格式、有损语音压缩格式和合成算…

NotePad++ 快速生成SQL IN (‘’,‘’)

sql In(‘’&#xff0c;‘’)这种形式 第一步&#xff1a;AltC 鼠标放在第一行最左边 第二步 CtrlH $代表行末 第三步 去掉每行换行符 换行可能是"\n" 或者"\r"或者"\r\n" 结果&#xff1a;

TG-12F使用SDK对接阿里生活物联网平台

文章目录 前言一、注意二、准备1. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;程序运行时库。按顺序逐条执行命令&#xff1a;2. 安装Ubuntu&#xff08;版本20.04 X64&#xff09;依赖软件包。按照顺序逐条执行命令&#xff1a;3. 安装Python依赖包。按照顺序逐条执行命…

电子元器件商城开发用什么技术框架?

随着信息技术的飞速发展&#xff0c;电子元器件商城已成为电子工程师和采购人员获取元器件的重要渠道。电子元器件商城的开发涉及众多技术和开发语言的选择&#xff0c;本文将详细分析电子元器件商城开发中常用的技术和开发语言&#xff0c;以及它们各自的优势。 一、电子元器…

数据结构--双向链表

1.双向链表的结构设计 typedef struct DNode { int data; struct DNode* next;//后继指针 struct DNode* prio;//前驱指针 }DNode ,*DList; 2.双向链表的结构示意图: 3.双向链表的实现 //初始化p->prio->next p->next;if (p->next ! NULL)//判断很重要{p->n…

银行渠道整合平台应用架构

渠道整合平台将 功能微服务化&#xff0c;将服务流程标准化。微服务 化的功能能够进行各种组合使用。而标准化的流程可同时作用于所有渠道&#xff0c;保证体验一致。未来在进行流程变更的时候可有效避免各渠道的重复开发。 • 渠道整合平台避免了各个渠道对于同一个业务的差异…