基于线性规划的“无线网络中最大化用户总速率的功率分配”建模与求解示例
字数 6788 2025-12-22 16:09:36

基于线性规划的“无线网络中最大化用户总速率的功率分配”建模与求解示例

我将为你详细讲解“无线网络中最大化用户总速率的功率分配”这个经典优化问题。我们将从问题背景开始,逐步构建线性规划模型,并讲解其求解过程。这个示例清晰地展示了如何将一个实际的通信资源管理问题,转化为一个可求解的数学规划问题。

1. 问题背景与描述

在现代无线通信网络中(如蜂窝网络、Wi-Fi),基站需要为多个用户分配有限的功率资源。每个用户设备接收到的信号功率,不仅来自基站的发射功率,还受到其他用户设备信号的干扰。我们的目标是:在基站总发射功率有限的前提下,通过合理地给各个用户分配功率,使得所有用户的数据传输速率总和达到最大。

核心挑战:分配给某个用户的功率增加,虽然能提高该用户自身的信号质量,但也会增加对其他用户的干扰。因此,我们需要在用户间进行权衡,找到一个全局最优的功率分配方案。


2. 系统模型与关键公式

我们考虑一个单小区下行链路场景:

  • 有一个基站(Base Station, BS)和 \(N\) 个用户设备(User Equipment, UE)。
  • 基站总发射功率的上限为 \(P_{\text{total}}\)
  • 设基站分配给用户 \(i\) 的功率为 \(p_i\)\(p_i \geq 0\))。

关键物理量定义

  • 信道增益 \(h_i\):表示从基站到用户 \(i\) 的信道质量(大数表示信道好)。这里我们假设信道增益是已知且固定的(即在一次功率分配决策期间不变)。
  • 噪声功率 \(\sigma^2\):用户 \(i\) 接收机处的背景噪声功率,通常假设为相同的高斯白噪声。
  • 信干噪比(SINR):这是衡量用户 \(i\) 接收信号质量的核心指标。

用户 \(i\) 的SINR计算公式为:

\[\text{SINR}_i = \frac{h_i \cdot p_i}{\sigma^2 + \sum_{j \neq i} h_i \cdot p_j} \]

解释:分子是用户 \(i\) 收到的有用信号功率(基站发给它的功率 \(p_i\) 乘以信道增益 \(h_i\))。分母中,\(\sum_{j \neq i} h_i \cdot p_j\) 表示来自基站发给其他用户的信号对用户 \(i\) 造成的同频干扰。因为基站使用相同的频谱资源服务所有用户,所以用户 \(i\) 会收到发给其他用户的信号作为干扰。注意,干扰项也乘以了 \(h_i\),因为干扰信号经过相同的信道到达用户 \(i\)\(\sigma^2\) 是常数噪声。

  • 用户速率:根据香农公式,用户 \(i\) 可达到的理论最大传输速率(单位:bps/Hz)近似为其SINR的对数函数。在一个带宽归一化的系统中,其速率 \(R_i\) 可以表示为:

\[R_i = \log_2(1 + \text{SINR}_i) \]


3. 原始优化问题的形式化

我们的目标是最大化所有用户的总速率,同时满足总功率约束。这自然形成了一个优化问题:

\[\begin{aligned} \max_{\{p_i\}} &\quad \sum_{i=1}^{N} R_i = \sum_{i=1}^{N} \log_2(1 + \text{SINR}_i) \\ \text{s.t.} &\quad \sum_{i=1}^{N} p_i \leq P_{\text{total}} \\ &\quad p_i \geq 0, \quad i = 1, 2, \dots, N \end{aligned} \]


4. 模型分析与挑战:非凸性

观察目标函数 \(R_i = \log_2(1 + \frac{h_i p_i}{\sigma^2 + h_i \sum_{j \neq i} p_j})\)

  • 变量 \(p_i\) 同时出现在分子和分母(干扰项)中。
  • 这是一个关于功率变量 \(p_i\)非凸函数。直接求解这个全局最大化问题在数学上非常困难,通常属于非凸优化范畴,难以找到多项式时间的精确算法。

5. 线性规划的引入:高SINR近似

