Grover araçları — Orak, difüzyon ve yineleme iskelesi
Grover araması (ve genel kuantum genlik büyütme ailesi), hedef
durumları eş fazla işaretleyen bir orak ve tüm arama uzayına göre
simetrik bir difüzyon yansıması ile olasılık kütlesini döndürerek
çalışır; klasik gradyan veya beklenen enerji minimizasyonu içermez. Qiskit tarafında
GroverOperator bu iki üniterin bileşimini üretir; yineleme sayısı, başlangıç
dağılımı ve orakta kullanılan çok kontrollü kapıların (
mcx_mode) transpile maliyeti üretimde kritik hale gelir. Tam matematiksel
akış ve geometrik yorum
Grover
araması · Qiskit ile
Kuantum
genlik büyütme · Qiskit sayfalarında kalır; burada kütüphane sözleşmesi, yineleme
denetimi ve yazılım hattı vurgulanır.
Kavram haritası ve sayfa sınırı
Grover tipi arama; orak ile hedefleri −1 fazıyla işaretleyip
difüzyon ile olasılığı hedefe iteratif olarak kaydırır. Bu sayfa
Qiskit’in GroverOperator bileşeninin neyi ürettiğini, hangi argümanların
(başlangıç devresi, sıfıra göre yansıma, çok kontrollü Z açılımı) devre boyutunu ve
hata profilini değiştirdiğini ve yineleme sayısını nasıl yazılım üzerinden
denetlemeniz gerektiğini işler; O(√N) karmaşıklığının ispatı ve geometrik resim
algoritma ders notlarında kalır.
Genlik büyütmenin daha genel formu Kuantum genlik büyütme sayfasında; çözüm sayısını kestirmek Kuantum sayımı ile bağlanır.
Ne vaat edilmez
Her orak için otomatik optimal transpile; derin arama uzaylarında MCX ağaçları hızlı büyür.
Varyasyonel enerji minimizasyonu veya Pauli maliyet toplama; bunlar VQE çerçevesi, QAOA çerçevesi ve Maliyet Hamiltonyenleri başlıklarındadır.
GroverOperator blokları + ölçüm; yineleme ve orak sürümü loglarda birlikte
arşivlenmelidir.
Orak sözleşmesi ve faz işareti
Orak, arama uzayının bir alt kümesinde üniter olarak −1 fazı uygular; pratikte çoğu zaman
çok kontrollü faz kapıları veya yardımcı kübitlere yazılmış bir karar devresi ile
inşa edilir. GroverOperator orak devresini difüzyonla birleştirir; orak
yanlış tanımlandığında (işaretlenmeyen çözüm veya fazı sönük bırakan ek yollar) tüm
yineleme planı anlamsızlaşır.
Boolean ifade tabanlı
PhaseOracle veya el ile çizilmiş
QuantumCircuit aynı sözleşmeye tabidir: çözüm durumlarında üniterin
toplam etkisi −1 olmalıdır; faz farkı ve küresel faz, difüzyon öncesi/sonrası
dengeyi değiştirir.
Yardımcı kübitler
Orak çalışma alanı genişlediğinde yardımcılar temizlenmeli ve derinlik bütçesi raporlanmalıdır; aksi halde aynı yineleme sayısı farklı orak sürümlerinde farklı olasılık eğrileri üretir.
GroverOperator ve yansıma seçenekleri
GroverOperator(oracle, state_preparation=None, zero_reflection=None, ...)
yapı taşı; state_preparation verilmezse difüzyon, üniform süperpozisyonu
varsayan varsayılan sıfır yansımasıyla uyumludur. Özel başlangıç (ör. kısıtı önceden
sağlayan bir devre) kullanıyorsanız, sıfıra göre yansımanın hangi alt uzayda tanımlandığı
ile başlangıcın aynı dilde olması gerekir.
mcx_mode (
noancilla,
v-chain vb.), çok kontrollü X/Z açılımında kullanılan yardımcı ve kapı
sayısını değiştirir; aynı matematiksel orak için farklı modlar farklı
transpile derinliği üretir.
Routing ve Optimization seviyeleri, yüksek fan-in kapıların cihaz grafiğine oturtulmasında doğrudan rol oynar.
reflection_qubits
Alt küme veya düzen seçildiğinde difüzyonun hangi kübitlerde tanımlandığını açıkça belgeleyin; paylaşılan orak kütüphanelerinde sessiz varsayılanlar üretim hatalarının kaynağıdır.
Yineleme: optimal, aşırı ve bilinmeyen M
Tek çözüm ve üniform başlangıç için yineleme sayısı kabaca (π/4)·√(N/M) ölçeğindedir;
tam sayıya yuvarlama ve
aşırı döndürme olasılığı hedeften uzaklaştırır. Küçük
N örneklerinde bir ek yineleme histogramı gözle görülür biçimde
dağıtabilir; bu yüzden yineleme eğrisi
Statevector ile önce taranır, ardından donanım shot’larıyla doğrulanır.
Çözüm sayısı
M bilinmiyorsa sabit bir yineleme seçmek yerine sayım veya deneme
stratejisi gerekir; ilgili anlatım
Kuantum
sayımı · Qiskit sayfasında tutulur.
Yazılım üzerinden denetim
Her deney için
k yineleme, orak devre özeti (kapı sayısı, yardımcı sayısı),
mcx_mode, transpile özeti ve kullanılan Qiskit sürümü birlikte saklanmalıdır.
Ölçüm, simülasyon ve transpile
Geliştirme aşamasında
Statevector.from_instruction ile tam olasılık vektörü; entegrasyon
testlerinde
StatevectorSampler ile shot histogramı hızlı alınır. Donanımda
Sampler ilkeli, derinlik ve okuma hatası nedeniyle ideal eğriden sapar;
yineleme tararken önce simülasyon, sonra kısıtlı shot doğrulaması disiplini önerilir.
Sampler ilkeli ve Okuma hatası sayfaları ölçüm tarafını tamamlar.
Histogram görselleştirme, yineleme ve transpile karşılaştırmalarını raporlamak için uygundur.
Varyasyonel çerçeveyle ayrım
Grover hattında klasik döngü, parametre vektörünü optimize etmek için değil; yineleme sayısını veya orak ailesini seçmek içindir. Pauli gözlemlenebilir toplamları ve ansatz parametreleri Varyasyonel algoritmalar çizgisindedir; burada yalnızca ayırt edici olarak belirtilir ki içerik çakışmasın.
Spektral tahmin ve faz kayıt mekanizması Faz tahmini araçları başlığında işlenir.
Grover kod laboratuvarı
İki kübitlik arama uzayında
|11⟩ çözümünü
cz orak ile işaretleyen minimal örnek: bir
GroverOperator yinelemesi olasılığı zirveye taşır; ikinci yineleme küçük
uzayda aşırı döndürme gösterir. İkinci blok ideal ölçüm histogramı üretir.
GroverOperator + Statevector
from qiskit import QuantumCircuit
from qiskit.circuit.library import GroverOperator
from qiskit.quantum_info import Statevector
n = 2
oracle = QuantumCircuit(n)
oracle.cz(0, 1)
grover_op = GroverOperator(oracle=oracle)
def probs_after_iterations(num_iter: int) -> dict:
qc = QuantumCircuit(n)
qc.h(range(n))
for _ in range(num_iter):
qc = qc.compose(grover_op)
return Statevector.from_instruction(qc).probabilities_dict()
print("k=0:", probs_after_iterations(0))
print("k=1:", probs_after_iterations(1))
print("k=2:", probs_after_iterations(2))
print("ok")
StatevectorSampler (tek yineleme)
from qiskit import QuantumCircuit
from qiskit.circuit.library import GroverOperator
from qiskit.primitives import StatevectorSampler
oracle = QuantumCircuit(2)
oracle.cz(0, 1)
G = GroverOperator(oracle=oracle)
qc = QuantumCircuit(2)
qc.h([0, 1])
qc.compose(G, inplace=True)
qc.measure_all()
job = StatevectorSampler().run([qc], shots=2048)
counts = job.result()[0].data.meas.get_counts()
print(counts)
print("ok")
Özet ve ileri okuma
Grover iskelesi; doğru faz oraklığı,
GroverOperator ile difüzyonun paketlenmesi ve kontrollü yineleme seçimi
etrafında döner. Tam algoritma ve geometri algoritma rehberinde; burada kütüphane
sözleşmesi ve üretim denetimi öne çıkar.
- Grover araması · Qiskit — uçtan uca anlatım.
- Kuantum genlik büyütme · Qiskit.
- QAOA çerçevesi — varyasyonel karşıt örnek.
- IBM Quantum: Qiskit ve platform araçlarına giriş.
- IBM Quantum API: GroverOperator.
GroverOperator argümanlarını ve
mcx_mode’u sabitle; k’yı Statevector ile tara; ölçümü Sampler ile doğrula;
transpile + sürümü logla.