最优化的基本概念

2023-05-16

最优化的基本概念

    • 连续和离散优化问题
    • 无约束和约束优化问题
    • 随机和确定性优化问题
    • 线性和非线性规划问题
    • 凸和非凸优化问题
    • 全局和局部最优解
    • 优化算法

一般来说,最优化算法研究可以分为: 构造最优化模型、确定最优化问题的类型和设计算法、实现算法或调用优化算法软件包进行求解.最优化模型的构造和实际问题紧密相关,比如说,给定二维欧几里得(Euclid)空间的若干个离散点,假定它们可以通过一条直线分成两部分,也可以通过一条曲线分成两部分.那么分别使用直线与曲线所得到的最优化模型是不同的.在确定模型之后,我们需要对模型对应的优化问题进行分类.
这里, 分类的必要性是因为不存在对于所有优化问题的一个统一的算法.因此我们需要针对具体优化问题所属的类别,来设计或者调用相应的算法求解器.最后就是模型的求解过程.同一类优化问题往往存在着不同的求解算法.对于具体的优化问题,我们需要充分利用问题的结构,并根据问题的需求(求解精度和速度等)来设计相应的算法.
另外,根据算法得到的结果,我们可以来判别模型构造是否合理或者进一步地改进模型.如果构造的模型比较复杂,那么算法求解起来相对困难(时间慢或者精度差).此时算法分析可以帮助我们设计替代模型,以确保快速且比较精确地求出问题的解.这三个部分的研究对于形成完备的最优化体系是必要的.实际应用导出的各种各样的最优化模型给最优化学科不断注入新鲜的血液,对现有的优化算法进行挑战并推动其向前发展.最优化算法的设计以及理论分析帮助实际问题建立更鲁棒稳定的模型.模型与算法相辅相成,使得最优化学科不断发展.

连续和离散优化问题

最优化问题可以分为连续和离散优化问题两大类.连续优化问题是指决策变量所在的可行集合是连续的,比如平面、区间等.如稀疏优化问题的约束集合就是连续的.离散优化问题是指决策变量能在离散集合上取值,比如离散点集、整数集等.常见的离散优化问题有整数规划,其对应的决策变量的取值范围是整数集合.

在连续优化问题中,基于决策变量取值空间以及约束和目标函数的连续性,我们可以从一个点处目标和约束函数的取值来估计该点可行领域内的取值情况.进一步地,可以根据邻域内的取值信息来判断该点是否最优.离散优化问题则不具备这个性质,因为决策变量是在离散集合上取值.因此在实际中往往比连续优化问题更难求解.实际中的离散优化问题往往可以转化为一系列连续优化问题来进行求解.比如线性整数规划问题中著名的分支定界方法,就是松弛成一系列线性规划问题来进行求解.因此连续优化问题的求解在最优化理论与算法中扮演着重要的角色.

无约束和约束优化问题

最优化问题的另外一个重要的分类标准是约束是否存在.无约束优化问题的决策变量没有约束条件限制,即可行集合 X = Rn.相对地,约束优化问题是指带有约束条件的问题.在实际应用中,这两类优化问题广泛存在.无约束优化问题对应于在欧几里得空间中求解一个函数的最小值点.比如在ℓ1 正则化问题中,决策变量的可行域是 Rn,其为一个无约束优化问题.

因为可以通过将约束罚到目标函数上转化为无约束问题,所以在某种程度上,约束优化问题就是无约束优化问题.很多约束优化问题的求解也是转化为一系列的无约束优化问题来做,常见方式有增广拉格朗日函数法、罚函数法等.尽管如此,约束优化问题的理论以及算法研究仍然是非常重要的.主要原因是,借助于约束函数,我们能够更好地描述可行域的几何性质,进而更有效地找到最优解.对于典型的约束和无约束优化模型.

随机和确定性优化问题

