Liệu quy tắc quảng bá gà trong dobutsu shogi có thực sự quan trọng?


9

Trong dobutsu shogi , gà con (cầm đồ Nhật Bản) quảng bá cho một con gà (tướng vàng). Theo kinh nghiệm của tôi, chương trình khuyến mãi này hiếm khi xảy ra và tôi nghi ngờ sau nhiều sai lầm.

Liệu quy tắc quảng bá gà trong dobutsu shogi có thực sự quan trọng? Đó là, trò chơi có thực sự thay đổi nếu quảng cáo gà con bị bỏ (và thay vào đó gà con bị kẹt ở hàng cuối cùng)?

Bằng cách thực sự thay đổi, tôi có nghĩa là phân loại một vị trí (thắng, thua hoặc vẽ) thay đổi, hoặc chuỗi di chuyển chính xác để buộc một chiến thắng từ một vị trí chiến thắng thay đổi về mặt vật chất.

Câu trả lời:


6

Các quy tắc khuyến mãi thực sự quan trọng rất nhiều. Với lối chơi hoàn hảo, trò chơi kết thúc với tỷ số hòa thay vì thắng trắng / gote nếu bạn bỏ quy tắc thăng hạng. Trong thực tế, việc đánh giá tất cả bốn di chuyển ở vị trí ban đầu thay đổi theo cách này.

Tôi đã sử dụng hai phương pháp độc lập để có kết quả này để kiểm tra kỹ xem có triển khai gì không:

  1. Sử dụng một công cụ với tìm kiếm alpha-beta, cụ thể là ngã ba Stockfish của tôi cho các biến thể cờ vua cổ tích (bao gồm các biến thể shogi), tôi đã chạy các tìm kiếm sâu (~ 1h) trước và sau khi vô hiệu hóa quy tắc quảng cáo , xem kết quả bên dưới.
  2. dobutsu shogi là một trò chơi đã được giải quyết , nên có các trình tạo bảng cho nó. Tôi đã sử dụng một trình tạo cơ sở bảng nguồn mởsửa đổi nó để vô hiệu hóa các chương trình khuyến mãi (tôi không rành lắm về cơ sở mã này, nhưng vì kết quả của hai phương thức là nhất quán, thay đổi của tôi có vẻ hoạt động tốt). Tôi đã chạy thế hệ bảng với cả hai bộ quy tắc và kiểm tra kết quả mà bạn có thể tìm thấy bên dưới.

1. Kết quả tìm kiếm

đầu vào:

setoption name multipv value 4
setoption name hash value 4096
setoption name UCI_Variant value dobutsu
position startpos
go depth 90

đầu ra với quy tắc khuyến mãi:

info depth 90 seldepth 87 multipv 1 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 2 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 3 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 85 multipv 4 score mate -42 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b2b3 c4b3 a1b2 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3

đầu ra không có quy tắc khuyến mãi:

info depth 90 seldepth 52 multipv 1 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 52 multipv 2 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 50 multipv 3 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b2b3 c4b3 a1b2 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 59 multipv 4 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3a4 E@b3 a4b4 b1c1 G@a3 b3a2 b4c4 c1b1 E@b3

Xem mô tả giao thức UCI để biết chi tiết về ý nghĩa của đầu vào và đầu ra.

2. Kết quả bảng

đầu vào:

show lines

đầu ra với quy tắc khuyến mãi:

Gc4-c3 : #-78  (25.00%)
Lb4-c3 : #-78  (25.00%)
Lb4-a3 : #-78  (25.00%)
Cb3xb2 : #-76  (24.99%)

đầu ra không có quy tắc khuyến mãi:

Cb3xb2 : 0     (25.00%)
Gc4-c3 : 0     (25.00%)
Lb4-c3 : 0     (25.00%)
Lb4-a3 : 0     (25.00%)

Xin lưu ý:

  • Khoảng cách bạn đời khác nhau vì hai lý do:
    • Stockfish đếm khoảng cách bạn đời trong các lần di chuyển đầy đủ (trừ khi bạn kích hoạt giao thức USI), trong khi đó, trình tạo cơ sở bảng tính theo ply (di chuyển một nửa).
    • Việc tìm kiếm không nhất thiết phải tìm ra cách ngắn nhất để giao phối, trong khi kết quả cơ sở bảng phải chính xác.
  • Hai phần mềm cũng sử dụng các hệ tọa độ khác nhau để mô tả các ô vuông (thứ tự các cấp bậc được đảo ngược), vì vậy hãy cẩn thận không trộn lẫn chúng khi so sánh các chuỗi di chuyển.

