Lyapunov在探讨队列稳定性时的应用
虚拟队列
最近读到虚拟队列(virtual queue)技术,可以用在涉及公平性问题的模型中(如各种涉及调度、分配的问题)。通过创建一组虚拟队列,分配给每个实体i一个队列qi来处理公平限制条件。如果用Li(t)来表示队列qi在t时刻的长度,也可以反映出调度/分配算法对实体i的负债(debt)。这里的思想很朴素:如果一直未对实体i进行调度/分配,那么相当于是亏欠了该实体,应该在之后调度/分配时给予关照😋。
他的数学形式是 Qi(t)=[Qi(t−1)+ai(t−1)−bi(t−1)]+, 其中 [x]+=max{x,0},ai是确保公平的条件,是某个实体至少需要选择的比例(在0到1之间),bi是是否选择了该实体(选择为1,未选择为0)。从队列的角度看,a_i是到达队列中的项,等待被服务,bi是被服务,离开队列的项。 一般在初始时刻设置队列为空,即Qi(0)=0。如果每轮未选择某个实体,负债会累加。如果算法在每次分配时只是选择队列最长的(负债最高的),那么高负债的就会被优先处理。
当队列长度稳定时候,虚拟队列稳定,公平调度/分配的目的达到了。
稳定性
何为稳定性?
TIP
设系统初于某一个起始的平衡状态,在外作用下它离开了平衡状态,当外作用消失,弱经过较长的时间它能恢复到原来的平衡状态,则称系统是稳定的,或称系统具有稳定性。否则是不稳定的。
Lyapunov对稳定性做出了严格的数学定义(Lyapunov总共定义了四种):
点集S(ϵ)表示以Xe为中心,ϵ为半径的超球体,若X∈S(ϵ),则∥X−Xe∥≤ϵ,当ϵ很小,则称S(\epsilon)为Xe的邻域(也就是在空间内,稳定状态X_e附近的球形空间内的状态)。
系统的齐次状态方程是X˙=f(X,t)(\dot{X}是对X求导),f是与X同纬的向量函数,一般为时变的非线性函数,若不显含t,则为定常非线性系统(就是说不含有时间项t的是常微分方程)。假设方程在初始条件(t0,X0)下,有唯一解X=Φ(t;X0,t0)。
首先是Lyapunov意义下的稳定:
对系统X˙=f(X,t)的某一平衡状态X_e,对任意选定的实数ϵ>0,都对应存在实数δ(ϵ,t0)>0,使当∥X−Xe∥≤δ(ϵ,t0)>0时,从任意初态X_0出发的解都满足∥Φ(t;X0,t0)−Xe∥<ϵ,∀t>t0,则称平衡状态X_e是Lyapunov意义下稳定的(就是说初始状态不偏离平衡位置很远的时候,之后都不会过于偏离平衡位置)。其中实数δ与ϵ有关,一般也与t0有关。
其次是渐进稳定:
当t无限增长时,轨迹X(t)=Φ(t;X0,t0)不仅不超出S(ϵ),而且最终收敛于Xe,则称这种平衡状态Xe是渐进稳定的,即t→∞lim∥Φ(t;X0,t0)−Xe∥=0。
我们在分析队列长度时,只需要保证渐进稳定就可以了,没必要约束到每时每刻(Lyapunov意义下的稳定)。
除此之外,他还提出了Lyapunov第一法和Lyapunov第二法,第一法通过求解系统微分方程,根据解的性质分析稳定性;第二法构造标量Lyapunov函数,研究它的正定性直接判系统的稳定性。一般提到的Lyapunov方法是Lyapunov第二法。
Lyapunov趋势定理
随机排队网络模型(queueing network)的稳定性或是最优控制常使用的工具是Lyapunov 趋势(drift)。
沿用之前的队列长度记号Q(t)=(Q1(t),Q2(t),…,QN(t)),定义一个平方Lyapunov函数(Quadratic Lyapunov functions)L,用来表示当前积压的工作(backlogs),也即之前提到的负债(debt):
L(t)=21∑i=1NQi(t)2
函数L的输出显然是一个标量,定义Lyapunov趋势为:
Δ(t)=L(t+1)−L(t)
假设队列长度按之前描述的方式增长(Qi(t+1)=[Qi(t)+ai(t)−bi(t)]+),那么显然有
Qi(t+1)2=max[Qi(t)+ai(t)−bi(t),0]2≤(Qi(t)+ai(t)−bi(t))2
经过移项得
Δ(t)≤B(t)+∑i=1NQi(t)(ai(t)−bi(t)),
其中B(t)是
B(t)=21∑i=1N[ai(t)2+bi(t)2−2ai(t)bi(t)]
显然B(t)有界
E[B(t)∣Q(t)]≤B
于是对Lyapunov 趋势取期望,为
E[Δ(t)∣Q(t)]≤B+∑i=1NQi(t)E[ai(t)−bi(t)∣Q(t)]
TIP
Lyapunov 趋势定理:如果对ai(t),bi(t) ,∃ϵE[ai(t)−bi(t)∣Q(t)]≤−ϵ, ∀i,t,也即如果E[Δ(t)∣Q(t)]≤B−ϵ∑i=1NQi(t), 那么
t1∑τ=0t−1∑i=1NE[Qi(τ)]≤ϵB+ϵtE[L(0)], ∀t>0
队列稳定
Lyapunov趋势定理的证明:在 E[Δ(t)∣Q(t)]≤B−ϵ∑i=1NQi(t)两侧取期望,得到
E[Δ(t)]≤B−ϵ∑i=1NE[Qi(t)],对τ∈{0,1,…,t−1}累加求和该式子,得到
E[L(t)]−E[L(0)]≤Bt−ϵ∑τ=0t−1∑i=1NE[Qi(τ)]
注意到E[L(t)]非负,移项后可证。
Lyapunov优化
同样考虑之前提到的随机排队网络模型,定义p(t)为t时刻的网络惩罚项(network penalty)。假设目标是稳定队列的同时最小化p(t)对时间的均值(当需要最大化r(t)的时候,可以定义为p(t)=-r(t))。
为了达到这个目标,算法可以被设计为最小化下面这个bound(drift-plus-penalty expression):
Δ(t)+Vp(t),这里V是一个非负的权重,用来做队列稳定和优化目标的tradeoff。不妨假设p(t)存在下界pmin,即p(t)≥pmin∀t∈{0,1,2,…}。
TIP
Lyapunov Optimization定理: 如果B≥0,ϵ>0,V≥0,p∗,∀t,也即E[Δ(t)+Vp(t)∣Q(t)]≤B+Vp∗−ϵ∑i=1NQi(t)
那么∀t>0
t1∑τ=0t−1E[p(τ)]≤p∗+VB+VtE[L(0)]
t1∑τ=0t−1∑i=1NE[Qi(τ)]≤ϵB+V(p∗−pmin)+ϵtE[L(0)]
证明方法与上面的类似,对条件取期望后,对不同t时刻的式子累加得证。
References
虚拟队列:Stochastic network optimization with application to communication and queueing systems
队列稳定性:Combinatorial Sleeping Bandits with Fairness Constraints
Lyapunov优化:http://en.wikipedia.org/wiki/Lyapunov_optimization