Algoritma kuantum: Estimasi fase
Kento Ueda (15 May 2024)
Notebook ini membahas konsep dasar dan implementasi Quantum Fourier Transformation (QFT) dan Quantum Phase Estimation (QPE).
Unduh pdf dari kuliah aslinya. Perlu diperhatikan bahwa beberapa potongan kode mungkin sudah tidak berlaku karena ini adalah gambar statis.
Perkiraan waktu QPU untuk menjalankan eksperimen ini adalah 7 detik.
1. Pendahuluanβ
Quantum Fourier Transformation (QFT)
Quantum Fourier Transformation adalah padanan kuantum dari transformasi Fourier diskrit klasik. Ini adalah transformasi linear yang diterapkan pada keadaan kuantum, memetakan basis komputasional ke representasi basis Fourier-nya. QFT memainkan peran kunci dalam banyak algoritma kuantum, menawarkan metode efisien untuk mengekstrak informasi periodisitas dari keadaan kuantum. QFT dapat diimplementasikan dengan operasi menggunakan gate kuantum seperti Hadamard gate dan Control-Phase gate untuk qubit, memungkinkan percepatan eksponensial dibandingkan transformasi Fourier klasik.
- Aplikasi: Ini adalah bagian fundamental dalam algoritma kuantum seperti algoritma Shor untuk memfaktorkan bilangan bulat besar dan logaritma diskrit.
Quantum Phase Estimation (QPE)
Quantum Phase Estimation adalah algoritma kuantum yang digunakan untuk mengestimasi fase yang terkait dengan eigenvector dari operator uniter. Algoritma ini memberikan jembatan antara sifat matematis abstrak dari keadaan kuantum dan aplikasi komputasionalnya.
- Aplikasi: Algoritma ini dapat menyelesaikan masalah seperti menemukan nilai eigen dari matriks uniter dan mensimulasikan sistem kuantum.
Bersama-sama, QFT dan QPE membentuk tulang punggung dari banyak algoritma kuantum yang memecahkan masalah yang tidak mungkin diselesaikan oleh komputer klasik. Di akhir notebook ini, kamu akan mendapatkan pemahaman tentang bagaimana teknik-teknik ini diimplementasikan.
2. Dasar-dasar Quantum Fourier Transformation (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
Dari analogi dengan transformasi Fourier diskrit, QFT bekerja pada keadaan kuantum untuk qubit dan memetakannya ke keadaan kuantum .
di mana .
Atau representasi matriks unitari:
2.1. Intuisi β
Quantum Fourier transform (QFT) melakukan transformasi antara dua basis: basis komputasional (Z) dan basis Fourier. Tapi apa arti basis Fourier dalam konteks ini? Kamu mungkin ingat bahwa transformasi Fourier dari fungsi menggambarkan konvolusi ke fungsi sinusoidal dengan frekuensi . Secara sederhana: transformasi Fourier adalah fungsi yang menggambarkan seberapa banyak dari setiap frekuensi yang kita perlukan untuk membangun fungsi dari fungsi sinus (atau kosinus). Untuk lebih memahami apa yang dimaksud QFT dalam konteks ini, perhatikan gambar bertahap di bawah yang menunjukkan angka yang dikodekan dalam biner menggunakan empat qubit:
Dalam basis komputasional, kita menyimpan angka dalam biner menggunakan keadaan dan .
Perhatikan frekuensi perubahan qubit yang berbeda; qubit paling kiri berubah setiap kenaikan angka, qubit berikutnya setiap 2 kenaikan, yang ketiga setiap 4 kenaikan, dan seterusnya.
Jika kita menerapkan quantum Fourier transform pada keadaan-keadaan ini, kita memetakan
(Kita sering menandai keadaan dalam basis Fourier menggunakan tilde (~)).
Dalam basis Fourier, kita menyimpan angka menggunakan rotasi yang berbeda di sekitar sumbu Z:
IFRAME
Angka yang ingin kita simpan menentukan sudut rotasi setiap qubit di sekitar sumbu Z. Dalam keadaan , semua qubit berada dalam keadaan . Seperti yang terlihat pada contoh di atas, untuk mengkodekan keadaan pada 4 qubit, kita memutar qubit paling kiri sebesar putaran penuh ( radian). Qubit berikutnya diputar dua kali lipat ( radian, atau putaran penuh), sudut ini kemudian digandakan untuk qubit berikutnya, dan seterusnya.
Sekali lagi, perhatikan frekuensi perubahan setiap qubit. Qubit paling kiri (qubit 0) dalam kasus ini memiliki frekuensi terendah, dan yang paling kanan memiliki frekuensi tertinggi.
2.2 Contoh: QFT 1-qubitβ
Mari kita pertimbangkan kasus .
Matriks unitari dapat ditulis: