Statevector Simülasyonu
Simülatör, kuantum programcının laboratuvarıdır: çipe girmeden önce devrenin ne yaptığını görmenin yolu, onu klasik bir bilgisayarda hesaplamaktır. Bu derste en temel yöntem olan statevector (durum vektörü) simülasyonunu sıfırdan öğreneceksin: durum vektörü nasıl yazılır, kapılar onu nasıl değiştirir, bellek neden üstel büyür ve ölçüm olasılıkları nereden çıkar. Simülatörlerin genel haritası Kuantum Simülatörleri dersinde; serinin tamamı Kuantum Hesaplama dersleri sayfasında.
Statevector Nedir?
Statevector, kuantum durumunun sütun vektör olarak yazılmasıdır. Tek kübit için durum α|0⟩ + β|1⟩ ise statevector iki bileşenlidir: (α, β). α ve β'ya genlik (amplitüd) denir; kural gereği |α|² + |β|² = 1'dir ve ölçümde 0'ı görme olasılığı |α|², 1'i görme olasılığı |β|²'dir. Klasik bit yalnız iki değerden birini tutabildiği için bu vektör işin kalbidir: bilgisayarın durum hakkında bildiği her şey tek sütunda yaşar.
Çok kübitli durumlar aynı mantıkla ama çok daha hızlı büyüyerek yazılır: n kübit için statevector 2ⁿ bileşenlidir ve her bileşen, 00…0'dan 11…1'e kadar olası bit dizilerinden birine karşılık gelir. İki kübit için ψ = a|00⟩ + b|01⟩ + c|10⟩ + d|11⟩ ve vektör (a, b, c, d)'dir; normalizasyon bu kez tüm bileşenler üzerinden Σ|genlik|² = 1 biçiminde yazılır. Tek tek kübitlerin durumlarından ortak durum kurarken tensör çarpımı ⊗ kullanılır: |0⟩ ⊗ |0⟩ = |00⟩. Dirac'ın ⟨φ| biçimindeki bra gösterimi satır vektör tarafıdır; ⟨φ|ψ⟩ iç çarpımı iki durumun örtüşmesini ölçer.
Kapılar Matris Çarpımıdır: Adım Adım Bir Hesap
Statevector simülasyonunda her kapı, duruma soldan çarpılan bir üniteryen matristir. Tek kübit kapıları 2×2'dir: X (Pauli σₓ) = [[0, 1], [1, 0]] biti çevirir; H (Hadamard) = (1/√2)·[[1, 1], [1, −1]] süperpozisyon kurar: H|0⟩ = (|0⟩ + |1⟩)/√2, yani vektör (1/√2, 1/√2) ve her iki sonuç 1/2 olasılıklıdır. Üniteryenlik koşulu U†U = I uzunluğu korur: kapılar zincirini uygulasan da Σ|genlik|² = 1 bozulmaz — olasılık korunumunun cebirsel karşılığı.
Bell (örtüşme) durumunu baştan sona hesaplayalım; devre ilk kübite H, sonra kontrolü ilk kübit, hedefi ikinci kübit olan bir CNOT uyguluyor. (1) Başlangıç |00⟩, vektör (1, 0, 0, 0). (2) H ilk kübite etki eder: durum (1/√2)(|00⟩ + |10⟩), vektör (1/√2, 0, 1/√2, 0). (3) CNOT, kontrol 1 iken hedefi çevirir: |10⟩ → |11⟩, durum (1/√2)(|00⟩ + |11⟩), vektör (1/√2, 0, 0, 1/√2). Her adımda bileşenlerin karelerinin toplamı 1'dir; ölçümde ise yalnız iki sonuç görünür: 1/2 olasılıkla 00, 1/2 olasılıkla 11. Simülatörün yaptığı iş tam olarak budur: kapıları sırayla okuyup her birinin matrisini duruma çarpmak. Devre söz dizimini Kuantum Devresi Yazımı, gerçek kod dökümünü ise Qiskit ile Tanışma dersinde bulursun.
Bellek Duvarı: Kübit Sayısı Neden Sınır?
Statevector simülasyonunun bedeli, 2ⁿ bileşenli vektörü bellekte tutmaktır. Tipik simülatörler her genliği iki adet 8 baytlık kayan nokta sayısıyla, yani 16 baytta saklar; bellek ihtiyacı kabaca 16 × 2ⁿ bayttır. Büyüme şöyle ilerler:
- 10 kübit: 2¹⁰ = 1024 genlik ≈ 16 KB — her yerde rahat çalışır.
- 20 kübit: 2²⁰ ≈ 1 milyon genlik ≈ 16 MB — masaüstünde sorun yok.
- 30 kübit: 2³⁰ ≈ 1 milyar genlik ≈ 16 GB — güçlü bir makine ister.
- 40 kübit: 2⁴⁰ ≈ 1 trilyon genlik ≈ 16 TB — tek makinenin RAM'ini aşar.
Bu yüzden 30 kübit civarı, tek makinede tam statevector simülasyonunun pratik sınırı kabul edilir; sınırı aşmak için devrenin yapısından yararlanan tensör ağları ve stabilizör simülasyonu gibi yöntemler devreye girer. Maliyet yalnız bellek değildir: her kapı 2ⁿ bileşenin tamamına dokunmak zorunda olduğundan işlem süresi de kapı sayısı × 2ⁿ düzeyinde büyür.
Ölçüm: Olasılıkların Doğduğu Yer
Statevector simülasyonunun en zarif yanı, ölçümü tam değerde vermesidir: her genliğin karesi olasılık olduğundan tüm dağılımı bir anda raporlar; Bell örneğinde 00 için tam %50. Shot yönetiminde ise devre binlerce kez çalıştırılıp sonuç sayılır; kıyası Shot Tabanlı Simülasyon dersinde. Devrenin ortasında ölçüm yapıp klasik karar verilmesi gerekiyorsa — bir önceki ünitedeki Klasik Kontrol desenleri — dalga ölçümde çöktüğü için devreyi tek bir statevector ilerlemesiyle taklit edemezsin: her koşul dalı ayrı çalıştırılır.
Dağılımdan sonuç kümesine giden yol standarttır: simülatör bit dizilerini sayar, sana bir sözlük döndürür; görselleştirme Ölçüm Histogramları dersinin konusudur. ⟨φ|ψ⟩ örtüşme değeri de simülatörde doğrudan hesaplanır: algoritmaların hedefe ne kadar yaklaştığını söyleyen sayı budur.
Sık Yapılan Hatalar ve Yanılgılar
- Kübit sırasını karıştırmak: Qiskit gibi kitaplıklar bit dizisini little-endian yazar; "01" çıktısında sağdaki kübit en küçük sıralıdır ve q₀ = 1 demektir. Diyagramla çıktı "ters" görünüyorsa önce bunu düşün.
- Elle müdahaleden sonra normalizasyonu atlamak: Genlikleri elle değiştirdiğinde Σ|genlik|² = 1 bozulursa olasılıkların toplamı 1'i geçer veya eksik kalır; bazı kitaplıklar hata verir, bazıları sessizce yanlışlık üretir. Müdahaleden sonra mutlaka yeniden normalize et.
- Kapı sırasını tersten çarpmak: Devre önce A sonra B uyguluyorsa toplam matris BA'dır; önce uygulanan kapı, durumun sağındaki çarpandır.
- Küresel fazı fiziksel sanmak: e^(iφ)|ψ⟩ ile |ψ⟩ aynı fiziksel durumdur; tüm genlikleri aynı açıyla döndürmek ölçümde hiçbir şeyi değiştirmez. Ölçüme giren şey göreli fazlardır; simülatörün faz referansını karışıklık sanma.
- Simülasyon çıktısını gerçek çipin çıktısı sanmak: İdeal statevector simülasyonu gürültüsüz, mükemmel kapılarla hesaplar; gerçek donanımda kapı, dekoherans ve okuma hataları dağılımı bozar. Aradaki farkı incelemek Gürültü Modelleri dersinin işidir.
Bu derste devrenin matematiksel kalbini gördün: her kuantum programı, statevector üstünde bir üniteryen matris çarpımları zinciridir. Sonraki ünite bu zemini kullanacak: Deutsch Algoritması dersinde tek sorguda bir fonksiyonun özelliğini söyleyen ilk kuantum algoritmasını, buradaki vektör-ve-kapı diliyle hesaplayacağız.
Sık Sorulan Sorular
Statevector simülasyonu nedir?
Statevector simülasyonu, bir kuantum devresini klasik bilgisayarda tam anlamıyla taklit etme yöntemidir: durum, 2ⁿ genlikten oluşan bir vektörle tutulur; her kapı bu vektöre üniteryen bir matris çarpar ve ölçüm olasılıkları genliklerin karelerinden tam değerde hesaplanır. Örneklemeye gerek yoktur; sınırı bellektir.
Statevector simülasyonu ile shot tabanlı simülasyon arasındaki fark nedir?
Statevector simülasyonu ölçüm dağılımını doğrudan hesaplar ve örnekleme hatası içermez; shot tabanlı simülasyon devreyi binlerce kez çalıştırıp sonuçları sayarak aynı dağılımı tahmin eder. Örnekleme yönteminde her tekrar küçük bir istatistiksel sapma taşır; devrenin ortasında ölçüm ve klasik kontrol varsa tekrarlı koşular zaten zorunludur.
Statevector simülasyonu kaç kübiti kaldırır?
Bellek kabaca 16 × 2ⁿ bayt büyüdüğünden 10 kübit yaklaşık 16 KB, 20 kübit 16 MB, 30 kübit 16 GB tutar; tek bir makinede pratik sınır 30 kübit civarıdır. Daha büyük devreler için devre yapısını kullanan tensör ağları veya stabilizör gibi özel simülatörler gerekir.
Simülatörün sonucu gerçek kuantum bilgisayarın sonucuyla neden aynı olmaz?
Çünkü ideal statevector simülasyonu gürültüsüz varsayar; gerçek çiplerde kapı hataları, dekoherans ve okuma hataları olasılık dağılımını bozar. Bu yüzden simülatör tasarım ve doğrulama için, gerçek donanım fiziksel gerçeklik için kullanılır; aradaki fark gürültü modelleriyle simüle edilebilir.
Kaynaklar ve İleri Okuma
Quantum state — Wikipedia — Kuantum durumunun vektör temsilini ve ölçümle ilişkisini anlatan genel madde.
Bra–ket notation — Wikipedia — |ψ⟩ ve ⟨φ| gösteriminin matematiksel kökeni ve kuralları.
Tensor product — Wikipedia — Çok kübitli durumların kurulmasında kullanılan tensör (Kronecker) çarpımı.
Exact and noisy simulation with Qiskit Aer primitives — IBM Quantum Documentation — Qiskit Aer ile tam (statevector) ve gürültülü simülasyonun resmî rehberi.