跳转到主要内容

Qiskit 量子信息科学工具

项目描述

Qiskit Ignis (已弃用)

LicenseBuild Status

注意 从版本 0.7.0 开始,Qiskit Ignis 已弃用,并由 Qiskit Experiments 项目取代。项目开发已停止,只接受兼容性修复和其他关键错误修复,直到项目正式退役并归档。

Qiskit 是一个开源框架,用于在脉冲、电路和算法级别与有噪声的量子计算机协同工作。

Qiskit 由元素组成,每个元素都协同工作以实现量子计算。此元素是 Ignis,它提供量子硬件验证、噪声特征化和错误纠正的工具。

迁移指南

自0.7.0版本起,Qiskit Ignis已被弃用,其中一些功能已迁移到qiskit-experiments包和qiskit-terra中。

  • Ignis特征模块

    • 此模块部分迁移到qiskit-experiments,并拆分为两个不同的模块:qiskit_experiments.library.calibrationqiskit_experiments.library.characterization
    • AmpCal现在已被FineAmplitude取代。
    • ZZFitter尚未迁移。
  • Ignis判别模块

  • Ignis缓解模块

  • Ignis验证模块

    • 随机基准测试、量子体积和状态和过程层析已迁移到qiskit-experiments
    • 门集层析的迁移正在进行中。
    • topological_codes将在NCCR-SPIN下继续开发,同时功能重新集成到Qiskit中。您还可以在衍生项目qtcodes中找到一些额外的功能。
    • 目前认证和纠缠模块尚未迁移。
      以下表格提供了一个更详细的分解,将Ignis中存在的功能与其迁移后的位置联系起来。
旧版 新版
qiskit.ignis.characterization.calibrations qiskit_experiments.library.calibration qiskit-experiments
qiskit.ignis.characterization.coherence qiskit_experiments.library.characterization qiskit-experiments
qiskit.ignis.mitigation qiskit_terra.mitigation qiskit-terra
qiskit.ignis.verification.quantum_volume qiskit_experiments.library.quantum_volume qiskit-experiments
qiskit.ignis.verification.randomized_benchmarking qiskit_experiments.library.randomized_benchmarking qiskit-experiments
qiskit.ignis.verification.tomography qiskit_experiments.library.tomography qiskit-experiments

安装

我们鼓励您通过pip工具(一个Python包管理器)安装Qiskit。以下命令安装了核心Qiskit组件,包括Ignis。

pip install qiskit

Pip将自动为我们处理所有依赖项,并且您将始终安装最新(并且经过良好测试)的版本。

要从源安装,请遵循贡献指南中的说明。

额外需求

某些功能有额外的可选要求。如果您要使用fitters的任何可视化函数,则需要安装matplotlib。您可以使用pip install matplotlib或在与ignis一起安装时使用pip install qiskit-ignis[visualization]来完成此操作。如果您要使用cvx fitter运行层析,则需要安装cvxpy。您可以使用pip install cvxpy或在与ignis一起安装时使用pip install qiskit-ignis[cvx]来完成此操作。在执行CTMP方法期望值测量误差缓解时,如果已安装Numbda,则可以使用即时编译来提高性能。您可以使用pip install numba或在与ignis一起安装时使用pip install qiskit-ignis[jit]来完成此操作。为了在qiskit.ignis.measurement中使用判别类,需要安装scikit-learn。您可以使用pip install scikit-learn或在与ignis一起安装时使用pip install qiskit-ignis[iq]来完成此操作。如果您要在安装ignis时安装所有额外需求,则可以运行pip install qiskit-ignis[visualization,cvx,jit,iq]

使用Qiskit Ignis创建您的第一个量子实验

现在您已经安装了Qiskit Ignis,您就可以开始创建实验,以揭示设备质量的信息。以下是一个基本示例

$ python
# Import Qiskit classes
import qiskit
from qiskit import QuantumRegister, QuantumCircuit, ClassicalRegister
from qiskit.providers.aer import noise # import AER noise model

# Measurement error mitigation functions
from qiskit.ignis.mitigation.measurement import (complete_meas_cal,
                                                 CompleteMeasFitter, 
                                                 MeasurementFilter)

# Generate a noise model for the qubits
noise_model = noise.NoiseModel()
for qi in range(5):
    read_err = noise.errors.readout_error.ReadoutError([[0.75, 0.25],[0.1, 0.9]])
    noise_model.add_readout_error(read_err, [qi])

# Generate the measurement calibration circuits
# for running measurement error mitigation
qr = QuantumRegister(5)
meas_cals, state_labels = complete_meas_cal(qubit_list=[2,3,4], qr=qr)

# Execute the calibration circuits
backend = qiskit.Aer.get_backend('qasm_simulator')
job = qiskit.execute(meas_cals, backend=backend, shots=1000, noise_model=noise_model)
cal_results = job.result()

# Make a calibration matrix
meas_fitter = CompleteMeasFitter(cal_results, state_labels)

# Make a 3Q GHZ state
cr = ClassicalRegister(3)
ghz = QuantumCircuit(qr, cr)
ghz.h(qr[2])
ghz.cx(qr[2], qr[3])
ghz.cx(qr[3], qr[4])
ghz.measure(qr[2],cr[0])
ghz.measure(qr[3],cr[1])
ghz.measure(qr[4],cr[2])

# Execute the GHZ circuit (with the same noise model)
job = qiskit.execute(ghz, backend=backend, shots=1000, noise_model=noise_model)
results = job.result()

# Results without mitigation
raw_counts = results.get_counts()
print("Results without mitigation:", raw_counts)

# Create a measurement filter from the calibration matrix
meas_filter = meas_fitter.filter
# Apply the filter to the raw counts to mitigate 
# the measurement errors
mitigated_counts = meas_filter.apply(raw_counts)
print("Results with mitigation:", {l:int(mitigated_counts[l]) for l in mitigated_counts})
Results without mitigation: {'000': 181, '001': 83, '010': 59, '011': 65, '100': 101, '101': 48, '110': 72, '111': 391}

Results with mitigation: {'000': 421, '001': 2, '011': 1, '100': 53, '110': 13, '111': 510}

贡献指南

如果您想为Qiskit Ignis做出贡献,请查看我们的贡献指南。本项目遵循Qiskit的行为准则。通过参与,您将期待遵守此准则。

我们使用GitHub issues来跟踪请求和错误。请使用我们的slack进行讨论和简单问题。要加入我们的Slack社区,请使用链接。对于更适合论坛的问题,我们使用Stack Exchange中的Qiskit标签。

下一步

现在您已经设置好并准备查看我们Qiskit教程存储库中的其他示例。

作者和引用

Qiskit Ignis是许多人的工作成果,他们以不同的水平为项目做出贡献。如果您使用Qiskit,请根据包含的BibTeX文件进行引用。

许可协议

Apache License 2.0

项目详细信息


下载文件

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

源分布

qiskit-ignis-0.7.1.tar.gz (144.7 kB 查看哈希值)

上传时间

构建分布

qiskit_ignis-0.7.1-py3-none-any.whl (198.7 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面