优化理论笔记

news2024/11/24 4:37:20

目录

一、前言

二、优化问题的基本要素

三、优化问题分类

四、最优值类型

五、最优化方法分类

六、非约束优化

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<x2),当且仅当:

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

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

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

十、动态优化问题

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

1、定义

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

2、动态环境类型

3、例子测试问题

以上,优化理论笔记

祝好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Resnet进行图像分类训练

本文仅给出最基础的baseline进行图像分类训练&#xff0c;后续可在此代码基础上对模型结构进行修改。 一、图像分类数据集 现有一份图像类别数据集&#xff0c;类别为Y和N&#xff0c;数据目录如下&#xff1a; /datasets/data/ |-- train/ | |-- Y/ | |-- N/划分训练集…

超自动化加速落地,助力运营效率和用户体验显著提升|爱分析报告

RPA、iPaaS、AI、低代码、BPM、流程挖掘等在帮助企业实现自动化的同时&#xff0c;也在构建一座座“自动化烟囱”。自动化工具尚未融为一体&#xff0c;协同价值没有得到释放。Gartner于2019年提出超自动化&#xff08;Hyperautomation&#xff09;概念&#xff0c;主要从技术组…

法律战爆发:“币安退出俄罗斯引发冲击波“

币安是全球最大的加密货币交易所之一&#xff0c;经历了几个月的艰难时期&#xff0c;面临着各种法律挑战&#xff0c;最近将其俄罗斯分公司的所有资产出售给了一家几天前才成立的公司。 这家主要交易所的麻烦始于 6 月份&#xff0c;当时美国证券交易委员会 (SEC)起…

PyTorch Lightning - LightningModule 训练逻辑 (training_step) 异常处理 try-except

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/133673820 在使用 LightningModule 框架训练模型时&#xff0c;因数据导致的训练错误&#xff0c;严重影响训练稳定性&#xff0c;因此需要使用 t…

消费者的力量:跨境电商如何满足新一代的需求

当代跨境电商行业正处于高速发展的阶段&#xff0c;而新一代消费者正在塑造这一行业的未来。他们的需求和消费行为发生了巨大变化&#xff0c;对于跨境电商来说&#xff0c;满足这一新一代消费者的需求至关重要。本文将探讨新一代消费者的需求以及跨境电商如何满足这些需求的方…

【Bond随你温故Azure Architecture】之HADR篇

上次复盘数据保护策略还是在《数据需要找回怎么办&#xff1f;我们如何选择正确的恢复/退回方式&#xff1f;》探讨了在application&DB层面上&#xff0c;不同level的数据保护有不同策略。而它也恰好是今天HA&DR版图的一角&#xff08;RDBMS部分&#xff09;&#xff0…

【机器学习】svm

参考 sklearn中SVC中的参数说明与常用函数_sklearn svc参数-CSDN博客https://blog.csdn.net/transformed/article/details/90437821 参考PYthon 教你怎么选择SVM的核函数kernel及案例分析_clfsvm.svc(kernel)-CSDN博客https://blog.csdn.net/c1z2w3456789/article/details/10…

【Python_PySide2学习笔记(十六)】多行文本框QPlainTextEdit类的的基本用法

多行文本框QPlainTextEdit类的的基本用法 前言正文1、创建多行文本框2、多行文本框获取文本3、多行文本框获取选中文本4、多行文本框设置提示5、多行文本框设置文本6、多行文本框在末尾添加文本7、多行文本框在光标处插入文本8、多行文本框清空文本9、多行文本框拷贝文本到剪贴…

什么是EJB以及和Spring Framework的区别

&#x1f454; 前言 EJB&#xff0c;对于新生代程序员来说&#xff0c;是一个既熟悉又陌生的名词&#xff0c;EJB&#xff0c;大家都听说过&#xff0c;但是不一定都了解过&#xff0c;EJB是一种开发规范&#xff0c;而不是像Spring Framework一样是一个开源框架&#xff0c;E…

卫星/RedCap/高算力/解决方案/创新金奖……移远通信为IOTE 2023再添新活力

