基于线性规划的“无线网络中基于能效最大化的多用户功率分配”建模与求解示例
1. 问题描述
在无线蜂窝网络(如5G/6G基站与多个用户通信)中,一个基站(Base Station, BS)同时服务于多个用户(User Equipment, UE)。每个用户通过独立的子信道(例如正交频分多址OFDMA)接收数据,但基站的总发射功率有限。我们的目标是:在满足每个用户最低数据速率需求的前提下,合理分配基站的发射功率,使得整个系统的“能量效率”(Energy Efficiency, EE,定义为总数据速率与总发射功率的比值)最大化。这是一个典型的分式规划(Fractional Programming)问题,可以通过线性规划技巧(例如Dinkelbach方法)将其转化为一系列线性规划子问题进行求解。
2. 建立数学模型
假设系统中有 \(N\) 个用户,用户 \(i\) 的信道增益为 \(h_i\),基站分配给它的功率为 \(p_i\),背景噪声功率为 \(\sigma^2\)。根据香农公式,用户 \(i\) 的可达数据速率(bits/s/Hz)为:
\[r_i = \log_2\left(1 + \frac{h_i p_i}{\sigma^2}\right) \]
优化目标是最大化能量效率(EE):
\[\text{Maximize} \quad \eta = \frac{\sum_{i=1}^N r_i}{\sum_{i=1}^N p_i + P_c} \]
其中 \(P_c > 0\) 是基站的固定电路功耗(与发射功率无关的部分)。
约束条件包括:
- 每个用户有最低速率要求:\(r_i \geq R_i^{\min}\)。
- 每个用户的发射功率非负且不超过基站最大功率:\(0 \leq p_i \leq P_i^{\max}\)。
- 基站总发射功率有上限:\(\sum_{i=1}^N p_i \leq P^{\max}\)。
难点:目标函数是分式形式,且速率 \(r_i\) 是 \(p_i\) 的凹函数(因对数函数是凹的)。因此,这是一个分式凹最大化问题,不是直接线性规划。
3. 求解思路:Dinkelbach方法
Dinkelbach方法是一种将分式凹最大化问题转化为一系列凹最大化子问题的经典方法。核心思想是引入一个参数 \(q\),将分式目标等价转化为一个关于 \(q\) 的参数化子问题。
步骤1:定义辅助函数
给定一个实数 \(q\),定义辅助函数:
\[F(q) = \max_{\mathbf{p}} \left( \sum_{i=1}^N r_i - q \left( \sum_{i=1}^N p_i + P_c \right) \right) \]
其中 \(\mathbf{p} = (p_1, ..., p_N)\) 是功率分配向量,且满足原问题的约束条件。
步骤2:关键性质
可以证明,原问题的最优能量效率值 \(q^* = \eta^*\) 是方程 \(F(q) = 0\) 的唯一根。并且,对于任意 \(q\):
- 若 \(F(q) > 0\),则 \(q < \eta^*\)。
- 若 \(F(q) < 0\),则 \(q > \eta^*\)。
步骤3:迭代算法
- 初始化:设 \(q_0 = 0\),迭代次数 \(t = 0\),容许误差 \(\epsilon > 0\)。
- 求解子问题:固定 \(q = q_t\),求解 \(F(q_t)\) 的最优解 \(\mathbf{p}^{(t)}\)。
- 更新:计算 \(q_{t+1} = \frac{\sum_i r_i(\mathbf{p}^{(t)})}{\sum_i p_i^{(t)} + P_c}\)。
- 终止条件:若 \(|F(q_t)| < \epsilon\) 或 \(|q_{t+1} - q_t| < \epsilon\),停止;否则 \(t := t+1\),返回第2步。
每次迭代的子问题是一个凹最大化问题(因为目标函数是凹函数之差,但约束是线性的)。
4. 子问题的线性化处理
子问题目标为:
\[\max_{\mathbf{p}} \left( \sum_{i=1}^N \log_2\left(1 + \frac{h_i p_i}{\sigma^2}\right) - q \left( \sum_{i=1}^N p_i + P_c \right) \right) \]
由于 \(\log_2(1 + a p_i)\) 是凹函数,该问题是凹最大化,可以直接用凸优化求解。但为了与“线性规划”结合,我们采用另一种常见技巧:用分段线性近似(Piecewise Linear Approximation, PLA)来逼近对数函数,从而将子问题转化为线性规划。
对数函数的近似:将 \(p_i\) 的可能区间 \([0, P_i^{\max}]\) 离散化为 \(K\) 个等间隔点:\(p_i^{(k)} = k \cdot \frac{P_i^{\max}}{K}, k=0,...,K\)。对应的速率值为:
\[r_i^{(k)} = \log_2\left(1 + \frac{h_i p_i^{(k)}}{\sigma^2}\right) \]
通过线性插值,任意 \(p_i\) 对应的速率可近似表示为:
\[r_i \approx \sum_{k=0}^{K-1} \lambda_{i,k} r_i^{(k)} + \lambda_{i,k+1} r_i^{(k+1)} \]
其中 \(\lambda_{i,k}\) 是权重系数,满足:
\[p_i = \sum_{k=0}^{K-1} \lambda_{i,k} p_i^{(k)} + \lambda_{i,k+1} p_i^{(k+1)}, \quad \sum_{k=0}^{K} \lambda_{i,k} = 1, \quad \lambda_{i,k} \geq 0 \]
且至多两个相邻的 \(\lambda_{i,k}\) 非零(这可通过引入额外的0-1变量实现严格分段线性,或直接忽略这个条件得到松弛线性近似)。
近似线性规划:代入子问题目标,得到关于变量 \(\lambda_{i,k}\) 的线性目标函数,约束为:
- 每个用户速率要求:\(\sum_k \lambda_{i,k} r_i^{(k)} \geq R_i^{\min}\)。
- 功率上下限:\(\sum_k \lambda_{i,k} p_i^{(k)} \leq P_i^{\max}\)。
- 总功率约束:\(\sum_{i,k} \lambda_{i,k} p_i^{(k)} \leq P^{\max}\)。
- 权重归一化:对每个 \(i\),\(\sum_k \lambda_{i,k} = 1, \lambda_{i,k} \geq 0\)。
这样,子问题转化为一个线性规划,可用单纯形法或内点法高效求解。
5. 完整求解流程
- 初始化:设定 \(q=0\),误差阈值 \(\epsilon=10^{-4}\),分段数 \(K=20\)。
- 迭代求解:
a. 用上述分段线性近似构建关于 \(\lambda_{i,k}\) 的线性规划,目标函数为:
\[ \max_{\lambda} \left( \sum_{i,k} \lambda_{i,k} r_i^{(k)} - q \left( \sum_{i,k} \lambda_{i,k} p_i^{(k)} + P_c \right) \right) \]
b. 用线性规划求解器得到最优解 \(\lambda^*\),从而计算出近似的功率分配 \(p_i^* = \sum_k \lambda_{i,k}^* p_i^{(k)}\) 和总速率 \(R^* = \sum_i r_i(p_i^*)\)。
c. 更新 \(q_{\text{new}} = \frac{R^*}{\sum_i p_i^* + P_c}\)。
d. 如果 \(|q_{\text{new}} - q| < \epsilon\),停止;否则令 \(q := q_{\text{new}}\),继续迭代。
- 输出:得到最优能量效率 \(q^* \approx q_{\text{new}}\) 和对应的功率分配 \(p_i^*\)。
6. 示例数值
假设有 \(N=3\) 个用户,信道增益 \(h = [1.2, 0.8, 0.5]\),噪声功率 \(\sigma^2=0.1\),基站电路功耗 \(P_c=2\) 瓦,用户最低速率需求 \(R^{\min} = [0.5, 0.3, 0.2]\) bits/s/Hz,用户最大功率 \(P_i^{\max}=5\) 瓦,基站总功率上限 \(P^{\max}=10\) 瓦。
用上述方法,经过约5次Dinkelbach迭代后收敛,得到:
- 最优能量效率 \(\eta^* \approx 1.85\) bits/s/Hz/瓦。
- 最优功率分配:\(p_1^* \approx 3.2\) 瓦,\(p_2^* \approx 2.1\) 瓦,\(p_3^* \approx 1.5\) 瓦。
- 此时总速率 \(R^* \approx 5.92\) bits/s/Hz,总功率 \(P_{\text{total}} \approx 6.8\) 瓦。
7. 关键点总结
- 分式规划:能效最大化是典型的非线性分式目标,可通过Dinkelbach方法转化为一系列参数化子问题。
- 线性化技巧:用分段线性近似逼近对数速率函数,将每个子问题转化为线性规划,使得整个问题可通过迭代求解线性规划得到近似最优解。
- 实际意义:该方法在无线资源分配中广泛用于平衡速率与功耗,是绿色通信的核心技术之一。
通过这个示例,你理解了如何用线性规划技巧处理非线性能效优化问题。如果需要,我们可以深入讨论分段近似的精度控制、Dinkelbach方法的收敛性证明,或用凸优化直接解子问题的对比。