• 优化理论笔记


    目录

    一、前言

    二、优化问题的基本要素

    三、优化问题分类

    四、最优值类型

    五、最优化方法分类

    六、非约束优化

    1、问题定义

    2、优化算法

    1)一般局部搜索过程

    2)集束搜索

    3)禁忌搜索

    4)模拟退火

    5)蛙跳算法

    3、例子测试问题

    七、约束优化

    1、问题定义

    2、约束方法处理

    1)罚函数方法

    2)将约束转化为非约束问题

    3)例子测试问题

    八、多解问题

    1、问题定义

    2、小生境算法分类

    3、例子测试问题

    九、多目标优化

    1、多目标问题

    2、加权聚合方法

    3、帕累托最优

    十、动态优化问题

    1、定义

    2、动态环境类型

    3、例子测试问题


    一、前言

    最近进组了,其中一个研究方向是计算智能,按照我目前要学的内容,简单记录一下我学习的笔记,没相关背景的读者初看应该比较难懂(其实我也没完全看懂)。

    二、优化问题的基本要素

    每个优化问题都是由以下基本要素构成:

    1)一个目标函数

    2)一个未知变量集(它影响着目标函数的值,如果x表示未知数,也叫做独立变量,则 f(x) 叫做候选解x的质量)

    3)一个约束集

    一个优化问题的目标是从可行域中选出值赋给变量,使得目标函数最优化,且满足所有约束。

    三、优化问题分类

    分类基于一些特性:

    1)影响目标函数的变量数目。一个只要优化一个变量的问题就叫做单变量问题,若需考虑不止一个变量,就叫做多变量问题

    2)变量类型

    3)目标函数的非线性度:线性问题是指目标函数与变量成线性关系。二次问题使用的是二次函数,当使用其他非线性目标函数时,则问题叫做非线性问题

    4)使用的约束:只使用边界约束叫做非约束问题。约束问题有附加的等式/不等式约束

    5)最优值的数目:如果只存在一个确定的解,问题就是单模的。如果存在不止一个最优解,则问题是多模的。一些问题可能会有假的最优值,这就叫做欺骗问题

    6)优化准则的数目:如果要优化的数量只用一个目标函数表达,则问题叫做单目标问题。一个多目标问题要确定不止一个目标,这些目标都要同步优化

    用于解决上述问题类型的优化方法各自差异很大,日后再详细叙述。

    四、最优值类型

    优化算法找到的解根据它的质量来分类。解的主要类型为局部极值和全局极值。

    下面考虑一个最小化问题中的全局极值的相关定义。

    定义A.1 全局最小值:

    定义A.2 强局部极小值:

    定义A.3 弱局部极小值:

    五、最优化方法分类

    一个最优化算法通过循环迭代将当前的一个候选解更新为一个新的更好的解来寻找一个最优解。最优化方法可以根据所找到的解的类型,分成两个主要的类别。局部搜索算法仅仅使用当前解周边的搜索空间的局部信息来生成新的解。因为只使用了局部信息,局部搜索算法定位的是局部最优解(也有可能是全局最小值)。全局搜索算法使用搜索空间的更多信息来定位一个最优值。即全局搜索算法探索整个搜索空间,而局部搜索算法则探索的是邻域。

    最优化算法可进一步分为确定性方法和随机方法。随机方法使用随机元素来将个候选解变换为一个新的解。因此无法预测新的解。而确定性方法则不使用随机元素根据问题特征,最优化方法分为以下类别 (在这些类中可以基于定位局部解还是全局解以及是否使用随机元素来变换到搜索空间中的新的点来细分)。

    • 无约束方法,用于优化无约束问题。
    • 约束方法,用于在约束搜索空间中寻找解。
    • 多目标优化方法,针对不只优化一个目标的问题。
    • 多解(小生境)方法,具有定位不止一个解的能力。
    • 动态方法,能够定位和跟踪改变的极值。

    后续会分别讨论这些优化方法的每一类。

    六、非约束优化

    1、问题定义

    2、优化算法

    有很多优化算法用于解决非约束问题,这里介绍部分。

    1)一般局部搜索过程

    局部搜索方法遵从算法 A.1 给出的相同的基本结构。选择 x(0) 作为个起点,并评估其质量。

    然后,迭代地确定一个搜索方向,并朝该方向移动。

    搜索方向和步长可由最陡梯度下降法、变化梯度或牛顿方法确定 (以及其他很多方法)。

    2)集束搜索

    3)禁忌搜索

    禁忌搜索(TS)是一个迭代邻域搜索算法,其中邻域动态改变。TS 通过主动避免搜索空间中之前已经访问过的点来增强局部搜索。通过避免已经访问的点,搜索过程中的循环得以避免,且能逃离局部极值。TS 的主要特征为使用一个明显的存储空间。一个简单的 TS 通常实现了两种形式的存储。

    • 基于频率的存储,它维护了一个搜索点在特定时间间隔内被访问了多少次 (或移动了多少次) 的信息。
    • 基于最新的存储,它维护了一个搜索点在最近多长时间内被访问过 (或所做的移动有多近)。最新度根据这个事件发生的迭代来衡量。

    例如,如果一个搜索点的频数超过了给定的闯值,则该点被归类为下次迭代的禁忌。禁忌表中列出的位置被排除在可能被当前位置访问的候选位置的邻域之外。在一定时期内位置保留在禁忌表中。

    以下情况可用于终止 TS:

    • 邻域为空,即:所有可能的邻域点都已经访问过了。
    • 从上次改进以来的迭代数超过了预先设定的阈值。

    4)模拟退火

    退火指的是液体或固体降温的过程,以及这些物质冷却时的行为分析。当温度降低,分子的移动性也减弱,因此分子可能排成晶体状结构。安排好的结构是该系统的最小能源状态。为保证得到这样的安排,冷却必须在足够慢的过程中进行。如果物质过快地冷却,就会达到一个无晶形状态。

    模拟退火是基于上面描述的物理过程的优化过程。在数学优化的上下文中,一个目标函数的最小值表示该系统的最小能量。模拟退火是为找到一个目标函数的冷却过程的算法实现。

    5)蛙跳算法

    蛙跳算法是基于单元粒子在 n 维保护力场的物理问题。

    3、例子测试问题

    本节列出了一些用于评估无约束优化算法的经典测试函数。本节的目的并不是提供个例子问题的完整清单,而是给出作为分析优化方法性能的一个良好起点的列表。

    七、约束优化

    1、问题定义

    同样是假设最小化问题,一般约束问题的定义如下。

    2、约束方法处理

    可以找到以下类型的约束。

    • 边界约束定义了搜索空间的边界。搜索空间的每一维的上下边界定义了寻求解所在的超立方。虽然边界通常定义为变量之上的上下边界,这样的盒状约束并不是唯一定义边界的方法。搜索空间的边界可以在超立方的周围。问题也有可能是无边界的。
    • 等式约束限定了问题的变量的函数必须等于某个常数。
    • 不等式约束限定了问题的变量的函数必须小于或等于 (或大于、等于)某个常数。
    • 约束可以是线性的或非线性的。

    约束处理方法需要考虑若干重要问题,这些问题主要是关于如何在可行和非可行解中权衡。

    • 怎样比较两个可行解?这个问题的答案很明显:具有更好目标函数值的解更好。
    • 怎样比较两个非可行解?这里的答案就没那么明显了,实际上它通常是跟问题相关的。需要考虑以下问题:

      -具有最好目标函数值的不可行解更好吗?
      -最少地或最低限度地违反约束的解更好吗?
      -需要在最佳目标函数值和约束违反程度之间权衡吗?

    • 可以假设任何可行解都比任何非可行解更好吗?换句话说,目标函数值和约束违反程度能够最好地平衡好吗?再次,这个问题的答案是跟问题相关的。在财政危机和生命危机问题中,首要保证的是没有财务损失,或生命损失。不那么严峻的问题?如时间安排,可以考虑少数几个关键约束被违反的解。

    关于约束处理方法的研究在进化计算(EC)和群体智能(SI)方法中都非常多。基于这些研究所做的努力,约束处理方法可分为以下几类:

    • 拒绝不可行解,该方法并不将解限制在可行空间。在不可行空间的解只是简单地被拒绝或忽视。
    • 罚函数方法,该方法对目标函数添加一个惩罚,以抑制在搜索空间中搜索不可行的区域。
    • 将约束问题转化为非约束问题,然后解决非约束优化问题。
    • 保持可行性方法,该方法假设解在可行空间中初始化,并运用特定算子将可行解转化为新的可行解。这些方法限制解只移到可行空间中,其中任何时候都满足所有约束。
    • 帕累托排序方法,该方法用了多目标优化的概念,如非支配(见第 A.8 节),来基于违反程度对解进行排序。
    • 修复方法,该方法对不可行解运用特定算子或行动使之变为可行解。

    后续部分将提供这些方法中的两个的简短定义和讨论。

    1)罚函数方法

    罚函数方法给目标函数增加了一个函数,用于惩罚代表不可行解的向量。假设一个约束优化问题如定义 A.5 所定义。

    2)将约束转化为非约束问题

    通过为约束问题定义拉格朗日算子,一个约束问题能转换为非约束问题,然后最大化拉格朗日。

    3)例子测试问题

    本小节列出了约束优化的一些测试函数。再说一下,目的并不是提供一个例子问题的完整清单,而是给出作为评估约束优化方法的一个良好起点的列表。

    八、多解问题

    多解问题是多模的,含有很多极值。这些极值可能包括一个以上全局极值和一些局部极值,或仅仅一个全局极值和一个以上的局部极值。多解优化方法的目标是寻找尽可能多的这些极值。第 A.7.1节给出了正式定义,第 A.7.2 节列出了不同的算法类别,第 A.7.3节给出了测试问题的例子。

    1、问题定义

    2、小生境算法分类

    小生境算法可以根据小生境定位的方法来分类,包括以下 3 种类别。

    • 顺序小生境 (或时间小生境) 会一直搜索小生境。搜索过程迭代定位小生境 (或极值),且从搜索空间中删除它的任何参考。删除小生境的参考往往也意味着搜索空间的改变。小生境的搜索和删除顺序地持续,直到满足收敛条件。例如,在多次迭代后不能获得小生境。
    • 并行小生境并行地定位所有小生境。个体动态地自组织,或在极值位置形成物种,除了定位小生境,并行小生境算法需要组织个体使得它们一直维护它们在最优值附近的位置。即,一旦找到一个小生境,则个体一直在该小生境聚集。
    • 准顺序小生境顺序地定位小生境,但并不删除小生境来改变搜索空间。相反,对新的小生境持续搜索,而对已经找到的小生境进行并行地精炼和维护。

    如果不考虑小生境定位的方法,小生境算法可以根据物种形成行为来分类。

    • 同域物种形成:在相同搜索空间中的粒子形成物种,但继续演化去探索不同的资源。例如,不同种类的鱼在同一环境中依靠不同的食物源。
    • 异域物种形成:个体的差异基于搜索空间中的空间孤立。不存在跨物种的沟通,且子物种只能从现有的遗传信息变异后得到 (由变异激发)。例如,考虑不同种的鱼在它们的食物源附近生活和玩耍,毫不影响生活在不同区域的其他物种的存在。
    • 跨域物种形成:新物种的进化是隔离物种共享同一边界的结果。原物种之间的交流不一定被鼓励。例如,新的鱼种形成可能基于小部分不同鱼群的相互作用的进化。新物种可能有不同的食物需求并且可能触犯环境的稳定性。

    3、例子测试问题

    本节列出了 5 个简单的函数来测试小生境算法,除此之外,前述章节中提到的任何多模函数均可使用。

    九、多目标优化

    很多现实世界的问题需要同步优化一系列目标函数。这些目标函数彼此可能还有一些冲突。例如,考虑在一个数据通信网络中寻找最优路径,它的目标可能包括最小化路由成本、最小化路径长度、最小化拥塞,以及最大化物理设施的利用。在这最后两个目标中有重要的权衡:最小化拥塞须尽少使用链路。而另一方面,使用的减少意味着那些耗费了大量安装和维护成本的基础设施未被充分利用。
    本部分提供了多目标优化 (MOO) 的理论概述,主要集中讲述后续章节需要的定义。本章的目的绝非给出 MOO 的一切知识,更多内容查阅文献。第 A.8.1节定义了多目标优化问题 (MOP),并讨论了MOO中一个最优值的含义。第A.8.2节总结了解决 MOP 问题的加权聚合方法。第 A.8.3 节提供了帕累托最优和支配的定义,并给出了例子问题的列表。

    1、多目标问题

    最优值的含义需要为 MOO 重新定义。在单目标优化 (UOO) 中,只优化一个目标,局部极值和全局极值的定义见第 A.3 节。而对于 MOO,最优化的定义则没那么简单。主要问题在于存在相互冲突的目标,对一个目标的改进可能导致另外一个目标变差。例如,最大化一个机械结构的结构稳定性可能引起成本增加,跟要减小成本的目标相抵触。冲突的目标之间存在权衡,而任务就是找到平衡了这些权衡的解。这样的平衡在一个目标在不削弱另外一个或多个目标的前提下没法再改进时达到。这些解叫做非支配解,这样的解可能存在很多。
    因此,解决多目标问题的目标在于生成一个好的妥协解集,而非单个解。这个解集叫做非支配集,或帕累托最优集。目标空间中相应的目标向量叫做帕累托前端。支配和帕累托最优的概念将在下一节定义。

    2、加权聚合方法

    3、帕累托最优

    本节给出了一些探讨 MOO 是需要的定义。定义包括:支配、帕累托最优、帕累托最优前端等。这些定义假设是最小化。
    定义 A.11 支配:决策向量 x1,支配一个决策向量 x2 (表示为 x1

    解决 MOP 的目标是近似真实帕累托最优前端,并选择代表了权衡的解 (对于最终只需要一个问题的解)。找到精确的真实帕累托前端 (即,找到 ζ 中的所有帕累托最优解) 往往很费时,因此任务就简化为找真实帕累托前端的近似,使得:

    • 到帕累托前端的距离最小。
    • 非支配解集,即,帕累托最优集,尽可能的分散。
    • 维持已经找到的非支配解。

    寻找近似真实帕累托前端的任务本身就是个多目标问题,第一个目标是保证近似的尽量精确,而第二个目标保证完整覆盖整个帕累托前端。

    十、动态优化问题

    动态目标优化问题含有随时变化的目标函数。目标函数的改变导致了极值位置的改变,以及搜索空间特征的变化。现存的极值可能会消失,而新的极值会出现。第 A.9.1 节提供动态问题的正式定义。第 A.9.2 列出动态问题的不同类型。第 A.9.3 节给出了测试问题例子。

    1、定义

    一个动态优化问题可正式定义如下所示。

    2、动态环境类型

    3、例子测试问题

    以上,优化理论笔记

    祝好

  • 相关阅读:
    核货宝:选择批发订货系统源码需要注意的三大关键点
    SpringMVC入门宝典(五)SpringMVC注解(下)
    WireShark抓包分析TCP三次握手过程,TCP报文解析
    process.nextTick和vue的nextTick区别
    状态空间表示
    Java设计模式 | 基于订单批量支付场景,对策略模式和简单工厂模式进行简单实现
    基于SSM的在线房屋租赁和电子签约系统的设计与实现
    图像处理之《基于语义对象轮廓自动生成的生成隐写术》论文精读
    Java多线程:waitnotify原理剖析
    华为OD机试 - 告警抑制 - 数据结构map(Java 2023 B卷 100分)
  • 原文地址:https://blog.csdn.net/m0_52711790/article/details/133618995