1. Ana sayfa
  2. Algoritmalar
  3. QFT ve faz
  4. QFT · Qiskit
QFT ve faz · Qiskit

Kuantum Fourier dönüşümü — faz uzayına geçiş

QFT (Quantum Fourier Transform), bir kuantum register’ının genliklerini Fourier dönüşümüyle yeniden ifade eden doğrusal bir dönüşümdür. Klasik Fourier “frekansları” ayıklarken, QFT kuantum durumundaki periyodik faz desenlerini yakalamayı mümkün kılar; bu yüzden Shor ve Faz Tahmini (QPE) gibi büyük algoritmaların ana motorudur.

  • Merdiven devre: H + kontrollü faz
  • Bit reversal: SWAP
  • Karmaşıklık: O((log N)^2)
  • Örnek: 3 kübit manuel QFT

Kuantum Fourier Dönüşümü (QFT) nedir?

QFT, n kübitlik bir durumun genliklerini Fourier dönüşümü mantığıyla yeniden düzenler. Klasik dünyada Fourier dönüşümü sinyalin içindeki frekansları ortaya çıkarır; kuantum dünyasında ise “bilginin” çoğu zaman fazlarda saklandığı durumlarda bu faz desenlerini okunabilir hâle getirir.

Kuantumun spektrum analizi QFT’yi, bir ses kaydındaki notaları ayrıştıran spektrum analizörü gibi düşünebilirsiniz: zaman alanındaki dalga formunu alıp frekans alanında “hangi desenler baskın?” sorusuna cevap verir.

Neden devrimseldir?

QFT’nin devre karmaşıklığı, klasik FFT ile kıyaslandığında dramatiktir. Elbette QFT bir “liste” üzerinde çalışmaz; bir kuantum register üzerindeki faz/genlik temsilini değiştirir. Ancak Shor ve QPE gibi algoritmalarda bu değişim, üstel hızlanmanın kilidini açar.

Yöntem Ölçek Not
Klasik FFT O(N log N) Uzunluğu N olan dizide dönüşüm.
QFT devresi O((log N)^2) n=log₂N kübit üzerinde kapı sayısı.

Buradaki fark, “kuantum her şeyi daha hızlı yapar” gibi genellenmez. QFT, doğru problem yapısı (periyot/faz) olduğunda bir hız motorudur; ölçüm ve klasik son işlemle birleştiğinde anlam kazanır.

Mimari yapı: kontrollü dönüşler ve Hadamard

QFT devresi simetrik bir “merdiven” yapısıdır. Her basamakta bir Hadamard ve ardından daha az etkili (küçülen açı) kontrollü faz kapıları gelir.

  • Hadamard (H)

    Her blok, ilgili kübiti süperpozisyona alarak faz rotasyonlarının “zeminini” hazırlar.

  • Kontrollü faz (CP / Rₖ)

    Diğer kübitlerin değerine bağlı olarak hedef kübite belirli bir açı uygular: π/2, π/4, π/8, .... Bu, fazın hassas basamaklar halinde kodlanmasıdır.

Bit reversal (SWAP) neden var? QFT’nin “doğal” çıkışı bit sıralamasını ters üretir. Bu yüzden devrenin sonunda SWAP kapılarıyla düzeni düzeltiriz: ölçüm bitleri, anlamlı sıraya gelir.

Faz uzayına geçiş

QFT uygulandığında bilgi, “hangi kübit 0/1?” gibi doğrudan bit deseninden ziyade, register’ın taşıdığı faz açılarında temsil edilebilir. Bu, periyodik yapıları ölçümden hemen önce “temizleyip” okunabilir hale getiren hibrit algoritmalarda çok değerlidir.

Profesyonel not · hibrit mantık QFT çoğu zaman son adım değildir; ölçümden hemen önce faz desenini “açığa çıkaran” bir dönüştürücü gibi kullanılır. Ardından klasik post-processing, periyodu/parametreyi çıkarır.

Qiskit kod örneği

Aşağıdaki kod, QFT’yi “kütüphaneden çağırmak” yerine kapı kapı manuel kurar: Hadamard, kontrollü faz (CP) merdiveni ve bit reversal için SWAP. Örnek olarak giriş durumunu |101⟩ hazırlayıp QFT sonrası durum vektörünü okuyoruz.

Derin bakış · neden manuel QFT? Qiskit kütüphanesindeki QFT() fonksiyonu optimize edilmiş bir “kara kutu”dur. Eğitim için harikadır; fakat bu sayfadaki gibi devreyi Hadamard ve kontrollü faz kapılarıyla basamak basamak inşa etmek, kuantumun frekans analizini aslında nasıl “faz döndürme” seviyesinde gerçekleştirdiğini görmenin en temiz yoludur.
qft_manual_qiskit.py Python
import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector


def build_qft_manual(n: int) -> QuantumCircuit:
    qc = QuantumCircuit(n)
    for j in range(n):
        # 1) Her blok Hadamard ile başlar
        qc.h(j)
        # 2) Takip eden kübitlerle kontrollü rotasyonlar
        for k in range(j + 1, n):
            angle = np.pi / (2 ** (k - j))  # π / 2^(k-j)
            qc.cp(angle, k, j)
        qc.barrier()

    # 3) Bit reversal: SWAP ile sırayı tersle
    for i in range(n // 2):
        qc.swap(i, n - i - 1)
    return qc


n_qubits = 3
qft = build_qft_manual(n_qubits)

# Örnek giriş: |101⟩
qc = QuantumCircuit(n_qubits)
qc.x(0)
qc.x(2)
qc.barrier()
qc.compose(qft, inplace=True)

print(\"Manuel QFT Devre Şeması:\")
print(qc)

state = Statevector.from_instruction(qc)
print(\"Durum vektörü (genlikler):\")
print(state.data)
qiskit Statevector · ölçümsüz · n=3 UTF-8 · LF

Kodun derinlemesine analizi

Kod analizi · satır satır

qc.h(j) Her katman bir Hadamard ile başlar. Bu, “faz merdiveni” için referans süperpozisyonu oluşturur.

Hangi kübit hangi rolü oynuyor? Döngüde j “hedef kübit”tir; onun üstüne QFT’nin bir basamağını kurarız. İç döngüdeki k ise “daha anlamlı” (daha yüksek ağırlıklı) kübitlerden gelen kontrollerdir. Sezgi: yüksek anlamlı bitler, daha küçük açılarla daha ince faz düzeltmeleri yapar.

qc.cp(angle, k, j) Kontrollü faz kapısı, kontrol kübit 1 iken hedef kübite angle kadar faz uygular. Açıların π/2, π/4, π/8... şeklinde küçülmesi, faz bilgisinin ikili basamaklar gibi kodlanmasıdır.

Açı formülü Burada angle = π / 2^(k-j). Mesafe büyüdükçe (k-j arttıkça) açı küçülür; bu yüzden merdivenin üst basamaklarında “ince” fazlar eklenir. QFT’nin estetik görünümü, aslında bu geometrik ölçeklemeden gelir.

qc.barrier() Bariyer, matematiği değiştirmez; sadece “bu basamak bitti” demektir. Devre şemasını okurken Hadamard + CP grubunu bloklar hâlinde görmenizi sağlar ve transpiler’ın kapıları farklı yerlere taşımasını pratikte sınırlar.

qc.swap(...) (bit reversal) QFT doğal olarak bitleri ters sırada üretir. SWAP katmanı, ölçüm çıktısını “insanların okuduğu” sıraya geri çevirir.

Bit reversal · yaygın kafa karışıklığı QFT’nin “çıktısı ters” demek, kuantumun yanlış çalıştığı anlamına gelmez — bu bir adresleme konvansiyonu meselesidir (endianness). Bazı kitap/çerçeveler SWAP’ları devreye koyar, bazıları “ölçüm bitlerini ters oku” der. Biz burada görsel netlik için SWAP ile düzeltiyoruz.

Statevector ile kontrol Bu örnekte ölçüm yapmıyoruz; amaç dönüşümün genlik/faz yapısını görmek. QFT’nin gücü, daha büyük algoritmalarda (QPE/Shor) ölçüm + klasik son işlemle ortaya çıkar.

Bu örnek neden ölçümsüz? QFT tek başına “cevap” üretmez; cevabı üreten, QFT’den sonra yapılan ölçümün hangi bağlamda yorumlandığıdır. Shor/QPE’de ölçüm, periyodu/fazı çıkarmaya yarayan klasik post-processing’e beslenir. Bu sayfada amaç, QFT’nin kapı yapısını ve faz mantığını çıplak hâliyle görmek.

Devre ve doğrulama

Şema 3 kübitlik manuel QFT merdivenini gösterir: her kübitte Hadamard ve ardından kontrollü faz kapıları; en sonda bit reversal için SWAP.

QFT merdiveni · n=3 · Qiskit H + CP(π/2, π/4, …) + SWAP
q0 q1 q2 H H H CP π/2 CP π/4 CP π/2 SWAP

Şemayı adım adım oku

  1. İlk kübitte H ile başlarsınız; sonra diğer kübitlerden gelen kontrollü fazlarla ince ayar yapılır.

  2. Açıların π/2, π/4, ... şeklinde küçülmesi, fazın ikili basamaklarla kodlandığını gösterir.

  3. Şemada kontrol noktası (dolu nokta) “fazı koşullu uygula” anlamına gelir. Örneğin q2 üzerindeki 1, q0 üzerinde π/4 faz ekler. Böylece üst kübitler alt kübitlerin fazını “ince ayarlar”.

  4. Merdiven tamamlanınca bit reversal için SWAP ile sıralama düzeltilir.

Şema okuma ipucu QFT’de “hangi kapı nereye bağlı?” sorusundan çok “hangi faz hangi ağırlıkla ekleniyor?” sorusu önemlidir. Bu yüzden açılar küçülerek gider: her yeni kontrollü faz, ölçümdeki bir basamağın çözünürlüğünü temsil eder.
Doğrulama

Hedef: devrenin “H + kontrollü faz + SWAP” merdiveni olarak okunabilmesi ve bit reversal fikrinin net olması.

  • kapılar H + CP + SWAP
  • açılar π/2, π/4, ...
  • not ölçüm, algoritmaya göre en sonda gelir

Tasarım ve içerik geliştirme notları

  • “Kuantumun spektrum analizi”

    Sezgisel girişte QFT’yi bir spektrum analizörü gibi anlatmak, “faz” fikrini hızlı oturtur.

  • Bit reversal

    SWAP’ların neden gerekli olduğunu “Fourier dünyasında adreslemenin ters aktığı” sezgisiyle açıklamak teknik derinliği artırır.

  • Hibrit mantık

    QFT’nin çoğu zaman ölçümden hemen önce veriyi “temizleyen” bir dönüştürücü olduğu; ardından klasik post-processing geldiği notu faydalıdır.