一句话:提出 QPPL 语言与编译器,将概率程序编译为量子线路,以加速蒙特卡洛估计并保证语义保持。
蒙特卡洛方法在金融、系统验证与科学模拟中很基础,但收敛慢:达到加性误差 ε 需要 O(1/ε²) 个样本。量子振幅估计(QAE)可通过将目标概率模型编码进量子线路获得二次加速,但构造线路需要底层量子专业知识,现有工具难以同时兼顾通用性、易用性与效率。本文设计 QPPL:一种简单的命令式量子概率编程语言,以及将概率程序翻译为量子线路的编译器。关键洞察是线路构造本质上是在指定概率分布,而这正是概率编程擅长的问题。QPPL 支持联合分布、条件更新、动态概率与实值期望,提供带命名变量和直接算术的命令式语法,并将各构造模块化编译为可逆线路原语。作者证明了编译保持语义。在金融与概率模型检测基准上,QPPL 是唯一覆盖全部基准的工具,且生成线路的门数最多少 8.8 倍、深度最多浅 26 倍。
Monte Carlo methods are fundamental to finance, system verification, and scientific simulation, but converge slowly: achieving an additive error of є requires O (1/є 2 ) samples. Quantum Amplitude Estimation (QAE) offers a quadratic speedup by encoding the target probabilistic model into a quantum circuit. However, constructing such a circuit demands low-level quantum expertise, and existing tools for this task all sacrifice at least one of generality, usability, or efficiency. To address these, we design QPPL (Quantum Probabilistic Programming Language), a simple imperative language, and a compiler that translates probabilistic programs into quantum circuits. The key insight is that the circuit construction amounts to specifying a probability distribution, precisely the task that probabilistic programming addresses. QPPL achieves generality by supporting joint distributions, conditional updates, dynamic probabilities, and real-valued expectations in a single language; usability by offering a sequential, imperative syntax with named variables and direct arithmetic that hides all quantum details; and efficiency by modularly compiling each construct into reversible circuit primitives, achieving scalable circuit synthesis. We prove that the compilation is semantics-preserving. On benchmarks spanning finance and probabilistic model checking, QPPL is the only tool that covers all benchmarks, while producing circuits with up to 8.8× fewer gates and 26× shallower depth than existing tools.
@article{paperbot12167,
title = {Quantum Monte Carlo Estimation via Probabilistic Programming},
author = {Seungmin Jeon and Jaeho Choi and Jonguk Jeon and Kanguk Lee and Kyeongmin Cho and Sukyoung Ryu and Jeehoon Kang},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA2},
year = {2026},
doi = {10.1145/3839463}
}