Skip to main content
IBM Quantum Platform

Quanteninformation

qiskit.quantum_info


Operatoren

Kolumne „ 1 “
Kolumne „ 2 “
Operator(Daten[, input_dims, output_dims] )Matrix-Operator-Klasse
Pauli( [Daten] )N-qubit Pauli-Operator.
Clifford(Daten[, Validieren, Kopieren] )Ein N-Qubit-Unitaroperator aus der Clifford-Gruppe.
ScalarOp( [Abmessungen, Koeffizient] )Skalar-Identitätsoperator-Klasse.
SparseObservable(Daten, /[, Anzahl_Qubits] )Ein Observable über Pauli-Basen, das seine Daten in einem Qubit-sparsen Format speichert.
SparsePauliOp(Daten[, Koeffizienten, …] )Sparse N-Qubit-Operator in einer Pauli-Basis-Darstellung.
PauliLindbladMap(Daten, /[, Anzahl_Qubits] )Eine Pauli-Lindblad-Karte, die in einem Qubit-armen Format gespeichert ist.
QubitSparsePauli(Daten, /[, Anzahl_Qubits] )Ein phasenloser Pauli-Operator, der in einem Qubit-armen Format gespeichert ist.
QubitSparsePauliList(Daten, /[, Anzahl_Qubits] )Eine Liste phasenloser Pauli-Operatoren, die in einem Qubit-sparsen Format gespeichert ist.
PhasedQubitSparsePauli(Daten, /[, Anzahl_Qubits] )Ein Pauli-Operator, der in einem Qubit-sparse-Format gespeichert ist.
PhasedQubitSparsePauliList(Daten, /[, Anzahl_Qubits] )Eine Liste von Pauli-Operatoren mit Phasen, die in einem Qubit-armen Format gespeichert sind.
CNOTDihedral( [Daten, Anzahl_Qubits, Validierung] )Ein N-Qubit-Operator aus der CNOT-Dihedral-Gruppe.
PauliList(Daten)Liste der N-Qubit Pauli-Operatoren.
pauli_basis(Anzahl_Qubits[, Gewicht] )Rückgabe der geordneten PauliList für die n-Qubit-Pauli-Basis.
get_clifford_gate_names()Gibt die Liste der Namen der Clifford-Gatter zurück.

Status

Kolumne „ 1 “
Kolumne „ 2 “
Statevector(Daten[, Dimensionen] )Zustandsvektor-Klasse
DensityMatrix(Daten[, Dimensionen] )DensityMatrix klasse
StabilizerState(Daten[, Validierung] )StabilizerState klasse.

Kanäle

Kolumne „ 1 “
Kolumne „ 2 “
Choi(Daten[, input_dims, output_dims] )Choi-Matrix-Darstellung eines Quantenkanals.
SuperOp(Daten[, input_dims, output_dims] )Superoperator-Darstellung eines Quantenkanals.
Kraus(Daten[, input_dims, output_dims] )Kraus-Darstellung eines Quantenkanals.
Stinespring(Daten[, input_dims, output_dims] )Stinespring-Darstellung eines Quantenkanals.
Chi(Daten[, input_dims, output_dims] )Pauli-Basis-Chi-Matrix-Darstellung eines Quantenkanals.
PTM(Daten[, input_dims, output_dims] )Pauli Transfer Matrix (PTM) Darstellung eines Quantenkanals.

Messungen

average_gate_fidelity

qiskit.quantum_info.average_gate_fidelity(channel, target=None, require_cp=True, require_tp=False)

GitHub

Rückgabe der durchschnittlichen Gattertreue eines verrauschten Quantenkanals.

Die durchschnittliche Gattertreue FaveF_{\text{ave}} ist gegeben durch

Fave(E,U)=∫dψ⟨ψ∣U†E(∣ψ⟩ ⁣⟨ψ∣)U∣ψ⟩=dFpro(E,U)+1d+1\begin{aligned} F_{\text{ave}}(\mathcal{E}, U) &= \int d\psi \langle\psi|U^\dagger \mathcal{E}(|\psi\rangle\!\langle\psi|)U|\psi\rangle \\ &= \frac{d F_{\text{pro}}(\mathcal{E}, U) + 1}{d + 1} \end{aligned}

