1. Ana sayfa
  2. Algoritmalar
  3. Grover ve arama
  4. Kuantum sayımı · Qiskit
Grover ve arama · Qiskit

Kuantum sayımı — kaç hedef var?

Kuantum sayımı (Quantum Counting), bir oracle’ın işaretlediği hedeflerin sayısını (M) tahmin etmek için Grover operatörünü bir “faz kaynağı” olarak kullanır. Böylece Grover’ın kaç iterasyon yapması gerektiği sorusu, kör tahminden ölçülebilir bir faz problemine dönüşür.

  • Hibrit: Grover + QPE
  • İlişki: sin²(θ/2)=M/N
  • Ölçek: O(√N) tipik
  • Örnek: N=4 · precision=3

Kuantum Sayımı Nedir? (derinlemesine analiz)

Kuantum sayımı (Quantum Counting), sıralanmamış bir arama uzayında oracle’ın işaretlediği çözümlerin toplam kaç adet olduğunu (M) tahmin etmeye yarar. Grover araması “bulma” işini yapar; fakat optimum tur sayısı doğrudan hedef sayısına bağlıdır — çok kullanılan kural k ≈ (π/4)·√(N/M) içindeki M bilinmiyorsa “kaç iterasyon?” sorusu kör kalır: az tur hedef genliğini yeterince büyütmez; çok tur ise iki boyutlu Grover döndürmesinde tepeyi geçip genliği yeniden düşürür ve başarı şansını düşürür (Grover sayfalarındaki over-cooking uyarısıyla aynı geometri).

Soyutta Grover operatörünün “iyi / kötü” alt uzayındaki döndürme açısı θ, hedef oranıyla bağlanır; standart kurulumda sin²(θ/2) = M/N yazılır — bu yüzden M’yi bilmek, doğru θ’yı ve dolayısıyla güvenli iterasyon payını bilmektir. Kuantum sayımı, G üzerinde faz tahmini (aşağıdaki mimaride QPE) yaparak bu açıyı dolaylı ölçer; klasik tarafta M ≈ N·sin²(θ/2) ile sayım geri çözülür. Böylece Grover’ı çalıştırmadan önce tur sayısını veriye dayalı seçebilirsiniz.

Okuma ipucu sin²(θ/2) = M/N geometrisi ve QPE yerleşimi Mimari: Grover + QPE bölümünde; kontrollü kuvvetler ve IQFT akışı Adım adım işleyişte; somut devre/kod ise sonraki başlıklarda — burada yalnızca “neden sayım?” ve iterasyon cebirinin kökü sabitlenir.

Bir cümlede öz Kuantum sayımı, Grover’ın döndürme parametresini (θ) ölçerek dolaylı biçimde M’yi çıkarır; böylece k seçimi tahminden çıkar.

Neden Bu Algoritmaya Ihtiyaç Duyarız?

Klasik olarak “kaç tane kırmızı top var?” gibi bir sayım sorusunda, yapısal bir indeks veya sıralama ipucu yoksa listenin büyük kısmını tek tek kontrol etmek kaçınılmazdır — doğası gereği doğrusal süre (O(N)) düşünülür.

Kuantum sayımı aynı soyut soruyu farklı okur: Grover operatörü G tekrarlandığında ürettiği faz bilgisini bir kaynak gibi kullanıp, faz tahminiyle döndürme açısından hedef sayısına (M) geri dönersiniz. Böylece önce “kaç hedef var?” sorusunu yanıtlayıp, sonra Grover aramasında tur sayısını veriye dayalı seçmek mümkün olur. Tipik olarak oracle çağrısı karmaşıklığı yaklaşık O(√N) mertebesinde düşünülür; hassasiyet register’ı ve devre derinliği ek katmanları Mimari: Grover + QPE ve kod bölümünde somutlaşır — burada yalnızca klasik sayımın doğrusallığı ile kuantum tarafın ölçeğini yan yana koyuyoruz.

