Tại sao các động cơ cờ vua đôi khi bỏ lỡ các động tác tốt (hoặc mất mãi mãi để phát hiện)?


17

Đây không phải là lần đầu tiên tôi tìm thấy một nước cờ vượt trội hơn nhiều so với động cơ cờ vua đã làm, thậm chí họ phải mất một thời gian để hiểu những động tác này sau khi bạn thực hiện chúng.

Ví dụ, di chuyển 15 ... Bf2trong trò chơi dưới đây:

NN - NN, 0-1
1. e4 e5 2. NF3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 HH4 9. Qh3 Qxh3 10 gxh3 dxc6 11. RE1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

Việc di chuyển vẫn không được chú ý bởi động cơ trong một thời gian, phải đến khi tôi di chuyển thì nó mới bắt đầu thấy phần còn lại của tảng băng trôi.

Tôi biết tất cả phụ thuộc vào thời gian bạn dành cho họ để phân tích, nhưng không thể chấp nhận được rằng đôi khi con người quản lý để tìm thấy những chuyển động này trong thời gian ít hơn so với máy tính.

  • Tại sao động cơ cờ vua không phát hiện ra các động tác tốt ở một số vị trí? (Tôi đã từng đọc một cái gì đó về "hiệu ứng chân trời", có lẽ điều này có liên quan?)
  • Có những ví dụ đáng chú ý khác? (ví dụ câu đố nổi tiếng này , phải mất một thời gian để máy tính giải quyết)

Những câu hỏi này chứa thông tin hữu ích để giải thích một phần một số yếu tố có thể gây ra sự bất thường này: Thuật toán và phương pháp phỏng đoán nào phổ biến trong cờ vua máy tính? , Khi chơi đối thủ Máy tính, tôi nên tạo ra tình huống nào để cho mình cơ hội chiến thắng cao hơn? , Đánh giá máy tính: Chúng đáng tin đến mức nào?