wobei Fpro(E,U)F_{\text{pro}}(\mathcal{E}, U) die process_fidelity() des Eingangs-Quantenkanals E\mathcal{E} mit einer Ziel-Unitarität UU und dd die Dimension des Kanals ist.

Parameter

  • channel (QuantumChannel or Operator) – rauschbehafteter Quantenkanal.
  • target (Operator or None) – Ziel-Unitaroperator. Wenn „None“ als Ziel angegeben ist, gilt der Identitätsoperator[. Standardwert: None].
  • require_cp (bool) – prüft, ob Eingangs- und Zielkanäle vollständig positiv sind und ob Nicht-CP-Log-Warnungen negative Eigenwerte der Choi-Matrix enthalten [Standard: Wahr].
  • require_tp (bool) – prüft, ob Eingangs- und Zielkanäle spurenerhaltend sind und ob nicht-TP-Log-Warnungen negative Eigenwerte der partiellen Choi-Matrix enthalten Trout[E]−ITr_{\text{out}}[\mathcal{E}] - I [Standard: Wahr].

Rückgabe

Die durchschnittliche Gattertreue FaveF_{\text{ave}}.

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn der Kanal und das Ziel nicht die gleichen Abmessungen haben oder unterschiedliche Eingangs- und Ausgangsabmessungen haben.

process_fidelity

qiskit.quantum_info.process_fidelity(channel, target=None, require_cp=True, require_tp=True)

GitHub

Rückgabe der Prozesstreue eines verrauschten Quantenkanals.

Die Prozesstreue Fpro(E,F)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) zwischen zwei Quantenkanälen E,F\mathcal{E}, \mathcal{F} ist gegeben durch

Fpro(E,F)=F(ρE,ρF)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) = F(\rho_{\mathcal{E}}, \rho_{\mathcal{F}})

wobei FF die state_fidelity(), ρE=ΛE/d\rho_{\mathcal{E}} = \Lambda_{\mathcal{E}} / d die normierte Choi Matrix für den Kanal E\mathcal{E} und dd die Eingangsdimension von E\mathcal{E} ist.

Wenn der Zielkanal einheitlich ist, ist dies gleichbedeutend mit

Fpro(E,U)=Tr[SU†SE]d2F_{\text{pro}}(\mathcal{E}, U) = \frac{Tr[S_U^\dagger S_{\mathcal{E}}]}{d^2}

wobei SE,SUS_{\mathcal{E}}, S_{U} die SuperOp Matrizen für den Eing angsquantenkanal E\mathcal{E} bzw. die Zielunitarität UU sind und dd die Eingangsdimension des Kanals ist.

Parameter

  • channel (Operator or QuantumChannel) – Eingangs-Quantenkanal.
  • target (Operator or QuantumChannel or None) – Ziel-Quantenkanal. Wenn „None“ als Ziel angegeben ist, gilt der Identitätsoperator[. Standardwert: None].
  • require_cp (bool) – prüft, ob Eingangs- und Zielkanäle vollständig positiv sind und ob Nicht-CP-Log-Warnungen negative Eigenwerte der Choi-Matrix enthalten [Standard: Wahr].
  • require_tp (bool) – prüft, ob Eingangs- und Zielkanäle spurenerhaltend sind und ob nicht-TP-Log-Warnungen negative Eigenwerte der partiellen Choi-Matrix enthalten Trout[E]−ITr_{\text{out}}[\mathcal{E}] - I [Standard: Wahr].

Rückgabe

Die Prozesstreue FproF_{\text{pro}}.

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn der Kanal und das Ziel nicht dieselben Abmessungen haben.

gate_error

qiskit.quantum_info.gate_error(channel, target=None, require_cp=True, require_tp=False)

GitHub

Rückgabe des Gate-Fehlers eines verrauschten Quantenkanals.

Der Gatterfehler EE wird durch die durchschnittliche Untreue des Gatters bestimmt

E(E,U)=1−Fave(E,U)E(\mathcal{E}, U) = 1 - F_{\text{ave}}(\mathcal{E}, U)

