1. Ana sayfa
  2. İçerik planı
  3. Grover araçları · Qiskit
Qiskit · Kuantum algoritma araçları

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.

  • Odak: orak · difüzyon · GroverOperator
  • Ayrım: VQE / QAOA enerji yüzeyi değil
  • Risk: aşırı döndürme ve derin MCX

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.

Mimari özet Uniform (veya özel) başlangıç + tekrarlanan 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

grover_statevector_min.py Python
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")
qiskit GroverOperator · Statevector UTF-8 · LF

StatevectorSampler (tek yineleme)

grover_statevector_sampler_min.py Python
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")
qiskit StatevectorSampler · measure_all UTF-8 · LF

Ö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.

Özet Orak fazını doğrula; 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.