当前位置: 首页 > news >正文

机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则

   本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例



   四、无约束最优化方法基础

   1、无约束的最优化问题描述

   无约束的最优化问题可以描述成,求取使得目标函数值最小的最优解 x ∗ x^{*} x,即:
   min ⁡ f ( x ) \min f(x) minf(x)
   其中:

   注1:最优解 x ∗ x^{*} x,是一个解集,可能包含一个解、多个解,也有可能不存在


   2、函数下降方向d

   内容补充:设 x k x_k xk 是经 k 步迭代后得到的迭代点, d k d_k dk 是在 x k x_k xk 点使 f ( x ) f(x) f(x) 下降的方向, a k a_k ak > 0 是沿 d k d_k dk 的步长,第k+1个选代点则可用下式表示,它满足 f ( x k + 1 ) < f ( x k ) . f\left(x_{k+1}\right)<f\left(x_{k}\right). f(xk+1)<f(xk).

   x k + 1 = x k + α k d k x_{k+1}=x_{k}+\alpha_{k}d_{k} xk+1=xk+αkdk

   那么我们来思考满足什么条件的方向是在 x k x_k xk 点使 f ( x ) f(x) f(x) 下降的方向呢?

   对任意 d ∈ R n d ∈R^n dRn,若存在 α ‾ k \overline{\alpha}_{k} αk,使 f ( x k + α d ) < f ( x k ) , ∀ α ∈ ( 0 , α ˉ k ) f\left(x_{k}+\alpha d\right)<f\left(x_{k}\right),\forall\alpha\in\left(0,\bar{\alpha}_{k}\right) f(xk+αd)<f(xk),α(0,αˉk),则d为 f ( x ) f(x) f(x) 在点 x k x_k xk 处下降的方向,将 f ( x k + α d ) f\left(x_{k}+\alpha d\right) f(xk+αd)在点 x k x_k xk 处泰勒展开得到下式:

   f ( x k + α d ) = f ( x k ) + α ∇ f ( x ) T d + O ( ∥ α d ∥ 2 ) f\left(x_{k}+\alpha d\right)=f\left(x_{k}\right)+\alpha \nabla f\left(x\right)\text{}^{\text{T}}d+O\left(\left\|\alpha d\right\|^{2}\right) f(xk+αd)=f(xk)+αf(x)Td+O(αd2)

   由上式可知,当下降方向d满足 g k T d < 0 g_{k}^{T}d<0 gkTd<0时,d即为使得 f ( x ) f(x) f(x) 在点 x k x_k xk 处下降的方向。


   3、无约束最优化算法的基本结构及构成要素

   第1步:给定初始点 x 0 ∈ R n , k : = 0 ; x_{0}\in{R}^{n},k:=0; x0Rn,k:=0;

   第2步:若在 x k x_k xk点终止准则满足,则输出有关信息,停止迭代;

   第3步:确定 f ( x ) f(x) f(x) x k x_k xk点的下降方向 d k d_k dk;

   第4步:确定步长 a k a_k ak,使 f ( x k + α k d k ) f\left(x_{k}+\alpha_{k}d_{k}\right) f(xk+αkdk)较之 f ( x ) f(x) f(x)有某种意义的下降

   第5步:令 x k + 1 : = x k + α k d k , k : = k + 1 x_{k+1}:=x_{k}+\alpha_{k}d_{k},k:=k+1 xk+1:=xk+αkdk,k:=k+1,转到第2步

   构成一个最优化方法的基本要素有二:其一是下降的方向;其二是步长.也就是说不同的方法可得到不同的下降方向和步长。我们称所有具有以上结构的最优化方法为 线搜索(型)方法

   在最优化方法中,下降的方向与步长的选取顺序不同,导致产生不同类型的方法.线搜索方法是在 x k x_k xk点求得下降方向 d k d_k dk,再沿 d k d_k dk确定步长 a k a_k ak;信赖域方法是先限定步长的范围,再同时确定下降方向 d k d_k dk和步长 a k a_k ak

   算法的另一个重要问题是迭代的终止准则,因为局部极小点 x ∗ x^* x是稳定点,我们可用 ∥ ∇ f ( x k ) ∥ ⩽ ε \|\nabla\text{}f\left(x_k\right)\|\leqslant\varepsilon ∥∇f(xk)ε 作为终止准则.这样对于使用者来说,就存在着一个选择 ε \varepsilon ε的问题. ε \varepsilon ε的大小决定所得迭代点 x k x_k xk近似 x ∗ x^* x的精度.上述准则有一定的局限性.例如,对于在极小点邻域内比较陡峭的函数,即使该邻域中的点已相当接近极小点,但其梯度值可能仍然较大,从而使迭代难以停止。

   其他终止准则有 ∥ x k − x k ˉ + 1 ∥ ⩽ ε \|x_k-x_{\bar{k}+1}\|\leqslant\varepsilon xkxkˉ+1ε 或者 f k − f k + 1 ⩽ ε f_k-f_{k+1}\leqslant\varepsilon fkfk+1ε等,这两个准则满足只能说明算法这时所进行的迭代对迭代点或迭代点处目标函数值的改善已经很小,并不能保证 ∥ x k − x ∗ ∥ \|x_k-x^*\| xkx 或者 f k − f ⋆ f_k-f^{\star} fkf一定足够小。


   五、线搜索准则

   在当前迭代点 x k x_k xk ,假定我们已得到下降方向 d k d_k dk ,求步长 a k a_k ak的问题为一维搜索或线搜索问题,它包括两个内容:满足什么样的准则,步长可以接受?有了合适的准则,满足该准则的步长该如何求?

   对如何确定 a k a_k ak的接受准则这个问题,有两个最简单、直观的方法。即精确线搜索和非精确线搜索

   (1)精确线搜索准则

   精确线搜索是优化算法中一种用于确定每一步迭代中最优步长的方法。该方法的目标是在给定的搜索方向上找到能够最小化目标函数的步长,从而快速收敛到最优解。它通常应用于梯度下降法和共轭梯度法等优化算法中。

   精确线搜索即使 f ( x ) f(x) fx沿着 d k d_k dk寻找一个步长 a a a使得函数在该点处取得极小值,如下式所示:

   min ⁡ α f ( x k + α d k ) \min\limits_\alpha f(x_k+\alpha d_k) αminf(xk+αdk)

   设上式的解为 a k a_k ak,则 x k + 1 x_{k+1} xk+1= x k x_{k} xk+ a k a_{k} ak d k d_{k} dk ∇ f ( x k ) T d k = 0 \nabla f\left(x_{k}\right)^\mathrm{T}d_k=0 f(xk)Tdk=0

   这一点对一些无约束最优化方法的有限终止起着关键作用.然而,做精确线搜索需要求几乎精确的步长因子,当n 非常大或 f ( x ) f(x) f(x)非常复杂时,精确线搜索的计算量是相当大的,.实际上,当迭代点离最优解尚远时,是没有必要做高精度线搜索的.另外,对一般问题而言,实现精确线搜索是很困难的。

   (2)非精确线搜索准则

   正是因为精确线搜索存在的这些问题,我们产生了做非精确线搜索的想法.对于步长的选取准则,我们会自然地产生第二个简单的想法,即取 a k a_{k} ak,使其满足如下表达式

   f ( x k + α k d k ) < f ( x k ) f(x_k+\alpha_k d_k)<f(x_k) f(xk+αkdk)<f(xk)

   在下图所示的例子中满足上式表达式的a取值范围为 ( 0 , β 1 )、 (0,β_1)、 0β1)、 ( β 2 , β 3 ) (β_2,β_3) β2β3,因此,仅通过以上表达式的准则来确定a的取值范围,得到的a可能会接近与区间 ( 0 , β 1 ) (0,β_1) 0β1的左端点0或者区间 ( β 2 , β 3 ) (β_2,β_3) β2β3的右端点 β 3 β_3 β3,因此,我们应该增加一些新的准则来使得获取的a不太接近区间 ( 0 , β 1 ) (0,β_1) 0β1的左端点或者区间 ( β 2 , β 3 ) (β_2,β_3) β2β3的右端点。

   常用的准则有 Armijo 准则、Goldstein 准则、Wolfe 准则、强Wolfe 准则等,些常用的准则.这些准则都是建立在 f ( x k + α k d k ) f(x_k+\alpha_k d_k) f(xk+αkdk)在零点处的斜率 ∇ f ( x k ) T d k \nabla f\left(x_{k}\right)^\mathrm{T}d_k f(xk)Tdk为负值的前提上,否则,说明 d k d_k dk不是下降方向,不应被采用


   ① Armijo 准则

   f ( x k + α d k ) ⩽ f ( x k ) + ρ ∇ f ( x k ) T d k α , ρ ∈ ( 0 , 1 ) . f(x_k+\alpha d_k)\leqslant f(x_k)+\rho \nabla f\left(x_{k}\right)^{\mathrm T}d_k\alpha,\quad\rho\in(0,1). f(xk+αdk)f(xk)+ρf(xk)Tdkα,ρ(0,1).

   一般地,可取 ρ \rho ρ 1 0 − 3 10^{-3} 103或更小的值,上式的右边是一个关于a的线性函数,由于 d k d_k dk是下降方向,满足 ∇ f ( x k ) T d k \nabla f\left(x_{k}\right)^\mathrm{T}d_k f(xk)Tdk<0,该函数是关于a的减函数. 只要 a不取得太小,这个不等式可以保证新迭代点 x k + α d k x_k+\alpha d_k xk+αdk的函数值较之点 a k a_k ak的函数值有一定量的下降.满足该条件的点下图所示区间 ( 0 , β 4 ] (0,β_4] 0β4] [ β 5 , β 6 ] [β_5,β_6] [β5β6]中的点。

   Armijo 准则可以避免α取得太大而接近于仅使用 f ( x k + α k d k ) < f ( x k ) f(x_k+\alpha_k d_k)<f(x_k) f(xk+αkdk)<f(xk)准则时图中的右端点的值.

   有几种方法可以避免α取得太小而接近于仅使用 f ( x k + α k d k ) < f ( x k ) f(x_k+\alpha_k d_k)<f(x_k) f(xk+αkdk)<f(xk)准则时图中左端点的值,它们分别与Armijo 准则结合,构成如下准则


   ② Goldstein准则

   f ( x k + α d k ) ⩽ f ( x k ) + ρ ∇ f ( x k ) T d k α , f ( x k + α d k ) ⩾ f ( x k ) + ( 1 − ρ ) ∇ f ( x k ) T d k α , \begin{array}{l}f(x_k+\alpha d_k)\leqslant f(x_k)+\rho \nabla f\left(x_{k}\right)^\mathrm{T}d_k\alpha,\\ f(x_k+\alpha d_k)\geqslant f(x_k)+(1-\rho)\nabla f\left(x_{k}\right)^\mathrm{T}d_k\alpha,\end{array} f(xk+αdk)f(xk)+ρf(xk)Tdkα,f(xk+αdk)f(xk)+(1ρ)f(xk)Tdkα,

   其中ρ ∈(0,1/2),满足Goldstein准则的点是下图所示 ( β 7 , β 4 ] (β_7,β_4] β7β4] [ β 5 , β 6 ] [β_5,β_6] [β5β6]中的点区间中的点。

   Goldstein 准则是 Armijo 准则的改进版,增加了一个上限条件,限制步长不能太小,Goldstein准则可以避免α取得太大而接近于右端点的值,又可避免取得太小而接近于左端点的值。


   ③ Wolfe准则

   f ( x k + α d k ) ⩽ f ( x k ) + ρ ∇ f ( x k ) T d k α , ∇ f ( x k + α d k ) T d k ⩾ σ ∇ f ( x k ) T d k , \begin{array}{l}f(x_k+\alpha d_k)\leqslant f(x_k)+\rho\nabla f\left(x_{k}\right)^\mathrm{T}d_k\alpha,\\ \nabla f(x_k+\alpha d_k)^{\mathrm T}d_k\geqslant\sigma \nabla f\left(x_{k}\right)^\mathrm{T}d_k,\end{array} f(xk+αdk)f(xk)+ρf(xk)Tdkα,f(xk+αdk)Tdkσf(xk)Tdk,

   其中的σ和ρ满足1>σ >ρ>0,满足Wolfe 准则的点为下图所示区间 ( β 7 , β 4 ] (β_7,β_4] β7β4] [ β 8 , β 9 ] [β_8,β_9] [β8β9] [ β 10 , β 6 ] [β_{10},β_6] [β10β6]中的点.

   Wolfe准则中的第二条是要求 f ( x k + α d k ) f(x_k+\alpha d_k) f(xk+αdk)在点a的斜率不能小于 f ( x k + α d k ) f(x_k+\alpha d_k) f(xk+αdk)在零点斜率 ∇ f ( x k ) T d k \nabla f\left(x_{k}\right)^{\mathrm{T}}d_{k} f(xk)Tdk的σ倍。假设在零点的斜率为下图中绿色曲线所示的-p1,则在点a的斜率应该位于下图中灰色扇形所覆盖的区域内。

   我认为可以这样理解这条准则,若在a的斜率不在下图中扇形区域内,可以认为函数值在a处的下降率较大,稍微增大a的值,函数值会有较大的下降,因此,更趋向于取当前位置右侧的值作为a值,因为其位置处函数值更小。

   在Wolfe准则中的第二条中,即使σ取为0,亦无法保证满足准则的点接近精确线搜索的结果。因为,其仅仅限制了负斜率较高的情况,即函数值在a点处快速下降的区域,而没有对正斜率较大的区域进行限制,即,函数值在a处快速上升的区域,

   若采用下面的强 Wolfe 准则, σ取得越小,满足准则的α越接近精确线搜索的结果


   ④ 强Wolfe准则

   f ( x k + α d k ) ⩽ f ( x k ) + ρ ∇ f ( x k ) T d k α , ∣ ∇ f ( x k + α d k ) T d k ∣ ⩽ − σ ∇ f ( x k ) T d k , \begin{array}{l}f(x_k+\alpha d_k)\leqslant f(x_k)+\rho \nabla f\left(x_{k}\right)^\mathrm{T}d_k\alpha,\\[8pt]| \nabla f(x_k+\alpha d_k)^{\mathrm T}d_k|\leqslant-\sigma \nabla f\left(x_{k}\right)^\mathrm{T}d_k,\end{array} f(xk+αdk)f(xk)+ρf(xk)Tdkα,∣∇f(xk+αdk)Tdkσf(xk)Tdk,

   从上图可以看出强 Wolfe 准则对正斜率和负斜率较大的区域都进行了限制,且 σ取得越小,满足强 Wolfe准则的α越接近精确线搜索的结果

   其中的σ和ρ满足1>σ >ρ>0,实际应用中控制α不要太小的准则可以不用,因为在线搜索时,只要给定 α k α_k αk一个下界即可.