dabei ist Fave(E,U)F_{\text{ave}}(\mathcal{E}, U) die average_gate_fidelity() des Eingangs-Quantenkanals E\mathcal{E} mit einer Ziel-Unitarität UU ist.

Parameter

  • channel (QuantumChannel) – verrauschter Quantenkanal.
  • target (Operator or None) – Ziel-Unitaroperator. Wenn „None“ als Ziel angegeben ist, gilt der Identitätsoperator[. Standardwert: None].
  • require_cp (bool) – prüft, ob Eingangs- und Zielkanäle vollständig positiv sind und ob Nicht-CP-Log-Warnungen negative Eigenwerte der Choi-Matrix enthalten [Standard: Wahr].
  • require_tp (bool) – prüft, ob Eingangs- und Zielkanäle spurenerhaltend sind und ob nicht-TP-Log-Warnungen negative Eigenwerte der partiellen Choi-Matrix enthalten Trout[E]−ITr_{\text{out}}[\mathcal{E}] - I [Standard: Wahr].

Rückgabe

Der durchschnittliche Gatterfehler EE.

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn der Kanal und das Ziel nicht die gleichen Abmessungen haben oder unterschiedliche Eingangs- und Ausgangsabmessungen haben.

diamond_norm

qiskit.quantum_info.diamond_norm(choi, solver='SCS', **kwargs)

GitHub

Rückgabe der Diamantnorm des Eingabe-Quantenkanalobjekts.

Diese Funktion berechnet die vollständig begrenzte Spurennorm (oft auch als Diamantnorm bezeichnet) des eingegebenen Quantenkanalobjekts unter Verwendung des semidefiniten Programms aus Referenz [1].

Parameter

  • choi (Choi or QuantumChannel) – ein Quantenkanalobjekt oder ein Choi-Matrix-Array.
  • solver (str) – Der zu verwendende Solver.
  • kwargs - optionale Argumente zur Übergabe an den CVXPY-Löser.

Rückgabe

Die vollständig begrenzte Spurennorm ∥E∥⋄\|\mathcal{E}\|_{\diamond}.

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn das CVXPY-Paket nicht gefunden wird.

Weitere Informationen:

Die Eingabe für diese Funktion ist in der Regel kein CPTP-Quantenkanal, sondern die Differenz zwischen zwei Quantenkanälen ∥ΔE∥⋄\|\Delta\mathcal{E}\|_\diamond mit ΔE=E1−E2\Delta\mathcal{E} = \mathcal{E}_1 - \mathcal{E}_2.

Referenz:

J. Watrous. "Simpler semidefinite programs for completely bounded norms", arXiv:1207.5726 [quant-ph] (2012).

Anmerkung

Für diese Funktion muss das optionale CVXPY-Paket installiert sein. Alle zusätzlichen kwargs werden an die Funktion cvxpy.solve übergeben. In der CVXPY-Dokumentation finden Sie Informationen über die verfügbaren SDP-Löser.

state_fidelity

qiskit.quantum_info.state_fidelity(state1, state2, validate=True)

GitHub

Rückgabe der Zustandstreue zwischen zwei Quantenzuständen.

Die Zustandstreue FF für Dichtematrix-Eingangszustände ρ1,ρ2\rho_1, \rho_2 ist gegeben durch

F(ρ1,ρ2)=Tr[ρ1ρ2ρ1]2.F(\rho_1, \rho_2) = Tr[\sqrt{\sqrt{\rho_1}\rho_2\sqrt{\rho_1}}]^2.

Wenn einer der Zustände ein reiner Zustand ist, vereinfacht sich dies zu F(ρ1,ρ2)=⟨ψ1∣ρ2∣ψ1⟩F(\rho_1, \rho_2) = \langle\psi_1|\rho_2|\psi_1\rangle, wobei ρ1=∣ψ1⟩ ⁣⟨ψ1∣\rho_1 = |\psi_1\rangle\!\langle\psi_1|.

Parameter

Rückgabe

Die Staatstreue F(ρ1,ρ2)F(\rho_1, \rho_2).

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn validate=True und die Eingänge ungültige Quantenzustände sind.