为了获得一个可高效求解的模型,我们引入一个在高SINR区域下有效的近似。回顾一个重要的数学近似:当 \(x\) 较大时,有 \(\log_2(1+x) \approx \log_2(x)\)。在通信中,这被称为“高SINR近似”或“SNR近似”。

应用近似
假设系统工作在较高的SINR下(例如,SINR > 10 dB),则用户速率可近似为:

\[R_i \approx \log_2(\text{SINR}_i) = \log_2\left( \frac{h_i p_i}{\sigma^2 + h_i \sum_{j \neq i} p_j} \right) \]

关键变换
我们引入变量替换。令 \(s_i = \ln(p_i)\) 或等价地,\(p_i = e^{s_i}\)。但更常用且能直接得到线性形式的变换是在分贝(dB)尺度上进行。另一种更直接的方法是引入变量 \(r_i = \ln(R_i)\) 的某种形式,但这里我们采用一种经典的、能直接导出线性约束的方法:对速率表达式取对数并进行变量替换

定义一个新的变量 \(q_i = \ln(p_i)\)。则:

\[\text{SINR}_i = \frac{h_i e^{q_i}}{\sigma^2 + h_i \sum_{j \neq i} e^{q_j}} \]

将近似速率 \(R_i \approx \log_2(\text{SINR}_i)\) 乘以常数 \(\ln 2\) 得到自然对数的形式:

\[\ln 2 \cdot R_i \approx \ln(\text{SINR}_i) = \ln(h_i) + q_i - \ln(\sigma^2 + h_i \sum_{j \neq i} e^{q_j}) \]

目标函数变为 \(\sum_i [\ln(h_i) + q_i - \ln(\sigma^2 + h_i \sum_{j \neq i} e^{q_j})]\),这仍然是非凸的。


6. 成功的关键:几何规划与对数线性化

这里介绍一个更系统的方法。我们注意到,在近似 \(R_i \approx \log_2(\text{SINR}_i)\) 下,最大化总速率等价于最大化所有用户SINR的乘积(因为 \(\sum \log(\text{SINR}_i) = \log(\prod \text{SINR}_i)\),而对数函数是单调的)。

因此,原始问题近似等价于:

\[\max_{\{p_i\}} \quad \prod_{i=1}^{N} \text{SINR}_i \]

约束条件不变。

这是一个“几何规划”(Geometric Programming, GP)的标准形式。几何规划可以通过对所有变量和约束取对数,转化为一个凸优化问题(具体是凸形式的“线性规划”在其对数变量空间中是凸的,但变量替换后目标函数和约束是线性的吗?不完全是,但可以转化为一个特殊的凸问题,有时可以通过进一步近似变成线性规划)。

简化与线性化(重点步骤)
在实际工程中,特别是当我们将优化目标从“最大化总速率”放宽为“在满足各用户最低SINR要求的前提下,最小化总功率”时,问题会大大简化。这个对偶的视角(满足QoS要求下最节能)通常更能导向线性规划。但为了保持我们“最大化总速率”的原始目标,我们可以采用如下技巧:

  1. 目标函数线性化:利用一阶泰勒展开近似。在某个给定的初始功率分配点 \(\hat{p}_i\) 附近,对 \(R_i\) 进行线性近似。然而,由于干扰的存在,这是一个复杂的耦合函数,线性近似效果可能不佳。

  2. 更实用的“分式规划”转换:另一个强大的工具是将和速率最大化问题等价地转化为一个“分式和最大化”问题,然后利用“分式规划”理论(如Dinkelbach方法)将其转化为一系列更容易处理的子问题。在这些子问题中,目标函数可以变为关于 \(p_i\)线性函数

我们采用一种经典的迭代方法,其每一步都求解一个线性规划


7. 基于“逐次凸近似”的线性规划求解框架

我们可以不直接求解那个非凸的原问题,而是采用一种迭代算法。在每次迭代中,我们构造一个原目标函数的下界(或上界)的线性近似,然后求解这个线性规划,并用其解作为下一次近似的起点,直到收敛。

具体步骤如下

步骤1: 引入辅助变量并进行不等式放缩
利用对数函数的性质:对于任意 \(x > 0, y > 0\),有

\[\ln(1+x) \geq \alpha \ln(x) + \beta \]