在这里插入图片描述

在这里插入图片描述


   参考资料:

   1、机器人中的数值优化

   2、梯度下降

   3、数值最优化方法(高立 编著)


相关文章:

机器人中的数值优化(三)—— 无约束最优化方法基础、线搜索准则

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考&#xff0c;主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等&#xff0c;本系列文章篇数较多&#xff0c;不定期更新&#xff0c;上半部分介绍无约束优化&#xff0c;…...

vulnhub靶场之bluemoon

1.信息收集 存活主机进行探测&#xff0c;发现主机192.168.239.176存活。 对主机192.168.239.176进行端口扫描&#xff0c;发现21、22、80端口 访问http://192.168.239.176&#xff0c;并查看源码未发现可利用的行为。 进行目录扫描发现可疑路径/hidden_text 浏览器访问h…...

VTK 几何体连通区域分析 vtkPolyDataConnectivityFilter

前言&#xff1a; vtkPolyDataConnectivityFilter 使用过&#xff0c;但网上没有看到完事的教程&#xff1b;这里整理一下&#xff1b; 提取数据集中连通的多边形数据。 该类是一个滤波器&#xff0c;提取cell&#xff08;区域&#xff09; - 拥有公共点或者满足某个阈值 该类…...

scss、css样式中使用变量的方法;Vue动态改变css等样式文件中的变量

