Skip to main content
IBM Quantum Platform

Información cuántica

qiskit.quantum_info


Operadores

Operator(data[, input_dims, output_dims] )Clase de operador matricial
Pauli([datos] )Operador de Pauli de N-qubit.
Clifford(datos[, validar, copiar] )Un operador unitario N-qubit del grupo Clifford.
ScalarOp([dims, coeff] )Clase de operador de identidad escalar.
SparseObservable(datos, /[, num_qubits] )Un observable sobre bases Pauli que almacena sus datos en un formato de qubit disperso.
SparsePauliOp(datos[, coeficientes,...] )Operador N-qubit disperso en una representación de base Pauli.
PauliLindbladMap(datos, /[, num_qubits] )Un mapa Lindblad de Pauli almacenado en un formato de qubit disperso.
QubitSparsePauli(datos, /[, num_qubits] )Un operador de Pauli sin fase almacenado en un formato de qubit disperso.
QubitSparsePauliList(datos, /[, num_qubits] )Una lista de operadores Pauli sin fase almacenados en un formato de qubit disperso.
PhasedQubitSparsePauli(datos, /[, num_qubits] )Un operador de Pauli almacenado en un formato de qubit disperso.
PhasedQubitSparsePauliList(datos, /[, num_qubits] )Una lista de operadores de Pauli con fases almacenadas en un formato de qubit disperso.
CNOTDihedral([datos, num_qubits, validar] )Un operador N-qubit del grupo CNOT-Diédrico.
PauliList(datos)Lista de operadores de Pauli de N-qubit.
pauli_basis(num_qubits[, peso] )Devuelve el PauliList ordenado para la base de n-qubit Pauli.
get_clifford_gate_names()Devuelve la lista de nombres de puertas Clifford.

Estados

Statevector(datos[, dims] )Clase Statevector
DensityMatrix(datos[, dims] )DensityMatrix clase
StabilizerState(datos[, validar] )StabilizerState clase.

Canales

Choi(data[, input_dims, output_dims] )Representación de matriz de Choi de un canal cuántico.
SuperOp(data[, input_dims, output_dims] )Representación superoperadora de un canal cuántico.
Kraus(data[, input_dims, output_dims] )Representación Kraus de un canal cuántico.
Stinespring(data[, input_dims, output_dims] )Representación Stinespring de un canal cuántico.
Chi(data[, input_dims, output_dims] )Representación Chi-matricial en base Pauli de un canal cuántico.
PTM(data[, input_dims, output_dims] )Representación de la matriz de transferencia de Pauli (PTM) de un canal cuántico.

Medidas

average_gate_fidelity

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

GitHub

Devuelve la fidelidad de puerta media de un canal cuántico ruidoso.

La fidelidad media de la puerta FaveF_{\text{ave}} viene dada por

Fave(E,U)=dψψUE(ψ ⁣ψ)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}

donde Fpro(E,U)F_{\text{pro}}(\mathcal{E}, U) es la process_fidelity() del canal cuántico de entrada E\mathcal{E} con un objetivo unitario UU, y dd es la dimensión del canal.

Parámetros

  • channel (QuantumChannel or Operator) – canal cuántico ruidoso.
  • target (Operator or None) – operador unitario de destino. Si None target es el operador de identidad [Default: Ninguno].
  • require_cp (bool) – comprueba si los canales de entrada y de destino son completamente positivos y si el aviso de registro no CP contiene valores propios negativos de la matriz de Choi [Por defecto: True].
  • require_tp (bool) – comprueba si los canales de entrada y de destino conservan la traza y si el aviso de registro no TP contiene valores propios negativos de la matriz parcial de Choi Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Predeterminado: True].

Devuelve

La fidelidad media de la puerta FaveF_{\text{ave}}.

Tipo de retorno

Float

Eleva

QiskitError - si el canal y el objetivo no tienen las mismas dimensiones, o tienen dimensiones de entrada y salida diferentes.

process_fidelity

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

GitHub

Devuelve la fidelidad de proceso de un canal cuántico ruidoso.

La fidelidad de proceso Fpro(E,F)F_{\text{pro}}(\mathcal{E}, \mathcal{F}) entre dos canales cuánticos E,F\mathcal{E}, \mathcal{F} viene dada por

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

donde FF es el state_fidelity()ρE=ΛE/d\rho_{\mathcal{E}} = \Lambda_{\mathcal{E}} / d es la matriz normalizada Choi para el canal E\mathcal{E}, y dd es la dimensión de entrada de E\mathcal{E}.

Cuando el canal de destino es unitario, esto equivale a

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

