Drift plus penalty 漂移加惩罚Part1——介绍和工作原理
文章目录
- 正文
- Methodology 方法论
- Origins and applications 起源和应用
- How it works 它是怎样工作的
- The stochastic optimization problem 随机优化问题
- Virtual queues 虚拟队列
- The drift-plus-penalty expression 漂移加惩罚表达式
- Drift-plus-penalty algorithm
- Approximate scheduling 近似调度
- 参考资料
正文
在概率论的数学理论中,漂移加惩罚法被用于优化排队网络和其他随机系统。
该技术用于稳定排队网络,同时最小化网络惩罚函数的平均时间。它可用于优化性能目标,如时间平均功率、吞吐量和吞吐量效用。在不需要最小化惩罚的特殊情况下,当目标是在多跳网络中设计稳定的路由策略时,该方法可以简化为背压路由。漂移加惩罚法也可用于最小化受时间平均约束的随机过程对其他随机过程集合的时间平均。这是通过定义一组适当的虚拟队列来实现的。它还可以用于生成凸优化问题的时间平均解。
Methodology 方法论
漂移加惩罚方法适用于离散时间时隙 t t t 在 0 , 1 , 2 , … {0,1,2,…} 0,1,2,… 中运行的排队系统。首先,非负函数 L ( t ) L(t) L(t) 被定义为时间t时所有队列状态的标量度量。函数 L ( t ) L(t) L(t) 通常被定义为时间 t t t 时所有队列大小的平方和,称为李雅普诺夫函数。李亚普诺夫漂移定义如下:
每个时隙 t t t,观察当前队列状态,并采取控制动作贪婪地最小化以下漂移+惩罚表达式的边界:
其中 p ( t ) p(t) p(t) 是罚函数 V V V 是一个非负的权值。可以选择 V V V 参数,以确保 p ( t ) p(t) p(t) 的时间平均值任意接近最优值,并在平均队列大小上进行相应的权衡。与背压路由一样,这种方法通常不需要了解工作到达和网络移动性的概率分布。
Origins and applications 起源和应用
当 V = 0 V=0 V=0,该方法简化为贪婪地最小化李雅普诺夫漂移。这就是最初由Tassiulas和Ephremides开发的背压路由算法(也称为最大权重算法)。
Neely和Neely, Modiano, Li在漂移表达式中加入了 V p ( t ) Vp(t) Vp(t) 项,以在稳定网络的同时最大化吞吐量效用函数。为此,惩罚 p ( t ) p(t) p(t) 被定义为 − 1 -1 −1 倍。 这种漂移加惩罚技术后来被用于最小化平均功率并优化其他惩罚和奖励指标。
该理论主要用于优化通信网络,包括无线网络、自组织移动网络和其他计算机网络。然而,数学技术可以应用于其他随机系统的优化和控制,包括智能电网中的可再生能源分配和产品装配系统的库存控制。
How it works 它是怎样工作的
本节展示如何使用漂移加惩罚方法来最小化受其他函数集合的时间平均约束的函数 p ( t ) p(t) p(t) 的时间平均。(就是说要最小化 p ( t ) p(t) p(t) 的时间平均,但是同时受到其它时间平均的约束)。
The stochastic optimization problem 随机优化问题
考虑一个离散时间系统,它在规范化时隙 t = 0 , 1 , 2 , … t={0,1,2,…} t=0,1,2,… 上变化。定义 p ( t ) p(t) p(t) 为需要将时间平均值最小的函数,称为惩罚函数。假设 p ( t ) p(t) p(t) 的时间平均值的最小化必须在 K K K 个其他函数集合的时间平均值约束下完成:
每个时隙 t t t,网络控制器观察到一个新的随机事件。然后,它根据对该事件的了解做出控制动作。将 p ( t ) p(t) p(t) 和 y i ( t ) y_i(t) yi(t) 的值确定为随机事件和时隙 t t t 的控制作用的函数:
小写符号 p ( t ) p(t) p(t), y i ( t ) y_i(t) yi(t) 和大写符号 P ( ) P() P(), Y i ( ) Y_i() Yi() 用于区分惩罚值和根据随机事件和时隙 t t t 的控制作用确定这些值的函数。
假设随机事件 ω ( t ) \omega (t) ω(t) 在一些抽象的事件集合 Ω Ω Ω 中取值。
假设控制动作 α ( t ) \alpha (t) α(t) 是在某个包括控制项抽象集合 A A A 中选择的。
集合 Ω \Omega Ω 和 A A A 是任意的,可以是有限的也可以是无限的。
例如, A A A 可以是抽象元素的有限列表,实值向量的不可数无限(可能是非凸的)集合,等等。函数 P ( ) P() P(), Y _ i ( ) Y_i() Y_i() 也是任意的,不需要连续性或凸性假设。
以通信网络中的随机事件为例 ω ( t ) \omega (t) ω(t) 可以是一个向量,它包含每个节点时隙 t t t 时的到达信息和每个链路的时隙 t t t 时的信道状态信息。
控制动作 α ( t ) \alpha (t) α(t) 可以是包含每个节点的路由和传输决策的向量。
函数 P ( ) P() P() 和 Y _ i ( ) Y_i() Y_i() 可以表示与时隙 t t t 的控制动作和通道条件相关的功率消耗或吞吐量。
为了说明简单,假设 P ( ) P() P() 和 Y i ( ) Y_i() Yi() 函数是有界的。进一步假设随机事件过程 ω ( t ) \omega(t) ω(t) 在槽 t t t 上独立且同分布
,具有一些可能未知的概率分布。目标是设计一个策略,使控制行动随着时间的推移,以解决以下问题:
即最小化惩罚项的时间平均值,同时维持队列的稳定。
自始至终都假定这个问题是可行的。也就是说,假设存在一种算法可以满足所有 K K K 个期望约束。
上述问题以抽象过程 y i ( t ) y_i(t) yi(t) 非正的时间平均期望的标准形式提出了每个约束。这种方法不会失去通用性。例如,假设某人希望某个过程 a ( t ) a(t) a(t)的时间平均期望小于或等于给定常数 c c c。那么可以定义一个新的惩罚函数 y ( t ) = a ( t ) − c y(t) = a(t) - c y(t)=a(t)−c,并且期望的约束等价于 y ( t ) y(t) y(t)的时间平均期望是非正的。同样,假设有两个过程 a ( t ) a(t) a(t)和 b ( t ) b(t) b(t),并且希望 a ( t ) a(t) a(t)的时间平均期望小于或等于 b ( t ) b(t) b(t)的时间平均期望。这个约束通过定义一个新的惩罚函数 y ( t ) = a ( t ) − b ( t ) y(t) = a(t) - b(t) y(t)=a(t)−b(t)写成标准形式。上述问题寻求最小化抽象惩罚函数 p ′ ( t ) ′ p'(t)' p′(t)′的时间平均值。这可以通过定义 p ( t ) = − r ( t ) p(t) = - r(t) p(t)=−r(t)来最大化某些理想奖励函数 r ( t ) r(t) r(t)的时间平均值。
Virtual queues 虚拟队列
对于 { 1 , … , K } \{1,…, K\} {1,…,K}中的每个约束 i i i,定义一个在时隙 t = { 0 , 1 , 2 , . . . } t=\{0,1,2,...\} t={0,1,2,...} 上动态的虚拟队列,如下:
对所有 i ∈ { 1 , . . . , K } i∈\{1,...,K\} i∈{1,...,K} 初始化 Q i ( 0 ) = 0 Q_i(0) = 0 Qi(0)=0 。该更新方程与虚拟离散时间队列积压 Q i ( t ) Q_i(t) Qi(t)相同,其中 y i ( t ) y_i(t) yi(t) 为时隙 t t t 上新到达和新服务机会之间的差。直观地说,稳定这些虚拟队列确保约束函数的时间平均值小于或等于零,因此满足期望的约束。要准确地理解这一点,请注意(式1)意味着:
因此
利用伸缩和定律对前 t t t 个槽求和,可得:
除以t,取期望:
因此,当对于所有 i ∈ { 1 , … K } i∈\{1,…K\} i∈{1,…K} 中所有i满足下列条件时,问题的期望约束得到满足:
满足上述极限方程的队列 Q i ( t ) Q_i(t) Qi(t) 被称为是平均速率稳定的。
The drift-plus-penalty expression 漂移加惩罚表达式
为了稳定队列,定义Lyapunov函数 L ( t ) L(t) L(t)作为槽位 t t t上队列积压总量的度量:
将排队方程(Eq. 1)平方,得到每个 i ∈ { 1 , . . . , K } i∈\{1,...,K\} i∈{1,...,K}的队列的下列边界:
因此,
由此得出
现在把 B B B 定义为一个正常数,它是上面不等式右边第一项的上界。因为 y i ( t ) y_i(t) yi(t) 的值是有界的,所以存在这样一个常数。则:
两边同时加上 V p ( t ) Vp(t) Vp(t),得到漂移加惩罚表达式的边界如下:
漂移+惩罚算法(定义如下)使控制动作在每个槽 t t t上贪婪地最小化上述不等式的右侧。
直观地说,仅采取最小化漂移的操作在队列稳定性方面是有益的,但不会最小化惩罚项的时间平均值。仅仅采取最小化惩罚的措施并不一定会稳定队列。
因此,采取最小化加权总和的动作同时包含了队列稳定性和惩罚最小化的目标。可以调整权重V,以或多或少地强调惩罚最小化,这将导致性能的权衡。
Drift-plus-penalty algorithm
让 A A A 是所有可能的控制动作的抽象集合。
在每个时隙 t t t,观察随机事件和当前队列值:
给定槽 t t t 的这些观察结果,贪婪地选择一个控制动作 α ( t ) ∈ A \alpha (t)\in A α(t)∈A以最小化以下表达式:
然后根据(式1)为 i ∈ { 1 , … , K } i \in \{1,…, K\} i∈{1,…,K} 更新队列,对时隙 t + 1 t+1 t+1 重复此过程。
注意,当时隙 t t t 最小化的控制动作时,在槽 t t t 上观察到的随机事件和队列积压充当给定的常量。因此,每个槽都涉及对集合 A A A 的最小化控制动作的确定性搜索。该算法的一个关键特征是它不需要了解随机事件过程的概率分布。
Approximate scheduling 近似调度
上述算法涉及在抽象集合 A A A 上寻找一个函数的最小值。在一般情况下,最小值可能不存在,或者可能很难找到。
因此,假设算法以如下近似方式实现是有用的:定义 C C C为非负常数,并假设对于所有槽 t t t,在集合A中选择的控制动作 α ( t ) \alpha (t) α(t)满足:
这样的控制作用称为 C-加性近似 。 C = 0 C = 0 C=0 的情况对应于每个槽 t t t 上所需表达式的精确最小化。
参考资料
https://en.wikipedia.org/wiki/Drift_plus_penalty
相关文章:
Drift plus penalty 漂移加惩罚Part1——介绍和工作原理
文章目录 正文Methodology 方法论Origins and applications 起源和应用How it works 它是怎样工作的The stochastic optimization problem 随机优化问题Virtual queues 虚拟队列The drift-plus-penalty expression 漂移加惩罚表达式Drift-plus-penalty algorithmApproximate sc…...
(四)动态阈值分割
文章目录 一、基本概念二、实例解析 一、基本概念 基于局部阈值分割的dyn_threshold()算子,适用于一些无法用单一灰度进行分割的情况,如背景比较复杂,有的部分比前景目标亮,或者有的部分比前景目标暗;又比如前景目标包…...
jvm介绍
1. JVM是什么 JVM是Java Virtual Machine的缩写,即咱们经常提到的Java虚拟机。虚拟机是一种抽象化的计算机,有着自己完善的硬件架构,如处理器、堆栈等,具体有什么咱们不做了解。目前我们只需要知道想要运行Java文件,必…...
数据结构与算法课后题-第三章(顺序队和链队)
#include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 5 #define ERROR 0 #define OK 1typedef struct {Elemtype data[Maxsize];int front, rear;int tag; }SqQueue;void InitQueue(SqQueue& Q) //初始化队列 {Q.rear …...
SSM - Springboot - MyBatis-Plus 全栈体系(十六)
第三章 MyBatis 三、MyBatis 多表映射 2. 对一映射 2.1 需求说明 根据 ID 查询订单,以及订单关联的用户的信息! 2.2 OrderMapper 接口 public interface OrderMapper {Order selectOrderWithCustomer(Integer orderId); }2.3 OrderMapper.xml 配置…...
k8s--storageClass自动创建PV
文章目录 一、storageClass自动创建PV1.1 安装NFS1.2 创建nfs storageClass1.3 测试自动创建pv 一、storageClass自动创建PV 这里使用NFS实现 1.1 安装NFS 安装nfs-server: sh nfs_install.sh /mnt/data03 10.60.41.0/24nfs_install.sh #!/bin/bash### How to i…...
7.3 调用函数
前言: 思维导图: 7.3.1 函数调用的形式 我的笔记: 函数调用的形式 在C语言中,调用函数是一种常见的操作,主要有以下几种调用方式: 1. 函数调用语句 此时,函数调用独立存在,作为…...
如果使用pprof来进行性能的观测和优化
1. 分析性能瓶颈 在开始优化之前,首先需要确定你的程序的性能瓶颈在哪里。使用性能分析工具(例如 Go 的内置 pprof 包)来检测程序中消耗时间和内存的地方。这可以帮助你确定需要优化的具体部分。 2. 选择适当的数据结构和算法 选择正确的数…...
在移动固态硬盘上安装Ubuntu系统和ROS2
目录 原视频准备烧录 原视频 b站鱼香ros 准备 1.在某宝上买一个usb移动固态硬盘或固态U盘,至少64G 2.下载鱼香ros烧录工具 下载第二个就行了,不然某网盘的速度下载全部要一天 下载后,选择FishROS2OS制作工具压缩包,进行解压…...
【iptables 实战】02 iptables常用命令
一、iptables中基本的命令参数 -P 设置默认策略-F 清空规则链-L 查看规则链-A 在规则链的末尾加入新规则-I num 在规则链的头部加入新规则-D num 删除某一条规则-s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外-d 匹配目标地址-i 网卡名称 匹配从这块…...
webview_flutter
查看webview内核 https://liulanmi.com/labs/core.html h5中获取设备 https://cloud.tencent.com/developer/ask/sof/105938013 https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator/mediaDevices web资源部署后navigator获取不到mediaDevices实例的解决方案&…...
【GESP考级C++】1级样题 闰年统计
GSEP 1级样题 闰年统计 题目描述 小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(包含起始年份和终止年份)有几个闰年。你能帮帮他吗? 输入格式 输入一行,包含两个整数,分别表示起始年份和终止…...
CentOS密码重置
背景: 我有一个CentOS虚拟机,但是密码忘记了,偶尔记起可以重置密码,于是今天尝试记录一下,又因为我最近记性比较差,所以必须要记录一下。 过程: 1、在引导菜单界面(grubÿ…...
Tomcat Servlet
Tomcat & Servlet 一、What is “Tomcat”?二、 What is “Servlet”?1、HttpServlet2、HttpServletRequest3、HttpServletResponse 一、What is “Tomcat”? Tomcat 本质上是一个基于 TCP 协议的 HTTP 服务器。我们知道HTTP是一种应用层协议,是 HTTP 客户端…...
国庆day2---select实现服务器并发
select.c: #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__:",__LINE__);\perror(msg);\ }while(0)#define IP "192.168.1.3" #define PORT 8888int main(int argc, const char *argv[]) {//创建报式套接字socketi…...
Grafana 开源了一款 eBPF 采集器 Beyla
eBPF 的发展如火如荼,在可观测性领域大放异彩,Grafana 近期也发布了一款 eBPF 采集器,可以采集服务的 RED 指标,本文做一个尝鲜介绍,让读者有个大概了解。 eBPF 基础介绍可以参考我之前的文章《eBPF Hello world》。理…...
亲测可用国产GPT人工智能
分享一些靠谱、可用、可以白嫖的GPT大模型。配合大模型,工作效率都会极大提升。 清华大学ChatGLM 官网: 智谱清言中国版对话语言模型,与GLM大模型进行对话。https://chatglm.cn/开源的、支持中英双语的1300亿参数的对话语言模型࿰…...
适配器模式详解和实现(设计模式 四)
适配器模式将一个类的接口转换成客户端所期望的另一个接口,解决由于接口不兼容而无法进行合作的问题。 设计基本步骤 1. 创建目标接口(Target Interface),该接口定义了客户端所期望的方法。 2.创建被适配类(Adaptee…...
IDEA的使用
文章目录 1.IDEA配置1.1 idea界面说明1.2 git1.3 JDK1.4 maven1.5 Tomcat1.6 idea设置编码格式1.7 vscodenodejs1.8 windows下安装redis 2. IDEA问题2.1 setAttribute方法爆红2.2 idea cannot download sources解决办法2.3 springboot项目跑起来不停run 3. vscode3.1 vscode显示…...
CSS详细基础(二)文本样式
插播一条CSS的工作原理: CSS是一种定义样式结构如字体、颜色、位置等的语言,被用于描述网页上的信息格式化和显示的方式。CSS样式可以直接存储于HTML网页或者单独的样式单文件。无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则。…...
win10系统任务栏图标变成白色的解决办法
我平时都是用滴答清单进行管理这个自己的日程代办的,但是今天打开的时候发现这个快捷方式突然变成纯白色的了,重启电脑之后,这个图标的样式仍然没有变化。上网查找解决办法之后,终于搞好了,于是就有了下面的教程。 为什…...
hadoop生态现状、介绍、部署
一、引出hadoop 1、hadoop的高薪现状 各招聘平台都有许多hadoop高薪职位,可以看看职位所需求的技能 ----> hadoop是什么,为什么会这么高薪?引出大数据,大数据时代,大数据与云计算 2、大数据时代的介绍 大数据的故事…...
二、EFCore 数据库表的创建和迁移
文章目录 一、数据库连接二、数据库表迁移一、数据库连接 在NuGet上安装EntityFramework 代码如下: Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.SqlServerMicrosoft.Extensions.Configuration.Json配置数据连接 appsettings.json 增加数据库连接配置 &quo…...
在nodejs中使用typescript
在nodejs中使用typescript 如果我们正在使用nodejs来开发应用,那么对于管理和扩展一个大型代码库来说是一个非常大的挑战。克服这一问题的方法之一是使用typescript,为js添加可选的类型注释和高级功能。在本文中,我们将探讨如何使用在nodejs中使用types…...
数据结构与算法基础(青岛大学-王卓)(8)
哎呀呀,sorry艾瑞波地,这次真的断更一个月了,又发生了很多很多事情,秋风开始瑟瑟了,老父亲身体查出肿瘤了,有病请及时就医,愿每一个人都有一个健康的身体,God bless U and FAMILY. 直…...
【生物信息学】使用谱聚类(Spectral Clustering)算法进行聚类分析
目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. 生成测试数据 2. 绘制初始数据分布图 3. 循环尝试不同的参数组合并计算聚类效果 4. 输出最佳参数组合 5. 绘制最佳聚类结果图 6. 代码整合 一、实验介绍…...
CSS基础语法第二天
目录 一、复合选择器 1.1 后代选择器 1.2 子代选择器 1.3 并集选择器 1.4 交集选择器 1.4.1超链接伪类 二、CSS特性 2.1 继承性 2.2 层叠性 2.3 优先级 基础选择器 复合选择器-叠加 三、Emmet 写法 3.1HTML标签 3.2CSS 四、背景属性 4.1 背景图 4.2 平铺方式 …...
ThreeJS - 封装一个GLB模型展示组件(TypeScript)
一、引言 最近基于Three.JS,使用class封装了一个GLB模型展示,支持TypeScript、支持不同框架使用,具有多种功能。 (下图展示一些基础的功能,可以自行扩展,比如光源等) 二、主要代码 本模块依赖…...
HashMap面试题
1.hashMap底层实现 hashMap的实现我们是要分jdk 1.7及以下版本,jdk1.8及以上版本 jdk 1.7 实现是用数组链表 jdk1.8 实现是用数组链表红黑树, 链表长度大于8(TREEIFY_THRESHOLD)时,会把链表转换为红黑树,…...
Java编程技巧:swagger2、knif4j集成SpringBoot或者SpringCloud项目
目录 1、springbootswagger2knif4j2、springbootswagger3knif4j3、springcloudswagger2knif4j 1、springbootswagger2knif4j 2、springbootswagger3knif4j 3、springcloudswagger2knif4j 注意点: Api注解:Controller类上的Api注解需要添加tags属性&a…...
wordpress插件搬家/广告代发平台
本文实例讲述了JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法。分享给大家供大家参考,具体如下:当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。通过可编程的对象…...
天津市网站建设/友情链接出售平台
在学习c/c过程中,指针是一个比较让人头痛的问题,稍微不注意将会是程序编译无法通过,甚至造成死机。在程序设计过程中,指针也往往是产生隐含bug的原因。下面就来谈谈指针的应用以及需要注意的一些问题,里面也许就有你平…...
网站建设的难处/今日军事新闻报道
如果在安装CentOS的时候没有选择中文,可以通过以下方式安装中文语言支持。 # yum install "Chinese Support"也可以通过 yum grouplist来列出所有的group和languages...
网站怎么做架构图/引擎优化
前言 这个话题已经是老生常谈了,之所以又被我拎出来,是因为博主隔壁的一个童鞋最近写了一篇叫做《ThreadLocal内存泄露》的文章,我就不上链接了,因为写的实在是。。(省略一万字) 重点是写完后,还…...
淘宝上做网站可信吗/惠州百度seo
投资是一门艺术,并不仅仅是简单的买进卖出,这些只是结果,而我们最重要学习的地方在于如何达成这一结果,总而达到盈利的最终目的,在整个市场大多数人不懂技术的时候,只能一直靠自己不停的研究,虚…...
星巴克网站建设/什么网站可以发布广告
一.数组概念 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。 二.创建数组 1.JS中创建数组有两种方式∶ 利用new创建数组这种方式暂且了解,等学完…...