Drift plus penalty 漂移加惩罚Part1——介绍和工作原理

news2025/5/21 6:38:22

文章目录

  • 正文
    • 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\} {1K}中的每个约束 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{1K} 更新队列,对时隙 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

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

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

相关文章

OpenCV之分水岭算法(watershed)

Opencv 中 watershed函数原型: void watershed( InputArray image, InputOutputArray markers ); 第一个参数 image,必须是一个8bit 3通道彩色图像矩阵序列,第一个参数没什么要说的。关键是第二个参数 markers,Opencv官方文档的说…

Python函数语法与面向对象回顾(精华)

目录 函数 语法定义 返回值 位置参数 关键字传递 默认参数 函数参数中 / 作用 lambda表达式 递归函数 面向对象 初识对象 继承 构造函数 ​编辑 多态 "私有属性" 动态 类方法和静态方法 函数 语法定义 pyhon的函数定义语法是 def 函数名(参数…

【Python实战】-- 按条件提取所有目录下所有Excel文件指定行数据

系列文章目录 文章目录 系列文章目录前言一、背景二、使用步骤1.源码 总结 前言 一、背景 有多个目录,每个目录下有若干Excel文件,我们要提取每个Excel里面指定的行数据: 目录如下: 注:目录数量、名称不限&#xff0c…

Egg使用jwt拦截jtoken验证

安装 npm install egg-jwt注册插件 在config文件夹子下 plugin,js下 use strict;module.exports {//mysqlmysql: {enable: true,package: egg-mysql},//jwtjwt: {enable: true,package: egg-jwt} };使用中间件 在app文件下创建 middleware 文件夹 在middleware 文件下创建…

Cannot resolve MVC view ‘xxx‘

这是在springboot下通过controller访问templates目录下的静态文件&#xff08;Hello.html)报的错误 原因&#xff1a;缺少thymeleaf依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</ar…

初级篇—第四章聚合函数

文章目录 聚合函数介绍聚合函数介绍COUNT函数AVG和SUM函数MIN和MAX函数 GROUP BY语法基本使用使用多个列分组WITH ROLLUP HAVING基本使用WHERE和HAVING的对比开发中的选择 SELECT的执行过程查询的结构SQL 的执行原理 练习流程函数 聚合函数介绍 聚合函数作用于一组数据&#x…

ELK介绍

一、前言 前面的章节我们介绍通过ES Client将数据同步到ElasticSearch中&#xff0c;但是像日志这种数据没有必要自己写代码同步到ES那样会折腾死&#xff0c;直接采用ELK方案就好&#xff0c;ELK是Elasticsearch、Logstash、Kibana三款开源软件的缩写&#xff0c;ELK主要用于…

【教学类-39】A4红纸-国旗灯笼(庆祝中华人民共和国成立74周年)

作品展示&#xff1a; 背景需求&#xff1a; 从教十余年&#xff0c;我在每年国庆都带领中大班孩子们制作与“国旗相关”国庆庆祝物品——国旗、礼盒 一、国旗&#xff08;吸管、A4红纸、黄纸打印五角星&#xff09; 二、铅画纸手提袋&#xff08;8K铅画纸、A4红纸、黄色打印…

凉鞋的 Godot 笔记 102. 场景与节点的增删改查

在上一篇&#xff0c;我们完成了 Godot 引擎的 Hello World 输出&#xff0c;并且完成了第一个基本循环: 通过这次基本循环的完成&#xff0c;我们获得了一点点的 Godot 使用经验&#xff0c;这非常重要。 有实践经验后再去补充理论 和 先学习理论后去实践相比&#xff0c;前者…

GitHub上有助于开发微信小程序的仓库

2023年9月30日&#xff0c;周六晚上 最近帮同学在GitHub找了一些开发小程序会用到的东西 目录 UI库WePY框架基于WePY框架的Demo微信小程序开发资源汇总 UI库 GitHub - Tencent/weui-wxss: A UI library by WeChat official design team, includes the most useful widgets/m…

LOD1.3快速构建 | 多源数据自动化作业、图元和体块模型快速编辑、智能纹理贴图...

2023年&#xff0c;自然资源部先后发布了《实景三维中国建设总体实施方案&#xff08;2023—2025年&#xff09;》、《实景三维中国建设城市三维模型快速构建技术规定&#xff08;征求意见稿&#xff09;》等文件&#xff0c;明确提出&#xff0c;2024年底完成城市三维模型&…

httpserver 下载服务器demo

实现效果如下&#xff1a; 图片可以直接显示 cpp h 这些可以直接显示 其他的 则是提示是否要下载 单线程 还有bug 代码如下 先放上来 #include "httpserver.h" #include "stdio.h" #include <stdlib.h> #include <arpa/inet.h> #include…

哈希表hash_table

一个人为什么要努力&#xff1f; 我见过最好的答案就是&#xff1a;因为我喜欢的东西都很贵&#xff0c;我想去的地方都很远&#xff0c;我爱的人超完美。文章目录 哈希表的引出unordered系列的关联式容器 底层结构哈希的概念 开放寻址法拉链法&#xff08;哈希桶&#xff09;拉…

【C++进阶】:C++11

C11 一.统一列表的初始化1.{}初始化2.initializer_list 二.声明1.decltype2.nullptr 三.右值引用和移动语义1.左值和右值1.转义语句2.完美转发 四.可变参数模板1.基本概念2.STL里emplace类接口 五.lambda表达式六.新的类功能 一.统一列表的初始化 1.{}初始化 在C98中&#xf…

CSS文本属性和Emmet语法

CSS文本属性 有预定的颜色值 red,green,blue 十六进制 #ff00000,#FF5500 ,#29D794 RGB代码 rgb(255,0,0)或rgb(100%,0%,0%) <head> <style>p {text-align: right;//让字体向右移动text-decoration: normal;}a {text-decoration: none;//去掉连接的下划线color: …

beego---ORM相关操作

Beego框架是go语言开发的web框架。 **那什么是框架呢&#xff1f;**就是别人写好的代码&#xff0c;我们可以直接使用&#xff01;这个代码是专门针对某一个开发方向定制的&#xff0c;例如&#xff1a;我们要做一个网站&#xff0c;利用 beego 框架就能非常快的完成网站的开发…

【随笔记】C++ condition_variable 陷阱

问题说明 通过 std::condition_variable 来实现超时等待&#xff0c;会受到系统时间变化的影响&#xff0c;系统时间倒退修改就会导致延后唤醒&#xff0c;系统时间提前将会导致提前被唤醒&#xff0c;返回结果仍为超时。 这种问题只有在系统时间发生变化的时候才会出现&…

MyBatisPlus(七)等值查询

等值查询 条件查询&#xff1a;使用 Wrapper 对象&#xff0c;传递查询条件。 QueryWrapper&#xff08;不要使用&#xff09; 代码 Testvoid eq() {QueryWrapper<User> wrapper new QueryWrapper<>();wrapper.eq("name", "张三");List<…

装饰器模式详解和实现(设计模式 二)

装饰器模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你动态地将对象添加到现有对象中&#xff0c;以提供额外的功能&#xff0c;同时又不影响其他对象。 实现示例 1.定义一个接口或抽象类&#xff0c;表示被装饰对象的公共接口 //抽…

CSS 滚动驱动动画 view-timeline-inset

view-timeline-inset 语法例子&#x1f330; 正 scroll-padding 为正正的 length正的 percentage 负 scroll-padding 为负负的 length负的 percentage 兼容性 view-timeline-inset 在使用 view() 时说过, 元素在滚动容器的可见性推动了 view progress timeline 的进展. 默认…