Satranç motorları neden bazen iyi hamleleri kaçırıyor (ya da tespit edilmesi sonsuza dek sürüyor)?


17

Satranç motorundan çok daha üstün bir hamle bulamadığım ilk sefer değil, yaptıktan sonra bu hareketleri anlamak biraz zaman alıyor.

Örneğin, 15 ... Bf2aşağıdaki oyunda hareket :

NN - NN, 0-1
1. e4 e5 2. Af3 Piyon sadece kareler Ac6 3. BB5 AF6 4. OO Ag4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Vh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Fc5 + 13. Kh2 Bf1 + 14. Şg3 Rh3 + 15. Kg4 Bf2 16. Kxf1 Kg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

Hareket bir süre motor tarafından fark edilmeden kalır, hareket edene kadar buzdağının geri kalanını görmeye başlamaz.

Her şeyin analiz etmek için ne kadar zaman verdiğinize bağlı olduğunu biliyorum, ancak bazen insanların bu hareketleri bilgisayarlardan daha kısa sürede bulmayı başaramaması kabul edilemez.

  • Satranç motorları neden bazı pozisyonlarda iyi hamleler göremiyor? (Bir zamanlar 'ufuk efekti' hakkında bir şeyler okudum, belki bu ilgili mi?)
  • Dikkate değer başka örnekler var mı? (örneğin bu ünlü bulmaca , bilgisayarların çözmesi biraz zaman alır)

Bu sorular, bu anormalliğe neden olabilecek bazı faktörleri kısmen açıklamak için yararlı bilgiler içerir: Bilgisayar satrancında hangi algoritmalar ve buluşsal yöntemler popülerdir? , Bir Bilgisayar rakibi oynarken kendime daha iyi bir kazanma şansı vermek için hangi durumları yaratmalıyım? , Bilgisayar değerlendirmeleri: Ne kadar güvenilirler?