9月20日&#xff0c;IOTE 2023第二十届国际物联网展深圳场震撼来袭。 作为IOTE多年的“老朋友”&#xff0c;移远通信在参展当天&#xff0c;不仅有5G RedCap、卫星通信、高算力、车载等高性能产品及终端展出&#xff0c;还携智慧出行、智慧生活、智慧能源、工业互联网等多领域…

redis集群是符合cap中的ap还是cp

近期忽然间考虑到了这个问题。 cap 理论 cap是实现分布式系统的思想。 由3个元素组成。 Consistency&#xff08;一致性&#xff09; 在任何对等 server 上读取的数据都是最新版&#xff0c;不会读取出旧数据。比如 zookeeper 集群&#xff0c;从任何一台节点读取出来的数据…

SpringBoot 如何配置 OAuth2 认证

在Spring Boot中配置OAuth2认证 OAuth2是一种用于授权的开放标准&#xff0c;允许应用程序安全地访问用户的资源。Spring Boot提供了强大的支持&#xff0c;使得在应用程序中配置OAuth2认证变得非常容易。本文将介绍如何在Spring Boot中配置OAuth2认证&#xff0c;以便您可以在…

ThreeJS-3D教学六-物体位移旋转

之前文章其实也有涉及到这方面的内容&#xff0c;比如在ThreeJS-3D教学三&#xff1a;平移缩放物体沿轨迹运动这篇中&#xff0c;通过获取轨迹点物体动起来&#xff0c;其它几篇文章也有旋转的效果&#xff0c;本篇我们来详细看下&#xff0c;另外加了tween.js知识点&#xff0…

基于SpringBoot的靓车汽车销售网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 车辆展示管理 车辆品牌管理 用户交流管理 购物车 用户交流 我的订单管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的…

除静电离子风刀的工作原理及应用

除静电离子风刀是一种能够产生高速气流并带有离子的设备&#xff0c;主要用于去除物体表面的静电。它的工作原理是通过离子产生器产生大量负离子&#xff0c;并通过高压电场将离子加速&#xff0c;使其成为一股高速气流&#xff0c;从而将静电荷从物体表面中除去。 除静电离子…

阿里云 linux tomcat 无法访问方法

1、阿里云放行tomcat端口 例如7077端口号 2、linux 命令行防火墙 设置端口打开 以下命令查看是否开启指定端口 firewall-cmd --list-ports以下命令添加指定端口让防火墙放行 firewall-cmd --zonepublic --add-port3306/tcp --permanent以下命令重新启动防火墙 systemctl re…

聊一下读完“优势成长”这本书后感

&#xff08;优势成长上&#xff09; (优势成长下) 最近读完了一本个人觉得还可以的书,这本书是一位新东方老师,帅键翔老师写的 整本书概括起来,最重要一点就是找到自己的优势,然后利用自己的优势,去挖掘自己的潜力,发现新大陆 能适应时代变化的&#xff0c;是“新木桶原理”&a…

JAVA中解析package、import、class、this关键字

一、前言 代码写的多了有时候我们就慢慢忽视了最简单&#xff0c;最基本的东西。比如一个类中最常见出现的package、import、class、this关键字。我们平时很少追究它的含义或者从来不会深究为什么需要这些关键字。不需要这些关键字&#xff0c;又会怎样。这边博文就简单介绍一下…

设计模式 - 观察者模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中&#xff0c;观察者模式通常由两个对象组成&#xff1a;观察者和被观察者。当被观察者状态发生改变时&#xff0c;它会通知所有的观察者对象&#xff0c;使他们能够及时做出响应&#xf…

攻防世界 Web_python_template_injection SSTI printer方法

这题挺简单的 就是记录一下不同方法的rce python_template_injection ssti了 {{.__class__.__mro__[2].__subclasses__()}} 然后用脚本跑可以知道是 71 {{.__class__.__mro__[2].__subclasses__()[71]}} 然后直接 init {{.__class__.__mro__[2].__subclasses__()[71].__i…