一句话:提出 Haskell 库 EnQ,以 Traversable/Monad 表达绝热量子计算,并将优化问题编译到量子硬件。
论文探讨如何用函数式编程抽象建模和实现绝热量子计算(AQC)。作者指出 Traversable 与 Monad 类型类能自然刻画 AQC 中能量约束计算的本质,并提出 Haskell 库 EnQ。EnQ 包含生成解空间、为候选解关联能量代价、搜索最优或近最优解三部分。由于基于标准 Haskell,EnQ 程序可直接由经典 Haskell 编译器执行;作者还实现将 EnQ 程序编译为量子硬件可执行电路的流程。案例研究涵盖搜索问题、类型推断、数划分、团寻找与图着色,表明 EnQ 能在量子硬件上表达和求解经典优化问题。
In physics and chemistry, quantum systems are typically modeled using energy constraints formulated as Hamiltonians. Investigations into such systems often focus on the evolution of the Hamiltonians under various initial conditions, an approach summarized as Adiabatic Quantum Computing ( AQC ). Although this perspective may initially seem foreign to functional programmers, we demonstrate that conventional functional programming abstractions—specifically, the Traversable and Monad type classes—naturally capture the essence of AQC . To illustrate this connection, we introduce EnQ , a functional programming library designed to express diverse optimization problems as energy constraint computations ( ECC ). The library comprises three core components: generating the solution space, associating energy costs with potential solutions, and searching for optimal or near-optimal solutions. Because EnQ is implemented using standard Haskell, it can be executed directly through conventional classical Haskell compilers. More interestingly, we develop and implement a process to compile EnQ programs into circuits executable on quantum hardware. We validate EnQ ’s effectiveness through a number of case studies, demonstrating its capacity to express and solve classical optimization problems on quantum hardware, including search problems, type inference, number partitioning, clique finding, and graph coloring.
@article{paperbot3058,
title = {A Haskell Adiabatic DSL: Solving Classical Optimization Problems on Quantum Hardware},
author = {Liyi Li and David Young and James Bryan Graves and Chandeepa Dissanayake and Amr Sabry},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {ICFP},
year = {2025},
doi = {10.1145/3747521}
}