跳转到主要内容

M3:无矩阵测量缓解

项目描述

mthree

License PyPI version pypi workflow

无矩阵测量缓解(M3)。

M3是一种测量缓解技术,通过一个降维步骤,然后使用直接LU分解或一个在O(1)步内通常收敛的预条件迭代方法来求解校正测量概率,并且可以并行计算。例如,M3可以在四核机器上(取决于输出中唯一比特串的数量)在不到两秒的时间内计算42量子比特GHZ问题的校正,

文档

在线文档 @ Qiskit.org

安装

您可以使用PyPi通过pip安装M3

pip install mthree

这将安装在Linux上的OpenMP优化版本,以及OSX和Windows的串行版本。或者,可以从源代码安装

pip install .

要启用openmp,必须有一个启用openmp 3.0+的编译器,并使用以下命令安装

MTHREE_OPENMP=1 pip install .

OSX上的OpenMP

在OSX上,必须使用homebrew安装GCC

brew install gcc

然后可以使用类似于以下调用的方式完成带有openmp的安装

MTHREE_OPENMP=1 CC=gcc-14 CXX=g++14 python setup.py install

请注意,以前说明中提到要安装LLVM而不是GCC。然而,在最新的OSX版本(Sequoia)中,基于LLVM的安装将构建,但在执行时会出现段错误。然而,GCC运行良好,因此进行了上述更改。

用法

基本用法

M3使用简单

import mthree
# Specify a mitigator object targeting a given backend
mit = mthree.M3Mitigation(backend)

# Compute the 1Q calibration matrices for the given qubits and given number of shots
# By default it is over all backend qubits at 10000 shots.
mit.cals_from_system(qubits, shots)

# Apply mitigation to a given dict of raw counts over the specified qubits
m3_quasi = mit.apply_correction(raw_counts, qubits)

请注意,此处qubits是一个列表,表示哪些量子比特被测量以生成输出中的比特。例如,列表[4,3,1,2,0]表示对物理量子比特4的测量被写入输出比特串中的零位,物理量子比特3映射到经典比特1,等等。零位在比特串中是右对齐的事实是内部处理的。

误差界限

可以以类似高效的方式计算误差界限。这并不是默认执行的,而是通过以下方式启用:

m3_quasi = mit.apply_correction(raw_counts, qubits, return_mitigation_overhead=True)

然后可以调用分布本身来返回期望值和标准差等。

expval, stddev = quasi.expval_and_stddev()

最近的概率分布

M3缓解的结果是准概率,通常包含小的负值。这适用于计算修正的期望值或采样问题,其中人们感兴趣的是最可能的比特串。然而,如果需要真正的概率分布,则可以使用以下方法将准概率转换为L2范数下最接近的真实概率分布:

closest_probs = m3_quasi.nearest_probability_distribution()

许可

License

项目详情


下载文件

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

源分布

mthree-2.7.0.tar.gz (979.5 kB 查看哈希)

上传

构建分布

mthree-2.7.0-cp312-cp312-win_amd64.whl (1.5 MB 查看哈希)

上传 CPython 3.12 Windows x86-64

mthree-2.7.0-cp312-cp312-win32.whl (1.4 MB 查看哈希)

上传 CPython 3.12 Windows x86

mthree-2.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB 查看哈希)

上传 CPython 3.12 manylinux: glibc 2.17+ x86-64

mthree-2.7.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (4.1 MB 查看哈希)

上传 CPython 3.12 manylinux: glibc 2.17+ i686

mthree-2.7.0-cp312-cp312-macosx_12_0_x86_64.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.12 macOS 12.0+ x86-64

mthree-2.7.0-cp312-cp312-macosx_12_0_universal2.whl (2.0 MB 查看哈希值)

上传时间 CPython 3.12 macOS 12.0+ universal2 (ARM64, x86-64)

mthree-2.7.0-cp311-cp311-win_amd64.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

mthree-2.7.0-cp311-cp311-win32.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86

mthree-2.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

mthree-2.7.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (4.2 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ i686

mthree-2.7.0-cp311-cp311-macosx_12_0_x86_64.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.11 macOS 12.0+ x86-64

mthree-2.7.0-cp311-cp311-macosx_12_0_universal2.whl (2.0 MB 查看哈希值)

上传时间 CPython 3.11 macOS 12.0+ universal2 (ARM64, x86-64)

mthree-2.7.0-cp310-cp310-win_amd64.whl (1.5 MB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

mthree-2.7.0-cp310-cp310-win32.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.10 Windows x86

mthree-2.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

mthree-2.7.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (4.0 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ i686

mthree-2.7.0-cp310-cp310-macosx_12_0_x86_64.whl (1.5 MB 查看哈希值)

上传时间: CPython 3.10 macOS 12.0+ x86-64

mthree-2.7.0-cp310-cp310-macosx_12_0_universal2.whl (2.0 MB 查看哈希值)

上传时间: CPython 3.10 macOS 12.0+ universal2 (ARM64, x86-64)

mthree-2.7.0-cp39-cp39-win_amd64.whl (1.5 MB 查看哈希值)

上传时间: CPython 3.9 Windows x86-64

mthree-2.7.0-cp39-cp39-win32.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.9 Windows x86

mthree-2.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

mthree-2.7.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (4.0 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ i686

mthree-2.7.0-cp39-cp39-macosx_12_0_x86_64.whl (1.5 MB 查看哈希值)

上传时间: CPython 3.9 macOS 12.0+ x86-64

mthree-2.7.0-cp39-cp39-macosx_12_0_universal2.whl (2.0 MB 查看哈希值)

上传时间: CPython 3.9 macOS 12.0+ universal2 (ARM64, x86-64)

由以下机构支持