Skip to main content
IBM Quantum Platform

Atténuation des erreurs à grande échelle par amplification probabiliste des erreurs

Durée estimée : 14 minutes sur un processeur Heron r3 (REMARQUE : il s'agit uniquement d'une estimation. (Votre temps d'exécution peut varier.)


Résultats d'apprentissage

À l'issue de ce tutoriel, les utilisateurs devraient être en mesure de :

  • La théorie qui sous-tend l'extrapolation sans bruit (ZNE), les différentes méthodes d'amplification du bruit, et les raisons pour lesquelles l'amplification probabiliste des erreurs (PEA) est privilégiée pour les expériences à grande échelle.
  • Comment mettre en œuvre le ZNE avec la PEA dans la pratique à l'aide de Qiskit.

Prérequis

Nous recommandons aux utilisateurs de se familiariser avec les sujets suivants avant de suivre ce tutoriel :

  • Le module « Atténuation des erreurs » du cours sur l'informatique quantique à l'échelle industrielle, destiné à acquérir les connaissances de base sur l'utilisation de l'atténuation des erreurs dans Qiskit.
  • La leçon « Utility-I » du cours sur l'informatique quantique à l'échelle industrielle, pour en savoir plus sur l'expérience à l'échelle industrielle citée en exemple dans ce tutoriel.

Arrière-plan

Ce tutoriel explique comment mener une expérience d'atténuation des erreurs à l'échelle industrielle avec le service de calcul d' IBM Quantum, en utilisant une version expérimentale de l'extrapolation sans bruit (ZNE) associée à l'amplification probabiliste des erreurs (PEA).

kim_nature_fig.png

Référence : Y. Kim et al. Preuves de l'utilité de l'informatique quantique avant la mise en place de la tolérance aux pannes. Nature 618.7965 (2023)

Extrapolation sans bruit (ZNE)

L'extrapolation à bruit nul (ZNE) est une technique d'atténuation des erreurs qui supprime les effets d'un bruit inconnu pendant l'exécution d'un circuit qui peut être mis à l'échelle d'une manière connue.

Elle suppose que les valeurs attendues s'échelonnent en fonction du bruit selon une fonction connue

A(λ)=A(0)+k=0makλk+R\langle A(\lambda) \rangle = \langle A(0) \rangle + \sum_{k=0}^{m} a_k \lambda^k + R

λ\lambda paramètre l'intensité du bruit et peut être amplifié.

Nous pouvons mettre en œuvre les ZNE en suivant les étapes suivantes :

  1. Amplifier le bruit du circuit pour plusieurs facteurs de bruit λ1,λ2,...\lambda_1, \lambda_2, ...
  2. Exécutez chaque circuit amplifié par le bruit pour mesurer A(λ1),...\langle A(\lambda_1)\rangle, ...
  3. Extrapolation jusqu'à la limite du bruit zéro A(0)\langle A(0)\rangle
zne_stages.png

Amplifier le bruit pour ZNE

Le principal défi à relever pour réussir la mise en œuvre de ZNE est de disposer d'un modèle précis pour le bruit dans la valeur espérée et d'amplifier le bruit d'une manière connue.

Il existe trois façons courantes de mettre en œuvre l'amplification des erreurs pour les ZNE.

Étirement des pouls
Porte pliante
Amplification probabiliste des erreurs
Mise à l'échelle de la durée de l'impulsion par étalonnageRépétition des portes en cycles d'identité UU(U1U)λ1/2U\mapsto U(U^{-1}U)^{\lambda-1}/2Ajouter du bruit via l'échantillonnage des canaux de Pauli
zne_pulse_stretching.pngzne_gate_folding.pngzne_pea.png
Kandala et al. Nature (2019)Shultz et al. PRA (2022)Li & Benjamin PRX (2017)

Pour les expériences à l'échelle des services publics, l' amplification probabiliste des erreurs (PEA) est la solution la plus intéressante.

  • L'étirement des impulsions suppose que le bruit de la porte est proportionnel à la durée, ce qui n'est généralement pas le cas. L'étalonnage est également coûteux.
  • Le pliage des portes nécessite des facteurs d'étirement importants qui limitent considérablement la profondeur des circuits qui peuvent être exécutés.
  • La PEA peut être appliquée à n'importe quel circuit pouvant fonctionner avec un facteur de bruit natif ( λ=1\lambda=1 ) mais nécessite l'apprentissage du modèle de bruit.

Apprenez le modèle de bruit pour PEA

La PEA repose sur le même modèle de bruit basé sur les couches que l' annulation probabiliste des erreurs (PEC); cependant, elle évite le surcoût d'échantillonnage qui s'élève de manière exponentielle avec le bruit du circuit.

Etape 1
Etape 2
Etape 3
Couches de Pauli de portes à deux qubitsRépéter les paires de couches d'identité et apprendre le bruitDéterminer une fidélité (erreur pour chaque canal de bruit)
pec_pauli_twirling.pngpec_learn_layer.pngpec_curve_fitting.png

Référence : E. van den Berg, Z. Minev, A. Kandala et K. Temme, Annulation probabiliste des erreurs avec des modèles de Pauli-Lindblad épars sur des processeurs quantiques bruyants arXiv:2201.09866


Exigences

Avant de commencer ce tutoriel, assurez-vous d'avoir installé les éléments suivants :

  • Qiskit SDK v2.0 ou version ultérieure, avec prise en charge de la visualisation
  • Qiskit Runtime v0.22 ou plus tard (pip install qiskit-ibm-runtime)

Configuration

Dans la cellule ci-dessous, nous importons les paquets nécessaires et créons quelques fonctions d'aide pour construire les circuits permettant l'évolution temporelle selon la méthode de Trotter d'un modèle d'Ising à champ transversal en deux dimensions, en respectant la topologie du backend.

from __future__ import annotations
from collections.abc import Sequence
from collections import defaultdict
import numpy as np
import rustworkx
import matplotlib.pyplot as plt

from qiskit.circuit import QuantumCircuit, Parameter
from qiskit.circuit.library import CXGate, CZGate, ECRGate
from qiskit.providers import Backend
from qiskit.visualization import plot_error_map
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit.quantum_info import SparsePauliOp
from qiskit.primitives import PubResult

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator


"""Trotter circuit generation"""


def remove_qubit_couplings(
    couplings: Sequence[tuple[int, int]], qubits: Sequence[int] | None = None
) -> list[tuple[int, int]]:
    """Remove qubits from a coupling list.

    Args:
        couplings: A sequence of qubit couplings.
        qubits: Optional, the qubits to remove.

    Returns:
        The input couplings with the specified qubits removed.
    """
    if qubits is None:
        return couplings
    qubits = set(qubits)
    return [edge for edge in couplings if not qubits.intersection(edge)]


def coupling_qubits(
    *couplings: Sequence[tuple[int, int]],
    allowed_qubits: Sequence[int] | None = None,
) -> list[int]:
    """Return a sorted list of all qubits involved in one or more couplings lists.

    Args:
        couplings: one or more coupling lists.
        allowed_qubits: Optional, the allowed qubits to include. If None all
            qubits are allowed.

    Returns:
        The intersection of all qubits in the couplings and the allowed qubits.
    """
    qubits = set()
    for edges in couplings:
        for edge in edges:
            qubits.update(edge)
    if allowed_qubits is not None:
        qubits = qubits.intersection(allowed_qubits)
    return list(qubits)


def construct_layer_couplings(
    backend: Backend,
) -> list[list[tuple[int, int]]]:
    """Separate a coupling map into disjoint 2-qubit gate layers.

    Args:
        backend: A backend to construct layer couplings for.

    Returns:
        A list of disjoint layers of directed couplings for the input coupling map.
    """
    coupling_graph = backend.coupling_map.graph.to_undirected(
        multigraph=False
    )
    edge_coloring = rustworkx.graph_bipartite_edge_color(coupling_graph)

    layers = defaultdict(list)
    for edge_idx, color in edge_coloring.items():
        layers[color].append(
            coupling_graph.get_edge_endpoints_by_index(edge_idx)
        )
    layers = [sorted(layers[i]) for i in sorted(layers.keys())]

    return layers


def entangling_layer(
    gate_2q: str,
    couplings: Sequence[tuple[int, int]],
    qubits: Sequence[int] | None = None,
) -> QuantumCircuit:
    """Generating a entangling layer for the specified couplings.

    This corresponds to a Trotter layer for a ZZ Ising term with angle Pi/2.

    Args:
        gate_2q: The 2-qubit basis gate for the layer, should be "cx", "cz", or "ecr".
        couplings: A sequence of qubit couplings to add CX gates to.
        qubits: Optional, the physical qubits for the layer. Any couplings involving
            qubits not in this list will be removed. If None the range up to the largest
            qubit in the couplings will be used.

    Returns:
        The QuantumCircuit for the entangling layer.
    """
    # Get qubits and convert to set to order
    if qubits is None:
        qubits = range(1 + max(coupling_qubits(couplings)))
    qubits = set(qubits)

    # Mapping of physical qubit to virtual qubit
    qubit_mapping = {q: i for i, q in enumerate(qubits)}

    # Convert couplings to indices for virtual qubits
    indices = [
        [qubit_mapping[i] for i in edge]
        for edge in couplings
        if qubits.issuperset(edge)
    ]

    # Layer circuit on virtual qubits
    circuit = QuantumCircuit(len(qubits))

    # Get 2-qubit basis gate and pre and post rotation circuits
    gate2q = None
    pre = QuantumCircuit(2)
    post = QuantumCircuit(2)

    if gate_2q == "cx":
        gate2q = CXGate()
        # Pre-rotation
        pre.sdg(0)
        pre.z(1)
        pre.sx(1)
        pre.s(1)
        # Post-rotation
        post.sdg(1)
        post.sxdg(1)
        post.s(1)
    elif gate_2q == "ecr":
        gate2q = ECRGate()
        # Pre-rotation
        pre.z(0)
        pre.s(1)
        pre.sx(1)
        pre.s(1)
        # Post-rotation
        post.x(0)
        post.sdg(1)
        post.sxdg(1)
        post.s(1)
    elif gate_2q == "cz":
        gate2q = CZGate()
        # Identity pre-rotation
        # Post-rotation
        post.sdg([0, 1])
    else:
        raise ValueError(
            f"Invalid 2-qubit basis gate {gate_2q}, should be 'cx', 'cz', or 'ecr'"
        )

    # Add 1Q pre-rotations
    for inds in indices:
        circuit.compose(pre, qubits=inds, inplace=True)

    # Use barriers around 2-qubit basis gate to specify a layer for PEA noise learning
    circuit.barrier()
    for inds in indices:
        circuit.append(gate2q, (inds[0], inds[1]))
    circuit.barrier()

    # Add 1Q post-rotations after barrier
    for inds in indices:
        circuit.compose(post, qubits=inds, inplace=True)

    # Add physical qubits as metadata
    circuit.metadata["physical_qubits"] = tuple(qubits)

    return circuit


def trotter_circuit(
    theta: Parameter | float,
    layer_couplings: Sequence[Sequence[tuple[int, int]]],
    num_steps: int,
    gate_2q: str | None = "cx",
    backend: Backend | None = None,
    qubits: Sequence[int] | None = None,
) -> QuantumCircuit:
    """Generate a Trotter circuit for the 2D Ising

    Args:
        theta: The angle parameter for X.
        layer_couplings: A list of couplings for each entangling layer.
        num_steps: the number of Trotter steps.
        gate_2q: The 2-qubit basis gate to use in entangling layers.
            Can be "cx", "cz", "ecr", or None if a backend is provided.
        backend: A backend to get the 2-qubit basis gate from, if provided
            will override the basis_gate field.
        qubits: Optional, the allowed physical qubits to truncate the
            couplings to. If None the range up to the largest
            qubit in the couplings will be used.

    Returns:
        The Trotter circuit.
    """
    if backend is not None:
        try:
            basis_gates = backend.configuration().basis_gates
        except AttributeError:
            basis_gates = backend.basis_gates
        for gate in ["cx", "cz", "ecr"]:
            if gate in basis_gates:
                gate_2q = gate
                break

    # If no qubits, get the largest qubit from all layers and
    # specify the range so the same one is used for all layers.
    if qubits is None:
        qubits = range(1 + max(coupling_qubits(layer_couplings)))

    # Generate the entangling layers
    layers = [
        entangling_layer(gate_2q, couplings, qubits=qubits)
        for couplings in layer_couplings
    ]

    # Construct the circuit for a single Trotter step
    num_qubits = len(qubits)
    trotter_step = QuantumCircuit(num_qubits)
    trotter_step.rx(theta, range(num_qubits))
    for layer in layers:
        trotter_step.compose(layer, range(num_qubits), inplace=True)

    # Construct the circuit for the specified number of Trotter steps
    circuit = QuantumCircuit(num_qubits)
    for _ in range(num_steps):
        circuit.rx(theta, range(num_qubits))
        for layer in layers:
            circuit.compose(layer, range(num_qubits), inplace=True)

    circuit.metadata["physical_qubits"] = tuple(qubits)
    return circuit


"""Result visualization functions"""


def plot_trotter_results(
    pub_result: PubResult,
    angles: Sequence[float],
    plot_noise_factors: Sequence[float] | None = None,
    plot_extrapolator: Sequence[str] | None = None,
    exact: np.ndarray = None,
    close: bool = True,
):
    """Plot average magnetization from ZNE result data.
    Args:
        pub_result: The Estimator PubResult for the PEA experiment.
        angles: The Rx angle values for the experiment.
        plot_raw: If provided plot the unextrapolated data for the noise factors.
        plot_extrapolator: If provided plot all extrapolators, if False only plot
            the Automatic method.
        exact: Optional, the exact values to include in the plot. Should be a 1D
            array-like where the values represent exact magnetization.
        close: Close the Matplotlib figure before returning.
    Returns:
        The figure.
    """
    data = pub_result.data

    evs = data.evs
    num_qubits = evs.shape[0]
    num_params = evs.shape[1]
    angles = np.asarray(angles).ravel()
    if angles.shape != (num_params,):
        raise ValueError(
            f"Incorrect number of angles for input data {angles.size} != {num_params}"
        )

    # Take average magnetization of qubits and its standard error
    x_vals = angles / np.pi
    y_vals = np.mean(evs, axis=0)
    y_errs = np.std(evs, axis=0) / np.sqrt(num_qubits)

    fig, _ = plt.subplots(1, 1)

    # Plot auto method
    plt.errorbar(x_vals, y_vals, y_errs, fmt="o-", label="ZNE (automatic)")

    # Plot individual extrapolator results
    if plot_extrapolator:
        y_vals_extrap = np.mean(data.evs_extrapolated, axis=0)
        y_errs_extrap = np.std(data.evs_extrapolated, axis=0) / np.sqrt(
            num_qubits
        )
        for i, extrap in enumerate(plot_extrapolator):
            plt.errorbar(
                x_vals,
                y_vals_extrap[:, i, 0],
                y_errs_extrap[:, i, 0],
                fmt="s-.",
                alpha=0.5,
                label=f"ZNE ({extrap})",
            )

    # Plot raw results
    if plot_noise_factors:
        y_vals_raw = np.mean(data.evs_noise_factors, axis=0)
        y_errs_raw = np.std(data.evs_noise_factors, axis=0) / np.sqrt(
            num_qubits
        )
        for i, nf in enumerate(plot_noise_factors):
            plt.errorbar(
                x_vals,
                y_vals_raw[:, i],
                y_errs_raw[:, i],
                fmt="d:",
                alpha=0.5,
                label=f"Raw (nf={nf:.1f})",
            )

    # Plot exact data
    if exact is not None:
        plt.plot(x_vals, exact, "--", color="black", alpha=0.5, label="Exact")

    plt.ylim(-0.1, 1.2)
    plt.xlabel("θ/π")
    plt.ylabel(r"$\overline{\langle Z \rangle}$")
    plt.legend()
    plt.title(
        f"Error Mitigated Average Magnetization for Rx(θ) [{num_qubits}-qubit]"
    )
    if close:
        plt.close(fig)
    return fig


def plot_qubit_zne_data(
    pub_result: PubResult,
    angles: Sequence[float],
    qubit: int,
    noise_factors: Sequence[float],
    extrapolator: Sequence[str] | None = None,
    extrapolated_noise_factors: Sequence[float] | None = None,
    num_cols: int | None = None,
    close: bool = True,
):
    """Plot ZNE extrapolation data for specific virtual qubit
    Args:
        pub_result: The Estimator PubResult for the PEA experiment.
        angles: The Rx theta angles used for the experiment.
        qubit: The virtual qubit index to plot.
        noise_factors: the raw noise factors.
        extrapolator: The extrapolator metadata for multiple extrapolators.
        extrapolated_noise_factors: The noise factors used for extrapolation.
        num_cols: The number of columns for the generated subplots.
        close: Close the Matplotlib figure before returning.
    Returns:
        The Matplotlib figure.
    """
    data = pub_result.data

    evs_auto = data.evs[qubit]
    stds_auto = data.stds[qubit]
    evs_extrap = data.evs_extrapolated[qubit]
    stds_extrap = data.stds_extrapolated[qubit]
    evs_raw = data.evs_noise_factors[qubit]
    stds_raw = data.stds_noise_factors[qubit]

    num_params = evs_auto.shape[0]
    angles = np.asarray(angles).ravel()
    if angles.shape != (num_params,):
        raise ValueError(
            f"Incorrect number of angles for input data {angles.size} != {num_params}"
        )

    # Make a square subplot
    num_cols = num_cols or int(np.ceil(np.sqrt(num_params)))
    num_rows = int(np.ceil(num_params / num_cols))
    fig, axes = plt.subplots(
        num_rows, num_cols, sharex=True, sharey=True, figsize=(12, 5)
    )
    fig.suptitle(f"ZNE data for virtual qubit {qubit}")

    for pidx, ax in zip(range(num_params), axes.flat):
        # Plot auto extrapolated
        ax.errorbar(
            0,
            evs_auto[pidx],
            stds_auto[pidx],
            fmt="o",
            label="PEA (automatic)",
        )

        # Plot extrapolators
        if (
            extrapolator is not None
            and extrapolated_noise_factors is not None
        ):
            for i, method in enumerate(extrapolator):
                ax.errorbar(
                    extrapolated_noise_factors,
                    evs_extrap[pidx, i],
                    stds_extrap[pidx, i],
                    fmt="-",
                    alpha=0.5,
                    label=f"PEA ({method})",
                )

        # Plot raw
        ax.errorbar(
            noise_factors, evs_raw[pidx], stds_raw[pidx], fmt="d", label="Raw"
        )

        ax.set_yticks([0, 0.5, 1, 1.5, 2])
        ax.set_ylim(0, max(1, 1.1 * max(evs_auto)))

        ax.set_xticks([0, *noise_factors])
        ax.set_title(f"θ/π = {angles[pidx]/np.pi:.2f}")
        if pidx == 0:
            ax.set_ylabel(r"$\langle Z_{" + str(qubit) + r"} \rangle$")
        if pidx == num_params - 1:
            ax.set_xlabel("Noise Factor")
            ax.legend()
    plt.tight_layout()
    if close:
        plt.close(fig)
    return fig

Exemple de simulateur à petite échelle

Nous allons ignorer cette étape, car la gestion des erreurs d'exécution n'est pas prise en charge sur les simulateurs.


Exemple de matériel à grande échelle

Étape 1 : Mettre en correspondance les entrées classiques avec un problème quantique

Créer un circuit de modèle Ising paramétré

Mettre en place un backend

Tout d'abord, choisissez un backend sur lequel vous souhaitez travailler. Cette démonstration fonctionne avec un backend de 127 qubits, mais vous pouvez la modifier pour l'adapter à n'importe quel backend disponible.

service = QiskitRuntimeService()
backend = service.least_busy(
    operational=True, simulator=False, min_num_qubits=127
)
backend

Output:

<IBMBackend('ibm_fez')>
Définir les couplages entre couches enchevêtrées

Pour mettre en œuvre la simulation d'Ising trotterisée, définissez trois couches de couplages de porte à deux qubits pour le dispositif, à répéter à chaque étape de Trotter. Il s'agit des trois couches tourbillonnantes dont il faut connaître le bruit pour mettre en œuvre des mesures d'atténuation.

layer_couplings = construct_layer_couplings(backend)
for i, layer in enumerate(layer_couplings):
    print(f"Layer {i}:\n{layer}\n")

Output:

Layer 0:
[(2, 3), (4, 5), (6, 7), (8, 9), (10, 11), (12, 13), (14, 15), (16, 23), (18, 31), (19, 35), (20, 21), (25, 37), (26, 27), (28, 29), (33, 39), (36, 41), (38, 49), (42, 43), (45, 46), (47, 57), (51, 52), (53, 54), (56, 63), (58, 71), (59, 75), (61, 62), (64, 65), (66, 67), (68, 69), (72, 73), (76, 81), (79, 93), (82, 83), (84, 85), (86, 87), (88, 89), (91, 98), (94, 95), (97, 107), (99, 115), (100, 101), (102, 103), (105, 117), (108, 109), (110, 111), (113, 114), (116, 121), (118, 129), (123, 136), (124, 125), (126, 127), (130, 131), (132, 133), (135, 139), (138, 151), (142, 143), (144, 145), (146, 147), (152, 153), (154, 155)]

Layer 1:
[(0, 1), (3, 16), (5, 6), (7, 8), (11, 18), (13, 14), (17, 27), (21, 22), (23, 24), (25, 26), (29, 38), (30, 31), (32, 33), (34, 35), (39, 53), (41, 42), (43, 56), (44, 45), (47, 48), (49, 50), (51, 58), (54, 55), (57, 67), (60, 61), (62, 63), (65, 66), (69, 78), (70, 71), (73, 79), (74, 75), (77, 85), (80, 81), (83, 84), (87, 97), (89, 90), (91, 92), (93, 94), (96, 103), (101, 116), (104, 105), (106, 107), (109, 118), (111, 112), (113, 119), (114, 115), (117, 125), (121, 122), (123, 124), (127, 137), (128, 129), (131, 138), (133, 134), (136, 143), (139, 155), (140, 141), (145, 146), (147, 148), (149, 150), (151, 152)]

Layer 2:
[(1, 2), (3, 4), (7, 17), (9, 10), (11, 12), (15, 19), (21, 36), (22, 23), (24, 25), (27, 28), (29, 30), (31, 32), (33, 34), (37, 45), (40, 41), (43, 44), (46, 47), (48, 49), (50, 51), (52, 53), (55, 59), (61, 76), (63, 64), (65, 77), (67, 68), (69, 70), (71, 72), (73, 74), (78, 89), (81, 82), (83, 96), (85, 86), (87, 88), (90, 91), (92, 93), (95, 99), (98, 111), (101, 102), (103, 104), (105, 106), (107, 108), (109, 110), (112, 113), (119, 133), (120, 121), (122, 123), (125, 126), (127, 128), (129, 130), (131, 132), (134, 135), (137, 147), (141, 142), (143, 144), (148, 149), (150, 151), (153, 154)]

Supprimer les qubits défectueux

Regardez la carte des couplages pour le backend et voyez si des qubits se connectent à des couplages avec un taux d'erreur élevé. Retirez ces "mauvais" qubits de votre expérience.

# Plot gate error map
# NOTE: These can change over time, so your results may look different
plot_error_map(backend)

Output:

Output of the previous code cell
bad_qubits = {
    32,
    33,
    71,
    72,
    73,
    102,
    103,
}  # qubits removed based on high coupling error (1.00)
good_qubits = list(set(range(backend.num_qubits)).difference(bad_qubits))
print("Physical qubits:\n", good_qubits)

Output:

Physical qubits:
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155]
Génération du circuit principal Trotter
num_steps = 6
theta = Parameter("theta")
circuit = trotter_circuit(
    theta, layer_couplings, num_steps, qubits=good_qubits, backend=backend
)

Créer une liste des valeurs des paramètres à attribuer ultérieurement

num_params = 12

# 12 parameter values for Rx between [0, pi/2].
# Reshape to outer product broadcast with observables
parameter_values = np.linspace(0, np.pi / 2, num_params).reshape(
    (num_params, 1)
)
num_params = parameter_values.size

Étape 2 : Optimiser le problème pour l'exécution sur du matériel quantique

circuit ISA

Avant d'exécuter le circuit sur le matériel, optimisez-le pour l'exécution matérielle. Ce processus comporte plusieurs étapes :

  • Choisissez une disposition de qubits qui fait correspondre les qubits virtuels de votre circuit aux qubits physiques du matériel.
  • Insérez des portes de permutation si nécessaire pour acheminer les interactions entre les qubits qui ne sont pas connectés.
  • Traduire les portes de notre circuit en instructions ISA (Instruction Set Architecture) qui peuvent être directement exécutées sur le matériel.
  • Effectuer des optimisations de circuit pour minimiser la profondeur du circuit et le nombre de portes.

Bien que le transpondeur intégré à Qiskit puisse réaliser toutes ces étapes, ce tutoriel présente la construction du circuit Trotter à l'échelle de l'entreprise en partant de la base. Sélectionner les bons qubits physiques et définir des couches d'enchevêtrement sur des paires de qubits connectés à partir de ces qubits sélectionnés. Néanmoins, vous devez toujours traduire les portes non-ISA dans le circuit et profiter de l'optimisation du circuit offerte par le transpileur.

Transpilez votre circuit pour le backend choisi en créant un gestionnaire de passe et en exécutant le gestionnaire de passe sur le circuit. Fixez également la disposition initiale du circuit sur le site déjà sélectionné good_qubits. Un moyen simple de créer un gestionnaire de laissez-passer est d'utiliser la fonction generate_preset_pass_manager fonction. Voir Transpiler avec les gestionnaires de passe pour une explication plus détaillée de la transposition avec les gestionnaires de passe.

pm = generate_preset_pass_manager(
    backend=backend,
    initial_layout=good_qubits,
    layout_method="trivial",
    optimization_level=1,
)

isa_circuit = pm.run(circuit)

Observables ISA

Ensuite, créez toutes les observables weight-1 Z\langle Z \rangle pour chaque qubit virtuel en ajoutant le nombre nécessaire de termes I\langle I \rangle.

observables = []
num_qubits = len(good_qubits)
for q in range(num_qubits):
    observables.append(
        SparsePauliOp("I" * (num_qubits - q - 1) + "Z" + "I" * q)
    )

Le processus de transpilation a mis en correspondance les qubits virtuels de votre circuit avec les qubits physiques du matériel. Les informations relatives à la disposition du qubit sont stockées dans l'attribut layout du circuit transposé. Votre observable est également défini en termes de qubits virtuels, vous devez donc appliquer cette disposition à l'observable. Pour ce faire, on utilise la méthode apply_layout de SparsePauliOp.

Notez que chaque observable est encapsulé dans une liste dans le bloc de code suivant. Cette opération est effectuée pour diffuser les valeurs des paramètres, de sorte que chaque observable de qubit soit mesurée pour chaque valeur de thêta. Vous trouverez les règles de diffusion des primitives dans la documentation relative aux primitives.

isa_observables = [
    [obs.apply_layout(layout=isa_circuit.layout)] for obs in observables
]

Étape 3 : Exécutez à l'aide d' Qiskit primitives

pub = (isa_circuit, isa_observables, parameter_values)

Configurer les options de l'estimateur

Configurez ensuite les options Estimator nécessaires à l'exécution de l'expérience d'atténuation. Cela inclut des options pour l'apprentissage du bruit des couches enchevêtrées et pour l'extrapolation des ZNE.

Nous utilisons la configuration suivante :

# Experiment options
num_randomizations = 700
num_randomizations_learning = 40
max_batch_circuits = 3 * num_params
shots_per_randomization = 64
learning_pair_depths = [0, 1, 2, 4, 6, 12, 24]
noise_factors = [1, 1.3, 1.6]
extrapolated_noise_factors = np.linspace(0, max(noise_factors), 20)

# Base option formatting
options = {
    # Builtin resilience settings for ZNE
    "resilience": {
        "measure_mitigation": True,
        "zne_mitigation": True,
        # TREX noise learning configuration
        "measure_noise_learning": {
            "num_randomizations": num_randomizations_learning,
            "shots_per_randomization": 1024,
        },
        # PEA noise model configuration
        "layer_noise_learning": {
            "max_layers_to_learn": 3,
            "layer_pair_depths": learning_pair_depths,
            "shots_per_randomization": shots_per_randomization,
            "num_randomizations": num_randomizations_learning,
        },
        "zne": {
            "amplifier": "pea",
            "noise_factors": noise_factors,
            "extrapolator": ("exponential", "linear"),
            "extrapolated_noise_factors": extrapolated_noise_factors.tolist(),
        },
    },
    # Randomization configuration
    "twirling": {
        "num_randomizations": num_randomizations,
        "shots_per_randomization": shots_per_randomization,
        "strategy": "active-circuit",
    },
    # Optional Dynamical Decoupling (DD)
    "dynamical_decoupling": {"enable": True, "sequence_type": "XY4"},
    # Job tag
    "environment": {"job_tags": ["TUT_PEA"]},
}
Explication des options ZNE

Les paragraphes suivants détaillent les options supplémentaires de la branche expérimentale. Notez que ces options et ces noms ne sont pas définitifs, et que tout ce qui figure ici est susceptible d'être modifié avant la publication officielle.

  • amplificateur : méthode à utiliser pour amplifier le bruit jusqu'aux niveaux souhaités. Les valeurs autorisées sont "gate_folding", qui amplifie en répétant des portes de base à deux qubits, et "pea", qui amplifie par échantillonnage probabiliste après apprentissage du modèle de bruit à torsion de Pauli pour des couches de portes de base à deux qubits avec torsion. D'autres options sont "gate_folding_front" et "gate_folding_back", qui sont décrites dans la documentation de l'API.
  • facteurs de bruit extrapolés : Spécifier une ou plusieurs valeurs de facteur de bruit pour lesquelles évaluer les modèles extrapolés modèles extrapolés. S'il s'agit d'une séquence de valeurs, les résultats renvoyés seront des valeurs de tableau avec le facteur de bruit spécifié évalué pour le modèle d'extrapolation. Une valeur de 0 correspond à une extrapolation sans bruit.

Exécution de l'expérimentation

estimator = Estimator(mode=backend, options=options)
job = estimator.run([pub])
print(f"Job ID {job.job_id()}")

Output:

Job ID d7fa8oe2cugc739qbb10
job.status()

Output:

'DONE'

Étape 4 : Post-traitement et restitution du résultat dans le format classique souhaité

Une fois l'expérience terminée, vous pouvez consulter vos résultats. Vous récupérez les valeurs brutes et atténuées des attentes et les comparez aux résultats exacts. Tracez ensuite les valeurs d'espérance, à la fois atténuées (extrapolées) et brutes, moyennées sur tous les qubits pour chaque paramètre. Enfin, tracez les valeurs d'espérance pour votre choix de qubits individuels.

primitive_result = job.result()

Formes générales des résultats et métadonnées

L'objet PrimitiveResult contient une structure de type liste nommée PubResult. Comme nous ne soumettons qu'un seul PUB à l'estimateur, le PrimitiveResult contient un seul objet PubResult .

Les valeurs attendues et les erreurs types du résultat PUB (bloc unifié primitif) sont des valeurs de tableau. Pour les tâches d'estimation avec ZNE, plusieurs champs de données contenant les valeurs attendues et les erreurs types sont disponibles dans le PubResultconteneur DataBin « s ». Nous aborderons brièvement ici les champs de données relatifs aux valeurs attendues (des champs de données similaires sont également disponibles pour les erreurs types (stds)).

  1. pub_result.data.evs: Valeurs d'espérance correspondant au bruit zéro (basées sur la meilleure extrapolation heuristique).
    • Le premier axe est l'indice du qubit virtuel pour l'observable Zi\langle Z_i\rangle ( 124124 virtual-qubits/observables)
    • Le deuxième axe indexe la valeur du paramètre pour θ\theta (valeurs du paramètre 1212 )
  2. pub_result.data.evs_extrapolated: Valeurs attendues pour les facteurs de bruit extrapolés pour chaque extrapolateur. Ce tableau comporte deux axes supplémentaires.
    • Le troisième axe indexe les méthodes d'extrapolation ( 22 extrapolateurs, exponential et linear)
    • Le dernier axe indexe les extrapolated_noise_factors (points 2020 d'extrapolation spécifiés dans l'option)
  3. pub_result.data.evs_noise_factors: Valeurs brutes de l'espérance pour chaque facteur de bruit.
    • Le troisième axe indexe les facteurs bruts noise_factors ( 33 )
pub_result = primitive_result[0]

print(
    f"{pub_result.data.evs.shape=}\n"
    f"{pub_result.data.evs_extrapolated.shape=}\n"
    f"{pub_result.data.evs_noise_factors.shape=}\n"
)

Output:

pub_result.data.evs.shape=(149, 12)
pub_result.data.evs_extrapolated.shape=(149, 12, 2, 20)
pub_result.data.evs_noise_factors.shape=(149, 12, 3)

Plusieurs champs de métadonnées sont également disponibles sur le site PrimitiveResult. Les métadonnées incluent notamment :

  • resilience/zne/noise_factors: Les facteurs de bruit bruts
  • resilience/zne/extrapolator: Les extrapolateurs utilisés pour chaque résultat
primitive_result.metadata

Output:

{'dynamical_decoupling': {'enable': True,
  'sequence_type': 'XY4',
  'extra_slack_distribution': 'middle',
  'scheduling_method': 'alap'},
 'twirling': {'enable_gates': True,
  'enable_measure': True,
  'num_randomizations': 700,
  'shots_per_randomization': 64,
  'interleave_randomizations': True,
  'strategy': 'active-circuit'},
 'resilience': {'measure_mitigation': True,
  'zne_mitigation': True,
  'pec_mitigation': False,
  'zne': {'noise_factors': [1.0, 1.3, 1.6],
   'extrapolator': ['exponential', 'linear'],
   'extrapolated_noise_factors': [0.0,
    0.08421052631578947,
    0.16842105263157894,
    0.25263157894736843,
    0.3368421052631579,
    0.42105263157894735,
    0.5052631578947369,
    0.5894736842105263,
    0.6736842105263158,
    0.7578947368421053,
    0.8421052631578947,
    0.9263157894736842,
    1.0105263157894737,
    1.0947368421052632,
    1.1789473684210525,
    1.263157894736842,
    1.3473684210526315,
    1.431578947368421,
    1.5157894736842106,
    1.6]},
  'layer_noise_model': [LayerError(circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x1354890f0>, qubits=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], error=PauliLindbladError(generators=['IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...', ...], rates=[0.00155, 0.00144, 0.00637, 0.00023, 0.0, 0.0, 0.00018, 0.00035, 0.0, 0.00014, 5e-05, 0.00041, 0.0, 0.0, 0.0, 0.0001, 0.0001, 0.0, 9e-05, 6e-05, 0.0, 7e-05, 0.0001, 0.00013, 0.00018, 1e-05, 5e-05, 7e-05, 6e-05, 6e-05, 0.00029, 0.00016, 6e-05, 6e-05, 0.00046, 0.00073, 0.00031, 0.00025, 0.00018, 0.00022, 0.0, 8e-05, 0.00012, 0.00015, 0.00012, 0.0, 0.0, 0.00023, 5e-05, 5e-05, 7e-05, 0.00064, 4e-05, 2e-05, 0.00072, 0.00037, 2e-05, 4e-05, 0.00077, 0.0003, 0.00042, 0.00027, 0.00016, 0.0, 8e-05, 5e-05, 0.00019, 0.0, 0.0, 0.00021, 0.00014, 0.00061, 0.0, 0.00016, 3e-05, 0.00053, 0.00013, 0.0, 0.00068, 0.00011, 0.0, 0.00013, 0.00078, 0.01885, 0.00032, 0.00034, 0.00035, 0.00052, 3e-05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028, 0.00123, 0.0, 0.0, 0.0, 0.00034, 0.00011, 0.0001, 0.00076, 0.00041, 0.0001, 0.00011, 0.00082, 0.0, 0.00066, 0.0, 0.00055, 7e-05, 0.00018, 0.00011, 0.00024, 3e-05, 0.00015, 0.00014, 0.0, 0.00076, 9e-05, 0.00016, 8e-05, 0.00132, 0.0, 0.00019, 0.00215, 0.00109, 0.00019, 0.0, 0.00201, 0.00021, 0.0006, 0.00032, 0.00046, 0.00027, 0.0, 8e-05, 0.0001, 0.00027, 0.0, 0.00015, 0.00018, 0.0, 0.00026, 0.00024, 5e-05, 0.00031, 0.0, 0.00034, 0.00039, 9e-05, 0.00034, 0.0, 0.00078, 0.00794, 0.00045, 0.00061, 0.00066, 0.0, 0.0, 0.00032, 6e-05, 5e-05, 7e-05, 0.0, 0.0001, 0.00036, 0.0, 0.00037, 0.00013, 0.00016, 3e-05, 8e-05, 0.00067, 0.00024, 8e-05, 3e-05, 0.00074, 0.00224, 0.00029, 0.00026, 0.00031, 0.00076, 5e-05, 0.0, 2e-05, 0.00072, 0.0, 1e-05, 0.00011, 0.00027, 0.0, 0.00017, 0.0, 0.0, 0.00012, 0.0, 0.0, 0.0, 0.0, 0.00067, 0.00063, 0.0, 0.0, 0.0, 0.00102, 0.0, 0.00011, 0.00026, 4e-05, 1e-05, 0.0002, 0.0, 0.00011, 0.0, 0.00021, 0.00015, 0.0005, 0.00011, 0.00013, 0.0, 0.0002, 0.00016, 0.00015, 8e-05, 2e-05, 7e-05, 0.00023, 0.00042, 0.0, 0.00049, 0.00056, 0.00372, 0.00017, 0.00012, 0.0, 0.00026, 0.00021, 0.0, 0.00012, 0.00046, 0.00305, 0.0005, 0.00057, 9e-05, 0.0009, 0.0, 7e-05, 0.00011, 0.00084, 0.0, 0.0, 0.0001, 0.00067, 0.0, 0.0, 0.0, 4e-05, 0.0, 1e-05, 0.00053, 0.0, 9e-05, 0.00021, 0.0, 1e-05, 0.0, 8e-05, 0.0, 0.0, 0.0, 9e-05, 0.00083, 0.00084, 0.00038, 9e-05, 3e-05, 0.00039, 0.02059, 0.0, 0.0, 0.0, 0.01787, 0.00012, 0.00024, 0.0, 0.00401, 0.0, 0.0, 0.0, 4e-05, 0.0, 0.0, 0.00018, 0.0, 0.00031, 0.00018, 0.0, 0.0, 0.0, 0.0, 0.00013, 0.0, 0.00027, 1e-05, 0.0, 0.00021, 0.0, 0.0, 0.00029, 0.00159, 0.0, 0.0, 0.00052, 0.0079, 0.0, 0.0002, 0.00147, 0.00048, 4e-05, 0.00976, 0.00957, 0.0011, 0.0, 0.0, 4e-05, 0.00048, 0.01068, 0.00487, 0.00225, 0.0, 0.0, 0.00026, 0.00052, 0.00033, 0.0, 0.00019, 0.0, 0.0, 0.00038, 0.0, 0.0, 0.0, 0.00154, 0.0, 0.0, 0.0, 0.00046, 0.0, 9e-05, 0.00077, 0.0002, 9e-05, 0.0, 0.00077, 0.00061, 6e-05, 0.00045, 0.00081, 0.00016, 0.0, 0.0, 0.0001, 0.00064, 4e-05, 0.0002, 0.0, 0.00056, 7e-05, 0.0, 0.0, 0.00066, 5e-05, 0.00025, 0.00077, 0.00011, 0.0, 0.0, 0.00065, 0.00025, 5e-05, 0.00082, 6e-05, 0.0, 0.00011, 0.00354, 0.00027, 0.00039, 0.00046, 0.00014, 0.0, 0.00013, 0.00067, 0.00064, 0.0006, 0.00053, 2e-05, 0.00016, 0.00067, 0.0, 0.00013, 0.0, 0.00047, 0.00016, 2e-05, 0.00067, 4e-05, 0.0, 0.00015, 0.00028, 0.00044, 0.00041, 0.00014, 0.00011, 0.0, 0.0, 5e-05, 0.0, 0.00017, 0.00022, 9e-05, 6e-05, 0.0, 0.00021, 0.0007, 3e-05, 0.0, 0.0, 0.0002, 0.00012, 3e-05, 0.0002, 0.0001, 3e-05, 0.00012, 0.00026, 0.00033, 0.00053, 0.00037, 0.00039, 9e-05, 6e-05, 7e-05, 0.00012, 0.00012, 0.0, 0.00022, 0.0, 0.00034, 0.00014, 8e-05, 0.0001, 0.00179, 0.00186, 0.00096, 0.00028, 0.00051, 0.00033, 0.0, 0.0, 0.00015, 0.0004, 0.0, 8e-05, 0.00015, 2e-05, 0.00015, 0.0, 0.00045, 0.0002, 0.0, 0.0, 0.00063, 0.00044, 0.00036, 0.00064, 0.0003, 2e-05, 0.0, 0.00124, 0.0, 0.0, 0.0, 0.00169, 0.00032, 0.00018, 0.0, 0.00147, 0.0, 0.0, 0.00037, 0.00095, 0.0, 0.00051, 0.00182, 0.00088, 0.00051, 0.0, 0.00116, 0.00093, 0.00124, 0.00219, 0.00052, 0.00072, 4e-05, 0.0, 0.0, 4e-05, 0.0, 0.00025, 0.00013, 0.0001, 0.00031, 0.0, 0.00027, 0.00022, 0.0, 0.00016, 0.0, 1e-05, 0.0001, 0.0, 3e-05, 0.0, 0.0, 2e-05, 6e-05, 0.0, 0.00021, 0.00251, 0.0, 0.0, 7e-05, 0.0, 0.0, 0.0, 0.00047, 5e-05, 2e-05, 0.00062, 0.00038, 2e-05, 5e-05, 0.00055, 0.00125, 0.00049, 0.00033, 0.00031, 0.00015, 0.0, 0.00015, 7e-05, 0.00047, 0.0, 1e-05, 3e-05, 1e-05, 0.00014, 0.0, 0.00026, 0.00092, 0.0, 0.0, 0.0, 0.00048, 0.00011, 4e-05, 0.0, 0.00077, 0.00013, 0.00014, 0.00031, 0.00048, 0.0, 0.0001, 0.00066, 6e-05, 2e-05, 0.0, 0.00029, 0.0001, 0.0, 0.00065, 0.0, 0.00013, 3e-05, 0.0, 0.00033, 0.00034, 0.00019, 2e-05, 0.0, 0.00015, 0.00046, 0.0, 2e-05, 1e-05, 0.00046, 8e-05, 6e-05, 0.0, 0.00035, 1e-05, 0.0001, 0.0, 1e-05, 0.0, 0.00012, 8e-05, 7e-05, 5e-05, 0.0, 0.00013, 0.0, 0.0, 0.0, 0.0, 0.00022, 0.0, 0.00013, 0.00028, 0.00014, 0.00013, 0.0, 0.00042, 0.00055, 0.00054, 0.00036, 5e-05, 0.0002, 0.0, 0.0, 0.00014, 1e-05, 0.00019, 2e-05, 6e-05, 0.00026, 0.0001, 0.0, 5e-05, 8e-05, 0.0, 0.00073, 7e-05, 0.0, 0.0, 1e-05, 0.0, 0.0, 6e-05, 4e-05, 0.00018, 0.00046, 0.00016, 0.00018, 4e-05, 0.00053, 0.0002, 0.00057, 0.00055, 0.00042, 0.00077, 6e-05, 0.00025, 5e-05, 0.00062, 0.00026, 0.00012, 4e-05, 0.00033, 8e-05, 0.0, 0.0004, 0.00036, 0.00016, 0.0, 0.0, 4e-05, 0.0, 4e-05, 0.0002, 4e-05, 0.00036, 0.0, 4e-05, 0.00024, 0.0, 0.0002, 0.00044, 0.00017, 0.0002, 0.0, 0.00051, 0.00059, 0.00061, 0.00069, 0.00064, 0.0006, 0.0, 7e-05, 4e-05, 0.00085, 0.0, 4e-05, 0.0, 0.00031, 0.00033, 0.0, 0.0001, 0.00037, 3e-05, 0.0, 0.0, 0.00018, 0.0, 0.00015, 4e-05, 0.00044, 9e-05, 2e-05, 2e-05, 0.00067, 0.00048, 6e-05, 0.0, 0.0, 0.0, 0.00028, 0.0, 1e-05, 0.0, 0.0, 0.00112, 0.0, 0.0, 0.00018, 0.00016, 0.0, 0.00018, 0.00055, 9e-05, 0.00018, 0.0, 0.00028, 0.00254, 0.00064, 0.00025, 0.00045, 0.00072, 7e-05, 6e-05, 0.00114, 0.00026, 0.00013, 0.0, 0.00081, 6e-05, 7e-05, 0.00139, 0.00014, 0.0, 0.00026, 0.00097, 0.00053, 0.00029, 0.00044, 0.0, 6e-05, 0.0, 0.00011, 3e-05, 0.0, 0.0002, 0.00024, 0.0, 5e-05, 5e-05, 5e-05, 0.0, 0.00014, 0.00025, 0.00032, 0.00011, 5e-05, 0.00067, 4e-05, 5e-05, 0.00011, 0.00061, 0.00015, 0.00035, 0.00035, 0.0003, 0.0006, 0.0, 0.00017, 0.0001, 0.0003, 0.00012, 8e-05, 0.00015, 7e-05, 0.0001, 5e-05, 0.00057, 0.0003, 9e-05, 0.00023, 0.0, 0.0001, 0.00015, 0.00073, 0.0, 0.0, 0.00012, 0.00041, 0.00015, 0.0001, 0.00079, 0.0003, 0.00011, 0.0, 0.00042, 0.00088, 0.00066, 0.00062, 0.00051, 0.0, 0.0, 0.00013, 0.00028, 8e-05, 0.00022, 0.0, 0.00044, 0.0, 0.00013, 0.0, 0.0, 0.0002, 0.00014, 0.00062, 0.00022, 0.00014, 0.0002, 0.0005, 4e-05, 0.00064, 0.00058, 0.00046, 0.00055, 0.0, 8e-05, 0.00012, 0.00067, 0.0, 0.0, 0.00014, 0.00095, 0.00025, 0.0, 0.00016, 0.00058, 0.00041, 0.00052, 0.00022, 6e-05, 0.0, 0.00034, 0.00011, 0.0, 0.0, 0.00015, 0.0, 6e-05, 0.00034, 0.0, 0.00016, 4e-05, 0.00126, 0.00041, 0.00037, 0.00015, 0.0, 0.0, 0.0, 0.00011, 0.0, 0.00024, 5e-05, 0.00029, 1e-05, 2e-05, 0.0, 0.00033, 0.00036, 4e-05, 0.00024, 0.001, 0.0, 0.0, 0.0, 0.00046, 0.0, 0.00028, 2e-05, 0.0009, 0.00012, 0.0, 0.00032, 0.00428, 0.00026, 9e-05, 0.0, 0.00372, 0.0, 9e-05, 0.0, 0.00107, 0.00018, 0.0, 0.00047, 0.00025, 0.00031, 0.00024, 0.00068, 0.00063, 0.00052, 4e-05, 0.00011, 0.00011, 0.00044, 7e-05, 4e-05, 4e-05, 5e-05, 0.00011, 0.00011, 0.00034, 0.0, 0.00017, 0.0, 0.00051, 0.00041, 0.00032, 0.00022, 0.0, 0.0, 9e-05, 6e-05, 7e-05, 0.00011, 2e-05, 0.00052, 0.0, 0.0, 0.0, 0.00731, 0.00017, 0.0, 0.0, 0.00026, 0.0, 0.00031, 0.0005, 0.0, 0.00031, 0.0, 0.00063, 0.0, 0.00026, 0.00052, 0.0, 0.0, 4e-05, 0.0, 0.00024, 7e-05, 9e-05, 6e-05, 3e-05, 0.0, 0.0, 0.00025, 0.00029, 0.00025, 0.00012, 4e-05, 5e-05, 0.00014, 4e-05, 0.00091, 9e-05, 0.0, 7e-05, 0.00019, 4e-05, 0.00014, 0.00085, 0.00037, 6e-05, 4e-05, 0.0001, 0.00025, 0.00026, 0.00013, 0.00026, 0.00014, 0.0, 2e-05, 0.00023, 0.0, 0.00021, 0.0, 0.0, 0.00031, 0.00031, 0.0001, 0.00013, 6e-05, 0.00013, 0.00071, 0.00048, 0.00013, 6e-05, 0.00076, 0.00018, 0.00042, 0.00044, 0.00018, 0.00014, 0.0, 0.00013, 9e-05, 0.0003, 0.0, 0.0, 1e-05, 0.0, 0.00019, 0.0, 7e-05, 1e-05, 9e-05, 0.0, 0.00011, 0.0, 7e-05, 0.00041, 0.0, 0.0, 0.00032, 0.0, 7e-05, 0.0, 0.00034, 0.0014, 0.0, 0.0002, 6e-05, 0.00036, 0.00031, 0.00039, 0.00042, 7e-05, 0.0, 0.0, 0.00014, 0.00011, 0.0, 2e-05, 0.00024, 0.0, 9e-05, 0.00036, 0.00023, 0.00012, 0.00011, 0.0, 0.00052, 5e-05, 0.0, 4e-05, 0.00033, 1e-05, 0.0, 9e-05, 0.00064, 0.0, 7e-05, 0.0, 0.00044, 0.00016, 0.0, 0.0, 0.00029, 0.0, 0.0, 0.00012, 0.00021, 0.0, 0.00017, 0.00068, 7e-05, 0.0, 0.00014, 0.00027, 0.00017, 0.0, 0.0006, 9e-05, 1e-05, 0.0, 0.00064, 0.00025, 0.00031, 0.00019, 0.0, 0.0, 0.00013, 0.00056, 0.0, 0.00017, 0.0, 0.00053, 7e-05, 0.0, 6e-05, 0.00029, 0.00018, 6e-05, 3e-05, 0.00027, 0.0, 6e-05, 0.00058, 0.00044, 6e-05, 0.0, 0.00052, 0.0004, 0.00073, 0.00066, 3e-05, 0.0004, 9e-05, 0.0, 0.00021, 0.00048, 0.0, 0.00016, 0.0, 0.00257, 0.0, 0.00021, 0.00024, 0.00012, 0.0, 0.00015, 8e-05, 0.00025, 0.00012, 0.0, 0.0, 0.00025, 0.00028, 0.0, 0.00014, 0.0, 7e-05, 0.00017, 0.00029, 0.0, 0.00017, 7e-05, 0.00024, 0.0, 0.00061, 0.00068, 0.0, 0.00018, 0.0, 7e-05, 1e-05, 0.0, 0.00017, 0.0, 0.0, 0.0003, 0.00013, 1e-05, 0.00024, 0.00098, 0.00071, 0.00142, 9e-05, 0.00011, 0.0, 0.00056, 0.00042, 0.0, 0.00011, 0.00064, 0.00085, 0.00098, 0.00071, 0.00018, 0.00085, 0.00081, 0.00016, 0.0, 0.0, 0.0, 7e-05, 0.0, 0.0, 0.0, 0.0, 0.00036, 0.00012, 0.0, 0.0, 0.00048, 0.00021, 0.00031, 6e-05, 0.00059, 0.00041, 0.00028, 7e-05, 0.00026, 0.0004, 0.00036, 0.00016, 0.00014, 9e-05, 6e-05, 0.00043, 0.0, 8e-05, 7e-05, 0.00036, 6e-05, 9e-05, 0.00055, 6e-05, 0.0, 3e-05, 0.00032, 0.00036, 0.00036, 0.00017, 0.0, 0.0, 1e-05, 0.00038, 0.0, 8e-05, 5e-05, 0.00026, 0.00014, 3e-05, 5e-05, 0.0, 0.0, 0.0, 0.00017, 0.00027, 0.0, 0.00019, 0.00063, 4e-05, 0.00019, 0.0, 0.00077, 0.00116, 0.00051, 0.00048, 0.00036, 8e-05, 0.0, 0.00011, 0.0001, 0.00013, 7e-05, 0.0, 0.0, 0.0, 0.0, 0.00028, 0.00026, 0.00014, 0.0003, 0.00011, 5e-05, 6e-05, 0.00017, 0.0007, 0.0, 0.0, 0.00011, 0.00063, 0.00017, 6e-05, 0.00079, 0.0, 0.0, 5e-05, 9e-05, 0.00029, 0.00021, 0.00048, 0.00072, 0.0, 0.0, 0.0, 0.00034, 9e-05, 4e-05, 0.0, 0.00013, 0.0, 5e-05, 0.00037, 0.0, 0.00011, 0.0, 0.00034, 0.0, 0.0, 7e-05, 0.0, 0.00605, 0.0, 0.00011, 0.00012, 0.00012, 0.00023, 0.0, 0.00026, 0.00016, 0.0, 0.00023, 0.00031, 0.00078, 0.0006, 0.00026, 0.00055, 0.00043, 0.00012, 0.0001, 0.00052, 8e-05, 0.0, 0.0, 0.00033, 0.0001, 0.00012, 0.00051, 5e-05, 0.00012, 0.0, 0.00105, 0.00028, 0.00018, 0.00023, 0.0, 2e-05, 0.0, 0.0, 0.00019, 0.0, 0.00015, 0.00013, 0.00018, 2e-05, 0.0, 7e-05, 0.0001, 0.0002, 0.00014, 0.00029, 0.0, 8e-05, 0.0005, 0.0002, 8e-05, 0.0, 0.00046, 0.0017, 0.00108, 0.00089, 0.00035, 0.0, 0.00016, 1e-05, 9e-05, 0.00024, 0.0, 1e-05, 8e-05, 0.00024, 0.00013, 0.00032, 8e-05, 0.00127, 4e-05, 0.0, 0.0, 0.00095, 0.0, 0.00017, 0.0, 0.00052, 0.00017, 2e-05, 0.00029, 0.00036, 0.00049, 0.00056, 2e-05, 0.00026, 3e-05, 0.00048, 0.0, 3e-05, 0.00014, 0.00024, 3e-05, 0.00026, 0.0006, 2e-05, 0.00015, 5e-05, 0.0, 0.00025, 0.00038, 0.00034, 4e-05, 0.0, 0.00029, 0.00044, 0.00024, 0.0, 0.0, 0.00046, 5e-05, 0.0001, 0.0, 0.00048, 0.0, 4e-05, 0.00028, 0.0, 0.00026, 0.0, 3e-05, 1e-05, 0.0, 0.0, 0.00027, 0.00034, 0.0, 0.00016, 9e-05, 0.00013, 0.00019, 0.0, 0.0, 0.00014, 0.0, 0.0001, 3e-05, 0.00031, 5e-05, 0.00026, 0.00022, 0.0001, 0.00022, 0.0, 5e-05, 0.00012, 0.0, 0.00056, 0.0, 0.0, 0.00023, 0.0, 0.0, 0.00012, 0.00064, 0.00059, 0.0, 2e-05, 0.0, 0.00033, 0.00028, 0.00017, 0.00025, 3e-05, 1e-05, 6e-05, 0.00011, 0.0, 8e-05, 6e-05, 3e-05, 0.00016, 0.00034, 0.0, 0.00011, 0.00015, 0.0, 0.00044, 0.00028, 0.0, 0.00015, 0.00062, 0.00203, 0.00035, 0.00025, 0.00049, 0.00037, 0.0001, 2e-05, 0.0, 0.0003, 7e-05, 8e-05, 0.0, 0.00074, 9e-05, 0.0, 9e-05, 0.00016, 3e-05, 0.00013, 0.00079, 6e-05, 6e-05, 1e-05, 0.0, 0.00013, 3e-05, 0.00076, 0.0, 0.00017, 5e-05, 0.00031, 0.00025, 0.00035, 0.00023, 0.0, 2e-05, 0.0002, 0.00015, 9e-05, 1e-05, 0.00017, 0.0001, 0.00011, 6e-05, 1e-05, 0.00041, 0.0003, 0.00048, 0.0, 0.00017, 4e-05, 0.00025, 0.00063, 0.00018, 0.00025, 4e-05, 0.00065, 0.0019, 0.00043, 0.00028, 0.00033, 0.0, 1e-05, 0.00012, 0.0001, 0.00019, 3e-05, 0.0, 5e-05, 0.00038, 0.00012, 0.0, 0.0, 0.00025, 6e-05, 9e-05, 0.0, 0.00017, 1e-05, 0.0006, 0.00019, 0.0001, 0.00013, 0.0, 1e-05, 0.00017, 0.00068, 0.0, 3e-05, 0.0, 0.00021, 0.00019, 0.00029, 0.00041, 0.00073, 0.00011, 0.0, 0.0, 0.00064, 0.0, 0.00026, 5e-05, 0.00044, 0.0001, 0.0, 0.0002, 0.00037, 6e-05, 0.0, 8e-05, 0.00026, 0.0, 0.00019, 8e-05, 0.00017, 0.0, 0.0, 0.00021, 0.00023, 0.00016, 1e-05, 0.00037, 0.00041, 1e-05, 0.00016, 0.00044, 0.00046, 0.00054, 0.00065, 0.00033, 0.00033, 8e-05, 0.0, 8e-05, 0.00046, 0.0, 0.0001, 0.0, 0.00023, 0.0, 0.00015, 3e-05, 2e-05, 2e-05, 0.00031, 0.00012, 0.00028, 1e-05, 4e-05, 4e-05, 0.00038, 0.00027, 0.0, 0.0, 0.00073, 0.0002, 7e-05, 0.00076, 0.00063, 7e-05, 0.0002, 0.00086, 4e-05, 0.00052, 0.00053, 0.00012, 0.00068, 0.00068, 0.00019, 0.00063, 0.0, 1e-05, 5e-05, 0.00058, 0.0, 0.0, 0.0001, 0.00059, 0.00011, 0.0, 0.0, 0.00024, 0.00012, 0.0, 0.0, 0.00036, 0.0, 2e-05, 1e-05, 0.00021, 0.0, 0.00012, 0.0, 0.00031, 9e-05, 0.0, 0.0, 0.0, 8e-05, 0.00054, 6e-05, 0.0, 0.0, 0.00026, 8e-05, 0.0, 0.00056, 0.00078, 5e-05, 2e-05, 4e-05, 0.00036, 0.0004, 0.00015, 8e-05, 5e-05, 0.00012, 6e-05, 0.00017, 5e-05, 1e-05, 0.0, 0.0, 5e-05, 0.00011, 7e-05, 0.00033, 5e-05, 7e-05, 0.00042, 0.00042, 7e-05, 5e-05, 0.00042, 0.00015, 0.00031, 0.00023, 1e-05, 0.00012, 0.0, 0.0, 0.00013, 0.00022, 2e-05, 0.0, 0.0, 0.00062, 7e-05, 0.0, 0.0, 0.00024, 0.0001, 0.0, 0.0, 1e-05, 6e-05, 0.00046, 0.0, 0.0, 3e-05, 0.00018, 6e-05, 1e-05, 0.00042, 0.00019, 5e-05, 3e-05, 0.0, 0.00026, 0.00024, 0.00016, 0.00029, 5e-05, 0.0, 9e-05, 0.00082, 0.0, 8e-05, 5e-05, 0.00037, 5e-05, 0.00016, 0.0, 0.00147, 0.00017, 5e-05, 0.0, 0.00051, 0.0, 0.0, 4e-05, 0.00646, 0.00045, 0.0, 0.0, 0.00097, 0.0001, 0.00017, 0.00029, 0.00072, 0.00015, 0.00018, 6e-05, 0.0038, 0.00059, 0.00069, 0.00314, 0.00027, 1e-05, 6e-05, 0.0006, 2e-05, 0.0, 0.0, 0.0, 6e-05, 1e-05, 0.00043, 0.0, 0.00027, 8e-05, 0.00024, 0.00048, 0.00037, 0.00034, 0.0, 0.0, 0.00021, 0.00046, 0.0, 0.0, 0.0, 0.00019, 5e-05, 0.00012, 0.0, 0.00017, 0.00025, 0.0, 0.0002, 0.00013, 9e-05, 6e-05, 0.00046, 0.00043, 6e-05, 9e-05, 0.00048, 0.00046, 0.00046, 0.00036, 7e-05, 0.00028, 1e-05, 5e-05, 0.0, 0.00025, 0.0, 0.0, 0.0001, 6e-05, 0.00032, 0.0, 0.0, 0.00036, 4e-05, 7e-05, 7e-05, 1e-05, 0.00012, 0.00053, 0.00044, 0.0, 0.00015, 0.00022, 0.00012, 1e-05, 0.00081, 0.00177, 0.0, 0.0, 0.00021, 0.00035, 0.00034, 0.00039]))),
   LayerError(circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x1351d9710>, qubits=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], error=PauliLindbladError(generators=['IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...', ...], rates=[0.00087, 0.00084, 0.00784, 0.0, 0.0, 0.00028, 0.00012, 0.0001, 0.00028, 0.0, 0.00029, 0.0096, 0.00087, 0.00084, 0.0, 0.00054, 0.0, 0.0, 0.0, 0.0, 0.00021, 0.0, 5e-05, 0.00034, 0.0, 0.00019, 0.0, 0.0, 0.00016, 0.0, 9e-05, 0.0, 0.0, 0.0, 0.00018, 0.0, 0.0, 0.0, 6e-05, 0.00017, 0.00011, 0.0, 0.0, 0.00012, 0.0, 0.00014, 0.0, 0.00062, 0.00011, 6e-05, 3e-05, 0.00167, 0.00017, 0.0, 0.0, 0.00174, 0.0, 0.00014, 0.0, 0.00211, 0.0, 0.0, 0.0, 0.00028, 0.00024, 0.00016, 0.0003, 0.0, 0.00016, 0.00024, 0.0001, 3e-05, 0.00184, 0.00188, 0.00039, 0.0, 0.0, 0.0, 0.0004, 0.00065, 0.0, 0.00011, 0.0, 0.005, 0.0, 5e-05, 9e-05, 0.00029, 0.00024, 0.0, 0.00044, 0.00022, 0.0, 0.00024, 0.00043, 0.00068, 0.00102, 0.00088, 0.0005, 0.00055, 0.00015, 0.0, 0.00013, 0.00062, 0.0, 0.0, 7e-05, 0.00038, 0.0, 0.0002, 1e-05, 0.00025, 0.0, 6e-05, 5e-05, 0.00062, 0.0, 0.0, 0.0, 0.00034, 6e-05, 0.0, 3e-05, 0.0, 0.0, 0.00012, 0.00042, 0.00072, 0.00012, 0.0, 3e-05, 0.0005, 7e-05, 0.0, 0.00012, 0.00038, 0.0, 1e-05, 0.0003, 0.00053, 0.00016, 0.0, 0.0, 0.00027, 0.00034, 0.0, 0.0, 0.00011, 0.00012, 7e-05, 7e-05, 0.00021, 0.0, 0.00014, 1e-05, 0.00141, 4e-05, 0.0, 0.00035, 5e-05, 0.00012, 1e-05, 0.00026, 0.0001, 1e-05, 0.00012, 0.00026, 0.00011, 0.00037, 0.00035, 0.00045, 0.00036, 0.0, 5e-05, 5e-05, 0.0005, 4e-05, 7e-05, 5e-05, 0.00014, 0.00017, 4e-05, 0.0001, 0.00014, 0.00015, 1e-05, 0.00027, 0.00023, 1e-05, 0.00015, 0.00035, 0.00086, 0.0005, 0.00032, 0.00036, 0.00082, 0.0, 0.00011, 0.0, 0.0, 0.00064, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4e-05, 0.00015, 0.00036, 1e-05, 0.00015, 4e-05, 0.00034, 0.00067, 0.001, 0.00089, 0.0009, 0.00042, 0.0, 1e-05, 8e-05, 0.00042, 7e-05, 0.0, 0.0, 0.00025, 9e-05, 0.0, 0.0, 0.0005, 0.00106, 0.00168, 0.00024, 0.0, 0.0, 0.0, 0.0, 5e-05, 7e-05, 0.00015, 0.00053, 0.0001, 0.0, 0.00012, 0.00035, 0.0, 0.0, 0.00061, 0.00064, 0.0, 0.0, 0.00071, 0.00061, 0.00049, 0.00049, 0.00091, 0.0, 0.0, 0.00012, 0.0, 7e-05, 7e-05, 1e-05, 0.00053, 0.0, 0.0, 0.00014, 0.0, 0.0, 0.0, 0.0057, 0.00013, 0.0, 0.0, 0.00019, 0.0, 0.0, 0.00818, 0.0, 4e-05, 0.00844, 0.00635, 4e-05, 0.0, 0.00647, 0.00203, 0.00024, 0.00068, 0.00159, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.00015, 0.0, 0.0, 0.0, 0.00011, 0.00012, 0.0, 0.00051, 0.00033, 0.00025, 0.00051, 5e-05, 0.00025, 0.00033, 0.00038, 0.0001, 0.00032, 0.0004, 0.0, 0.00967, 0.00039, 3e-05, 0.00967, 0.0, 0.0, 0.0, 0.01187, 3e-05, 0.00039, 0.01275, 0.0, 0.0, 0.00042, 0.00994, 0.0012, 0.0002, 0.00248, 0.0, 0.00033, 0.0, 0.00086, 0.0, 0.0, 0.0, 0.00087, 0.0, 0.0, 0.0, 0.00093, 0.0, 0.00045, 0.0, 0.0, 2e-05, 0.00031, 0.00021, 0.0, 0.00021, 9e-05, 0.00014, 0.0, 6e-05, 8e-05, 0.00038, 0.00023, 0.0, 0.0, 0.0, 0.00019, 5e-05, 0.0, 0.0, 0.00021, 0.0, 0.00012, 0.00015, 0.00028, 0.00038, 0.0, 0.00017, 0.00024, 1e-05, 0.00083, 0.00072, 1e-05, 0.00024, 0.0, 1e-05, 0.00024, 0.00098, 0.00278, 0.0, 7e-05, 7e-05, 0.00023, 0.00025, 0.00042, 0.00039, 0.00028, 0.00038, 0.00015, 5e-05, 4e-05, 0.00012, 4e-05, 7e-05, 0.00036, 0.00025, 0.0, 3e-05, 9e-05, 7e-05, 4e-05, 0.00037, 0.00025, 0.00019, 2e-05, 0.0, 0.00039, 0.00028, 6e-05, 0.00035, 7e-05, 0.0, 0.00014, 0.00055, 0.00016, 7e-05, 0.0, 0.0, 0.0, 0.00018, 0.00045, 0.00027, 0.0, 7e-05, 0.0, 0.00014, 0.00018, 7e-05, 0.0, 0.00014, 0.0001, 8e-05, 0.0, 0.00016, 4e-05, 7e-05, 0.00042, 9e-05, 7e-05, 4e-05, 0.00021, 0.0, 0.00053, 0.00053, 5e-05, 0.00074, 0.00073, 0.00078, 0.00033, 0.00048, 0.0002, 0.0, 7e-05, 0.00013, 6e-05, 1e-05, 0.0, 0.00015, 0.00016, 7e-05, 3e-05, 2e-05, 4e-05, 5e-05, 0.0, 0.00071, 0.00014, 0.0, 0.00022, 0.00016, 0.0, 0.00024, 0.0002, 0.0001, 0.0, 0.00066, 0.00088, 0.0, 0.0001, 0.00096, 0.00215, 0.0004, 0.00036, 0.00041, 0.00125, 8e-05, 8e-05, 4e-05, 0.00165, 0.00038, 0.0, 0.0, 0.00243, 0.0, 0.0, 0.00011, 0.00023, 0.0, 0.00016, 0.00029, 0.00013, 0.00031, 0.0, 0.0, 0.00072, 0.00016, 0.0001, 0.0, 0.0, 0.0, 0.00018, 0.0, 0.0, 0.0002, 0.0004, 0.00013, 3e-05, 0.0, 0.00016, 0.0002, 0.0, 0.00059, 0.00123, 2e-05, 0.0, 0.0, 0.00068, 0.00044, 0.00014, 0.0007, 7e-05, 5e-05, 0.0, 0.00069, 0.00018, 0.0, 0.0, 0.0014, 0.0, 0.00021, 0.0, 0.0, 0.0001, 0.00016, 8e-05, 0.0, 0.0, 6e-05, 0.00023, 0.0, 0.0, 0.0, 2e-05, 0.00016, 0.0, 0.00011, 0.00033, 3e-05, 0.00011, 0.0, 0.00033, 0.00049, 0.00062, 0.00072, 0.00067, 0.00086, 1e-05, 6e-05, 0.0, 2e-05, 7e-05, 0.0, 0.00032, 0.0, 7e-05, 0.00043, 3e-05, 0.0, 0.00017, 0.0, 0.00026, 0.0, 0.0, 3e-05, 0.00014, 0.00029, 0.0, 0.00018, 0.00016, 0.00044, 0.00018, 0.00016, 0.00018, 0.00034, 0.0, 0.00101, 0.00102, 0.00052, 0.00022, 0.00011, 0.0, 9e-05, 0.00014, 0.0001, 0.0001, 0.00013, 0.00012, 0.00027, 2e-05, 0.00023, 0.0003, 0.0, 0.00016, 0.0, 0.00036, 0.00022, 0.0, 5e-05, 0.00059, 6e-05, 0.00015, 0.0, 0.0, 2e-05, 0.00016, 0.00108, 0.0, 0.0002, 0.00031, 0.0, 0.00016, 2e-05, 0.00047, 0.00015, 0.0, 0.0, 0.00809, 0.00074, 0.00073, 0.00068, 8e-05, 0.0, 0.0, 8e-05, 0.00022, 0.00019, 2e-05, 0.00012, 0.0001, 9e-05, 0.00023, 5e-05, 0.00028, 6e-05, 0.0, 0.0006, 6e-05, 0.00017, 0.00064, 0.00027, 0.00017, 6e-05, 0.00061, 0.00039, 0.00051, 0.00053, 0.00025, 0.0, 0.0, 0.00029, 0.00032, 0.00019, 0.00029, 0.0, 0.0004, 0.00019, 0.00192, 0.00229, 0.00056, 0.00034, 0.0, 2e-05, 8e-05, 0.00019, 0.00025, 0.00013, 0.00012, 0.00246, 4e-05, 0.0003, 0.00062, 0.00037, 0.0, 0.00012, 0.00037, 0.00032, 0.00012, 0.0, 0.00032, 0.00095, 0.00071, 0.00078, 0.00025, 0.00085, 4e-05, 0.0, 0.0, 0.00045, 0.0, 1e-05, 0.00013, 0.00012, 0.0, 0.00033, 6e-05, 0.00023, 0.0004, 0.00042, 2e-05, 0.0, 0.0, 0.0003, 0.0, 0.0, 0.0, 0.00022, 0.00055, 0.00023, 0.0004, 0.00044, 0.00011, 0.00017, 0.0, 0.0, 0.00028, 0.0, 0.0, 1e-05, 0.0057, 0.0, 0.00032, 0.0, 0.00088, 2e-05, 0.00021, 0.00022, 9e-05, 0.0, 0.00135, 0.00142, 4e-05, 0.0, 0.0, 0.0, 9e-05, 0.00161, 0.00155, 0.00026, 0.0, 9e-05, 0.00028, 0.00029, 0.00021, 0.00054, 0.0, 0.0, 0.00029, 0.00024, 3e-05, 1e-05, 0.0, 0.00018, 0.0, 0.00014, 0.00013, 0.00028, 0.0001, 0.0, 0.0, 0.0, 0.0, 0.00046, 1e-05, 0.00141, 0.0, 0.0, 0.00026, 0.00076, 0.00014, 0.0, 0.00096, 0.0, 0.0, 0.00014, 0.00052, 0.00061, 0.00068, 0.00077, 0.00079, 0.0, 0.00049, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00049, 0.0013, 0.0, 0.00073, 0.0, 0.02919, 0.00044, 0.00069, 0.00012, 0.0, 0.00014, 0.00025, 0.00141, 0.00072, 0.0, 0.0, 0.0008, 0.0, 0.00061, 0.00012, 0.0012, 1e-05, 0.0, 0.0, 0.0, 0.00011, 0.0, 0.00028, 0.0, 0.00043, 0.0, 0.0, 0.00108, 0.00033, 0.0, 0.00014, 0.0006, 0.0, 0.00011, 1e-05, 0.0007, 0.0, 0.0, 0.0, 0.00103, 0.00016, 0.0, 0.0, 0.00032, 0.00031, 0.00036, 0.00034, 5e-05, 0.0, 7e-05, 0.00014, 0.0, 0.00046, 0.00026, 2e-05, 6e-05, 1e-05, 0.0, 0.00014, 0.00035, 0.00093, 0.0, 2e-05, 0.0, 0.00032, 0.00031, 6e-05, 0.00042, 0.0, 0.0, 0.00029, 0.00011, 2e-05, 0.0, 0.00017, 0.00041, 9e-05, 5e-05, 0.0002, 2e-05, 0.00018, 0.0, 0.00025, 0.0, 0.0, 0.00035, 0.0001, 0.00087, 9e-05, 2e-05, 0.00026, 0.0016, 0.0, 0.0001, 0.00173, 0.0013, 0.0001, 0.0, 0.00142, 0.00111, 0.00057, 0.00044, 0.00047, 0.00051, 0.00041, 0.00034, 0.00034, 0.00038, 0.00035, 0.0, 0.0, 0.0, 0.00013, 0.00016, 0.00016, 0.00031, 0.0, 9e-05, 0.00016, 0.0, 0.00016, 0.00016, 0.00035, 0.0, 0.0, 9e-05, 1e-05, 0.00034, 0.00038, 0.00027, 0.0, 0.0, 0.0, 3e-05, 0.00098, 0.00031, 0.00011, 0.0, 0.00973, 0.0, 0.0, 0.00017, 0.0, 0.00024, 0.0, 0.00012, 0.00017, 0.00022, 0.0, 0.0, 0.00021, 5e-05, 4e-05, 4e-05, 0.00013, 7e-05, 0.00018, 0.00029, 0.00018, 0.00018, 7e-05, 0.00026, 0.00033, 0.00023, 0.00095, 0.00018, 0.0002, 9e-05, 2e-05, 0.00045, 1e-05, 0.0, 0.00011, 0.00012, 2e-05, 9e-05, 0.00042, 0.0, 8e-05, 4e-05, 0.00228, 0.00051, 0.00039, 0.00025, 0.00016, 0.0, 0.00015, 0.00021, 0.0001, 0.0, 0.0001, 0.00053, 0.0, 0.0001, 0.0, 0.0006, 0.0, 4e-05, 0.0, 9e-05, 0.0, 0.0001, 0.00011, 0.0, 0.00018, 0.0, 8e-05, 0.00063, 4e-05, 0.0, 0.0, 0.00032, 0.0, 0.00015, 0.0, 0.00043, 7e-05, 2e-05, 0.0, 3e-05, 0.00011, 0.0, 0.0001, 0.00026, 0.0001, 0.0, 3e-05, 0.0, 0.0, 5e-05, 0.00033, 3e-05, 0.00012, 0.0, 1e-05, 0.0, 0.0, 0.00064, 0.0, 0.0, 0.0, 0.0, 0.00012, 0.0001, 0.0001, 0.0, 5e-05, 0.00035, 0.00011, 5e-05, 0.0, 0.00032, 0.00017, 0.00044, 0.00048, 0.00017, 0.0001, 0.00018, 0.0, 0.00012, 0.00021, 0.0, 0.00015, 0.0001, 8e-05, 6e-05, 4e-05, 0.0, 0.00011, 0.00013, 2e-05, 0.00042, 4e-05, 2e-05, 0.00013, 0.00018, 0.00038, 0.00066, 0.00062, 0.00022, 0.00024, 0.0, 0.0, 0.0, 0.0, 0.00014, 0.00021, 0.0001, 0.00014, 0.00018, 0.0, 0.00018, 0.0, 0.0, 0.00155, 0.0, 0.0, 0.0001, 0.00013, 0.0, 0.00012, 0.00036, 0.00011, 0.00013, 0.0005, 0.00034, 0.00013, 0.00011, 0.00046, 0.00041, 0.00059, 0.00061, 0.00026, 0.00065, 1e-05, 1e-05, 8e-05, 0.00045, 0.0, 2e-05, 0.00013, 0.0004, 0.00013, 0.0001, 7e-05, 0.00027, 0.0, 1e-05, 5e-05, 0.00069, 0.0, 0.00015, 0.0, 0.00115, 0.0, 0.00033, 0.0, 0.00021, 0.0, 0.00013, 0.0003, 0.00019, 0.00013, 0.0, 0.0003, 9e-05, 0.00048, 0.00041, 5e-05, 0.00019, 0.0, 3e-05, 0.00012, 0.0004, 0.00014, 8e-05, 0.0, 0.00063, 0.00012, 4e-05, 0.00022, 0.00023, 0.0, 0.00013, 0.0, 0.00024, 4e-05, 0.0, 0.0, 0.00052, 6e-05, 0.0, 1e-05, 0.002, 0.00128, 0.00096, 0.0004, 0.0, 0.0, 5e-05, 0.00034, 0.0, 3e-05, 0.00013, 0.00066, 0.0, 4e-05, 0.0, 0.0005, 0.00037, 0.00029, 0.00018, 2e-05, 3e-05, 0.00055, 0.00034, 3e-05, 2e-05, 0.00068, 0.00077, 0.0005, 0.00037, 0.00018, 0.00033, 0.0, 0.0, 0.00013, 0.0003, 7e-05, 5e-05, 0.0, 0.00021, 9e-05, 8e-05, 0.0, 0.0002, 0.0, 0.00012, 2e-05, 0.0, 3e-05, 0.00038, 0.00021, 6e-05, 0.0, 2e-05, 3e-05, 0.0, 0.00042, 0.00076, 3e-05, 0.0, 5e-05, 0.00046, 0.00042, 0.0002, 0.00054, 0.0, 1e-05, 0.0, 0.00071, 4e-05, 5e-05, 0.0, 0.00032, 0.0, 7e-05, 2e-05, 0.00034, 4e-05, 0.0, 4e-05, 0.00019, 5e-05, 7e-05, 0.0, 0.00125, 3e-05, 0.0, 8e-05, 0.00026, 0.0, 0.00014, 0.0, 0.00048, 0.0, 0.0, 3e-05, 0.00026, 6e-05, 0.0, 0.00021, 5e-05, 0.00016, 0.0, 0.00024, 5e-05, 0.0, 6e-05, 0.00023, 1e-05, 7e-05, 0.0, 0.00011, 0.0, 0.0, 0.0004, 6e-05, 0.0, 0.00023, 8e-05, 0.0, 0.00021, 0.00011, 0.0, 0.00013, 0.00025, 0.00022, 0.00013, 0.0, 0.00029, 0.0007, 0.00056, 0.00042, 0.00045, 0.00021, 8e-05, 0.0, 0.0, 0.0001, 3e-05, 7e-05, 0.0001, 0.00176, 3e-05, 0.0, 0.0, 0.0, 0.0, 3e-05, 0.00029, 0.00023, 0.0001, 0.0, 0.0, 0.00036, 0.00018, 9e-05, 0.00011, 0.00038, 4e-05, 4e-05, 0.0, 8e-05, 9e-05, 0.00045, 0.00046, 0.00012, 2e-05, 0.0, 9e-05, 8e-05, 0.0006, 0.00023, 0.0, 0.0, 0.00018, 0.00029, 0.00034, 0.00038, 0.0, 6e-05, 4e-05, 0.00035, 4e-05, 4e-05, 6e-05, 0.00029, 0.0, 0.00045, 0.00051, 0.00014, 0.00017, 3e-05, 0.00011, 3e-05, 0.00033, 0.0, 0.0001, 2e-05, 0.00137, 0.00017, 0.0, 0.00037, 0.00031, 8e-05, 0.0, 0.00037, 0.0, 0.0, 8e-05, 0.0003, 0.0, 0.00048, 0.00045, 0.00034, 0.0003, 0.00013, 7e-05, 0.00052, 0.00049, 7e-05, 0.00013, 0.00054, 0.00061, 0.00058, 0.00042, 0.00012, 0.0005, 0.00029, 0.00037, 0.0, 0.00012, 0.00012, 0.00012, 0.0, 0.00021, 3e-05, 9e-05, 6e-05, 0.0001, 0.00014, 4e-05, 0.0, 0.00016, 0.00122, 0.00018, 3e-05, 0.00016, 4e-05, 5e-05, 0.00019, 5e-05, 7e-05, 0.00013, 0.00047, 0.00031, 0.00013, 7e-05, 0.00034, 0.00044, 0.0006, 0.0006, 0.00055, 0.00034, 8e-05, 2e-05, 5e-05, 6e-05, 0.00019, 0.0, 0.00027, 0.00031, 0.00015, 1e-05, 0.0003, 0.00016, 0.00014, 3e-05, 0.00037, 0.00035, 3e-05, 0.00014, 0.00041, 0.0, 0.00071, 0.00077, 0.00011, 0.00036, 5e-05, 9e-05, 0.00067, 0.00018, 0.0, 0.0, 0.00016, 9e-05, 5e-05, 0.00072, 0.0, 6e-05, 0.00023, 0.00597, 0.00035, 0.00044, 0.00102, 3e-05, 0.0, 0.00052, 0.00043, 4e-05, 7e-05, 0.0, 0.00044, 9e-05, 0.0, 0.0, 0.0, 0.0, 0.0002, 0.00035, 0.0, 0.00017, 5e-05, 0.0, 0.0, 0.0, 1e-05, 0.00025, 0.00048, 0.0, 5e-05, 0.00012, 0.00035, 0.0001, 0.0, 0.0, 4e-05, 0.00012, 9e-05, 5e-05, 6e-05, 3e-05, 0.00022, 0.00017, 0.00013, 0.0, 8e-05, 0.00013, 5e-05, 3e-05, 0.00051, 0.0002, 2e-05, 0.0002, 0.0002, 3e-05, 5e-05, 0.00064, 0.0, 1e-05, 9e-05, 0.00018, 0.00046, 0.00031, 0.00025, 0.00063, 0.0, 0.0, 0.0, 0.0006, 6e-05, 2e-05, 3e-05, 0.00051, 0.00011, 0.0, 0.00016, 0.0, 0.0, 0.0, 0.00031, 0.00028, 0.00011, 0.0, 0.0, 0.0006, 5e-05, 1e-05, 0.0, 0.00022, 0.0, 0.00013, 9e-05, 0.00063, 0.0, 0.0, 2e-05, 0.0, 0.00026, 0.0, 0.0, 0.00028, 0.0, 2e-05, 7e-05, 0.0, 0.0, 0.00017, 0.00022, 5e-05, 4e-05, 4e-05, 0.0, 0.0, 0.00015, 9e-05, 0.00017, 0.0, 0.00012, 0.0001, 1e-05, 0.00013, 0.00035, 0.0, 8e-05, 0.00045, 0.00014, 8e-05, 0.0, 0.0004, 1e-05, 0.00054, 0.00049, 0.00031, 0.00078, 0.0, 6e-05, 0.00015, 0.00054, 0.0, 0.0002, 0.00019, 0.0, 0.0001, 0.0, 0.00022, 0.00016, 6e-05, 0.0, 0.00018, 7e-05, 0.00013, 0.00012, 0.0, 0.0003, 3e-05, 0.00013, 0.00019, 0.00016, 9e-05, 0.0, 0.00037, 0.00018, 0.0, 9e-05, 0.00025, 0.00054, 0.00047, 0.00052, 0.00025, 0.00026, 0.0, 4e-05, 0.00055, 0.00017, 4e-05, 0.0, 0.00049, 0.0001, 0.00048, 0.00055, 3e-05, 0.00039, 3e-05, 0.00027, 0.0, 0.00041, 0.0, 0.00015, 0.0, 0.00042, 0.00018, 0.0, 0.00024, 0.00036, 0.00031, 0.00026, 0.00039, 5e-05, 0.0, 0.00053, 0.00038, 0.0, 5e-05, 0.0005, 0.00051, 0.00036, 0.00031, 4e-05, 0.00058, 0.0, 0.0, 1e-05, 0.00024, 0.0, 9e-05, 0.0, 0.00027, 0.00013, 3e-05, 4e-05, 0.00023, 0.00018, 0.0, 0.00044, 1e-05, 5e-05, 4e-05, 0.00026, 0.0, 0.00018, 0.0005, 0.0, 5e-05, 0.0, 0.00049, 0.0004, 0.00033, 0.00018, 2e-05, 1e-05, 0.0, 0.00051, 9e-05, 4e-05, 0.0, 0.00016, 2e-05, 6e-05, 6e-05, 0.00029, 0.0, 9e-05, 0.00011, 0.00027, 2e-05, 6e-05, 0.0, 0.00028, 4e-05, 0.0, 9e-05, 0.00013, 0.0, 0.0, 0.00015, 8e-05, 1e-05, 6e-05, 0.00022, 8e-05, 6e-05, 1e-05, 0.00021, 0.00047, 0.00034, 0.00041, 0.00019, 0.00029, 6e-05, 5e-05, 0.0001, 7e-05, 0.0, 0.0, 0.00024, 3e-05, 3e-05, 8e-05, 0.0, 2e-05, 0.00013, 0.00032, 0.00013, 0.0, 0.0, 6e-05, 0.00011, 0.0, 0.00033, 0.0002, 7e-05, 0.00071, 0.00044, 7e-05, 0.0002, 0.00066, 0.00058, 0.00056, 0.00053, 0.00019, 0.00117, 0.0, 0.00022, 0.00042, 0.00183, 0.00029, 0.0, 0.00029, 0.00916, 8e-05, 0.0, 0.0, 0.00012, 0.00026, 0.00038, 0.00064, 0.0003, 0.00038, 0.00026, 0.00097, 0.00262, 0.00181, 0.00241, 0.00299, 0.0, 2e-05, 0.00022, 0.00054, 0.00028, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.00038, 0.0, 0.00042, 2e-05, 0.0, 0.00018, 0.0001, 0.00018, 0.00023, 0.00025, 0.0, 0.00025, 5e-05, 0.00016, 0.00042, 9e-05, 0.00016, 5e-05, 0.00034, 0.00049, 0.00102, 0.00086, 0.00073, 0.0005, 0.0, 0.00024, 0.0, 0.0004, 6e-05, 0.0, 0.0001, 0.00049, 0.00011, 0.0, 0.0002, 0.00049, 3e-05, 0.0, 0.0, 0.00037, 5e-05, 0.0001, 0.0, 0.00037, 0.0, 0.0, 0.00015, 0.00036, 0.0, 0.00017, 0.00048, 0.0, 0.00011, 0.0, 0.0004, 0.00017, 0.0, 0.00049, 6e-05, 0.0, 3e-05, 0.00124, 0.00069, 0.00056, 0.00014, 1e-05, 0.0, 0.0]))),
   LayerError(circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x1351d90f0>, qubits=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155], error=PauliLindbladError(generators=['IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...',
    'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...', ...], rates=[0.00135, 0.001, 0.00567, 0.0004, 0.0, 7e-05, 0.0, 9e-05, 0.0, 7e-05, 0.00013, 0.00241, 5e-05, 0.0, 0.0, 0.00014, 0.00013, 3e-05, 0.00036, 2e-05, 3e-05, 0.00013, 0.00029, 0.0, 0.00051, 0.00034, 0.0001, 0.00019, 6e-05, 0.00018, 0.0, 0.00018, 9e-05, 9e-05, 8e-05, 0.00214, 7e-05, 0.0, 0.00027, 0.0, 0.0, 7e-05, 0.0002, 0.0, 7e-05, 0.0, 0.00017, 0.0, 0.00043, 0.00044, 0.00016, 0.0011, 0.00014, 0.00012, 0.00012, 0.00111, 7e-05, 0.00014, 0.00018, 0.00109, 0.00013, 0.0, 0.00027, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00054, 0.0, 0.0, 0.0, 0.0005, 0.0, 0.0, 0.0, 0.00089, 0.0, 0.0, 0.0, 0.0, 0.00028, 0.00028, 7e-05, 0.0, 0.00028, 0.00028, 0.00016, 0.0, 0.00054, 0.0005, 0.00042, 0.00096, 0.0, 5e-05, 6e-05, 0.00077, 0.0002, 0.0, 0.0, 0.00072, 0.0, 0.00014, 0.0, 0.0003, 0.00014, 0.0, 0.00048, 0.00023, 0.0, 0.00014, 0.00044, 0.00054, 0.00135, 0.00142, 0.00023, 0.00031, 1e-05, 7e-05, 0.00011, 0.00047, 0.00018, 0.0, 0.0, 0.00011, 0.0, 0.00014, 3e-05, 0.00029, 0.0, 4e-05, 0.0, 0.00014, 6e-05, 8e-05, 9e-05, 0.00014, 0.00011, 0.00016, 2e-05, 0.00029, 0.0, 0.0, 0.00017, 0.00024, 9e-05, 3e-05, 0.0, 0.00036, 5e-05, 1e-05, 0.0, 0.00025, 0.0, 0.0, 0.0, 0.0002, 0.0, 0.0, 0.0, 0.00058, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.37843, 0.0, 0.0, 0.53164, 0.5365, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00028, 9e-05, 9e-05, 4e-05, 7e-05, 0.0, 0.0, 0.00025, 0.00011, 0.0, 0.00012, 7e-05, 4e-05, 0.00035, 0.00015, 4e-05, 7e-05, 0.00029, 0.0, 0.00047, 0.00036, 9e-05, 0.00164, 0.00232, 0.0028, 0.00131, 0.0, 0.0, 0.0, 0.00148, 0.0, 0.0, 0.0, 0.00084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00521, 0.00527, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.40338, 0.0, 0.0, 0.0, 0.30521, 0.09093, 0.09126, 0.14967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25536, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.70904, 0.0, 0.0, 0.0, 0.0, 0.44482, 0.05059, 1.98941, 2.66137, 1.82174, 1.98941, 0.0, 1.82174, 2.66137, 0.0, 0.0, 0.10991, 0.02851, 1.35927, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00581, 0.0, 0.0, 0.0, 0.00042, 0.00025, 0.00021, 0.00026, 0.0, 0.0, 0.00084, 0.00058, 0.00021, 0.00019, 0.00022, 0.0, 0.0, 0.00072, 0.0, 9e-05, 0.00016, 0.00029, 0.0, 0.0, 0.0005, 0.00067, 0.00059, 0.00051, 0.00058, 0.00013, 0.0, 0.00015, 2e-05, 0.0, 1e-05, 0.00032, 3e-05, 0.00015, 0.0002, 0.0, 0.00011, 0.0, 0.00022, 7e-05, 0.0, 0.00015, 0.0, 0.0, 7e-05, 0.00035, 0.0, 0.0, 0.00077, 0.00017, 0.0, 0.0, 0.00066, 0.00234, 0.00131, 0.00148, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00214, 0.0, 0.0, 0.0, 0.00178, 0.0, 0.0, 0.0, 0.00307, 0.0, 0.0, 0.0, 0.00178, 0.00165, 0.00056, 0.00035, 0.00033, 0.00061, 0.0, 0.00028, 4e-05, 9e-05, 0.0, 0.0, 0.00052, 0.0, 8e-05, 0.00017, 0.0002, 0.0, 0.0, 0.00038, 0.00022, 6e-05, 0.00029, 0.0, 0.00035, 0.00033, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1e-05, 0.0, 0.00043, 0.00147, 0.00019, 0.0, 0.0001, 0.01096, 0.0, 0.00027, 4e-05, 0.01189, 0.0, 0.00048, 0.0, 0.0, 0.00088, 0.0, 0.0, 0.00084, 0.00106, 0.00067, 0.00119, 0.00069, 0.00067, 0.00106, 0.00117, 0.0048, 0.0117, 0.0124, 0.00417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00051, 0.0, 0.0, 0.0, 0.00035, 0.00048, 0.00099, 5e-05, 0.0, 0.0, 0.00043, 0.0, 0.0, 0.0, 0.00067, 0.00087, 0.0, 0.0, 0.00021, 0.00031, 0.00016, 0.00031, 0.00044, 0.00017, 0.00031, 0.00016, 0.00047, 1e-05, 0.00073, 0.00086, 0.00056, 0.00019, 0.0, 0.0, 0.0, 0.00016, 0.0, 0.0, 0.0, 0.00108, 4e-05, 0.00021, 0.00028, 0.0, 0.00023, 0.00044, 0.00039, 0.0, 0.0, 0.00012, 0.0, 0.00042, 0.00034, 0.00032, 0.0, 0.0, 0.00017, 0.0, 0.00069, 0.00049, 0.00032, 0.00019, 0.00016, 0.0, 0.00032, 0.0, 0.0, 0.0, 0.00035, 0.0, 0.0, 0.0, 0.00013, 0.0, 0.0, 0.0, 0.00013, 0.0, 5e-05, 0.00056, 0.00032, 5e-05, 0.0, 0.00059, 0.00053, 0.00032, 0.00035, 9e-05, 0.00029, 0.0, 7e-05, 0.0001, 0.00019, 1e-05, 0.0, 0.00015, 0.0002, 0.0003, 0.0, 0.0, 0.0, 8e-05, 0.0, 0.00023, 0.0, 8e-05, 0.00067, 0.00015, 0.0, 9e-05, 1e-05, 8e-05, 0.0, 0.00048, 0.00075, 0.0, 1e-05, 0.0, 0.00045, 0.00035, 0.00013, 0.00063, 2e-05, 9e-05, 3e-05, 0.00059, 0.0, 8e-05, 0.00012, 0.00045, 0.00035, 5e-05, 0.0, 0.00013, 5e-05, 0.0, 0.00028, 0.00025, 3e-05, 0.00018, 0.0, 0.00042, 0.0, 1e-05, 9e-05, 0.0, 0.0, 2e-05, 0.001, 0.0, 0.00043, 1e-05, 0.0, 0.0, 0.0, 0.0, 7e-05, 0.00027, 6e-05, 0.0, 0.0, 0.00098, 1e-05, 8e-05, 0.0, 0.00539, 2e-05, 0.0, 0.0, 0.00051, 0.0, 0.00015, 0.0, 0.00053, 0.0, 0.0, 9e-05, 0.00072, 0.00012, 5e-05, 0.0, 6e-05, 0.0001, 9e-05, 0.00036, 0.00021, 9e-05, 0.0001, 0.00035, 0.00017, 0.00047, 0.00047, 0.00014, 0.00044, 0.00029, 0.00075, 0.0, 0.0, 1e-05, 0.0, 0.0, 8e-05, 0.0, 0.00013, 0.0007, 9e-05, 0.0, 6e-05, 0.00074, 0.00022, 9e-05, 0.0003, 0.0, 0.0, 0.0, 0.0, 0.00177, 0.00024, 0.00027, 0.0002, 0.00866, 0.0, 0.0002, 0.0, 8e-05, 1e-05, 0.0, 0.00901, 0.0, 0.00042, 0.00042, 0.0, 0.00057, 0.0, 0.00748, 0.0, 0.0, 0.00116, 6e-05, 0.0, 0.00055, 0.0, 0.00082, 0.00104, 0.00061, 0.00124, 0.00104, 0.00082, 0.00129, 0.00317, 0.00896, 0.01041, 0.00599, 0.00052, 0.0, 0.0, 0.0, 0.00039, 5e-05, 0.0, 8e-05, 0.00468, 0.00064, 0.0, 0.0, 0.0009, 0.0, 0.00013, 0.00028, 0.00097, 0.00033, 5e-05, 0.0, 0.0004, 0.00021, 0.00017, 0.00014, 0.0, 0.0, 0.0, 0.00036, 7e-05, 0.0, 0.00014, 0.0, 0.0, 0.0, 0.00026, 0.0, 6e-05, 3e-05, 0.00043, 0.0, 0.0, 0.00038, 0.00027, 0.00016, 5e-05, 0.00031, 7e-05, 0.0, 0.00045, 0.00028, 0.0, 7e-05, 0.0004, 0.00059, 0.00054, 0.0003, 0.00045, 0.00064, 0.0, 0.0, 0.0, 0.00026, 4e-05, 0.0, 0.00034, 0.0007, 0.00011, 0.00012, 0.0, 0.00056, 0.0, 0.0002, 0.00057, 0.00065, 0.0002, 0.0, 0.00066, 0.00067, 0.00121, 0.00123, 0.00025, 0.00043, 0.00044, 0.0005, 0.00075, 0.0, 0.00014, 0.00022, 0.0, 6e-05, 7e-05, 0.00083, 0.00028, 0.0, 0.0, 0.00013, 0.0, 0.0, 0.00099, 2e-05, 0.0, 0.0, 2e-05, 0.0, 2e-05, 0.00024, 0.0001, 4e-05, 0.00038, 0.00026, 4e-05, 0.0001, 0.00031, 0.00026, 0.00045, 0.00054, 0.0004, 0.00023, 0.00026, 0.0002, 0.00047, 0.0, 0.0002, 0.00026, 0.0003, 0.00087, 0.00106, 0.00088, 0.00097, 0.00151, 0.0, 6e-05, 0.00023, 0.00137, 0.00015, 0.0, 0.0, 0.00016, 0.00042, 0.00053, 0.00013, 0.00075, 0.00043, 0.00018, 0.00075, 0.00062, 0.00051, 0.0, 0.00015, 0.0, 0.0, 3e-05, 0.00012, 0.0, 0.0, 0.0, 5e-05, 0.00015, 0.0, 6e-05, 0.00021, 0.0, 0.0, 0.0, 8e-05, 2e-05, 0.0, 0.00015, 0.00011, 7e-05, 9e-05, 0.00039, 0.00028, 9e-05, 7e-05, 0.00057, 0.00552, 0.00028, 0.00045, 0.00041, 0.0, 0.0, 0.00029, 0.0, 0.0, 0.00018, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.00036, 0.00033, 0.0, 0.00011, 0.0, 0.00015, 0.00013, 0.0, 0.0, 0.00036, 0.0, 0.00012, 5e-05, 0.00022, 0.0, 0.00018, 7e-05, 5e-05, 7e-05, 0.0, 0.00032, 8e-05, 5e-05, 0.0, 4e-05, 1e-05, 8e-05, 0.00027, 0.00016, 7e-05, 0.00018, 0.0, 3e-05, 0.00027, 0.00034, 3e-05, 7e-05, 0.00048, 0.00045, 7e-05, 3e-05, 0.00053, 0.00018, 0.00058, 0.00057, 8e-05, 0.0, 8e-05, 0.0, 0.00016, 0.0, 0.0, 7e-05, 0.00014, 0.0, 6e-05, 1e-05, 0.0, 0.00022, 0.00011, 0.0, 0.00022, 0.00026, 0.0, 0.00011, 0.00035, 0.00033, 0.00045, 0.00032, 0.00016, 0.0005, 0.00027, 3e-05, 0.0008, 0.0, 0.0, 0.0, 0.0003, 3e-05, 0.00027, 0.00083, 0.0, 0.0, 0.0, 2e-05, 0.00181, 0.00152, 0.00038, 0.0, 9e-05, 0.0, 0.0, 0.00012, 0.00011, 7e-05, 7e-05, 4e-05, 0.00014, 0.00012, 0.0, 0.00014, 0.00029, 0.00012, 0.00039, 0.0, 0.00032, 0.00066, 0.00032, 0.00032, 0.0, 0.0009, 0.00201, 0.00021, 0.00041, 0.00014, 6e-05, 3e-05, 0.00021, 0.0, 0.0002, 0.0, 0.0, 0.00011, 0.00028, 2e-05, 0.0, 0.0, 9e-05, 4e-05, 9e-05, 9e-05, 0.0, 0.0001, 0.0005, 0.0002, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.00039, 0.00028, 0.0, 0.0, 6e-05, 0.0003, 0.00031, 0.0001, 0.00092, 0.0, 0.00012, 4e-05, 0.00098, 4e-05, 7e-05, 4e-05, 0.00062, 0.00015, 0.0, 0.0, 0.00049, 5e-05, 0.0, 0.0, 0.00029, 6e-05, 0.0, 8e-05, 0.00102, 0.0, 0.0, 0.0001, 0.00037, 1e-05, 0.00021, 0.00038, 6e-05, 0.00021, 1e-05, 7e-05, 0.00062, 0.00026, 0.00036, 0.0003, 0.00045, 1e-05, 0.0, 0.0, 0.00047, 0.0, 3e-05, 9e-05, 0.00057, 0.00022, 8e-05, 6e-05, 0.0, 2e-05, 0.00036, 0.0, 0.00021, 0.0, 0.0, 0.0001, 0.0005, 0.00019, 1e-05, 0.0, 4e-05, 8e-05, 3e-05, 0.00028, 0.00013, 3e-05, 8e-05, 0.00021, 0.0, 0.00054, 0.00044, 0.0002, 0.00148, 0.00101, 0.00116, 0.00033, 0.00012, 0.0, 0.0, 0.00034, 0.0, 7e-05, 0.0001, 0.00066, 2e-05, 0.0, 0.0, 0.00079, 0.00061, 9e-05, 0.00011, 0.0, 0.0, 0.00012, 0.0001, 3e-05, 0.0, 7e-05, 0.00019, 3e-05, 3e-05, 0.0, 0.00027, 0.0001, 0.0, 0.00037, 0.00012, 0.0, 0.0001, 0.0003, 0.0002, 0.00043, 0.00033, 0.00018, 0.00033, 0.0, 3e-05, 0.0001, 0.0, 0.0, 4e-05, 0.00025, 0.0, 0.0, 0.0, 0.0, 4e-05, 0.0, 0.00028, 6e-05, 5e-05, 0.0, 0.0001, 0.00014, 0.0, 0.00033, 0.0, 3e-05, 0.00042, 0.00025, 3e-05, 0.0, 0.0003, 0.00054, 0.00049, 0.0003, 0.00081, 0.00041, 0.0, 0.0, 0.0, 0.00022, 0.0, 0.0, 0.0, 0.00184, 9e-05, 5e-05, 0.0, 3e-05, 6e-05, 0.0001, 0.00032, 7e-05, 0.0001, 6e-05, 0.0002, 0.00062, 0.00045, 0.00037, 0.00015, 0.00043, 0.0, 0.0001, 0.00073, 0.0, 0.0, 7e-05, 0.00029, 0.0001, 0.0, 0.00076, 0.00015, 0.0, 0.00015, 0.0, 0.00028, 0.00036, 0.00014, 0.00014, 0.00013, 0.0, 7e-05, 0.0, 1e-05, 9e-05, 4e-05, 2e-05, 0.0001, 0.0002, 0.0002, 0.00021, 4e-05, 2e-05, 0.00041, 0.0001, 0.00016, 0.00083, 0.00013, 0.00016, 0.0001, 0.00051, 0.00138, 0.00017, 0.00036, 0.00048, 0.0005, 0.0, 7e-05, 0.0, 0.00032, 0.0, 0.0, 0.00015, 0.00028, 6e-05, 8e-05, 0.00035, 0.00059, 5e-05, 0.0, 0.0002, 0.0, 0.0, 0.0, 0.00051, 0.0, 8e-05, 8e-05, 1e-05, 0.0, 0.00011, 0.00027, 0.00019, 1e-05, 6e-05, 6e-05, 0.0001, 0.0, 0.0003, 7e-05, 0.0, 0.00011, 0.00023, 0.00016, 2e-05, 0.0, 0.00016, 0.0, 0.00012, 7e-05, 0.00038, 0.0, 0.0, 7e-05, 0.00058, 7e-05, 0.0, 0.0, 0.00119, 0.00013, 0.00013, 0.0, 0.00019, 3e-05, 1e-05, 3e-05, 0.00045, 0.0, 5e-05, 0.00012, 0.00067, 1e-05, 7e-05, 0.0, 0.00038, 0.00019, 0.0, 0.0, 0.00026, 0.00015, 1e-05, 0.0, 0.00041, 0.0, 0.00021, 0.00053, 0.00021, 0.00027, 0.00033, 7e-05, 0.00014, 0.0, 0.00013, 1e-05, 5e-05, 0.00061, 0.0, 0.0, 2e-05, 0.00016, 5e-05, 1e-05, 0.00039, 0.0, 0.0, 5e-05, 5e-05, 0.00021, 0.00027, 9e-05, 0.0003, 0.0001, 4e-05, 0.0, 0.00027, 2e-05, 0.0, 8e-05, 0.00019, 0.00014, 0.00026, 0.00019, 0.00023, 6e-05, 1e-05, 0.00068, 0.00018, 1e-05, 6e-05, 0.00057, 0.00117, 0.00044, 0.00037, 0.00034, 0.00046, 0.0, 2e-05, 0.0, 0.00028, 6e-05, 0.0, 0.00011, 0.00014, 9e-05, 0.00017, 9e-05, 0.00021, 3e-05, 4e-05, 8e-05, 9e-05, 0.0, 0.0, 0.00037, 0.0, 0.0, 1e-05, 0.0, 4e-05, 6e-05, 0.00054, 0.00021, 0.0, 0.0, 3e-05, 8e-05, 3e-05, 0.00012, 0.00015, 1e-05, 0.00033, 8e-05, 1e-05, 0.00015, 0.00027, 0.0, 0.00046, 0.00049, 0.00027, 0.0, 0.00012, 0.0, 0.00023, 3e-05, 9e-05, 0.00012, 0.0, 0.0, 0.0, 8e-05, 4e-05, 0.00019, 0.00015, 0.00011, 0.00025, 9e-05, 0.00011, 0.00015, 0.00037, 0.00042, 0.00061, 0.00043, 0.00033, 0.0, 0.0, 0.0, 0.00023, 0.0, 0.00015, 0.00014, 0.0, 5e-05, 0.00012, 3e-05, 3e-05, 0.00013, 0.0, 0.0, 4e-05, 0.0, 0.00034, 4e-05, 0.0, 0.00011, 0.00028, 4e-05, 0.00011, 0.00039, 0.00032, 0.00011, 4e-05, 0.00032, 0.00012, 0.00044, 0.00038, 0.0003, 0.0, 0.0, 0.0, 0.00026, 0.00032, 0.00011, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0002, 6e-05, 1e-05, 7e-05, 0.00024, 6e-05, 7e-05, 1e-05, 0.00039, 0.00021, 0.00032, 0.00049, 0.0003, 0.00028, 0.00017, 7e-05, 0.00064, 0.00018, 0.0, 0.0, 0.0, 7e-05, 0.00017, 0.00078, 0.0, 0.00021, 0.00021, 0.00043, 0.00059, 0.00045, 0.00036, 0.0, 0.00011, 2e-05, 0.0002, 0.00017, 0.0, 0.0, 8e-05, 0.0, 7e-05, 0.00024, 0.00041, 0.0, 0.00032, 5e-05, 0.00042, 4e-05, 6e-05, 0.00049, 0.0, 6e-05, 4e-05, 0.0002, 0.001, 0.00037, 0.0004, 0.00021, 0.0005, 0.0, 0.0, 0.0, 0.00027, 9e-05, 1e-05, 0.00011, 0.00032, 0.00021, 0.00019, 7e-05, 0.0, 8e-05, 0.00013, 0.00012, 0.00019, 2e-05, 0.0, 7e-05, 0.0, 0.00015, 7e-05, 0.00014, 0.00051, 0.00016, 3e-05, 0.0, 0.00078, 0.0, 0.0, 7e-05, 0.00041, 0.0, 0.0, 0.00014, 0.00253, 4e-05, 0.0001, 0.0, 0.00224, 0.0, 0.0, 4e-05, 8e-05, 0.0, 0.00019, 0.00018, 0.00057, 0.00048, 0.0003, 0.00032, 8e-05, 1e-05, 3e-05, 0.00036, 0.0, 2e-05, 0.0, 0.00048, 0.0, 0.0, 9e-05, 0.00035, 3e-05, 3e-05, 0.00042, 0.00031, 3e-05, 3e-05, 0.00032, 0.00024, 0.00044, 0.00039, 0.00018, 0.00032, 1e-05, 0.0, 0.00014, 0.0, 0.0, 0.0, 0.00043, 5e-05, 0.0, 0.0, 4e-05, 1e-05, 0.0, 0.00069, 0.0, 6e-05, 8e-05, 3e-05, 0.0, 4e-05, 0.00019, 6e-05, 2e-05, 0.00028, 0.00013, 2e-05, 6e-05, 0.00021, 0.0, 0.00047, 0.00053, 6e-05, 0.00036, 5e-05, 0.0, 0.00024, 0.00063, 0.0, 5e-05, 6e-05, 0.00032, 4e-05, 3e-05, 0.0, 0.00022, 0.0, 0.0, 0.0, 0.00033, 0.0, 0.0, 3e-05, 0.00033, 0.00011, 6e-05, 7e-05, 0.00046, 8e-05, 7e-05, 0.00067, 0.0, 0.0, 7e-05, 0.00036, 7e-05, 8e-05, 0.00066, 0.0, 3e-05, 4e-05, 0.0, 0.00032, 0.00028, 5e-05, 6e-05, 0.0, 0.0, 0.00033, 0.0, 0.0, 0.00012, 0.00039, 0.0, 5e-05, 5e-05, 0.00099, 0.00013, 0.00017, 9e-05, 0.00052, 0.0, 0.00024, 0.00095, 0.00046, 0.00024, 0.0, 0.00118, 0.01194, 0.00045, 0.0005, 0.0, 0.0, 0.0, 1e-05, 0.00057, 0.00038, 0.0, 0.00022, 0.0, 0.00398, 0.00042, 0.00049, 0.0016, 0.0, 6e-05, 0.0, 0.0001, 4e-05, 0.0, 0.00031, 0.00013, 0.0, 0.0001, 0.0, 0.0, 4e-05, 0.00044, 0.0, 0.0, 6e-05, 8e-05, 0.0003, 0.00077, 0.00031, 0.00038, 2e-05, 0.0, 0.0, 0.00029, 0.0, 7e-05, 0.0, 0.00034, 0.00018, 0.00012, 2e-05, 0.00028, 0.00011, 0.0, 0.0, 0.0003, 5e-05, 0.0, 4e-05, 0.00045, 0.0, 4e-05, 0.0, 0.00031, 0.00012, 0.00011, 0.00031, 7e-05, 0.00011, 0.00012, 0.00028, 0.0003, 0.00039, 0.00039, 0.00017, 0.00096, 0.0, 1e-05, 0.0, 0.0, 2e-05, 9e-05, 0.00075, 0.0, 5e-05, 0.0001, 0.0, 5e-05, 2e-05, 0.00012, 9e-05, 9e-05, 9e-05, 0.0, 0.00015, 0.0])))]},
 'version': 2}

