QBronze — S16
2026-01-01
\(N\) elemanlı bir listede \(M\) hedef eleman var (\(M \ll N\)). Listeye yalnızca “bu eleman hedef mi?” sorusu sorulabiliyor.
\(N = 1.000.000\), \(M = 1\): - Klasik: ~500.000 sorgu beklenen - Grover: ~785 sorgu (\(\approx \pi/4 \cdot \sqrt{N}\))
Bir vektörün bileşenleri: \([v_1, v_2, \ldots, v_N]\), ortalaması \(\bar{v}\).
Yansıma:
\[ v_i \to 2\bar{v} - v_i \]
Note
Görsel eklenecek: bar grafiği — amplitüdler, ortalama çizgisi, yansıma sonrası büyüyen hedef amplitüdü.
Grover her adımda iki yansıma yapıyor:
İki yansımanın bileşimi = dönme
Note
Görsel eklenecek: iki boyutlu Hilbert uzayında hedef vektör, iki yansıma eksenini ve her iterasyondaki açı artışını gösteren geometrik diyagram.
|0⟩^n → H^⊗n → [Oracle → Diffüzör]^k → Ölçüm → hedef
İki boyutlu alt uzay: \(|w\rangle\) (hedef durumlar), \(|w^\perp\rangle\) (hedef olmayan durumlar)
Başlangıç durumu bu iki yönün kombinasyonu:
\[ |s\rangle = \sin\theta |w\rangle + \cos\theta |w^\perp\rangle, \quad \sin\theta = \sqrt{M/N} \]
Her Grover iterasyonu \(2\theta\) döndürüyor. \(k\) iterasyon sonrası:
\[ \sin\left((2k+1)\theta\right) \approx 1 \text{ için } k \approx \frac{\pi}{4\theta} \approx \frac{\pi}{4}\sqrt{\frac{N}{M}} \]
Note
Görsel eklenecek: iki boyutlu Bloch benzeri görsel — başlangıç açısı, her iterasyon dönme, hedef yönüne yaklaşma.
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram
n = 3 # 8 elemanlı liste (2^3)
target = '101' # hedef eleman
q = QuantumRegister(n)
c = ClassicalRegister(n)
qc = QuantumCircuit(q, c)
# Hazırlık: süperpozisyon
qc.h(q)
# Grover iterasyonu (tek iterasyon, N=8, M=1 için ~π/4*√8≈2.2 → 2 iterasyon)
for _ in range(2):
# Oracle: hedef durumun fazını işaretle
# ... (hedef bağlı MCX yapısı)
# Diffüzör: ortalama etrafında yansıma
qc.h(q)
qc.x(q)
qc.h(q[-1])
qc.mcx(list(q[:-1]), q[-1])
qc.h(q[-1])
qc.x(q)
qc.h(q)
qc.measure(q, c)Dikkat — Karıştırılabilecek Noktalar
İterasyon sayısı önemli — çok fazla bozuyor
\(k_{\text{opt}} \approx \pi\sqrt{N/M}/4\). Fazlası amplitüdü tekrar düşürüyor.
Oracle hedef bilmiyor, sadece tanıyor
Oracle “bu hedef mi?” sorusunu cevaplayabiliyor ama listeyi gezmiyoruz. Bu ayrım önemli.
Kare kök hızlanma eksponansiyel değil
\(O(\sqrt{N})\) ≠ \(O(\log N)\). Grover güçlü ama her problemi üstel hızlandırmıyor.
QBronze hattı tamamlandı.