lyapunov优化

 Lyapunov optimization是Michael J. Neely发展起来的网络优化理论,可以参考[1,2]。因为网络研究中缺乏理论,简单好使的算法,没有高大上的公式吓人,好像就不能发到高级别的期刊上。Lyapunov optimization有几个公式,就成为一个发论文的模板。只要找到一个问题背景,把公式套进去,就是一篇。关于这理论[3]的引用量已经达到1500多次了,但是很难找到相关的代码!
 我很早就知道这个理论。于是花了几天,研究了一下,没办法,眼红呀!看了几篇文章[4,5,6],这几篇文章不仅名字类似,内容也感觉是一个模子制造的。
 知乎上有答主对这个方向有几句评价[7]。我就不过多评价了,毕竟我没有相关的测试。
 [4]中的公式推导,还是挺容易理解的。我就按照这个模板,换个场景,稍微地推导一下。
在这里插入图片描述
 如上图所示的排队系统,数据包的入队速度是 a ( t ) a(t) a(t),出队速度是 b ( t ) b(t) b(t),目标是是怎么样调整 a ( t ) a(t) a(t),使得队列mean rate stable,同时达到最大的用户满意度。用户的满意度,采用效用函数衡量, U = β × l o g ( a ) U=\beta\times log(a) U=β×log(a)。请求的数据流速率 a ( t ) a(t) a(t)越大,用户的满意度越高,但是会造成很长的队列占用。
 队列占用,用 Q Q Q表示。Q的变化方程:
Q ( t + 1 ) = max ⁡ [ Q ( t ) − b ( t ) , 0 ] + a ( t ) Q(t+1)=\max[Q(t)-b(t),0]+a(t) Q(t+1)=max[Q(t)b(t),0]+a(t)
 队列mean rate stable的含义是:
lim ⁡ T → ∞ E ( Q ( t ) ) T = 0 \lim_{T\to\infty}\frac{\mathbb{E}(Q(t))}{T}=0 TlimTE(Q(t))=0
 优化方程:
max ⁡ U s u b j e c t lim ⁡ T → ∞ E ( Q ( t ) ) T = 0 \max U \\ subject \lim_{T\to\infty}\frac{\mathbb{E}(Q(t))}{T}=0 maxUsubjectTlimTE(Q(t))=0
 定义 L ( t ) = Q ( t ) 2 2 L(t)=\frac{Q(t)^2}{2} L(t)=2Q(t)2 Δ L ( t ) = L ( t + 1 ) − L ( t ) \Delta L(t)=L(t+1)-L(t) ΔL(t)=L(t+1)L(t) Δ L ( t ) \Delta L(t) ΔL(t)被称为lyapunov drift。
Q ( t + 1 ) 2 = { max ⁡ [ Q ( t ) − b ( t ) , 0 ] + a ( t ) } 2 ≤ Q ( t ) 2 + b ( t ) 2 + a ( t ) 2 − 2 b ( t ) Q ( t ) + 2 ∗ Q ( t ) ( a ( t ) − b ( t ) ) − 2 ∗ a ( t ) b ( t ) ≤ Q ( t ) 2 + b ( t ) 2 + a ( t ) 2 + 2 ∗ Q ( t ) a ( t ) Q(t+1)^2=\{\max[Q(t)-b(t),0]+a(t)\}^2\\ \leq Q(t)^2+b(t)^2+a(t)^2-2b(t)Q(t)+2*Q(t)(a(t)-b(t))-2*a(t)b(t)\\ \leq Q(t)^2+b(t)^2+a(t)^2+2*Q(t)a(t) Q(t+1)2={max[Q(t)b(t),0]+a(t)}2Q(t)2+b(t)2+a(t)22b(t)Q(t)+2Q(t)(a(t)b(t))2a(t)b(t)Q(t)2+b(t)2+a(t)2+2Q(t)a(t)
Q ( t + 1 ) 2 − Q ( t ) 2 ≤ b ( t ) 2 + a ( t ) 2 + 2 ∗ Q ( t ) a ( t ) Q(t+1)^2-Q(t)^2\leq b(t)^2+a(t)^2+2*Q(t)a(t) Q(t+1)2Q(t)2b(t)2+a(t)2+2Q(t)a(t)
Δ L ( t ) ≤ B + Q ( t ) a ( t ) \Delta L(t)\leq B+Q(t)a(t) ΔL(t)B+Q(t)a(t)
 假设存在 B ≥ b ( t ) 2 + a ( t ) 2 2 B\geq \frac{ b(t)^2+a(t)^2}{2} B2b(t)2+a(t)2。不必较真,全是为了凑出来!
 定义lyapunov drift reward, Δ L ( t ) − V U \Delta L(t)-VU ΔL(t)VU,V是一个常数。想要获取一个大的满意度,却会导致 Δ L ( t ) \Delta L(t) ΔL(t)增加,所以定义lyapunov drift reward,权衡两项,使得aggregate plus最优。这个问题就转化为根据队列占用长度,调节速率的问题。
min ⁡ Q ( t ) a ( t ) − V U \min Q(t)a(t)-VU minQ(t)a(t)VU
 上式可以求导,可得 Q − β × V a × l n 2 Q-\frac{\beta\times V}{a\times ln2} Qa×ln2β×V。使其为0,求得速率控制公式:
a ( t ) = β × V Q ( t ) × l n 2 a(t)=\frac{\beta\times V}{Q(t)\times ln2} a(t)=Q(t)×ln2β×V
 最终效果如何呢,不知道。参数 V , β V, \beta V,β可以慢慢选,直到出现需要的数据。
 [8]中有给出了相应的代码实现。
[1]Lyapunov optimization-wiki
[2] home page
[3] Stochastic Network Optimization with Application to Communication and Queueing Systems
[4] Quality-oriented Rate Control and Resource Allocation in Time-Varying OFDMA Networks
[5] Joint Rate Control and Power Allocation for Non-Orthogonal Multiple Access Systems
[6] Joint rate control and power allocation for low-latency reliable D2D-based relay network
[7] 李雅普诺夫优化问题?
[8] https://github.com/CrQiu/Lyapunov-optimization

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值