Yapay-Zeka.Org
   [ Ana Sayfa ]   [ Ansiklopedi ]   [ Kitaplar ]   [ Makaleler ]   [ Dosya Arşivi ]   [ Sık Sorulanlar ]   [ Giriş ]   [ Üye ol ]  
Sitede Ara
Web'de Ara
"Bilirken susmak, bilmezken söylemek kadar kötüdür." Platon
Destekliyoruz:


[Yapay Zeka Ansiklopedisi :: Bu sayfa]  

Oyunlarda Zeka (Game Intelligence)

Bilgisayarların oyun oynama kabiliyetlerinin yükseltilmesi yapay zekanın katkıda bulunduğu bir alandır. Mesela bir dövüş oyununda, rakibin zeki özellikler göstermesi oynayan insan için daha uzun süre oyundan zevk alması anlamına gelir. Quake2 ve HalfLife gibi oyunlarda, yapay zeka teknikleri kullanılmıştır. Oyunlar eğlence amacının yanında, eğitime de hizmet edebilirler. Mesela savaş alanının bir oyun şeklinde gerçekleştirimi, askeriyede eğitim amaçlı kullanılabilir.

Özellikle satranç oyununun bu kısımda özel bir yeri vardır. Yapay zekanın ilk yıllarından beri, bilgisayarların usta derecesinde satranç oynaması hedeflenmiştir. Bu alan zeka gösterimi için, hergün karşılaşılan problemlerin aksine olarak, açıkça formüle edilmiş kurallar içeren kısıtlı bir alandı ve bu yüzden bilgisayarda gerçekleştirilmesi nispeten kolaydı. kinci olarak satranç, insan zekası için güzel bir örnek teşkil ediyordu. Satrancın bu kolay gerçekleştirim sebebi, aynı zamanda satranç oynayan bilgisayarlar için zeki kelimesinin kullanılmasını engellemiştir. Çünkü insanlar genellikle açık (kuralları kesin olarak belli olmayan) problemlerle karşılaşmakta ve bunları çözmektedirler.

Bilgisayarın satranç oynama kabiliyeti, ilerleyen yıllarda oldukça arttırılmıştır. 1997 yılında IBM firmasının Derin Mavi (Deep Blue) isimli bilgisayarı, dünya satranç şampiyonu Garry Kasparov’u yenerek büyük yankı uyandırmıştır.

Peki, bilgisayar nasıl satranç, dama gibi oyunları oynamaktadır?

Bunu yapabilmek için bilgisayar, oyunda gerçekleşebilecek tüm olası durumları gösteren bir ağaç yapısı oluşturur. Bu ağaç yapı üzerinde en elverişli duruma giden yolu (hamleleri) seçerek hareketini yapar. Bu ağaca arama ağacı (search tree) diyoruz.

Mesela Nim oyununun biraz değiştirilmiş bir türüne bakalım. Ortaya sayısı önceden belli olan kibritler (mesela 7 adet) konulur. Oyuncular sırayla 1 ila 3 arası kibrit çöpünü yerden alabilirler. En son çöpü alan oyunu kazanır. Bu oyun için arama ağacının bilgisayar tarafından nasıl oluşturulacağına bakalım:

Bilgisayarın ağaç üzerinde, insanın hareketlerine göre en elverişli durumu seçtiğine dikkat edin. Aşağıda gösterim için sadece belli dallar ve ağaç derinliği olarak 5 seviye gösterilmiştir.

Fakat bütün arama ağacının bir seferde oluşturulup incelenmesi mümkün olmayabilir. Bunun sebebi ağacın çok büyük olması dolayısıyla zaman ve bellek ihtiyacı olarak ağacı oluşturmak ve incelemenin makul sınırları aşmasıdır. Mesela satrançta, oyunun başlangıcında 20 değişik açılış (2 atla 4, 8 piyonla 16 değişik hareket) yapılabilir. Bilgisayar, ağacın ilk seviye dallarına bu hareketleri ve sonraki seviyeye bunlara karşılık rakibin yapabileceği hareketleri ve hakeza.. koyarak olası durumlar ağacını oluşturur. Bu ağaç dalları üzerinde olabildiğince derine giderek en elverişli durumu seçmeye çalışır. Fakat satranç oyunu ortalama 40 tam hamle (40 bir taraf ve 40 da diğer taraf) sürer. Ve yine oyun boyunca her durumda ortalama 30 değişik hareket yapılabilir. Buna göre bir satranç arama ağacının boyu yaklaşık 10120 olası hareketten (80 seviye boyunca 30 olası durum veya 80 tane 30’un yan yana çarpımı) oluşacaktır. Her bir durumun incelenmesi 10ns sürdüğünü kabul edersek, bu ağacın oluşturulması ve incelenmesi için kainatın ömrü yetmeyecektir. Bu yüzden satranç oyununda arama ağacının sadece bir kısmı incelenecektir.

Arama ağacının tüm durumlarını inceleyen arama yöntemlerine kör arama yöntemleri diyoruz. Bu yöntemler arama işleminde rehberlik edecek bir bilgiyi kullanmazlar. Bütün durumları teker teker incelerler.

Yapılabilecek en iyi şey incelenmesi gereken olası durumların sayısını azaltmaktır. Bu yöntemlere sezgisel (heuristics) yöntemler diyoruz. Sezgisel yöntem, arama ağacının incelenmesi gereken bölümünü sınırlayan yöntem, strateji ve kuralların kullanımıdır. Yani arama işleminde rehberlik edecek bilgiler kullanılır. Mesela satranç için, hiç kimse tarafından makul bulunmayacak hareketlerin arama ağacı üzerinde incelenmesi önlenebilir. Mesela stanbul’dan Ankara’ya en kısa yolu bulacak bir programda kullanılan arama ağacında, bütün alternatiflerin incelenmesi (mevcut yol bilgisinin ne kadar ayrıntılı olduğuna göre) çok uzun sürebilir. Bunun yerine yol ağında, batıya giden yolları incelememek bir sezgisel yöntemdir.

Sadece doğuya gidenleri incelemek başka bir sezgisel yöntemdir. Görüldüğü gibi, sezgisel yöntemlerde en iyi sonuç garanti edilmez.

Sezgisel yöntemler arama ağacının çok büyük olduğu durumlarda işimizi çok kolaylaştırır. Arama ağaçları yardımıyla labirent veya kelime bulmacaları, başlangıç ve hedef şehirler arası (birden çok alternatif yol olduğu durumlarda) en kısa yol problemleri rahatlıkla çözülebilir. Arama ağaçları ve sezgisel yöntemler, oyun oynama konusunun yanında, yapay zekanın diğer dallarında da kullanılırlar.

M. Selçuk KARACA

www.cengaver.net

Kaynaklar:

  • http://knol.google.com/k/ryan-meuth/a-survey-of-neural-computation-on
  • http://delphi.about.com/od/gameprogramming/a/aigamesample.htm
  • Son değişme: 06.09.08 yazan
    Yapay-Zeka.org sayfalarında bulunan bilgi ve belgelerin, kaynak gösterilmek koşulu ile GÖBL çerçevesinde kullanılması serbesttir. XOOPS'a teşekkürler.