Sınır taşı Üst başlıkta M, θ ve iterasyon cebiri zaten kuruldu; bu bölüm aynı denklemleri yeniden yazmaz. Odak: neden sayım adımı Grover hattına bağlanır ve maliyet resmi nasıl okunur.

  • Grover için doğru durma noktası

    İş akışı açısından: önce M (dolayısıyla θ) tahmini, sonra k ≈ (π/4)·√(N/M) ölçeğinde tur seçimi — M yoksa bu kural körleşir (sin²(θ/2)=M/N ile tutarlı). Kuantum sayımı, bu zinciri veriye bağlar; fazla/az iterasyon riskinin geometrisi bir önceki bölümde özetlenmiştir.

  • Sorgu dili ve pratik duvarlar

    Karşılaştırma “oracle sorgusu” üzerinden okunmalıdır: klasik tam sayım her öğeyi en az bir kez sorgulamayı gerektirirken, kuantum sayımı G üzerinden fazı örnekleyerek aynı kara kutu testine dayalı sayım bilgisini çıkarmaya çalışır. O(√N) tipik ölçektir; gerçek projede oracle derinliği, gürültü ve klasik ön/son işlem maliyeti üst üste biner — bunlar kod analizi ve devre doğrulama notlarında ele alınır.

Mimari Yapı: Grover ve QPE Hibriti

Ana fikir şudur: Grover operatörü G, “iyi” ve “kötü” çözümlerin çizdiği iki boyutlu alt uzayda (geniş Hilbert uzayının içinde) durumu sabit açılı bir döndürme gibi etkiler. Bu döndürmenin açısı θ, işaretlenmiş çözüm sayısı M ile birlikte değişir; merkezi bağlantı sin 2 ( θ / 2 ) = M / N \sin^2(\theta/2)=M/N olarak yazılır. Faz tahmini (QPE) ise bu θ’yı doğrudan gözlemleyip klasik tarafta sayılabilir bir ikilik kesre çevirmenin standart aracıdır.

Soyutta G’nin bu iki boyutlu yüzeydeki özdeğerleri e±iθ biçimindedir (işaretli ve işaretsiz bileşenlere bağlı iki özvektör çifti). Başlangıçta arama register’ı tipik olarak eşit süperpozisyon |s⟩ ile hazırlandığından, tek ölçümde “iyi” bir tabana düşme olasılığı Born kuralıyla M/N mertebesindedir — işte bu pay, aynı düzlemdeki döndürme açısıyla sin²(θ/2) olarak paketlenir. Eşdeğer yazım sin(θ/2) = √(M/N); böylece M büyüdükçe θ büyür ve optimum Grover tur sayısı (π/(4θ) mertebesi, önceki bölümlerdeki √(N/M) ile uyumlu) kısalır.

QPE tarafında mesele şudur: üniter G’nin özdeğer fazını, yani θ/(2π) oranını (bir tam turda kaç “devir payı” olduğunu), t hassasiyet kübitiyle yaklaşık olarak ikilik kesir olarak okumak. Kontrollü güçler G2j faz farklarını precision register’a işler; ters QFT bu fazları bit dizisine çözer — böylece önce θ, sonra M ≈ N·sin²(θ/2) klasik geri hesaptan çıkarılır. Devre sırası ve kübit sayıları bir sonraki başlıkta adım adım dosyalanır.

Kısa köprü Buradaki cebir “neden çalışır?” iskeletidir; kontrol telgrafı ve IQFT düzeni Adım adım işleyiş bölümünde; sayısal örnek kod ve devre şemasında köprülenir.

QPE’nin rolü QPE, seçilen özvektör üzerinde üniterin özdeğer fazını (e2πiφ yazımında φ ≈ θ/(2π)) tahmin eder. Burada üniter doğrudan G olduğu için ölçülen ikilik kesir, Grover döndürmesinin parametresini taşır; geri kalan iş tamamen klasik: θM eşlemesi sin²(θ/2)=M/N ile.

