Qubit
qiskit_addon_sqd.qubit
Funciones para el tratamiento de muestras cuánticas.
solve_qubit
solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)
Encontrar las energías y los estados propios de un Hamiltoniano proyectado en un subespacio.
El subespacio está definido por una colección de estados base computacionales que se especifican mediante las cadenas de bits (filas) en bitstring_matrix. La dirección bitstring_matrix se ordenará y desduplicará en esta función, ya que el solucionador subyacente requiere esa estructura.
Esta función pide scipy.sparse.linalg.eigsh para la diagonalización.
Parámetros
-
bitstring_matrix (ndarray) – Una matriz 2D de representaciones
boolde valores de bits de forma que cada fila representa una única cadena de bits. Este conjunto de cadenas de bits especifica el subespacio en el que se proyectará y diagonalizaráhamiltonian. -
hamiltonian (SparsePauliOp) – Un Hamiltoniano especificado como un operador de Pauli.
-
verbose (bool) – Si se imprime la etapa de la subrutina.
-
**scipy_kwargs -
Argumentos de palabra clave que se pasarán a scipy.sparse.linalg.eigsh.
Devuelve
- 1D con los valores propios
- 2D con los vectores propios. Cada columna representa un vector propio.
Eleva
ValueError - Las cadenas de bits (filas) de bitstring_matrix deben tener una longitud < 64.
Tipo de retorno
project_operator_to_subspace
project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)
Proyectar un operador de Pauli sobre un subespacio de Hilbert definido por los estados (filas) de la base de cálculo en bitstring_matrix.
La matriz dispersa de salida, A, representa una matriz NxN s.t. N es el número de filas de bitstring_matrix. Las filas de A representan las configuraciones de entrada, y las columnas representan el componente conectado asociado a la configuración de la fila correspondiente. Los elementos distintos de cero de la matriz representan las amplitudes complejas asociadas a los componentes conectados.
Las cadenas de bits de bitstring_matrix deben ser únicas y estar ordenadas de forma ascendente según su representación entera sin signo. De lo contrario, la proyección arrojará resultados erróneos. Esta función no comprueba explícitamente la unicidad y el orden porque esto puede llevar bastante tiempo. Consulte qiskit_addon_sqd.qubit.sort_and_remove_duplicates() para una forma sencilla de asegurarse de que su matriz de cadenas de bits está bien formateada.
Esta función se basa en jax para realizar eficazmente algunos cálculos. jax convierte las matrices de bits a int64_t, lo que significa que las matrices de bits de bitstring_matrix no pueden tener una longitud superior a 63.
Parámetros
- bitstring_matrix (ndarray) – Una matriz 2D de representaciones
boolde valores de bits de forma que cada fila representa una única cadena de bits. Este conjunto de cadenas de bits especifica el subespacio en el que se proyectará y diagonalizaráhamiltonian. - hamiltonian (SparsePauliOp) – Un operador de Pauli para proyectar sobre un subespacio de Hilbert definido por
bitstring_matrix. - verbose (bool) – Si se imprime la etapa de la subrutina.
Devuelve
A scipy.sparse.coo_matrix que representa el operador proyectado en el subespacio. Las filas representan las configuraciones de entrada y las columnas, el componente conectado asociado a la configuración de la fila correspondiente. Los elementos distintos de cero de la matriz representan las amplitudes complejas asociadas a los pares de componentes conectados.
Eleva
ValueError - Las cadenas de bits (filas) de bitstring_matrix deben tener una longitud < 64.
Tipo de retorno
spmatrix
sort_and_remove_duplicates
sort_and_remove_duplicates(bitstring_matrix)
Ordena una matriz de bits y elimina las entradas duplicadas.
Los valores más bajos de la cadena de bits se colocarán en las filas con el índice más bajo.
Parámetros
bitstring_matrix (ndarray) – Una matriz 2D de representaciones bool de valores de bits de forma que cada fila representa una única cadena de bits.
Devuelve
Versión ordenada de bitstring_matrix sin filas repetidas.
Tipo de retorno
matrix_elements_from_pauli
matrix_elements_from_pauli(bitstring_matrix, pauli)
Hallar los elementos de la matriz dispersa de un operador de Pauli en el subespacio definido por las cadenas de bits.
La matriz dispersa, A, definida por las salidas representa una matriz NxN s.t. N es el número de filas de bitstring_matrix. Las filas de A representan las configuraciones de entrada, y las columnas representan el componente conectado asociado a la configuración de la fila correspondiente. Las matrices de salida definen la matriz dispersa, A, como sigue:
A[rows[k], cols[k]] = amplutides[k].
Las cadenas de bits de bitstring_matrix deben ser únicas y estar ordenadas de forma ascendente según su representación entera sin signo. De lo contrario, la proyección arrojará resultados erróneos. Esta función no comprueba explícitamente la unicidad y el orden porque esto puede llevar bastante tiempo. Consulte qiskit_addon_sqd.qubit.sort_and_remove_duplicates() para una forma sencilla de asegurarse de que su matriz de cadenas de bits está bien formateada.
Esta función se basa en jax para realizar eficazmente algunos cálculos. jax convierte las matrices de bits a int64_t, lo que significa que las matrices de bits de bitstring_matrix no pueden tener una longitud superior a 63.
Parámetros
- bitstring_matrix (ndarray) – Una matriz 2D de representaciones
boolde valores de bits de forma que cada fila representa una única cadena de bits. Las cadenas de bits de la matriz deben ordenarse según sus representaciones enteras sin signo. De lo contrario, la proyección arrojará resultados erróneos. - pauli (Pauli) – Un operador de Pauli para el que encontrar elementos conexos
Devuelve
- Las amplitudes complejas correspondientes a los elementos no nulos de la matriz
- Los índices de fila correspondientes a los elementos no nulos de la matriz
- Los índices de columna correspondientes a los elementos no nulos de la matriz
Eleva
ValueError - Las cadenas de bits (filas) de bitstring_matrix deben tener una longitud < 64.
Tipo de retorno