KonuAnlatım.com

Kuantum Hesaplama 101

Kuantum Hesaplama · Bölüm 1Kuantum HesaplamaDers

Kuantum bilgisayarlar, bazı problemleri klasik bilgisayarlardan kökten farklı bir mantıkla çözer. Bu derste kuantum hesaplamayı sıfırdan, tek bir somut problem üzerinden anlatacağız: arama. Kübit ve süperpozisyonun ne olduğunu, Grover algoritmasının milyonlarca adayın içinden %100'e yakın şansla nasıl çözüm çıkardığını, ölçüm anında neyin değiştiğini ve çözüm sayısını bilmediğimizde devreye giren adaptif arama yöntemlerini (BBHT) öğreneceksin. Anlatım boyunca gerçek bir kuantum hesaplama tartışmasında sorulan soruları izleyeceğiz: "Arama uzayının büyüklüğünü bilmesem de kuantum arama çalışır mı?", "İşlemciyi farklı iterasyon sayılarıyla on kez çalıştırmak şansımı artırır mı?", "Denemeleri birbirine bağlamanın bir yolu var mı?" Serinin tamamı için Kuantum Hesaplama dersleri sayfasına bakabilirsin; algoritma kavramının temelini henüz görmediysen önce Algoritma nedir? dersine göz atman iyi olur.

Kübit ve Süperpozisyon: Klasik Bitten Farkı

Klasik bilgisayarın en küçük bilgi birimi bittir: ya 0 ya da 1. Bellekteki her nokta ölçtüğün anda kesin bir değer taşır; işlemci ne yaparsa yapsın bu değer değişmez, en fazla yenisiyle değiştirilir. Kuantum bilgisayarda bu birim kübittir ve fark tam burada başlar: ölçülmediği sürece kübit 0 ve 1'in süperpozisyonundadır. Bunu α|0⟩ + β|1⟩ diye yazarız; α ve β "genlik" denen sayılardır. Kübiti ölçtüğünde, |α|² olasılıkla 0, |β|² olasılıkla 1 görürsün ve kural gereği |α|² + |β|² = 1'dir.

Asıl gücü büyüten şey ölçek: n kübitlik bir kayıt, 2ⁿ durumun hepsinin genliğini aynı anda taşır. 20 kübitlik kayıt, 1.048.576 olası durumun tamamını tek bir dalga gibi taşımak demektir. Klasik bilgisayar labirentte yolları tek tek dener; kuantum bilgisayar tüm yolların üstünde aynı anda bir dalga taşır ve doğru yolu parlatmayı öğrenir. Aşağıdaki görsel bu farkı özetliyor: solda ya-0-ya-1 diye yaşayan klasik bit, sağda iki durumu aynı anda taşıyan kübit.

Klasik bit: ya 0 ya 1 0 1 Kübit: süperpozisyonda α|0⟩ + β|1⟩ ölçene kadar iki durumun karışımında kalır

Kuantum Arama Problemi ve Oracle

Arama problemi şu: elimizde N aday var ve f(x) fonksiyonu x çözümse 1, değilse 0 döndürüyor. Çözümü bulmak istiyoruz. Klasik bilgisayar en kötü durumda N adayı, ortalama olarak N/2 tanesini tek tek dener; 20 bitlik bir uzayda bu, ortalama yarım milyon deneme demektir. Kuantum tarafında f(x) bir oracle'a (kâhin kapısına) dönüşür: beslenen durumun yalnızca çözüm olan bileşeninin işaretini −1 ile çarpan bir kapı. Hile, oracle'ın içini açıp listeyi satır satır okumak değildir; üst üste binmiş tüm adaylara aynı anda "sen çözüm müsün?" diye sormak ve cevabı genliklerde saklamaktır.

Önemli bir ayrıntı: oracle'ın maliyeti ayrı bir meseledir. Kuantum hızlanma, oracle'ı kaç kez çağıracağını azaltır; oracle'ın kendi içindeki işlem sayısı ise problem tanımından gelir. Bu yüzden pratik bir kuantum aramada asıl mesele üç şeydir: oracle'ın karmaşıklığı, uzayda kaç çözüm olduğu (M) ve arama uzayının büyüklüğü (N). Bunlardan hangisini bilip bilmediğin, stratejini değiştirir — bu dersin geri kalanı tam olarak bununla ilgili.

Grover Algoritması: Genlik Yükseltme

Grover algoritmasının fikri şudur: çözümün genliğini her turda biraz büyüt, olasılığı yavaş yavaş tek noktada topla. Bir tur iki adımdan oluşur. Birinci adım oracle: hedef (çözüm) adayının genliğini ters çevirir, ortalamayı hafifçe düşürür. İkinci adım diffusion ("ortalamaya göre yansıtma"): tüm genlikleri ortalamanın etrafında aynalar. Ortalamanın altına düşen hedef genliği, yansıyınca ortalamanın çok üstüne fırlar; diğer adaylar hafifçe küçülür. Sonuç: hedefin ölçülme olasılığı her turda artar.

