蒙蒂卡洛与圣杯:二次更快的模拟

news2025/1/16 1:59:51

一、说明

        针对不确知的,或者是 混沌问题,如果存在解决,什么方法最有效?本文针对蒙特卡洛法展开讨论。

        你有没有试过把一个糟糕的糖果包装纸扔进垃圾桶,即使你把它正好放在垃圾箱上方,皱巴巴的塑料也很可能会旋转并落在它旁边。仔细观察会发现,当你放开它时,塑料片在它下降时推动它下面的空气,空气流过床单的脊和皱纹,使其旋转并侧向移动。即使是最微小的气流或手上最轻微的额外脉冲也可能显着改变着陆位置。这是一个非常复杂的过程,涉及湍流和混沌,这可能是一个熟悉的例子,因为输出对初始条件高度敏感。

     

将皱巴巴的糖果包装纸放在垃圾箱上方并不能保证它会落在垃圾箱内。

二、混沌问题解决之蒙特卡洛方法

        现在让我们假设你对它着迷,你得到一些铅笔和一叠A4纸,并尝试计算出你成功的机会是多少,给定参数,例如:塑料包装的几何形状,气压和温度,高度和释放角度,以及垃圾桶直径,仅举几例。我并不是要劝阻你,但即使你找到了控制方程,它们也会非常依赖于这些参数,即使是它们中最微小的波动也可能意味着失败和成功之间的区别,这在混沌系统中很常见。

        如果你仍然对这项任务毫不畏惧,我会说还有另一种方法,分析较少但更有用。与其计算成功的确切机会,不如多次重复放下它并跟踪结果(在本例中为着陆坐标)。通过此日志,您可以找到结果的概率分布,使您能够陈述诸如“在 15% 的试验中,糖果包装纸落在距离垃圾箱中心 5 到 10 厘米之间”之类的内容。

经过大量样本后着陆坐标的虚构直方图。更多的样本近似于实际概率分布。

        通过多次重复该过程,结果应近似于着陆坐标的实际概率分布(对于一组确定的参数,例如上面提到的参数)。这是蒙特卡罗方法的一个示例,该方法是一种为可能的确定性(通常非常复杂)过程提供近似结果的策略。它的应用无处不在,从物理模拟(如相关的塑料包装弹丸研究)到预测金融市场的行为。

        至于它的称谓,蒙特卡洛是物理学家约翰·冯·诺依曼和斯坦尼斯瓦夫·乌拉姆的同事建议的代号,他们是其最早的用户之一,他们在核武器方面的工作需要保密。蒙特卡洛这个名字本身指的是摩纳哥的一家赌场,乌拉姆的叔叔会在那里赌走从亲戚那里借来的钱。事实上,赌场参考简单而有效地说明了该方法的随机性。

        在进入方法本身之前,我必须对你说实话,这篇文章比我以前的文章更具技术性,所以让我从一个摘要开始,它可以独立于文章的其余部分阅读

蒙特卡罗方法包括通过多次重复复杂过程(每次产生样本)来近似该过程的结果并获得概率分布。有了足够的样本,我们就可以通过收集样本的概率分布在统计上近似结果。例如,与其计算一把米能装多少粒米,不如让一个人反复得到好几把米,并对结果求平均值以获得一个好的猜测。我想,实际的计算将非常复杂,因为它甚至可能取决于手的最小细节。许多蒙特卡罗实现都是这个简单案例的变体。

这个想法很简单:重复次数越多,估计值与实际结果就越接近。这种接近性通过误差ε来量化。在经典的蒙特卡罗方法中,这个误差以 1/√N 成比例,其中 N 是重复次数。这种缩放意味着对于非常大的 N,误差的减少率具有 1/√N 的斜率(最多为常数乘法因子)。

事实证明,蒙特卡罗有一个量子增强版本,其误差比例为1/N,其中N是某个量子算子的应用数量。这种缩放代表了量子蒙特卡罗相对于其经典对应物的二次加速。

这种量子增强蒙特卡罗基于量子振幅估计算法(QAEA),该算法是Grover的量子振幅放大和量子相位估计算法的混合体,因此得名。当前的量子计算机不适合它们的实现,但正在努力简化它们的一些子程序,例如量子相位估计算法的变分版本。