L'objet PubResult contient des métadonnées de résilience supplémentaires sur les modèles de bruit appris utilisés pour l'atténuation.

# Print learned layer noise metadata
for field, value in pub_result.metadata["resilience"]["layer_noise"].items():
    print(f"{field}: {value}")

Output:

noise_overhead: 9.2584227461744e+229
total_mitigated_layers: 18
unique_mitigated_layers: 3
unique_mitigated_layers_noise_overhead: [2.0713004613510885e+36, 10.600275591731494, 9.687147432958504]
# Exact data computed using the methods described in the original reference
# Y. Kim et al. "Evidence for the utility of quantum computing before fault tolerance" (Nature 618,
# 500–505 (2023)) Directly used here for brevity
exact_data = np.array(
    [
        1,
        0.9899,
        0.9531,
        0.8809,
        0.7536,
        0.5677,
        0.3545,
        0.1607,
        0.0539,
        0.0103,
        0.0012,
        0.0,
    ]
)

Résultats de la simulation Plot Trotter

Le code suivant crée un graphique pour comparer les résultats bruts et atténués de l'expérience avec la solution exacte.

zne_metadata = primitive_result.metadata["resilience"]["zne"]
# Plot Trotter simulation results
fig = plot_trotter_results(
    pub_result,
    parameter_values,
    plot_extrapolator=zne_metadata["extrapolator"],
    plot_noise_factors=zne_metadata["noise_factors"],
    exact=exact_data,
)
display(fig)