伴随着近年来人工智能的发展,随机优化问题的研究得到了长足的发展.**随机优化问题是指目标或者约束函数中涉及随机变量而带有不确定性的问题.**不像确定性优化问题中目标和约束函数都是确定的,随机优化问题中总是包含一些未知的参数.在实际问题中,我们往往只能知道这些参数的某些估计.随机优化问题在机器学习、深度学习以及强化学习中有着重要应用,其优化问题的目标函数是关于一个未知参数的期望的形式.因为参数的未知性,实际中常用的方法是通过足够多的样本来逼近目标函数,得到一个新的有限和形式的目标函数.由于样本数量往往非常大,我们还是将这个问题看作相对于指标随机变量的期望形式,然后通过随机优化方法来进行求解.

相比于确定性优化问题,随机优化问题的求解往往涉及更多的随机性.很多确定性优化算法都有相应的随机版本.随机性使得这些算法在特定问题上具有更低的计算复杂度或者更好的收敛性质.以目标函数为多项求和的优化问题为例,如果使用确定性优化算法,每一次计算目标函数的梯度都会引入昂贵的复杂度.但是对于随机优化问题,我们每次可能只计算和式中的一项或者几项,这大大减少了计算时间.同时我们还能保证算法求解的足够精确.

线性和非线性规划问题

线性规划是指目标函数和约束函数都是线性的.当目标函数和约束函数至少有一个是非线性的,那么对应的优化问题的称为非线性规划问题.线性规划问题在约束优化问题中具有较为简单的形式.类似于连续函数可以用分片线性函数来逼近一样,线性规划问题的理论分析与数值求解可以为非线性规划问题提供很好的借鉴和基础.

线性规划问题的研究很早便得到了人们的关注.在 1946—1947 年,GeorgeBernard Dantzig 提出了线性规划的一般形式并提出了至今仍非常流行的单纯形方法.虽然单纯形方法在实际问题中经常表现出快速收敛,但是其复杂度并不是多项式的.1979 年,Leonid Khachiyan 证明了线性规划问题多项式时间算法的存在性.1984 年,Narendra Karmarkar 提出了多项式时间的内点法.后来,内点法也被推广到求解一般的非线性规划问题.目前,求解线性规划问题最流行的两类方法依然是单纯形法和内点法.

凸和非凸优化问题

凸优化问题是指最小化目标函数和可行域分别是凸函数和凸集.如果其中有一个或者两者都不是凸的,那么相应的最小化问题是非凸优化问题.因为凸优化问题的任何局部最优解都是全局最优解,其相应的算法设计以及理论分析相对非凸优化问题简单很多.

在实际问题的建模中,我们经常更倾向于得到一个凸优化模型.另外,判断一个问题是否是凸问题也很重要.比如,给定一个非凸优化问题,一方法是将其转化为一系列凸优化子问题来求解.此时需要清楚原非凸问题中的哪个或哪些函数导致了非凸性,之后考虑的是如何用凸优化模型来逼近原问题.在压缩感知问题中, ℓ 0 ℓ_0 0范数是非凸的,原问题对应的解的性质难以直接分析,相应的全局收敛的算法也不容易构造.利用 ℓ 0 ℓ_0 0范数和 ℓ 1 ℓ_1 1 范数在某种意义上的等价性,我们将原非凸问题转化为凸优化问题.在一定的假设下,我们通过求解 ℓ 1 ℓ_1 1范数对应的凸优化问题得到了原非凸优化问题的全局最优解.

全局和局部最优解

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

**定义 1.1 (**最优解) 对于可行点 x ˉ \bar x xˉ(即 x ˉ ∈ X \bar x \in \mathcal X xˉX),定义如下概念:

(1) 如果 f ( x ˉ ) ⩽ f ( x ) f(\bar x) ⩽ f(x) f(xˉ)f(x), ∀ x ∈ X ∀x ∈ \mathcal X xX,那么称 x ˉ \bar x xˉ为全局极小解(点),有时也称为(全局)最优解或最小值点;
(2)如果存在 x ˉ \bar x xˉ的一个 ε 邻域 N ε ( x ˉ ) N_ε(\bar x) Nε(xˉ)使得 f ( x ˉ ) ⩽ f ( x ) , ∀ x ∈ N ε ( x ˉ ) ∩ X f(\bar x) ⩽ f(x), ∀x ∈ N_ε(\bar x) ∩ \mathcal X f(xˉ)f(x),xNε(xˉ)X , 那么称 x ˉ \bar x xˉ为的局部极小解(点),有时也称为局部最优解;
(3)进一步地,如果有 f ( x ˉ ) < f ( x ) , ∀ x ∈ N ε ( x ˉ ) ∩ X , x ≠ x ˉ f(\bar x) < f(x), ∀x ∈ N_ε(\bar x) ∩ \mathcal X , x \ne\bar x f(xˉ)<f(x),xNε(xˉ)X,x=xˉ成立,则称 x ˉ \bar x xˉ为严格局部极小解(点).

如果一个点是局部极小解,但不是严格局部极小解,我们称之为非严格局部极小解.在图 1.8 中,我们以一个简单的函数为例,指出了其全局与局部极小解.

在这里插入图片描述

优化算法

在给定优化问题之后,我们要考虑如何求解.根据优化问题的不同形式,其求解的困难程度可能会有很大差别.对于一个优化问题,如果我们能用代数表达式给出其最优解,那么这个解称为显式解,对应的问题往往比较简单.例如二次函数在有界区间上的极小化问题,我们可以通过比较其在对称轴上和区间两个端点处的值得到最优解,这个解可以显式地写出.但实际问题往往是没有办法显式求解的,因此常采用迭代算法

迭代算法的基本思想是:从一个初始点 x 0 x^0 x0出发,按照某种给定的规则进行迭代,得到一个序列 x k {x^k} xk.如果迭代在有限步内终止,那么希望最后一个点就是优化问题的解.如果迭代点列是无穷集合,那么希望该序列的极限点(或者聚点)则为优化问题的解.为了使算法能在有限步内终止,我们一般会通过一些收敛准则来保证迭代停在问题的一定精度逼近解上.对于无约束优化问题,常用的收敛准则有
在这里插入图片描述
其中 ε 1 , ε 2 ε_1, ε_2 ε1,ε2为给定的很小的正数,∥ · ∥ 表示某种范数(这里可以简单理解为 ℓ 2 ℓ2 2范数, f ∗ f^ ∗ f 为函数f 的最小值(假设已知或者以某种方式估计得到)以及 ∇ f ( x k ) ∇ f(x^k) f(xk) 表示函数 f在点 x 处的梯度(光滑函数在局部最优点处梯度为零向量).对于约束优化问题,还需要考虑约束违反度.具体地,要求最后得到的点满足
在这里插入图片描述
其中 ε 3 , ε 4 ε_3,ε_4 ε3,ε4为很小的正数,用来刻画 x k x^k xk 的可行性.除了约束违反度之外,我们也要考虑 x k x^k xk与最优解之间的距离,如 (1.5.1) 式中给出的函数值与最优值的相对误差.因为约束的存在,我们不能简单地用目标函数的梯度来判断最优性,实际中采用的判别准则是点的最优性条件的违反度.

对于一个具体的算法,根据其设计的出发点,我们不一定能得到一个高精度的逼近解.此时,为了避免无用的计算开销,我们还需要一些停机准则来及时停止算法的进行.常用的停机准则有
在这里插入图片描述
这里的各个 ε 一般互不相等.上面的准则分别表示相邻迭代点和其对应目标函数值的相对误差很小.在算法设计中,这两个条件往往只能反映迭代点列接近收敛,但不能代表收敛到优化问题的最优解.

在算法设计中,一个重要的标准是算法产生的点列是否收敛到优化问题的解.对于问题,其可能有很多局部极小解和全局极小解,但所有全局极小解对应的目标函数值,即优化问题的最小值 f ∗ f ^∗ f是一样的.考虑无约束的情形,对于一个算法,给定初始点 x 0 x^0 x0,记其迭代产生的点列为 x k {x^k} xk.如果 x k {xk} xk 在某种范数 ∥ · ∥ 的意义下满足
在这里插入图片描述
且收敛的点 x ∗ x^∗ x 为一个局部(全局)极小解,那么我们称该点列收敛到局部(全局)极小解,相应的算法称为是依点列收敛到局部(全局)极小解的.

在算法的收敛分析中,初始迭代点 x 0 x^0 x0 的选取也尤为重要.比如一般的牛顿法,只有在初始点足够接近局部(全局)最优解时,才能收敛.但是这样的初始点的选取往往比较困难,此时我们更想要的是一个从任何初始点出发都能收敛的算法.因此优化算法的研究包括如何设计全局化策略,将已有的可能发散的优化算法修改得到一个新的全局收敛到局部(全局)最优解的算法.比如通过采用合适的全局化策略,我们可以修正一般的牛顿法使得修改后的算法是全局收敛到局部(全局)最优解的.

进一步地,如果从任意初始点 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 x^k ∈ \mathcal X xkX未必对任意 k 成立).考虑到约束违反的情形,我们需要保证 x k {x^k} xk在收敛到 x ∗ x^∗ x的时候,其违反度是可接受的.除此要求之外,算法的收敛性的定义和无约束情形相同.