purity

qiskit.quantum_info.purity(state, validate=True)

GitHub

Berechnen Sie die Reinheit eines Quantenzustands.

Die Reinheit einer Dichtematrix ρ\rho ist

Purity(ρ)=Tr[ρ2]\text{Purity}(\rho) = Tr[\rho^2]

Parameter

  • state (Statevector orDensityMatrix) – ein Quantenzustand.
  • validate (bool) – prüfen, ob der Eingabezustand gültig ist [Standard: True]

Rückgabe

die Reinheit Tr[ρ2]Tr[\rho^2].

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn es sich bei der Eingabe nicht um einen gültigen Quantenzustand handelt.

concurrence

qiskit.quantum_info.concurrence(state)

GitHub

Berechnen Sie die Gleichzeitigkeit eines Quantenzustands.

Die Konkordanz eines bipartiten Statevector∣ψ⟩|\psi\rangle s ist gegeben durch

C(∣ψ⟩)=2(1−Tr[ρ02])C(|\psi\rangle) = \sqrt{2(1 - Tr[\rho_0^2])}

wobei ρ0=Tr1[∣ψ⟩ ⁣⟨ψ∣]\rho_0 = Tr_1[|\psi\rangle\!\langle\psi|] der reduzierte Zustand ist, der durch Reduzierung partial_trace() des Eingabezustands erhalten wird.

Für Dichtematrizen ist die Gleichzeitigkeit nur für 2-Qubit-Zustände definiert, sie ist gegeben durch:

C(ρ)=max⁡(0,λ1−λ2−λ3−λ4)C(\rho) = \max(0, \lambda_1 - \lambda_2 - \lambda_3 - \lambda_4)

wobei λ1≥λ2≥λ3≥λ4\lambda _1 \ge \lambda _2 \ge \lambda _3 \ge \lambda _4 die geordneten Eigenwerte der Matrix R=ρ(Y⊗Y)ρ‾(Y⊗Y)ρR=\sqrt{\sqrt{\rho }(Y\otimes Y)\overline{\rho}(Y\otimes Y)\sqrt{\rho}} sind.

Parameter

state (Statevector orDensityMatrix) – ein 2-Qubit-Quantenzustand.

Rückgabe

Das Einverständnis.

Rückgabetyp

Gleitkomma

Erhöht

  • QiskitError - wenn der Eingangszustand kein gültiger QuantumState ist.
  • QiskitError - wenn die Eingabe nicht zweistufig ist QuantumState.
  • QiskitError - wenn der Eingang der Dichtematrix kein 2-Qubit-Zustand ist.

entropy

qiskit.quantum_info.entropy(state, base=2)

GitHub

Berechnen Sie die von-Neumann-Entropie eines Quantenzustands.

Die Entropie SS ist gegeben durch

S(ρ)=−Tr[ρlog⁡(ρ)]S(\rho) = - Tr[\rho \log(\rho)]

Parameter

Rückgabe

Die von-Neumann-Entropie S(rho).

Rückgabetyp

Gleitkomma

Erhöht

QiskitError - wenn der Eingangszustand kein gültiger QuantumState ist.

entanglement_of_formation

qiskit.quantum_info.entanglement_of_formation(state)

GitHub

Berechnen Sie die Verschränkung bei der Bildung eines Quantenzustands.

Der Eingangsquantenzustand muss entweder ein zweistufiger Zustandsvektor oder eine 2-Qubit-Dichtematrix sein.

Parameter

state (Statevector orDensityMatrix) – ein 2-Qubit-Quantenzustand.

Rückgabe

Die Verflechtung der Bildung.

Rückgabetyp

Gleitkomma

Erhöht

  • QiskitError - wenn der Eingangszustand kein gültiger QuantumState ist.
  • QiskitError - wenn die Eingabe nicht zweistufig ist QuantumState.
  • QiskitError - wenn der Eingang der Dichtematrix kein 2-Qubit-Zustand ist.

mutual_information

qiskit.quantum_info.mutual_information(state, base=2)

GitHub

Berechnen Sie die gegenseitige Information eines zweiseitigen Zustands.

