PiecewiseChebyshev
class qiskit.circuit.library.PiecewiseChebyshev(f_x, degree=None, breakpoints=None, num_state_qubits=None, name='pw_cheb')
Basen: BlueprintCircuit
Stückweise Tschebyscheff-Annäherung an eine Eingangsfunktion.
Für eine gegebene Funktion und den Grad implementiert diese Klasse eine stückweise polynomiale Tschebyscheff-Approximation auf qubits zu auf den gegebenen Intervallen. Alle Polynome in der Approximation sind vom Grad .
Die Werte der Parameter werden gemäß [1] berechnet; eine genauere Erläuterung des Schaltungsaufbaus und seiner Wirkung auf die Qubits findet sich in [2].
Beispiele:
import numpy as np
from qiskit import QuantumCircuit
from qiskit.circuit.library.arithmetic.piecewise_chebyshev import PiecewiseChebyshev
f_x, degree, breakpoints, num_state_qubits = lambda x: np.arcsin(1 / x), 2, [2, 4], 2
pw_approximation = PiecewiseChebyshev(f_x, degree, breakpoints, num_state_qubits)
pw_approximation._build()
qc = QuantumCircuit(pw_approximation.num_qubits)
qc.h(list(range(num_state_qubits)))
qc.append(pw_approximation.to_instruction(), qc.qubits)
qc.draw(output='mpl')
Quellenangaben:
[1] Haener, T., Roetteler, M., & Svore, K. M. (2018). Optimierung von Quantenschaltungen für arithmetische Operationen. arXiv:1805.12445
[2] Carrera Vazquez, A., Hiptmair, H., & Woerner, S. (2022). Verbesserung des Algorithmus für lineare Quantensysteme durch Richardson-Extrapolation. ACM Transactions on Quantum Computing 3, 1, Artikel 2
Parameter
- f_x (float | Callable[[int], float]) – die zu approximierende Funktion.
f_x = constantKonstanten sollten als angegeben werden. - degree (int | None) – der Grad der Polynome. Der Standardwert ist
1. - breakpoints (list[int] | None) – die Haltepunkte, um die stückweise lineare Funktion zu definieren. Der Standardwert ist das gesamte Intervall.
- num_state_qubits (int | None) – anzahl der Qubits, die den Zustand repräsentieren.
- name (str) – Der Name des Schaltkreisobjekts.
Attribute
breakpoints
Die Haltepunkte für die stückweise Approximation.
Rückgabe
Die Haltepunkte für die stückweise Approximation.
degree
Der Grad der Polynome.
Rückgabe
Der Grad der Polynome.
f_x
Die zu approximierende Funktion.
Rückgabe
Die zu approximierende Funktion.
num_state_qubits
Die Anzahl der Zustandsqubits, die den Zustand repräsentieren.
Rückgabe
Die Anzahl der Zustandsqubits.
polynomials
Die Polynome für die stückweise Approximation.
Rückgabe
Die Polynome für die stückweise Approximation.
Erhöht
TypeError - Wenn die Eingabefunktion nicht das richtige Format hat.
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