Bir tarafta zorla berabere olup olmadığını gösterebilecek herhangi bir satranç motoru var mı?


11

Bir pozisyonun her iki tarafın da zorla çekilip çekilmediğini gösterebilecek bir analiz moduna sahip herhangi bir satranç motoru var mı?

Bir beraberlik algıladığında motorların 0.0 değerlendirmelerini çıkarması yaygındır. Fakat 0.0 değerlendirmesi pek çok şey ifade edebilir. Örneğin, hareket etmenin beyaz olduğu varsayılarak, 0.0 değerlendirmesi şu anlama gelebilir:

  • Oyun, her iki oyuncunun nasıl oynadığına bakılmaksızın (örneğin, yetersiz malzeme) kesinlikle bir beraberliktir.
  • Her iki oyuncu da berabere zorlayabilir. İki oyuncu da rakipleri mükemmel oynarsa kazanmayı umamaz.
  • Hangi beyaz hareketi oynarsa oynayın, bilgisayar isterse siyahın çekilişi zorlayabileceğinden% 100 emin. Eğer siyah mükemmel oynarsa beyaz kazanmayı umamaz. Beraberlik en olası sonuçtur, ancak daha derin bir araştırma siyahın kazanmayı zorlayabileceğini gösterebilir.
  • Bilgisayar, istediği takdirde beyazın çekilişi zorlayabileceğinden% 100 emin. Beyaz mükemmel oynarsa siyah kazanmayı umut edemez. Beraberlik en olası sonuçtur, ancak daha derin bir araştırma beyazın kazanmayı zorlayabileceğini gösterebilir.
  • Bilgisayar her iki taraf için zorunlu bir çizim bulamadı, ancak şimdiye kadar yapılan değerlendirme tam olarak düz. Çekiliş en olası sonuçtur, ancak daha derin bir arama daha sonra bir taraf için avantaj gösterebilir.

Bunun ne zaman yararlı olabileceğine dair bir örnek vermek gerekirse, beyazın kazanması gerekmiyorsa ve sadece berabere kaldığı kadar emin olmak istiyorsa, değerlendirme +0.0 ve bilinen bir zorunlu beraberlik ile bir hamle oynamayı tercih edebilirler. daha yüksek değerlendirmeli başka bir hamle olmasına rağmen.

Başka bir örnek, bir galibiyete ihtiyacınız varsa (yani bir beraberlik bir kayıp kadar kötüdür), rakibinize bir beraberlik zorlama fırsatı vermekten kaçınmak için hafif bir negatif değerlendirmeyle bir hamle oynamak isteyebilirsiniz. Bu kaybetme şansınızı artırsa da, kazanma şansınızı da artırır.

Açıkçası zorla çekilişin mevcut olup olmadığından emin olmanın zor veya imkansız olduğu pozisyonlar vardır. Ancak motor zorla berabere bitirirse, berabere zorlamak mümkün olmalıdır . Yanlış negatifler kabul edilebilir, ancak yanlış pozitif olmamalıdır.

Özetle, bir oyuncunun (veya her iki oyuncunun) zorla berabere kalması durumunda belirli bir pozisyonu bilmek istiyorum. Pozisyonun sayısal değerlendirmesini hesaplamak gerekli değildir, ancak aynı zamanda bunu sağlıyorsa, bu bir bonus.


6 parçalı oyunsonu tablolarının bu kısmını bilmiyor musunuz?
Tony Ennis

2
Masa tabanları yardımcı olur, çünkü o zaman 0.0 puanının optimum oyunla zorunlu bir beraberlik olduğunu bilirsiniz. Ama motorun bana (özellikle) 6'dan fazla parça olduğunda dahil olmak üzere herhangi bir keyfi başlangıç ​​konumundan zorla çekilip çekilmediğini söylemesini istiyorum. Örneğin, beyaz sürekli kontrolü zorlayabilecekleri bir konuma girerse, motorun bana, söylemesine rağmen, değerlendirme fonksiyonuna göre beyazın en iyi hareketi olmasa bile, bunu söylemesini istiyorum.
Mark Byers

Pratikte bu tür bir hesaplamadan ne zaman yararlanabileceğinizi merak ediyorum. Bu güzel bir özellik olurdu. Stok balıklarında, hareketleri değerlendirme puanlarına göre sıralayan UCI analizi "çoklu varyasyon" özelliğini kullanıyorum. Zorla çekilişler, sürekli kontroller veya çıkmaza girerken oldukça açık bir şekilde ortaya çıkar, ancak bazen daha az açıktır ve dediğiniz gibi, daha derine inerseniz bir çekiliş olmayabilir.
Eve Freeman

1
Ama ne kadar zorlanır? Zorla berabere denilen birçok durumda, rakibin hala sapabilir, ancak açıkça daha kötü bir pozisyon pahasına olduğunu düşünüyorum. Beyazın bir çekilişi veya tam bir kaleyi zorlayabileceği bir pozisyon, kullanışlılığı sınırlayan zorla çekilemez.
RemcoGerlich

