QFT
class qiskit.circuit.library.QFT(num_qubits=None, approximation_degree=0, do_swaps=True, inverse=False, insert_barriers=False, name=None)
Basi: BlueprintCircuit
Circuito della trasformata di Fourier quantistica.
La trasformata quantistica di Fourier (QFT) su qubit è l'operazione
Il circuito che implementa questa trasformazione può essere realizzato utilizzando porte Hadamard su ogni qubit, una serie di porte controlled-U1 (o Z, a seconda della fase) e uno strato di porte Swap. In linea di principio, lo strato di porte Swap può essere abbandonato se la QFT compare alla fine del circuito, poiché in tal caso il riordino può essere effettuato in modo classico. Possono essere disattivati utilizzando l'attributo do_swaps .
Per 4 qubit, il circuito che implementa questa trasformazione è:

La QFT inversa può essere ottenuta chiamando il metodo inverse su questa classe. Il relativo schema circuitale è:

Un metodo per ridurre la profondità del circuito consiste nell'implementare la QFT ignorando approssimativamente le rotazioni a fase controllata quando l'angolo è inferiore a una soglia. Questo aspetto è discusso in modo più dettagliato in https://arxiv.org/abs/quant-ph/9601018 o https://arxiv.org/abs/quant-ph/0403071.
In questo caso, questo può essere regolato utilizzando l'attributo approximation_degree : gli angoli di rotazione più piccoli di approximation_degree vengono eliminati dalla QFT. Per esempio, una QFT su 5 qubit con grado di approssimazione 2 dà come risultato (in questo esempio le barriere vengono abbandonate):

La classe qiskit.circuit.library.basis_change.qft.QFT è deprecata a partire da Qiskit 2.1. Verrà rimosso in Qiskit 3.0. ('Usare invece qiskit.circuit.library.QFTGate o qiskit.synthesis.qft.synth_qft_full per accedere a tutti gli argomenti precedenti.',)
Parametri
- num_qubits (int | None) – Il numero di qubit su cui agisce la QFT.
- approximation_degree (int) – Il grado di approssimazione (0 per nessuna approssimazione).
- do_swaps (bool) – Se includere o meno gli swap finali nella QFT.
- inverse (bool) – Se Vero, viene costruita la trasformata di Fourier inversa.
- insert_barriers (bool) – Se Vero, le barriere vengono inserite come miglioramento della visualizzazione.
- name (str) – Il nome del circuito.
Attributi
approximation_degree
Il grado di approssimazione della QFT.
Risultati
Il grado di approssimazione attualmente impostato.
do_swaps
Se gli scambi finali della QFT sono applicati o meno.
Risultati
Vero, se gli scambi finali sono stati applicati, Falso in caso contrario.
insert_barriers
Se le barriere sono inserite per una migliore visualizzazione o meno.
Risultati
Vero, se le barriere sono inserite, Falso se non lo sono.
num_qubits
Il numero di qubit nel circuito QFT.
Risultati
Il numero di qubit nel circuito.
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_circuitMetodi
inverse
inverse(annotated=False)
Invertire questo circuito.
Parametri
annotated (bool) – indica se il gate inverso può essere implementato come gate annotato. Il valore di questo argomento viene ignorato poiché l'inverso di una QFT è una IQFT che è solo un'altra istanza di QFT.
Risultati
Il circuito invertito.
Tipo di restituzione