Die gegenseitige Information II ist gegeben durch:

I(ρAB)=S(ρA)+S(ρB)−S(ρAB)I(\rho_{AB}) = S(\rho_A) + S(\rho_B) - S(\rho_{AB})

wobei ρA=TrB[ρAB],ρB=TrA[ρAB]\rho_A=Tr_B[\rho_{AB}], \rho_B=Tr_A[\rho_{AB}], die reduzierten Dichtematrizen des zweiseitigen Zustands ρAB\rho_{AB} sind.

Parameter

Rückgabe

Die gegenseitige Information I(ρAB)I(\rho_{AB}).

Rückgabetyp

Gleitkomma

Erhöht

  • QiskitError - wenn der Eingangszustand kein gültiger QuantumState ist.
  • QiskitError - wenn die Eingabe nicht zweistufig ist QuantumState.

Dienstprogrammfunktionen

Kolumne „ 1 “
Kolumne „ 2 “
Quaternion(Daten)Eine Klasse, die ein Quaternion darstellt.

partial_trace

qiskit.quantum_info.partial_trace(state, qargs)

GitHub

Rückgabe der reduzierten Dichtematrix durch Aufspüren eines Teils des Quantenzustands.

Wenn alle Teilsysteme durchlaufen werden, wird der trace() Zustand des Eingangs zurückgegeben.

Parameter

Rückgabe

Die reduzierte Dichtematrix.

Rückgabetyp

DensityMatrix

Erhöht

QiskitError - wenn der Eingangszustand ungültig ist.

schmidt_decomposition

qiskit.quantum_info.schmidt_decomposition(state, qargs)

GitHub

Gibt die Schmidt-Zerlegung eines reinen Quantenzustands zurück.

Für einen beliebigen zweistufigen Zustand:

∣ψ⟩AB=∑i,jcij∣xi⟩A⊗∣yj⟩B,|\psi\rangle_{AB} = \sum_{i,j} c_{ij} |x_i\rangle_A \otimes |y_j\rangle_B,

seine Schmidt-Zerlegung ist durch die Ein-Index-Summe über k gegeben:

∣ψ⟩AB=∑kλk∣uk⟩A⊗∣vk⟩B|\psi\rangle_{AB} = \sum_{k} \lambda_{k} |u_k\rangle_A \otimes |v_k\rangle_B

wobei ∣uk⟩A|u_k\rangle_A und ∣vk⟩B|v_k\rangle_B eine orthonormale Menge von Vektoren in ihren jeweiligen Räumen AA und BB sind, und die Schmidt-Koeffizienten λk\lambda_k positive reelle Werte sind.

Parameter

  • state (Statevector orDensityMatrix) – der Eingabezustand.
  • qargs (list) – die Liste der Positionen des Eingangszustands, die dem Teilsystem BB entsprechen.

Rückgabe

liste der Tupel (s, u, v), wobei s (float) die Schmidt-Koeffizienten λk\lambda_k und u (Statevector), v (Statevector) die Schmidt-Vektoren ∣uk⟩A|u_k\rangle_A bzw. ∣uk⟩B|u_k\rangle_B sind.

Rückgabetyp

Liste

Erhöht

  • QiskitError - wenn Input qargs nicht eine Liste von Positionen des Input-Status ist.
  • QiskitError - wenn Input qargs keine geeignete Teilmenge von Input state ist.
Anmerkung

In Qiskit werden die Qubits in Little-Endian-Notation angeordnet, wobei die niederwertigsten Qubits kleinere Indizes haben. Zum Beispiel wird ein Vier-Qubit-System als ∣q3q2q1q0⟩|q_3q_2q_1q_0\rangle dargestellt. Wenn man diese Konvention anwendet und qargs=[0] setzt, wird der Zustand als ∣q3q2q1⟩A⊗∣q0⟩B|q_3q_2q_1\rangle_A\otimes|q_0\rangle_B aufgeteilt. Außerdem werden die Qubits unabhängig von der Reihenfolge, in der sie übergeben werden, in dieser Notation organisiert. Wenn Sie zum Beispiel entweder qargs=[1,2] oder qargs=[2,1] angeben, wird der Zustand als ∣q3q0⟩A⊗∣q2q1⟩B|q_3q_0\rangle_A\otimes|q_2q_1\rangle_B partitioniert.

