概念
随机优化技术
- 随机优化技术可以解决协作类问题。
- 擅长于处理:受多种变量的影响,存在许多可能解的问题,以及结果因这些变量的组合而产生很大变化的问题。
优化算法
- 通过尝试许多不同题解并给这些题解打分以确定其质量的方式来找到一个问题的最优解的。
- 典型应用场景:存在大量可能的题解以至于我们无法对它们进行一一尝试的情况。
- 最简单但最低效方法:尝试随机猜测题解,并从中找出最佳解。
- 最有效方法:以一种对题解可能有改进的方式来对其进行智能化地修正。
成本函数
- 优化算法解决问题的关键
- 寻找一组能够使成本函数的返回结果达到最小化的输入
- 成本函数须返回一个值用以表示方案的好坏
- 要求函数返回的值越大,表示该方案越差
每当我们为一个复杂问题寻求最佳方案时,都须要明确什么是最重要的因素。
优化算法
随机搜索
- 不是非常好的优化算法
- 很容易领会所有算法的真正意图
- 评估其他算法优劣的基线
爬山法
- 以一个随机解开始,然后在其临近的解集中寻找更好的题解,重复这个过程直到找到最优解
- 缺点:最后的解是一个局部范围内的最小值,而不是全局最小值
- 解决办法:随机重复爬山法。即让爬山法以多个随机生成的初始值为起点运行若干次,借此希望其中有一个解能够逼近全局最小值。
模拟退火算法
- 退火是指将合金加热后再慢慢冷却的过程
- 退火算法以一个问题的随机解开始。它用一个变量来表示温度,这一温度开始时非常高,尔后逐渐变低。每一次迭代期间,算法会随机选中题解中的某个数字,然后朝某个方向变化。
- 关键部分:如果新的成本值更低,则新的题解就会成为当前题解;如果成本值更高的话,则新的题解仍将可能成为当前题解。目的是想避免局部最小值问题。
某些情况下,在我们能够得到一个更优的解之前转向一个更差的解是很有必要的。模拟退火算法不仅总是会接受一个更优的解,而且它在退火过程的开始阶段会接受表现较差的解。随着退火过程的不断进行,算法越来越不可能接受较差的解,直到最后,它将只会接受更优的解。
更高成本的题解,其被接受的概率如下:
![]()
因为温度(接受较差解的意愿)开始非常之高,指数将总是接近于0,所以概率几乎为1。随着温度的递减,高成本值和低成本值之间的差异越来越重要–差异越大,概率越低,因此该算法只倾向于稍差的解而不会是非常差的解。
遗传算法
- 算法过程:
- 先随机生成的一组解–>种群
- 在优化过程的每一步,算法会计算整个种群的成本函数,从而得到一个有关题解的有序列表
- 在对题解进行排序之后,一个新的种群被创建出来–>下一代。
- 上述过程重复进行,新的种群被构造出来,达到指定的迭代次数,或者连续经过数代后题解都没有得到改善,整个过程就结束了。
新种群构造过程:
* 精英选拔:将当前种群中位于最顶端的题解加入新种群
* 变异:对一个既有解进行微笑的、简单的、随机的改变
* 交叉:选取最优解中的两个解,将它们按某种方式结合
小结
一种优化算法是否管用很大程度上取决于问题本身。大多数优化算法都有赖于一个事实:对于大多数问题而言,最优解应该接近于其他的优解。