最优化问题及其分类

2023-05-16

优化技术是一种以数学为基础,用于求解各种工程问题优化解的应用技术。归纳而言,最优化问题分为函数优化问题和组合优化问题两大类,其中函数优化的对象是一定区间的连续变量,而组合优化的对象则是解空间中的离散状态。

一、函数优化问题

函数优化问题通常可描述为:令 S  R n  上的有界子集(即变量的定义域), f:SR  n  维实值函数,所谓函数f  S  域上全局最小化就是寻求点X min S 使得 f(X min )  S  域上全局最小,即XS:f(X min )f(X) 

算法的性能比较通常是基于一些称为Benchmark的典型问题展开的,常用的BenchMark问题如下:
(1)Sphere Model

f 1 (X)= i=1 n x 2 i ,|x i |100 

其最优状态和最优值为 min(f 1 (X  ))=f 1 (0,0,...,0)=0  ,图像如下:
这里写图片描述
(2)Schwefel’s Problem 2.22
f 2 (X)= i=1 n |x i |+ i=1 n |x i |,|x i |10 

其最优状态和最优值为 min(f 2 (X  ))=f 2 (0,0,0...,0)=0  ,图像如下:
这里写图片描述
(3)Schwefel’s Problem 1.2
f 3 (X)= i=1 n ( j=1 i x j ) 2 ,|x i |100 

其最优状态和最优值为 min(f 3 (X  ))=f 3 (0,0,0,...,0)=0  ,图像如下:
这里写图片描述
(4)Schwefel’s Problem 2.21
f 4 (X)=max i=1 n |x i |,|x i |100 

其最优状态和最优值为 min(f 4 (X  ))=f 4 (0,0,0,...,0)=0  ,图像如下:
这里写图片描述
(5)Generalized Rosenbrock’s Function
f 5 (X)= i=1 n [100(x i+1 x 2 i ) 2 +(1x i ) 2 ],|x i |30 

其最优状态和最优值为 min(f 5 (X  ))=f 5 (1,1,1,...,1)=0  ,图像如下:
这里写图片描述
鉴于许多工程问题存在约束条件,受约束函数的优化问题也一直是优化领域关注的主要对象。常用的受约束测试函数包括:
(1) ming 1 (X)=5 4 i=1 (x i x 2 i ) 13 i=5 x i   ,约束条件为:
2x 1 +2x 2 +x 10 +x 11 10 
2x 1 +2x 3 +x 10 +x 11 10 
2x 2 +2x 3 +x 11 +x 12 10 
8x 1 +x 10 0 
8x 2 +x 11 0 
8x 3 +x120 
2x 4 x 5 +x 10 0 
2x 6 x 7 +x 11 0 
2x 8 x 9 +x 12 0 
0x i 1,i=1,2,....,9,13 
0x i 100,i=10,11,12 
其全局最优点和最优值为 g 1 (X  )=g 1 (1,1,1,1,1,1,1,1,1,3,3,3,1)=1 
(2) maxg 2 (X)=(n   ) n  n i=1 x i   ,约束条件为:
 i=1 n x 2 i =1,0x i 1,i=1,2,...,n 

其全局最优点和最优值为:
g 2 (X  )=g 2 (1n    ,...,1n    )=1 

(3) ming 3 (X)=(x 1 10) 3 +(x 2 20) 3   ,约束条件为:
(x 1 5) 2 +(x 2 5) 2 100,13x 1 100,0x 2 100 

其已知最优点和最优值为:
g 3 (X  )=g 3 (14.095,0.84296)=6961.81381 

对于受约束问题,除了局部极小解的存在,影响最优化性能的因素主要包括:
(1)目标函数所对应曲面的拓扑性质,比如在相同约束下,线性或凸函数比无规律的函数要容易求解。
(2)可行区域的疏密程度,通常以可行区域占整个搜索空间的比值来度量,同时,约束在可行区域边界上的变化强度与惩罚项的确定也大有关系。
(3)采用惩罚的方法来处理约束越界问题。这种方法比较通用,适当选择惩罚函数的形式可得到较好的结果。比如采用罚函数:
{ minf(X)+λh 2 (X)+β[min{0,g(X)}] 2  XS  

因此对函数优化的讨论通常以无约束问题为主。
二、组合优化问题
组合优化问题通常可描述为:令 Ω={s 1 ,s 2 ,...,s n }  为所有状态构成的解空间, C(s i )  为状态 s i   对应的目标函数值,要求寻找最优解 s    ,使得 s i Ω,C(s  )=minC(s i )  .组合优化往往涉及排序、分类、筛选等问题,它是运筹学的一个分支。
典型的组合优化问题有旅行商(Traveling salesman problem,TSP)问题、加工调度问题(Scheduling problem,如Flow-shop,Job-shop)、0-1背包问题(Knapsack problem)、装箱问题(Bin packing problem)、图着色问题(Graph coloring problem)、聚类问题(Clustering problem)等。

(1)旅行商问题
给定 n  个城市和两两城市之间的距离,要求确定一条经过各城市当且仅当一次的最短路径。其图论描述为:给定图G=(V,A) ,其中 V  为顶点集,A 为各顶点相互连接组成的边集,一直各顶点间的连接距离,要求确定一条长度最短的Hamilton回路,即遍历所有顶点当且仅当一次的最短回路。
这里写图片描述

(2)加工调度问题
Job-shop问题是一类较TSP更为复杂的典型加工调度问题,是许多实际问题的简化模型。一个Job-shop可描述为: n  个工件在m 台机器上加工, O ij   表示第 i  个工件在第j 台机器上的操作,相应的操作时间 T ij   为已知,事先给定各工件在各机器上的加工次序(称为技术约束条件),要求确定与技术约束条件相容的各机器上所有工件的加工次序,使加工性能指标达到最优(通常是最小完工时间Makespan)。在Job-shop问题中,除技术约束外,通常还假定每一时刻每台机器只能加工一个工件,且每个工件只能被一台机器所加工,同时加工过程为不间断。若各工件的技术约束条件相同,一个Job-shop问题就转化为简单的Flow-shop问题。进而,若各机器上各工件的加工次序也相同,则问题进一步转化为置换Flow-shop问题。
这里写图片描述

(3)0-1背包问题
对于 n  个体积分别为a i  ,价值分别为 c i   的物品,如何将它们装入总体积为 b  的背包中,使得所选物品的总价值最大。
这里写图片描述
(4)装箱问题
如何以个数最少的尺寸为l 的箱子装入 n  个尺寸不超过l 的物品。

(5)图着色问题
对于 n  个顶点的无环图G ,要求对其各个顶点进行着色,使得任意两个相邻的顶点都有不同的颜色,且所用颜色种类最少。
这里写图片描述
(6)聚类问题
m  维空间上的n 个模式 {X i |i=1,2,...,n}  ,要求聚成 k  类,使得各类本身内的点最相近,比如要求

χ 2 = i=1 n ||X (p) i R p || 

最小,其中 R p   为第 p  类中的点数。
这里写图片描述

显然,上述问题描述均非常简单,并且有很强的工程代表性,但最优化求解很困难,其主要原因是所谓的“组合爆炸”。比如,聚类问题的可能划分方式有k n /k! 个,Job-shop的可能排列方式有 (n!) m   个,基于置换排列描述的 n  城市TSP问题有n! 种可行排列,即便对无方向性和循环性的平面问题仍有 (n1)!/2  种不同排列,显然状态数量随问题规模呈指数增长。因此,解决这些问题的关键在于寻求有效的优化算法。
(3)优化算法及其分类
所谓优化算法,其实就是一种搜索过程或规则,它是基于某种思想和机制,通过一定的途径或规则来得到满足用户要求的问题的解。
就优化机制与行为而分,目前工程中常用的优化算法主要可分为:经典算法、构造型算法、改进型算法,基于系统动态演化的算法和混合型算法等。
1)经典算法。包括线性规划、动态规划、整数规划和分支定界法等运筹学中的传统算法,其算法计算复杂性一般很大,只适合于求解小规模问题,在工程中往往不实用。
2)构造型算法。用构造的方法快速建立问题的解,通常算法的优化质量差,难以满足工程需要。比如调度问题中的典型构造方法有:Johnson法、Palmer法、Gupta法、CDS法、Daunenbring的快速接近法、NEH法等
3)改进型算法,或称领域搜索算法。从任一解出发,对其领域的不断搜索和当前解的替换来实现优化。根据搜索行为,它又可分为局部搜索法和指导性搜索法。

  • 局部搜索法。以局部优化策略在当前解的领域中贪婪搜索,如只接受优于当前解的状态作为下一当前解的爬山法;接受当前邻域中的最好解作为下一当前解的最陡下降法等
  • 指导性搜索法。利用一些指导规则来指导整个解空间中优良解的探索,如SA、GA、EP、ES和TS等

4)基于系统动态演化的方法。将优化过程转化为系统动态的演化过程,基于系统动态的演化来实现优化,如神经网络和混沌搜索等。
5)混合型算法。指上述各算法从结构或操作上相混合而产生的各类算法。
优化算法当然还可以从别的角度进行分类,如确定性算法和不确定性算法,局部优化算法和全局优化算法等。