我希望我在这里之前没有失去你,并且你想了解更多关于量子增强蒙特卡洛的信息。在这种情况下,最好熟悉量子力学、量子电路以及量子傅里叶变换 (QFT) 等例程的基础知识——您可以在我的同事 Hamza Jaffali 博士撰写的这篇文章中相关信息。

三、蒙特卡洛算法分析

        关于底层算法,例如,您可以在qiskit中找到优秀的QAEA教程,但它与蒙特卡洛方法的联系仅限于更多的学术来源,例如本文等研究论文。因此,本文的目标是将QAEA拼凑在一起,并展示如何在类似蒙特卡洛的问题中使用它。我们从量子力学中一个非常简单的例子开始。

        具有复系数的一般单量子比特状态。我们可以使用哈达玛检验来估计复系数 a 和 b,这可以归类为经典蒙特卡罗抽样。

        上面,系数使我们能够计算 |a|² 和 |b|²,分别表示测量 |0〉 和 |1〉 的概率。但是,如果您只能访问完整状态 |Ψ〉,则测量复振幅 a 和 b 而不是它们的绝对值并不简单。你能做的最好的事情就是使用 Hadamard 测试,这是我在上一篇文章中描述和实现的过程。但在这里,我们将考虑具有实际系数的状态的更简单情况:

        具有实系数的更简单状态。p 表示测量 0 的概率,而 1 表示用概率 1-p 测量的概率,因为归一化概率的总和必须为 1。

        如果目标是估计 p,即测量 |0〉 的概率,则经典策略是测量状态 |ψ〉很多次,比如说,N。概率 p 估计为:

        样本越多,估计值与实际 p 值越接近。

        误差缩放为 1/√N,对于足够大的 N。该过程的基本点是每个样品都需要单一状态制备和测量t。其中一组构成单个采样步骤,提供样本。在量子增强的情况下,什么是“步骤”或“重复”的定义并不那么明显(至少一开始不适合我),但我希望澄清一下。

        蒙特卡罗经典版本中的单个样品需要状态制备、测量和结果日志。

        为了进行比较,让我们应用量子增强的蒙特卡罗来获得概率 p 的估计值。我们首先假设,像以前一样,量子态在|0〉状态初始化,然后通过酉V旋转到一般状态。 下一步是构建另一个具有 | ψ〉作为其特征向量之一,其特征值是一个复相,包含概率 p 的估计值,如下所示。

        (酉)算子 V 用于构建酉 U。原始状态 |ψ〉 是 U 的特征向量,其特征值提供概率 p。挺绕口令的,对吧?

        构建酉U需要Grover算法的基础思想,我应该尽快写一篇关于它的文章,因为它涉及一些巧妙的技巧,在布洛赫球体中很好想象。现在,只需假设它存在并且其行为如上图所示。下一步估计相位θ,相当于估计p

        如果您以前看过量子相位估计算法,则可以猜测接下来会发生什么。给定复相位角和概率p之间的关系,如果我们设法估计前者,则可以获得后者。我将避免详细解释量子电路的工作原理,而是专注于算法块的输入和输出。以下是量子电路的外观:

        量子相位估计算法。它需要运算符 U 和 V,以及逆傅里叶变换。我们将介绍下面的步骤 1 到 3。我们构建状态 |ψ〉,对其执行 M-1 控制操作,然后从辅助寄存器的测量输出中获取一个二进制字符串,它提供了概率 p 的估计值。

        如果你认为这只是一个相位估计算法,你是绝对正确的。但是,如果您不熟悉它,请不要害怕!我将逐一介绍每个块。准备好了吗?

        在块 1 中,我们准备了 m 个量子位的辅助寄存器(最终将以二进制分数记录 θ 估计值)和状态 |ψ〉本身。为此,我们需要操作员 V 和 m 哈达马尔门。

        接下来,在模块 2 中,我们应用连续的受控 U 门,控制门沿辅助寄存器级联。总的来说,我们需要 M-1 受控 U 操作,= 2m。请注意 |ψ〉 是 U 的特征状态,因此这些操作不会从根本上改变它,只是将其乘以全局复相。

        最后,在模块 3 中,我们测量辅助寄存器以获得一串 0 和 1,标记为 J₁J₂ ...杰姆。它们使我们能够通过二进制分数估计角度 θ:θ = 2π(0.J₁J₂ ...杰姆)。以下是阅读方法:

        将相位 θ 表示为二进制分数。辅助电路的读数提供了一串 0 和 1,可以转换为相位的估计值。确切地说,读数并不总是提供正确的估计值,但这不会影响方法的整体效率。

        我们现在拥有了算法的所有主要元素,并且可以对其进行讨论。我们可以从什么是“基本步骤”开始,我们应该仔细看看上面的二进制分数。您会同意,给定上面显示的二进制分数,辅助量子位的数量(总共 m)决定了对相位 θ 的最小修正。事实上,它们中的每一个都将精度增加了 1/2 倍,因此,如果您的量子寄存器具有 m 个辅助量子比特,您的估计值可能与确切值相差约 1/2m,因为它代表最小的贡献。

        换句话说,误差ε约为 1/M= 2),也就是说,它缩放 1/M。 此外,由于受控U块的集合由U的M-1应用组成,因此我们将受控U操作视为基本步骤。

        蒙特卡洛的量子和经典版本的基本步骤或操作。

        由于估计误差以 1/M 成比例,其中 M 是算法中的“基本步骤”,因此我们说它代表了相对于经典方法(例如朴素采样)的二次加速,其误差尺度为 1/√N

四、后记

        这个故事中还有更多细节,将在后面的文章中留下。其中之一是已经提到的算子 U 的构建,另一个是并非所有量子算法的运行都为相位 θ 提供最佳估计,这需要多次运行以提供更好的结果。然而,这不会损害二次加速。此外,我们可以推广这种方法,以评估不仅仅是单个配置的概率。例如,原则上,我们可以将其扩展到评估期望值。

乔纳斯·阿劳霍

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/914856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AIGC】AI工具合集人脸动漫化,老照片修复和视频补帧工具

Paper2GUI: 一款面向普通人的 AI 桌面 APP 工具箱,免安装即开即用,已支持 40AI 模型,内容涵盖 AI 绘画、语音合成、视频补帧、视频超分、目标检测、图片风格化、OCR 识别等领域。支持 Windows、Mac、Linux 系统。 小白兔AI 3.0版起永久免费A…

【Git Bash】简明从零教学

目录 Git 的作用官网介绍简明概要 Git 下载链接Git 的初始配置配置用户初始化本地库 Git 状态查询Git 工作机制本地工作机制远端工作机制 Git 的本地管理操作add 将修改添加至暂存区commit 将暂存区提交至本地仓库日志查询版本穿梭 Git 分支查看分支创建与切换分支跨分支修改与…

变压器绝缘油介质损耗因素测试

试验目的 变压器油又称绝缘油,是一种电介质,是能够耐受电应力的绝缘体。当对介质油施加交流电压时,所通过的电流与其两端的电压相位差并不是90度角,而是比90度角要小一个δ角的,此δ角称为油的介质损耗角。变压器油的…

微服务集成spring cloud sentinel

目录 1. sentinel使用场景 2. sentinel组成 3. sentinel dashboard搭建 4. sentinel客户端详细使用 4.1 引入依赖 4.2 application.properties增加dashboard注册地址 4.3 手动增加限流配置类 4.4 rest接口及service类 4.5 通过dashboard动态配置限流规则 1. sentinel使…

Linux 系统下 GDB 调试器的使用

文章目录 简介GDB 的介绍GDB 的使用 GDB 常用命令及示例查看相关操作断点相关操作运行相关操作变量相关操作分隔窗口操作 简介 GDB 的介绍 GDB 是 GNU 调试程序,是用来调试 C 和 C 程序的调试器。它可以让程序开发者在程序运行时观察程序的内部结构和内存的使用情况…

大数据时代,个人信息数据库保护的挑战及其对策

挑战: 数据泄露:大数据时代,个人信息数据库面临被黑客攻击、内部员工滥用权限等风险,导致个人信息泄露的风险增加。 隐私保护:随着大数据的快速发展,个人信息的采集和分析变得更加广泛和深入。但是&#xf…

初级工程师职称评定条件及流程是什么呢?初级作用是什么?

现在全国统一的助理(初级)工程师是由人社部颁发的初级工程师证也就是大家说的初级职称。人社部备案,正规可靠,国家认可,评审表、红头文件齐全,可以用于应聘、在职、上岗、加薪、评级、评职称或者企业升资质…