shannon_entropy

qiskit.quantum_info.shannon_entropy(pvec, base=2)

GitHub

Berechnen Sie die Shannon-Entropie eines Wahrscheinlichkeitsvektors.

Die Shannon-Entropie eines Wahrscheinlichkeitsvektors p⃗=[p0,...,pn−1]\vec{p} = [p_0, ..., p_{n-1}] ist definiert als

H(p⃗)=∑i=0n−1pilog⁡b(pi)H(\vec{p}) = \sum_{i=0}^{n-1} p_i \log_b(p_i)

wobei bb die Log-Basis und (Standardwert 2) und 0log⁡b(0)≡00 \log_b(0) \equiv 0 ist.

Parameter

  • pvec (array_like) – ein Wahrscheinlichkeitsvektor.
  • base (int) – die Basis des Logarithmus [Standard: 2].

Rückgabe

Die Shannon-Entropie H(pvec).

Rückgabetyp

Gleitkomma

commutator

qiskit.quantum_info.commutator(a, b)

GitHub

Berechne den Kommutator von a und b.

ab−ba.ab - ba.

Parameter

  • a (OperatorTypeT) – Bediener a.
  • b (OperatorTypeT) – Bediener b.

Rückgabe

Der Kommutator

Rückgabetyp

OperatorTypeT

anti_commutator

qiskit.quantum_info.anti_commutator(a, b)

GitHub

Berechnen Sie den Anti-Kommutator von a und b.

ab+ba.ab + ba.

Parameter

  • a (OperatorTypeT) – Bediener a.
  • b (OperatorTypeT) – Bediener b.

Rückgabe

Der Anti-Kommutator

Rückgabetyp

OperatorTypeT

double_commutator

qiskit.quantum_info.double_commutator(a, b, c, *, commutator=True)

GitHub

Berechne den symmetrischen Doppelkommutator von a, b und c.

Siehe auch Gleichung ( 13.6.18 ) in [1].

Wenn commutator True ist, gibt er

[[A,B],C]/2+[A,[B,C]]/2=(2ABC+2CBA−BAC−CAB−ACB−BCA)/2.[[A, B], C]/2 + [A, [B, C]]/2 = (2ABC + 2CBA - BAC - CAB - ACB - BCA)/2.

Wenn der Kommutator falsch ist, gibt er

{[A,B],C}/2+{A,[B,C]}/2=(2ABC−2CBA−BAC+CAB−ACB+BCA)/2.\lbrace[A, B], C\rbrace/2 + \lbrace A, [B, C]\rbrace/2 = (2ABC - 2CBA - BAC + CAB - ACB + BCA)/2.

Parameter

  • a (OperatorTypeT) – Bediener a.
  • b (OperatorTypeT) – Bediener b.
  • c (OperatorTypeT) – Bediener c.
  • commutator (bool) – Wenn True wird der doppelte Kommutator berechnet, wenn False der doppelte Antikommutator.

Rückgabe

Der Doppelkommutator

Rückgabetyp

OperatorTypeT

Referenzen

[1] : R. McWeeny.

Methoden der molekularen Quantenmechanik. 2. Auflage, Academic Press, 1992. ISBN 0-12-486552-6.


Beliebig

random_statevector

qiskit.quantum_info.random_statevector(dims, seed=None)

GitHub

Erzeuge einen zufälligen Zustandsvektor.

Der Zustandsvektor wird der Gleichverteilung entnommen. Dies ist das Maß, das durch das Haar-Maß für unitäre Matrizen induziert wird.

Parameter

  • dims (int ortuple) – die Dimensionen des Staates.
  • seed (int or np.random.Generator) – Optional. Setzen Sie einen festen Seed oder Generator für RNG.

Rückgabe

der zufällige Zustandsvektor.

Rückgabetyp

Zustandsvektor

Referenz:

K. Zyczkowski und H. Sommers (2001), "Induced measures in the space of mixed quantum states", J. Phys. A: Mathematik. Gen. 34 7111.