1
Thật là một kết quả thú vị và bất ngờ! Tôi đã nghiên cứu rằng trình tạo cơ sở bảng một chút nhưng không nhận ra một thay đổi nhỏ như vậy sẽ hoàn thành mục tiêu của tôi. Dù sao, bạn có thể giải thích đầu ra stock-stockfish thêm một chút? (Tại sao) "cp 0" có nghĩa là vẽ?
hkBst

1
Vâng, nó là đáng ngạc nhiên đối với tôi là tốt. Cảm ơn phản hồi, tôi đã thêm một liên kết đến mô tả giao thức UCI. Đối với câu hỏi cụ thể của bạn: Có, cp 0 có nghĩa là hòa, vì nó đại diện cho lợi thế của phe di chuyển trong đơn vị của rết (1/100 của một con cờ vua).
Fabian Fichter

1

Bây giờ tôi tin chắc rằng câu trả lời của Fabian Fichter là đúng. Bình luận sau đây về câu trả lời của Fabian có thể giúp thuyết phục những người khác giống như vậy.

1. Vị trí dường như bị ảnh hưởng bằng cách loại bỏ khuyến mãi gà

Phân tích kết quả được đăng từ Stockfish đã sửa đổi, tất cả các trò chơi hội tụ khá nhanh ở vị trí sau: S / -l- / ge - / - E - / - LG / cC.

$ ./dobutsu -vs900
Loading tablebase... done
1. setup S/-l-/ge-/-E-/-LG/cC
1. show board
  ABC 
 +---+
1| l | c
2|ge |
3| E |
4| LG| *C
 +---+
1. show lines
Eb3xa2 : #-72  (67.13%)
C  *a4 : #-70  (32.87%)   <---  apparently quite strong
Gc4-c3 : #-46  ( 0.00%)
C  *c2 : #-36  ( 0.00%)
C  *c1 : #-28  ( 0.00%)
Eb3-a4 : #-26  ( 0.00%)
Lb4-a4 : #-26  ( 0.00%)
C  *a1 : #-24  ( 0.00%)
C  *c3 : #-22  ( 0.00%)
C  *a3 : #-20  ( 0.00%)
Eb3-c2 : #-12  ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-a3 : #-2   ( 0.00%)

Sente sau đó chơi C*a4, thả gà của họ ở góc dưới bên trái. Ban đầu tôi nghĩ đây là một sự sụt giảm khá lãng phí nhưng theo cơ sở bảng thì nó thực sự không tệ chút nào.

1. C  *a4
  ABC 
 +---+
1| l | *c
2|ge |
3| E |
4|CLG| 
 +---+

Bây giờ một cái gì đó thú vị xảy ra. Cơ sở bàn đồng ý với Stockfish rằng việc đẩy Sư tử sang một bên là một trận hòa, nhưng còn việc thả một con gà con để chiến đấu với một con gà thì sao?

2. show lines
C  *a3 : #69   (99.57%)   <---  winning chick drop
C  *c2 : #91   ( 0.21%)
C  *c1 : #91   ( 0.21%)
C  *a1 : 0     ( 0.00%)
Ga2-a1 : 0     ( 0.00%)
Eb2-c1 : 0     ( 0.00%)
Eb2-a1 : 0     ( 0.00%)
Lb1-a1 : 0     ( 0.00%)   <---  draws the game
C  *c3 : #-28  ( 0.00%)
Lb1-c1 : #-22  ( 0.00%)
Eb2-c3 : #-20  ( 0.00%)
Eb2-a3 : #-20  ( 0.00%)
Ga2-a3 : #-18  ( 0.00%)
Lb1-c2 : #-2   ( 0.00%)
2. C  *a3
  ABC 
 +---+
1| l | 
2|ge |
3|cE |
4|CLG| *
 +---+

Bây giờ gà con chỉ a3còn một bước nữa là quảng bá và hơn nữa sẽ kiểm tra việc quảng bá, điều này sẽ buộc sư tử Sente phải lấy nó. Vấn đề duy nhất là động thái tốt nhất liên quan đến việc mất con gà con a3và chúng tôi vẫn còn khá xa so với một người chơi. Do đó, chúng tôi sẽ rút ngắn một chút, để chúng tôi mất nhanh hơn, nhưng không mất vì những lý do khác như cho đi vật chất không cần thiết.

3. show lines
Ca4xa3 : #-68  (92.84%)   <---  catches chick about to promote
Gc4-c3 : #-62  ( 7.16%)
Eb3xa2 : #-32  ( 0.00%)   <---  shortcut
Eb3-c2 : #-8   ( 0.00%)   <---  give away elephant
Lb4-c3 : #-2   ( 0.00%)   <---  stupid
Lb4xa3 : #-2   ( 0.00%)   <---  stupid
3. Eb3xa2
  ABC 
 +---+