indexDB入门到精通

前言 由于开发3D可视化项目经常用到模型,而一个模型通常是几m甚至是几十m的大小对于一般的服务器来讲加载速度真的十分的慢,为了解决这个加载速度的问题,我想到了几个本地存储的。 首先是cookie,cookie肯定是不行的,因为最多以只…

MPP 还是主流架构吗

MPP 架构: MPP 架构的产品: Impala ClickHouse Druid Doris 很多 OLAP 引擎都采用了 MPP 架构 批处理系统 - 使用场景分钟级、小时级以上的任务,目前很多大型互联网公司都大规模运行这样的系统,稳定可靠,低成本。…

9.1 功率放大电路概述

在实用电路中,往往要求放大电路的末级(即输出级)输出一定的功率,以驱动负载。能够向负载提供足够信号功率的放大电路称为功率放大电路,简称功放。从能量控制和转换的角度看,功率放大电路与其它放大电路在本…

c++ qt--信号与槽(二) (第四部分)

c qt–信号与槽(二) (第四部分) 一.信号与槽的关系 1.一对一 2.一对多 3.多对一 4.多对多 还可以进行传递 信号->信号->槽 一个信号控制多个槽的例子(通过水平滑块控制两个组件) 1.应用的组件 注意这里最下面的组件…

MongoDB快速上手

MongoDB快速上手 MongoDB用起来-快速上手&集群和安全系列 课程目标: 理解MongoDB的业务场景、熟悉MongoDB的简介、特点和体系结构、数据类型等能够在windows和linux下安装和启动MongoDB、图形化管理界面Compass的安装使用掌握MongoDB基本常用命令实现数据的C…

mysql 、sql server 临时表、表变量、

sql server 临时表 、表变量 mysql 临时表 创建临时表 create temporary table 表名 select 字段 [,字段2…,字段n] from 表

项目解决问题

红外 没接收到红外信号时, 会有杂波干扰 STC单片机 STC的串口要用一个定时器作为波特率发生器 开定时器2需要 开定时器0 1 要ET0 1 ET11打开 串口有时候和定时器有冲突 串口发送函数放定时器中断函数中,时间太少可能会导致一直卡在定时器中AUXR | 0x…

精彩回顾 | 风丘科技亮相2023中国汽车测试及质量监控博览会

2023年8月9-11日,风丘科技携手德国Softing、德国IPETRONIK亮相中国汽车测试及质量监控博览会(2023 Testing Expo),为大家呈现了在汽车测试、车辆诊断领域里专业的研发测试工具及创新解决方案,吸引了众多客户驻足洽谈。…

MySQL基础篇(四)

多表查询 概述:多表查询就是多张表之间的查询。 回顾:SELECT * FROM table_name 多表查询 from 后面就得跟多张表。如:select * from emp,dept 笛卡尔积:笛卡尔积在数学中,表示两个集合,集合 A 和集合 B…

解决`idea`中`database`工具查询起别名乱码问题

文章目录 解决idea中database工具查询起别名乱码问题场景复现如何解决方式一 设置编码方式二:修改字体 原因说明 解决idea中database工具查询起别名乱码问题 场景复现 使用Idea做查询的并且起别名出现了中文乱码 如何解决 方式一 设置编码 settings->输入框输…

算法-滑动窗口-串联所有单词的子串

算法-滑动窗口-串联所有单词的子串 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/substring-with-concatenation-of-all-words/ 1.2 题目描述 2 滑动窗口Hash表 2.1 解题思路 构建一个大小为串联子串的总长的滑动窗口为每个words中的子串创建一个hash表, <子…

BTP Integration Suite学习笔记 - (Unit4) Developing with SAP Integration Suite

详细指导还是要看官方文档 4. 云集成管理 4.1 云集成介绍 什么是云集成&#xff1f; 前三章讲了很多内容&#xff0c;但都不是最核心的&#xff0c;通常我们用CPI是让他实现原来PI/PO的功能的&#xff0c;是用来做集成的。这章才刚开始。 云集成有以下几个特性&#xff1a;…

web基础http与apache

一、http相关概念&#xff1a; http概述&#xff1a; HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础&#xff0c;同时&#xff0c;也是一种客户端—服务器&#xff08;client-server&#xff09;协议 为解决"用什么样的网络协…