Qubit
qiskit_addon_sqd.qubit
Funzioni per la gestione dei campioni quantistici.
solve_qubit
solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)
Trovare le energie e gli autostati di un'hamiltoniana proiettata in un sottospazio.
Il sottospazio è definito da una collezione di stati base computazionali che sono specificati dalle stringhe di bit (righe) in bitstring_matrix. Il sito bitstring_matrix sarà ordinato e de-duplicato in questa funzione, poiché il solutore sottostante richiede questa struttura.
Questa funzione chiama scipy.sparse.linalg.eigsh per la diagonalizzazione.
Parametri
-
bitstring_matrix (ndarray) – Un array 2D di rappresentazioni
booldi valori di bit, in modo che ogni riga rappresenti una singola stringa di bit. Questo insieme di stringhe di bit specifica il sottospazio in cuihamiltoniansarà proiettato e diagonalizzato. -
hamiltonian (SparsePauliOp) – Un'hamiltoniana specificata come operatore di Pauli.
-
verbose (bool) – Se stampare o meno lo stadio della subroutine.
-
*scipy_kwargs** -
Argomenti delle parole chiave da passare a scipy.sparse.linalg.eigsh.
Risultati
- 1D con gli autovalori
- 2D con gli autovalori. Ogni colonna rappresenta un autovettore.
Aumenti
ValueError - Le bitstringhe (righe) in bitstring_matrix devono avere lunghezza < 64.
Tipo di restituzione
project_operator_to_subspace
project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)
Proiettare un operatore di Pauli su un sottospazio di Hilbert definito dagli stati base computazionali (righe) in bitstring_matrix.
La matrice rada di uscita, A, rappresenta una matrice NxN s.t. N è il numero di righe in bitstring_matrix. Le righe di A rappresentano le configurazioni di ingresso e le colonne rappresentano il componente connesso associato alla configurazione nella riga corrispondente. Gli elementi non nulli della matrice rappresentano le ampiezze complesse associate alle componenti connesse.
Le stringhe di bit in bitstring_matrix devono essere uniche e ordinate in ordine crescente in base alla loro rappresentazione di numeri interi senza segno. In caso contrario, la proiezione restituirà risultati errati. Questa funzione non controlla esplicitamente l'unicità e l'ordine perché ciò può richiedere molto tempo. Vedere qiskit_addon_sqd.qubit.sort_and_remove_duplicates() per un modo semplice di assicurarsi che la matrice di bitstring sia ben formattata.
Questa funzione si basa su jax per eseguire in modo efficiente alcuni calcoli. jax converte le matrici di bit in int64_t, il che significa che le matrici di bit in bitstring_matrix non possono avere lunghezza maggiore di 63.
Parametri
- bitstring_matrix (ndarray) – Un array 2D di rappresentazioni
booldi valori di bit, in modo che ogni riga rappresenti una singola stringa di bit. Questo insieme di stringhe di bit specifica il sottospazio in cuihamiltoniansarà proiettato e diagonalizzato. - hamiltonian (SparsePauliOp) – Un operatore di Pauli da proiettare su un sottospazio di Hilbert definito da
bitstring_matrix. - verbose (bool) – Se stampare o meno lo stadio della subroutine.
Risultati
A scipy.sparse.coo_matrix che rappresenta l'operatore proiettato nel sottospazio. Le righe rappresentano le configurazioni di ingresso e le colonne rappresentano il componente connesso associato alla configurazione nella riga corrispondente. Gli elementi non nulli della matrice rappresentano le ampiezze complesse associate alle coppie di componenti connesse.
Aumenti
ValueError - Le bitstringhe (righe) in bitstring_matrix devono avere lunghezza < 64.
Tipo di restituzione
spmatrix
sort_and_remove_duplicates
sort_and_remove_duplicates(bitstring_matrix)
Ordina una matrice di bitstringhe e rimuove le voci duplicate.
I valori di bitstringa più bassi saranno collocati nelle righe con l'indice più basso.
Parametri
bitstring_matrix (ndarray) – Un array 2D di rappresentazioni bool di valori di bit, in modo che ogni riga rappresenti una singola stringa di bit.
Risultati
Versione ordinata di bitstring_matrix senza righe ripetute.
Tipo di restituzione
matrix_elements_from_pauli
matrix_elements_from_pauli(bitstring_matrix, pauli)
Trovare gli elementi della matrice rada di un operatore di Pauli nel sottospazio definito dalle stringhe di bit.
La matrice rada, A, definita dalle uscite, rappresenta una matrice NxN s.t. N è il numero di righe in bitstring_matrix. Le righe di A rappresentano le configurazioni di ingresso e le colonne rappresentano il componente connesso associato alla configurazione nella riga corrispondente. Le matrici di uscita definiscono la matrice rada, A, come segue:
A[rows[k], cols[k]] = amplutides[k].
Le stringhe di bit in bitstring_matrix devono essere uniche e ordinate in ordine crescente in base alla loro rappresentazione di numeri interi senza segno. In caso contrario, la proiezione restituirà risultati errati. Questa funzione non controlla esplicitamente l'unicità e l'ordine perché ciò può richiedere molto tempo. Vedere qiskit_addon_sqd.qubit.sort_and_remove_duplicates() per un modo semplice di assicurarsi che la matrice di bitstring sia ben formattata.
Questa funzione si basa su jax per eseguire in modo efficiente alcuni calcoli. jax converte le matrici di bit in int64_t, il che significa che le matrici di bit in bitstring_matrix non possono avere lunghezza maggiore di 63.
Parametri
- bitstring_matrix (ndarray) – Un array 2D di rappresentazioni
booldi valori di bit, in modo che ogni riga rappresenti una singola stringa di bit. Le stringhe di bit nella matrice devono essere ordinate in base alle loro rappresentazioni di numeri interi senza segno. In caso contrario, la proiezione restituirà risultati errati. - pauli (Pauli) – Un operatore di Pauli per il quale trovare elementi connessi
Risultati
- Le ampiezze complesse corrispondenti agli elementi non nulli della matrice
- Gli indici di riga corrispondenti agli elementi non nulli della matrice
- Gli indici delle colonne corrispondenti agli elementi non nulli della matrice
Aumenti
ValueError - Le bitstringhe (righe) in bitstring_matrix devono avere lunghezza < 64.
Tipo di restituzione