更多精彩内容请关注微信公众号 ‘优化与算法

前言

在数学优化中,分数规划是线性分式规划的推广。分数规划中的目标函数是两个函数的比值,这两个函数通常是非线性的。要优化的比值通常描述系统的某种效率。

1. Concave-convex FP问题

1.1 基本形式

一维问题。符号说明:用R表示实数集,用R+表示非负实数集,再用R++表示严格正实数集,用C表示复数集,用S++表示对称正定矩阵集。,A为非负函数,B为正函数

二次变换等效形式如下。这种构造有几个性质:分子与分母解耦、最优解与原问题等效、目标函数与原问题等效(比前一个性质更强,适用于多比率问题)、目标函数concave.

当满足以下条件时,此FP问题为concave-convex :(1)分子都是concave;(2)分母都convex;(3)约束集是由有限个不等式约束表示的标准形式的非空凸集。


一维FP concave-convex问题算法

  • 步骤1:找到可行解,并将原问题做二次变换等效。
  • 步骤2:由更新所有
  • 步骤3:将代入等效问题,求解关于的concave问题,更新
  • 步骤4:重复步骤2和3,直至收敛。(本算法确保可收敛到一个stationary point)

传统的Dinkelbach’s变换可以比所提出的二次变换更快地收敛,但前者的使用仅限于单个比率问题,而后者能够处理多个比率问题。

1.2 比率和问题 sum-of-ratios

原问题:

等效问题:

若满足concave-convex条件,使用算法1求解。

1.3 Max-min Ratio

原问题:

等效问题:

若满足concave-convex条件,使用算法1求解。

1.4 多维问题

MIMO系统中,分子是向量,分母是矩阵的多维复数情况下考虑FP。,,共轭转置(矩阵同理),为矩阵的逆。

原问题:

等效问题:

若满足concave-convex条件,该问题也可使用算法1求解,步骤2替换为即可。

2. FP的拉格朗日对偶变换

当FP不满足concave-convex条件时,比如约束集非凸,即含有离散变量时,可用拉格朗日对偶变换(Lagrangian
dual transform),以下直接贴出论文中推导结果。

2.1 一维问题

原问题:

等效问题:加入了辅助变量


求解思路:对于固定的,通过可以求出。然后对后面的分数项,做二次变换等效,引入辅助变量,得到另一个目标函数,通过可以求出。这样就只剩下变量组,此时目标函数不含有分数项,可能可以得到一些闭式解,或者中的部分变量有闭式解,其他变量(如离散项)仍需要再找解法。

具体而言(从所给例子中得到),结合(4),得到:



2.2多维问题

原问题:

等效问题:


求解思路:同上。

具体而言(从所给例子中得到):

注意,中的“分子”是,对应的(记得常数项要开根号),而“分母”是,根据(8),得到:


3. 具体例子

3.1-3.3都只需要用第一章concave-convex方法求解,3.4-3.6需要用到第二章的拉格朗日对偶变换,而且具体解时需要对离散变量单独开发算法。

3.1 多小区SISO能量分配

第一个例子是具有一组单天线基站(BSs)的下行链路SISO蜂窝网络的经典功率控制问题,每个基站服务于单天线用户。设C是从BS
j到用户i的下行链路信道;设为加性高斯白噪声(AWGN)功率电平。为每个BS i引入可变作为其发射功率电平,受Pmax功率预算的约束。第i个用户的速率

优化问题如下。

先说明,对于两种等效方法,都可以使用简单的初始值,比如能量平均分配。此问题可以拓展到多载波

3.1.1 Direct FP

对log里面的分数项做处理,得到直接FP形式如下。直接使用算法1,可以得到,代入后用数值方法求解p(剩下的是凸问题),然后迭代。

进一步地,只要目标函数(或叫做效用函数)是关于的nondecreasing concave函数,都可以对里面的分数项使用二次变换等效。

3.1.2 拉格朗日对偶变换求闭式解

应用第二部分的拉格朗日对偶变换方法,首先得到下式,

上式引入辅助变量的最优解为,再对最后一项分数项做二次变换,的前两项记为

上式引入辅助变量的最优解为,然后求导,再结合约束条件中$p

最后,依次迭代,可收敛到最优值。

自行推导:首先可以得到中关于的一项为:

注意后面一项要拆分再合并才得到的后面一项。此时,令,则,就是上式。

3.1.3 结果比较