在设计优化算法时,我们有一些基本的准则或技巧.对于复杂的优化问题,基本的想法是将其转化为一系列简单的优化问题(其最优解容易计算或者有显式表达式)来逐步求解.常用的技巧有:
在这里插入图片描述
对于同一个优化问题,其求解算法可以有很多.在设计和比较不同的算法时,另一个重要的指标是算法的渐进收敛速度.我们以点列的 Q-收敛速度(Q 的含义为“quotient”)为例(函数值的 Q-收敛速度可以类似地定义).设 { x k } \{x^k\} {xk} 为算法产生的迭代点列且收敛于 x ∗ x^∗ x,若对充分大的 k 有
在这里插入图片描述
则称算法(点列)是 Q-线性收敛的;若满足
在这里插入图片描述称算法(点列)是 Q-超线性收敛的;若满足
在这里插入图片描述
称算法(点列)是 Q-次线性收敛的.若对充分大的 k 满足
在这里插入图片描述
则称算法(点列)是 Q-二次收敛的.

除 Q-收敛速度外,另一常用概念是 R-收敛速度(R 的含义为“root”).以点列为例,设 x k {x^k} xk 为算法产生的迭代点且收敛于 x ∗ x^∗ x,若存在 Q-线性收敛于 0 的非负序列 t k t_k tk 并且在这里插入图片描述
对任意的 k 成立,则称算法(点列)是 R-线性收敛的.类似地,可定义 R-超线性收敛和 R-二次收敛等收敛速度.

与收敛速度密切相关的概念是优化算法的复杂度 N(ε),即计算出给定精度 ε 的解所需的迭代次数或浮点运算次数.在实际应用中,这两种定义复杂度的方式均很常见.如果能较准确地估计每次迭代的运算量,则可以由算法所需迭代次数推出所需浮点运算次数.我们用具体的例子来进一步解释算法复杂度.设某一算法产生的迭代序列 { x k } \{x^k\} {xk}满足
在这里插入图片描述
其中 c > 0 c > 0 c>0 为常数, x ∗ x^∗ x 为全局极小点.如果需要计算算法满足精度 f ( x k ) − f ( x ∗ ) ⩽ ε f(x^k) −f(x^∗) ⩽ ε f(xk)f(x)ε 所需的迭代次数,只需令 c / √ k ⩽ ε c/√k ⩽ ε c/kε则得到 k ⩾ c 2 / ε 2 k ⩾ c^2/ε^2 kc2/ε2 ,因此该优化算法对应的(迭代次数)复杂度为 N ( ε ) = O ( 1 / ε 2 ) N(ε) = \mathcal O(1/ε^ 2) N(ε)=O(1/ε2).注意,渐进收敛速度更多的是考虑迭代次数充分大的情形,而复杂度给出了算法迭代有限步之后产生的解与最优解之间的定量关系,因此近年来受到人们广泛关注.

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