donde SE,SUS_{\mathcal{E}}, S_{U} son las matrices SuperOp matrices para el canal cuántico de entrada E\mathcal{E} y el unitario objetivo UU respectivamente, y dd es la dimensión de entrada del canal.

Parámetros

  • channel (Operator or QuantumChannel) – canal cuántico de entrada.
  • target (Operator or QuantumChannel or None) – canal cuántico objetivo. Si None target es el operador de identidad [Default: Ninguno].
  • require_cp (bool) – comprueba si los canales de entrada y de destino son completamente positivos y si el aviso de registro no CP contiene valores propios negativos de la matriz de Choi [Por defecto: True].
  • require_tp (bool) – comprueba si los canales de entrada y de destino conservan la traza y si el aviso de registro no TP contiene valores propios negativos de la matriz parcial de Choi Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Predeterminado: True].

Devuelve

La fidelidad del proceso FproF_{\text{pro}}.

Tipo de retorno

Float

Eleva

QiskitError - si el canal y el objetivo no tienen las mismas dimensiones.

gate_error

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

GitHub

Devuelve el error de puerta de un canal cuántico ruidoso.

El error de puerta EE viene dado por la infidelidad media de la puerta

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

donde Fave(E,U)F_{\text{ave}}(\mathcal{E}, U) es el average_gate_fidelity() del canal cuántico de entrada E\mathcal{E} con un objetivo unitario UU.

Parámetros

  • channel (QuantumChannel) – canal cuántico ruidoso.
  • target (Operator or None) – operador unitario de destino. Si None target es el operador de identidad [Default: Ninguno].
  • require_cp (bool) – comprueba si los canales de entrada y de destino son completamente positivos y si el aviso de registro no CP contiene valores propios negativos de la matriz de Choi [Por defecto: True].
  • require_tp (bool) – comprueba si los canales de entrada y de destino conservan la traza y si el aviso de registro no TP contiene valores propios negativos de la matriz parcial de Choi Trout[E]ITr_{\text{out}}[\mathcal{E}] - I [Predeterminado: True].

Devuelve

El error medio de puerta EE.

Tipo de retorno

Float

Eleva

QiskitError - si el canal y el objetivo no tienen las mismas dimensiones, o tienen dimensiones de entrada y salida diferentes.

diamond_norm

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

GitHub

Devuelve la norma diamante del objeto canal cuántico de entrada.

Esta función calcula la traza-norma completamente acotada (a menudo denominada diamante-norma) del objeto canal cuántico de entrada utilizando el programa semidefinido de la referencia [1].

Parámetros

  • choi (Choi or QuantumChannel) – un objeto de canal cuántico o matriz de Choi.
  • solver (str) – El solucionador a utilizar.
  • kwargs - argumentos opcionales para pasar al solucionador CVXPY.

Devuelve

La norma de traza completamente acotada E\|\mathcal{E}\|_{\diamond}.

Tipo de retorno

Float

Eleva

QiskitError - si no se encuentra el paquete CVXPY.

Información adicional:

La entrada de esta función no suele ser un canal cuántico CPTP, sino la diferencia entre dos canales cuánticos ΔE\|\Delta\mathcal{E}\|_\diamond donde ΔE=E1E2\Delta\mathcal{E} = \mathcal{E}_1 - \mathcal{E}_2.

Referencia:

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

Nota

Esta función requiere tener instalado el paquete opcional CVXPY. Los kwargs adicionales se pasarán a la función cvxpy.solve . Consulte la documentación de CVXPY para obtener información sobre los solucionadores SDP disponibles.

state_fidelity

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

GitHub

Devuelve la fidelidad de estado entre dos estados cuánticos.

La fidelidad de estado FF para los estados de entrada de matriz de densidad ρ1,ρ2\rho_1, \rho_2 viene dada por

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

Si uno de los estados es un estado puro, esto se simplifica a F(ρ1,ρ2)=ψ1ρ2ψ1F(\rho_1, \rho_2) = \langle\psi_1|\rho_2|\psi_1\rangle, donde ρ1=ψ1 ⁣ψ1\rho_1 = |\psi_1\rangle\!\langle\psi_1|.

Parámetros

Devuelve

La fidelidad del Estado F(ρ1,ρ2)F(\rho_1, \rho_2).

Tipo de retorno

Float

Eleva

QiskitError - si validate=True y las entradas son estados cuánticos inválidos.

purity

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

GitHub

Calcular la pureza de un estado cuántico.

La pureza de una matriz de densidad ρ\rho es

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

Parámetros

  • state (Statevector orDensityMatrix) – un estado cuántico.
  • validate (bool) – comprobar si el estado de la entrada es válido [Por defecto: True]

