Skip to main content
IBM Quantum Platform

PiecewiseChebyshev

class qiskit.circuit.library.PiecewiseChebyshev(f_x, degree=None, breakpoints=None, num_state_qubits=None, name='pw_cheb')

GitHub

Basen: BlueprintCircuit

Stückweise Tschebyscheff-Annäherung an eine Eingangsfunktion.

Für eine gegebene Funktion f(x)f(x) und den Grad dd implementiert diese Klasse eine stückweise polynomiale Tschebyscheff-Approximation auf nn qubits zu f(x)f(x) auf den gegebenen Intervallen. Alle Polynome in der Approximation sind vom Grad dd.

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')
Schaltplan, der durch den vorherigen Code ausgegeben wurde.

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 ∣x⟩|x\rangle 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
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.