最优化的基本概念 的相关文章

  • http-parser用法

    头文件说明 xff1a 解析类型定义 xff1a enum http parser type HTTP REQUEST HTTP RESPONSE HTTP BOTH 解析函数声明 xff1a void http parser init h
  • gazebo崩溃

    1 虚拟机下打开gazebo报错 xff1a VMware vmw ioctl command error Invalid argument INFO 1610283240 619937255 0 180000000 LeePosition
  • k8s中文网站

    https www kubernetes org cn doc 11
  • 【平衡车】PID控制原理到底如何理解?建议收藏!

    文章目录 前言PID算法PID算法的形成P算法 xff0c 即比例控制算法 I算法 xff0c 即积分控制算法D算法 xff0c 即微分控制算法PID总体的数学模型 xff1a 基于单片机的PID控制算法 xff1a 单片机中的PID算法的
  • 嵌入式C语言修炼之道.屏幕操作篇

    汉字处理 现在要解决的问题是 xff0c 嵌入式系统中经常要使用的并非是完整的汉字库 xff0c 往往只是需要提供数量有限的汉字供必要的显示功能 例如 xff0c 一个微波炉的LCD上没有必要提供显示 34 电子邮件 34 的功能 xff1
  • CDN—内容分发网络

    CDN 1 含义 CDN的全称是Content Delivery Network xff0c 即内容分发网络 CDN是构建在现有网络基础之上的智能虚拟网络 xff0c 依靠部署在各地的边缘服务器 xff0c 通过中心平台的负载均衡 内容分发
  • BeautifulSoup

    代码 xff1a from bs4 import BeautifulSoup 一个html格式的内容 doc 61 39 lt html gt lt head gt lt title gt Page title lt title gt lt
  • Ubuntu Server 22.04.1配置(配置root账号、设置固定IP、更改SSH端口、配置UFW、VM扩展磁盘后Ubuntu的扩容)

    为了能快速的创建虚拟机 xff0c 通过VM创建了一个2核CPU 4G内存 40G硬盘 xff0c 安装Ubuntu Server 22 04 1的虚拟机 xff0c 以便在需要的时候随时克隆一个新的虚拟机出来 在新的虚拟机克隆出来后可能会
  • 使用ado连接orical数据库

    使用ADO连接数据库有三种方法 xff1b 方案1 安装Orical数据库软件比方说说oracle 11g R2 32位软件 这里有一个需要注意的地方就是如果你编译的是win32如下图 xff0c 那么就必须要使用32位的数据库软件 其实在
  • QT操作 influxdb时序数据库(libcur)

    概述 最近在项目中需要用到influxdb 数据库 xff0c 当时使用了libcur库之后 xff0c 插入数据的速度一直不太理想 创建字表的速度 1W的话需要11Min xff0c 对于这样的时间完全达不到合格 经过研究进行了打包处理
  • linux中的环境变量

    临时添加环境变量的方法 exprort PATH 61 usr lib PATH export fnp 变量名称 61 变量设置值 参数说明 xff1a f 代表 变量名称 中为函数名称 n 删除指定的变量 变量实际上并未删除 xff0c
  • Linux(openEuler)没有界面连接互联网方法

    前言 系统版本openEuleropenEuler 22 03 LTS x86 64 dvd 我们在安装linux之后 xff0c 一般都是无界面的情况 大部分情况都是需要自己安装界面的 xff0c 如果路由器的情况下直接插上网络就好了 下
  • c#实现内存映射文件共享内存

    内存映射文件是利用虚拟内存把文件映射到进程的地址空间中去 xff0c 在此之后进程操作文件 xff0c 就像操作进程空间里的地址一样了 xff0c 比如使用c语言的 memcpy等内存操作的函数 这种方法能够很好的应用在需要频繁处理一个文件
  • c#Gdi画图的两种方式

    用Graphics绘图的两种方法 在学习C 画图的时候非常的蛋疼 其中的一条原因是之前没有搞过 xff0c 其中之二是办公的环境有点差 这就是我找的2种学习非常蛋疼的原因 虽然是这样但是学还是要学的 本篇文章都是在xxx paint obj
  • 一个小巧的C++Log输出到文件类

    一个小巧的C 43 43 Log输出到文件类 xff08 转 xff09 作者 xff1a wangyin159 http www cnblogs com mazhenyu p 4139352 html 一个小巧的C 43 43 Log输出
  • beego创建项目

    span class token comment 安装beego框架 span go get u github com beego beego v2 span class token comment 安装bee工具 span go get
  • 我的C++回调函数的理解

    今天在看一个多线程下载文件的代码时 xff0c 让我很头痛 因为该程序中运用了大量的回调函数 在我们学习一种技术的时候我们就要去知道几个问题 1 回调函数是什么东西 xff1f 2 回调函数怎么开发 xff0c 怎么使用 xff1f 3 回
  • c++ 中文和十六进制的互转

    CString CHexAndStrDlg StrToHex CString strData 初始化 CString strTemp 61 34 34 int iLenth 61 strData GetLength char cArrDat
  • 一篇文章,中文发完英文发,算“一稿多投”吗?

    近期有作者问小编 xff08 www unionpub cn xff09 xff0c 为什么有人换种语言 xff0c 发表了两篇同样内容的文章 而不算 34 一稿多投 34 一稿多投 是被明确禁止的 xff0c 但上述 34 二次发表 的行

随机推荐

  • 【CCF推荐专区】计算机类优质SCI&EI好刊,期刊质量高,部分期刊仅有少量版面

    x1f308 智能传感类 xff08 TOP xff09 CCF C类 期刊简介 IF 7 0 8 0 xff0c JCR1区 xff0c 中科院2 1区 检索情况 SCI amp EI 双检 xff0c 正刊 xff0c CCF C类 征
  • 考研杭电非全计算机技术调剂上岸

    考研杭电非全计算机技术调剂上岸 简介初试考完心态复试写这个的目的 简介 昨天看见杭电考研群里说到传承 xff0c 我觉得很有价值 xff0c 所以打算也写了我的一些想法 xff0c 希望对你们有帮助 本人31岁 xff0c 有老婆有孩子 x
  • 各种滤波算法的比较

    原文地址 xff1a http www wtoutiao com p 1fe9dPI html xfeff 各种滤波算法的比较 数字滤波 digital filtering 数字滤波 digital filtering 用数字设备 xff0
  • 十九.Linux开发之根文件系统移植——根文件系统的原理

    有道云笔记地址 xff1a 详情看这里链接 xff0c 记录太多 xff0c 就不一一排版了 http note youdao com noteshare id 61 f9c7c1b589233d7b6ed661c3749f1ce8 amp
  • (转)临界区,互斥量,信号量,事件的区别(线程同步)

    四种进程或线程同步互斥的控制方法 1 临界区 通过对多线程的串行化来访问公共资源或一段代码 xff0c 速度快 xff0c 适合控制数据访问 2 互斥量 为协调共同对一个共享资源的单独访问而设计的 3 信号量 为控制一个具有有限数量用户资源
  • Git clone的使用方法

    使用Git clone项目 1 首先我们要确保我们的电脑上已经安装Git 桌面点击右键出现如下图所示的两个Git即Git已经安装 2 在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹 3 在码云上面打开我们要clone
  • error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

    报错1 xff1a error LNK2038 检测到 ITERATOR DEBUG LEVEL 的不匹配项 值 0 不匹配值 2 解决 xff1a xff08 1 xff09 工程的模式和库的模式不一致 xff0c 工程为Debug模式
  • 关于p操作和v操作的理解

    操作系统之PV操作 今天在做操作系统老师布置的操作系统作业 xff0c 但是碰到了一个有关pv操作的问题 xff0c 由于对pv操作的理解不是很透彻 xff0c 所以我查阅了很多资料 xff0c 下面来简单的通俗的介绍一下pv操作 1 信号
  • 相机针孔模型----从世界坐标系,到相机坐标系,再到图像物理坐标系,最后到图像像素坐标系的转换过程解析

    看了很多讲解针孔相机模型中从世界坐标系 gt 到相机坐标系 gt 图像坐标系的文章 xff0c 心里的疑惑也逐渐展开 xff0c 现在总结一下自己的理解 xff1a 世界坐标系 相机坐标系 图像物理坐标系 图像像素坐标系在我的另一篇博文里已
  • 如何在cmd查看文件内容的MD5值

    在cmd下进入 要查看的文件目录 进入cmd xff0c 输入如下命令 xff1a certutil hashfile 文件名称 文件类型 MD5 结果显示如下 SHA1 的 test py 哈希 364ebe3569456ec7e77de
  • CMakeLists.txt文件

    举例说明 xff1a CMake 构建 HelloSlam 工程 1 Ctrl 43 Alt 43 T 按键打开终端 2 在选定路径下建立工程文件夹 xff1a mkdir HelloSlam 3 构建 HelloSlam 的文件目录结构
  • PX4 CMakeLists.txt分析

    简单的概述 make 和 cmake 是linux UNIX系统下广泛使用的构建编译规则工具 xff0c 面对复杂庞大的工程 xff0c 各种源文件和工具文件分布在工程目录下 xff0c 如何组织和有序地编译和使用这些文件 xff0c 显然
  • iOS OC消除黄色警告⚠️ (不断的更新中...)

    开发一个项目时 xff0c 难免会产生很多警告 xff0c 一些是第三方或是老代码不再被支持造成的 xff0c 但并不影响使用 xff0c 这些警告其实可以直接隐藏掉 xff01 还有一些 警告可能是系统方法弃用 不兼容指针类型 未使用变量
  • AUTOSAR E2E & SecOC Comparison

    AUTOSAR E2E amp SecOC Comparison 前面已经介绍过了E2E 和 SecOC CMAC 了 xff0c 既然2者都可以进行数据完整性保护 xff0c 那么2者有什么区别呢 下面基于我的经验所总结 欢迎补充 xff
  • 解决:source devel/setup.bash(只在当前终端生效)的问题,使其在其他终端

    解决方法 xff1a 终端输入 xff1a gedit bashrc 文件打开后直接翻到最后面 在底部添加source catkin ws devel setup bash 保存退出即可
  • ROS与C++入门教程

    https www ncnynl com archives 201701 1279 html
  • HiChart图表统计:jsp中hichart用法以及从后台获取数据

    在做web服务器时 xff0c 用到了图表 xff0c 对一天内资源的下载量进行统计 xff0c 让数据更加的直观 上网查了很多资料 xff0c 最后发现HiChart很好用 xff0c 相对比较简单 下面作以详细介绍 xff1a 1 首先
  • [论文]欠驱动水下机器人的平面轨迹规划与跟踪控制设计

    论文 欠驱动水下机器人的平面轨迹规划与跟踪控制设计 摘要 研究了欠驱动自主水下航行器在水平面上的轨迹规划与跟踪控制的组合问题 给定光滑的 惯性的二维参考轨迹 xff0c 规划算法利用车辆动力学计算参考方向和机体固定速度 利用这些 xff0c
  • sql查询语句汇总,先撸为敬

    一 简单查询语句 group by 和having的区别 链接 二 复杂查询 1 数据分组 max min avg sum count SQL gt SELECT MAX sal MIN age AVG sal SUM sal from e
  • 最优化的基本概念

    最优化的基本概念 连续和离散优化问题无约束和约束优化问题随机和确定性优化问题线性和非线性规划问题凸和非凸优化问题全局和局部最优解优化算法 一般来说 xff0c 最优化算法研究可以分为 xff1a 构造最优化模型 确定最优化问题的类型和设计算