Devuelve

la pureza Tr[ρ2]Tr[\rho^2].

Tipo de retorno

Float

Eleva

QiskitError - si la entrada no es un estado cuántico válido.

concurrence

qiskit.quantum_info.concurrence(state)

GitHub

Calcular la concurrencia de un estado cuántico.

La concurrencia de un bipartito Statevector ψ|\psi\rangle viene dada por

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

donde ρ0=Tr1[ψ ⁣ψ]\rho_0 = Tr_1[|\psi\rangle\!\langle\psi|] es el estado reducido obtenido al aplicar la función partial_trace() al estado de entrada.

En el caso de las matrices de densidad, la concurrencia sólo se define para estados de 2 qubits, y viene dada por:

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

donde λ1λ2λ3λ4\lambda _1 \ge \lambda _2 \ge \lambda _3 \ge \lambda _4 son los valores propios ordenados de la matriz R=ρ(YY)ρ(YY)ρR=\sqrt{\sqrt{\rho }(Y\otimes Y)\overline{\rho}(Y\otimes Y)\sqrt{\rho}}.

Parámetros

state (Statevector orDensityMatrix) – un estado cuántico de 2 qubits.

Devuelve

La concurrencia.

Tipo de retorno

Float

Eleva

  • QiskitError - si el estado de entrada no es válido QuantumState.
  • QiskitError - si la entrada no es un bipartito QuantumState.
  • QiskitError - si la entrada de la matriz de densidad no es un estado 2-qubit.

entropy

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

GitHub

Calcular la entropía von-Neumann de un estado cuántico.

La entropía SS viene dada por

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

Parámetros

Devuelve

La entropía de von-Neumann S(rho).

Tipo de retorno

Float

Eleva

QiskitError - si el estado de entrada no es válido QuantumState.

entanglement_of_formation

qiskit.quantum_info.entanglement_of_formation(state)

GitHub

Calcular el entrelazamiento de formación de estado cuántico.

El estado cuántico de entrada debe ser un vector de estado bipartito o una matriz de densidad de 2 qubits.

Parámetros

state (Statevector orDensityMatrix) – un estado cuántico de 2 qubits.

Devuelve

El enredo de la formación.

Tipo de retorno

Float

Eleva

  • QiskitError - si el estado de entrada no es válido QuantumState.
  • QiskitError - si la entrada no es un bipartito QuantumState.
  • QiskitError - si la entrada de la matriz de densidad no es un estado 2-qubit.

mutual_information

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

GitHub

Calcular la información mutua de un estado bipartito.

La información mutua II viene dada por:

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

donde ρA=TrB[ρAB],ρB=TrA[ρAB]\rho_A=Tr_B[\rho_{AB}], \rho_B=Tr_A[\rho_{AB}], son las matrices de densidad reducida del estado bipartito ρAB\rho_{AB}.

Parámetros

Devuelve

La información mutua I(ρAB)I(\rho_{AB}).

Tipo de retorno

Float

Eleva

  • QiskitError - si el estado de entrada no es válido QuantumState.
  • QiskitError - si la entrada no es un bipartito QuantumState.

Funciones de utilidad

Quaternion(datos)Una clase que representa un Quaternion.

partial_trace

qiskit.quantum_info.partial_trace(state, qargs)

GitHub

Devuelve la matriz de densidad reducida trazando parte del estado cuántico.

Si se rastrean todos los subsistemas esto devuelve el trace() del estado de entrada.

Parámetros

Devuelve

La matriz de densidad reducida.

Tipo de retorno

DensityMatrix

Eleva

QiskitError - si el estado de entrada no es válido.

schmidt_decomposition

qiskit.quantum_info.schmidt_decomposition(state, qargs)

GitHub

Devuelve la descomposición de Schmidt de un estado cuántico puro.

Para un estado bipartito arbitrario:

ψAB=i,jcijxiAyjB,|\psi\rangle_{AB} = \sum_{i,j} c_{ij} |x_i\rangle_A \otimes |y_j\rangle_B,

su descomposición de Schmidt viene dada por la suma de un índice sobre k:

ψAB=kλkukAvkB|\psi\rangle_{AB} = \sum_{k} \lambda_{k} |u_k\rangle_A \otimes |v_k\rangle_B

donde ukA|u_k\rangle_A y vkB|v_k\rangle_B son un conjunto ortonormal de vectores en sus respectivos espacios AA y BB, y los coeficientes de Schmidt λk\lambda_k son valores reales positivos.

Parámetros

  • state (Statevector orDensityMatrix) – el estado de entrada.
  • qargs (list) – la lista de posiciones de estado de entrada correspondientes al subsistema BB.

