Skip to main content
IBM Quantum Platform

HiddenLinearFunction

class qiskit.circuit.library.HiddenLinearFunction(adjacency_matrix)

GitHub

Basen: QuantumCircuit

Schaltung zur Lösung des Problems der verborgenen linearen Funktion.

Das Problem der verborgenen linearen Funktion 2D wird durch eine 2D Adjazenzmatrix A bestimmt, bei der nur die Elemente, die auf einem Gitter die nächsten Nachbarn sind, Einträge ungleich Null haben. Jede Zeile/Spalte entspricht einer binären Variablen xix_i.

Das Problem der verborgenen linearen Funktion lautet wie folgt:

Betrachten Sie die quadratische Form

q(x)=∑i,j=1nxixj (mod 4)q(x) = \sum_{i,j=1}^{n}{x_i x_j} ~(\mathrm{mod}~ 4)

und beschränken q(x)q(x) auf den Nullraum von A. Dies führt zu einer linearen Funktion.

2∑i=1nzixi (mod 4)∀x∈Ker(A)2 \sum_{i=1}^{n}{z_i x_i} ~(\mathrm{mod}~ 4) \forall x \in \mathrm{Ker}(A)

und das Ziel ist die Wiederherstellung dieser linearen Funktion (gleichbedeutend mit einem Vektor [z0,...,zn−1][z_0, ..., z_{n-1}] ). Es kann mehrere Lösungen geben.

In [1] wird gezeigt, dass die vorliegende Schaltung dieses Problem auf einem Quantencomputer mit konstanter Tiefe löst, während eine entsprechende Lösung auf einem klassischen Computer Schaltungen erfordern würde, die logarithmisch mit nn wachsen. Somit ist diese Schaltung ein Beispiel für einen Quantenvorteil bei flachen Schaltungen.

Referenzkreislauf:

Diagramm zur Veranschaulichung der zuvor beschriebenen Schaltung.

Quellenangaben:

[1] S. Bravyi, D. Gosset, R. Koenig, Quantum Advantage with Shallow Circuits, 2017. arXiv:1704.00690

Erstellen Sie einen neuen HLF-Kreislauf.

Veraltet seit Version 2.1

Die Klasse qiskit.circuit.library.hidden_linear_function.HiddenLinearFunction ist ab Qiskit 2.1 veraltet. Sie wird in Qiskit 3.0 entfernt. Verwenden Sie stattdessen qiskit.circuit.library.hidden_linear_function.

Parameter

adjacency_matrix (list | np.ndarray) – eine symmetrische n-mal-n-Liste von 0-1-Listen. n ist die Anzahl der Qubits.

Erhöht

CircuitError – Wenn A nicht symmetrisch ist.


Attribute

name

Typ: str

Ein von Menschen lesbarer Name für den Stromkreis.

Beispiel

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.