目录 一、问题 二、原因及解决方法 三、总结 一、问题 1.遇到一些样式 设置的值都是重复的不想重复写&#xff0c;想和js一样定义一个常量&#xff0c;然后直接引用这个常量。 2.想要在js中动态设置样式中的值&#xff0c;在 css、scss等样式表中直接使用。 二、原因及解…...

数据治理在学术上的发展史以及未来展望

数据治理是大数据领域中非常重要的一环&#xff0c;从早期的学术研究到如今的各大企业落地实践&#xff0c;经历了漫长的过程&#xff0c;数据治理的实践落地本身也是一场马拉松。 从百度学术通过精确关键词匹配&#xff0c;搜索中文期刊的“数据治理” 和外文期刊的“data gov…...

【搭建博客】宝塔面板部署Typecho博客,并发布上线访问

目录 前言 1.安装环境 2.下载Typecho 3.创建站点 4.访问Typecho 5.安装cpolar 6.远程访问Typecho 7.固定远程访问地址 8.配置typecho 前言 Typecho是由type和echo两个词合成的&#xff0c;来自于开发团队的头脑风暴。Typecho基于PHP5开发&#xff0c;支持多种数据库&…...

【Spring篇】IOC相关内容

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、bean基础配置 1.bean基础配置(id与class) 2.bean的name属性 3.bean作用范围scope配置 二、bean实例化 1.构造方法实例化 2.分析Spring的错误信息 3.静态工厂实例化 4.实例工厂 5.FactoryBean 三…...