图中的SCALE是一个modified version of geometric programming (GP)[32].
要注意,SCALE每次迭代要用数值法解一个GP问题,Direct FP每次迭代要用数值法解一个关于p的凸优化问题,牛顿法中有比较复杂的公式和一部分搜索,而闭式解FP则全是解析解。虽然所提的FP方法需要迭代数多,但复杂度还是要更低的。在作者的测试中,closed-form
FP最快收敛完成。从结果上看,依靠数值法求解的SCALE和Direct FP能得到更好的性能。

  • [32] J. Papandriopoulos and J. S. Evans, “SCALE: A low-complexity
    distributed protocol for spectrum balancing in multiuser DSL networks,”
    IEEE Trans. Inf. Theory, vol. 55, no. 8, pp. 3711–3724, Jul. 2009

3.2 多小区MIMO beamforming

考虑具有一组BS 的下行链路MIMO蜂窝网络。假设每个BS具有M个天线,并且每个用户终端具有N个天线;则经由空间复用每个小区最多支持M个下行链路数据流。设是从的第m个数据流中调度的用户的下行链路信道。设σ2是AWGN功率电平。引入变量作为其第m个数据流在BS
i处的下行链路发射波束形成器。流(i,m)的数据速率如下

代表所有的,加入权重之后,优化问题如下

3.2.1 Direct FP

使用1.4节中的方法,做二次变换,得到

根据,得到下式。然后数值法求解二次变换后的等效问题(关于V是凸问题),迭代求解。

3.2.2 拉格朗日对偶变换求闭式解

与3.1.2类似,只不过是矩阵形式的。首先通过拉格朗日对偶得到,再对内部的分式做二次变换得到.





注意中还有一个变量是为功率约束引入的对偶变量,由(互补松弛)最优确定。文章说这个值可以由二分搜索等方法得到,应该是把代入上式,

需要注意的是,此方法和WMMSE等效算法得到的结果是一致的。与前面类似,Direct FP可以得到更好的性能,而Closed-form
FP可以得到更低复杂度。

自行推导:与3.1.2类似,注意矩阵求导,则.
是在求解时,把约束考虑进来之后,构造出来的拉格朗日对偶问题引入的辅助变量。
对于约束,可写为,即
构造出

添加的对偶项求导后为.

3.3 能效最大化

跨多个干扰链路的能效最大化是一个更具挑战性的问题。考虑一个空间复用多天线广播信道模型,其中一个发送器配备有M个天线,以向其M个接收器发送单独的数据。假设每个接收机具有N个天线并且支持一个数据流。设是发送方和第M个接收方之间的信道;设是用于传输到第m个接收器的波束形成器。是电路的固定功耗。在这种情况下,能源效率最大化问题如下


这个问题里,目标函数是一个分式,而内部又是一个分式,直接使用两次二次变换等效,使用Direct FP方法求解。仿真表明,在单链路问题下,可以收敛到和Dinkelbach等效方法一致的结果,多链路时Dinkelbach方法不适用。

3.4 多小区SISO上行调度和能量分配

考虑无线蜂窝网络的上行链路,B是部署在网络中的基站(BSs)集合,是与BS i关联的用户集合,每个BS
i及其在中的关联用户构成一个小区。在每个时隙中,用户被调度为基于小区的上行链路传输。为了用户调度和功率控制的目的,引入变量表示在BS
i调度的用户,如果用户被调度为上行链路传输,则引入变量表示其发射功率电平。设是从用户k到BS
i的上行信道系数。关于的理解,SISO场景,基站i一个时刻只能与一个设备通信,就是这个设备的编号?比如基站1对设备5,基站2对设备6,那么
?由于上行链路调度决策对干扰模式有重要影响,即小区i中的特定调度决策si强烈影响其相邻小区中的调度决策sj,因此这个问题很难直接解决。为什么直接讨论拉格朗日对偶变换法(性能比direct
FP差点),因为想得到更多的解析式来讨论?

一种经典的等效方法是

主要问题是,由于目标函数的高度非凸性,功率控制算法的驻点对初始条件高度敏感。因此,这类方法存在严重的过早停止问题。如果某个环节在迭代优化的早期阶段被停用,那么它就永远无法在以后的迭代中被重新激活,因为它的局部梯度会强烈阻碍它这样做。使用GP的方法[30]可以改善这点,但只能在高SINR下工作,但是在小区干扰场景中,SINR往往较低。
使用拉格朗日对偶变换:

与前面的步骤一样,,再对分数项做二次变换,也可求得.

重写成如下形式,可以看到问题被解耦,具体地说,“每个小区中的调度和功率优化,即(),可以在每个小区中独立地完成。即当γ和y固定时,si的优化不依赖于其他sj变量。”(不是很理解,的取值不是还和有关么?也不算完全解耦,只是这个式子里确实只关注就行,而且计算的时候也不用关注是哪个。)下式也可以看做一个总的效用函数,是在BS
i处调度用户k的效用增益,而则是通过调度用户k干扰相邻小区j的惩罚。即遍历计算每个用户的总效用,选最大就完成了的优化,不需要对所有调度组合做搜索,复杂度大大降低。在实际应用中,可以使用两阶段调度策略来降低该算法的实现复杂度。我们首先根据潜在用户的权重粗略地选择其子集,然后应用算法对调度决策进行细化。


结果:曲线有交叉,怎么就说明FP好了呢? 主要看低速率的。比如横着看,CDF=0.1时,即对最差的10%用户,FP方法对应的data
rate约1Mbps,而Power control约0.5Mbps,FP更保障了这部分差用户的性能。竖着看,速率为2Mbps(按照CDF定义,此处的值表示有多少用户低于此速率),FP只有40%用户,而Power
control有60%用户,FP处于低速率的用户更少,因此更好。而对于最好的20%用户(4Mbps+),FP确实要差一些。但文章还提供了一个表,总速率的性能(总效用函数),FP大幅优于旧方法。

3.5 多小区MIMO上行调度和beamforming

假设每个用户配备有N个天线,并且每个BS配备有M个天线。因此,空间复用可以支持每个小区多达M个数据流(但是一些数据流可能具有零吞吐量)。设s_{im}是在BS
i的第m个流中调度的用户的索引。如果用户k得到调度,则设是用户k的发送波束形成器。设是从用户k到BS
i的上行链路信道。


问题比较直观,也和3.2与3.4那样先做两次变换,其中




接下来的问题又是的优化问题。将加权二部匹配的思想引入到这两个变量的联合优化中。首先,由可以看出,特定数据流与其他流的s和v优化是独立的(类似SISO问题中的“解耦”)。如果某个用户在数据流中被调度,即,则用户关于的最优发射波束形成器可通过求得,表示为

与3.2中的问题类似,由于约束的引入,多了个,通过二分搜索求解

类似3.4节,根据先定义一个将用户分配给数据流的效用函数:

然后,fq最大化问题简化为以下加权二分匹配问题(背包问题),其中二进制变量表示用户是否调度在数据流(i,m)中。每个用户只能用一个流,每个流只能调度一个用户。通过使用例如匈牙利算法[6]和拍卖算法[7]的具有多项式时间计算复杂度的现有算法,计算复杂度为。此外,由于在实践中,匹配权重ξk,im总是以有限精度进行评估,因此在这种有限精度的情况下,可以使用[34]中的算法将匹配的复杂度降低到.

如果考虑预编码权值是离散的,考虑码本

