Minimax Algoritması

Uygulama alanı oyun ağaçlarıdır. Kaybetme olasılığını minimuma indirirken kazanma potansiyelini maksimuma çıkarır. İki oyuncununda tüm olası hamlelerini içeren ağaç üzerinde çalışır. Algoritmanın performansı O(bn) dir. Yani ağacın bütün düğümlerini kontrol eder. Her zaman max ile başlanır.

Max–> Bizim olası hamlelerimiz

Min–> Rakibin olası hamleleri

ALGORİTMANIN PSEUDO KODU

fonksiyon maxkök(durum,derinlik)
if oyunbittiyse OR derinlik<= 0

RETURN oyunsonucu

END IF

ELSE

max=-sonsuz

deger=minkök(durum,derinlik-1)

IF max<=deger

max=deger

END IF

END ELSE

RETURN max

END fonksiyon

fonksiyon minkök(durum,derinlik)

if oyunbittiyse OR derinlik<= 0

RETURN oyunsonucu

END IF

ELSE

min=+sonsuz

deger=maxkök(durum,derinlik-1)

IF min>=deger

min=deger

END IF

END ELSE

RETURN min

END fonksiyon

Algoritmayı ağaç üzerinde deneyelim:

Ekran Alıntısı

Kök için max değere bakıyoruz. Çünkü max la başlamamız gerekiyor. Daha sonraki adımımızda min değere öncelik vererek yolumuza devam ederiz.

Ekran Alıntısı

Minimax algoritmasına göre izlenecek yollar A-B-D-I

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

Regex Nedir? Nasıl Kullanılır?

Regex(Regular Expression) yani düzenli ifadeler, metinlerde aranan bir tümceyi kolayca bulmamızı sağlayan bir çeşit algoritmadır. Yani …