跳转到主要内容

Mitiq是一个开源工具包,用于在大多数当前中级量子计算机上实现错误缓解技术。

项目描述

Mitiq logo

build Documentation Status codecov PyPI version arXiv Downloads Repository Unitary Fund Discord Chat

Mitiq 是一个用于在量子计算机上实现错误缓解技术的 Python 工具包。

当前的量子计算机由于与环境相互作用、不完美的门应用、状态制备和测量误差等原因而存在噪声。错误缓解试图通过以巧妙的方式编译量子程序来在软件层面上减少这些影响。

想了解更多吗?

  • 查看我们的文档
  • 对于代码、仓库或理论问题,尤其是需要更详细回答的问题,请提交讨论
  • 对于非正式或时间敏感的问题,请在我们Discord上与我们聊天。
  • 加入我们的每周社区电话会议Discord公开议程)。

快速入门

安装

pip install mitiq

示例

定义一个函数,它以电路为输入并返回您要计算的期望值,然后使用 Mitiq 缓解错误。

import cirq
from mitiq import zne, benchmarks


def execute(circuit, noise_level=0.005):
    """Returns Tr[ρ |0⟩⟨0|] where ρ is the state prepared by the circuit
    with depolarizing noise."""
    noisy_circuit = circuit.with_noise(cirq.depolarize(p=noise_level))
    return (
        cirq.DensityMatrixSimulator()
        .simulate(noisy_circuit)
        .final_density_matrix[0, 0]
        .real
    )


circuit = benchmarks.generate_rb_circuits(n_qubits=1, num_cliffords=50)[0]

true_value = execute(circuit, noise_level=0.0)      # Ideal quantum computer
noisy_value = execute(circuit)                      # Noisy quantum computer
zne_value = zne.execute_with_zne(circuit, execute)  # Noisy quantum computer + Mitiq

print(f"Error w/o  Mitiq: {abs((true_value - noisy_value) / true_value):.3f}")
print(f"Error w Mitiq:    {abs((true_value - zne_value) / true_value):.3f}")

样本输出

Error w/o  Mitiq: 0.264
Error w Mitiq:    0.073

校准

不确定要使用哪种错误缓解技术或参数?尝试以下校准模块,以帮助找到适合您特定后端的最佳参数!

查看我们的指南示例,了解更多解释、技术和基准。

快速浏览

错误缓解技术

您可以通过调用以下内容来查看目前可用的量子错误缓解技术:

mitiq.qem_methods()
技术 文档 Mitiq 模块 论文参考文献
零噪声外推 ZNE mitiq.zne 1611.09301
1612.02058
1805.04492
概率误差消除 PEC mitiq.pec 1612.02058
1712.09271
1905.10135
(可变噪声)克雷夫特数据回归 CDR mitiq.cdr 2005.10189
2011.01157
数字动态去耦 DDD mitiq.ddd 9803057
1807.08768
读出错误缓解 REM mitiq.rem 1907.08518
2006.14044
量子子空间展开 QSE mitiq.qse 1903.05786
鲁棒阴影估计 🚧 RSE mitiq.qse 2011.09636
2002.08953
分层理查森外推 🚧 即将推出 2402.04000

此外,我们还有一项目前具有有限功能的噪声定制技术

噪声定制技术 文档 Mitiq 模块 论文参考文献
泡利旋轮 🚧 PT mitiq.pt 1512.01098

🚧:技术目前正在开发中或未经测试,可能存在一些粗糙的边缘。如果您尝试了这些技术并提出建议,请提出一个问题!

查看我们的路线图以获取更多要实现的技术候选者。如果您正在寻找某种技术,请提交功能请求

接口

我们将任何可以编写量子电路的编程语言称为 前端,任何可以模拟电路的量子计算机/模拟器称为 后端

支持的前端

Cirq Qiskit pyQuil Braket PennyLane Qibo
Cirq logo Qiskit logo Rigetti logo AWS logo PennyLane logo Qibo logo

您可以在安装过程中指定这些前端,将其作为可选组件与主包一起安装Mitiq支持。要安装包含一个或多个前端支持的Mitiq,可以在安装命令中用方括号指定每个前端。

例如,要安装支持Qiskit和Qibo的Mitiq

pip install mitiq[qiskit,qibo]

这里是支持的前端列表。

注意:目前,Cirq是Mitiq的核心要求,在您使用pip install mitiq安装时(即使没有可选的[cirq])也会安装。

支持的后端

您可以使用Mitiq与任何可以与支持的前端接口的后端。

引用Mitiq

如果您在研究中使用了Mitiq,请使用在CITATION.bib中找到的bibtex条目引用Mitiq白皮书链接)。

引用Mitiq的论文列表可以在Google Scholar / Semantic Scholar上找到。

许可证

GNU GPL v.3.0。

贡献

我们欢迎对Mitiq的贡献,包括错误修复、功能请求等。要开始,请查看我们的贡献指南和/或文档指南

贡献者 ✨

感谢所有伟大的人使这个项目成为可能。非代码贡献者也同样受到赞赏,并在此列出。感谢

欢迎任何形式的贡献!

项目详情


下载文件

下载适合您平台的自定义文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码发行版

mitiq-0.39.0.tar.gz (135.2 kB 查看散列)

上传时间: 源代码

构建发行版

mitiq-0.39.0-py3-none-any.whl (171.6 kB 查看哈希值)

上传时间 Python 3

由以下支持