Python超矩形

文章目录 距离函数矩形分割 Rectangle是 scipy.spatial中封装的类&#xff0c;其构造函数只需输入最小值和最大值的数组即可&#xff0c;并且可通过内置的 volume方法计算广义的体积。 from scipy.spatial import Rectanglerec Rectangle((0,0), (5,5)) print(rec.maxes) …...

【软考数据库】第五章 计算机网络

目录 5.1 网络功能和分类 5.2 OSI七层模型 5.3 TCP/IP协议 5.4 传输介质 5.5 通信方式和交换方式 5.6 IP地址 5.7 IPv6 5.8 网络规划和设计 5.9 其他考点补充 5.10 网络安全技术 5.11 网络安全协议 前言&#xff1a; 笔记来自《文老师软考数据库》教材精讲&#xff…...

深眸科技|深度学习、3D视觉融入机器视觉系统,实现生产数智化

随着“中国制造2025”战略加速落实&#xff0c;制造业生产线正在加紧向智能化、自动化和数字化转型之路迈进。而人工智能技术的兴起以及边缘算力持续提升的同时&#xff0c;机器视觉及其相关技术也在飞速发展&#xff0c;并不断渗透进工业领域&#xff0c;拓展应用场景的同时&a…...

DateFormat使用时需要注意:多线程下需要特殊处理

