目录
最近进组了,其中一个研究方向是计算智能,按照我目前要学的内容,简单记录一下我学习的笔记,没相关背景的读者初看应该比较难懂(其实我也没完全看懂)。
每个优化问题都是由以下基本要素构成:
1)一个目标函数
2)一个未知变量集(它影响着目标函数的值,如果x表示未知数,也叫做独立变量,则 f(x) 叫做候选解x的质量)
3)一个约束集
一个优化问题的目标是从可行域中选出值赋给变量,使得目标函数最优化,且满足所有约束。
分类基于一些特性:
1)影响目标函数的变量数目。一个只要优化一个变量的问题就叫做单变量问题,若需考虑不止一个变量,就叫做多变量问题
2)变量类型
3)目标函数的非线性度:线性问题是指目标函数与变量成线性关系。二次问题使用的是二次函数,当使用其他非线性目标函数时,则问题叫做非线性问题
4)使用的约束:只使用边界约束叫做非约束问题。约束问题有附加的等式/不等式约束
5)最优值的数目:如果只存在一个确定的解,问题就是单模的。如果存在不止一个最优解,则问题是多模的。一些问题可能会有假的最优值,这就叫做欺骗问题
6)优化准则的数目:如果要优化的数量只用一个目标函数表达,则问题叫做单目标问题。一个多目标问题要确定不止一个目标,这些目标都要同步优化
用于解决上述问题类型的优化方法各自差异很大,日后再详细叙述。
优化算法找到的解根据它的质量来分类。解的主要类型为局部极值和全局极值。
下面考虑一个最小化问题中的全局极值的相关定义。
定义A.1 全局最小值:
定义A.2 强局部极小值:
定义A.3 弱局部极小值:
一个最优化算法通过循环迭代将当前的一个候选解更新为一个新的更好的解来寻找一个最优解。最优化方法可以根据所找到的解的类型,分成两个主要的类别。局部搜索算法仅仅使用当前解周边的搜索空间的局部信息来生成新的解。因为只使用了局部信息,局部搜索算法定位的是局部最优解(也有可能是全局最小值)。全局搜索算法使用搜索空间的更多信息来定位一个最优值。即全局搜索算法探索整个搜索空间,而局部搜索算法则探索的是邻域。
最优化算法可进一步分为确定性方法和随机方法。随机方法使用随机元素来将个候选解变换为一个新的解。因此无法预测新的解。而确定性方法则不使用随机元素根据问题特征,最优化方法分为以下类别 (在这些类中可以基于定位局部解还是全局解以及是否使用随机元素来变换到搜索空间中的新的点来细分)。
后续会分别讨论这些优化方法的每一类。
有很多优化算法用于解决非约束问题,这里介绍部分。
局部搜索方法遵从算法 A.1 给出的相同的基本结构。选择 x(0) 作为个起点,并评估其质量。
然后,迭代地确定一个搜索方向,并朝该方向移动。
搜索方向和步长可由最陡梯度下降法、变化梯度或牛顿方法确定 (以及其他很多方法)。
禁忌搜索(TS)是一个迭代邻域搜索算法,其中邻域动态改变。TS 通过主动避免搜索空间中之前已经访问过的点来增强局部搜索。通过避免已经访问的点,搜索过程中的循环得以避免,且能逃离局部极值。TS 的主要特征为使用一个明显的存储空间。一个简单的 TS 通常实现了两种形式的存储。
例如,如果一个搜索点的频数超过了给定的闯值,则该点被归类为下次迭代的禁忌。禁忌表中列出的位置被排除在可能被当前位置访问的候选位置的邻域之外。在一定时期内位置保留在禁忌表中。
以下情况可用于终止 TS:
退火指的是液体或固体降温的过程,以及这些物质冷却时的行为分析。当温度降低,分子的移动性也减弱,因此分子可能排成晶体状结构。安排好的结构是该系统的最小能源状态。为保证得到这样的安排,冷却必须在足够慢的过程中进行。如果物质过快地冷却,就会达到一个无晶形状态。
模拟退火是基于上面描述的物理过程的优化过程。在数学优化的上下文中,一个目标函数的最小值表示该系统的最小能量。模拟退火是为找到一个目标函数的冷却过程的算法实现。
蛙跳算法是基于单元粒子在 n 维保护力场的物理问题。
本节列出了一些用于评估无约束优化算法的经典测试函数。本节的目的并不是提供个例子问题的完整清单,而是给出作为分析优化方法性能的一个良好起点的列表。
同样是假设最小化问题,一般约束问题的定义如下。
可以找到以下类型的约束。
约束处理方法需要考虑若干重要问题,这些问题主要是关于如何在可行和非可行解中权衡。
-具有最好目标函数值的不可行解更好吗?
-最少地或最低限度地违反约束的解更好吗?
-需要在最佳目标函数值和约束违反程度之间权衡吗?
关于约束处理方法的研究在进化计算(EC)和群体智能(SI)方法中都非常多。基于这些研究所做的努力,约束处理方法可分为以下几类:
后续部分将提供这些方法中的两个的简短定义和讨论。
罚函数方法给目标函数增加了一个函数,用于惩罚代表不可行解的向量。假设一个约束优化问题如定义 A.5 所定义。
通过为约束问题定义拉格朗日算子,一个约束问题能转换为非约束问题,然后最大化拉格朗日。
本小节列出了约束优化的一些测试函数。再说一下,目的并不是提供一个例子问题的完整清单,而是给出作为评估约束优化方法的一个良好起点的列表。
多解问题是多模的,含有很多极值。这些极值可能包括一个以上全局极值和一些局部极值,或仅仅一个全局极值和一个以上的局部极值。多解优化方法的目标是寻找尽可能多的这些极值。第 A.7.1节给出了正式定义,第 A.7.2 节列出了不同的算法类别,第 A.7.3节给出了测试问题的例子。
小生境算法可以根据小生境定位的方法来分类,包括以下 3 种类别。
如果不考虑小生境定位的方法,小生境算法可以根据物种形成行为来分类。
本节列出了 5 个简单的函数来测试小生境算法,除此之外,前述章节中提到的任何多模函数均可使用。
很多现实世界的问题需要同步优化一系列目标函数。这些目标函数彼此可能还有一些冲突。例如,考虑在一个数据通信网络中寻找最优路径,它的目标可能包括最小化路由成本、最小化路径长度、最小化拥塞,以及最大化物理设施的利用。在这最后两个目标中有重要的权衡:最小化拥塞须尽少使用链路。而另一方面,使用的减少意味着那些耗费了大量安装和维护成本的基础设施未被充分利用。
本部分提供了多目标优化 (MOO) 的理论概述,主要集中讲述后续章节需要的定义。本章的目的绝非给出 MOO 的一切知识,更多内容查阅文献。第 A.8.1节定义了多目标优化问题 (MOP),并讨论了MOO中一个最优值的含义。第A.8.2节总结了解决 MOP 问题的加权聚合方法。第 A.8.3 节提供了帕累托最优和支配的定义,并给出了例子问题的列表。
最优值的含义需要为 MOO 重新定义。在单目标优化 (UOO) 中,只优化一个目标,局部极值和全局极值的定义见第 A.3 节。而对于 MOO,最优化的定义则没那么简单。主要问题在于存在相互冲突的目标,对一个目标的改进可能导致另外一个目标变差。例如,最大化一个机械结构的结构稳定性可能引起成本增加,跟要减小成本的目标相抵触。冲突的目标之间存在权衡,而任务就是找到平衡了这些权衡的解。这样的平衡在一个目标在不削弱另外一个或多个目标的前提下没法再改进时达到。这些解叫做非支配解,这样的解可能存在很多。
因此,解决多目标问题的目标在于生成一个好的妥协解集,而非单个解。这个解集叫做非支配集,或帕累托最优集。目标空间中相应的目标向量叫做帕累托前端。支配和帕累托最优的概念将在下一节定义。
本节给出了一些探讨 MOO 是需要的定义。定义包括:支配、帕累托最优、帕累托最优前端等。这些定义假设是最小化。 解决 MOP 的目标是近似真实帕累托最优前端,并选择代表了权衡的解 (对于最终只需要一个问题的解)。找到精确的真实帕累托前端 (即,找到 ζ 中的所有帕累托最优解) 往往很费时,因此任务就简化为找真实帕累托前端的近似,使得: 寻找近似真实帕累托前端的任务本身就是个多目标问题,第一个目标是保证近似的尽量精确,而第二个目标保证完整覆盖整个帕累托前端。 动态目标优化问题含有随时变化的目标函数。目标函数的改变导致了极值位置的改变,以及搜索空间特征的变化。现存的极值可能会消失,而新的极值会出现。第 A.9.1 节提供动态问题的正式定义。第 A.9.2 列出动态问题的不同类型。第 A.9.3 节给出了测试问题例子。 一个动态优化问题可正式定义如下所示。 以上,优化理论笔记 祝好
定义 A.11 支配:决策向量 x1,支配一个决策向量 x2 (表示为 x1
十、动态优化问题
1、定义
2、动态环境类型
3、例子测试问题