Algoritma Shor
Anggaran penggunaan: Tiga saat pada pemproses Eagle r3 (NOTA: Ini adalah anggaran sahaja. Masa jalan anda mungkin berbeza.)
Algoritma Shor, yang dibangunkan oleh Peter Shor pada tahun 1994, ialah algoritma kuantum yang revolusioner untuk memfaktorkan integer dalam masa polinomial. Kepentingannya terletak pada keupayaannya memfaktorkan integer besar dengan jauh lebih pantas secara eksponen berbanding mana-mana algoritma klasik yang diketahui, mengancam keselamatan sistem kriptografi yang digunakan secara meluas seperti RSA, yang bergantung pada kesukaran memfaktorkan nombor besar. Dengan menyelesaikan masalah ini secara cekap pada komputer kuantum yang cukup berkuasa, algoritma Shor boleh merevolusikan bidang seperti kriptografi, keselamatan siber, dan matematik pengkomputeran, menegaskan kuasa transformatif pengkomputeran kuantum.
Tutorial ini menumpukan pada demonstrasi algoritma Shor dengan memfaktorkan 15 pada komputer kuantum.
Pertama, kita takrifkan masalah pencarian perintah dan bina Circuit yang berkaitan daripada protokol anggaran fasa kuantum. Seterusnya, kita jalankan Circuit pencarian perintah pada perkakasan sebenar menggunakan Circuit dengan kedalaman terpendek yang boleh kita transpilkan. Bahagian terakhir melengkapkan algoritma Shor dengan menghubungkan masalah pencarian perintah kepada pemfaktoran integer.
Kita akhiri tutorial ini dengan perbincangan mengenai demonstrasi lain algoritma Shor pada perkakasan sebenar, menumpukan pada implementasi generik dan yang disesuaikan untuk memfaktorkan integer tertentu seperti 15 dan 21. Nota: Tutorial ini lebih menumpukan pada implementasi dan demonstrasi Circuit yang berkaitan dengan algoritma Shor. Untuk sumber pendidikan yang lebih mendalam mengenai bahan ini, sila rujuk kursus Asas algoritma kuantum oleh Dr. John Watrous, dan makalah dalam bahagian Rujukan.
Keperluan​
Sebelum memulakan tutorial ini, pastikan anda telah memasang perkara berikut:
- Qiskit SDK v2.0 atau lebih baharu, dengan sokongan visualisasi
- Qiskit Runtime v0.40 atau lebih baharu (
pip install qiskit-ibm-runtime)
Persediaan​
# Added by doQumentation — required packages for this notebook
!pip install -q numpy pandas qiskit qiskit-ibm-runtime
import numpy as np
import pandas as pd
from fractions import Fraction
from math import floor, gcd, log
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.circuit.library import QFT, UnitaryGate
from qiskit.transpiler import CouplingMap, generate_preset_pass_manager
from qiskit.visualization import plot_histogram
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import SamplerV2 as Sampler
Langkah 1: Petakan input klasik kepada masalah kuantum​
Latar belakang​
Algoritma Shor untuk pemfaktoran integer menggunakan masalah pertengahan yang dikenali sebagai masalah pencarian perintah. Dalam bahagian ini, kita tunjukkan cara menyelesaikan masalah pencarian perintah menggunakan anggaran fasa kuantum.
Masalah anggaran fasa​
Dalam masalah anggaran fasa, kita diberi keadaan kuantum bagi Qubit, bersama litar kuantum uniter yang bertindak pada Qubit. Kita dijanjikan bahawa ialah eigenvector bagi matriks uniter yang menggambarkan tindakan Circuit itu, dan matlamat kita ialah mengira atau menganggarkan nilai eigen yang berpadanan dengan . Dengan kata lain, Circuit itu perlu mengeluarkan anggaran kepada nombor yang memenuhi
Matlamat Circuit anggaran fasa ialah menganggarkan dalam bit. Secara matematik, kita ingin mencari supaya , di mana . Imej berikut menunjukkan Circuit kuantum yang menganggarkan dalam bit dengan membuat pengukuran pada Qubit.
Dalam Circuit di atas, Qubit teratas dimulakan dalam keadaan , dan Qubit di bawah dimulakan dalam , yang dijanjikan sebagai eigenvector bagi . Bahan pertama dalam Circuit anggaran fasa ialah operasi uniter terkawalan yang bertanggungjawab melaksanakan phase kickback kepada Qubit kawalan yang sepadan. Uniter terkawalan ini dipangkatkan mengikut kedudukan Qubit kawalan, daripada bit paling tidak signifikan kepada bit paling signifikan. Oleh sebab ialah eigenvector bagi , keadaan Qubit bawah tidak terjejas oleh operasi ini, tetapi maklumat fasa nilai eigen merambat ke Qubit teratas.
Ternyata bahawa selepas operasi phase kickback melalui uniter terkawalan, semua keadaan yang mungkin bagi Qubit teratas adalah ortonormal antara satu sama lain bagi setiap eigenvector