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

一、说明

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

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

     

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

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

        现在让我们假设你对它着迷,你得到一些铅笔和一叠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 的构建,另一个是并非所有量子算法的运行都为相位 θ 提供最佳估计,这需要多次运行以提供更好的结果。然而,这不会损害二次加速。此外,我们可以推广这种方法,以评估不仅仅是单个配置的概率。例如,原则上,我们可以将其扩展到评估期望值。

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/132424126