Skip to main content
IBM Quantum Platform

LinearAmplitudeFunction

class qiskit.circuit.library.LinearAmplitudeFunction(num_state_qubits, slope, offset, domain, image, rescaling_factor=1, breakpoints=None, name='F')

GitHub

Basi: QuantumCircuit

Un circuito che implementa una funzione lineare (piecewise) sulle ampiezze dei qubit.

Una funzione di ampiezza FF di una funzione ff è una mappatura

Fx0=1f^(x)x0+f^(x)x1.F|x\rangle|0\rangle = \sqrt{1 - \hat{f}(x)} |x\rangle|0\rangle + \sqrt{\hat{f}(x)} |x\rangle|1\rangle.

per una funzione f^:{0,...,2n1}[0,1]\hat{f}: \{ 0, ..., 2^n - 1 \} \rightarrow [0, 1], dove x|x\rangle è uno stato di qubit nn.

Questo circuito implementa FF per funzioni lineari piecewise f^\hat{f}. In questo caso, la mappatura FF può essere implementata in modo approssimativo utilizzando un'espansione di Taylor e rotazioni di Pauli-Y controllate linearmente; per maggiori dettagli, si vedano i paragrafi [1, 2]. Questa approssimazione utilizza un rescaling_factor per determinare la precisione dell'espansione di Taylor.

In generale, la funzione di interesse ff è definita a partire da un intervallo [a,b][a,b], da domain a [c,d][c,d], da image, invece che da {1,...,N}\{ 1, ..., N \} a [0,1][0, 1]. Utilizzando una trasformazione affine possiamo riscalare ff a f^\hat{f} :

f^(x)=f(ϕ(x))cdc\hat{f}(x) = \frac{f(\phi(x)) - c}{d - c}

con

ϕ(x)=a+ba2n1x.\phi(x) = a + \frac{b - a}{2^n - 1} x.

Se ff è una funzione lineare continua su mm intervalli [pi1,pi],i{1,...,m}[p_{i-1}, p_i], i \in \{1, ..., m\} con pendenze αi\alpha_i e offset βi\beta_i può essere scritta come

f(x)=i=1m1[pi1,pi](x)(αix+βi)f(x) = \sum_{i=1}^m 1_{[p_{i-1}, p_i]}(x) (\alpha_i x + \beta_i)

dove 1[a,b]1_{[a, b]} è una funzione indicatrice che assume il valore 1 se l'argomento appartiene all'intervallo [a,b][a, b] e 0 in caso contrario. I punti di interruzione pip_i possono essere specificati tramite breakpoints l'argomento.

Riferimenti:

[1] Woerner, S., e Egger, D. J. (2018). Analisi dei rischi quantistici. arXiv:1806.06893

[2] Gacon, J., Zoufal, C., & Woerner, S. (2020). Ottimizzazione basata sulla simulazione potenziata dalla meccanica quantistica. arXiv:2005.10780

Deprecato dalla versione 2.2

La classe qiskit.circuit.library.arithmetic.linear_amplitude_function.LinearAmplitudeFunction è deprecata a partire da Qiskit 2.2. Verrà rimosso in Qiskit 3.0. Utilizzare invece la classe qiskit.circuit.library.LinearAmplitudeFunctionGate.

Parametri

  • num_state_qubits (int) – Il numero di qubit utilizzati per codificare la variabile xx.
  • slope (float |list[float]) – La pendenza della funzione lineare. Può essere un elenco di pendenze se si tratta di una funzione lineare continua.
  • offset (float |list[float]) – L'offset della funzione lineare. Può essere un elenco di offset se si tratta di una funzione lineare continua.
  • domain (tuple[float, float]) – Il dominio della funzione come tupla (xmin,xmax)(x_{\min}, x_{\max}).
  • image (tuple[float, float]) – L'immagine della funzione come tupla (fmin,fmax)(f_{\min}, f_{\max}).
  • rescaling_factor (float) – Il fattore di ridimensionamento per regolare l'accuratezza dell'approssimazione di Taylor.
  • breakpoints (list[float] | None) – I punti di interruzione se la funzione è lineare a tratti. Se Nessuno, la funzione non è omogenea.
  • name (str) – Nome del circuito.

Attributi

name

Tipo: str

Un nome leggibile per il circuito.

Esempio

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit

Metodi

post_processing

post_processing(scaled_value)

GitHub

Mappare il valore della funzione approssimata f^\hat{f} su ff.

Parametri

scaled_value (float) – Un valore della funzione dall'espansione di Taylor di f^(x)\hat{f}(x).

Risultati

Il dominio scaled_value viene mappato di nuovo nel dominio di ff, invertendo prima la trasformazione utilizzata per l'approssimazione di Taylor e poi mappando di nuovo da [0,1][0, 1] al dominio originale.

Tipo di restituzione

mobile

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