Algoritmi quantistici: Stima della fase
Kento Ueda (15 maggio 2024)
Questo notebook fornisce i concetti fondamentali e l'implementazione della Trasformata di Fourier Quantistica (QFT) e della Stima della Fase Quantistica (QPE).
Scarica il pdf della lezione originale. Nota che alcuni frammenti di codice potrebbero risultare deprecati poiché si tratta di immagini statiche.
Il tempo QPU approssimativo per eseguire questo esperimento è di 7 secondi.
1. Introduzione
Trasformata di Fourier Quantistica (QFT)
La Trasformata di Fourier Quantistica è l'equivalente quantistico della trasformata di Fourier discreta classica. È una trasformazione lineare applicata agli stati quantistici, che mappa le basi computazionali nelle loro rappresentazioni nella base di Fourier. La QFT svolge un ruolo chiave in molti algoritmi quantistici, offrendo un metodo efficiente per estrarre informazioni di periodicità dagli stati quantistici. La QFT può essere implementata con operazioni tramite gate quantistici come i gate di Hadamard e i gate di fase controllata per qubit, consentendo un'accelerazione esponenziale rispetto alla trasformata di Fourier classica.
- Applicazioni: È una componente fondamentale in algoritmi quantistici come l'algoritmo di Shor per la fattorizzazione di interi grandi e il logaritmo discreto.
Stima della Fase Quantistica (QPE)
La Stima della Fase Quantistica è un algoritmo quantistico utilizzato per stimare la fase associata a un autovettore di un operatore unitario. Questo algoritmo fornisce un ponte tra le proprietà matematiche astratte degli stati quantistici e le loro applicazioni computazionali.
- Applicazioni: Può risolvere problemi come il calcolo degli autovalori di matrici unitarie e la simulazione di sistemi quantistici.
Insieme, QFT e QPE costituiscono la spina dorsale essenziale di molti algoritmi quantistici che risolvono problemi impossibili per i computer classici. Al termine di questo notebook, avrai acquisito una comprensione di come queste tecniche vengono implementate.
2. Basi della Trasformata di Fourier Quantistica (QFT)
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram, plot_bloch_multivector
from qiskit.quantum_info import Statevector
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import Sampler
from numpy import pi
Per analogia con la trasformata di Fourier discreta, la QFT agisce su uno stato quantistico per qubit e lo mappa nello stato quantistico .
dove .
Oppure nella rappresentazione matriciale unitaria:
2.1. Intuizione
La trasformata di Fourier quantistica (QFT) opera una trasformazione tra due basi: la base computazionale (Z) e la base di Fourier. Ma cosa significa la base di Fourier in questo contesto? Probabilmente ricordi che la trasformata di Fourier di una funzione descrive la convoluzione di su una funzione sinusoidale con frequenza . In termini semplici: la trasformata di Fourier è una funzione che descrive quanta parte di ciascuna frequenza sarebbe necessaria per costruire una funzione a partire da funzioni seno (o coseno). Per avere un'idea più chiara di cosa significhi la QFT in questo contesto, considera le immagini in sequenza qui sotto, che mostrano un numero codificato in binario usando quattro qubit:
Nella base computazionale, i numeri vengono memorizzati in binario usando gli stati e .
Nota la frequenza con cui i diversi qubit cambiano: il qubit più a sinistra si capovolge a ogni incremento del numero, il successivo ogni 2 incrementi, il terzo ogni 4 incrementi, e così via.
Se applichiamo una trasformata di Fourier quantistica a questi stati, otteniamo la mappa:
(Spesso denotiamo gli stati nella base di Fourier con la tilde (~)).
Nella base di Fourier, i numeri vengono memorizzati utilizzando diverse rotazioni attorno all'asse Z:
Il numero che vogliamo memorizzare determina l'angolo di rotazione di ciascun qubit attorno all'asse Z. Nello stato , tutti i qubit sono nello stato . Come mostrato nell'esempio precedente, per codificare lo stato su 4 qubit, abbiamo ruotato il qubit più a sinistra di giri completi ( radianti). Il qubit successivo viene ruotato del doppio ( radianti, ovvero giri completi), questo angolo viene poi raddoppiato per il qubit successivo, e così via.
Ancora una volta, nota la frequenza con cui cambia ciascun qubit. Il qubit più a sinistra (qubit 0) in questo caso ha la frequenza più bassa, e quello più a destra la più alta.
2.2 Esempio: QFT a 1 qubit
Consideriamo il caso .
La matrice unitaria può essere scritta come: