【最优化】—— 最优化简介(一)

news2024/11/25 2:55:04

文章目录

  • 前言
  • 最优化问题概括
    • 最优化问题的一般形式
    • 最优化问题的类型
    • 例子:稀疏优化
  • 最优化的基本概念
    • 全局和局部最优解
    • 优化算法收敛性
    • 算法的渐进收敛速度
    • 算法的复杂度

前言

本系列文章作为最优化学习的相关笔记。参考书目:文再文老师的《最优化:建模、算法与理论》

最优化问题概括

最优化问题的一般形式

最优化问题一般可以描述为:
min ⁡ f ( x ) , s.t. x ∈ X , \begin{equation} \begin{aligned} \min\quad f(x),\\ \text{s.t.}\quad x\in\mathcal{X}, \end{aligned} \end{equation} minf(x),s.t.xX,
其中 x = ( x 1 , x 2 , ⋅ ⋅ ⋅ , x n ) T ∈ R n x = (x_1, x_2, · · · , x_n)^T ∈ \R^n x=(x1,x2,⋅⋅⋅,xn)TRn 是决策变量, f : R n → R f : \R_n → \R f:RnR是目标函数, X ⊆ R n \mathcal{X} ⊆\R_n XRn 是约束集合或可行域,可行域包含的点称为可行解或可行点.记号 s.t. 是 "subject to"的缩写,专指约束条件.当 X = R n \mathcal{X} =\R_n X=Rn 时,问题(1)称为无约束优化问题.在所有满足约束条件的决策变量中,使目标函数取最小值的变量 x ∗ x^∗ x 称为优化问题(1)的最优解,即对任意 x ∈ X x ∈ \mathcal{X} xX 都有 f ( x ) ⩾ f ( x ∗ ) f (x) ⩾ f (x^∗) f(x)f(x)

PS:注意到在集合 X \mathcal{X} X 上,函数 f f f 的最小(最大)值不一定 存在,但是其下(上)确界" inf ⁡ f ( sup ⁡ f ) \inf f (\sup f ) inff(supf)“总是存在的.因此,当目标函数 的最小 (最大)值不存在时,我们便关心其下(上)确界,即将问题(1)中的” min ⁡ ( max ⁡ ) \min(\max) min(max)“改为” inf ⁡ ( sup ⁡ ) \inf(\sup) inf(sup)".

最优化问题的类型

  • 当目标函数和约束函数均为线性函数时,线性规划
  • 当目标函 数和约束函数中至少有一个为非线性函数时,相应的问题称为非线性规划
  • 如果目标函数是二次函数而约束函数是线性函数则称为二次规划
  • 包含非光滑函数的问题称为非光滑优化光滑函数之在其定义域内无穷阶连续可导的函数,比如说指数函数
  • 不能直接求导数的问题称为无导数优化
  • 变量只能取整数的问题称为整数规划
  • 在线性约束下极小化关于半正定矩阵的线性函数的问题称为半定规划,其广义形式为锥规划
  • 按照最优解的性质来分:
    • 最优解只有少量非零元素的问题称为稀疏优化
    • 最优解是低秩矩 阵的问题称为低秩矩阵优化

此外还有几何优化、二次锥规划、张量优化、 鲁棒优化、全局优化、组合优化、网络规划、随机优化、动态规划、带微分 方程约束优化、微分流形约束优化、分布式优化等.

例子:稀疏优化

考虑线性方程组求解问题:

A x = b \begin{equation} \begin{aligned} Ax=b \end{aligned} \end{equation} Ax=b
其中向量 x ∈ R n x ∈ \R^n xRn b ∈ R m b ∈ \R^m bRm,矩阵 A ∈ R m × n A ∈ \R^{m×n} ARm×n,且向量 b b b 的维数远小于向量 x x x的维数,即 m ≪ n m \ll n mn.方程组是欠定的,因此存在无穷多个解。如果加上稀疏性这一先验信息,且矩阵 A A A 以及原问题的解 u u u 满足某些条件,那么我们可以通过求解稀疏优化问题把 u u u 与方程组 (2) 的其他解区别开.这类技术广泛应用于压缩感知(compressive sensing),即通过部分信息恢复全部信息的解决方案

稀疏性等特征可以在理论上保证 u u u 是方程组 (2) 唯一的非零元素最少的解,即 u u u 是如下 l 0 l_0 l0 范数问题的最优解:

min ⁡ x ∈ R n ∥ x ∥ 0 , s.t. A x = b . \begin{equation} \begin{aligned} \begin{aligned}\min_{x\in\mathbb{R}^n}\quad&\|x\|_0,\\\text{s.t.}\quad&Ax=b.\end{aligned} \end{aligned} \end{equation} xRnmins.t.x0,Ax=b.
其中 ‖ x ‖ 0 ‖x‖_0 x0 是指 x x x 中非零元素的个数.由于 ‖ x ‖ 0 ‖x‖_0 x0是不连续的函数,且取值 只可能是整数,问题 (2) 实际上是 NP(non-deterministic polynomial) 难的,求解起来非常困难。通过转化为 ‖ x ‖ 1 ‖x‖_1 x1问题,则可以进行求解:
min ⁡ x ∈ R n ∥ x ∥ 1 , s.t. A x = b . \begin{equation} \begin{aligned} \begin{aligned}\min_{x\in\mathbb{R}^n}\quad&\|x\|_1,\\\text{s.t.}\quad&Ax=b.\end{aligned} \end{aligned} \end{equation} xRnmins.t.x1,Ax=b.
但转化为2-范数,却无法求解。

原因:
在几何上,三种优化问题实际 上要找到最小的 C C C,使得"范数球" { x ∣ ‖ x ‖ ⩽ C } \{x|‖x‖ ⩽ C\} {x∣‖xC} ‖ ⋅ ‖ ‖ · ‖ 表示任何一种范数)恰好与 A x = b Ax = b Ax=b 相交.下图为示意图:

PS:范数球是指在某个向量空间中,以某个向量为球心,以某个范数为半径所构成的球形集合。

在这里插入图片描述
ℓ 0 ℓ_0 0范数,当 C = 2 C = 2 C=2 { x ∣ ‖ x ‖ 0 ⩽ C } \{x|‖x‖0 ⩽ C\} {x∣‖x‖0C} 是全平面,它自然与 A x = b Ax = b Ax=b 相交,而当 C = 1 C = 1 C=1 时退化成两条直线(坐标轴),此时问题的解是 A x = b Ax = b Ax=b 和这两条直线的交点;对 ℓ 1 ℓ_1 1 范数,根据 C C C 不同 { x ∣ ‖ x ‖ 1 ⩽ C } \{x|‖x‖1 ⩽ C\} {x∣‖x‖1C} 为一系列正方形,这些正方形的顶点恰好都在坐标轴上,而最小的 C C C 对应的正方形和直线 A x = b Ax = b Ax=b的交点一般都是顶点,因此 ℓ 1 ℓ_1 1 范数的解有稀疏性;对 ℓ 2 ℓ_2 2 范数,当 C C C 取值不同时 { x ∣ ‖ x ‖ 2 ⩽ C } \{x|‖x‖2 ⩽ C\} {x∣‖x‖2C} 为一系列圆,而圆有光滑的边界,它和直线 A x = b Ax = b Ax=b的切点可以是圆周上的任何一点,所以 ℓ 2 ℓ_2 2 范数优化问题一般不能保证解的稀疏性.

l 0 l_0 l0 范数不是一个范数,这里为了叙述统一而采用了这个术语。
范数是数学中的一个概念,用来衡量向量的大小或长度。常用的范数有欧几里得范数、曼哈顿范数、切比雪夫范数等。

x x x n n n 维向量 ( x 1 , x 2 , ⋯   , x n ) ⊤ (x_1, x_2, \cdots, x_n)^\top (x1,x2,,xn),则 x x x 的范数
∥ x ∥ \left\|x\right\| x 定义为:

  • 欧几里得范数(2-范数) ∥ x ∥ 2 = x 1 2 + x 2 2 + ⋯ + x n 2 \left\|x\right\|_2=\sqrt{x_1^2+x_2^2+\cdots+x_n^2} x2=x12+x22++xn2
  • 曼哈顿范数(1-范数) ∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \left\|x\right\|_1=\sum\limits_{i=1}^n |x_i| x1=i=1nxi
  • 切比雪夫范数 ∥ x ∥ ∞ = max ⁡ 1 ≤ i ≤ n ∣ x i ∣ \left\|x\right\|_{\infty}=\max\limits_{1\leq i \leq n}|x_i| x=1inmaxxi

范数的性质包括:

  • 非负性 ∥ x ∥ ≥ 0 \left\|x\right\|\geq 0 x0,且 ∥ x ∥ = 0 \left\|x\right\|=0 x=0 当且仅当 x x x 是零向量;
  • 齐次性或同次性 ∥ α x ∥ = ∣ α ∣ ∥ x ∥ \left\|\alpha x\right\|=|\alpha|\left\|x\right\| αx=αx,其中 α \alpha α 是标量;
  • 三角不等式 ∥ x + y ∥ ≤ ∥ x ∥ + ∥ y ∥ \left\|x+y\right\|\leq\left\|x\right\|+\left\|y\right\| x+yx+y
  • 自反性 ∥ x ∥ = max ⁡ ∥ y ∥ ≤ 1 x ⊤ y \left\|x\right\|=\max\limits_{\left\|y\right\|\leq 1}x^\top y x=y1maxxy(对于切比雪夫范数),或
    ∥ x ∥ = lim ⁡ p → ∞ ( ∑ i = 1 n ∣ x i ∣ p ) 1 p \left\|x\right\|=\lim\limits_{p\rightarrow\infty}\left(\sum\limits_{i=1}^n |x_i|^p\right)^{\frac{1}{p}} x=plim(i=1nxip)p1(对于其他范数)。

ℓ 1 ℓ_1 1 范数正则项的优化问题 :
min ⁡ x ∈ R n μ ∥ x ∥ 1 + 1 2 ∥ A x − b ∥ 2 2 , \begin{equation} \begin{aligned} \min\limits_{x\in\mathbb{R}^n}\quad\mu\|x\|_1+\frac{1}{2}\|Ax-b\|_2^2, \end{aligned} \end{equation} xRnminμx1+21Axb22,

其中 μ > 0 μ > 0 μ>0 是给定的正则化参数.问题 (5) 又称为 LASSO(least absolute shrinkage and selection operator),该问题可以看成是问题 (3)的二次罚函数形式.由于它是无约束优化问题,形式上看起来比问题 (3) 简单。

最优化的基本概念

全局和局部最优解

在求解最优化问题之前,先介绍最小化问题(1) 的最优解的定义.

在这里插入图片描述
如果一个点是局部极小解,但不是严格局部极小解,则称为非严格局部极小解。在这里插入图片描述

优化算法收敛性

显式解:对于一个优化问题,如果我们能 用代数表达式给出其最优解,那么这个解称为显式解,对应的问题往往比较简单。

但实际问题往往是没有办法显式求解的,因此常采用迭代算法。

  • 迭代算法的基本思想是:从一个初始点 x 0 x_0 x0 出发,按照某种给定的规则进行迭代,得到一个序列 x k {x_k} xk如果迭代在有限步内终止,那么最后一个点就是优化问题的解.如果迭代点列是无穷集合,那么希望该序列的极限点(或者聚点)则为优化问题的解.
  • 对于一个具体的算法,根据其设计的出点,我们不确定能得到一个高精度的近解。此时,为了避免无法使用的计算开销,我们还需要一些收敛标准来及时停算法进行。
  • 在算法设计中,一个重要的标准是算法产生的点列是否收敛到优化问题的解
  • 考虑无约束的情形,对于一个算法,给定初始点 x 0 x_0 x0,记其迭代产生的点列为 { x k } \{x_k\} {xk}. 如果 { x k } \{x_k\} {xk}在某种范数 ∣ ∣ ⋅ ∣ ∣ ||\cdot || ∣∣∣∣的意义下满足 lim ⁡ k → ∞ ∥ x k − x ∗ ∥ = 0 , \lim_{k\to\infty}\|x^k-x^*\|=0, limkxkx=0,且收敛的点 x ∗ x^∗ x 为一个局部(全局)极小解,那么我们称该点列收敛到局部 (全局)极小解,相应的算法称为是依点列收敛到局部(全局)极小解的.
  • 进一步地,如果从任意初始点 x 0 x_0 x0 出发,算法都是依点列收敛到局部(全局)极小解的,我们称该算法是全局依点列收敛到局部(全局)极小解的 .相应地,如果记对应的函数值序列为 { f ( x k ) } \{f (x^k)\} {f(xk)},我们还可以定义算法的(全局)依函数值收敛到局部(全局)极小值的概念.
  • 对于凸优化问题,因为其任何局部最优解都为全局最优解,算法的收敛性都是相对于其全局极小而言的
  • 除了点列和函数值的收敛外,实际中常用的还有每个迭代点的最优性条件(如无约束优化问题中的梯度范数,约束优化问题中的最优性条件违反度等等)的收敛
  • 对于带约束的情形,给定初始点 x 0 x_0 x0,算法产生的点列 { x k } \{x_k\} {xk}不一定是可 行的(即 { x k } \{x_k\} {xk} X \mathcal X X 未必对任意 k k k 成立).考虑到约束违反的情形,我们需要保证 { x k } \{x_k\} {xk}在收敛到 x ∗ x^∗ x 的时候,其违反度是可接受的.除此要求之外,算法的收敛性的定义和无约束情形相同.

在设计优化算法时,我们有一些基本的准则或技巧.对于复杂的优化问题,基本的想法是将其转化为一系列简单的优化问题(其最优解容易计算或 者有显式表达式)来逐步求解.常用的技巧有:
在这里插入图片描述

算法的渐进收敛速度

以点列的 Q Q Q-收敛速度( Q Q Q 的含义为"quotient")为例(函数值的 Q Q Q-收敛速度可以类似地定义).设 { x k } \{x_k\} {xk} 为算法产生的迭代点列且收敛于 x ∗ x^∗ x.在这里插入图片描述在这里插入图片描述

Q Q Q-收敛速度外,另一常用概念是 R R R-收敛速度( R R R 的含义为"root")

在这里插入图片描述

算法的复杂度

与收敛速度密切相关的概念是优化算法的复杂度 N ( ε ) N (ε) N(ε),即计算出给定 精度 ε ε ε 的解所需的迭代次数或浮点运算次数.
在这里插入图片描述

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

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

相关文章

stm32f103步进电机S曲线加减速计算

S曲线主要实现低速扭力大,更快更稳 https://zhuanlan.zhihu.com/p/396648926?utm_campaign&utm_mediumsocial&utm_oi1361101006265331712&utm_psn1686906450235133952&utm_sourcezhihu 可点击上面链接查看啤酒杯的运动动画 摘自一段知乎上一段关于…

C#,数值计算——Logisticdev的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Structure for logistic deviates. /// </summary> public class Logisticdev : Ran { private double mu { get; set; } private double sig {…

PaddlePaddle Hackathon 飞桨黑客马拉松热身赛上线!

挑战自我 拓展技能 激发创新 挑战极限 再次相遇黑客松 我们期待你的加入&#xff01; 第五期 PaddlePaddle Hackathon 飞桨黑客马拉松热身赛上线&#xff0c;本次活动是面向全球开发者的深度学习领域编程活动&#xff0c;鼓励开发者了解和参与飞桨深度学习开源项目与文心大…

基于海康Ehome/ISUP接入到LiveNVR实现海康摄像头、录像机视频统一汇聚,做到物联网无插件直播回放和控制

LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB28181 1、海康 ISUP 接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例 3、通道配置3.1、直播流接入类型 海康ISUP3.2、海康 ISUP 设备ID3.3、启用保存3.4、接入成功 4、相关…

TC397 IfxAsclin串口收发分析