Ghi chú: Cái bẫy được gọi là Câu cá , tôi biết rằng tôi đã bỏ lỡ một người bạn đời trong 3 (và một người bạn đời trong 7) :(, giới hạn thời gian cho mỗi lần di chuyển là ngày (cờ tương ứng) nhưng tôi phải mất 5-10 phút để hoàn thành việc tính toán mọi thứ.


1
Rất thú vị. Stockfish trên PC sức mạnh trung bình của tôi không tìm thấy 15... Bf2gì sau 5 phút.
Tony Enni

... và phải mất hơn 7 phút để tìm một người bạn đời tương tự trong lần di chuyển tiếp theo.
Tony Enni

20 d3 là một lỗi. thử 20 d4.
dcaswell

1
Tại sao bạn sử dụng ngôn ngữ "không thể chấp nhận" đối với con người để tìm cách di chuyển trong thời gian ngắn hơn máy tính? Bạn có thể giải nén suy nghĩ của bạn về điều này?
Xonatron

Nó đã bỏ lỡ rất nhiều động thái tốt hơn. Tại sao một trong những cụ thể?
yobamamama

Câu trả lời:


33

Tại sao động cơ cờ vua không phát hiện ra các động tác tốt ở một số vị trí?

Lý do được gọi là kỹ thuật cắt tỉa chuyển tiếp (xem http://chessprogramming.wikispaces.com/Pruning ) với ProbCut ở dòng đầu tiên.

Di chuyển 15 ... Bf2 được cắt tỉa ở độ sâu nông vì nó bao gồm sự hy sinh 16.Rxf1 mà không lấy lại được một cái gì đó cụ thể với bằng chứng ngay sau đó. Matenet cũng khó thấy, bởi vì nó bao gồm một số động thái 'im lặng' hơn nữa, ví dụ như 17 ... Ke7, và cũng có động cơ, không chỉ con người gặp khó khăn khi nhìn thấy những chuyển động im lặng xa xôi khi chúng thường được cắt tỉa.

Trong trường hợp cụ thể này, bạn thậm chí không thể nói, rằng các động cơ không phát hiện ra các chuyển động tốt, bởi vì cũng tiếp tục 15 ... Rh3h1 là một động thái rất tốt và dẫn đến một vị trí hoàn toàn giành chiến thắng.

Cuối cùng nhưng không kém phần quan trọng, bạn phải nhớ rằng, sức mạnh của động cơ luôn được đo bằng elo-strengh và không phải là khả năng tìm ra con đường ngắn nhất tuyệt đối để giành chiến thắng. Không thành vấn đề, nếu một động cơ thắng trong 8 lần di chuyển hoặc trong 25 lần di chuyển. Tìm kiếm nhiều cho chiến thắng ngắn nhất, có nghĩa là lãng phí thời gian, bởi vì hầu hết thời gian không tồn tại một động thái tốt bí mật như vậy cả. Và lãng phí thời gian sẽ làm tổn thương ELO-Rating của động cơ.


1
Câu trả lời tốt đẹp, chào mừng đến với trang web!
Andrew

+1 để đề cập đến sự đánh đổi giữa tìm kiếm được cắt tỉa và tìm kiếm đầy đủ. Tôi không ngạc nhiên khi kết hợp 13+ PLY không được tìm thấy nhanh chóng. Động cơ có "những điều tốt hơn để làm" hơn là tính toán mọi khả năng đến độ sâu đó.
Daniel B

2
Câu trả lời tốt đẹp tổng thể. +1 cho "Cuối cùng nhưng không kém phần quan trọng bạn phải nhớ, rằng sức mạnh của động cơ luôn được đo bằng elo-strengh và không phải là khả năng tìm ra con đường ngắn nhất tuyệt đối để giành chiến thắng"
tiếng vào

Câu trả lời tuyệt vời.
Xonatron

12

Tôi đang thử điều này với Houdini 1.5 (phiên bản miễn phí). Lúc đầu 15 ... Bf2 không xuất hiện trong 5 bước di chuyển hàng đầu, sau đó khi đạt đến độ sâu 15, nó sẽ là # 1. Mất khoảng 19 giây trên máy tính bốn tuổi của tôi, không lâu lắm.

Vì vậy, nó không thất bại trong việc phát hiện ra nó, thay vào đó nó chỉ coi đó là động thái tốt nhất khi đạt đến độ sâu 15. Rõ ràng, miễn là nó chỉ trông sâu 14 lớp, các nước đi khác sẽ tốt hơn (như cũng thắng 15 ... f5 +).

Rõ ràng 15 ... Bf2 là một người bạn đời trong 8, tức là 15 ply (8 di chuyển bằng màu đen, 7 màu trắng). Nhưng lúc đầu, nó chỉ coi nó là 10 hoặc hơn, sau đó là 20, sau đó giao phối trong 10, sau đó giao phối trong 8.

Người bạn đời trong 8 dòng là:

NN - NN
1. e4 e5 2. NF3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 HH4 9. Qh3 Qxh3 10 gxh3 dxc6 11. RE1 Bxh3 12. f3 Bc5 + 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 #.

Rõ ràng khi Houdini 1.5 nghĩ sâu 15 ply, nó không xem xét tất cả các dòng có thể sâu 15 ply, hoặc nó sẽ nhìn thấy người bạn đời trong 8 giây khi nó kết thúc tìm kiếm sâu 15 ply.

Tôi nghĩ rằng đó là vì cắt tỉa , nó ngừng nhìn vào một số dòng khi nó nghĩ rằng chúng không đủ hứa hẹn. Bằng cách đó, nó có thể dành nhiều thời gian hơn cho các dòng đầy hứa hẹn và lập trình viên nghĩ rằng những ưu điểm vượt trội hơn nhiều. Nhưng tôi không có câu trả lời ngay bây giờ về những gì nó quyết định cắt tỉa ở đây (nó có thể đưa ra hàng triệu quyết định cắt tỉa riêng ở độ sâu 15).

Nó có thể phải làm với các bước di chuyển im lặng ... Ke7 và ... Rah8, hai người không kiểm tra không bắt giữ trong một đường mà màu đen là một mảnh. Có khả năng nó quyết định ở đâu đó rằng nó không hữu ích để tiếp tục tìm kiếm trong dòng này. Chỉ sau đó, khi nó tiếp tục dòng và tìm thấy người bạn đời ở cuối, các dòng khác sẽ kéo dài trò chơi (với 18.Rh1 Rxh1, v.v.) sau đó hiển thị.

Dù sao, nó được biết rằng nó không hoạt động tốt để cho máy tính suy nghĩ trong vài giây chỉ khi bạn muốn đi đến tận cùng của một cái gì đó, một vài phút là tốt hơn.


Tôi đoán tại sao nó cắt tỉa, là bởi vì 16. Rxf1 trông "heurististic" không phải là vị vua vĩ đại của người da trắng ngoài trời, nhưng không có người kiểm tra ngay lập tức và màu đen hạ gục một hiệp sĩ để cầm đồ. Chỉ đến khi phân tích sâu hơn xảy ra (như bạn đã nói), giá trị của "sự hy sinh" này mới trở nên rõ ràng.
Joe K

Lưu ý rằng "15 ply" có nghĩa là nó đã xem xét một số di chuyển đến độ sâu 15, không phải tất cả các di chuyển . Điều đó sẽ mất waay dài hơn 4 giây, ngay cả trên một siêu máy tính.
BlueRaja - Daniel Pflughoeft

2

Sau khi đọc tất cả các câu trả lời và các nguồn khác, bây giờ tôi hiểu rằng họ không 'bỏ lỡ' hoặc chọn bỏ lỡ các động tác này, con người đã lập trình chúng theo cách mà họ theo một mô hình cụ thể về tìm kiếm (nơi / cách / khi + đến) và quan trọng hơn là khi nào phải tạm dừng tìm kiếm và xem xét các dòng hứa hẹn hơn để tiết kiệm tài nguyên.

Nhưng khi có đủ thời gian, một máy tính sẽ phạt mọi sự kết hợp có thể ở một độ sâu nhất định.

TL; DR

  • Q1: họ không bao giờ bỏ lỡ di chuyển, họ chưa tìm thấy chúng
  • Câu 2: họ mất thời gian vì họ được lập trình để tiết kiệm tài nguyên và họ sẽ ưu tiên một số dòng hơn các dòng khác (ví dụ: những dòng không có động thái thụ động hoặc không phục hồi tài liệu trong một số động tác tiếp theo).

-1

Tôi nghĩ rằng tất cả mọi người đang thiếu một người bạn đời nhanh hơn nhiều. Khi kiểm tra vị trí với Houdini 3, màu đen thực sự có giao phối trong 3 khi di chuyển 13. Thay vì Bf1 +, màu đen nên chơi Bf2 và nó tương ứng với 14. d3 bf1 + 15. Bh6 Rxh6 #. Vì vậy, trong một câu trả lời bất thường cho câu hỏi của bạn, có thể một số động cơ nhất định không thấy bạn di chuyển ngay lập tức, nhưng, trong trường hợp của Houdini 3, nó đã tìm thấy một người bạn đời nhanh hơn nhiều.


5
Nếu bạn đọc toàn bộ câu hỏi, bạn sẽ thấy anh ấy biết về người bạn đời trong 3. Tất cả các động cơ mới hợp lý sẽ tìm thấy người bạn đời trong 3 ngay lập tức, và đó không phải là một phần của những gì được hỏi ở đây.
Halvard
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.