Adım Adım İşleyiş

Yukarıdaki mimari bölüm θ, özdeğer ve QPE ilişkisini verdi; burada yalnızca akış sırası — her adım bir öncekinden fazla cebir taşımayı hedeflemez.

  1. Hassasiyet register’ı (precision qubits) faz tahmini için ayrılır. Her ek kübit, okunacak faz kesrinde bir ikilik basamak daha anlamına gelir; dolayısıyla θ (ve dolaylı M) tahminindeki tipik hata ölçeği iyileşir — kalıp standard QPE ile aynıdır.

  2. Arama register’ı tipik olarak Hadamard katmanıyla eşit süperpozisyona alınır (N = 2n durumluk uzay). Böylece Grover operatörü G, mimaride tarif edilen iki boyutlu döndürmenin kaynağı olarak devreye girer.

  3. Kontrollü Grover adımları: precision hattındaki indeks j için G2j — kontrol aktifken G’yi 2j kez ardışık uygulama (klasik QPE şeması). G’nin iyi/kötü alt uzayındaki özdeğer fazları e±iθ olduğundan, bu bloklar faz geri tepmesiyle precision kübitlerine gerekli faz farklarını yazar; tahmin edilen kesir θ/(2π)’nin ikilik açılımına karşı gelir. θM köprüsü yukarıda sabitlendi; burada tekrar yazılmaz.

  4. Ters QFT (IQFT) precision register’daki Fourier kalıbını hesaplama tabanına çevirir; böylece faz bilgisi klasik olarak okunabilir bir ikilik bit desenine düşer; ölçüm bu deseni örnekler (simülatörde genelde en olası uç, donanımda gürültü payıyla).

  5. Ölçülen bit deseninden kesik faz tahminiyle θ geri çözülür; ardından M ≈ N·sin²(θ/2) uygulanır. Tam sayı M pratikte yuvarlanır; kesir uzunluğu sınırlı olduğundan uç durumlarda küçük sapma doğal — daha fazla precision kübiti (adım 1) bu olasılığı düşürür.

Qiskit Kod Örneği

Aşağıdaki örnek, Grover operatörünü kontrollü kuvvetlerle uygular ve precision register’da IQFT ile fazı okur. Bu sayfa eğitim amaçlı “iskelet” gösterir; gerçek sayımda oracle’ın işaretlediği hedef sayısı ve Grover operatörünün tanımı daha dikkatli tasarlanır.

quantum_counting_qiskit.py Python
import numpy as np
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.circuit.library import GroverOperator, QFT


def quantum_counting_circuit(oracle: QuantumCircuit, precision: int):
    n_search = oracle.num_qubits
    qc = QuantumCircuit(precision + n_search, precision)

    # 1) Hazırlık: precision + arama register'larını süperpozisyona al
    qc.h(range(precision + n_search))

    # 2) Kontrollü Grover operatörleri: G^(2^j)
    grover_op = GroverOperator(oracle)
    for j in range(precision):
        controlled_grover = grover_op.power(2**j).control()
        qc.append(controlled_grover, [j] + list(range(precision, precision + n_search)))

    # 3) Ters QFT (IQFT): faz → ikili sayı
    qc.append(QFT(precision).inverse(), range(precision))

    # 4) Ölçüm: precision register
    qc.measure(range(precision), range(precision))
    return qc


# Örnek: 2 kübitlik uzay (N=4) — eğitim amaçlı küçük oracle
oracle = QuantumCircuit(2)
oracle.cz(0, 1)  # Basit işaretleme örneği

precision = 3
qc = quantum_counting_circuit(oracle, precision)