TC397 IfxAsclin串口收发分析 硬件FIFO 16 bytes TxFIFO 16 bytes RxFIFO 软件操作: 通过以上函数调用分析,可知: 1:初始化串口时,指定的FIFO为S/W 缓冲FIFO 2:ILLD提供的ISR操作函数: IfxAsclin_Asc_isrTransmit(&gstAsc2); IfxAsclin_Asc_isrReceive(&gs…

VMware虚拟机如何设置网络

一直没弄明白怎么能让虚拟机正常上网和访问&#xff0c;最近总结一个小经验 要在宿主机访问虚拟机电脑服务器&#xff0c;要设置成nat格式&#xff0c;虚拟机可以上网&#xff0c;宿主机访问虚拟机上的ip即可访问虚拟机里的服务器&#xff0c;也就是这样设置就行。 这时候ip不…

计算机网络层(2)

1.动态路由协议&#xff1a; 内部网关协议&#xff1a;用于一个自治系统的内部 外部网关协议&#xff1a;用于不同自治系统 RIP协议&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;&#xff1a;路由信息协议是一种内部网关协议&#xff0c;是一…

【洛谷算法题】P5706-再分肥宅水【入门1顺序结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5706-再分肥宅水【入门1顺序结构】&#x1f30f;题目描述&#x1f30f;输入格式…

Python爬虫基础(五):使用scrapy框架

文章目录 系列文章索引一、scrapy简介1、什么是scrapy2、scrapy安装3、scrapy架构组成4、scrapy工作原理 二、scrapy基本使用1、创建项目2、创建爬虫文件3、&#xff08;附&#xff09;项目组成4、运行爬虫代码&#xff08;1&#xff09;修改baidu.py&#xff08;2&#xff09;…

css自学框架之平滑滚动

今天添加的功能是平滑滚动到指定位置&#xff0c;就是单击页面的按钮&#xff0c;平滑滚动页面到对应的元素&#xff0c;可添加偏移值。 示例&#xff1a;单击ID为gundongBTN 元素&#xff0c;页面平滑滚动到其指定的ID为#topdiv对应内容&#xff0c;同时保留 5px 的偏移间距。…

Java计算机毕业设计 基于SSM+Vue医药进出口交易系统的设计与实现 Java课程设计 实战项目

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

八、实时时钟

八、实时时钟 简介时钟芯片模块代码可调时钟 简介 引脚定义和应用电路 我们的开发板没有备用电池 寄存器定义 时序定义 在时钟的上升沿&#xff0c;IO口的数据被写入到芯片中&#xff0c;在下降沿&#xff0c;芯片就会将数据输出。如果是写入&#xff0c;那么在整个过程中&…

MySQL查询表结构方法

MySQL查询数据库单个表结构代码 – 查询数据库表信息 SELECT​ COLUMN_NAME 列名,​ DATA_TYPE 字段类型,​ CHARACTER_MAXIMUM_LENGTH 长度,​ IS_NULLABLE 是否为空,​ IF(column_key PRI,Y,) 是否为主键,​ COLUMN_DEFAULT 默认值,​ COLUMN_COMMENT 备注FROM​ INFORMAT…

c++ reference_wrapper源码注释

并给出图片&#xff0c;这样就不用下载了 谢谢

实现安全的服务通信:探索如何使用服务网格来确保服务间的安全通信

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

C++,基础函数、string、引用型变量reference

9月18日 C标准库。 一、C入门基础 1、基础 入口函数与C语言相同 后缀名使用cpp 注释与c语言相同 导入c标准库无需后缀 自定义头文件与c语言相同 using namespace std; std&#xff1a;名称空间&#xff08;全局区&#xff09; cout、endl属性名称空间“std” C输出没有格式…

linux入门到精通-第三章-vi(vim)编辑器

目录 文本编辑器gedit介绍vi(vim)命令模式命令模式编辑模式末行模式 帮助教程保存文件切换到编辑模式光标移动(命令模式下)复制粘贴删除撤销恢复保存退出查找替换可视模式替换模式分屏其他用法配置文件 文本编辑器 gedit介绍 gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器…

SpringCLoud——Docker的基本介绍

什么是Docker 项目部署问题 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署时会碰到一些问题&#xff1a; 依赖关系复杂&#xff0c;容易出现兼容性问题开发、测试、生产环境有差异。 Docker Docker如何解决依赖的兼容问题的&#xff1f; 将应用的LIbs&…

GDPU 数据结构 天码行空2

实验内容 用顺序表实现病历信息的管理与查询功能。具体要求如下: 利用教材中定义顺序表类型存储病人病历信息(病历号,姓名&#xff0c;症状)&#xff1b;要求使用头文件。 设计顺序表定位查找算法&#xff0c;写成一个函数&#xff0c;完成的功能为:在线性表L中查找数据元素x…

CSS 链接:Link

文章目录 CSS 链接链接样式常见的链接样式文本修饰背景颜色案例1&#xff0c;添加不同样式的超链接2&#xff0c;高级 - 创建链接框 CSS 链接 CSS可以用来设置链接的样式&#xff0c;包括未访问的链接&#xff08;a:link&#xff09;、已访问的链接&#xff08;a:visited&…