其中为一个特定预编码。此时,用户关于的最优预编码改为(可通过搜索得到,复杂度

再用背包问题求解,也是一样的。如果先按老方法优化,然后找一个距离最近的波束,即,这样能降低复杂度到,虽然看上去是启发式的搜索,但论文里证明了能到最优。

再然后就是和WMMSE方法的比较,对信道差的用户提供的速率比WMMSE好,总效用函数高10%。在K>>M的情况下,WMMSE有更高的communication complexity。在K>>M和N的情况下,FP方法的计算复杂度也要更低(特别是使用更高效的背包问题求解方法后)。

FP分数规划在无线通信中的应用的更多相关文章

  1. zoj 2676 二分+ISAP模板求实型参数的最小割(0-1分数规划问题)(可做ISAP模板)

    /* 参考博文:http://www.cnblogs.com/ylfdrib/archive/2010/09/01/1814478.html 以下题解为转载代码自己写的: zoj2676 胡伯涛论文& ...

  2. 【BZOJ 1758】【WC 2010】重建计划 分数规划+点分治+单调队列

    一开始看到$\frac{\sum_{}}{\sum_{}}$就想到了01分数规划但最终还是看了题解 二分完后的点分治,只需要维护一个由之前处理过的子树得出的$tb数组$,然后根据遍历每个当前的子树上的 ...

  3. ZOJ 2676 Network Wars ★(最小割算法介绍 && 01分数规划)

    [题意]给出一个带权无向图,求割集,且割集的平均边权最小. [分析] 先尝试着用更一般的形式重新叙述本问题.设向量w表示边的权值,令向量c=(1, 1, 1, --, 1)表示选边的代价,于是原问题等 ...

  4. POJ 2728 Desert King ★(01分数规划介绍 && 应用の最优比率生成树)

    [题意]每条路径有一个 cost 和 dist,求图中 sigma(cost) / sigma(dist) 最小的生成树. 标准的最优比率生成树,楼教主当年开场随手1YES然后把别人带错方向的题Orz ...

  5. POJ 2976 Dropping tests 01分数规划

    给出n(n<=1000)个考试的成绩ai和满分bi,要求去掉k个考试成绩,使得剩下的∑ai/∑bi*100最大并输出. 典型的01分数规划 要使∑ai/∑bi最大,不妨设ans=∑ai/∑bi, ...

  6. 【转】[Algorithm]01分数规划

    因为搜索关于CFRound277.5E题的题解时发现了这篇文章,很多地方都有值得借鉴的东西,因此转了过来 原文:http://www.cnblogs.com/perseawe/archive/2012 ...

  7. codevs 1183 泥泞的道路 01分数规划

    题目链接 题目描述 Description CS有n个小区,并且任意小区之间都有两条单向道路(a到b,b到a)相连.因为最近下了很多暴雨,很多道路都被淹了,不同的道路泥泞程度不同.小A经过对近期天气和 ...

  8. POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)

    用01分数规划 + prime + 二分 竟然2950MS惊险的过了QAQ 前提是在TLE了好几次下过的 = = 题目意思:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一 ...

  9. poj 3266 Cow School 分数规划

    这个题目难度非常大,首先对于老师的一种方案,应用分数规划的一般做法,求出所有的c=t-rate*p,如果没有选择的c值中的最大值比选择了的c值中的最小值大,那么这个解是可以改进的. 那么问题就转化成了 ...

  10. POJ 2976 Dropping tests 01分数规划 模板

    Dropping tests   Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6373   Accepted: 2198 ...

随机推荐

  1. Kubernetes操作图

  2. iOS手工Crash解析

    一.测试导出来一份ips crash文件,现在需要进行手工解析 现在需要下载对应的dsym文件,为了确定下载好的dsym文件和crash log是不是一致的,可以先看下dsym文件中的uuid p.p ...

  3. RTMP推流与B帧的关系

    一.H264数据结构 一个原始的H.264 NALU 由一个接一个的 NALU 组成的,而它的功能分为两层,VCL(视频编码层)和 NAL(网络提取层). VCL:包括核心压缩引擎和块,宏块和片的语法 ...

  4. Qt OPC UA通信

    介绍 OPC UA全称Open Platform Unified Architecture,开放平台统一架构,是工业自动化领域通用的数据交换协议,它有两套主要的通信机制:1.客户端-服务器通信:2.发 ...

  5. LeetCode 692. Top K Frequent Words 前K个高频单词 (Java)

    题目: Given a non-empty list of words, return the k most frequent elements. Your answer should be sort ...

  6. LeetCode 332. Reconstruct Itinerary重新安排行程 (C++/Java)

    题目: Given a list of airline tickets represented by pairs of departure and arrival airports [from, to ...

  7. 剑指Offer-53.表示数值的字符串(C++/Java)

    题目: 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.14 ...

  8. 制作tomcat镜像

    本篇文章介绍用Dockerfile的方式构建Tomcat镜像,请保证安装了Docker环境. 首先创建/opt/tomcat目录,后续步骤都在该目录下进行操作. 准备好Jdk和Tomcat安装文件,放 ...

  9. Kubernetes容器生命周期 —— 钩子函数详解(postStart、preStop)

    1.概述 容器生命周期钩子(Container Lifecycle Hooks)监听容器生命周期的特定事件,并在事件发生时执行已注册的回调函数. 钩子函数能够感知自身生命周期中的事件,并在相应的时刻到 ...

  10. 为什么Linux不能在中断中睡眠

    中断分析 首先来看中断的流程: 1.进入中断处理程序---> 2.保存关键上下文----> 3.开中断(sti指令)---> /* 硬中断:对应于1.2.3步骤. 在这几个步骤中,所 ...