Geometrik okuma da aynı şeyi söyler: başlangıçta durum, "tüm adaylar eşit" yönü ile "yalnız hedef" yönü arasında bir açıdadır; her Grover turu bu durumu sabit miktarda hedef yönüne doğru döndürür. Doğru sayıda turdan sonra hedefin olasılığı %100'e yaklaşır — işte o an ölçersin.

1) Başlangıç: tüm adaylar eşit genlikte (turuncu: çözüm) → 2) Oracle: çözümün genliği ters çevrilir (aşağı iner) → 3) Diffusion: ortalamaya göre yansıtınca çözüm öne fırlar

Kaç Tur Gerekli? π/4·√N Kuralı

Tek çözümlü (M = 1) bir aramada gereken tur sayısı yaklaşık t ≈ (π/4)·√N'dir. Somut örneğe dönersek: 20 bitlik bir uzayda N = 2²⁰ = 1.048.576 aday vardır; √N = 1024 ve (π/4)·1024 ≈ 804 tur. Klasik aramanın ortalama 524.288 denemesine karşı kuantumda 804 tur — asıl hızlanma budur ve √N'den gelir: problem iki kat büyürse klasik iş iki kat artar, kuantum turu yalnızca √2 kat artar.

Peki kuantum bilgisayar, arama uzayının büyüklüğünü bilmeden çalışır mı? Çalışır — bilmediğin şey, ne zaman durup ölçeceğındır. N'i bilmek, tur sayısını baştan doğru seçmek için gerekir: uzayı ve çözüm sayısını biliyorsan standart Grover'ı tam 804 tur gibi doğru değerde çalıştırırsın. Bilmiyorsan tur sayısını doğrudan seçemezsin; o zaman devreye birazdan göreceğimiz adaptif stratejiler girer.

işlem sayısı (log ölçek) Klasik arama: ~N deneme Grover: ~√N tur 20 bit: ~1.048.576 deneme 20 bit: ~804 tur Problem büyüklüğü (bit sayısı)

Ölçüm, Çökme ve Bağımsız Denemeler

Kuantum hesaplamanın en kırılgan anı ölçümdür. Ölçtüğün anda süperpozisyon çöker: dalga, tek bir klasik sonuca sabitlenir ve diğer tüm genlikler yok olur. Bu yüzden aynı hesaplamayı ikinci kez çalıştırmak "kaldığı yerden devam etmek" değildir; kübitler sıfırdan hazırlanır, her şey baştan kurulur. Ölçümle biten denemeler istatistiksel olarak birbirinden bağımsızdır.

