一句话:提出首个模块化自动合成高效量子反计算的方法,支持表达力强的量子程序并生成正确电路。
量子编程的关键挑战之一是反计算,即可逆地释放量子比特。现有自动化方法多作用于原始量子电路,难以处理递归定义电路族、反计算与伴随等高表达力量子程序,导致高层量子语言难以兼顾效率与安全。本文提出首个模块化自动合成正确且高效反计算的方法,核心贡献为:一种能捕获表达力量子程序并原生支持反计算的中间表示 IR,以及在该 IR 上模块化合成反计算与伴随的算法。作者实现了端到端系统,包括 IR、合成算法、Silq 表达性子集到 IR 的翻译以及从 IR 生成电路。实验表明,该方法能处理已有反计算方法无法处理的程序,并在其可处理基准上具有竞争力。
A key challenge of quantum programming is uncomputation: the reversible deallocation of qubits. And while there has been much recent progress on automating uncomputation, state-of-the-art methods are insufficient for handling today's expressive quantum programming languages. A core reason is that they operate on primitive quantum circuits, while quantum programs express computations beyond circuits, for instance, they can capture families of circuits defined recursively in terms of uncomputation and adjoints. In this paper, we introduce the first modular automatic approach to synthesize correct and efficient uncomputation for expressive quantum programs. Our method is based on two core technical contributions: (i) an intermediate representation (IR) that can capture expressive quantum programs and comes with support for uncomputation, and (ii) modular algorithms over that IR for synthesizing uncomputation and adjoints. We have built a complete end-to-end implementation of our method, including an implementation of the IR and the synthesis algorithms, as well as a translation from an expressive fragment of the Silq programming language to our IR and circuit generation from the IR. Our experimental evaluation demonstrates that we can handle programs beyond the capabilities of existing uncomputation approaches, while being competitive on the benchmarks they can handle. More broadly, we show that it is possible to benefit from the greater expressivity and safety offered by high-level quantum languages without sacrificing efficiency.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{abs-2406-14227,
title = {Modular Synthesis of Efficient Quantum Uncomputation},
author = {Hristo Venev and Timon Gehr and Dimitar Dimitrov and Martin Vechev},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {OOPSLA2},
year = {2024},
doi = {10.1145/3689785}
}