Satranç motoru programlamasına alternatif yaklaşımlar


14

Anladığım kadarıyla, kabaca söylemek gerekirse, satranç motorları şu şekilde çalışır:

  1. derinliğe kadar tüm olası varyasyonları (oyun ağacı) hesaplamak
  2. son pozisyonun bazı kriterlere göre değerlendirilmesi (malzeme, parça faaliyeti ...)
  3. bu değerlendirmeye dayanarak en iyi hamle için karar verin

Verimli bir motora sahip olmak için belirli çizgileri budamak, derinliği sınırlamak vb. ama bu benim sorum değil.

Soru: Bu şemayı takip etmeyen (mutlaka güçlü değil, rastgele değil) bir satranç motorunu programlamak için alternatif girişimler var mı?


Botvinnik, bilgisayarın sadece en iyi aday hamlesini aramasını sağlayarak kök hareketini budamaya çalıştı. Bunun başarılı bir girişimi olmadı ve satranç bunun için daha iyi.
Fred Knight

Yanıtlar:


13

Bilgisayar satrancının ilk yıllarında, insanlar aslında bilgisayar satrancını insanlarla olduğu gibi öğretmeye çalışmış, sağlıklı piyon yapısı veya inisiyatif gibi stratejik kavramları açıklamışlardır. Açıkladığınız yöntem çok daha başarılı olduğu için bu girişim yakında terk edildi.

Son zamanlarda, bir motorun Derin Öğrenme (muhtemelen Google'ın Go AI'sının başarısı ile teşvik edilir) aracılığıyla satranç öğretmesine izin vermek için başka bir girişim oldu . Bağlantı verdiğim makaleye göre, oldukça başarılıydılar ve IM gücüne ulaşmayı başardılar.


1
Anladığım kadarıyla, Alpha Go tam olarak tarif edilen OP gibi çalışır ve sadece (2) 'den gelen eval fonksiyonu Derin Öğrenmeye dayanır / yaratılır. Diğer cevap biraz katılıyor gibi görünüyor.
Hermann Döppes

According to the article I linked to, they were quite successful and managed to reach IM strengthancak orijinal makaleyi okuyacaksanız, makalenin başarıyı çok abarttığını göreceksiniz.
Salvador Dali

1
@ HermannDöppes No, AlphaGo, Monte-Carlo ağaç aramasına dayanmaktadır.
HelloWorld

3

@Glorfindel yanlış değil ama satranca derin öğrenme yaklaşımı, satranç programlamasında parametre ayarlama için gerçekten süslü bir terimdir.

Derin öğrenme, bir satranç motorunun, genellikle bir programcı tarafından elle yazılmış bir değerlendirme fonksiyonu öğrenmesini sağlar. Oyun sırasında normal bir satranç motoru gibi çalışır.

Diğer olasılıklar:

  • GPU satranç programlama
  • Monte-Carlo ağaç arama

Cevabınızın çoğu [Glorfindel'in cevabı] ( chess.stackexchange.com/a/16293/2789) altındaki bir yorum olmalıdır . Soruyu gerçekten ele alan kısım, cevap için neredeyse yeterli olmayan sadece yedi kelimeden oluşuyor. , "GPU satranç programlama" başka türlü kullanabileceğiniz algoritmayı paralel hale getirmenin bir yoludur, bu yüzden sorunun aradığı anlamda gerçekten bir "yaklaşım" olduğunu düşünmüyorum, daha ziyade bu sadece bir uygulama yöntemidir.
David Richerby

-2

Kesinlikle! Eğer gerçekten demek istiyorsan .... "teorik olarak, bir satranç motorunu kodlamak için başka yöntemler var mı?" ... O zaman, evet !!

Örneğin .... satrançta mümkün olan her pozisyonun bir kopyasını (çok sayıda, biliyorum) saklayabilir ve her biri için bir değerlendirme yapabiliriz. Daha sonra, verilen herhangi bir sorunun cevabı (yani, "X konumunda beyaz için en iyi hamle"), sadece o panoya bakarak hemen bilinecektir. Bilgisayar donanımının mevcut durumu bunun bir anlamı olacak mı? Hayır. Ama bunu sormadın.

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.