其中,如果在某一点 \(x = \hat{x}\) 处,我们选择 \(\alpha = \frac{\hat{x}}{1+\hat{x}}\)\(\beta = \ln(1+\hat{x}) - \alpha \ln(\hat{x})\), 则这个下界在 \(x = \hat{x}\) 处是紧的(相等),且是一个全局下界(由对数函数的凸性保证)。

步骤2: 应用于我们的问题
设当前迭代点的SINR值为 \(\widehat{\text{SINR}}_i\)。那么,对于每个用户,其速率函数满足:

\[\log_2(1 + \text{SINR}_i) \geq a_i \cdot \log_2(\text{SINR}_i) + b_i \]

其中,

\[a_i = \frac{\widehat{\text{SINR}}_i}{1+\widehat{\text{SINR}}_i}, \quad b_i = \log_2(1+\widehat{\text{SINR}}_i) - a_i \cdot \log_2(\widehat{\text{SINR}}_i) \]

注意,\(a_i\)\(b_i\) 在当前迭代是已知常数。

步骤3: 构造一个线性规划子问题
将上述下界代入总速率目标,我们得到原目标的一个可处理的下界:

\[\sum_{i=1}^{N} R_i \geq \sum_{i=1}^{N} [a_i \cdot \log_2(\text{SINR}_i) + b_i] \]

去掉常数项 \(b_i\)(不影响优化),并注意到 \(\log_2(\text{SINR}_i) = \log_2(h_i) + \log_2(p_i) - \log_2(\sigma^2 + h_i \sum_{j \neq i} p_j)\)。 这还不是线性的。

关键的线性化操作: 我们对干扰项也进行近似。在点 \(\hat{p}_j\) 处,函数 \(\log_2(\sigma^2 + h_i \sum_{j \neq i} p_j)\) 是凹的(对数内部是线性函数,整体复合是凹函数)。凹函数的一阶泰勒展开是其全局上界。因此,我们可以在当前点 \(\hat{p}_j\) 处对其进行一阶泰勒展开,得到一个线性上界

\[\log_2(\sigma^2 + h_i \sum_{j \neq i} p_j) \leq \log_2(\sigma^2 + h_i \sum_{j \neq i} \hat{p}_j) + \frac{h_i \sum_{j \neq i} (p_j - \hat{p}_j)}{(\sigma^2 + h_i \sum_{j \neq i} \hat{p}_j) \ln 2} \]

\(I_i = \sigma^2 + h_i \sum_{j \neq i} \hat{p}_j\) 为当前总干扰加噪声, \(c_i = \frac{h_i}{I_i \ln 2}\) 为常数。

将这个上界代入 \(-\log_2(\sigma^2 + h_i \sum_{j \neq i} p_j)\) 项(注意前面是负号),我们就得到了它的一个下界。结合之前的处理,最终我们可以构造出一个关于功率变量 \(p_i\)线性目标函数

简化后的线性规划子问题(在迭代中)形式如下:

\[\begin{aligned} \max_{\{p_i\}} &\quad \sum_{i=1}^{N} w_i \cdot p_i - \sum_{i=1}^{N} \sum_{j \neq i} v_{ij} \cdot p_j \quad \text{(线性组合)} \\ \text{s.t.} &\quad \sum_{i=1}^{N} p_i \leq P_{\text{total}} \\ &\quad p_i \geq 0, \quad i = 1, 2, \dots, N \end{aligned} \]

其中,权重 \(w_i\)\(v_{ij}\) 是由当前迭代点 \(\hat{p}_i\) 和信道状态 \(h_i\) 计算得到的常数。这个问题的目标函数是 \(p_i\) 的线性函数,约束也是线性的,因此是一个标准的线性规划