前言 工作或学习过程中难免会接触到时间&#xff08;Date&#xff09;相关的内容&#xff0c;比如String类型转为Date类型&#xff0c;或者Date类型转为String类型&#xff0c;jdk为我们提供了一套完善的日期格式化工具&#xff0c;DateFormat类&#xff0c;使用者可以使用该接…...

Packet Tracer - 研究直连路由

Packet Tracer - 研究直连路由 目标 第 1 部分&#xff1a;研究 IPv4 直连路由 第 2 部分&#xff1a;研究 IPv6 直连路由 拓扑图 背景信息 本活动中的网络已配置。 您将登录路由器并使用 show 命令发现并回答以下有关直连路由的问题。 注&#xff1a;用户 EXEC 密码是 c…...

大专生程序员找工作的一点小建议 知识分享 经验分享

最近呢有人在私信我 就问我说我呢是一个大专生 大专毕业 学历呢也不是很好 我但是我学的是这个计算机 这样一个专业 然后呢现在找工作找不到 就这样的一个要求 让我们呢给一些建议 当然就是私底下在网上聊吗 就会给 也相信 我的一个建议是什么样的 就是你首先你要去找工作的 首…...

PyCaret:低代码自动化的机器学习工具

PyCaret简介 随着ChatGPT和AI画图的大火&#xff0c;机器学习作为实现人工智能的底层技术被大众越来越多的认知&#xff0c;基于机器学习的产品也越来越多。传统的机器学习实现方法需要较强的编程能力和数据科学基础&#xff0c;这使得想零基础尝试机器学习变得非常困难。 机器…...

