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

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

模拟退火算法

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

前置知识回顾

【回顾】:局部最优问题

在局部搜索问题中,可能会陷入局部最优解(如上图中的B、C),解决思路是:以概率接受差解

【回顾】:退火过程中

从状态 \(i\) 转换为状态 \(j\) 的转换准则:

  • 如果 \(E(j)\le E(i)\),则状态转换被接受;

  • 如果 \(E(j)>E(i)\),则状态转移被接受的概率为:

    \[e^{\frac{E(i)-E(j)}{KT}} \]

根据上述特点,可以发现局部搜索和退火过程存在一定关联,可以尝试将局部搜索与退火过程结合用于求解组合优化问题。

组合优化问题与退火过程的类比

算法设计

基本思想

在局部搜索算法中,从领域中随机选择一个解 \(j\) ,如果该解的指标函数好于当前解 \(i\) 的指标函数,则以概率1接受该解,否则按照以下概率接受该解:

\[e^{\frac{f(i)-f(j)}{t}} \]

这里假定求解最小解,其中 \(f(i)\) 为解 \(i\) 的指标函数,\(t\) 为控制参数,也称作温度。

伪代码

  1. 随机选择一个解 \(i\)\(k=0\)\(t_0=T_{\max}\)(初始温度),计算指标函数 \(f(i)\).
  2. \(t=t_k\),如果满足结束条件,则转(15).
  3. Begin
  4.   如果在该温度内达到了平衡条件,则转(13).
  5.   Begin
  6.     从 \(i\) 的领域 \(N(i)\) 中随机选择一个解 \(j\) .
  7.     计算指标函数 \(f(j)\).
  8.     如果 \(f(j)\le f(i)\),则接受 \(j\)\(i=j\)\(f(i)=f(j)\),转(4).
  9.     否则计算 \(P_{i\Rightarrow j}(t)=e^{-\frac{f(j)-f(i)}{t}}\)
  10.       如果 \(Random(0, 1)<P_{i\Rightarrow j}(t)\),则接受 \(j\)\(i=j\)\(f(i)=f(j)\).
  11.     转(4).
  12.   End
  13.   对 \(t\) 降温,\(t_{k+1}=Drop(t_k)\)\(k=k+1\),转(2).
  14. End
  15. 输出结果.
  16. 结束.

分析

  • 首先随机选择一个解,比如旅行商问题中,先随机生成一条路线。
  • 初始温度需要设置一个较大的数,这是因为“接受较差的解”的概率与温度有关,初始温度设置较大在某种程度上可以帮助跳出局部最优解,而提高了找到全局最优解的可能性。
  • 指标函数用于衡量解的优良性,比如在旅行商问题中是“路线长度”。
  • 算法包含内外两层循环:
    • 内循环为“保持温度不变,在邻域内按照退火的特点,尝试找到可以接受的解”。如果是好解则直接接受,如果是差解则按概率接受。
    • 外循环负责“降温”,每次降温后,如果还没达到平衡条件,则继续寻找解。

以上只是算法的简单框架,还有一些问题需要解决。

算法需要解决的问题

  1. 初始温度 \(t_0\)
  2. 温度 \(t\) 的衰减函数
  3. 算法的终止标准
  4. 每个温度 \(t\) 下的马尔可夫链长度 \(L_k\)

只有这些参数确定之后,算法才算完整,才能用于解决实际问题。

算法性质

与退火过程一样,当满足条件时:

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

模拟退火算法以概率1收敛到最优解。文章来源地址https://www.toymoban.com/news/detail-653652.html

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

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

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

相关文章

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

    这是一篇笔记,是对于B站up主马少平的视频(第四篇 如何用随机方法求解组合优化问题(四))的学习与记录。 这篇笔记还没有介绍到模拟退火算法,而是记录退火这一物理过程以及相关的公式。 最主要的内容是如何将退火过程的特点迁移到后续的算法设计中。 退火是固体

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

    组合问题由于其可能的解的数量十分庞大,无法用穷举法求解最优解。 局部搜索算法旨在减少复杂度的情况下寻找最优解,尽管其不一定能够找到全局最优解,但是往往可以找到满意的局部最优解。 类似于盲人爬山,无法看到全局的景象,但是有拐杖可以探测临近的区域。

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

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

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

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

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

    上一节介绍了 牛顿法、拟牛顿法 。本节将继续以 拟牛顿法 为基础,介绍 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日
    浏览(41)
  • 机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

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

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

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

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

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

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

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

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

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

    2024年01月16日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包