Feynman 是量子力学路径积分模型中量子电路分析的工具包。该工具包包括基于路径求和形式的电路动作表示的综合、优化和验证方法。
有两种与 Feynman 项目交互的方式。在工具中找到基于 Feynman 构建的独立工具,提供用于优化和/或验证量子电路的命令行界面,或者可以在其他 Haskell 项目中导入并直接使用 Feynman 库。
Feynman 项目要求 GHC >=8.0.2 和 Cabal >=1.24.0。旧版本的 GHC 可能可以工作,但尚未经过测试。
Feynman 库和用于优化 ( feynopt
) 和验证 ( feynver
) 的二进制可执行文件可以通过以下命令全局安装
cabal install
或者通过稍微更细粒度的一系列命令
cabal configure
cabal build
cabal install
依赖地狱是 Haskell 中的一个常见问题,因此早期版本的 Cabal 可以选择显式创建一个本地沙箱,在其中安装包依赖项,而不会导致其他包出现问题。要在沙箱中安装 Feynman 的依赖项,请在构建或安装 Feynman 之前先运行
# Cabal 1 & 2
cabal sandbox init
cabal install --only-dependencies
# Cabal 3
cabal v1-sandbox init
cabal install --only-dependencies
默认情况下,Cabal 将二进制文件安装在~/cabal/bin/
中以进行 Unix 构建。要指定另一个文件夹,请安装
cabal install --installdir=DIR
Feynman 目前拥有 openQASM 和 .qc 的前端。两者的示例都可以在基准文件夹中找到。
要在 .qc 或 openQASM 文件上运行 Feynman 优化器feynopt
,请执行以下命令
feynopt <filename>.(qc | qasm)
feynopt
自动将扩展名 .qc 和 .qasm 分别识别为 .qc 和 openQASM 文件。
有关所有可用优化和转换的列表,请使用命令
feynopt -h
feynver
二进制工具允许对单独的电路文件进行等效性检查。标准用法是
feynver <filename1>.qc <filename2>.qc
输入电路必须就主要输入(即未初始化的量子位)的名称达成一致,但它们可以使用不同的辅助设备。
注意: feynver
目前仅支持 .qc 前端
Feynman 存储库附带了一套量子电路基准测试,可在benchmarks
夹中找到。有关基准的更多信息,用户可以参阅量子电路设计中的形式方法。
基准测试套件还包括示例 openQASM 电路,取自 openQASM github 存储库。
Feynman 是涵盖多篇论文的算法和技术的集合。如果您想在学术论文中引用,相关论文如下所列。
马修·艾米