【Hello Network】网络编程套接字(三)

作者&#xff1a;小萌新 专栏&#xff1a;网络 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客简介&#xff1a;简单介绍下各种类型的Tcp协议 各种类型Tcp服务器 多进程版的TCP网络程序捕捉SIGCHLD信号让孙子进程执行任务 多线程TCP网络程序线程池版多线程TCP网络…...

3.4 只读存储器

学习目标&#xff1a; 学习只读存储器&#xff08;ROM&#xff09;的目标可以包括以下内容&#xff1a; 了解ROM的基本概念、分类以及适用场景。掌握ROM的电路原理、逻辑结构和读取方式。熟悉ROM的编程方式和编程工具。理解ROM与EPROM、EEPROM和闪存的区别和联系。了解ROM在计…...

从后端开发转大数据开发怎么样?

很多做后端的小伙伴&#xff0c;在某一个瞬间&#xff0c;都想转行大数据&#xff0c;那这种想法可行嘛&#xff1f; 转大数据的最初原因很简单&#xff0c;就是好几个同事都转了&#xff0c;他们的收入瞬间提高了好多&#xff0c;于是在同事的内推我也就跟着转了&#xff0c;…...

编程式导航路由跳转到当前路由(参数不变),多次执行会抛出NavigatorDuplicated的禁告错误?

重写push与replace方法 编程式导航路由跳转到当前路由&#xff08;参数不变&#xff09;&#xff0c;多次执行会抛出NavigatorDuplicated的禁告错误&#xff1f; 路由跳转有俩种形式&#xff1a;声明式导航&#xff0c;编程式导航 声明式导航没有这类问题的&#xff0c;因为…...

AppArmor无内核及系统日志的问题及解决

在AppArmor中&#xff0c;正常情况下&#xff0c;一旦违反了规则&#xff0c;是能够在内核及系统日志中看到相关信息的。比如&#xff1a;在Ubuntu下正常产生的日志信息&#xff08;示例&#xff09;如下&#xff1a; kernel: [140321.028000] audit(1191433716.584:1578): t…...

本地更改配置ssh密钥和更改github网址

配置 SSH 密钥以进行身份验证&#xff0c;可以遵循以下步骤&#xff1a; 生成SSH密钥 打开 Git Bash 终端 在 Windows 上&#xff0c;可以打开 Git Bash 终端。通常&#xff0c;可以在开始菜单中搜索 Git Bash 并启动它。一旦打开了 Git Bash 终端&#xff0c;将进入一个基于…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...