Klasikten kuantuma, gerçek zamanlı hesaplama

Cem Say Y
Klasikten kuantuma, gerçek zamanlı hesaplama

Çok fazla veri var. Geçen asırda hayal bile edebileceğimizden daha çok bilgi her an dijital ortama giriyor. Herkesin telefonundan bir yığın bilgi sürekli bir yerlere yollanıyor, ağa konuluyor, “eşya İnternet’i” her tarafa mesajlar yağdırıyor mesela. 2016’nın başlarında, insanlığın o sıralarda bir gün içinde dünyanın en büyük kütüphanesi olan ABD Kongre Kütüphanesi’nin içeriğinin yaklaşık 250.000 katı veri ürettiği hesaplanmıştı.

Bu veri selinin içinde, bulabilenler için, zenginliğin anahtarı saklı. Ama miktar çok, çok fazla, ve sürekli yenisi geliyor. “Hepsini bir kenara kaydedeyim, sonra şöyle uygun bir zamanımda etraflıca incelerim” diyemezsiniz; buna ne belleğiniz yeter, ne de zamanınız. Hemen, anında, veri akarken onu tarayıp ne var ne yok anlamalısınız, yoksa rakibinize geçilirsiniz!

Önceki yazılarımda hesaplama karmaşıklığı kuramından söz etmiştim. Problemleri, bir soruyu yazmak için gereken harf sayısı (yani sorunun uzunluğu) arttıkça onu cevaplamak için çalışan bilgisayar programının attığı adım sayısının ne kadar arttığına göre sınıflara ayırabiliriz.


“Zor problemler”

Soruyu biraz uzattığınızda çözüm süresi birazcık uzuyorsa mesele yok, ama soru uzadığında en verimli yöntemle bile çözümün çok daha fazla uzadığı problemler de var. İşte böyle sadece “zaman karmaşıklığı yüksek” algoritmalarla çözülebilenlere “zor problemler” diyoruz, çünkü pratikte karşımıza çıkabilecek boydaki soruları cevaplamamız, bilgisayarın işini bitirmesine ömrümüz yetmeyeceğinden mümkün olmuyor.

Girişte bahsettiğimiz “büyük veri” selinin içinde dişe dokunur bir şey var mı diye tarayacak algoritmalardan beklentimiz, bu anlamda zaman karmaşıklıklarının çok düşük olması; çünkü dediğim gibi, fazla vaktimiz yok.

İdeali, bilgisayarın tastamam verideki harf sayısı kadar adım atarak işini bitirebilmesi olurdu: Veriyi bir tür boru hattı üzerinden harfleri teker teker okuyarak edindiğimizi düşünün. Nasılsa bu iş için harf sayısı kadar “okuma adımı” atmak zorundayız yani. Eğer her harf başına sabit miktarda hesap yaparak taramayı gerçekleştiren bir program yazıp yeterince hızlı bir bilgisayarda çalıştırabilsek, verimizin hiçbir kısmını işlemeden atmak zorunda kalmadan tümünü tarayabilirdik. Bu ideal özelliğe sahip algoritmalara “gerçek zamanlı” adını veriyoruz.

Örneğin ilkokulda öğrendiğimiz toplama yöntemi gerçek zamanlı bir algoritma, çünkü (üst üste yazılmış iki sayıdan oluşan) soruyu sağdan sola okuyuşumuz sırasında her adımda küçük bir işlem yapıp aşağıya bir rakam yazarak okumamız bittiğinde cevabı tümüyle oluşturmuş oluyoruz. Oysa mesela çarpma işlemi için böyle bir algoritmanın var olup olmadığını bilmiyoruz.

Hayatımı değiştiren kitap

Görüldüğü gibi hangi problemlerin gerçek zamanlı çözümlerinin olduğunun saptanması, büyük veri dünyasında neyi yapıp neyi yapamayacağımızı anlayabilmemiz açısından önemli. Övünmek gibi olmasın, bu konuda dünyanın önde gelen uzmanlarından biri de benim eski doktora öğrencim Abuzer Yakaryılmaz.

Doktora tezimden beri Yapay Zeka alanında çeşitli problemlerle uğraşmıştım. Sonra bir gün bir kitap okudum ve hayatım değişti. David Deutsch’un (sanırım henüz Türkçeye çevrilmemiş olan) “The Fabric of Reality” (“Gerçekliğin Dokusu”) kitabı ilgimi kuantum bilgisayarlarına çevirmeme yol açtı.

Deutsch büyük bir fizikçi olmasının yanında kuantum bilişim kuramının da kurucularındandır. Onun büyüsüne kapılıp kuramsal bilgisayar bilimine âşık oldum. Birkaç yıllık okuma ardından o konuda özgün araştırma yapacak kıvama geldim. Yüksek lisans tezleriyle ısınma hareketleri yaptıktan sonra da ilk doktora öğrencim Abuzer’le işe başladık.

