Derinlik (kat sayısı) yeterince yüksek olduğunda hala önemli mi?


10

Bu gerçek değil, sadece bunun olduğunu hayal edin.

Computer Asüper bilgisayar. 20 saniye içinde 30 kat derinlik hesaplayabilir.

Computer Bsüper bilgisayar. 20 saniye içinde 15 kat derinlik hesaplayabilir.

Birbirlerine karşı satranç oynarlar.

Bu 15 derinlik gerçekten önemli mi? Sanırım bu 15 derinlik içinde bir şahmattan kaçmanın ya da önemli bir parçanın yakalanmasının trilyonlarca yolu olabilir. Tabii, Computer Adaha fazlasını biliyor. Fakat Computer Bbence, kendini gerçekten iyi savunacak kadar geleceği de tahmin edebiliyor.


Bu durumda, "derinlik" ile kat sayısını mı kastediyorsunuz? Şerefe.
Rauan Sagit

Evet, yani katlar.
RikTelner

Yanıtlar:


13

Evet, bu 15 derinlik çok önemli.

Kasparov'un Ölümsüz Oyununda Topalov'a karşı olan bu pozisyonu düşünün .

Kasparov - Topalov

Bu konumu birkaç motorla test ettim. Bazı motorlar, derinlik 15 at, o saptayamamış 24 ... cxd4 bir olduğunu kaybetme hareket ve kazanan sandım. Aynı motorlar, daha derinlerde, doğru hareketi oynadılar 24 ... Şb6!

Örneğin, başlangıçta 21 numaralı derinlikte Stockish 4 kadar güçlü bir motor bile kaybetme hareketinin 24 ... cxd4 doğru olduğunu düşünüyor .

Stockfish DD 64 SSE4.2: 24...cxd4 25. Re7+ Kb6 26. Qxd4+ Kxa5 27. Qc3+ Kb6 
28. Qd4+ Qc5 29. Qxf6+ Bc6 30.Qxc6+ Qxc6 31. dxc6 Rd1+ 32. Ka2 f5 33. c7 Rc8 
34. Rxh7 Rxc7 35. Rh6 Rc6 36. g4 f4 37. g5 Rd2 38. c3 Rxc3 39. Rxg6+ Kc5 
40. Bg4 Rcc2 41. Rxa6 Rxb2+ 42. Ka1 Rbc2 43. Kb1 
(-1.45/21)

Aynı motor, biraz daha derinlikte tutulduğunda 24 ... Şb6'yı doğru harekete gösterir.

Stockfish DD 64 SSE4.2: 24...Kb6 25. b4 Qxf4 26. Rxf4 Nxd5 27. Rxf7 cxb4 
28. axb4 Rhe8 29. Rxe8 Rxe8 30. Nb3 Re1+ 31. Kb2 Re2 32. Rxh7 Nxb4 
33. Kc3 Nd5+ 34. Kd3 Rxh2 35. Rh4 Ne7 36. Nd4 Nc6 37. Nxc6 Bxc6 38. f4 Kc5 
39. Be6 Rxh4 40. gxh4 Bd5 41. f5 gxf5 42. Bxf5 a5
(-0.78/26)

Fritz 11 SE, 15 derinlikte başarısız oldu. Ama derinlik 16'da doğru hareketi buldu!

Fritz 11 SE: 24... cxd4 25. Qxd4+ Qb6 26. Re7+ Nd7 27. Qe5 f6 28. Qc3 Qg1+ 
29. Ka2 Bxd5+ 30. Nb3 f5 31. Qc7+ Ka8 32. Rxd7 Rxd7 33. Qxd7 Bxf3 34. Qd6 Qa7  
(-1.44/15) 

Fritz 11 SE: 24... Kb6 25. b4 Qxf4 26. Rxf4 Nxd5 27. Rxf7 cxb4 28. axb4 Nxb4 
29. Nb3 Bd5 30. Rf6+ Nc6 31. Nd4 Rdf8 32. Rd6 Kc5 33. Rxc6+ Bxc6 34. Ne6+ Kd6 
35. Nxf8 
(-0.59/16)

Ayrıca bu inanılmaz sorunu burada bulduğum konum gibi düşünün .

Stockish kazanan hattı bulamadı 1. Be2 +! 31 derinliğe kadar ve o zamana kadar bunun kötü bir hareket olduğunu düşündü. Buradaki galibiyeti gösteriyorum. Mesele şu ki, Siyah, eş tehditleri yüzünden zugswang'da ve kraliçeden vazgeçmek ya da Beyaz'ın geçilen bir piyon oluşturmasına ve kazanmasına izin verecek bir piyonu hareket ettirmek zorunda.

