Recuperación de la configuración
qiskit_addon_sqd.configuration_recovery
Funciones para realizar la recuperación de configuraciones autoconsistentes.
post_select_by_hamming_weight
post_select_by_hamming_weight(bitstring_matrix, *, hamming_right, hamming_left)
Post-selección de cadenas de bits basada en el peso hamming de cada mitad.
La función qiskit_addon_sqd.configuration_recovery.post_select_by_hamming_weight() está obsoleta a partir de qiskit-addon-sqd 0.12.0. Se retirará no antes de v0.13.0. En su lugar, utilice la función postselect_by_hamming_right_and_left .
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 - hamming_right (int) – El peso hamming objetivo de la mitad derecha de las cadenas de bits
- hamming_left (int) – El peso hamming objetivo de la mitad izquierda de las cadenas de bits
Devuelve
Una máscara que indica qué muestras (filas) se han seleccionado de la matriz de entrada.
Tipo de retorno
recover_configurations
recover_configurations(bitstring_matrix, probabilities, avg_occupancies, num_elec_a, num_elec_b, rand_seed=None)
Afinar las cadenas de bits en función de la ocupación orbital media y de un peso hamming objetivo.
Esta función refina cada bit de forma aislada en un intento de transformar el espacio de Hilbert representado por la entrada bitstring_matrix en un espacio más cercano al que soporta el estado básico.
Esta función asume que el bit i representa el orbital de spin-down correspondiente al orbital de spin-up en el bit i + N donde N es el número de orbitales espaciales y i < 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 - probabilities (Sequence[float] | ndarray) – Una matriz 1D que especifica una distribución de probabilidad sobre las cadenas de bits
- avg_occupancies (tuple[ndarray, ndarray]) – Una tupla length-2 de matrices que contienen la ocupación media de los orbitales spin-up y spin-down, respectivamente. Las ocupaciones deben formatearse como:
(array([occ_a_0, ..., occ_a_N]), array([occ_b_0, ..., occ_b_N])) - num_elec_a (int) – El número de electrones spin-up en el sistema.
- num_elec_b (int) – El número de electrones de espín negativo en el sistema.
- rand_seed (Generator |int | None) – Una semilla para controlar la aleatoriedad
Devuelve
Una matriz de cadenas de bits refinada y una matriz de probabilidades actualizada.
Tipo de retorno
Referencias
[1] : J. Robledo-Moreno, et al., Química más allá de las soluciones exactas en un superordenador cuántico,
arXiv:2405.05068 [quant-ph].