Output:

Output of the previous code cell

Alors que les valeurs bruitées (facteur de bruit nf=1.0) présentent un écart important par rapport aux valeurs exactes, les valeurs atténuées sont proches des valeurs exactes, ce qui démontre l'utilité de la technique d'atténuation basée sur la PEA.

Résultats de l'extrapolation de la courbe pour chaque qubit individuel

Enfin, le code suivant crée un graphique montrant les courbes d'extrapolation pour différentes valeurs de thêta sur un qubit spécifique.

virtual_qubit = 1
plot_qubit_zne_data(
    pub_result=pub_result,
    angles=parameter_values,
    qubit=virtual_qubit,
    noise_factors=zne_metadata["noise_factors"],
    extrapolator=zne_metadata["extrapolator"],
    extrapolated_noise_factors=zne_metadata["extrapolated_noise_factors"],
)

Output:

Output of the previous code cell

Etapes suivantes

Recommandations

Si ce travail vous a paru intéressant, les ressources suivantes pourraient vous intéresser :

  • Un tutoriel consacré à la combinaison de techniques d'atténuation des erreurs.
  • Documentation détaillée sur les techniques d'atténuation des erreurs disponibles dans Qiskit.
  • Cours supplémentaires consacrés aux expériences à l'échelle industrielle : Utility II et Utility III.
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.