8. 完整求解算法流程

  1. 初始化: 设定一个初始的可行功率分配 \(p_i^{(0)}\)(例如,平均分配 \(p_i^{(0)} = P_{\text{total}} / N\))。设定收敛阈值 \(\epsilon > 0\)
  2. 迭代循环 (对于迭代次数 \(k = 0, 1, 2, \dots\)):
    a. 计算常数: 根据当前功率 \(p_i^{(k)}\) 计算每个用户的 \(\widehat{\text{SINR}}_i^{(k)}\)、下界系数 \(a_i^{(k)}\)\(b_i^{(k)}\),以及线性化系数 \(w_i^{(k)}\)\(v_{ij}^{(k)}\)
    b. 求解线性规划: 构建并求解如上所述的线性规划子问题,得到一组新的功率分配解 \(p_i^*\)
    c. 更新与判断: 令 \(p_i^{(k+1)} = p_i^*\)。计算当前解对应的真实总速率 \(R_{\text{sum}}^{(k+1)} = \sum_i \log_2(1+\text{SINR}_i(p_i^{(k+1)}))\)
    d. 收敛检查: 如果 \(|R_{\text{sum}}^{(k+1)} - R_{\text{sum}}^{(k)}| / |R_{\text{sum}}^{(k)}| < \epsilon\),则算法终止,输出 \(p_i^{(k+1)}\) 作为(局部)最优解。否则,令 \(k = k+1\),返回步骤a。

9. 算法特性与总结

  • 核心思想: 通过“逐次凸近似”将复杂的非凸和速率最大化问题,分解为一系列简单的线性规划子问题来迭代求解。
  • 收敛性: 由于每一步都保证了目标函数的下界是提升的(或至少不减),并且原问题目标有上界,该算法通常会收敛到一个局部最优解
  • 优势: 线性规划是成熟的优化问题,存在多种高效算法(如单纯形法、内点法),可以在多项式时间内求得全局最优解。这使得每一步迭代的计算都非常高效。
  • 实际意义: 这个建模与求解思路是无线资源管理(如OFDMA系统中的功率分配、能效优化)的经典方法之一。它清晰地展示了如何利用优化理论(凸近似、对数线性化)将复杂的工程问题转化为一系列可计算的数学规划问题。

通过这个示例,你可以看到线性规划不仅是独立的优化工具,更是解决更复杂非凸问题的强大基础模块。