Devuelve

lista de tuplas (s, u, v), donde s (float) son los coeficientes Schmidt λk\lambda_k, y u (Statevector), v (Statevector) son los vectores Schmidt ukA|u_k\rangle_A, ukB|u_k\rangle_B, respectivamente.

Tipo de retorno

list de

Eleva

  • QiskitError - si Input qargs no es una lista de posiciones del estado Input.
  • QiskitError - si Input qargs no es un subconjunto adecuado de Input state.
Nota

En Qiskit, los qubits se ordenan utilizando la notación little-endian, y los qubits menos significativos tienen índices más pequeños. Por ejemplo, un sistema de cuatro qubits se representa como q3q2q1q0|q_3q_2q_1q_0\rangle. Usando esta convención, al establecer qargs=[0] se particionará el estado como q3q2q1Aq0B|q_3q_2q_1\rangle_A\otimes|q_0\rangle_B. Además, los qubits se organizarán en esta notación independientemente del orden en que se pasen. Por ejemplo, si se pasa qargs=[1,2] o qargs=[2,1] , el estado se particionará como q3q0Aq2q1B|q_3q_0\rangle_A\otimes|q_2q_1\rangle_B.

shannon_entropy

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

GitHub

Calcular la entropía de Shannon de un vector de probabilidad.

La entropía de Shannon de un vector de probabilidad p=[p0,...,pn1]\vec{p} = [p_0, ..., p_{n-1}] se define como

H(p)=i=0n1pilogb(pi)H(\vec{p}) = \sum_{i=0}^{n-1} p_i \log_b(p_i)

donde bb es la base logarítmica y (por defecto 2), y 0logb(0)00 \log_b(0) \equiv 0.

Parámetros

  • pvec (array_like) – un vector de probabilidad.
  • base (int) – la base del logaritmo [Por defecto: 2].

Devuelve

La entropía de Shannon H(pvec).

Tipo de retorno

Float

commutator

qiskit.quantum_info.commutator(a, b)

GitHub

Calcula el conmutador de a y b.

abba.ab - ba.

Parámetros

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

Devuelve

El conmutador

Tipo de retorno

OperatorTypeT

anti_commutator

qiskit.quantum_info.anti_commutator(a, b)

GitHub

Calcula el anticomutador de a y b.

ab+ba.ab + ba.

Parámetros

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

Devuelve

El anticomutador

Tipo de retorno

OperatorTypeT

double_commutator

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

GitHub

Calcula el doble conmutador simétrico de a, b y c.

Véase también la ecuación ( 13.6.18 ) en [1].

Si conmutador es True, devuelve

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

Si conmutador es False, devuelve

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

Parámetros

  • a (OperatorTypeT) – Operador a.
  • b (OperatorTypeT) – Operador b.
  • c (OperatorTypeT) – Operador c.
  • commutator (bool) – Si True calcula el doble conmutador, si False el doble anticonmutador.

Devuelve

El conmutador doble

Tipo de retorno

OperatorTypeT

Referencias

[1] : R. McWeeny.

Métodos de mecánica cuántica molecular. 2ª edición, Academic Press, 1992. ISBN 0-12-486552-6.


Aleatorio

random_statevector

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

GitHub

Genera un vector de estado aleatorio.

El vector de estado se muestrea a partir de la distribución uniforme. Es la medida inducida por la medida de Haar sobre matrices unitarias.

Parámetros

  • dims (int ortuple) – las dimensiones del Estado.
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

el vector de estado aleatorio.

Tipo de retorno

Vector de estado

Referencia:

K. Zyczkowski y H. Sommers (2001), "Induced measures in the space of mixed quantum states", J. Física. R: Matemáticas. Gen. 34 7111.

random_density_matrix

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

GitHub

Genera una matriz de densidad aleatoria.

Parámetros

  • dims (int ortuple) – las dimensiones de DensityMatrix.
  • rank (int or None) – el rango de la matriz de densidad. El valor predeterminado es «full-rank».
  • method (string) – Opcional. El método a utilizar. 'Hilbert-Schmidt': (Por defecto) muestra de la métrica Hilbert-Schmidt. 'Bures': muestra de la métrica Bures.
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

la matriz de densidad aleatoria.

Tipo de retorno

DensityMatrix

Eleva

QiskitError - si el método no es válido.

random_unitary

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

GitHub

Devuelve un Operador unitario aleatorio.

El operador se muestrea a partir de la medida unitaria de Haar.

Parámetros

  • dims (int ortuple) – las dimensiones de entrada del Operador.
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

un operador unitario.

