Qubit
qiskit_addon_sqd.qubit
Fonctions de traitement des échantillons quantiques.
solve_qubit
solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)
Trouver les énergies et les états propres d'un hamiltonien projeté dans un sous-espace.
Le sous-espace est défini par une collection d'états de base de calcul qui sont spécifiés par les chaînes de bits (lignes) sur le site bitstring_matrix. Le site bitstring_matrix sera trié et dédoublé dans cette fonction, car le solveur sous-jacent a besoin de cette structure.
Cette fonction appelle scipy.sparse.linalg.eigsh pour la diagonalisation.
Paramètres
-
bitstring_matrix (ndarray) – Un tableau 2D de représentations
boolde valeurs binaires, de sorte que chaque ligne représente une chaîne de bits unique. Cet ensemble de chaînes de bits spécifie le sous-espace dans lequel le sitehamiltoniansera projeté et diagonalisé. -
hamiltonian (SparsePauliOp) – Un hamiltonien spécifié comme un opérateur de Pauli.
-
verbose (bool) – Indique s'il faut imprimer l'étape de la sous-routine.
-
**scipy_kwargs -
Arguments du mot-clé à transmettre à scipy.sparse.linalg.eigsh.
Retours
- 1D avec les valeurs propres
- 2D avec les vecteurs propres. Chaque colonne représente un vecteur propre.
Augmentations
ValueError - Les chaînes de bits (lignes) dans bitstring_matrix doivent avoir une longueur < 64.
Type de retour
project_operator_to_subspace
project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)
Projeter un opérateur de Pauli sur un sous-espace de Hilbert défini par les états (lignes) de la base de calcul dans bitstring_matrix.
La matrice éparse de sortie, A, représente une matrice NxN s.t. N est le nombre de lignes dans bitstring_matrix. Les lignes du site A représentent les configurations d'entrée, et les colonnes représentent le composant connecté associé à la configuration de la ligne correspondante. Les éléments non nuls de la matrice représentent les amplitudes complexes associées aux composantes connectées.
Les chaînes de bits contenues dans le site bitstring_matrix doivent être uniques et triées par ordre croissant en fonction de leur représentation en nombres entiers non signés. Dans le cas contraire, la projection renverra des résultats erronés. Cette fonction ne vérifie pas explicitement l'unicité et l'ordre, car cela peut prendre beaucoup de temps. Voir qiskit_addon_sqd.qubit.sort_and_remove_duplicates() pour un moyen simple de s'assurer que votre matrice de chaînes de bits est bien formatée.
Cette fonction s'appuie sur jax pour effectuer efficacement certains calculs. jax convertit les tableaux de bits en int64_t, ce qui signifie que les tableaux de bits dans bitstring_matrix ne peuvent pas avoir une longueur supérieure à 63.
Paramètres
- bitstring_matrix (ndarray) – Un tableau 2D de représentations
boolde valeurs binaires, de sorte que chaque ligne représente une chaîne de bits unique. Cet ensemble de chaînes de bits spécifie le sous-espace dans lequel le sitehamiltoniansera projeté et diagonalisé. - hamiltonian (SparsePauliOp) – Un opérateur de Pauli à projeter sur un sous-espace de Hilbert défini par
bitstring_matrix. - verbose (bool) – Indique s'il faut imprimer l'étape de la sous-routine.
Retours
A scipy.sparse.coo_matrix représentant l'opérateur projeté dans le sous-espace. Les lignes représentent les configurations d'entrée et les colonnes représentent le composant connecté associé à la configuration de la ligne correspondante. Les éléments non nuls de la matrice représentent les amplitudes complexes associées aux paires de composantes connectées.
Augmentations
ValueError - Les chaînes de bits (lignes) dans bitstring_matrix doivent avoir une longueur < 64.
Type de retour
spmatrix
sort_and_remove_duplicates
sort_and_remove_duplicates(bitstring_matrix)
Trier une matrice de bitstring et supprimer les entrées en double.
Les valeurs les plus faibles de la chaîne de bits seront placées dans les lignes les moins bien indexées.
Paramètres
bitstring_matrix (ndarray) – Un tableau 2D de représentations bool de valeurs binaires, de sorte que chaque ligne représente une chaîne de bits unique.
Retours
Version triée de bitstring_matrix sans rangées répétées.
Type de retour
matrix_elements_from_pauli
matrix_elements_from_pauli(bitstring_matrix, pauli)
Trouver les éléments épars de la matrice d'un opérateur de Pauli dans le sous-espace défini par les chaînes de bits.
La matrice éparse, A, définie par les sorties représente une matrice NxN s.t. N est le nombre de lignes dans bitstring_matrix. Les lignes du site A représentent les configurations d'entrée, et les colonnes représentent le composant connecté associé à la configuration de la ligne correspondante. Les tableaux de sortie définissent la matrice éparse, A, comme suit :
A[rows[k], cols[k]] = amplutides[k].
Les chaînes de bits contenues dans le site bitstring_matrix doivent être uniques et triées par ordre croissant en fonction de leur représentation en nombres entiers non signés. Dans le cas contraire, la projection renverra des résultats erronés. Cette fonction ne vérifie pas explicitement l'unicité et l'ordre, car cela peut prendre beaucoup de temps. Voir qiskit_addon_sqd.qubit.sort_and_remove_duplicates() pour un moyen simple de s'assurer que votre matrice de chaînes de bits est bien formatée.
Cette fonction s'appuie sur jax pour effectuer efficacement certains calculs. jax convertit les tableaux de bits en int64_t, ce qui signifie que les tableaux de bits dans bitstring_matrix ne peuvent pas avoir une longueur supérieure à 63.
Paramètres
- bitstring_matrix (ndarray) – Un tableau 2D de représentations
boolde valeurs binaires, de sorte que chaque ligne représente une chaîne de bits unique. Les chaînes de bits de la matrice doivent être triées en fonction de leur représentation en nombres entiers non signés. Dans le cas contraire, la projection renverra des résultats erronés. - pauli (Pauli) – Un opérateur de Pauli pour lequel il faut trouver des éléments connectés
Retours
- Les amplitudes complexes correspondant aux éléments non nuls de la matrice
- Les indices de ligne correspondant aux éléments non nuls de la matrice
- Les indices de colonne correspondant aux éléments non nuls de la matrice
Augmentations
ValueError - Les chaînes de bits (lignes) dans bitstring_matrix doivent avoir une longueur < 64.
Type de retour