对于一个通信的优化问题的建模与解决可以分为如下几个部分:
1.寻找一个恰当的场景
一个优秀的优化场景是适用性强,并且存在没有解决的问题。
2.建立一个符合逻辑的优化问题
一个优化问题的一定是符合实际问题的,不能是凭空捏造。优化问题包括三个元素:优化变量,优化目标,优化限制条件。
优化变量是我们在实际问题当中能够控制的参数,在通信当中一般能够优化的参数包括:信号幅度,信号相位,波束向量...
。
优化目标,是场景当中希望提升的指标,其中包括:最大化通信速率,最小化发射功率,最小化误码率...
。
限制条件可以分为两类,一类是直接对可行域的限制,例如在优化功率时,对总功率的限制问题。第二类是对某些目标达成的限制,例如进行信号设计时,对于其的感知精度限制。这是一种对于可行域的隐式限制。限制条件最终都可以化繁为简,变成对可行域的限制
。
最终的优化问题可以抽象为:在优化变量可行域内,找到最优的设置,达到最优的目标。
3.优化问题的求解
将原始的优化问题进行抽象后可以得到一个优化问题的基本形式。
可以发现这个问题是一个最小化问题,其优化参数是
x
x
x,其中需要满足
f
i
(
x
)
f_i(x)
fi(x)和
h
i
(
x
)
h_i(x)
hi(x)的相关条件。但是如和求解最优的参数
x
x
x,似乎是一个让人头疼的问题。
一个问题的求解首先要判断一个问题是: 凸问题?
或者 非凸问题?
如果一个问题非常容易判断是凸问题的时候,现在已经有非常成熟的方法进行解决。可以使用梯度下降法和拉格朗日乘子法等方法进行求解
。其中载波功率注水是一个非常经典的凸优化问题,学习链接:链接: 功率注水。
但是通信当中,随着大家优化场景的逐渐复杂,考虑的参数和限制条件众多。提出的问题一般来说是非凸的。如果向求解一个非凸问题的时候,一般来说可以对原问题进行一些转换,使得原问题可解。
但是向哪个方向进行转换呢? 1.如果提出的某一些问题在通信领域里面是有一些相似的问题,可以参考别人论文的转换方法进行求解。这种方法是最为简单的。2.如果还没发现任何求解该类似问题的文献,可以将其向一些规范化问题进行转换。其中链接: Yalmip官网,介绍了现在其求解器能够解决的问题。只需要将能够求解的问题向模板问题进行转换。
函数的转换
在设计当中,目标有两种:最大化max和最小化min。这两个目标是可以转换的,将其转换到求解器能够匹配的模式。
例如当最大化
f
(
x
)
f(x)
f(x)(始终为正)的时候,可以直接最小化其倒数
1
f
(
x
)
\frac{1}{f(x)}
f(x)1。
也可以首先引入放缩参数
τ
\tau
τ。此时可以将原问题转换为最小化的
1
τ
\frac{1}{\tau}
τ1,但是需要加入限制条件
τ
f
(
x
)
≤
1
\frac{\tau}{f(x)}\leq 1
f(x)τ≤1。
- 当函数目标为最大化 f ( x ) f(x) f(x),如果存在不等式 f ˉ ( x ) < = f ( x ) \bar f(x)<=f(x) fˉ(x)<=f(x),不妨将目标函数转换为最大化 f ˉ ( x ) \bar f(x) fˉ(x)。
- 当限制条件为 f ( x ) < = 0 f(x)<=0 f(x)<=0,如果存在不等式 f ( x ) < = f ˉ ( x ) f(x)<=\bar f(x) f(x)<=fˉ(x),不妨将目标函数转换为 f ˉ ( x ) < = 0 \bar f(x)<=0 fˉ(x)<=0。(比它大的函数都满足条件,它本身也满足条件)
- …
在一种问题当中,实际是最大化了目标函数的下界,所以可能会出现转换后的问题的结果和原问题的解不相同的情况。有两种不同的解决办法:1.可以就求解原问题的最大化下界限问题。2.证明转换后的问题的解是原问题的最优解。
条件的放缩
当目标函数和限制条件 f ( x ) f(x) f(x)其不满足凸函数定义或者不满足求解器的一些限制条件的时候,需要进行一些转换。常见的转换方式为不等式转换。
一些经典的不等式转换
- 加权AG-AM几何平均不等式:假设 a i , w i > 0 a_i,w_i>0 ai,wi>0且 ∑ w i = 0 \sum w_i=0 ∑wi=0,则有 ∑ w i a i > = ∏ a i w i \sum w_i a_i >= \prod a_i^{w_i} ∑wiai>=∏aiwi。
- 哈达玛不等式:任意半正定矩阵的行列式小于等于对角线元素的乘积
- …
进行了不等式放缩,在一般情况下需要补充证明转换后的问题的最优解是原问题的最优解。这是困难的
但是可以进行一些迭代优化的来对转换后的问题进行一些补偿。在使用AG-AM不等式的时候,其不等式取等的条件就是对于越大的项
a
i
a_i
ai分配更多的权重
w
i
w_i
wi。当每次求得
a
i
a_i
ai后,重新调整一次权重。这就会使得不等式两端慢慢是趋于相等的状态,转换后的问题
同样如果利用了哈达玛不等式进行最大化目标函数的转换的时候,非常难以证明抓换后的问题的解是原问题的最优解。但是可以称为在探寻优化原问题性能上界。
条件的省略
当某一些限制条件非常难以转换且形式非常复杂的时候,可以考虑将其省略需要有两个必要条件:1.该项的值非常小,不影响优化。2.存在相应的方法进行补偿。
在第一个条件的时候,如果其作为限制条件当中的分量,可以比较该分量和其他分量的大小,说明其值以数量级小于其他分量。在将其省略后,优化得到相应的参数,带入未省略的限制条件当中验证其是否依然满足(因为最优解可能不在边界取得,这样某些限制条件可能并不影响结果)
在第二个条件的时候存在相应的方法进行补偿,这可以和半正定松弛方法对应。在半正定松弛问题当中,其将原问题转换为半正定问题后,丢弃了其中的秩1约束。然后通过最小化秩算法或者高斯随机化的方法,重新使得解满足了秩1约束。 半正定松弛问题学习样例
子问题分解
如果一个问题可以分解为多个子问题,就可以降低原有问题的复杂度。获得每个问题的解之后,将解进行一个组合,就可以获得原问题的解。其中主流的解决办法是交替方向乘子法(ADDN)链接: link
交替优化
如果在优化过程当中优化的参数过多,且参数的类型不一样,例如在进行载波功率
3.优化问题的求解方法的评价
对一个求解方法的好坏主要分为两个方面:性能
和复杂度
。
- 在性能方面,一般讨论的方向是所提出的方法所设计的参数能否超过现在state of art的方法。或者该方法能不能达到该问题的最优解。
- 在复杂度方面,一般考虑时间复杂度和空间复杂度。一般时间复杂度是和优化的参数的数量 N N N相关的,其描述了进行操作的次数和 N N N的关系。如果操作作次数(加法和乘法次数)和N的关系为线性,其复杂度为 O ( n ) O(n) O(n);空间复杂度在通信问题的消息队列等问题中有出现。
关于复杂度问题的: 学习链接
4.一些全能的方法
在传统的数学优化方法无法求解的时候,还有一些启发式算法来解决算法来进行解决。
- 遗传算法:通过筛选种群当中适应度最好的的生物进行杂交,来保存其中较好的性状,通过多次不同的迭代就可以获得最优的种群。遗传算法是一种全局最优的方法。
- 蚁群算法蚁群算法:其基本思想是,将一群蚂蚁放在问题的解空间上,让它们通过信息素的传递和挥发,逐渐找到最优解。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。