Eğer beyaz bir kaleye çıkmak yerine bir çekilişi zorlayabilirse, bunu bilmek istiyorum.
Mark Byers

Yanıtlar:


9

Sorunuzun kısa cevabı hayır , bir tarafın zorla çekilip çekilmediğini güvenilir bir şekilde gösterebilecek bir satranç motoru yok. Örneğin, bu kilitli pozisyon açıkça insan gözünün bir çekicisidir:

Kilitli konum, umutsuz çekiliş

Ancak, değerlendirmenin 0,00 değil 0,17 olduğuna dikkat edin . Houdini ayrıca 0,05 verir - beyaz için çok iyi. Bu çok önemli. Bu, 0.00 değerlendirmesinin belirli bir nedenden dolayı bu programlar tarafından ayrıldığını ve gerçekten de öyle olduğunu göstermektedir. Temel olarak, "eşit" bir konumda bile, bilgisayar hiçbir zaman skorun 0.00 olduğunu söylemeyecektir , bunun yerine bir veya diğer tarafa bir dakika kenarı verecektir.

Yani bu arka planla, ayrıntılara geçelim! İlk olarak, oyun pozisyondan dolayı sadece bir beraberlik ise (yani çıkmaz, yetersiz malzeme, vb.) Çoğu GUI, "Game Drawn" yazan bir mesaj ya da bu yönde bir şey açacaktır. Bu, sorunuzda bahsettiğiniz daha karmaşık vakaları bırakır. Bunların çoğunu kapsamak için başka bir pozisyon daha getireceğim. Bu Morphy-NN 1-0, New Orleans Blindfold Simul'dan alınmıştır:

Morphy - NN 1-0, New Orleans Körü Körüne Simul

Morphy'nin şu anda 6'da çiftleştiğine dikkat edin 18.b4+!. Ancak, Morphy bir şekilde bunun eş olduğunu kaçırdıysa, bilgisayarın hızlı bir şekilde gördüğü tekrarla zorla çekildi. Bilgisayarın görüntülediği varyasyon sayısını artırarak 18.Qxc3+?, beyaz gibi bir hareket oynadıktan sonra , beyazın bir kale ve bir parça olmasına rağmen yine de bir çekilişi zorlayabildiğini görmek mümkündür . 0,00 değerinin değerlendirilmesi , bilgisayarın sürekli bir çek hesaplayabilmesi için bunun özel bir konum olduğunu bize bildirir. Eğer hamleler 18.Qxc3+? Kxd5tahtada yapılırsa, değerlendirme 0,00 olur ve beyazın en iyi devamının berabere zorlamak olduğunu gösterir. Bunu yapmamak en iyi oyunla oyunun kaybedilmesine yol açacaktır.


Özetlemek gerekirse, mevcut hiçbir motor bir konumun bir çekiliş olduğunu kesin olarak söyleyemez. Ancak, değerlendirilmesi 0.00 özeldir ve bu gösterileri ise yukarı ana puanı veya bir varyasyonu için skor, beraberlik muhtemelen bu belirli hattında zorla ediliyor o aracı olarak yapılmış olabilir. Kontrol etmenin en kolay yolu şakacı bir şekilde "boşluk çubuğu analizi" olarak adlandırılır - kullanıcı boşluk çubuğuna tekrar tekrar vurduğunda bilgisayarı önerilen en iyi hareketi yapmaya zorlar. Sonunda makine için olduğu kadar insan için de açık bir konuma geleceksiniz.


Ve son olarak, "hor görme" konusundaki görüşünüzü ele almak için

Başka bir örnek, bir galibiyete ihtiyacınız varsa (yani bir beraberlik bir kayıp kadar kötüdür), rakibinize bir beraberlik zorlama fırsatı vermekten kaçınmak için hafif bir negatif değerlendirmeyle bir hamle oynamak isteyebilirsiniz. Bu kaybetme şansınızı artırsa da, kazanma şansınızı da artırır.

Buna satranç programcıları arasında aşağılama denir. Çoğu motor ayarlarda horlama seviyesini ayarlamanıza izin verecektir. Olumlu bir aşağılama ayarı (100 genellikle analiz için makul bir düzeydir) motora bir çekişi önlemek için oldukça zor çalışmasını (bir piyonun değeri) söyleyecektir. Negatif bir ayar, motorun zorla çekilmesine (yani yetersiz malzeme, çıkmaz veya sürekli) neden olur.


Bu, Wes Freeman'ın soruya yaptığı yorumdaki kabaca aynı fikirdir ve açıkladığı gibi bazı insan girişleri gerektirir - "Zorla çekilişler listede oldukça açık bir şekilde [bazen] görünür, ancak bazen daha az açıktır" - cevabınız insana katkıda bulunan "boşluk çubuğu analizi". Bu yüzden cevabımda değerlendirme fonksiyonunun değiştirilmesini öneriyorum; bunu motorun kendisinin zorla çekilişler aramasını ve kesin olarak ne zaman mevcut olduklarını bize bildirmesini sağlayacak şekilde yapıyoruz. Bu yaklaşımlar arasındaki tek temel fark gibi görünüyor.
ETD