Bu bağlamda güzel bir soru: "20 bitlik bir arama için 200 kübitlik bir işlemci kullansam ve bu işlemciye 10 kez, her birinde aşağıdan yukarıya logaritmik olarak artan iterasyon sayıları versem, birinde bulma şansım artar mı?" Cevap iki parçalı. Fikrin özü doğrudur: bilinmeyen bir en iyi tur sayısı varken, farklı tur sayılarını ayrı denemelerde sınamak (birinde 1–2 tur, diğerinde 4–8 tur...) gerçek bir stratejidir ve en az bir denemenin iyi bölgeye denk gelme şansını artırır. Ama 200 kübit eklemek tek başına işe yaramaz: arama 20 bitlik kayıt üstünde yapılmaktadır; fazladan kübitler algoritmada gerçek bir iş yapmıyorsa (örneğin oracle'ın hesap için kullandığı yardımcı kübitler değilse) şansı artırmaz. Uzayın büyüklüğünü zaten biliyorsan en temiz yol, yaklaşık 804 turluk tek bir çalıştırma ve tek bir ölçümdür.

1. deneme · ~804 tur α|0⟩+β|1⟩ ölçüm 1 2. deneme · ~804 tur α|0⟩+β|1⟩ ölçüm 0 3. deneme · ~804 tur α|0⟩+β|1⟩ ölçüm 1 Her ölçüm dalgayı çöker: yeni deneme sıfırdan başlar. Denemeler bağımsızdır.

Denemeleri Kuantum Olarak Bağlamak

"Denemeleri bağımlı yapmanın bir yolu var mı?" sorusunun cevabı evet, ama iki farklı bağımlılık kastedilebilir. Birincisi ölçüm yapmadan denemeleri birbirine bağlamaktır: ilk çalıştırmada 4 tur yaptıysan, ölçmeden aynı durum üstüne 8 tur daha uygulayabilirsin; bu, tek bir kuantum evriminin devamıdır — 12 turluk tek bir çalıştırmadan farkı yoktur. Kural şudur: ölçmeden devam edersen tek bir Grover sürecine dönüşürsün; ölçersen yeni ve bağımsız denemeler başlatırsın.

Ama dikkat: Grover dönüşü hedefi geçebilir. Optimal tur sayısının üstündeki her tur, başarı olasılığını düşürmeye başlar; olasılık sinüs gibi tepe yapıp iner. Yani 4, 8, 16... diye körlemesine uzayan tek bir uzun koşu, hedefin üzerinden geçip uzaklaşabilir. Bağlı denemeler otomatik olarak daha iyi değildir; çözüm sayısı bilinmiyorken ayrı denemeler + akıllı bir tur çizelgesi çoğu zaman daha güvenlidir.

Bilinmeyen Uzayda Adaptif Arama: BBHT

Tam bu noktada sohbetteki "geliştirilmiş adaptif varyantlar" aramasının cevabı gelir: Boyer–Brassard–Høyer–Tapp (BBHT) algoritması. Fikir senin "artan iterasyon" fikrine çok benzer; fark çizelgede. BBHT şöyle çalışır: m = 1 ile başla; her denemede 0 ile m−1 arasından rastgele bir j seç; j tur Grover uygula ve ölç. Çözümü bulduysan dur. Bulamadıysan m'yi büyüt (yaklaşık 6/5 katı, üst sınır olarak da √N) ve yeniden dene.

Neden sabit 1, 2, 4, 8... değil de rastgele j? Çünkü sabit dizi, senin optimal tur sayının tam atladığı noktalara denk gelirse uzun süre boşa gidebilir; rastgelelik, denemelerin hep aynı kötü bölgeye düşmesini engeller. BBHT'nin asıl başarısı şudur: çözüm sayısını hiç bilmeden, beklenen sorgu sayısını yine O(√(N/M)) düzeyinde tutar — yani √N ivmesinin büyük kısmını korur. Senin "10 kez, logaritmik artan iterasyon" fikri de aslında BBHT'nin elle yapılmış, daha kaba bir hâli: doğru öz (artan tur sayılarıyla birden çok bağımsız deneme) oradadır; BBHT bu öze rastgelelik ve kademeli büyüme ekleyip verimli hâle getirir.

Özet: Bu Dersten Akılda Kalanlar

  • Kübit ölçülene kadar 0 ve 1'in süperpozisyonundadır; n kübit, 2ⁿ durumun genliğini aynı anda taşır.
  • Grover algoritması her turda oracle (hedefin genliğini ters çevir) + diffusion (ortalamaya göre yansıt) ile çözümün olasılığını büyütür.
  • Tek çözümlü aramada optimal tur sayısı ≈ (π/4)·√N'dir: 20 bitlik uzayda ~804 tur; klasik arama ise ortalama yarım milyon deneme yapar.
  • Uzayın büyüklüğünü bilmemek aramayı durdurmaz; yalnızca ne zaman ölçüleceğini belirsizleştirir. Asıl mesele oracle'ın karmaşıklığı, çözüm sayısı ve uzay büyüklüğüdür.
  • Ölçüm dalgalayı çöker; ölçümle biten denemeler bağımsızdır. Ölçmeden devam eden denemeler tek bir evrime dönüşür; ama Grover hedefi geçip uzaklaşabileceği için kör artış garanti değildir.
  • Fazladan kübitler algoritmada gerçek iş yapmıyorsa başarı şansını artırmaz. BBHT, rastgele tur sayısı + büyüyen m ile çözüm sayısını bilmeden √N ivmesini korur.

Bu ders, Kuantum Hesaplama serisinin ilk dersiydi. Sonraki derslerde kübit kapılarını, dolanıklığı ve Grover'ın devre düzeyindeki karşılığını işleyeceğiz. Bu arada hesaplamanın geleceğini merak ediyorsan Yapay Zekâ dersleri ile bilgisayar biliminin temelleri için Bilgisayar dersleri sayfalarımıza da göz atabilirsin.

Sık Sorulan Sorular

Kuantum bilgisayar arama uzayının büyüklüğünü bilmek zorunda mı?

Hayır; kuantum arama, uzayın büyüklüğü bilinmeden de çalışır. Ancak Grover'ın tur sayısı (π/4)·√N formülüne dayandığı için uzayı bilmemek, ne zaman durup ölçeceğini bilmediğin anlamına gelir. Bu yüzden bilinmeyen uzaylarda adaptif yöntemler (örneğin BBHT) kullanılır.

Grover algoritması klasik aramadan neden hızlı?

Klasik arama adayları tek tek dener ve ortalama N/2 deneme yapar; Grover ise tüm adayların üst üste binmiş durumuna aynı anda oracle sorar ve genlik yükseltmeyle yaklaşık (π/4)·√N turda çözüme kilitlenir. 20 bitlik uzayda bu, yarım milyon denemeye karşı yaklaşık 804 tur demektir.

Ölçüm yapıldığında ne olur?

Ölçüm, süperpozisyonu tek bir klasik sonuca çöker; diğer tüm genlikler yok olur. Bu yüzden ölçümle biten her deneme sıfırdan başlar ve birbirinden bağımsızdır. Ölçmeden devam edersen ise denemeler tek bir kuantum evriminin parçaları hâline gelir.

BBHT algoritması neyi çözer?

Boyer–Brassard–Høyer–Tapp (BBHT), arama uzayında kaç çözüm olduğunu bilmediğin durumlarda optimal Grover tur sayısını bilmeden arama yapmanı sağlar: her denemede rastgele bir tur sayısı seçip ölçer, başarısızlıkta adımı büyütür. Beklenen sorgu sayısını O(√(N/M)) düzeyinde tutarak kuantum hızlanmasının büyük kısmını korur.

Dersler

Tümü →