Mitiq是一个开源工具包,用于在大多数当前中级量子计算机上实现错误缓解技术。
项目描述
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 |
---|---|---|---|---|---|
您可以在安装过程中指定这些前端,将其作为可选组件与主包一起安装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上找到。
许可证
贡献
我们欢迎对Mitiq的贡献,包括错误修复、功能请求等。要开始,请查看我们的贡献指南和/或文档指南。
贡献者 ✨
感谢所有伟大的人使这个项目成为可能。非代码贡献者也同样受到赞赏,并在此列出。感谢
- @francespoblete为Mitiq的大部分设计工作和愿景
欢迎任何形式的贡献!
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
mitiq-0.39.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6ff980cd32a96c7da037790e0f79d73dab64f9431c89bdca3982193398197ae3 |
|
MD5 | 404924c5f047c729beea9de7eff77bad |
|
BLAKE2b-256 | 2a94f22423a374a182b0cd94960339083e774110ac1f4a13687543e45c971dbe |
mitiq-0.39.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2643ec20f1ad6006b917b13478590ffef6c3c2307f066a16e5a3f4bea264166d |
|
MD5 | 79abb80f7c3806a6a2c6267b85b2fbfa |
|
BLAKE2b-256 | 624a81115e2021ce17acf6a3fccfdb0d79882206ebf0aaa3bab6f60f1bfd574f |