Sinir ağları vs Tic Tac Toe gibi oyunlarda genetik algoritmalar?


9

Şu anda Gomoku oyunu oynamak için bir AI oluşturmakla ilgili bir proje yapıyorum (tic tac toe gibi, ancak 15 * 15 tahtada oynandı ve kazanmak için üst üste 5 tane gerekiyor). Zaten Q öğrenimini kullanarak ve oyun durumlarını / eylemlerini bir tabloda depolayarak mükemmel bir tic tac toe AI uyguladım, ancak 15 * 15 tahta için olası oyun durumları çok büyük hale geliyor.

Benim sorum, bu problem için sinir ağları veya genetik algoritmalar kullanmalı mıyım? Ve daha spesifik olarak, bunu nasıl uygulamalıyım?


2
AI'ya hoş geldiniz! Mükemmel soru imho.
DukeZhou

Yanıtlar:


7

Gomoku için, sinir ağlarını veya genetik algoritmayı kullanmak biraz zaman alabilir ve her ikisi de biraz zaman alır ve daha sık değil, istediğiniz şekilde gitmeyin. Gomoku oyun ağacı oldukça büyüktür, ancak eşlemenin aksine minimax, oyun ağacı budaması ve iyi bir sezgisel işlev (yarım ve tam 2s, 3s, 4s, ... vb. Sayma içerir) ile iyi bir AI alabilirsiniz. tüm alanı kapatalım.

Alfa beta budama ve minimax hakkında bilginiz yoksa bkz. Https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm

Gerçekten sinir ağları veya genetik algoritmalar kullanmak istiyorsanız, öğrenme deneyimi için yapabilirsiniz. Sinir ağları ile ilgili olarak, bunu yapmanın bir yolu şudur:

  • Bir kart durum girişi (boş, siyah, beyaz için 0,1,2 dizisi) alan ve kart durumunun 'iyilik' değerini çıkaran sezgisel bir işlev tanımlayın. Sinir ağı sezgisel işlevimizdir.
  • Bu oyunda hamlelerin optimum olduğunu varsayarsak, şu anki en iyi hamle (mevcut parametrelerinizle) ve verilerinizin hangi hamlenin söylediği arasındaki farktan yararlanın. Hata fonksiyonumuzu bu şekilde tanımlıyoruz! Böylece bu farkı en aza indiriyorsunuz, böylece sinir ağınızdaki en güçlü hareketin söylediği şey, oyun verilerinizin en güçlü olduğu şeydir. (Bu hata fonksiyonunun optimizasyonu, backpagagation veya genetik algoritma ile yapılabilir).
  • İdeal olarak, bu noktaya kadar artık ('güçlü') sinir ağı tabanlı değerlendirme fonksiyonunuzu, sabit kodlu buluşsal yöntemler yerine oyun ağacı taşıma değerlendirmeleriniz için kullanabilirsiniz.

Tabii ki bu sadece bir yol ve önce oyun verilerini bulmanız gerekecek.

Yukarıda belirtildiği gibi bir sinir ağında parametre optimizasyonu veya oyun ağacı arama gibi genetik algoritma uygulayan bir yan not, bu nedenle sorun ayarını nasıl tanımladığınızdan emin olduğunuzdan emin olun! Aynı şey, bir sinir ağını uygulamak için alternatif yollar için de geçerlidir.

Son olarak, gomuku'nun çözüldüğünü bilmek yardımcı olur. Başkalarının düşünce ve fikirleri için /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe adresine bakın .


2
Çözülmüş bir oyun olarak gomoku hakkında güzel bir nokta. Bu, AI'nın gücünü doğrulamayı kolaylaştırır (yani oyunu çözer ve mükemmel oyunu ifade eder mi, yoksa AlphaGo durumunda olduğu gibi rakipten daha iyi oynuyor mu?)
DukeZhou
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.