NN - NN, 1-0
1. Be2 +! Şf5 2. Ad5! Vxe6 3. Fd3 + Şg4 4. Be4 !! Vh6
( 4 ... Vxe4 5. Nf6 + )
5. Nf4 Vg7 6. Vd3! Vxd4 7. c6! a5
( 7 ... Vxe4 8. Nf2 + Kf3 9. Nxe4 Kxe4 10. Kg2 Kd4 11. g4 hxg4 12. h5 Ke5 13. h6 Kf6 14. Kg3 Kg6 15. Kxg4 Kxh6 16. Kf5 Kg7 17. Ke6 Kf8 18. Kd7 Şf7 19. Şxc7 )
8. b5! a4 9. b6 cxb6 10. c7 Vxe4
( 10 ... Vc3 11. Nf2 # )
11. Nf2 + Kf3 12. Nxe4 1-0

İşte Stockish 4'ün motor günlüğü. Gördüğünüz gibi 1. Be2 + kazanıyor, sadece 31. derinlikte!

Stockfish DD 64 SSE4.2: 1. Be2+ Kf5 2.Bc4 c6 3. Ne2 Qf6 4. Kg2 Kg4 5. Nf4 Qxd4 
6. Bd3 Qe3 7. Be2+ Kf5 8. Bf3 Qd2+ 9. Kh3 Qxb4 10. e7 Qe1 11. Ne2 Qf1+ 12. Kh2 Qf2+
13. Kh3 Qe3 (-1.05/22) 

Stockfish DD 64 SSE4.2: 1. Be2+ Kf5 2. Bc4 Qf6 3. Ne2 c6 4. Bxa6 Qxe6 5. Bd3+ Kf6 
6. Nf4 Qe1 7. d5 Qxb4 8. dxc6 Qxc5 9. Be4 Ke7 10. c7 Kd7 11. Nd5 Kd6 12. Kh3 Qc4 
13. Bg2 Qg4+ 14. Kh2 Qc8 15. Be4 (-1.15/26) 

Stockfish DD 64 SSE4.2: 1. Be2+ Kf5 2. Bc4 Qf6 3. Ne2 c6 4. d5 cxd5 5. Bxd5 Qb2 
6. Bc4 Kf6 (-1.01/28) 

Stockfish DD 64 SSE4.2:  1. Be2+ Kf5 2. Nd5 Qxe6 3. Bd3+ Kg4 4. Be4 Qh6 5. Nf4 Qf6 
6. Nd3 Qxd4 7. c6 Qxe4 8. Nf2+ Kf3 9. Nxe4 Kxe4 10. Kg2 Ke5 11. Kf3 Kf5 12. g4+ Kf6
13. gxh5 Kg7 14. Kf4 Kf6 15. h6 Kg6 16. h5+ Kh7 17. Kg5 Kg8 18. h7+ Kxh7 19. Kf5 Kg7
20. Ke6 Kh6 21. Kd7 Kxh5 22. Kxc7 Kg5 23. Kd7 (6.06/31) 

Ama her hamlede 15 hamle demek istiyorum. Sadece başlangıçta değil.
RikTelner

4
Evet, her harekette. İlk hamlede, 15 derinliğinde hesaplar ve bir gaf yaparsa, sonraki her hamlede 15 derinlik hesaplandığında kaydedilmez.
Wes

5

Performans kazanımları ve arama derinliği arasındaki ilişki, aslında bilgisayar satranç programlama topluluklarında uzun süredir aktif bir araştırma alanı olmuştur. Arama derinliğindeki artışların gücün geri dönüşünün azalmasıyla sonuçlanan bir teori vardı ... bu deneysel sonuçlarla doğrulanmış görünüyordu.

Benim açımdan, bunun için sezgisel bir temel var. Oyun sonu masa tabanı konumlarından başlayarak iki süper bilgisayar arasındaki varsayımsal eşleşmenizi hayal edin. Masa tabanlarındaki zorunlu kazançların çoğu (örneğin) 50 kattan daha az bir ufukta gerçekleşir. Kalan pozisyonların çoğunluğu çizilir, sadece daha küçük bir fraksiyon daha yüksek derinlikte kazanır. 100 katında arama yapan bir bilgisayar, 50 katlı bir bilgisayara göre sınırlı bir avantaja sahip olacaktır, çünkü (daha önce belirttiğiniz gibi) zayıf program, tümü daha sınırlı derinlikte meydana gelen neredeyse tüm kaybedilen hatlarda gezinebilir. 50 katlı bir program 25 katlı bir programa göre çok daha büyük bir avantaja sahip olacaktır ... 4 katlı bir program 2 katlı bir programa göre daha büyük bir avantaja sahip olacaktır.

Bu kavrama ilk olarak yaklaşık 15 yıl önce, Karanlık Düşünceler hakkındaki makalelerde, derin araştırmaları denedim. Bilgisayar satrancı ile ilgileniyorsanız bunlar harika bir okuma.

Çevrimiçi bir referans bulamasam da, geçen yıl bu konuda bir makale var ...

Diogo R. Ferreira (2013). Arama Derinliğinin Satranç Oynama Gücü Üzerindeki Etkisi. ICGA Dergisi, Cilt. 36, No. 2


2

Soru şudur: Kapsamlı arama 15/30 kat mı, yoksa Stockish gibi modern bir satranç motorunun 15/30 nominal derinliği / iterasyonu mu?

İkincisini kastediyorsanız, 15 kat mutlaka çok fazla anlamına gelmez. Modern satranç motorları sözde kötü olan hareketleri büyük ölçüde budamakta ve azaltmaktadır, bu nedenle ilk bakışta, 15 nominal bir derinlikte / yinelemede kötü görünen bir fedakarlık aslında sadece 5-10 derinliğe kadar aranabilir. Derinlik / yineleme 30'da, hareket muhtemelen sadece azaltılmış bir derinliğe kadar aranır, ancak daha sonra 15-20'lik etkili bir derinlik olabilir, bu da fedakarlığın gerçekten iyi olduğunu ve motorun en kısa sürede olduğunu bulmak için yeterli olabilir. hareketin ümit verici olduğunu keşfederse, azalmayı azaltacaktır, böylece hareket 30 kat daha yakın bir derinliğe (veya uzantılar ve sessizlik araması nedeniyle daha derin) aranır. Yani evet, kombinasyon 15 katlık nominal ufukta olsa bile, bir fark yaratabileceğini düşünüyorum.

Kapsamlı bir araştırmaya atıfta bulunuyorsanız, 15 derinliğe sahip bir motor, iyi bir değerlendirme fonksiyonuna ve bir çeşit sessizlik aramasına (15 derinlikteki ayrılma düğümlerinden sonra) sahip olması koşuluyla çok güçlü olacağını düşünüyorum. Geri dönüşlerin azalması nedeniyle, derinliği iki katına çıkararak kazanımın, derinlik 15'e karşı derinlik 30'a sahip iki modern motor arasında bir maç için alacağınızdan çok daha az olacağını düşünüyorum. Ancak, bu sadece teorik, çünkü derinlik 15, motorların genellikle derinliğe / yinelemeye 15 ulaşmak için aldıklarından birkaç kat daha fazla zaman alacaktır, bu nedenle böyle bir deney yalnızca daha düşük derinliklerde yapılabilir.


0

FWIW ARM yeni olduğunda, 1. kattan sonra sadece malzeme pozisyonu değerlendirmesi ile optimize edilmiş bir ARM kapsamlı arama programı yazdım.

Optimize edilmiş makine kodu, yinelemeli derinleştirme, sıralı hareketlerde alfa-beta pencereleme (neredeyse tüm konumların 0 değeri vardı, bu yüzden neredeyse en uygun alfa-beta budamaya sahip) hileler kullandım - ve dal faktörünü alfa-beta için teorik karekök, genellikle oyunun en kötü kısmında yaklaşık 4.

O sırada standart programlara karşı bir yarışmada, E6P programım korkunç pozisyonlara girdi, ancak o zamanki pro yazılımına kıyasla ekstra bir kat veya iki ayrıntılı arama ile (yani en kötü aşamada genellikle 6 kat ayrıntılı + durgun arama ile Oyun basitleştikçe 12 kata kadar), rakiplerinin güvenine rağmen gerçekten kaybetmekten kaçınmaya devam etti. Hemen hemen tüm oyunlar, saatler geçtikten sonra hüküm vermeye gitti çünkü karşıt programlar gerçekten kazanamadı.

Daha sonra onu 10 kata taşınan StrongARM için optimize ettim. Bu sürüm, satranç dışı tüm oyuncuları kolayca yenebilir, ancak herhangi bir strateji bilincinden yoksun olmasına rağmen, ünlü yorum uygulandı: evet, satranç hamleleri - ama satranç değil!

Bu oldukça birkaç yıl önceydi, ancak 1. katta daha stratejik bir konum değerlendirmesi ve 4MIPS'den teorik olarak 10.000-100.000x daha hızlı (ve 30k kat daha fazla karma tablo belleği ile) bir Intel XEON ile tekrar kapsamlı bir şekilde denemek istedim. ARM2 Palamut Arşimet.

Kuşkusuz ana akım değil, oynamak eğlenceli.


-2

+1 kat tahmin ediliyor + 55.,70 ELO kazancı (bu konuda birçok araştırma)

Sanırım bu 15 derinlik içinde bir şahmattan veya önemli bir parçanın yakalanmasından trilyonlarca yol olabilir.

Mesele şu ki, tüm bu "trilyonlar" A @ D = 30 ile hesaplandı ve eğer A kazanan kazanan eval ile hareket ederse, tüm bu "trilyonları" hesapladığı ve hangi "trilyon" lardan hangisinin rakip cevabını hareket ettirdiği önemli değil hala kazanıyor


Tartışmaya hoş geldiniz. İfadenizi kanıtlayacak bir şey var mı? Somut bir ilişki olduğunu düşünmüyorum.
SmallChess
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.