Skip to main content
IBM Quantum Platform

Qubit

qiskit_addon_sqd.qubit

Funktionen zur Behandlung von Quantenproben.

solve_qubit

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

GitHub

Finden Sie die Energien und Eigenzustände eines Hamiltonianers, projiziert in einen Unterraum.

Der Unterraum wird durch eine Sammlung von Berechnungsbasiszuständen definiert, die durch die Bitstrings (Zeilen) in bitstring_matrix spezifiziert werden. Die bitstring_matrix wird in dieser Funktion sortiert und von Duplikaten befreit, da der zugrunde liegende Solver diese Struktur benötigt.

Diese Funktion ruft scipy.sparse.linalg.eigsh für die Diagonalisierung auf.

Parameter

  • bitstring_matrix (ndarray) – Ein 2D Array mit bool Darstellungen von Bitwerten, wobei jede Zeile einen einzelnen Bitstring darstellt. Dieser Satz von Bitstrings gibt den Unterraum an, in den die hamiltonian projiziert und diagonalisiert wird.

  • hamiltonian (SparsePauliOp) – Ein Hamiltonian, der als Pauli-Operator spezifiziert ist.

  • verbose (bool) – Angabe, ob die Stufe des Unterprogramms gedruckt werden soll.

  • **scipy_kwargs -

    Schlüsselwortargumente zur Übergabe an scipy.sparse.linalg.eigsh.

Rückgabe

  • 1D array mit den Eigenwerten
  • 2D array mit den Eigenvektoren. Jede Spalte steht für einen Eigenvektor.

Erhöht

ValueError - Bitstrings (Zeilen) in bitstring_matrix müssen die Länge < 64 haben.

Rückgabetyp

tupel [*ndarray*, ndarray ]

project_operator_to_subspace

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

GitHub

Projizieren Sie einen Pauli-Operator auf einen Hilbert-Unterraum, der durch die Zustände der Berechnungsbasis (Zeilen) in bitstring_matrix definiert ist.

Die spärliche Ausgangsmatrix, A, stellt eine NxN Matrix s.t dar. N ist die Anzahl der Zeilen in bitstring_matrix. Die Zeilen von A stellen die Eingabekonfigurationen dar, und die Spalten stellen die mit der Konfiguration in der entsprechenden Zeile verbundene Komponente dar. Die Nicht-Null-Elemente der Matrix stellen die komplexen Amplituden dar, die mit den verbundenen Komponenten verbunden sind.

Anmerkung

Die Bitstrings in bitstring_matrix müssen eindeutig sein und in aufsteigender Reihenfolge nach ihrer vorzeichenlosen Ganzzahlendarstellung sortiert werden. Andernfalls wird die Projektion falsche Ergebnisse liefern. Diese Funktion prüft nicht explizit auf Eindeutigkeit und Reihenfolge, da dies sehr zeitaufwändig sein kann. Siehe qiskit_addon_sqd.qubit.sort_and_remove_duplicates() für eine einfache Methode, um sicherzustellen, dass Ihre Bitstring-Matrix gut formatiert ist.

Anmerkung

Diese Funktion stützt sich auf jax , um einige Berechnungen effizient durchzuführen. jax konvertiert die Bit-Arrays in int64_t, was bedeutet, dass die Bit-Arrays in bitstring_matrix nicht länger als 63 sein dürfen.

Parameter

  • bitstring_matrix (ndarray) – Ein 2D Array mit bool Darstellungen von Bitwerten, wobei jede Zeile einen einzelnen Bitstring darstellt. Dieser Satz von Bitstrings gibt den Unterraum an, in den die hamiltonian projiziert und diagonalisiert wird.
  • hamiltonian (SparsePauliOp) – Ein Pauli-Operator zur Projektion auf einen Hilbert-Unterraum, definiert durch bitstring_matrix.
  • verbose (bool) – Angabe, ob die Stufe des Unterprogramms gedruckt werden soll.

Rückgabe

A scipy.sparse.coo_matrix der den auf den Unterraum projizierten Operator darstellt. Die Zeilen stellen die Eingabekonfigurationen dar, die Spalten die mit der Konfiguration in der entsprechenden Zeile verbundene Komponente. Die Nicht-Null-Elemente der Matrix stellen die komplexen Amplituden dar, die mit den Paaren verbundener Komponenten verbunden sind.

Erhöht

ValueError - Bitstrings (Zeilen) in bitstring_matrix müssen die Länge < 64 haben.

Rückgabetyp

spmatrix

sort_and_remove_duplicates

sort_and_remove_duplicates(bitstring_matrix)

GitHub

Sortieren einer Bitstring-Matrix und Entfernen doppelter Einträge.

Die niedrigsten Bitstring-Werte werden in den Zeilen mit dem niedrigsten Index platziert.

Parameter

bitstring_matrix (ndarray) – Ein 2D Array mit bool Darstellungen von Bitwerten, wobei jede Zeile einen einzelnen Bitstring darstellt.

Rückgabe

Sortierte Version von bitstring_matrix ohne wiederholte Zeilen.

Rückgabetyp

ndarray

matrix_elements_from_pauli

matrix_elements_from_pauli(bitstring_matrix, pauli)

GitHub

Finden Sie die spärlichen Matrixelemente eines Pauli-Operators in dem durch die Bitstrings definierten Unterraum.

Die durch die Ausgänge definierte dünnbesetzte Matrix, A, stellt eine NxN Matrix s.t dar. N ist die Anzahl der Zeilen in bitstring_matrix. Die Zeilen von A stellen die Eingabekonfigurationen dar, und die Spalten stellen die mit der Konfiguration in der entsprechenden Zeile verbundene Komponente dar. Die Ausgabe-Arrays definieren die dünnbesetzte Matrix A wie folgt:

A[rows[k], cols[k]] = amplutides[k].

Anmerkung

Die Bitstrings in bitstring_matrix müssen eindeutig sein und in aufsteigender Reihenfolge nach ihrer vorzeichenlosen Ganzzahlendarstellung sortiert werden. Andernfalls wird die Projektion falsche Ergebnisse liefern. Diese Funktion prüft nicht explizit auf Eindeutigkeit und Reihenfolge, da dies sehr zeitaufwändig sein kann. Siehe qiskit_addon_sqd.qubit.sort_and_remove_duplicates() für eine einfache Methode, um sicherzustellen, dass Ihre Bitstring-Matrix gut formatiert ist.

Anmerkung

Diese Funktion stützt sich auf jax , um einige Berechnungen effizient durchzuführen. jax konvertiert die Bit-Arrays in int64_t, was bedeutet, dass die Bit-Arrays in bitstring_matrix nicht länger als 63 sein dürfen.

Parameter

  • bitstring_matrix (ndarray) – Ein 2D Array mit bool Darstellungen von Bitwerten, wobei jede Zeile einen einzelnen Bitstring darstellt. Die Bitstrings in der Matrix müssen nach ihren vorzeichenlosen Ganzzahldarstellungen sortiert werden. Andernfalls wird die Projektion falsche Ergebnisse liefern.
  • pauli (Pauli) – Ein Pauli-Operator, für den verbundene Elemente zu finden sind

Rückgabe

  • Die komplexen Amplituden, die den Matrixelementen ungleich Null entsprechen
  • Die Zeilenindizes, die den Matrixelementen ungleich Null entsprechen
  • Die Spaltenindizes der Matrixelemente, die nicht Null sind

Erhöht

ValueError - Bitstrings (Zeilen) in bitstring_matrix müssen die Länge < 64 haben.

Rückgabetyp

tupel [*nDarray*, nDarray, nDarray ]

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.