基于线性规划的“无线网络中最大化用户总速率的功率分配”建模与求解示例 我将为你详细讲解“无线网络中最大化用户总速率的功率分配”这个经典优化问题。我们将从问题背景开始,逐步构建线性规划模型,并讲解其求解过程。这个示例清晰地展示了如何将一个实际的通信资源管理问题,转化为一个可求解的数学规划问题。 1. 问题背景与描述 在现代无线通信网络中(如蜂窝网络、Wi-Fi),基站需要为多个用户分配有限的功率资源。每个用户设备接收到的信号功率,不仅来自基站的发射功率,还受到其他用户设备信号的干扰。我们的目标是:在基站总发射功率有限的前提下,通过合理地给各个用户分配功率,使得所有用户的 数据传输速率总和 达到最大。 核心挑战 :分配给某个用户的功率增加,虽然能提高该用户自身的信号质量,但也会增加对其他用户的干扰。因此,我们需要在用户间进行权衡,找到一个全局最优的功率分配方案。 2. 系统模型与关键公式 我们考虑一个 单小区 下行链路场景: 有一个基站(Base Station, BS)和 \( N \) 个用户设备(User Equipment, UE)。 基站总发射功率的上限为 \( P_ {\text{total}} \)。 设基站分配给用户 \( i \) 的功率为 \( p_ i \)(\( p_ i \geq 0 \))。 关键物理量定义 : 信道增益 \( h_ i \):表示从基站到用户 \( i \) 的信道质量(大数表示信道好)。这里我们假设信道增益是已知且固定的(即在一次功率分配决策期间不变)。 噪声功率 \( \sigma^2 \):用户 \( i \) 接收机处的背景噪声功率,通常假设为相同的高斯白噪声。 信干噪比(SINR) :这是衡量用户 \( i \) 接收信号质量的核心指标。 用户 \( i \) 的SINR计算公式为: \[ \text{SINR} i = \frac{h_ i \cdot p_ i}{\sigma^2 + \sum {j \neq i} h_ i \cdot p_ j} \] 解释 :分子是用户 \( i \) 收到的有用信号功率(基站发给它的功率 \( p_ i \) 乘以信道增益 \( h_ i \))。分母中,\( \sum_ {j \neq i} h_ i \cdot p_ j \) 表示来自基站发给 其他用户 的信号对用户 \( i \) 造成的 同频干扰 。因为基站使用相同的频谱资源服务所有用户,所以用户 \( i \) 会收到发给其他用户的信号作为干扰。注意,干扰项也乘以了 \( h_ i \),因为干扰信号经过相同的信道到达用户 \( i \)。\( \sigma^2 \) 是常数噪声。 用户速率 :根据香农公式,用户 \( i \) 可达到的理论最大传输速率(单位:bps/Hz)近似为其SINR的对数函数。在一个带宽归一化的系统中,其速率 \( R_ i \) 可以表示为: \[ R_ i = \log_ 2(1 + \text{SINR}_ i) \] 3. 原始优化问题的形式化 我们的目标是最大化所有用户的总速率,同时满足总功率约束。这自然形成了一个优化问题: \[ \begin{aligned} \max_ {\{p_ i\}} &\quad \sum_ {i=1}^{N} R_ i = \sum_ {i=1}^{N} \log_ 2(1 + \text{SINR} i) \\ \text{s.t.} &\quad \sum {i=1}^{N} p_ i \leq P_ {\text{total}} \\ &\quad p_ i \geq 0, \quad i = 1, 2, \dots, N \end{aligned} \] 4. 模型分析与挑战:非凸性 观察目标函数 \( R_ i = \log_ 2(1 + \frac{h_ i p_ i}{\sigma^2 + h_ i \sum_ {j \neq i} p_ j}) \)。 变量 \( p_ i \) 同时出现在分子和分母(干扰项)中。 这是一个关于功率变量 \( p_ i \) 的 非凸函数 。直接求解这个全局最大化问题在数学上非常困难,通常属于非凸优化范畴,难以找到多项式时间的精确算法。 5. 线性规划的引入:高SINR近似 为了获得一个可高效求解的模型,我们引入一个在 高SINR区域 下有效的近似。回顾一个重要的数学近似:当 \( x \) 较大时,有 \( \log_ 2(1+x) \approx \log_ 2(x) \)。在通信中,这被称为“高SINR近似”或“SNR近似”。 应用近似 : 假设系统工作在较高的SINR下(例如,SINR > 10 dB),则用户速率可近似为: \[ R_ i \approx \log_ 2(\text{SINR} i) = \log_ 2\left( \frac{h_ i p_ i}{\sigma^2 + h_ i \sum {j \neq i} p_ j} \right) \] 关键变换 : 我们引入变量替换。令 \( s_ i = \ln(p_ i) \) 或等价地,\( p_ i = e^{s_ i} \)。但更常用且能直接得到线性形式的变换是 在分贝(dB)尺度上进行 。另一种更直接的方法是引入变量 \( r_ i = \ln(R_ i) \) 的某种形式,但这里我们采用一种经典的、能直接导出线性约束的方法: 对速率表达式取对数并进行变量替换 。 定义一个新的变量 \( q_ i = \ln(p_ i) \)。则: \[ \text{SINR} i = \frac{h_ i e^{q_ i}}{\sigma^2 + h_ i \sum {j \neq i} e^{q_ j}} \] 将近似速率 \( R_ i \approx \log_ 2(\text{SINR} i) \) 乘以常数 \( \ln 2 \) 得到自然对数的形式: \[ \ln 2 \cdot R_ i \approx \ln(\text{SINR} i) = \ln(h_ i) + q_ i - \ln(\sigma^2 + h_ i \sum {j \neq i} e^{q_ j}) \] 目标函数变为 \( \sum_ i [ \ln(h_ i) + q_ i - \ln(\sigma^2 + h_ i \sum {j \neq i} e^{q_ j}) ] \),这仍然是非凸的。 6. 成功的关键:几何规划与对数线性化 这里介绍一个更系统的方法。我们注意到,在近似 \( R_ i \approx \log_ 2(\text{SINR}_ i) \) 下, 最大化总速率 等价于 最大化所有用户SINR的乘积 (因为 \( \sum \log(\text{SINR}_ i) = \log(\prod \text{SINR}_ i) \),而对数函数是单调的)。 因此,原始问题近似等价于: \[ \max_ {\{p_ i\}} \quad \prod_ {i=1}^{N} \text{SINR}_ i \] 约束条件不变。 这是一个“几何规划”(Geometric Programming, GP)的标准形式 。几何规划可以通过 对所有变量和约束取对数 ,转化为一个 凸优化问题 (具体是凸形式的“线性规划”在其对数变量空间中是凸的,但变量替换后目标函数和约束是线性的吗?不完全是,但可以转化为一个特殊的凸问题,有时可以通过进一步近似变成线性规划)。 简化与线性化(重点步骤) : 在实际工程中,特别是当我们将优化目标从“最大化总速率”放宽为“在满足各用户最低SINR要求的前提下,最小化总功率”时,问题会大大简化。这个 对偶的视角 (满足QoS要求下最节能)通常更能导向线性规划。但为了保持我们“最大化总速率”的原始目标,我们可以采用如下技巧: 目标函数线性化 :利用一阶泰勒展开近似。在某个给定的初始功率分配点 \( \hat{p}_ i \) 附近,对 \( R_ i \) 进行线性近似。然而,由于干扰的存在,这是一个复杂的耦合函数,线性近似效果可能不佳。 更实用的“分式规划”转换 :另一个强大的工具是将和速率最大化问题等价地转化为一个“分式和最大化”问题,然后利用“分式规划”理论(如Dinkelbach方法)将其转化为一系列更容易处理的子问题。在这些子问题中,目标函数可以变为关于 \( p_ i \) 的 线性函数 。 我们采用一种经典的迭代方法,其每一步都求解一个线性规划 : 7. 基于“逐次凸近似”的线性规划求解框架 我们可以不直接求解那个非凸的原问题,而是采用一种迭代算法。在每次迭代中,我们 构造一个原目标函数的下界(或上界)的线性近似 ,然后求解这个线性规划,并用其解作为下一次近似的起点,直到收敛。 具体步骤如下 : 步骤1: 引入辅助变量并进行不等式放缩 利用对数函数的性质:对于任意 \( x > 0, y > 0 \),有 \[ \ln(1+x) \geq \alpha \ln(x) + \beta \] 其中,如果在某一点 \( x = \hat{x} \) 处,我们选择 \( \alpha = \frac{\hat{x}}{1+\hat{x}} \), \( \beta = \ln(1+\hat{x}) - \alpha \ln(\hat{x}) \), 则这个下界在 \( x = \hat{x} \) 处是紧的(相等),且是一个全局下界(由对数函数的凸性保证)。 步骤2: 应用于我们的问题 设当前迭代点的SINR值为 \( \widehat{\text{SINR}}_ i \)。那么,对于每个用户,其速率函数满足: \[ \log_ 2(1 + \text{SINR}_ i) \geq a_ i \cdot \log_ 2(\text{SINR}_ i) + b_ i \] 其中, \[ a_ i = \frac{\widehat{\text{SINR}}_ i}{1+\widehat{\text{SINR}}_ i}, \quad b_ i = \log_ 2(1+\widehat{\text{SINR}}_ i) - a_ i \cdot \log_ 2(\widehat{\text{SINR}}_ i) \] 注意,\( a_ i \) 和 \( b_ i \) 在当前迭代是已知常数。 步骤3: 构造一个线性规划子问题 将上述下界代入总速率目标,我们得到原目标的一个可处理的下界: \[ \sum_ {i=1}^{N} R_ i \geq \sum_ {i=1}^{N} [ a_ i \cdot \log_ 2(\text{SINR}_ i) + b_ i ] \] 去掉常数项 \( b_ i \)(不影响优化),并注意到 \( \log_ 2(\text{SINR} i) = \log_ 2(h_ i) + \log_ 2(p_ i) - \log_ 2(\sigma^2 + h_ i \sum {j \neq i} p_ j) \)。 这还不是线性的。 关键的线性化操作 : 我们对干扰项也进行近似。在点 \( \hat{p} j \) 处,函数 \( \log_ 2(\sigma^2 + h_ i \sum {j \neq i} p_ j) \) 是凹的(对数内部是线性函数,整体复合是凹函数)。 凹函数的一阶泰勒展开是其全局上界 。因此,我们可以在当前点 \( \hat{p} j \) 处对其进行一阶泰勒展开,得到一个 线性上界 : \[ \log_ 2(\sigma^2 + h_ i \sum {j \neq i} p_ j) \leq \log_ 2(\sigma^2 + h_ i \sum_ {j \neq i} \hat{p} j) + \frac{h_ i \sum {j \neq i} (p_ j - \hat{p} j)}{(\sigma^2 + h_ i \sum {j \neq i} \hat{p} j) \ln 2} \] 记 \( I_ i = \sigma^2 + h_ i \sum {j \neq i} \hat{p}_ j \) 为当前总干扰加噪声, \( c_ i = \frac{h_ i}{I_ i \ln 2} \) 为常数。 将这个上界代入 \( -\log_ 2(\sigma^2 + h_ i \sum_ {j \neq i} p_ j) \) 项(注意前面是负号),我们就得到了它的一个 下界 。结合之前的处理,最终我们可以构造出一个关于功率变量 \( p_ i \) 的 线性目标函数 。 简化后的线性规划子问题 (在迭代中)形式如下: \[ \begin{aligned} \max_ {\{p_ i\}} &\quad \sum_ {i=1}^{N} w_ i \cdot p_ i - \sum_ {i=1}^{N} \sum_ {j \neq i} v_ {ij} \cdot p_ j \quad \text{(线性组合)} \\ \text{s.t.} &\quad \sum_ {i=1}^{N} p_ i \leq P_ {\text{total}} \\ &\quad p_ i \geq 0, \quad i = 1, 2, \dots, N \end{aligned} \] 其中,权重 \( w_ i \) 和 \( v_ {ij} \) 是由当前迭代点 \( \hat{p}_ i \) 和信道状态 \( h_ i \) 计算得到的常数。这个问题的目标函数是 \( p_ i \) 的线性函数,约束也是线性的,因此是一个标准的 线性规划 。 8. 完整求解算法流程 初始化 : 设定一个初始的可行功率分配 \( p_ i^{(0)} \)(例如,平均分配 \( p_ i^{(0)} = P_ {\text{total}} / N \))。设定收敛阈值 \( \epsilon > 0 \)。 迭代循环 (对于迭代次数 \( k = 0, 1, 2, \dots \)): a. 计算常数 : 根据当前功率 \( p_ i^{(k)} \) 计算每个用户的 \( \widehat{\text{SINR}} i^{(k)} \)、下界系数 \( a_ i^{(k)} \)、\( b_ i^{(k)} \),以及线性化系数 \( w_ i^{(k)} \)、\( v {ij}^{(k)} \)。 b. 求解线性规划 : 构建并求解如上所述的线性规划子问题,得到一组新的功率分配解 \( p_ i^* \)。 c. 更新与判断 : 令 \( p_ i^{(k+1)} = p_ i^* \)。计算当前解对应的真实总速率 \( R_ {\text{sum}}^{(k+1)} = \sum_ i \log_ 2(1+\text{SINR} i(p_ i^{(k+1)})) \)。 d. 收敛检查 : 如果 \( |R {\text{sum}}^{(k+1)} - R_ {\text{sum}}^{(k)}| / |R_ {\text{sum}}^{(k)}| < \epsilon \),则算法终止,输出 \( p_ i^{(k+1)} \) 作为(局部)最优解。否则,令 \( k = k+1 \),返回步骤a。 9. 算法特性与总结 核心思想 : 通过“逐次凸近似”将复杂的非凸和速率最大化问题,分解为一系列简单的线性规划子问题来迭代求解。 收敛性 : 由于每一步都保证了目标函数的下界是提升的(或至少不减),并且原问题目标有上界,该算法通常会收敛到一个 局部最优解 。 优势 : 线性规划是成熟的优化问题,存在多种高效算法(如单纯形法、内点法),可以在多项式时间内求得全局最优解。这使得每一步迭代的计算都非常高效。 实际意义 : 这个建模与求解思路是无线资源管理(如OFDMA系统中的功率分配、能效优化)的经典方法之一。它清晰地展示了如何利用优化理论(凸近似、对数线性化)将复杂的工程问题转化为一系列可计算的数学规划问题。 通过这个示例,你可以看到线性规划不仅是独立的优化工具,更是解决更复杂非凸问题的强大基础模块。