Kuantum bilgisayarları konusu

Kuantum bilgisayarlarını inşa etmek henüz çok zor. Cep telefonunuzdaki “klasik” bellek, şimdiye dek yapılabilen en büyük kuantum bellekten milyonlarca kat büyük. Büyük kuantum bilgisayarları için hazırlanmış baş döndürücü hızda algoritmalar mevcut, ama küçücük olanları aynı kapasitedeki klasik bilgisayarlarla karşılaştırıldıklarında üstünlük sağlarlar mı?

Abuzer, kendine araştırma sorusu olarak, kuantum bilgisayarlarının son derece küçük bellek ve zaman bütçeleriyle ne yapabilip ne yapamayacağının incelenmesini seçti. Gerekli karşılaştırmayı yapabilmek için klasik bilgisayarların o şartlardaki becerilerine dair literatürü de hatmetti tabii.

Konu geniş. Düşünülebilecek en sıkı şart olan “sabit bellek, gerçek zaman” kısıtı altındaki durumu özetleyeyim. Bu şartlarda bir kuantum bilgisayarıyla çözebileceğiniz (ve tüm sorulara doğru cevap verilmesi istenen) her problemi babadan kalma bir klasik bilgisayarla da çözebiliyorsunuz. Üstelik eğer makinenizin sıfır hatayla çalışmasını istiyorsanız, kuantum bilgisayarında bu iş için yazmak zorunda olduğunuz program da klasik bilgisayardakinden daha kısa olamıyor.

Kuantumun klasiği dövdüğü örnek

Başarılı bir doktora çalışmasından sonra araştırmalarını yurtdışında sürdüren ve dünyanın dört bir yanından bilimcilerle ortak makaleleri dergileri süsleyen Abuzer, birkaç yıl önce konunun “baba”larından Prof. Andris Ambainis’le birlikte ilk kez bu çok kısıtlı şartlarda (aramızda kullandığımız deyimle) “kuantumun klasiği dövdüğü” bir örnek bulmayı başardı.

Abuzer’le Andris şöyle bir senaryo kurdular:

  • Bilgisayarın her soruya doğru cevap verme zorunluluğu olmasın. Sadece üzerinde anlaşılmış şekil özelliklerine sahip sorular üzerindeki performansına bakılsın. Mesela normalde bir “bölme” programı yazdığınızda kullanıcının “123/41” gibi doğru düzgün bir bölme işlemini anlatan bir soru girmesini beklersiniz. Oysa bazen kullanıcılar “adsd3493jd32/2@£343” gibi saçma sapan şeyler de girebilirler. Öğrencimin yazdığı bir programın böyle saçma girdilere de “GİRDİ HATASI” gibi bir mesaj çıkartarak cevap verebilmesini beklerim. Abuzer’le Andris ise programların bu gibi girdilere yanıtlarının kale alınmamasına karar verdi.
  • Ayrıca, söz konusu bilgisayarı inşa edecek mühendislerin fiziksel değişkenleri (sözgelimi voltajları, parçalar arasındaki açıları, vs.) sonsuz hassasiyette doğrulukla ayarlayabileceği varsayılsın. Bu elbette gerçekçi bir varsayım değil, ama hem klasik, hem kuantum bilgisayarı inşa edecek kişilere aynı hakkı verdiğimiz için bir tarafı kayırmış olmuyoruz.

Yakaryılmaz’la Ambainis, işte bu şartlar altında çözülmesi istenen bir problem tarif ettiler. Problemin ayrıntılarına girmeyeceğim, ama gayet şık bir şekilde ispatladılar ki, bu problemi kuantum bilgisayarlar sadece iki komutluk bir programla sıfır hatayla çözebilirken, klasik bilgisayarlar aynı işi sadece çok, çok uzun bir programla başarabiliyorlar. İki gerçek zamanlı mimari arasında nihayet bir fark bulunmuştu.

Kuramsal bilgisayar bilimi bir yandan fiziğe, diğer yandan matematiğe bağlı temel bir bilim dalı. Meraklı gençlere tavsiye ederim!

Cem Say / [email protected]


*Bu yazı HBT'nin 50. sayısında yayınlanmıştır.

Cem Say

1987'den beri Boğaziçi Üniversitesi Bilgisayar Mühendisliği Bölümü'nde çalışıyor. Çalışmaları Yapay Zeka ve Kuramsal Bilgisayar Bilimi üzerine. Sahte dijital deliller üzerine incelemeleri var. Bilimkurgu, uzay yolculuğu, seçim hileleri ve başka bir çok konuya da meraklı.