simulator = AerSimulator()
counts = simulator.run(qc, shots=1024).result().get_counts()
print(f\"Ölçülen Faz Değerleri: {counts}\")
qiskit AerSimulator · shots=1024 · precision=3 UTF-8 · LF

Aynı Devre (İki Temsil)

Yukarıdaki editörde CZ oracle’lu 2-kübit arama alanı, precision = 3 ve GroverOperator ile kurulan qc için Qiskit metin çizimi solda; sağda aynı özet şema yer alır. c_Q**k kutuları kontrollü Grover üslerini; IQFT fazı ikili sayıya çevirir.

terminal

print(qc) çıktısı · precision=3 · N=4 oracle

     ┌───┐┌─────────┐                      ┌───────┐┌─┐      
q_0: ┤ H ├┤0        ├──────────────────────┤0      ├┤M├──────
     ├───┤│         │┌─────────┐           │       │└╥┘┌─┐   
q_1: ┤ H ├┤         ├┤0        ├───────────┤1 IQFT ├─╫─┤M├───
     ├───┤│         ││         │┌─────────┐│       │ ║ └╥┘┌─┐
q_2: ┤ H ├┤  c_Q**1 ├┤         ├┤0        ├┤2      ├─╫──╫─┤M├
     ├───┤│         ││  c_Q**2 ││         │└───────┘ ║  ║ └╥┘
q_3: ┤ H ├┤1        ├┤1        ├┤1 c_Q**4 ├──────────╫──╫──╫─
     ├───┤│         ││         ││         │          ║  ║  ║ 
q_4: ┤ H ├┤2        ├┤2        ├┤2        ├──────────╫──╫──╫─
     └───┘└─────────┘└─────────┘└─────────┘          ║  ║  ║ 
c: 3/════════════════════════════════════════════════╩══╩══╩═
                                                     0  1  2 

H · hazırlık kontrollü G blokları IQFT · ölçüm

svg

Premium devre çizimi

p0 p1 p2 q0 c precision arama H H H H kontrollü Grover G, G², G⁴ ... IQFT faz → bit M M M tahmin · klasik okuma ölçülen faz → θ̂ işaretli durum · M̂ M ≈ N·sin 2 (θ/2) quantum counting estimate

mor · H turkuaz · kontrollü Grover yeşil · IQFT mavi · ölçüm

Canlı devre paneli bu sayfada yok. Aşağıdaki terminal ve SVG (veya özet şema) tam referans görselidir; tarayıcıda simülatör veya örnek histogram çalışmaz. Canlı devre, moment turu ve örnek sayım şu an şu sayfalarda: Bell · Qiskit, GHZ · Qiskit, Bell · Cirq, QRNG · Qiskit, Süper yoğun kodlama, BB84, Teleportasyon, Bernstein–Vazirani ve Grover.
Ne öğreniyoruz? Terminal çıktısı kutulu ünite ve kontrol hatlarını satır satır gösterir; SVG aynı iskeleti blok düzeninde özetler. Grover · iki temsil, Genlik güçlendirme · iki temsil.

Kodun Derinlemesine Analizi

Kod analizi · satır satır

precision register’ı İlk precision kübit, faz tahmini için ayrılır. Bu kübitler “sayacı” taşır; ne kadar çok olursa fazı o kadar ince ölçersiniz.

GroverOperator(oracle) Qiskit, oracle’dan Grover operatörünü üretir. Kuantum sayımında bu operatörün özfazı aradığımız bilgidir; yani Grover burada “bulmak” için değil “faz üretmek” için kullanılır.

power(2**j) + control() QPE şablonu: kontrollü üniterin kuvvetleri uygulanır (G, G², G⁴, ...). Bu kuvvetler, fazı precision register’da ikili basamaklar gibi kodlar.

IQFT QFT(precision).inverse(), birikmiş faz bilgisini ölçülebilir bit desenine dönüştürür. Bu desen doğrudan θ tahminini taşır.

Klasik dönüşüm Ölçülen bit deseninden elde edilen açı ile M≈N·sin²(θ/2) hesaplanır. Bu sayfa devre iskeletine odaklanır; uygulamada birden çok ölçümden medyan/ortalama almak tahmini stabilize eder.

Devre ve Doğrulama

Bu şema 6 · Aynı Devre (İki Temsil) bölümündeki akışı korur; iki register’ı gösterir: üstte precision (faz ölçer), altta arama register’ı (oracle + Grover). Kontrollü G^{2^j} blokları fazı biriktirir; ardından IQFT okunabilir hâle getirir.

Kuantum sayımı · precision + arama H → kontrollü Grover kuvvetleri → IQFT → ölçüm
p0 p1 p2 q0 c precision arama H H H H kontrollü Grover G, G², G⁴ ... IQFT faz → bit M M M tahmin · klasik okuma ölçülen faz → θ̂ işaretli durum · M̂ M ≈ N·sin 2 (θ/2) quantum counting estimate

Şemayı adım adım oku

  1. Precision kübitleri H ile süperpozisyona alınır; faz “ölçüm alanı” hazırlanır.

  2. Her precision kübit, arama register’ı üzerinde kontrollü G^{2^j} uygular ve faz biriktirir.

  3. IQFT, bu fazı ikili bir sayıya çevirir; ölçüm sonucu θ tahminini taşır.

  4. Klasik tarafta M≈N·sin²(θ/2) ile hedef sayısı elde edilir.

Doğrulama

Hedef: ölçülen faz dağılımının tek bir “bit deseni” etrafında toplanması ve bu desenden tutarlı bir M tahmini üretmek.

  • precision ↑ → hata ↓
  • çıktı faz histogramı
  • not pratikte çoklu deneme önerilir

İçerik Geliştirme Notları

  • Kuantumun istatistik memuru

    Grover’ı “dedektif” gibi düşünüyorsanız, kuantum sayımı sahaya çıkmadan önce kaç hedef olduğunu tahmin eden keşif ekibidir: önce M (dolayısıyla θ) için veri üretir, sonra Grover hattında k ≈ (π/4)·√(N/M) ölçeğinde tur seçimini bilinçli yapmayı mümkün kılar. İnfografikte iş akışını “sayım → arama” sırasıyla çizmek, üst bölümlerdeki motivasyonla örtüşür.

  • Hata payı ve precision kübitleri

    t hassasiyet kübiti tipik olarak faz kesrinde yaklaşık t bit doğruluk beklenmesine karşılık gelir; bu da θ ve dolayısıyla M ≈ N·sin²(θ/2) yuvarlamasında “bir basamak daha” anlamına gelir. Diyagramda precision genişliği ile olası hata dilini yan yana etiketlemek, adım adım işleyişteki 1. ve 5. maddelerle tutarlı kalır — tam sayı M uç örneklerde sapabilir; bu beklenen kuantum örnekleme davranışıdır.

  • Shor ile akrabalık

    Üçlü tema aynıdır: üniter üzerinde faz tahmini → klasik geri hesap. Shor’da özdeğer fazından periyot okunur; burada G üzerinden θ/(2π) kesri çıkar, sin²(θ/2)=M/N ile hedef sayısına bağlanır. Simon hattı da “doğrusal yapıyı fazdan sızmak” fikrinde buluşur — karşılaştırmalı şema eklerken bu üç algoritmayı aynı “QPE kutusu” ikonografiyle göstermek okuyucuya yük bindirmez.

  • Şema tutarlılığı özeti

    Taslak diyagramda G, kontrollü G2j, IQFT ve çıktıdan θ → M köprüsünü tek bakışta gösterin; üstte sabitlediğimiz sin²(θ/2)=M/N ve Grover sayfasındaki tur formülü aynı sembolleri kullanmalıdır. Böylece içerik hem mimari hem adım adım bölümle çakışmadan birbirini tamamlar.