如何用随机方法求解组合优化问题(四)

这篇具有很好参考价值的文章主要介绍了如何用随机方法求解组合优化问题(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模拟退火算法中的退火过程是什么

这是一篇笔记,是对于B站up主马少平的视频(第四篇 如何用随机方法求解组合优化问题(四))的学习与记录。

这篇笔记还没有介绍到模拟退火算法,而是记录退火这一物理过程以及相关的公式。

最主要的内容是如何将退火过程的特点迁移到后续的算法设计中。

退火是什么

退火是固体物理学中的一个概念,它描述了固体材料在高温下逐渐冷却的过程,以使其从高能态逐渐转变为低能态。这个概念在模拟退火算法中得到了应用,用于寻找问题的最优解。

退火有以下过程:

  1. 加热阶段(高温阶段):在退火过程开始时,固体物体会被加热到非常高的温度。高温会使原子或分子的热运动剧烈,突破原本的位置限制。这种高温状态下,固体处于高能态,原子或分子的位置非常不稳定。
  2. 冷却阶段(退火阶段):随着时间的推移,温度逐渐降低。在温度逐渐降低的过程中,原子或分子的热运动减缓,逐渐趋向于更稳定的位置。随着温度的降低,固体会逐渐从高能态转变为低能态,原子或分子逐渐排列成更有序的结构。
  3. 冷却到基底温度(低温阶段):当温度足够低时,固体达到了最低能态,原子或分子的运动几乎停止,形成了稳定的结晶态。此时,固体的内部结构和排列达到了最优状态,对应着系统的全局最优解。

在模拟退火算法中,这个物理过程被用来模拟在解空间中寻找最优解的过程。算法从一个初始解(高温状态)开始,随机生成新的解(状态),并根据一定的准则决定是否接受新解。随着算法的迭代,模拟退火算法会逐渐减小“温度”,也就是接受劣解的概率,从而使算法在解空间中逐渐趋向于全局最优解,就像实际的退火过程一样。

退火过程

在退火过程中,状态转换的标准为:

  • 如果 \(\Delta E \le 0\) ,则新状态被接受;

  • 如果 \(\Delta E > 0\) ,则新状态被接受的概率为:

    \[P = e^{-\frac{\Delta E}{KT}} \]

其中 \(\Delta E\) 是新状态的内能和初始状态的内能的差值,\(T\) 是绝对温度,\(K>0\) 是玻尔兹曼常数。

在给定的温度 \(T\) 下,当进行足够多次的状态转换后,系统将达到一种热平稳状态

此时系统处于某个状态 \(i\) 的概率 \(P_i(T)\) 由 Boltzmann 分布给出:

\[P_i(T)=\frac{e^{-\frac{E(i)}{KT}}}{Z_T} \]

其中 \(Z_T=\sum\limits_{j\in S}e^{-\frac{E(j)}{KT}}\) 为归一化因子。

退火过程分析

同一温度下两个内能不同的状态
  • 假设两个状态的内能 \(E(i)<E(j)\)

    \[\begin{align*} P_i(T)-P_j(T) &= \frac{e^{-\frac{E(i)}{KT}}}{Z_T} - \frac{e^{-\frac{E(j)}{KT}}}{Z_T} \\ &= \frac{1}{Z_T}e^{-\frac{E(i)}{KT}} \left( 1-\frac{e^{-\frac{E(j)}{KT}}}{e^{-\frac{E(i)}{KT}}} \right ) \\ &= \frac{1}{Z_T}e^{-\frac{E(i)}{KT}} \left ( 1-e^{-\frac{E(j)-E(i)}{KT}} \right ) \end{align*} \]

    因为 \(E(i)<E(j)\),可以推出\(0<e^{-\frac{E(j)-E(i)}{KT}}<1\),于是有 \(P_i(T)-P_j(T) >0\),即 \(P_i(T)>P_j(T)\)

    结论:在任何温度 \(T\) 下,系统处于低内能的状态的概率大于处于高内能的状态的概率。

高温下的情况
\[\begin{align*} \lim_{T\to \infty}P_i(T) &= \lim_{T\to \infty} \left[ \frac{e^{-\frac{E(i)}{KT}}}{\sum\limits_{j\in S}e^{-\frac{E(j)}{KT}}} \right ] \\ &= \frac{1}{|S|} \end{align*} \]

​ 其中 \(|S|\) 表示系统所有可能的状态数。

结论:当温度趋近于无穷大时,系统处于各个状态的概率相等,处于均匀分布,与所处状态的内能无关。

低温下的情况
\[\begin{align*} \lim_{T\to 0}P_i(T) &= \lim_{T\to 0} \left[ \frac{e^{-\frac{E(i)}{KT}}}{\sum\limits_{j\in S}e^{-\frac{E(j)}{KT}}} \right] = \lim_{T\to 0} \left[ \frac{e^{-\frac{E(i)-E_m}{KT}}}{\sum\limits_{j\in S}e^{-\frac{E(j)-E_m}{KT}}} \right] \\ &= \lim_{T\to 0} \left[ \frac{e^{-\frac{E(i)-E_m}{KT}}}{\sum\limits_{j\in S_m}e^{-\frac{E(j)-E_m}{KT}}+\sum\limits_{j\notin S_m}e^{-\frac{E(j)-E_m}{KT}}} \right] = \lim_{T\to 0} \left[ \frac{e^{-\frac{E(i)-E_m}{KT}}}{\sum\limits_{j\in S_m}e^{-\frac{E(j)-E_m}{KT}}} \right] \\ &= \begin{cases} \frac{1}{|S_m|}, & if \quad i\in S_m \\ 0, & if \quad i \notin S_m \end{cases} \end{align*} \]

​ 其中 \(S_m\) 表示系统最小内能状态的集合,\(E_m\) 表示系统的最小内能。

结论:当温度趋近于绝对0度时,系统以等概率趋近于几个内能最小的状态之一,而系统处于其它状态的概率为0。即系统达到内能最小状态的概率为1。

温度缓慢下降时的情况
\[\begin{align*} \frac{\partial P_i(T)}{\partial T} &= \frac{\partial}{\partial T} \left[ \frac{e^{-\frac{E(i)}{KT}}}{Z_T} \right] \\ &= \frac{P_i(T)}{KT^2}[E(i)-\overline{E_T}] \begin{cases} >0 \quad if \ E(i)>\overline{E_T}, \quad 高能状态 \\ <0 \quad if \ E(i)<\overline{E_T}, \quad 低能状态 \end{cases} \end{align*} \]

​ 其中 \(\overline{E_T}=\sum\limits_{j\in S}E(j)P_j(T)\) 为状态内能的平均值。

结论:系统处于低能状态的概率随着温度的下降单调上升,而系统处于高能状态的概率随着温度的下降单调下降。

分析

  • 随着温度的缓慢下降,由于处于低能状态的概率越来越大,处于高能状态的概率越来越小,导致状态的内能平均值 \(\overline{E_T}\) 随温度下降而下降,从而使得更多的状态属于高能状态,越来越少的状态属于低能状态。最终,当温度降低到趋近于绝对0度时,只有具有最小内能的状态才属于低能状态。
  • 这也从另一个角度说明了当温度趋近于绝对0度时,为什么系统处于最小内能状态的概率为1,这与我们前面的分析是一致的。

退火过程总结

  • 在温度不变时,处于低内能状态的概率大于处于高内能状态的概率;

  • 当温度趋于无穷大时,系统等概率处于各个状态;

  • 当温度趋于绝对0度时,系统达到内能最小状态的概率为1;

  • 当温度缓慢下降时,系统处于低能状态的概率随着温度的下降单调上升,而系统处于高能状态的概率随着温度的下降单调下降。

  • 退火过程的三个条件:

    • 初始温度必须足够高;
    • 在每个温度下状态的交换必须足够充分;
    • 温度 \(T\) 的下降必须足够缓慢。

退火过程的两点启示

  • Metropolis准则
    • 如果 \(E(j)\le E(i)\),则状态转换被接受;
    • 如果 \(E(j)>E(i)\),则状态转移被接受的概率为:\(e^{\frac{E(i)-E(j)}{KT}}\)

其中 \(i\) 是旧状态,\(j\) 是新状态。文章来源地址https://www.toymoban.com/news/detail-653420.html

  • 当温度缓慢趋于绝对0度时,系统以概率1达到内能最小状态。

到了这里,关于如何用随机方法求解组合优化问题(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何用随机方法求解组合优化问题(一)

    优化问题 设 (x) 是决策变量, (D) 是 (x) 的定义域, (f(x)) 是指标函数, (g(x)) 是约束条件。则优化问题可以表示为求解满足 (g(x)) 的 (f(x)) 最小值问题。即: [min_{xin D}(f(x)|g(x))] 组合优化问题 如果在定义域 (D) 上,满足约束条件 (g(x)) 的解的总数是有限的,则优

    2024年02月13日
    浏览(36)
  • 如何用随机方法求解组合优化问题(七)

    这是一篇笔记,是对于B站up主马少平的视频(第四篇 如何用随机方法求解组合优化问题(七))的学习与记录。 一个商人要访问 (n) 个城市,每个城市访问一次,并且只能访问一次,最后再回到出发城市。 问如何规划才能使得行走的路径长度最短。 旅行商问题的解空间非

    2024年02月12日
    浏览(42)
  • OM | 强化学习 + 约束规划求解组合优化问题

    组合优化在航空航天、交通规划以及经济学等众多学科领域中有广泛应用,其目标是在有限集中寻找最优解。然而状态空间过大的问题让目前组合优化变得棘手。在过去的几年中,使用深度强化学习(deep reinforcement learning,DRL)解决组合优化问题受到广泛关注。然而,现有的

    2024年02月10日
    浏览(48)
  • 模拟退火算法与遗传算法求解多目标优化问题的算法实现(数学建模)

    模拟退火算法是一种全局优化算法,解决的问题通常是找到一个最小化(或最大化)某个函数的全局最优解。它通过模拟物理退火的过程来搜索解空间,在开始时以一定的温度随机生成初始解,然后一步步降低温度,同时在当前解的周围随机搜索新的解,并根据一定概率接受

    2024年02月02日
    浏览(57)
  • 机器学习笔记之最优化理论与方法(九)无约束优化问题——常用求解方法(下)

    上一节介绍了 牛顿法、拟牛顿法 。本节将继续以 拟牛顿法 为基础,介绍 DFP , BFGS text{DFP},text{BFGS} DFP , BFGS 方法 。 经典牛顿法缺陷与修正牛顿法 关于 经典牛顿法 中关于 下降方向 D k ( k = 1 , 2 , ⋯   , ∞ ) mathcal D_k(k=1,2,cdots,infty) D k ​ ( k = 1 , 2 , ⋯ , ∞ ) 的 数学符号 表

    2024年02月09日
    浏览(54)
  • 机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

    本节将介绍 无约束优化问题 的常用求解方法,包括 坐标轴交替下降法、最速下降法 。 本节是对优化算法(十~十七)最速下降法(梯度下降法)的理论补充,其中可能出现一些定理的 证明过程 这里不再赘述,并在相应位置 附加链接 。 从本节开始,将介绍 四大类 无约束优化问

    2024年02月10日
    浏览(51)
  • 优化|一阶方法:求解不具有凸性和lipschitz连续性的复合问题

    论文解读者:陈康明,赵田田,李朋 对于大多数一阶算法,我们会在收敛性分析时假设函数是凸的,且梯度满足全局 Lipschitz 条件。而本文中,对于某一类特殊函数。我们不仅不要求函数是凸的,也不再要求梯度满足全局 Lipschitz 条件。 考虑复合优化问题 ( P ) min ⁡ { Ψ ( x

    2024年02月12日
    浏览(51)
  • 【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 CCGKKT 2.2  CCGSD 2.3  SPKKT 2.4 SDSP 2.5 

    2023年04月15日
    浏览(58)
  • C# PSO 粒子群优化算法 遗传算法 随机算法 求解复杂方程的最大、最小值

    复杂方程可以自己定义,以下是看别人的题目,然后自己来做 以下是计算结果

    2024年02月09日
    浏览(43)
  • 运筹系列87:julia求解随机动态规划问题入门

    随机动态规划问题的特点是: 有多个阶段,每个阶段的随机性互不相关,且有有限个实现值 (finite realizations) 具有马尔可夫性质,即每个阶段只受上一个阶段影响,可以用状态转移方程来描述阶段与阶段之间的变化过程。 我们使用julia的SDDP算法包来求解随机动态规划问题。

    2024年01月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包