27 Kas 2011

Eğer uzaylılar varsa...

Atilla Aktuna

4.5×10397 ve 9.3×10567 sayıları size ne ifade ediyor bilmiyorum, ancak birkaç karşılaştırma yapmak gerekirse; fizikçilerin hesapları görünür evrendeki proton sayısının 1090 olduğuna işaret ediyor, bir googol (google değil) 10100 olarak tanımlanıyor ve satranç oyununda oluşabilecek pozisyonların sayısının 1043 ve 1050 arasında olduğu tahmin ediliyor. İlk bahsettiğimiz iki sayı da karşılaştırılan sayılardan çok daha büyük.

Bahsettiğimiz sayıların ilki bir Go oyununda esir etme olmaması durumunda, ikincisi ise esir etmenin dahil olduğu durumdaki olası oyun sayısını veriyor.* Bu da bize hem konumuzu, hem de neden aynı Go oyununun iki defa oynanamayabileceğini matematiksel olarak açıklıyor.

Go, 4000 yıllık bir oyun. Kuralları son derece kolay öğrenilir olmasına karşın –yarım saat yeterli–, ustalaşmak bir yaşam boyu sürüyor. Muhtelif kaynaklar gonun Çinli İmparator Yao (M.Ö. 2337 - 2258)’nun zeka özürlü oğlunun eğitiminde kullanmak üzere icat ettiğini yazıyor. Bir başka iddia da; Çinli generallerin harita üzerinde savaş stratejilerini taşlar vasıtasıyla kurdukları. Go, yüzyıllardır Uzakdoğu’da oynanmasına karşın, oyunun batıda tanınması sadece 100 – 150 yıla dayanıyor.

Go’da seviyeler, kyu ve dan seviyeleri olarak ikiye ayrılır. İlk grup 30 kyu’dan başlar ve 1 kyu’ya kadar iner. Acemi seviyeleri olarak adlandırılabilecek bu seviyelerden sonra, dan seviyeleri yani usta seviyeleri yer alır ki, onlar da 1 dan’dan 9 dan’a kadar uzanır. Profesyonel oyuncularda kyu seviyeleri bulunmaz. (Profesyonel ve amatör seviyeler de birbirinden ayrılır. Örneklemek gerekirse 1 dan profesyonel bir oyuncu 5-6 dan amatör bir oyuncuya denktir denebilir).

Go tahtası
Günümüzde go için yazılmış bilgisayar programları, 10 kyu seviyelerindedir. Bu da kabaca 1 kyu amatör bir oyuncunun 10 avans vererek bu programları yenebileceğini göstermektedir. Peki, satrançta bilgisayar programları ve sistemleri (Deep Blue) dünyanın en iyi satranççısını yenebilirken, go’da bu neden mümkün olamamaktadır? Bunun yanıtı aslında biraz da yazının başında bahsettiğimiz iki büyük sayı ile ilgilidir. Sayıların bu kadar büyük olmasının ana nedeni, Go’nun satranca göre çok daha büyük bir alanda oynanmasıdır (Satranç 8×8’lik bir tahtada oynanırken, Go 19×19’luk bir alana yayılır).

Deep Blue
Satranç programlarının temel algoritması ağaç araması (tree search) ve değerlendirme fonksiyonu’na (evaluation function) dayanır. Ağaç araması olası tüm hamleleri tarar ve hamle değerlendirme fonksiyonu’na uygun olarak seçilir. Bu da bilgisayarın bütün olasılıkları tek tek denemesi (brute force) anlamına gelir ki, çok geniş ağaç aramaları için, çok hızlı bilgisayarlar gerekmektedir. (Deep Blue saniyede 300.000.000 hamleyi kontrol edebilmektedir.) Bunlara ek olarak, daha önceden tanımlanmış, açılış ve oyun sonu sözlükleri de kullanmaktadır bu programlar.