Notlar: Tuzak Balıkçılık Kutbu olarak bilinir , 3'te bir arkadaşı (ve 7'de bir arkadaşı) özlediğimin farkındayım :(, hareket başına zaman sınırı günlerdi (yazışma satrancı) ama 5-10 dakika sürdü her şeyi hesaplamayı bitirmek için.


1
Çok ilginç. Ortalama gücümde Stockish 15... Bf25 dakika sonra hiç bulamadı .
Tony Ennis

... ve bir sonraki hamlede benzer bir montaj arkadaşı bulmak 7 dakika sürdü.
Tony Ennis

20 d3 bir hatadır. 20 d4 deneyin.
dcaswell

1
Neden bir insanın bilgisayardan daha kısa sürede bir hareket bulması için "kabul edilemez" dilini kullanıyorsunuz? Bu konudaki düşüncelerinizi çözebilir misiniz?
Xonatron

Daha iyi hamleleri kaçırdı. Neden bunu özel olarak seçmelisiniz?
yobamamama

Yanıtlar:


33

Satranç motorları neden bazı pozisyonlarda iyi hamleler göremiyor?

Bunun nedeni, ilk satırda ProbCut ile ileri budama teknikleri (bkz. Http://chessprogramming.wikispaces.com/Pruning ) olarak adlandırılır.

15 ... Bf2 hamlesi sığ derinliklerde budanır, çünkü 16Rxf1 kurbanını içerir, hemen sonra kanıtlarla somut bir şey kazanmadan. Mateneti görmek de zordur, çünkü örneğin 17 ... Ke7 gibi daha fazla 'sessiz' hareket içerir ve evet de motorlar, sadece insanlar budanır gibi uzak sessiz hareketleri görmekte zorluk çekmezler.

Bu somut durumda, motorların iyi hareketleri göremediğini bile söyleyemezsiniz, çünkü 15 ... Rh3h1 çok iyi bir harekettir ve kesinlikle kazanılan bir pozisyona yol açar.

Son olarak, bir motor gücünün her zaman elo-strengh cinsinden ölçüldüğünü ve kazanmanın mutlak en kısa yolunu bulma yeteneğinde olmadığını hatırlamanız gerekir. Bir motorun 8 hamlede veya 25 hamlede kazanması önemli değildir. En kısa galibiyet için çok şey aramak, zaman kaybı anlamına gelir, çünkü çoğu zaman böyle gizli bir hamle yoktur. Ve zaman kaybı motorlara ELO-Rating zarar verir.


1
Güzel cevap, siteye hoş geldiniz!
Andrew

Budama ile tam arama arasındaki ödünleşmeden bahsettiği için +1. 13+ PLY kombinasyonunun hızlı bir şekilde bulunamamasına hiç şaşırmadım . Motor, bu derinlikteki her olasılığı hesaplamaktan daha "yapacak daha iyi şeylere" sahiptir.
Daniel B

2
Genel olarak güzel cevap. "Son fakat en az değil, bir motorun gücünün her zaman elo-strengh cinsinden ölçüldüğünü ve kazanmanın mutlak en kısa yolunu bulma yeteneğinde değil"
ferit

Mükemmel cevap.
Xonatron

12

Bunu Houdini 1.5 (ücretsiz sürüm) ile deniyorum. İlk başta 15 ... Ff2 ilk 5 hamlede görünmez, daha sonra 15 derinliğe ulaştığında # 1 olarak görünür. Dört yaşındaki bilgisayarımda yaklaşık 19 saniye sürüyor, o kadar uzun değil.

Bu yüzden onu tespit etmekte başarısız olmaz, bunun yerine sadece derinliğe 15 ulaşıldığında en iyi hareketi düşünür. Görünüşe göre, sadece 14 kat derin göründüğü sürece, diğer hamleler daha iyidir (aynı zamanda kazanan 15 ... f5 + gibi).

Görünüşe göre 15 ... Bf2, 8 katlı bir eştir (8 kat siyah, 7 beyaz). Ama ilk başta sadece +10 veya daha sonra, +20, sonra 10'da çiftleşir, sonra 8'de çiftleşir.

8 satırdaki montaj ilişkisi:

NN - NN
1. e4 e5 2. Af3 Piyon sadece kareler Ac6 3. BB5 AF6 4. OO Ag4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Vh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Fc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rh4 + 17. Kg5 Ke7 18. Rh1 Rxh1 19. Nc3 Rah8 20. Nd5 + cxd5 21. d3 R8h5 + 22. Kg4 R1h4 #.

Açıkçası Houdini 1.5 15 kat derin düşündüğünde, 15 kat derin olan tüm olası çizgileri dikkate almaz veya 15 katlı derinlik aramasını bitirdiğinde 8'de montaj ilişkisini görür.

Bence bu budama nedeniyle, yeterince ümit vaat etmediklerini düşündüğünde bazı çizgilere bakmayı bırakıyor. Bu şekilde, umut verici hatlarda daha fazla zaman harcayabilir ve programcı, profesyonellerin eksilerini ağır bastığını düşünür. Ama şu anda burada budamak için neye karar verdiğine dair bir cevabım yok (muhtemelen derinlemede 15 milyonda ayrı budama kararı veriyor).

Sessiz hareketlerle ilgili olabilir ... Ke7 ve ... Rah8, siyahın bir parça olduğu bir çizgide kontrol edilmeyen iki yakalama. Bir yerde bu çizgiye bakmaya devam etmenin faydalı olmadığına karar vermesi muhtemeldir. Ancak daha sonra, çizgiyi devam ettirdiğinde ve sondaki montaj ilişkisini bulduğunda oyunu uzatan diğer satırları yapın (18.Rh1 Rxh1 vb.) Ve sonra görünün.

Her neyse, bir bilgisayarın birkaç saniye düşünmesine izin vermenin o kadar işe yaramadığı biliniyor, ancak bir şeyin dibine ulaşmak istiyorsanız, birkaç dakika daha iyi.


Neden budama nedeniyle tahminim 16. Rxf1 "sezgisel olarak" görünüyor büyük beyazın kralı açıkta değil, ama hemen mat ve siyah bir malzeme piyon için bir şövalye aşağı olduğunu. Daha derin bir analiz gerçekleşene kadar (dediğin gibi) bu "fedakarlığın" değeri netleşir.
Joe K

"15 kat" ifadesinin , tüm hareketlere değil, derinlik 15'e doğru bazı hareketlere bakıldığı anlamına geldiğini unutmayın . Yani alacağını waay bile süper bilgisayarda, 4 saniyeden uzun.
BlueRaja - Danny Pflughoeft

2

tüm cevapları ve diğer kaynakları okuduktan sonra, artık bu hareketleri 'kaçırmadıklarını' ya da kaçırmayı seçmediklerini anlıyorum, insanlar onları (nerede / nasıl / ne zaman + yapılacak) aramada belirli bir kalıp takip edecek şekilde programladılar ve daha da önemlisi, kaynakların kaydedilmesi için aramanın ne zaman duraklatılacağı ve daha ümit verici satırlara bakılacağı.

Ancak yeterli zaman verildiğinde, bilgisayar olası tüm kombinasyonları belirli bir derinlikte bitirecektir.

TL; DR

  • S1: Hareketleri asla kaçırmıyorlar, henüz onları bulamadılar
  • S2: kaynak tasarrufu yapmak üzere programlandıkları için zaman alıyorlar ve bazı satırları diğerlerine göre önceliklendirecekler (örneğin, pasif hareketleri olmayan veya sonraki birkaç hamlede malzeme geri kazanamayanlar).

-1

Bence herkes çok daha hızlı bir eşe sahip değil. Houdini 3 ile pozisyonu kontrol ederken, siyah aslında hareket halinde 13'te eşleşir. Bf1 + yerine siyah, Bf2 oynamış olmalı ve 14. d3 bf1 + 15 ile devam ediyor. Bh6 Rxh6 #. Yani, sorunuzun olağandışı bir cevabında, belki bazı motorlar hareketinizi hemen görmedi, ancak Houdini 3 durumunda, çok daha hızlı bir eş buldu.


5
Sorunun tamamını okuduysanız, 3'teki montaj ilişkisinin farkında olduğunu göreceksiniz. Tüm makul yeni motorlar 3'te montaj malzemesini hemen bulacak ve burada sorulan şeyin bir parçası değil.
Halvard
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.