Skip to main content
IBM Quantum Platform

Qubit

qiskit_addon_sqd.qubit

Funzioni per la gestione dei campioni quantistici.

solve_qubit

solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)

GitHub

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 bool di valori di bit, in modo che ogni riga rappresenti una singola stringa di bit. Questo insieme di stringhe di bit specifica il sottospazio in cui hamiltonian sarà 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

tupla [*ndarray*, ndarray ]

project_operator_to_subspace

project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)

GitHub

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.

Nota

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.

Nota

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 bool di valori di bit, in modo che ogni riga rappresenti una singola stringa di bit. Questo insieme di stringhe di bit specifica il sottospazio in cui hamiltonian sarà 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)

GitHub

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

ndarray

matrix_elements_from_pauli

matrix_elements_from_pauli(bitstring_matrix, pauli)

GitHub

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].

Nota

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.

Nota

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 bool di 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

tupla [*ndarray*, ndarray, ndarray ]

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.