Bu noktada, Go oyununda benzer bir algoritmayı kullanmak tabii ki mümkündür, ancak bunun etkin bir yol olmayacağını -olasılıkların fazlalığından ötürü- söyleyebiliriz. Yapılmış kaba bir hesapla, “go oyunu için kullanılacak bir değerlendirme fonksiyonu satranca göre iyi ihtimalle 100 kez daha yavaş olacak ve ağaç aramasında dallanma faktörü her bir hamlede satranca göre 4 kat daha büyük olacaktır. Satranç gereksinimlerine yeten bir bilgisayarla ve yukarıdaki kriterler de gözönüne alınarak çözüm arandığında gereken süre satranç için gereken sürenin 1027 katı olarak hesaplanmıştır. Dahası, Moore Yasası’na göre bilgisayarların 18 ayda bir gücünün iki katına çıktığı kabul edilirse, satranç programlama teknikleri ile programlanmış bir Go programı ancak 22. yüzyılda aynı seviyeye ulaşacaktır.”

Bu nedenlerden ötürü Go oyunu programlarının algoritmaları günümüzde sezgisel, (heuristics), seçici arama (selective search) ve benzer pozisyonların eşleştirilmesine (pattern matching) dayanmaktadır. 2002 yılında, bilgisayarda, 5×5 boyutlarında bir tahta için tüm olasılıklar çözülmüş ve siyahın başlaması durumunda oyunu kazanacağı ortaya çıkmıştır (MIGOS – Mini Go Solver). Bu bağlamda, katedilmesi gereken yolun ne kadar taşlı ve engebeli olduğu ortada.

Son olarak, sözü bir satranç Dünya Şampiyonu olan Emanuel Lasker’e bırakalım: "Eğer uzaylılar varsa, muhtemelen go oynuyorlardır!"


Editör'ün notu: Bu makale 2006 yılında yazılmıştır. Bilgisayarların gelişim hızı dikkate alındığında, bilgisayarların go oynamasına ilişkin yukarıda değinilen bilgilerin bir kısmı (örneğin go oynayan bilgisayarların seviyesi) elbette değişmiştir. Ancak, makalede belirtilen ve bilgisayarların halen profesyonel oyuncuları eşit karşılaşmalarda yenememesi gibi çoğu nokta halen geçerliliğini korumaktadır.

2 yorum:

  1. Editörün notuna katılmakla beraber; 2011 yılında go oynayan bilgisayarların seviyesi hakkında bir ek not düşmek istiyorum. Şu anda Kseido go sunucusunda(KGS) amatör 5d seviyesinde oynayan botlar bulunuyor. 2008 yılında MoGo yazılımı, 800 işlemcili ve toplam 15tf hızlı bir süper bilgisayar yardımı ile 9 handikap alarak 19luk tahtada Myungwan Kim (8p)'i 1,5 puanla yenmeyi başardı. Yani go yazılımlarının seviyesi doğal olarak gün geçtikçe artıyor.

    Fakat makalede belirtilen muazzam büyüklükteki olasılık sayısı nedeniyle, bir go yazılımının kaba kuvvet(brute force) ile seviyesini arttırması mümkün değil. Go yazılımlarında gerçek ilerlemenin, devrimsel nitelikte bir yapay zeka algoritmasının bulunmasıyla veya belkide şu anki mevcut teorilerin(genetik algoritma gibi) başarılı bir uygulamasıyla mümkün olacağını düşünüyorum. Bu iş, yazılımcıların yanı sıra matematikçiler için de tam bir meydan okuma. Belki de bu sayede önümüzdeki 20 sene içerisinde yapay zeka konusunda büyük ilerlemelere rastlayacağız.

    YanıtlaSil
  2. Öncelikle yazarın ve derleyenin eline sağlık. Fakat şunu belirtmek isterim; genel kanı 'uzaylılar' ile ilgili söylenen cümleyi Emanuel Lasker'in değil, Edward Lasker'in söylediği yönündedir. Kendisi dünya şampiyonu olmasa da iyi bir satranç oyuncusu ve aynı zamanda da Go oyuncusudur. Go'yu anlatan da bir kitabı vardır.

    YanıtlaSil