Tipo de retorno

Operador

random_hermitian

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

GitHub

Devuelve un Operador hermitiano aleatorio.

El operador se muestrea a partir de un conjunto unitario gaussiano.

Parámetros

  • dims (int ortuple) – la dimensión de entrada del Operador.
  • traceless (bool) – Opcional. Si es True resta las entradas diagonales para devolver un operador hermitiano sin trazas (por defecto: False).
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

un operador hermitiano.

Tipo de retorno

Operador

random_pauli

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

GitHub

Devuelve un Pauli aleatorio.

Parámetros

  • num_qubits (int) – el número de qubits.
  • group_phase (bool) – Opcional. Si es True genera una fase aleatoria. En caso contrario, la fase se ajustará de modo que el coeficiente de Pauli sea +1 (por defecto: Falso).
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

un Pauli aleatorio

Tipo de retorno

Pauli

random_clifford

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

GitHub

Devuelve un operador Clifford aleatorio.

El Clifford se muestrea siguiendo el método de la referencia [1].

Parámetros

  • num_qubits (int) – el número de qubits para el Clifford
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

un operador aleatorio de Clifford.

Tipo de retorno

Clifford

Referencia:

  1. S. Bravyi y D. Maslov, Hadamard-free circuits expose the structure of the Clifford group. arXiv:2003.09412 [quant-ph]

random_quantum_channel

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

GitHub

Devuelve un canal cuántico CPTP aleatorio.

Esto construye el operador de Stinespring para el canal cuántico mediante el muestreo de una isometría aleatoria de la medida unitaria de Haar.

Parámetros

  • input_dims (int ortuple) – la dimensión de entrada del canal.
  • output_dims (int ortuple) – la dimensión de salida del canal.
  • rank (int) – Opcional. El rango de la matriz de Choi del canal cuántico.
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

un operador de canal cuántico.

Tipo de retorno

Stinespring

Eleva

QiskitError - si el rango o las dimensiones no son válidos.

random_cnotdihedral

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

GitHub

Devuelve un elemento CNOTDihedral aleatorio.

Parámetros

  • num_qubits (int) – el número de qubits del objeto CNOTDihedral.
  • seed (int or RandomState) – Opcional. Establece una semilla o generador fijo para el RNG.

Devuelve

un elemento CNOTDihedral aleatorio.

Tipo de retorno

CNOTDiédrica

random_pauli_list

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

GitHub

Devuelve un PauliList aleatorio.

Parámetros

  • num_qubits (int) – el número de qubits.
  • size (int) – Opcional. La longitud de la lista Pauli (Por defecto: 1).
  • seed (int or np.random.Generator) – Opcional. Establece una semilla o generador fijo para el RNG.
  • phase (bool) – Si es True las fases Pauli se aleatorizan, en caso contrario las fases se fijan a 0. [Valor predeterminado: True]

Devuelve

un PauliList aleatorio.

Tipo de retorno

PauliList


Análisis

hellinger_distance

qiskit.quantum_info.hellinger_distance(dist_p, dist_q)

GitHub

Calcula la distancia de Hellinger entre dos distribuciones de recuento.

Parámetros

  • dist_p (dict) – Primer dictado de cuentas.
  • dist_q (dict) – Segundo dictado de cuentas.

Devuelve

Distancia

Tipo de retorno

Float

Referencias

Distancia Hellinger @ wikipedia

hellinger_fidelity

qiskit.quantum_info.hellinger_fidelity(dist_p, dist_q)

GitHub

Calcula la fidelidad de Hellinger entre dos distribuciones de recuentos.

La fidelidad se define como (1H2)2\left(1-H^{2}\right)^{2} donde H es la distancia de Hellinger. Este valor está acotado en el intervalo [0, 1].

Esto es equivalente a la fidelidad clásica estándar F(Q,P)=(ipiqi)2F(Q,P)=\left(\sum_{i}\sqrt{p_{i}q_{i}}\right)^{2} que a su vez es igual a la fidelidad del estado cuántico para matrices de densidad diagonales.

Parámetros

  • dist_p (dict) – Primer dictado de cuentas.
  • dist_q (dict) – Segundo dictado de cuentas.

Devuelve

Fidelidad

Tipo de retorno

Float

Ejemplo

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())

Referencias

Fidelidad cuántica @ wikipedia Distancia de Hellinger @ wikipedia

Z2Symmetries(simetrías, sq_paulis, sq_list)El convertidor de simetría $Z_2$ identifica simetrías del hamiltoniano del problema y las utiliza para proporcionar una representación cónica -más eficiente- de los operadores como Paulis para este problema.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.