1| l | *
2|Ee |
3|c  |
4|CLG| G
 +---+
4. show lines
Lb1xa2 : #31   (100.00%)
Lb1-c2 : #-10  ( 0.00%)
Lb1-c1 : #-6   ( 0.00%)
Lb1-a1 : #-6   ( 0.00%)
Ca3xa4+: #-2   ( 0.00%)
Eb2-c3 : #-2   ( 0.00%)
Eb2-c1 : #-2   ( 0.00%)
Eb2-a1 : #-2   ( 0.00%)
4. Lb1xa2
  ABC 
 +---+
1|   | e
2|le |
3|c  |
4|CLG| *G
 +---+

Chúng tôi dường như đã thành công trong việc bảo tồn mối đe dọa của con gà thúc đẩy hy sinh, vì vậy hãy tiếp tục!

5. show lines
G  *b3 : #-30  (100.00%)
G  *a1 : #-24  ( 0.00%)
G  *c3 : #-20  ( 0.00%)
Gc4-c3 : #-18  ( 0.00%)
G  *c2 : #-14  ( 0.00%)
G  *c1 : #-10  ( 0.00%)
G  *b1 : #-10  ( 0.00%)
Ca4xa3 : #-8   ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-b3 : #-2   ( 0.00%)
Lb4xa3 : #-2   ( 0.00%)
5. G  *b3
  ABC 
 +---+
1|   | *e
2|le |
3|cG |
4|CLG| 
 +---+
6. show lines
Ca3xa4+: #29   (100.00%)   <---  sacrificial promoting chick check
E  *c3 : #-30  ( 0.00%)
E  *c1 : #-28  ( 0.00%)
Eb2-c1 : #-28  ( 0.00%)
Eb2-a1 : #-28  ( 0.00%)
La2-b1 : #-28  ( 0.00%)
La2-a1 : #-28  ( 0.00%)
E  *c2 : #-26  ( 0.00%)
E  *a1 : #-24  ( 0.00%)
E  *b1 : #-12  ( 0.00%)
Eb2-c3 : #-12  ( 0.00%)
La2xb3 : #-2   ( 0.00%)

Và ở đó, con gà thúc đẩy hy sinh là động thái tốt nhất! Hãy xem điều gì xảy ra.

6. Ca3xa4+:
  ABC 
 +---+
1|   | ce
2|le |
3| G |
4|rLG| *
 +---+
7. show lines
Lb4xa4 : #-28  (100.00%)   <---  take chick (forced if promoted)
Gc4-c3 : #-2   ( 0.00%)
Gb3-c3 : #-2   ( 0.00%)
Gb3-a3 : #-2   ( 0.00%)
Gb3xb2 : #-2   ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-a3 : #-2   ( 0.00%)

Bây giờ hãy xem điều gì xảy ra nếu chúng ta thay đổi con gà trống đó thành một con gà con:

7. setup S/---/le-/-G-/cLG/ec
1. show board
  ABC 
 +---+
1|   | ce
2|le |
3| G |
4|cLG| *
 +---+
1. show lines
Gc4-c3 : #-90  (100.00%)
Gb3xb2 : #-30  ( 0.00%)
Lb4xa4 : #-28  ( 0.00%)
Gb3-c3 : #-10  ( 0.00%)
Gb3-a3 : #-8   ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-a3 : #-2   ( 0.00%)

Ở vị trí này, bước di chuyển tốt nhất sẽ khiến cho checkmate 88 (90-2) di chuyển ra xa, xa hơn so với vị trí bắt đầu, khiến cho việc phân tích sẽ dẫn đến một vị trí khác mà không phát huy được sức mạnh của gà thì đột nhiên xa hơn giao phối hơn trước (ad infinitum). Nếu đúng điều đó sẽ làm cho vị trí G / --- / le- / cG- / CLG / e (xem bên dưới) một trận hòa thay vì một chiến thắng mà không có khuyến mãi gà .

  ABC 
 +---+
1|   | *e
2|le |
3|cG |
4|CLG| 
 +---+

2. Tính chính xác của tìm kiếm toàn diện

Giả sử rằng trình tạo cơ sở bảng đã sử dụng là một tìm kiếm toàn diện chính xác, có vẻ như bản vá của Fabian sẽ thành công trong việc vô hiệu hóa các quảng cáo gà vì tệp moves.clà nơi duy nhất POS_FLAGSđược sử dụng (ngoại trừ việc sử dụng validation.cđể kiểm tra cấu trúc vị trí) và thực sự có vẻ như được xây dựng có mục đích để vô hiệu hóa chương trình khuyến mãi.

/* clear promotion bits for pieces that can't be promoted */
status &= POS_FLAGS;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.