random_density_matrix

qiskit.quantum_info.random_density_matrix(dims, rank=None, method='Hilbert-Schmidt', seed=None)

GitHub

Erzeuge eine zufällige Dichtematrix.

Parameter

  • dims (int ortuple) – die Abmessungen der Website DensityMatrix.
  • rank (int or None) – die Rangzahl der Dichtematrix. Der Standardwert ist „full-rank“.
  • method (string) – Optional. Die zu verwendende Methode. hilbert-Schmidt': (Standard) Stichprobe aus der Hilbert-Schmidt-Metrik. bures": Probe aus der Bures-Metrik.
  • seed (int or np.random.Generator) – Optional. Setzen Sie einen festen Seed oder Generator für RNG.

Rückgabe

die Matrix der zufälligen Dichte.

Rückgabetyp

DensityMatrix

Erhöht

QiskitError - wenn die Methode nicht gültig ist.

random_unitary

qiskit.quantum_info.random_unitary(dims, seed=None)

GitHub

Gibt einen zufälligen unitären Operator zurück.

Der Operator wird aus dem unitären Haar-Maß abgetastet.

Parameter

  • dims (int ortuple) – die Eingangsabmessungen des Operators.
  • seed (int or np.random.Generator) – Optional. Setzen Sie einen festen Seed oder Generator für RNG.

Rückgabe

ein einheitlicher Operator.

Rückgabetyp

Bediener

random_hermitian

qiskit.quantum_info.random_hermitian(dims, traceless=False, seed=None)

GitHub

Gibt einen zufälligen hermitschen Operator zurück.

Der Operator wird aus dem Gauß'schen unitären Ensemble entnommen.

Parameter

  • dims (int ortuple) – die Eingangsdimension des Operators.
  • traceless (bool) – Optional. Bei True werden die diagonalen Einträge subtrahiert, um einen spurlosen hermitschen Operator zu erhalten (Standard: False).
  • seed (int or np.random.Generator) – Optional. Setzen Sie einen festen Seed oder Generator für RNG.

Rückgabe

ein hermitescher Operator.

Rückgabetyp

Bediener

random_pauli

qiskit.quantum_info.random_pauli(num_qubits, group_phase=False, seed=None)

GitHub

Gibt einen Zufallswert zurück Pauli.

Parameter

  • num_qubits (int) – Die Anzahl der Qubits.
  • group_phase (bool) – Optional. Falls eine zufällige Phase generieren True . Andernfalls wird die Phase so eingestellt, dass der Pauli-Koeffizient +1 beträgt (Standard: False).
  • seed (int |Generator | None) – Optional. Legen Sie einen festen Startwert oder Generator für den Zufallsgenerator fest.

Rückgabe

Ein beliebiger Pauli.

Rückgabetyp

Pauli

random_clifford

qiskit.quantum_info.random_clifford(num_qubits, seed=None)

GitHub

Gibt einen zufälligen Clifford-Operator zurück.

Die Clifford-Probe wird nach der Methode von Referenz [1] entnommen.

Parameter

  • num_qubits (int) – Die Anzahl der Qubits für den Clifford-Operator.
  • seed (int |Generator | None) – Optional. Legen Sie einen festen Startwert oder Generator für den Zufallsgenerator fest.

Rückgabe

Ein beliebiger Clifford-Operator.

Rückgabetyp

Clifford

Quellenangaben:

[1] S. Bravyi und D. Maslov (2020). Hadamard-freie Schaltungen legen die Struktur der Clifford-Gruppe offen. arXiv:2003.09412

random_quantum_channel

qiskit.quantum_info.random_quantum_channel(input_dims=None, output_dims=None, rank=None, seed=None)

GitHub

Rückgabe eines zufälligen CPTP-Quantenkanals.

Damit wird der Stinespring-Operator für den Quantenkanal konstruiert, indem eine zufällige Isometrie aus dem unitären Haar-Maß ausgewählt wird.

