Metropolis 算法又叫 Metropolis 抽样,是模拟退火算法的基础,在早期的科学计算中蒙特卡洛方法(Monte Carlo)是对大量原子在给定温度下的平衡态的随机模拟,当蒙特卡洛算法计算量偏大

1953 年,Metropolis 提出重要性采样,即以概率来接受新状态,而不是使用完全确定的规则,称为 Metropolis 准则,可以显著减小计算量

假设前一状态为 x(n)x(n),系统受到一定扰动,状态变为 x(n+1)x(n+1),相应地,系统能量由 E(n)E(n) 变为 E(n+1)E(n+1)。 定义系统由 x(n)x(n) 变为 x(n+1)x(n+1) 的接收概率为 pp(probability of acceptance):

p=⎧⎩⎨1,exp(−E(n+1)−E(n)T),E(n+1)<E(n)E(n+1)≥E(n)

p=\left\{ \begin{array}{l} 1,&E(n+1)\lt E(n)\\ \exp(-\frac{E(n+1)-E(n)}{T}),&E(n+1)\geq E(n) \end{array} \right.

当状态转移之后,如果能量减小了,那么这种转移就被接受了(以概率 1 发生)。如果能量增大了,就说明系统偏离全局最优位置(能量最低点,模拟退火算法所要寻找的就是密度最高能量最低的位置)更远了,此时算法不会立即将其抛弃,而是进行概率判断:首先在区间 [0,1][0,1] 产生一个均匀分布的随机数 ε\varepsilon(np.random.rand()),如果 ε<p\varepsilon

(p<script type="math/tex" id="MathJax-Element-497">p</script> 是前面定义的接受概率),这种转移也将被接受,否则拒绝转移,进入下一步,如此循环。

这正是 Metropolis 算法,其核心思想是当能量增加时以一定概率接收,而不是一味的拒绝;

Metropolis 采样与蒙特卡洛算法相关推荐

  1. 蒙特卡洛算法_MCMC、蒙特卡洛近似和Metropolis算法简介

    MCMC 是Markov Chain Monte Carlo 的简称,但在传统模拟中有一个很重要的假设是样本是独立的(independent samples),这一点在贝叶斯统计尤其是高纬度的模型中很 ...

  2. python实现Metropolis采样算法实例

    马尔可夫链蒙特卡罗(Markov Chain Monte Carlo ,MCMC )方法主要算法有:Metropolis-Hastings (MH)算法.Metropolis采样算法,以及吉布斯采样方 ...

  3. Metropolis 采样算法

    前言 马尔科夫链 概念描述 转移概率矩阵 平稳分布 为何要用马尔科夫链 Metropolis 采样算法简介 Metropolis 采样算法思路 Metropolis 采样算法步骤 Metropolis ...

  4. 马尔科夫链蒙特卡洛算法(python)

    文章目录 1 蒙特卡洛算法 1.1 基本思想 1.2 蒙特卡洛积分 1.2.1 求π\piπ 1.2.2 求积分 1.2.2.1 一维积分 1.2.2.2 高维积分 1.3 蒙特卡洛期望估计 1.4 ...

  5. python实现蒙特卡洛算法_用Python实现基于蒙特卡洛算法小实验

    用Python实现基于蒙特卡洛算法小实验 蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯· 诺伊曼 ,他在20世纪40年代中期用驰名世界的赌城- ...

  6. python实验原理_Python实现蒙特卡洛算法小实验过程详解

    蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城-摩纳哥的蒙特卡洛来命名这种方法. 通俗的解释一 ...

  7. 【Reinforcement Learning】蒙特卡洛算法

    强化学习相关的蒙特卡洛算法的介绍.此处笔记根据B站课程,王树森老师的强化学习记录而来.6.蒙特卡洛 Monte Carlo(Av374239425,P6)_哔哩哔哩_bilibili 1.Monte ...

  8. 程序实现蒙特卡洛算法计算PI值和积分

    蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法.是 ...

  9. 蒙特卡洛算法具体是什么

    蒙特卡洛算法是一种通过随机采样来计算数学问题的方法,通常用于处理复杂.高维度的问题.它的基本思想是通过随机抽样生成大量样本,根据样本的统计规律来估计问题的解. 在蒙特卡洛算法中,我们通常需要定义一个随 ...

最新文章

  1. 2435: [Noi2011]道路修建
  2. struts struts.xml
  3. Java日志框架-Spring中使用Logback(Spring/Spring MVC)
  4. 回顾2019年5个重大宕机事件
  5. 读取csv绘制直方图_[python]用tushare接口绘制Bollinger Bands
  6. 管理学中的知名定律之阿尔巴德定理
  7. 数据结构----归并排序
  8. liunx宝塔配置https_宝塔面板安装教程
  9. 数据结构期末复习之归并排序和基数排序
  10. 知识也许是先人留给后辈最大的财富
  11. vnc远程控制软件配置,vnc远程控制软件怎么配置,教程详解
  12. git reset --soft命令的使用
  13. 联想服务器装系统不能加载硬盘,联想电脑重装系统读不出硬盘怎么办
  14. [转贴]民国记者有多牛:揭黑损人骂街是常事
  15. 6.5编程实例-立方体透视投影
  16. 同步上下文(SynchronizationContext) 和 C#中跨线程更新UI的方法总结
  17. 执行unzip命令报错Archive: home.zip End-of-central-directory signature not found. Either this file is
  18. 【科研技巧】Mac下使用SciDavis绘制科研论文图教程(安装及使用)
  19. 【Java进阶营】Java是什么?Java的特点有哪些?
  20. 【持续更新】JavaScript常见面试题整理

热门文章

  1. Linux qt5无法输入中文的解决办法
  2. 球球大作战c语言源代码,球球大作战,源码分享
  3. java base class,Java; casting base class to derived class
  4. 从EXCEL中读出数据到数据库中
  5. 面向对象编程(七):接口(抽象类)
  6. OpenCV精进之路(十二):详解掩膜mask
  7. 解决wordpress后台管理访问速度慢的问题
  8. Linux内核调度——《奔跑吧Linux内核》学习笔记
  9. 2019牛客多校第四场 I题 后缀自动机_后缀数组_求两个串de公共子串的种类数
  10. Ajax提交表单数据(包含文件)