@EdDean Kabul ediyorum. Bulması en zor çekilişler, bir oyunun kazanılamadığı oyundur, ancak bir taraf sonsuza dek kazanmak için baskı yapabilir. Ayrı olarak, motorların değerlendirme işlevini değiştirmek tek bir yaklaşım olacaktır, ancak büyük olasılıkla makul bir zaman aralığında yapılabilecek bir şey değildir. Şu anda horlama ayarlarıyla oynamak mümkündür, ancak bu, bir motoru önerdiğiniz gibi yeniden programlamakla aynı şeyi yapmaz. İnsan tarafından düzenlenebilir ayarlar, mevcut motorlarda oldukça sınırlıdır.
Andrew

Bu küçümseme ortamı temiz - bunu fark etmemişti.
Eve Freeman

2
Bu arada, 0.00'in her zaman ima ettiğiniz gibi görünen bir çekilişin göstergesi olduğunu sanmıyorum. Bazen açılışlarda bile erken görüyorum - sanırım sadece mevcut konum ve malzeme göz önüne alındığında, muhtemelen hatta ve değerlendirme 0.00 olur.
Eve Freeman

3
İlginç. Stockfish'de kesinlikle değil. Sadece açılış pozisyonunu birkaç saniyeliğine analiz etmek, 0.00 puanın bolca dönmesini sağlayacaktır.
Eve Freeman

4

Motorların, belirli noktalarda, zorla bir çiftin birkaç hamle uzakta görebildiği gibi, motorun eşine kadar kalan derinlikte her şeyi mükemmel bir şekilde görebileceği kadar yeterli çizgi var, satranç oyunlarında bir motor aynı zorlama çekilişini görmek için oyunda sınırlı olasılıkları tamamen incelemek mümkün.

Dahası, bir motorun bu tür zorunlu çekişlere yol açan hareketleri aramasını ve tercih etmesini sağlamak için bir değerlendirme fonksiyonunu değiştirmek kolay olacaktır: tıpkı mate'e ulaşmada tipik olarak motorun değerlendirme algoritmasının diğer tüm sayısal faktörlerini cüce eden muazzam bir değer verildiği gibi motorun oyununu nihai hedefe doğru yönlendirmek için, bunun yerine aklımdaki çekilişlerden birine ulaşmak için bu kadar büyük bir sayısal değer verebilir.

Örneğin, rakibin eşleşmek için yetersiz malzemeye sahip olduğu herhangi bir pozisyonu +1000000 olarak otomatik olarak değerlendirin. Sonra, motor kendisini rakibin o kadar fazla malzemesini zorlama seçeneği ile bulursa, bunu size bildirir. Ayrıca, her zamanki 0 yerine üç kat tekrarını +1000000 olarak değerlendirmek için değerlendirme algoritmasını düzenleyin. Sonra, zorlamalı bir tekrar varsa (sürekli bir kontrol senaryosunda olduğu gibi), motor onu sevecek ve size bildirecektir. . Benzer şekilde, bir masa tabanı çekilişine zorla erişebilirse +1000000 verin.

Ayrıca, motorun bu değerleri sadece çekmecelerin gerçekten zorlanabileceğine dair kesin bir kesinlik olduğunda vermesini sağlayabilirsiniz (çünkü buradaki ve oradaki ağaç tamamen kontrol edilebildiğinden), tıpkı bir motor emin. Böylece, yanlış pozitifler elde edemezsiniz, ancak elbette sorunuza mantıklı / zorunlu olarak izin verdiğiniz çok sayıda yanlış negatif olacaktır.


Ben aşağılama faktörleri ve budama biçimleri nedeniyle herhangi bir motorun "kutudan çıktığı gibi" çalışacağını düşünmüyorum. Temel olarak, bir beraberlik bulunursa, malzeme kazanan herhangi bir çizgi hariç tutulur. Örneğin, kralın kontrol edilmesi, serbest bir kaleyi ele geçirmeyi tercih eder. Orada çünkü daha uzun Yanıt göndererek düşünüyorum vardır bunu yapmak için geçerli motorları kullanmak için yollar, ama çok fazla hazırlık sırlarını vermek istemiyoruz. ;)
Andrew

Hiçbir motor "kutudan çıktığı haliyle" tanımladığım şekilde çalışmaz, çünkü kazanç elde etmek üzere tasarlanmışlardır; aynı nedenden dolayı, normal bir motor oyunu yapmak için bazı ince ayarlar yapmanız gerekir, örneğin, intihar satrancı. Değerlendirme fonksiyonunu zaten değiştirmem gerekiyor; herhangi bir aşağılama faktörü, gerektiğinde önerdiğim şeyle birlikte değiştirilebilir / devre dışı bırakılabilir, değil mi? Ana nokta, mevcut motorların Mark'ın istediği gibi işlev görmesi için (makul olarak basit bir şekilde) yeniden tasarlanabileceğini düşünüyorum. Yani, en azından şu anda, bunu hala "mevcut motorları kullanmanın" bir yolu olarak görüyorum. Aklım her zaman değiştirilebilir. :)
ETD
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.