Parameter

  • input_dims (int ortuple) – die Eingangsgröße des Kanals.
  • output_dims (int ortuple) – die Ausgabegröße des Kanals.
  • rank (int) – Optional. Der Rang der Choi-Matrix des Quantenkanals.
  • seed (int or np.random.Generator) – Optional. Setzen Sie einen festen Seed oder Generator für RNG.

Rückgabe

ein Quantenkanaloperator.

Rückgabetyp

Stinespring

Erhöht

QiskitError - wenn Rang oder Abmessungen ungültig sind.

random_cnotdihedral

qiskit.quantum_info.random_cnotdihedral(num_qubits, seed=None)

GitHub

Gibt ein zufälliges CNOTDihedral-Element zurück.

Parameter

  • num_qubits (int) – die Anzahl der Qubits für das CNOTDihedral-Objekt.
  • seed (int or RandomState) – Optional. Setzen Sie einen festen Seed oder Generator für RNG.

Rückgabe

ein zufälliges CNOTDihedral-Element.

Rückgabetyp

CNOT-Dihedral

random_pauli_list

qiskit.quantum_info.random_pauli_list(num_qubits, size=1, seed=None, phase=True)

GitHub

Gibt einen Zufallswert zurück PauliList.

Parameter

  • num_qubits (int) – Die Anzahl der Qubits.
  • size (int) – Optional. Die Länge der Pauli-Liste (Standardwert: 1).
  • seed (int |Generator | None) – Optional. Legen Sie einen festen Startwert oder Generator für den Zufallsgenerator fest.
  • phase (bool) – Optional. Wenn True die Pauli-Phasen zufällig verteilt sind, andernfalls sind die Phasen auf 0 festgelegt (Standard: True).

Rückgabe

Einfach so PauliList.

Rückgabetyp

PauliList


Analyse

hellinger_distance

qiskit.quantum_info.hellinger_distance(dist_p, dist_q)

GitHub

Berechnet den Hellinger-Abstand zwischen zwei Zählverteilungen.

Parameter

  • dist_p (dict) – Erstes Diktat der Zählungen.
  • dist_q (dict) – Zweites Diktat der Zählungen.

Rückgabe

Entfernung

Rückgabetyp

Gleitkomma

Referenzen

Hellinger Entfernung @ wikipedia

hellinger_fidelity

qiskit.quantum_info.hellinger_fidelity(dist_p, dist_q)

GitHub

Berechnet die Hellinger-Treue zwischen zwei Zählverteilungen.

Die Wiedergabetreue ist definiert als (1−H2)2\left(1-H^{2}\right)^{2}, wobei H die Hellinger-Distanz ist. Dieser Wert ist durch den Bereich [0, 1] begrenzt.

Dies entspricht der klassischen Standardtreue F(Q,P)=(∑ipiqi)2F(Q,P)=\left(\sum_{i}\sqrt{p_{i}q_{i}}\right)^{2}, die wiederum gleich der Quantenzustandstreue für diagonale Dichtematrizen ist.

Parameter

  • dist_p (dict) – Erstes Diktat der Zählungen.
  • dist_q (dict) – Zweites Diktat der Zählungen.

Rückgabe

Genauigkeit

Rückgabetyp

Gleitkomma

Beispiel

from qiskit import QuantumCircuit
from qiskit.quantum_info.analysis import hellinger_fidelity
from qiskit.providers.basic_provider import BasicSimulator

qc = QuantumCircuit(5, 5)
qc.h(2)
qc.cx(2, 1)
qc.cx(2, 3)
qc.cx(3, 4)
qc.cx(1, 0)
qc.measure(range(5), range(5))

sim = BasicSimulator()
res1 = sim.run(qc).result()
res2 = sim.run(qc).result()

hellinger_fidelity(res1.get_counts(), res2.get_counts())

Referenzen

Quantum Fidelity @ wikipedia Hellinger Distanz @ wikipedia

Kolumne „ 1 “
Kolumne „ 2 “
Z2Symmetries(Symmetrien, sq_paulis, sq_list)Der $Z_2$ Symmetriekonverter identifiziert Symmetrien aus dem Problem-Hamiltonian und nutzt sie, um eine verjüngte - effizientere - Darstellung von Operatoren als Paulis für dieses Problem zu liefern.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.