Bu yazıda, önceki yazılarımdan biraz daha farklı olarak, daha çok geleceğin bilgisayar bilimlerini ve bilgi teknolojilerini ilgilendiren bir bilim konusu olan kuantum bilgisayarlardan ve kuantum hesaplamadan bahsedeceğim. Yazının herkes tarafından anlaşılabilmesi için mümkün olduğu kadar az düzeyde teknik terimler ve kavramlar kullanarak bunu yapmaya çalışacağım.
Kuantum bilgisayarı, fiziğin kuantum mekaniksel prensiplerini kullanan ve bu sayede kuantum hesaplama yapan bir hesaplama modelidir. Kuantum hesaplamanın ne olduğunu söylemeden önce bu tip hesaplama yapan bilgisayarların dünyada sayılı büyük şirketler tarafından kullanıldığını söyleyelim. Kuantum bilgisayarı günümüzde kullandığımız bilgisayar modelinden çok daha farklıdır. Kuantum bilgisayarların dış elektromanyetik dalgalardan korunması ve bulunduğu ortamın sıcaklığının mutlak 0 Kelvin dereceye çok yakın bir seviyede olması lazımdır. Kısacası, atom altı parçacıkların bozulmaması ve bir değişime uğramaması için hesaplama yapılan ortamın kuantum-fiziksel şartlara elverişli olması lazımdır. Durum böyleyken kuantum bilgisayarların evlerimize gelmesi 100 yıl, 200 yıl, belki de çok daha fazla zaman alabilir.
Günümüzde kullanılan dijital bilgisayarlarda enformasyon, “bit” dediğimiz bir birimle ölçülür. Bit dediğimiz şey ya 0 ya da 1 değeri alabilen şeydir. Bunların elektronikteki karşılığı “sinyal yok” ve sinyal var” demektir. Aslında herhangi bir ikili durumu temsil edebilen bir düzenek bir tane “bit”i temsil edebilir. Biz kolaylık açısından bu durumları 0 ve 1 olarak düşünelim. Bir bit ya 0’dır ya da 1’dir. 2 bitlik bir sistem 00, 01, 10, 11 durumlarını barındırır. 3 bitlik bir sistem, 000, 001, 010, 011, 100, 101, 110, 111 durumlarını barındırır. İkili sayı sistemini düşündüğümüz zaman n bitlik bir sistem tane durum barındırır. Peki dijital bilgisayarlarda hesaplama nasıl yapılır? Aslında hesaplama dediğimiz işlem, bitlerin dönüştürülmesinden başka bir şey değildir. Bir f fonksiyonu düşünürsek bu fonksiyon a girdisini aldığında b çıktısını veriyorsa (bunu f (a)=b olarak gösterelim) elimizdeki bilgisayar bu fonksiyonu temsil eden algoritma vasıtasıyla a’dan b’yi hesaplamış olur.
Bir dijital bilgisayar ile kuantum bilgisayarın en önemli farkı dijital bilgisayarda “bit” dediğimiz birim kullanılırken kuantum bilgisayarda “qubit” dediğimiz bir bilgi birimi kullanılmaktadır. Qubit, kuantum mekaniğinin çeşitli avantajlarından ve prensiplerinden yararlanan bir kuantum enformasyon birimidir. Bir qubit sadece 0 durumunda olabilir, sadece 1 durumunda olabilir, ya da aynı anda hem 0 hem 1 durumlarında olabilir. Aynı anda! Buna kuantum mekaniğinde süperpose prensibi denilir. Klasik fizikten farklı olan en önemli özelliklerden biri kuantum fiziğinde atom altı bir parçacığın hem burada hem orada olabilmesidir. Ya da bir ışık hüzmesinin, yani fotonun, aynı anda hem yukarı yönde hem de aşağı yönde bir polarizasyona sahip olmasıdır. Süperpose kavramına ilişkin bunun gibi daha birçok örnek verilebilir. Demek ki bir qubit, bitten farklı olarak aynı anda hem 0 hem 1 olabiliyor. Ancak bunu korumakla ilgili ufak bir sorun var. Atom altı bir parçacığın bu süperpose hali, gözlem yaptığımız anda fiziğin klasik mekanik kanunlarına dönüyor. Yani bir qubit’in süperpose olma durumu biz gözlem yapana kadardır. Gözlem yaptığımız andan itibaren o qubit ya 0 ya da 1 oluyor. Gözlem yapılmadıkça bir qubit süperpose halde bulunabiliyor ancak gözlem yaptıktan sonra sistem bozuluyor ve qubit bundan sonra normal bir klasik bit gibi açığa çıkıyor.
Doğal olarak bir qubit’in süperpoze halde olması bize olağanüstü bir hesaplama gücü katıyor. Peki, gözlem yaptığımız bir qubit neye göre sonunda 0 ya da 1 olacağına karar veriyor? Kuantum sistemlerinin matematiksel modellemesi kompleks sayıları (karmaşık sayılar) kullanır. Örneğin 5 + 2i gibi ya da 1 – 3i gibi. Hatırlayacak olursak c = a + bi biçimindeki sayılara kompleks sayılar diyoruz.
Bir qubit için 0 durumunu olarak gösterelim 1 durumunu ise olarak gösterelim. Tek qubit’li bir quantum sisteminin genel durumu
|ψ⟩ = c0 |0⟩ + c1 |1⟩
olarak ifade edilir, |c0|^2 + |c1|^2 = 1 olmak koşuluyla. Burada |c0| ifadesi kompleks sayının uzunluğunu belirtir ve c = a + bi ise Pisagor Teoremi’nden |c| = √(a^2 + b^2) olarak tanımlanır. Yukarıdaki ifadede ci katsayısına genlik (amplitude) denir. Bu ifade şunu demektedir: |ψ⟩ qubit’i süperpose haldedir ve eğer gözlem yapılırsa bu qubit |c0|^2 olasılıkla |0⟩ durumuna geçer, |c1|^2 olasılıkla |1⟩ durumuna geçer. Buradan şu sonuç çıkıyor: Kuantum hesaplama sistemleri klasik bilgisayarlar gibi deterministik değil olasılıksal sistemlerdir.
Neden kompleks sayılar? Fotonlar dalgavari şekilde yol aldığı için kuantum fiziğinde dalgaların birbirine müdahalesi söz konusudur. Basit bir örnek verelim. Örneğin, bir havuza bir cisim düşürdüğümüz zaman cismin oluşturacağı dalga suyun yüzeyinde yayılır. Aynı anda havuzun iki farklı yerine iki cisim düşürdüğümüzde bu iki cismin dalgaları birbirlerine çarptığı zaman dalganın yönüne bağlı olarak bunlar ya birbirlerini güçlendirirler ya da birbirlerini götürürler. Bu durum müdahale (interference) olarak nitelendirilir. Kompleks sayılar birbirleriyle toplandığı zaman qubit’lerin genlikleri birbirlerini sıfırlayabilir ya da tam tersine kuvvetlendirebilir. Dalgalar fiziğindeki bu olgunun modellenmesi kompleks sayılarla mümkün olduğundan kuantum hesaplamada genlikler birer kompleks sayı olarak ele alınır.
Nasıl ki tek bit hafızaya sahip bilgisayar hiçbir işimize yaramazsa tek qubit’li kuantum bilgisayarlar da pek bir işe yaramayabilir. 2 qubit’li 3 qubit’li ya da n qubit’li sistemleri de düşünebiliriz. Örneğin, 2 qubit’li bir sistem düşünelim. Bu sistemdeki durumlar |00⟩, |01⟩, |10⟩, |11⟩ olur. O halde 2 qubitli bir sistemin durumu
|ψ⟩ = c0 |00⟩ + c1 |01⟩ + c2 |10⟩ + c3 |11⟩
Şeklinde olur. |xy⟩ ifadesindeki x, sistemdeki ilk qubit’in durumunu, y ise ikinci qubit’in durumunu gösterir.
Şimdi iki qubit’li bir
|B⟩ = c0 |00⟩ + c1 |11⟩
kuantum sistemini ele alalım. Bu sistemde herhangi bir qubit’i gözlemlediğimiz zaman dikkat edersek aslında diğer qubit’i de otomatik olarak gözlemlemiş oluyoruz. Yani iki qubit birbirinden ayrılmaz bir bütün oluyor. Qubit’lerin bu örnekteki gibi ayrılmaz olduğu durumlara kuantum mekaniğinde dolaşıklık (entanglement) özelliği deniliyor.
O halde kuantum mekaniğini klasik mekanikten ayıran üç özellik, atom altı parçacıkların; süperpoze olabilmesi, birbirlerinin genliklerine müdahale edebilmesi ve dolaşıklık özelliklerinin olmasıdır.
Bir kuantum hesaplamasının nasıl yapıldığını henüz söylemedik. Kuantum hesaplaması, verilen bir qubit üzerinde birimsel (unitary) dediğimiz bir özelliğe sahip dönüşüm fonksiyonlarıyla yapılır. Birimsel fonksiyonlarla yapılmasının sebebi herhangi bir kuantum hesaplamanın aşağıdaki özelliklere sahip olmasıdır.
- Hesaplamaların geri çevrilebilir (reversible) olması. Yani çıktıdan tekrar orijinal girdiyi elde edebilme imkanımızın olması. Kuantum işlemleri geri çevrilebilir niteliktedir. Fonksiyonun çıktısı tekrar aynı fonksiyona sokulduğunda orijinal girdiyi elde ederiz. Örneğin, klasik hesaplamadan bildiğimiz bir bit için değilleme fonksiyonunu düşünelim. Bu fonksiyona NOT diyelim. NOT(0)=1 olarak, NOT(1)=0 olarak tanımlı olsun. Şimdi biliyoruz ki NOT fonksiyonunun çıktısını girdi olarak tekrar verdiğimizde orijinal girdiyi elde ederiz. Örneğin, NOT(NOT(0))=0.
- Kuantum sisteminde yapılan hesaplamalar boyunca sistemin geometrik yapısının koruması.
İşte bu nedenden dolayı kuantum hesaplamalar birimsel dönüşümler kullanır. Eğer U, herhangi bir birimsel dönüşümü gösteriyorsa ve eğer U fonksiyonu sistemin t anındaki |φ⟩ durumu üzerinde uygulanıyorsa, U|φ⟩ işleminin sonucu yeni bir durum belirler ve bu da sistemin t+1 anındaki durumunu belirtir.
Kuantum hesaplamanın klasik hesaplamaya göre daha güçlü olduğunu anlatmak için şimdi şöyle bir problem düşünelim. Bu probleme Deutsch’s problem denmiştir. f: {0,1} → {0,1} bir fonksiyon olsun. Eğer bu fonksiyon her x ∈ {0,1} için f(x) = 0, veya her x için f(x) = 1 ise f fonksiyonuna sabit fonksiyon diyelim. Aksi halde dengeli fonksiyon diyelim. Problem, f fonksiyonunun dengeli mi yoksa sabit mi olduğunu bulmak. Klasik anlayışla f fonksiyonunun özelliğini bulmak için her iki değere de (hem f(0) hem de f(1)’e) bakmamız lazım. Daha sonra iki değeri birbiriyle karşılaştırırız ve fonksiyonun dengeli mi yoksa sabit mi olduğunu anlarız. O halde klasik hesaplamada 2 sorgulama yapmamız gerek. Kuantum hesaplamada sadece 1 sorgulama ile fonksiyonun özelliğini bulabiliriz! Bunun kuantum algoritmasını burada vermek yazının maksadı dışında kalacaktır. Ancak meraklı okurlar internette birçok kaynağa erişebilir.
Kuantum hesaplamada, belirttiğimiz kuantum mekaniksel prensiplerden faydalanılarak ve birimsel dönüşüm fonksiyonlarıyla sistemin durumunun evrilmesiyle beraber en sonunda gözlem (ölçüm) yapılıp istenilen netice genlik olasılığına göre elde edilir.
Tabii kuantum bilgisayarların prensiplerini daha detaylı olarak açıklamak için burada anlattığımızdan çok daha teknik ve kapsamlı bir anlatım gerekir. Ancak kuantum hesaplamanın en temel çalışma prensiplerini ve klasik hesaplamadan farkını şimdilik bu kadar açıklamış olalım.
Yazar: Ahmet Çevik
Düşünbil Portal’da yayımlanan, Düşünbil yazar ve çevirmenlerine ait herhangi bir yazı, çeviri, makale ve haber izin alınmadan basılı olarak ya da internet ortamında kullanılamaz, çoğaltılamaz, yayınlanamaz. İzinsiz kullananlar hakkında hukuki yollara başvurulacaktır. Düşünbil Portal’da yayımlanan tüm özgün yazıların içeriğinden yazarları sorumludur.