(4)邻域函数与局部搜索
邻域函数是优化中的一个重要概念,其作用就是指导如何由一个(组)解来产生一个(组)新的解。邻域函数的设计往往依赖于问题的特性和解的表达方式(编码)。由于优化状态表征方式的不同,函数优化与组合优化中的邻域函数的具体方式明显存在差异。
函数优化中邻域函数的概念比较直观,利用距离的概念通过附加扰动来构造邻域函数是最常用的方式,如 x  =x+ηξ  ,其中 x    为新解, x  为旧解,η 为尺度参数, ξ  为满足某种概率分布的随机数或白噪声或混沌系列或梯度信息等。显然,采用不同的概率分布(如高斯分布、柯西分布、均匀分布等)或下降策略,将实现不同性质的状态转移。
在组合优化中,传统的距离概念显然不再适用,但其基本思想仍旧是通过一个解产生另一个解。下面对邻域函数给出一般性定义,并以TSP为例进行解释。
定义1 令( S,F,f  )为一个组合优化问题,其中 S  为所有解构成的状态空间,F  S  上的可行域,f 为目标函数,则一个邻域函数可定义为一种映射,即 N:S2 s   。其含义是,对于每个解 iS  ,一些邻近 i  的解构成i 的领域 S i S  ,而任意 jS i   称为 i  的邻域解或邻居。通常约定,jS i iS j  
通常,TSP问题的解可用置换排列来表示,如排列(1,2,3,4)可表示4个城市TSP的一个解,即旅行顺序为1,2,3,4.那么, k  个点交换就可认为是一种邻域函数。比如,不考虑由解的方向性和循环性引起的重复性,上述排列的2点交换对应的邻域函数将产生新解(2,1,3,4)、(3,2,1,4)、(4,2,3,1)、(1,3,2,4)、(1,4,3,2)、(1,2,4,3)。
基于邻域函数的概念,就可以对局部极小和全局极小进行定义。
定义2 若jS i F ,满足 f(j)f(i)  ,则称 i  f  F  上的局部极小解;若jF ,满足 f(j)f(i)  ,则称 i  f  F  <script id="MathJax-Element-31195" type="math/tex">F</script>上的全局最小解。
局部搜索算法是基于贪婪思想利用邻域函数进行搜索的,它通常可描述为:从一个初始解出发,利用邻域函数持续的在当前解的邻域中搜索比它好的解,若能够找到如此的解,就以之称为新的当前解,然后重复上述过程,否则结束搜索过程,并以当前解作为最终解。可见,局部搜索算法尽管具有通用易实现的特点,但搜索性能完全依赖于邻域函数和初始解,领域函数设计不当或初值选取不合适,则算法最终的性能将会很差。同时,贪婪思想无疑将使算法丧失全局优化的能力,也即算法在搜索过程中无法避免陷入局部极小。因此,若不在搜索策略上进行改进,那么要实现全局优化,局部搜索算法采用的邻域函数必须是“完全的”,即邻域函数将导致解的完全枚举,而这在大多数情况下是无法实现的,而且穷举的方法对于大规模问题在搜索时间上是不允许的。
鉴于局部搜索算法的上述缺点,智能优化算法,如模拟退火算法、遗传算法、禁忌搜索、神经网络优化算法和混沌搜索等,从不同的角度利用不同的搜索机制和策略实现对局部搜索算法的改进,来取得较好的全局优化性能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最优化问题及其分类 的相关文章

  • Mac终端代理设置

    title Mac终端代理设置 tags mac 终端设置代理 打开终端执行 export http proxy 61 http 127 0 0 1 1087 export https proxy 61 http 127 0 0 1 108
  • Unity3D游戏作品大盘点

    原文链接 xff1a http www unitymanual com 404 html 经典重现 新仙剑OL 新仙剑OL 采用跨平台Unity3D引擎 xff0c 耗资数千万 xff0c 历时三年多 xff0c 由台湾大宇正版授权 xff
  • IAR编译器的ICF链接脚本

    测试代码如下 xff1a task c span class token macro property span class token directive keyword pragma span default variable attr
  • 2020-10-24

    PendSV中断控制器地址 NVIC INT CTRL EQU 0xE000Ed04 触发PendSV NVIC PENDSV SET EQU 0x10000000 PendSV优先级控制地址 NVIC SYSPRI2 EQU 0xE000
  • Linux下如何配置Vlan

    VLAN是虚拟局域网的缩写 一个物理交换机上可以共存多个VLAN xff0c 这些交换机通过Linux软件配置 xff0c 而不是通过硬件接口 xff08 您仍然需要配置实际的硬件交换机 xff09 VLAN作为名称建议一次组合多个LAN
  • 附加项-linux下ssh的config文件讲解-闫刚

    在 ssh 下创建 config文件 xff0c 可以添加多个账号 xff0c 减少认证的问题 并以如下格式编辑配置文件 vi config HostName xff1a 是目标主机的主机名 xff0c 也就是平时我们使用ssh后面跟的地址
  • 第一章 第九节 如何Doxygen为代码生成html文档-闫刚

    Doxygen是一款文档生成工具 xff0c 它可以从代码中提取出相应的文档 xff0c 并组织 xff0c 输出成各种漂亮的文档 xff08 如HTML xff0c PDF xff0c RTF等 xff09 doxygen让你变成一位有品
  • 第二章 第二节 px4的uORB工作原理分析 闫刚

    px4中的uorb是px4非常核心的数据通信机制 xff0c 所有线程的通信都是靠uorb完成 xff0c 用过的人可能 xff0c 仅仅知道在想要获取orb数据的时候 xff0c 先进行订阅 xff0c 在发送orb消息之前 xff0c
  • 闫刚 qgroundcontrol地面站通信流代码架构

    qgroundcontrol开发者文档中说明了qgc中的各个链路流向在文档中说明的很清楚 xff0c 下面配套源代码进行讲解整个qgc地面站的数据流向过程 qgroundcontrol通信 在 https dev qgroundcontro
  • 闫刚 linux平台实现IMU的DriverFramework

    文章目录 介绍资源用户态spi包1 spidev的设备节点spidev0 3表示spi0的chip select3 内核态设备树注册spidev设备 介绍 讲解linux的spi驱动架构 包括用户空间和内核空间如何配合使用spi驱动 通过p
  • 闫刚 stm32的usb的hal软件架构原理讲解

    资源 stm32 usb cubemx md 闫刚 stm32的usb的hal软件架构原理讲解 一 usb基础 stm32的usb也是很多公司都在使用的接口 xff0c usb全速可以达到12M s 作为虚拟串口接口 xff0c 还是不错的
  • 闫刚 px4架构的cmake移植到linux上

    文章目录 px4架构的cmake移植到linux上仓库地址 xff1a 图一 PX4的源码cmake架构图二 px4添加一个驱动模块的CMakeLists txt文件图三 openSTM的源码架构图四 openSTM中添加子模块CMakeL
  • 闫刚 nuttx workqueue实现原理

    文章目录 资源工作队列实现添加工作对象工作队列执行进程 使用注意 资源 nuttx wqueue md 工作队列实现 优点 xff1a 最短时间调度 缺点 xff1a 工作队列执行完后 xff0c 需要重新创建 添加工作对象 span cl
  • 闫刚 px4的gps驱动原理

    文章目录 资源1 rcS启动2 gps status内容 资源 px4 gps md 标题 xff1a 闫刚 px4的gps驱动原理 1 rcS启动 固件版本 xff1a V1 8 0 gps start 2 gps status内容 IN
  • 闫刚 px4_uavcan_dsdl的原理

    文章目录 资源简介1 cannode构建分析1 1 找到uavcan的单板1 2 分析一下UAVCAN下的CAMKE1 3 1 查看dsdl下的文件1 3 2 查看输出路径下的include dsdlc generated 2 我们添加自己
  • 常用的 Stress / Performance 测试工具(Linux环境)

    压力测试 Stress 要如何在 Linux 下針對不同的 I O 與系統做壓力測試 可以參考下面幾種方式 SysBench http benjr tw 8715 Linux 下常見的壓力測試工具不多 而且通常很分散 要不然就是協力廠商所開
  • 关于四旋翼往某个方向飘的问题

    经过测试 xff0c 在飞控没有gps定位和其他定位传感器的辅助下 xff0c 漂移是肯定存在的 因为在水平校准时 xff1b 1 xff09 肯定存在肉眼观察不到的水平问题 xff1b 2 xff09 再加上多旋翼装配不对称 xff0c
  • 浅谈进程和线程的个人理解

    进程和线程 首先什么是进程 xff1f 进程是操作系统动态执行的基本单元 xff0c 进程就可以说是一段程序的执行过程 xff0c 当我们有很多程序同时执行时 xff0c 就有了一种类似于排队的模式 xff0c 就如说我们去银行柜台取钱 x
  • 从零开始学OpenCV(一)——OpenCV的安装

    文章目录 前置条件一 OpenCV的安装总结 前置条件 提示 xff1a 本教程的安装环境如下 xff1a 操作系统 xff1a windows10 VisualStudio版本 xff1a 2017 提示 xff1a 以下是本篇文章正文内

随机推荐