Có một thuật toán hoàn hảo cho cờ vua không? [đóng cửa]


109

Gần đây tôi đang thảo luận với một người không phải lập trình viên về khả năng của máy tính chơi cờ. Tôi không rành về lý thuyết, nhưng nghĩ rằng tôi biết đủ.

Tôi lập luận rằng không thể tồn tại một cỗ máy Turing xác định luôn thắng hay bế tắc trong cờ vua. Tôi nghĩ rằng, ngay cả khi bạn tìm kiếm toàn bộ không gian của tất cả các tổ hợp của người chơi 1/2 nước đi, thì nước đi duy nhất mà máy tính quyết định ở mỗi bước dựa trên kinh nghiệm. Dựa trên kinh nghiệm, nó không nhất thiết phải đánh bại TẤT CẢ các nước đi mà đối thủ có thể thực hiện.

Ngược lại, bạn tôi nghĩ rằng một chiếc máy tính sẽ luôn thắng hoặc hòa nếu nó không bao giờ mắc phải một động thái "sai lầm" (tuy nhiên bạn có định nghĩa như vậy không?). Tuy nhiên, là một lập trình viên đã sử dụng CS, tôi biết rằng ngay cả những lựa chọn tốt của bạn - trước một đối thủ khôn ngoan - cuối cùng cũng có thể buộc bạn phải thực hiện những nước đi "sai lầm". Ngay cả khi bạn biết tất cả mọi thứ, động thái tiếp theo của bạn là tham lam trong việc khớp với một kinh nghiệm.

Hầu hết các máy tính chơi cờ vua cố gắng khớp một trò chơi kết thúc có thể xảy ra với trò chơi đang diễn ra, về cơ bản đây là một chương trình theo dõi động lực. Một lần nữa, kết thúc được đề cập là có thể tránh được.

Chỉnh sửa: Hmm ... có vẻ như tôi đã xù lông ở đây. Tốt đấy.

Suy đi nghĩ lại, có vẻ như không có vấn đề lý thuyết nào khi giải một trò chơi hữu hạn như cờ vua. Tôi cho rằng cờ vua phức tạp hơn cờ caro một chút ở chỗ chiến thắng không nhất thiết phải bằng số quân cờ mà là do người bạn đời. Khẳng định ban đầu của tôi có lẽ là sai, nhưng sau đó một lần nữa tôi nghĩ rằng tôi đã chỉ ra một điều gì đó chưa được chứng minh một cách thỏa đáng (chính thức).

Tôi đoán thử nghiệm suy nghĩ của tôi là bất cứ khi nào một nhánh trên cây được lấy đi, thì thuật toán (hoặc các đường dẫn được ghi nhớ) phải tìm đường dẫn đến bạn đời (mà không bị giao phối) cho bất kỳ nhánh nào có thể di chuyển của đối thủ. Sau cuộc thảo luận, tôi sẽ mua bộ nhớ mà chúng ta có thể mơ ước, tất cả những con đường này đều có thể được tìm thấy.


1
+1: chủ đề xuất sắc. Tuy nhiên, tôi nghĩ rằng điều này nên được wiki-fied thể hiện qua sự đa dạng và khối lượng câu trả lời.
IAbstract

1
"nghĩ rằng tôi đã chỉ ra một cái gì đó chưa được chứng minh một cách thỏa đáng"? Bạn đã chỉ ra điều gì chưa được chứng minh một cách chính thức?
S.Lott

2
ack! Làm thế nào có thể có 20 câu trả lời khác nhau cho một câu hỏi đen trắng như vậy! (không có ý định chơi chữ).
Peter Recore vào

5
Tôi cũng rất ngạc nhiên về số lượng người đăng câu trả lời suy đoán của họ mà không biết rằng câu trả lời trên thực tế đã được xác định bằng toán học - câu trả lời theo nghĩa đã được chứng minh rằng cờ vua có lời giải - chỉ là không thực tế để tính toán nó.
DJClayworth

3
Làm tôi nhớ đến câu chuyện cười về Máy tính chơi cờ hoàn hảo. Chơi trắng, nó nghĩ và nghĩ và nghĩ rồi .... từ chức!

Câu trả lời:


104

"Tôi lập luận rằng không thể tồn tại một cỗ máy Turing xác định luôn chiến thắng hay bế tắc trong cờ vua."

Bạn không hoàn toàn đúng. Có thể có một máy như vậy. Vấn đề là sự rộng lớn của không gian trạng thái mà nó sẽ phải tìm kiếm. Nó hữu hạn, nó thực sự lớn.

Đó là lý do tại sao cờ vua rơi vào trạng thái heuristics - không gian trạng thái quá lớn (nhưng hữu hạn). Thậm chí liệt kê - ít tìm kiếm mọi bước đi hoàn hảo trong mọi diễn biến của mọi trận đấu có thể xảy ra - sẽ là một vấn đề tìm kiếm rất, rất lớn.

Các sơ hở được lên kịch bản để đưa bạn đến giữa trận đấu giúp bạn có một vị trí "vững chắc". Không phải là một kết quả được biết trước. Ngay cả khi kết thúc trò chơi - khi có ít quân cờ hơn - cũng khó liệt kê để xác định nước đi tiếp theo tốt nhất. Về mặt kỹ thuật, chúng là hữu hạn. Nhưng số lượng các lựa chọn thay thế là rất lớn. Ngay cả 2 quân + vua cũng có thể có 22 nước đi tiếp theo. Và nếu phải mất 6 bước di chuyển để giao phối, bạn đang nhìn vào 12,855,002,631,049,216 bước di chuyển.

Làm toán về các nước đi mở đầu. Trong khi chỉ có khoảng 20 nước đi mở đầu, có khoảng 30 nước đi thứ hai, vì vậy ở nước đi thứ ba, chúng tôi đang xem xét 360.000 trạng thái trò chơi thay thế.

Nhưng trò chơi cờ vua (về mặt kỹ thuật) là hữu hạn. Rất lớn, nhưng hữu hạn. Có thông tin hoàn hảo. Có trạng thái bắt đầu và kết thúc xác định, Không có tung đồng xu hoặc cuộn xúc xắc.


22
Tất cả các trò chơi kết thúc có 6 quân cờ trở xuống đã được thống kê và giải quyết. Xem tablebase và bitbase tại đây: en.wikipedia.org/wiki/Tablebase . Ví dụ: có một trò chơi KQNKRBN kết thúc, trong đó 517 bước di chuyển được yêu cầu để buộc bạn đời! Nhưng tổng số ván cờ là khoảng (10 ^ (10 ^ 50)).
HTTP 410

2
Kịch bản để giành chiến thắng là một chuyện. Được liệt kê đầy đủ là một điều khác biệt. Dù bằng cách nào, thông tin là hoàn hảo - mọi thứ đều được biết - trò chơi là xác định theo định nghĩa.
S.Lott

11
@RoadWarrior: không đồng ý. Ngẫu nhiên áp dụng cho thời tiết. Thần tung xúc xắc. Ngẫu nhiên không áp dụng cho cờ vua - theo định nghĩa. Cờ vua có thông tin đầy đủ. Thời tiết có các hiệu ứng lượng tử - nó không thể hoàn chỉnh.
S.Lott

3
Điều khiến thời tiết khó dự báo là các yếu tố phi tuyến tính hỗn loạn, không phải bất kỳ hiệu ứng lượng tử nào. Với đủ khả năng tính toán và kiến ​​thức, về lý thuyết, chúng tôi có thể tạo ra một dự báo thời tiết "chính xác".
HTTP 410

3
@monojohnny: Quy tắc cấm lặp lại ba lần cùng một vị trí. Cờ vua đơn giản là hữu hạn. Nó lớn nhưng hữu hạn.
S.Lott

72

Tôi không biết gì bên cạnh những gì thực sự đã được khám phá về cờ vua. Nhưng là một nhà toán học, đây là lý do của tôi:

Đầu tiên, chúng ta phải nhớ rằng Trắng được đi trước và có thể điều này mang lại lợi thế cho anh ta; có thể nó mang lại lợi thế cho Đen.

Bây giờ, giả sử rằng không có chiến lược hoàn hảo nào cho Đen khiến anh ta luôn chiến thắng / bế tắc. Điều này ngụ ý rằng bất kể Đen làm gì, có một chiến lược mà Trắng có thể làm theo để giành chiến thắng. Chờ một phút - phương tiện này có một chiến lược hoàn hảo cho trắng!

Điều này cho chúng ta biết rằng ít nhất một trong hai cầu thủ không có một chiến lược hoàn hảo cho phép người chơi luôn giành chiến thắng hoặc vẽ.

Chỉ có ba khả năng, sau đó:

  • Trắng luôn có thể thắng nếu anh ta chơi hoàn hảo
  • Đen luôn có thể thắng nếu chơi hoàn hảo
  • Một người chơi có thể thắng hoặc hòa nếu anh ta chơi hoàn hảo (và nếu cả hai người chơi đều chơi hoàn hảo thì họ luôn bế tắc)

Nhưng điều nào trong số này thực sự chính xác, chúng ta có thể không bao giờ biết.

Câu trả lời cho câu hỏi là : phải có một thuật toán hoàn hảo cho cờ vua, ít nhất là cho một trong hai người chơi.


2
+1, Đó là một cách giải thích thực sự tuyệt vời. Tôi không thể tin rằng tôi chưa bao giờ nghĩ về điều đó!
Zifre

2
Tại sao màu đen không có chiến lược hoàn hảo ngụ ý rằng màu trắng có một chiến lược hoàn hảo? Điều gì về cả hai người chơi không có chiến lược hoàn hảo? Nếu ngụ ý của bạn là đúng, nó không đúng với mọi trò chơi 2 người chơi, nghĩa là mọi trò chơi đều có một chiến lược hoàn hảo?
John M Naglick

8
@john: Bởi vì cờ vua có thông tin hoàn hảo và không có yếu tố ngẫu nhiên (không giống như rất nhiều trò chơi 2 người chơi khác), cách duy nhất để không có chiến lược hoàn hảo cho quân đen tồn tại là nếu quân trắng có thể buộc phải thắng bất chấp mọi nỗ lực của đen - nói cách khác, nếu có một chiến lược hoàn hảo cho màu trắng.
Dave Sherohman

2
Trên thực tế, logic này không phải lúc nào cũng đúng , nhưng nó có đúng trong trường hợp này không.
BlueRaja - Danny Pflughoeft

4
@john "tại sao quá nhiều thảo luận ở đây" - bởi vì một số người không biết câu trả lời, nhưng dù sao vẫn đăng ở đây.
DJClayworth

30

Trò chơi cờ caro đã được chứng minh rằng một chương trình luôn có thể thắng hoặc hòa trò chơi. Có nghĩa là, không có lựa chọn di chuyển nào mà một người chơi có thể thực hiện mà buộc người chơi kia thua cuộc.

Các nhà nghiên cứu đã dành gần hai thập kỷ để xem qua 500 tỷ tỷ thế cờ có thể có, nhân tiện, đây vẫn là một phần rất nhỏ so với số lượng các vị trí cờ vua. Nỗ lực của người kiểm tra bao gồm những người chơi hàng đầu, những người đã giúp nhóm nghiên cứu lập trình quy tắc ngón tay cái của người kiểm tra vào phần mềm phân loại các nước đi là thành công hay không thành công. Sau đó, các nhà nghiên cứu cho chương trình chạy, trung bình 50 máy tính mỗi ngày. Có ngày, chương trình chạy trên 200 máy. Trong khi các nhà nghiên cứu theo dõi tiến độ và điều chỉnh chương trình cho phù hợp. Trên thực tế, Chinook đã đánh bại con người để giành chức vô địch thế giới cờ caro vào năm 1994.

Vâng, bạn có thể giải quyết cờ vua, không, bạn sẽ không sớm đâu.


6
"[Y] ou sẽ không còn sớm nữa đâu" là một cách nói hơi nói. Bên cạnh giới hạn về thời lượng dự kiến ​​của vũ trụ, bạn còn gặp phải vấn đề về lưu trữ - số trạng thái trong Cờ vua vượt xa con số 500 tỷ tỷ quân cờ; trên thực tế, nó vượt quá số lượng các hạt trong vũ trụ.
Michael Dorfman

30
"[...] trên thực tế, nó vượt quá số lượng các hạt trong vũ trụ.". Miễn là nó không vượt quá số trạng thái của các hạt trong vũ trụ, thì vẫn còn hy vọng ;-)
Carsten

1
Điều gì sẽ xảy ra khi chương trình luôn ép đối thủ phải thua lại đang đấu với chính mình ????
John Demetriou

1
@BCS hmm, điều gì sẽ xảy ra nếu có một dự đoán trong đó nếu tôi đang chơi với tư cách người chơi thứ hai và người còn lại đang sử dụng kinh nghiệm tương tự như tôi thì hãy làm theo kinh nghiệm này để giành chiến thắng và nếu người chơi đầu tiên có kinh nghiệm tương tự ???? ?
John Demetriou

1
những gì tôi đang nói là nếu có một thuật toán hoàn hảo và cả hai người chơi đều có nó thì sẽ có một số xác suất không xác định mà thuật toán có thể thay đổi để nó trở nên hoàn hảo
John Demetriou

15

Đây không phải là một câu hỏi về máy tính mà chỉ là về trò chơi cờ vua.

Câu hỏi đặt ra là có tồn tại một chiến lược an toàn thất bại để không bao giờ thua trò chơi không? Nếu một chiến lược như vậy tồn tại, thì một chiếc máy tính biết mọi thứ luôn có thể sử dụng nó và nó không còn là một phương pháp heuristic nữa.

Ví dụ, trò chơi tic-tac-toe thông thường được chơi dựa trên phương pháp phỏng đoán. Tuy nhiên, có một chiến lược an toàn thất bại. Dù đối thủ di chuyển thế nào, bạn luôn tìm cách tránh thua trận, nếu bạn làm đúng ngay từ đầu.

Vì vậy, bạn sẽ cần phải chứng minh rằng một chiến lược như vậy có tồn tại hay không đối với cờ vua. Về cơ bản là giống nhau, chỉ là không gian của các bước di chuyển có thể lớn hơn.


Vì vậy, ai đã muốn từ chối câu trả lời của tôi? Có gì sai trong đó không? Muốn có được chính mình ở phía trước?
ypnos

@ypnos, tôi hoàn toàn không bỏ phiếu cho câu trả lời của bạn. Tôi chỉ nhận xét để nói rằng đừng để những người bỏ phiếu ngẫu nhiên làm bạn thất vọng. Bạn đã đạt được 30 đại diện và chỉ mất 1. Ngoài ra, 1;)
mmcdole

1
Một số lý do cho việc downvote. 1) Người ta biết rằng có tồn tại một thuật toán để giải quyết trò chơi, nó chỉ là thuật toán không thực tế để tính toán bằng bất kỳ công nghệ có thể tưởng tượng được. 2) Giải quyết trò chơi KHÔNG có nghĩa là họ tồn tại một chiến lược an toàn. Tic-tac-toe đã được giải quyết, nhưng không có chiến thuật nào cho người chơi thứ hai để tránh bị thua.
DJClayworth

2
"Đây không phải là một câu hỏi về máy tính mà chỉ là về trò chơi cờ vua." Chà, khoa học máy tính không thực sự là về máy tính. Chúng chỉ là một công cụ. Khoa học máy tính hoạt động mà không cần máy tính.
Janus Troelsen

1
Nó - thực sự là một câu hỏi về máy tính, vì câu hỏi đặt ra là liệu một Máy Turing (= Máy tính) có thể tồn tại, giải được cờ vua hay không.
SDwarfs

14

Tôi đến chủ đề này rất muộn và bạn đã nhận ra một số vấn đề. Nhưng với tư cách là một cựu cao thủ và một cựu lập trình viên cờ vua chuyên nghiệp, tôi nghĩ rằng tôi có thể bổ sung một số dữ kiện và số liệu hữu ích. Có một số cách để đo độ phức tạp của cờ vua :

  • Tổng số ván cờ là khoảng 10 ^ (10 ^ 50). Con số đó lớn ngoài sức tưởng tượng.
  • Số ván cờ từ 40 nước đi trở xuống là khoảng 10 ^ 40. Đó vẫn là một con số vô cùng lớn.
  • Số vị trí cờ có thể có là khoảng 10 ^ 46.
  • Cây tìm kiếm cờ vua hoàn chỉnh (số Shannon) là khoảng 10 ^ 123, dựa trên hệ số phân nhánh trung bình là 35 và độ dài trò chơi trung bình là 80.
  • Để so sánh, số lượng nguyên tử trong vũ trụ quan sát được thường được ước tính vào khoảng 10 ^ 80.
  • Tất cả các trò chơi kết thúc từ 6 mảnh trở xuống đã được đối chiếu và giải quyết .

Kết luận của tôi: trong khi cờ vua về mặt lý thuyết là có thể giải quyết được, chúng ta sẽ không bao giờ có tiền, động lực, sức mạnh tính toán hoặc kho lưu trữ để làm điều đó.


3
Thôi nào. Bạn phải nghĩ vấn đề theo cách khác. Đừng nghĩ đến số lượng trò chơi, bởi vì sự chuyển vị và thuật toán alpha-beta và những thứ đó đã cắt giảm rất nhiều. Hãy nghĩ về vị trí bàn cờ (10 ^ 60) hoặc sự kết hợp của các quân cờ (100 triệu). Với Máy tính lượng tử, điều đó thật tầm thường.
lkessler

2
Alpha-beta trong bối cảnh này (giải cờ vua) sẽ yêu cầu một chức năng đánh giá hoàn hảo. Vị trí bảng và kết hợp quân cờ cũng vậy. Chúng ta không có một chức năng đánh giá hoàn hảo, vì vậy tính toán lượng tử không giúp được gì cho chúng ta.
HTTP 410

1
Bất cứ khi nào tôi nghĩ rằng điều gì đó là "tầm thường", và tôi chắc chắn rằng chưa ai làm điều đó, tôi cũng chắc chắn rằng tôi đã sai ít nhất một lần.
Dean J

2
@lkessler: Các vị trí hội đồng quản trị không nói lên toàn bộ câu chuyện. Ít nhất một số lịch sử của trò chơi là cần thiết để nhập thành hoặc bắt người qua đường hoặc rút lui do không bắt được hoặc di chuyển tốt, và toàn bộ lịch sử để hòa do lặp lại. Hơn nữa, vì nó là một kết quả nghiên cứu đáng chú ý gần đây đối với một máy tính lượng tử đến hệ số 15, tôi sẽ không nói gì là tầm thường với điện toán lượng tử ngay bây giờ.
David Thornley

2
Để so sánh ở đây, nếu bạn có thể tạo ra tất cả các thế cờ có thể có, bạn có thể brute-force bất kỳ mật mã nào có khóa 128 bit, vì 10 ^ 46 là khoảng 2 ^ 152 hoặc 2 ^ 153. Có nhiều lý do tuyệt vời để nghĩ rằng điều này là không thể xảy ra trước sự chết nhiệt của Vũ trụ.
David Thornley

9

Trên thực tế, một số trò chơi đã được giải quyết. Tic-Tac-Toe là một trò chơi rất dễ dàng để xây dựng một AI luôn giành chiến thắng hoặc hòa. Gần đây, Connect 4 cũng đã được giải quyết (và được cho là không công bằng với người chơi thứ hai, vì một màn chơi hoàn hảo sẽ khiến anh ta thua cuộc).

Tuy nhiên, cờ vua vẫn chưa được giải quyết và tôi không nghĩ rằng có bất kỳ bằng chứng nào cho thấy đó là một trò chơi công bằng (tức là liệu ván cờ hoàn hảo có kết quả hòa hay không). Nói một cách chính xác từ góc độ lý thuyết, Cờ vua có một số cấu hình quân cờ hữu hạn. Do đó, không gian tìm kiếm là hữu hạn (mặc dù, cực kỳ lớn). Do đó, một máy Turing xác định có thể chơi hoàn hảo thực sự tồn tại. Tuy nhiên, liệu một chiếc có thể được chế tạo hay không lại là một vấn đề khác.


8

Máy tính để bàn trung bình $ 1000 sẽ có thể giải các bộ cờ chỉ trong 5 giây vào năm 2040 (5x10 ^ 20 phép tính).

Ngay cả với tốc độ này, 100 máy tính trong số này vẫn mất khoảng 6,34 x 10 ^ 19 năm để giải cờ vua. Vẫn không khả thi. Thậm chí không gần.

Vào khoảng năm 2080, máy tính để bàn trung bình của chúng tôi sẽ có khoảng 10 ^ 45 phép tính mỗi giây. Một máy tính duy nhất sẽ có sức mạnh tính toán để giải cờ vua trong khoảng 27,7 giờ. Nó chắc chắn sẽ được thực hiện vào năm 2080 miễn là sức mạnh tính toán tiếp tục phát triển như nó đã có trong 30 năm qua.

Đến năm 2090, đủ sức mạnh tính toán sẽ tồn tại trên một máy tính để bàn trị giá 1000 đô la để giải cờ vua trong khoảng 1 giây ... vì vậy vào ngày đó, nó sẽ hoàn toàn tầm thường.

Cờ được đã được giải quyết trong năm 2007, và sức mạnh tính toán để giải quyết nó trong 1 giây sẽ tụt hậu khoảng 33-35 năm, chúng tôi có thể có thể xấp xỉ ước tính cờ vua sẽ được giải quyết ở đâu đó giữa 2055-2057. Có lẽ sẽ sớm hơn kể từ khi có nhiều sức mạnh tính toán hơn (sẽ xảy ra trong 45 năm nữa), nhiều người có thể dành nhiều hơn cho các dự án như thế này. Tuy nhiên, tôi sẽ nói sớm nhất là năm 2050 và muộn nhất là năm 2060.

Vào năm 2060, sẽ mất 100 máy tính để bàn trung bình 3,17 x 10 ^ 10 năm để giải cờ vua. Nhận ra rằng tôi đang sử dụng máy tính $ 1000 làm điểm chuẩn, trong khi các hệ thống và siêu máy tính lớn hơn có thể sẽ có sẵn vì tỷ lệ giá / hiệu suất của chúng cũng đang được cải thiện. Ngoài ra, thứ tự độ lớn của sức mạnh tính toán của chúng tăng với tốc độ nhanh hơn. Hãy xem xét một siêu máy tính hiện có thể thực hiện 2,33 x 10 ^ 15 phép tính mỗi giây và một máy tính 1000 đô la khoảng 2 x 10 ^ 9. Để so sánh, 10 năm trước, sự khác biệt là 10 ^ 5 thay vì 10 ^ 6. Đến năm 2060, mức độ chênh lệch thứ tự có thể sẽ là 10 ^ 12, và thậm chí điều này có thể tăng nhanh hơn dự đoán.

Phần lớn điều này phụ thuộc vào việc chúng ta là con người có động lực để giải cờ vua hay không, nhưng sức mạnh tính toán sẽ làm cho nó khả thi vào khoảng thời gian này (miễn là tốc độ của chúng ta tiếp tục).

Một lưu ý khác, trò chơi Tic-Tac-Toe, đơn giản hơn rất nhiều, có 2.653.002 phép tính có thể thực hiện (với một bảng mở). Sức mạnh tính toán để giải Tic-Tac-Toe trong khoảng 2,5 (1 triệu phép tính mỗi giây) giây đã đạt được vào năm 1990.

Ngược lại, vào năm 1955, một máy tính có khả năng giải Tic-Tac-Toe trong khoảng 1 tháng (1 phép tính trên giây). Một lần nữa, điều này dựa trên số tiền $ 1000 sẽ mang lại cho bạn nếu bạn có thể đóng gói nó vào một máy tính (máy tính để bàn $ 1000 rõ ràng không tồn tại vào năm 1955) máy tính này sẽ được dành để giải quyết Tic-Tac-Toe .... mà hoàn toàn không phải trường hợp năm 1955. Việc tính toán rất tốn kém và sẽ không được sử dụng cho mục đích này, mặc dù tôi không tin rằng có ngày nào mà Tic-Tac-Toe được máy tính cho là "giải được", nhưng tôi chắc chắn rằng nó thua xa sức mạnh tính toán thực tế.

Ngoài ra, hãy tính đến $ 1000 trong 45 năm sẽ có giá trị thấp hơn khoảng 4 lần so với hiện tại, vì vậy nhiều tiền hơn có thể được đưa vào các dự án như thế này trong khi sức mạnh tính toán sẽ tiếp tục rẻ hơn.


9
"Bạn có biết rằng doanh số bán đĩa nhạc disco đã tăng 400% vào năm kết thúc năm 1976? Nếu những xu hướng này tiếp tục ... AAY!" - Disco Stu
Jeremy Friesner

2
Định luật Moore - Sức mạnh máy tính tăng gấp đôi sau mỗi 18 tháng - có khả năng thất bại vào khoảng năm 2015. Hoặc thiết kế bộ xử lý máy tính sẽ phải khác hoàn toàn. Vì vậy, năm 2080 không phải là một mục tiêu thực tế.
Philip Smith,

3
@Philip: Tốc độ xung nhịp của bộ xử lý của máy tính để bàn chỉ tăng nhẹ kể từ năm 2003 và các cải tiến kể từ đó chủ yếu là tăng bộ nhớ đệm và nhiều lõi. Vì bộ xử lý 3 GHz có một chu kỳ xung nhịp trong thời gian ánh sáng di chuyển 4 inch / 10 cm, nên tốc độ xung nhịp không thể tăng vô thời hạn. Hơn nữa, song song thường khó. Dự đoán mức tăng theo cấp số nhân trong năm mươi năm khi nó bắt đầu bị phá vỡ cách đây bảy năm dường như không phải là một sự đặt cược an toàn.
David Thornley,

1
@David - tất cả đều đúng. Nhưng bỏ lỡ điểm. Nếu bạn có kích thước bằng một nửa các thành phần trên chip, các electron sẽ nhận được nhiều gấp đôi ở cùng tốc độ đồng hồ. Đây là điều thúc đẩy định luật Moore.
Philip Smith

3
@Philip: Việc giảm một nửa tất nhiên không thể diễn ra mãi mãi. Một nguyên tử silicon có chiều ngang khoảng một phần tư nanomet, và việc chế tạo chip đã giảm xuống còn hàng chục nanomet. Hơn nữa, ở mức lượng tử, các hạt tuân theo các quy tắc thống kê, không phải quy tắc tuyệt đối, vì vậy cần phải di chuyển xung quanh đủ các electron tại một thời điểm để gọi ra quy luật số lượng lớn. Cho đến nay, định luật Moore nằm ở đâu đó giữa một định luật và một lời tiên tri tự hoàn thành, nhưng điều đó sẽ kết thúc vào một thời gian khá sớm.
David Thornley,

7

Nó thực sự là tốt cho cả hai người chơi phải có chiến thắng chiến lược trong các trò chơi vô hạn không có cũng đặt hàng; tuy nhiên, cờ vua có thứ tự tốt. Trên thực tế, vì quy tắc 50 nước đi , có một giới hạn trên cho số nước đi mà một trò chơi có thể có, và do đó chỉ có rất nhiều ván cờ vua có thể có (có thể liệt kê để giải chính xác .. về mặt lý thuyết, ít nhất :)


4
Về mặt kỹ thuật, quy tắc năm mươi nước đi, giống như lặp lại ba nước đi (cũng giới hạn mọi thứ - có một số vị trí hữu hạn có thể có, vì vậy nhân số đó với ba sẽ cho chúng ta giới hạn trên) không gây ra kết quả hòa. Thay vào đó, nó cho một trong hai người chơi cơ hội để yêu cầu một kết quả hòa. Thông thường, người chơi thua cuộc sẽ làm như vậy, nhưng nó không bắt buộc. Vì vậy, sau đây là một trò chơi hoàn toàn hợp pháp: 1. Nc3 Nc6 2. Nb1 Nb8 3. Nc3 Nc6 4. Nb1 Nb8, lặp đi lặp lại mãi mãi. Và nếu tôi không nhầm, không có gì bác bỏ rằng đó không phải là kết quả của hai thuật toán hoàn hảo chơi là trắng và đen.
Lenoxus

6

Kết thúc tranh luận của bạn được hỗ trợ bởi cách các chương trình cờ vua hiện đại hoạt động hiện nay . Chúng hoạt động theo cách đó vì quá tốn tài nguyên để viết một chương trình cờ vua để hoạt động một cách xác định. Chúng không nhất thiết phải luôn hoạt động theo cách đó. Có thể một ngày nào đó cờ vua sẽ được giải và nếu điều đó xảy ra, nó có thể sẽ được giải bằng máy tính.


5

Đối với kỷ lục, có những máy tính có thể thắng hoặc hòa ở bàn cờ . Tôi không chắc liệu cờ vua có thể làm điều tương tự hay không. Số lần di chuyển cao hơn rất nhiều. Ngoài ra, mọi thứ thay đổi vì các mảnh có thể di chuyển theo bất kỳ hướng nào, không chỉ về phía trước và phía sau. Tôi nghĩ rằng mặc dù tôi không chắc, cờ vua là xác định, nhưng có quá nhiều nước đi có thể xảy ra để máy tính hiện có thể xác định tất cả các nước đi trong một khoảng thời gian hợp lý.


1
Nó có thể được thực hiện, nhưng nó có thể được thực hiện trên một máy tính mà chúng ta thường thấy không?
BCS

1
Có lẽ không phải trong cuộc đời của chúng tôi. Tất cả các nghiên cứu thực sự thú vị trong lĩnh vực này đang được thực hiện trong trò chơi cờ vây. :)
Bill the Lizard

IIRC hầu hết trẻ 6 tuổi có thể là bất kỳ máy tính nào tại Go.
BCS

2
@BCS: Không còn nữa. Các chương trình cờ vây tốt nhất hiện nay đang đánh bại những người chơi cấp độ dan (chuyên nghiệp).
Bill the Lizard

1
@BlueRaja: Đó là vào năm 2008. Tôi không biết kỷ lục hiện tại là bao nhiêu, nhưng MoGo đã đánh bại những người chuyên nghiệp với 6 và 7 đá trên 19x19. ireport.cnn.com/docs/DOC-214010
Bill the Lizard

5

Tôi nghĩ bạn đã chết trên. Các máy như Deep Blue và Deep Thought được lập trình với một số trò chơi được xác định trước và các thuật toán thông minh để phân tích cú pháp các cây thành phần cuối của các trò chơi đó. Tất nhiên, đây là một sự đơn giản hóa quá mức. Luôn có cơ hội "đánh bại" máy tính trong quá trình chơi game. Ý tôi là thực hiện một động thái buộc máy tính phải thực hiện một động thái kém tối ưu (bất kể đó là gì). Nếu máy tính không thể tìm thấy con đường tốt nhất trước thời hạn di chuyển, nó rất có thể mắc lỗi khi chọn một trong những con đường ít mong muốn hơn.

Có một lớp chương trình cờ vua khác sử dụng máy học thực, hoặc lập trình di truyền / thuật toán tiến hóa. Một số chương trình đã được phát triển và sử dụng mạng nơ-ron, et al, để đưa ra quyết định. Trong trường hợp này, tôi sẽ tưởng tượng rằng máy tính có thể mắc "sai lầm", nhưng cuối cùng vẫn chiến thắng.

Có một cuốn sách hấp dẫn về loại GP này tên là Blondie24 mà bạn có thể đọc. Nó là về cờ, nhưng nó có thể áp dụng cho cờ vua.


Đó là cách bạn đánh bại máy tính ngày nay trong cờ vua. Ngày mai sẽ tốt hơn. Tuy nhiên, tôi đồng ý với bạn rằng Blondie24 thật hấp dẫn.
Bill the Lizard

Đã bình chọn sao lưu. Bài đăng này không đáng bị cho điểm tiêu cực.
Cybis

Thật không may, vấn đề trò chơi cờ vua quá lớn để máy học hoạt động. Họ không bao giờ có thể có được một chương trình học cờ vua để thậm chí chơi một cách tin cậy mà không mắc sai lầm. Heuristics tốt hơn. Nhưng Brute Force thậm chí còn tốt hơn. Lĩnh vực Máy học chỉ học được từ thất bại của nó với cờ vua.
lkessler

Các chương trình cờ vua không mắc sai lầm ngắn hạn và các chương trình tốt nhất chơi tốt hơn các nhà vô địch thế giới. Tôi nghĩ rằng phiên bản mới nhất của Rybka 64 bit được xếp hạng là 3200 ELO
Alex

5

Từ lý thuyết trò chơi, câu hỏi này là gì, câu trả lời là có Cờ vua có thể chơi hoàn hảo. Không gian trò chơi được biết đến / có thể dự đoán được và vâng nếu bạn có máy tính lượng tử của cháu bạn, bạn có thể loại bỏ tất cả các kinh nghiệm.

Bạn có thể viết một cỗ máy tic-tac-toe hoàn hảo ngay bây giờ trong bất kỳ ngôn ngữ kịch bản nào và nó sẽ phát hoàn hảo trong thời gian thực.

Othello là một trò chơi khác mà các máy tính hiện tại có thể dễ dàng chơi một cách hoàn hảo, nhưng bộ nhớ và CPU của máy sẽ cần một chút trợ giúp

Về mặt lý thuyết, cờ vua là có thể thực hiện được nhưng không thể thực hiện được (năm 2008)

i-Go rất phức tạp, không gian khả năng vượt quá số lượng nguyên tử trong vũ trụ, vì vậy chúng ta có thể mất một thời gian để tạo ra một cỗ máy i-Go hoàn hảo.



4
Về mặt kỹ thuật, đó là lý thuyết trò chơi tổ hợp.
Anaphory

5

Cờ vua là một ví dụ của trò chơi ma trận, theo định nghĩa có kết quả tối ưu (hãy nghĩ đến điểm cân bằng Nash). Nếu người chơi 1 và 2 mỗi người thực hiện các nước đi tối ưu, một kết quả nhất định sẽ LUÔN đạt được (dù đó là thắng-hòa-thua vẫn chưa được biết).


5

Là một lập trình viên cờ vua từ những năm 1970, tôi chắc chắn có ý kiến ​​về điều này. Những gì tôi đã viết khoảng 10 năm trước, về cơ bản vẫn đúng cho đến ngày nay:

"Công việc chưa hoàn thành và thách thức đối với lập trình viên cờ vua"

Hồi đó, tôi nghĩ chúng ta có thể giải Cờ vua theo cách thông thường, nếu làm đúng cách.

Rô đã được giải gần đây (Yay, Đại học Alberta, Canada !!!) nhưng điều đó đã được thực hiện một cách hiệu quả Brute Force. Để chơi cờ vua thông thường, bạn sẽ phải thông minh hơn.

Tất nhiên, trừ khi Điện toán lượng tử trở thành hiện thực. Nếu vậy, cờ vua sẽ được giải quyết dễ dàng như Tic-Tac-Toe.

Vào đầu những năm 1970 trên tạp chí Scientific American, có một đoạn nhại ngắn khiến tôi chú ý. Đó là một thông báo rằng trò chơi cờ vua đã được giải quyết bằng máy tính cờ vua của Nga. Nó đã xác định rằng có một nước đi hoàn hảo cho trắng sẽ đảm bảo chiến thắng với lối chơi hoàn hảo của cả hai bên, và nước đi đó là: 1. a4!


3

Rất nhiều câu trả lời ở đây tạo nên những điểm quan trọng của lý thuyết trò chơi:

  1. Cờ vua là một trò chơi hữu hạn, xác định với thông tin đầy đủ về trạng thái trò chơi
  2. Bạn có thể giải quyết một trò chơi hữu hạn và xác định một chiến lược hoàn hảo
  3. Cờ vua đủ lớn đến mức bạn sẽ không thể giải quyết triệt để nó bằng phương pháp vũ phu

Tuy nhiên, những nhận xét này đã bỏ sót một điểm thực tế quan trọng: không nhất thiết phải giải quyết toàn bộ trò chơi một cách hoàn hảo để tạo ra một cỗ máy bất bại .

Trên thực tế, rất có thể bạn có thể tạo ra một cỗ máy chơi cờ bất bại (tức là sẽ không bao giờ thua và sẽ luôn buộc phải thắng hoặc hòa) mà không cần tìm kiếm dù chỉ là một phần nhỏ của không gian trạng thái có thể có.

Ví dụ, các kỹ thuật sau đây đều giảm đáng kể không gian tìm kiếm cần thiết:

  • Các kỹ thuật cắt tỉa cây như Alpha / Beta hoặc MTD-f đã giảm đáng kể không gian tìm kiếm
  • Vị trí chiến thắng có thể cung cấp. Nhiều kết thúc thuộc loại này: Ví dụ, bạn không cần phải tìm kiếm KR vs K, đó là một chiến thắng đã được chứng minh. Với một số công việc, có thể chứng minh nhiều chiến thắng được đảm bảo hơn.
  • Gần như chắc chắn thắng - nếu chơi "đủ tốt" mà không mắc bất kỳ sai lầm ngớ ngẩn nào (nói về ELO 2200+?), Nhiều vị trí cờ gần như chắc chắn thắng, ví dụ lợi thế vật chất khá (ví dụ thêm một Hiệp sĩ) mà không có lợi thế vị trí bù đắp. Nếu chương trình của bạn có thể ép buộc một vị trí như vậy và có đủ kinh nghiệm để phát hiện ra lợi thế vị trí, nó có thể an toàn cho rằng nó sẽ thắng hoặc ít nhất là hòa với xác suất 100%.
  • Kinh nghiệm tìm kiếm dạng cây - với khả năng nhận dạng mẫu đủ tốt, bạn có thể nhanh chóng tập trung vào tập hợp con có liên quan của các động thái "thú vị". Đây là cách chơi của các kiện tướng nên rõ ràng đây không phải là một chiến lược tồi ..... và các thuật toán nhận dạng mẫu của chúng tôi không ngừng trở nên tốt hơn
  • Đánh giá rủi ro - một khái niệm tốt hơn về "mức độ rủi ro" của một vị trí sẽ cho phép tìm kiếm hiệu quả hơn nhiều bằng cách tập trung sức mạnh tính toán vào các tình huống mà kết quả không chắc chắn hơn (đây là một phần mở rộng tự nhiên của Quiescence Search )

Với sự kết hợp đúng đắn của các kỹ thuật trên, tôi có thể thoải mái khẳng định rằng có thể tạo ra một cỗ máy chơi cờ "bất bại". Có lẽ chúng ta không còn quá xa với công nghệ hiện tại.

Lưu ý rằng Gần như chắc chắn khó hơn để chứng minh rằng chiếc máy này không thể bị đánh bại. Nó có thể sẽ giống như giả thuyết Reimann - chúng tôi khá chắc chắn rằng nó chơi hoàn hảo và sẽ có kết quả thực nghiệm cho thấy nó không bao giờ thua (bao gồm cả vài tỷ trận hòa liên tiếp với chính nó), nhưng chúng tôi sẽ không thực sự có khả năng chứng minh điều đó.

Lưu ý bổ sung về "sự hoàn hảo":

Tôi cẩn thận không mô tả máy là "hoàn hảo" theo nghĩa lý thuyết trò chơi vì điều đó ngụ ý các điều kiện bổ sung mạnh bất thường, chẳng hạn như:

  • Luôn chiến thắng trong mọi tình huống có thể buộc phải thắng, cho dù cách kết hợp thắng có thể phức tạp đến đâu. Sẽ có những tình huống ở ranh giới giữa thắng / hòa mà điều này cực kỳ khó để tính toán hoàn hảo.
  • Khai thác tất cả các thông tin có sẵn về sự không hoàn hảo tiềm ẩn trong lối chơi của đối thủ, chẳng hạn như suy ra rằng đối thủ của bạn có thể quá tham lam và cố tình chơi một đường hơi yếu hơn bình thường với lý do rằng nó có khả năng lớn hơn để dụ đối thủ của bạn phạm sai lầm. Trên thực tế, đối đầu với những đối thủ không hoàn hảo, trên thực tế, việc thua cuộc có thể là tối ưu nếu bạn ước tính rằng đối thủ của bạn có thể không phát hiện ra chiến thắng bắt buộc và nó mang lại cho bạn xác suất chiến thắng cao hơn.

Perfection (đặc biệt là cho không hoàn hảo và đối thủ vô danh) là một nhiều vấn đề khó khăn hơn so với chỉ đơn giản là cạnh tranh nhất.


Có đối thủ không hoàn hảo không phải là một vấn đề thực sự. Điều này chỉ làm cho người chơi hoàn hảo thắng / hòa (kết quả hoàn hảo là như thế nào) với ít nước đi hơn. Một nước đi tối ưu ở mỗi vị trí luôn tốt hơn hoặc bằng các nước đi có thể có khác (theo định nghĩa). Vì vậy, một nước đi dưới mức tối ưu cho phép đối thủ của bạn đạt được trạng thái kết thúc tối ưu (thắng / hòa) sớm hơn hoặc thậm chí cho phép tạo ra một kết quả tốt hơn. Ví dụ, nếu màu đen luôn luôn thua nếu màu trắng chơi hoàn hảo, thì có thể màu đen sẽ thắng, nếu màu trắng chỉ chơi một nước đi tối ưu duy nhất. Nhưng có, điều này sẽ làm tăng độ phức tạp của phân tích một chút.
SDwarfs

@Stefan - đối thủ không hoàn hảo là một vấn đề rất lớn nếu bạn quan tâm đến lối chơi tối ưu . Đặc biệt, bạn có thể tính đến những tình huống mà bạn thực sự thích chơi một nước đi thua (tức là một nước đi mà một đối thủ hoàn hảo chắc chắn sẽ đánh bại bạn) nếu bạn biết rằng xác suất đối phương mắc sai lầm là đủ cao.
mikera

cách chơi tối ưu theo quan điểm của tôi có nghĩa là đạt được kết quả tốt nhất có thể với rủi ro bằng không. Đối thủ của bạn có lẽ là "yếu" nhưng khi bạn chơi nước đi thua đó , họ có thể vô tình chơi một nước đi hay. Quan tâm đến các đối thủ dưới mức tối ưu chỉ có liên quan nếu chỉ có sự lựa chọn giữa các nước đi thua trong đó một trong số họ có khả năng mắc sai lầm cao hơn bởi đối thủ (chơi dưới mức tối ưu) thực sự dẫn đến hòa hoặc thắng.
SDwarfs

1
Đó không phải là định nghĩa thông thường về tối ưu trong lý thuyết trò chơi. Tối ưu thường có nghĩa là tối đa hóa kết quả mong đợi . Trong trường hợp đó, một người chơi tối ưu sẽ chấp nhận một số rủi ro với điều kiện là trung bình sẽ có kết quả tốt hơn .
mikera

Trong trường hợp đó bạn hoàn toàn đúng!
SDwarfs

2

nếu bạn tìm kiếm toàn bộ không gian của tất cả các kết hợp của người chơi 1/2 nước đi, thì nước đi duy nhất mà máy tính quyết định ở mỗi bước sẽ dựa trên kinh nghiệm.

Có hai ý tưởng cạnh tranh ở đó. Một là bạn tìm kiếm mọi nước đi có thể, và hai là bạn quyết định dựa trên kinh nghiệm. Heuristic là một hệ thống để đưa ra một dự đoán chính xác. Nếu bạn đang tìm kiếm mọi động thái có thể, thì bạn không còn đoán được nữa.


Trên thực tế, trích dẫn là đúng. Các chương trình xem xét tất cả các nước đi có thể xảy ra cho cả hai bên ở vị trí hiện tại và sử dụng các phép phỏng đoán để tìm ra nước đi tốt để điều khiển trò chơi theo hướng có lợi cho máy tính.
Bill the Lizard

1
Không, họ không xem xét tất cả các động thái có thể. Họ sử dụng kinh nghiệm di chuyển vô hiệu để cắt tỉa cây.
Alex

2

"Có một thuật toán hoàn hảo cho cờ vua không?"

Có, có. Có lẽ vì vậy mà Trắng luôn thắng. Có lẽ vì vậy mà Đen luôn thắng. Có lẽ ít nhất cả hai luôn phải ràng buộc nhau. Chúng tôi không biết cái nào, và chúng tôi sẽ không bao giờ biết, nhưng nó chắc chắn tồn tại.

Xem thêm


1
Là một người chơi cờ khá giỏi và đã nghiên cứu vấn đề sâu rộng trong nhiều năm, tôi chắc chắn 99,9% rằng chiến lược hoàn hảo trong cờ vua cho cả hai người chơi dẫn đến kết quả hòa (giống như đã được chứng minh với cờ caro). Cũng có bằng chứng cho thấy khi sức mạnh của người chơi tăng lên, thì tỷ lệ số trận hòa cũng vậy.
mikera


2

Nó hoàn toàn có thể giải quyết được.

Có 10 ^ 50 vị trí lẻ. Mỗi vị trí, theo tính toán của tôi, yêu cầu tối thiểu 64 byte tròn để lưu trữ (mỗi hình vuông có: 2 bit liên kết, 3 bit mảnh). Một khi chúng được đối chiếu, các vị trí là người kiểm tra có thể được xác định và các vị trí có thể được so sánh để tạo thành một mối quan hệ, cho thấy vị trí nào dẫn đến các vị trí khác trong cây kết quả lớn.

Sau đó, chương trình chỉ cần tìm gốc kiểm tra một bên thấp nhất, nếu điều đó tồn tại. Trong mọi trường hợp, Cờ vua được giải quyết khá đơn giản ở cuối đoạn đầu tiên.


1

Tôi chỉ bị thuyết phục 99,9% bởi tuyên bố rằng kích thước của không gian trạng thái khiến tôi không thể hy vọng vào giải pháp.

Chắc chắn, 10 ^ 50 là một con số không thể lớn hơn được. Hãy gọi kích thước của không gian trạng thái là n.

Ràng buộc về số nước đi trong trò chơi dài nhất có thể là gì? Vì tất cả các trò chơi kết thúc bằng một số lượng nước đi hữu hạn nên tồn tại một giới hạn như vậy, nên gọi nó là m.

Bắt đầu từ trạng thái ban đầu, bạn không thể liệt kê tất cả n chuyển động trong không gian O (m)? Chắc chắn, phải mất O (n) thời gian, nhưng các đối số từ kích thước của vũ trụ không trực tiếp giải quyết điều đó. Không gian O (m) thậm chí có thể không nhiều lắm. Đối với không gian O (m), bạn cũng không thể theo dõi, trong quá trình truyền tải này, liệu sự tiếp tục của bất kỳ trạng thái nào dọc theo con đường bạn đang đi qua dẫn đến EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin hoặc BlackMayWinOrForceDraw? (Có một mạng tinh thể tùy thuộc vào lượt của ai, hãy chú thích từng trạng thái trong lịch sử truyền tải của bạn với điểm gặp nhau của mạng tinh thể.)

Trừ khi tôi thiếu thứ gì đó, đó là một thuật toán không gian O (n) thời gian / O (m) để xác định loại cờ vua có thể rơi vào. Wikipedia trích dẫn một ước tính cho tuổi của vũ trụ vào khoảng 10 ^ 60 lần Planck. Không cần tranh luận về vũ trụ học, hãy đoán rằng còn khoảng thời gian nữa trước khi vũ trụ nóng / lạnh / chết đi. Điều đó khiến chúng ta cần đánh giá một nước đi sau mỗi 10 ^ 10 lần Planck hoặc cứ sau 10 ^ -34 giây. Đó là một khoảng thời gian ngắn không thể tưởng tượng được (ngắn hơn khoảng 16 bậc độ lớn so với thời gian ngắn nhất từng được quan sát). Hãy nói một cách lạc quan rằng với một triển khai siêu tốt-tốt chạy trên đầu dòng công nghệ hiện tại-hoặc-forseen-không-lượng-tử-P-là-một-đúng-hợp-của-NP, chúng tôi có thể hy vọng đánh giá (lấy một một bước về phía trước, phân loại trạng thái kết quả là trạng thái trung gian hoặc một trong ba trạng thái kết thúc) ở tốc độ 100 MHz (cứ 10 ^ -8 giây một lần). Vì thuật toán này rất có thể song song hóa, điều này khiến chúng ta cần những máy tính thứ 10 ^ 26 như vậy hoặc khoảng một chiếc cho mỗi nguyên tử trong cơ thể tôi, cùng với khả năng thu thập kết quả của chúng.

Tôi cho rằng luôn có một vài hy vọng cho một giải pháp vũ phu. Chúng ta có thể gặp may và khi chỉ khám phá một trong các nước đi có thể có của quân trắng, cả hai đều chọn một trong những nước đi có tỷ lệ ăn thua thấp hơn nhiều so với mức trung bình và một trong đó trắng luôn thắng hoặc thắng-hoặc-hòa.

Chúng tôi cũng có thể hy vọng sẽ thu hẹp phần nào định nghĩa về cờ vua và thuyết phục mọi người rằng nó vẫn là một trò chơi giống nhau về mặt đạo đức. Chúng ta có thực sự cần phải yêu cầu các vị trí lặp lại 3 lần trước khi hòa không? Chúng ta có thực sự cần khiến nhóm bỏ chạy chứng tỏ khả năng chạy trốn trong 50 lần di chuyển không? Có ai còn hiểu cái quái gì xảy ra với quy tắc en passant không? ;) Nghiêm trọng hơn, chúng ta thực sự cần phải buộc một cầu thủ phải di chuyển (như trái ngược với một trong hai bản vẽ hoặc mất) khi mình chỉ di chuyển để thoát khỏi séc hoặc một bế tắc là một en passant chụp? Liệu chúng ta có thể giới hạn sự lựa chọn của quân cờ mà một con tốt có thể được thăng chức nếu việc thăng hạng không phải quân hậu mong muốn không dẫn đến việc kiểm tra hoặc kiểm tra ngay lập tức?

Tôi cũng không chắc chắn về mức độ cho phép mỗi máy tính truy cập dựa trên băm vào cơ sở dữ liệu lớn về các trạng thái cuối trò chơi và kết quả có thể có của chúng (có thể tương đối khả thi trên phần cứng hiện có và với cơ sở dữ liệu trò chơi cuối hiện có) có thể giúp cắt giảm tìm kiếm sớm hơn. Rõ ràng là bạn không thể ghi nhớ toàn bộ hàm mà không có bộ nhớ O (n), nhưng bạn có thể chọn một số nguyên lớn và ghi nhớ rằng nhiều trò chơi kết thúc liệt kê ngược từ mỗi trạng thái kết thúc có thể (hoặc thậm chí không dễ dàng chứng minh là không thể, tôi cho là).


1
M = 5898. Luật chơi cờ FIDE xác định rằng bạn phải di chuyển một con tốt hoặc quân cờ (thứ không thể thay đổi trò chơi) ít nhất cứ sau 50 nước đi (gọi là quy tắc 50 nước đi) hoặc một trong những người chơi có thể yêu cầu hòa. Người ta đã tính toán rằng trò chơi dài nhất có thể là 5898 nước đi, nếu cả hai người chơi hợp tác và yêu cầu hòa càng sớm càng tốt. Sẽ không có ý nghĩa gì khi tiếp tục chơi, nếu cả hai người chơi đều có thể có kết quả hòa. Nếu một người chơi nhận thấy mình thua, họ có thể yêu cầu hòa, cho kết quả tương tự. Xem: cờ vua.com/blog/kurtgodden/the-longest-possible-chess-game
SDwarfs

1
Lưu ý: m = 5898 là số "nước đi". Số lần di chuyển tối đa của một nửa là (118-3) * 100 + 3 * 99 = 11797. Bạn có thể tìm thấy bằng chứng tại đây (tiếng Đức!): De.wikipedia.org/wiki/50-Z%C3%BCge-Regel# Schachmathematik
SDwarfs

1

Tôi biết đây là một chút rắc rối, nhưng tôi phải bỏ 5 xu trị giá của mình vào đây. Máy tính hoặc một người vì vấn đề đó có thể kết thúc mọi ván cờ mà anh / cô ấy / nó tham gia dù thắng hoặc bế tắc.

Tuy nhiên, để đạt được điều này, bạn phải biết chính xác mọi động thái và phản ứng có thể xảy ra, v.v., cho đến từng kết quả trò chơi có thể xảy ra và để hình dung điều này, hoặc để dễ dàng phân tích thông tin này, hãy nghĩ đến nó như một bản đồ tư duy liên tục phân nhánh.

Nút trung tâm sẽ là điểm bắt đầu của trò chơi. Mỗi nhánh trong mỗi nút sẽ tượng trưng cho một nước đi, mỗi nhánh khác với các nước anh em của nó. Trình bày nó trong trang viên này sẽ tốn nhiều nguồn lực, đặc biệt nếu bạn đang làm điều này trên giấy. Trên máy tính, điều này có thể mất hàng trăm Terrabyte dữ liệu, vì bạn sẽ có rất nhiều động thái phản hồi, trừ khi bạn làm cho các nhánh quay trở lại.

Tuy nhiên, để ghi nhớ những dữ liệu như vậy sẽ là điều không tưởng, nếu không muốn nói là không thể. Để làm cho một máy tính nhận ra bước đi tối ưu nhất để thực hiện ngay lập tức (nhiều nhất) 8 nước đi có thể, nhưng không hợp lý ... vì máy tính đó sẽ cần có khả năng xử lý tất cả các nhánh trước đó, tất cả các cách để đưa ra kết luận, đếm tất cả các kết luận dẫn đến chiến thắng hoặc bế tắc, sau đó hành động dựa trên số lượng kết luận thắng so với kết luận thua và điều đó sẽ yêu cầu RAM có khả năng xử lý dữ liệu trong Terrabyte hoặc hơn! Và với công nghệ ngày nay, một chiếc máy tính như vậy sẽ yêu cầu nhiều hơn số dư ngân hàng của 5 người đàn ông và / hoặc phụ nữ giàu nhất thế giới!

Vì vậy, sau tất cả những cân nhắc, nó có thể được thực hiện, tuy nhiên, không ai có thể làm điều đó. Một nhiệm vụ như vậy sẽ đòi hỏi 30 bộ óc sáng suốt nhất còn sống hiện nay, không chỉ trong cờ vua, mà còn trong khoa học và công nghệ máy tính, và một nhiệm vụ như vậy chỉ có thể được hoàn thành trên một (hãy đặt nó hoàn toàn ở góc độ cơ bản) ... cực kỳ siêu máy tính siêu duper ... không thể tồn tại trong ít nhất một thế kỷ. Nó sẽ được thực hiện! Chỉ là không có trong cuộc đời này.


1

Có hai sai lầm trong thử nghiệm suy nghĩ của bạn:

  1. Nếu máy Turing của bạn không bị "giới hạn" (về bộ nhớ, tốc độ, ...) thì bạn không cần phải sử dụng heuristics mà có thể tính toán đánh giá các trạng thái cuối cùng (thắng, thua, hòa). Để tìm ra trò chơi hoàn hảo, bạn chỉ cần sử dụng thuật toán Minimax (xem http://en.wikipedia.org/wiki/Minimax ) để tính toán các nước đi tối ưu cho mỗi người chơi, điều này sẽ dẫn đến một hoặc nhiều trò chơi tối ưu.

  2. Cũng không có giới hạn về độ phức tạp của phương pháp heuristic đã sử dụng. Nếu bạn có thể tính toán một trò chơi hoàn hảo, thì cũng có một cách để tính toán một cách tính toán hoàn hảo từ nó. Nếu cần, nó chỉ là một chức năng lập bản đồ các thế cờ theo cách "Nếu tôi ở trong tình huống này, nước đi tốt nhất của tôi là M".

Như những người khác đã chỉ ra, điều này sẽ kết thúc với 3 kết quả có thể xảy ra: trắng có thể buộc thắng, đen có thể buộc thắng, một trong số họ có thể buộc hòa.

Kết quả của một trò chơi cờ caro hoàn hảo đã được "tính toán". Nếu nhân loại không tự hủy diệt trước đó, thì một ngày nào đó cờ vua cũng sẽ có một phép tính, khi máy tính đã tiến hóa đủ để có đủ bộ nhớ và tốc độ. Hoặc chúng ta có một số máy tính lượng tử ... Hoặc cho đến khi ai đó (nhà nghiên cứu, chuyên gia cờ vua, thiên tài) tìm ra một số thuật toán làm giảm đáng kể độ phức tạp của trò chơi. Để đưa ra một ví dụ: Tổng của tất cả các số từ 1 đến 1000 là gì? Bạn có thể tính 1 + 2 + 3 + 4 + 5 ... + 999 + 1000, hoặc bạn có thể tính đơn giản: N * (N + 1) / 2 với N = 1000; result = 500500. Hãy tưởng tượng bạn không biết về công thức đó, bạn không biết về quy nạp Toán học, bạn thậm chí không biết cách nhân hoặc cộng các số, ... Vì vậy, Có thể có một thuật toán hiện chưa được biết đến cuối cùng chỉ làm giảm độ phức tạp của trò chơi này và sẽ chỉ mất 5 phút để tính toán nước đi tốt nhất với máy tính hiện tại. Có thể bạn thậm chí có thể ước lượng nó như một con người bằng bút và giấy, hoặc thậm chí trong tâm trí của bạn, nếu có thêm một thời gian nữa.

Vì vậy, câu trả lời nhanh chóng là: Nếu nhân loại tồn tại đủ lâu, vấn đề chỉ là thời gian!


0

Nó chỉ có thể là có thể giải quyết được, nhưng có điều gì đó làm tôi khó chịu: Ngay cả khi toàn bộ cây có thể bị cắt ngang, vẫn không có cách nào để dự đoán nước đi tiếp theo của đối thủ. Chúng ta phải luôn căn cứ vào tình trạng của đối thủ, và chuẩn bị sẵn nước đi "tốt nhất". Sau đó, dựa trên trạng thái tiếp theo chúng ta thực hiện lại. Vì vậy, nước đi tối ưu của chúng ta có thể là nước đi tối ưu khi đối thủ di chuyển theo một cách nhất định. Đối với một số nước đi của đối thủ, nước đi cuối cùng của chúng ta có thể là chưa tối ưu.

Tôi chỉ không biết làm thế nào có thể có một động thái "hoàn hảo" trong mỗi bước.

Đối với trường hợp đó, đối với mọi trạng thái [trong trò chơi hiện tại] phải có một con đường trên cây dẫn đến chiến thắng, bất kể nước đi tiếp theo của đối thủ (như trong tic-tac-toe), và tôi có khó thời gian tìm ra điều đó.


5
Nước đi hoàn hảo được quyết định bởi chiến lược 'tối thiểu': Đó là nước đi tối đa hóa số điểm tối thiểu có thể của bạn (với tất cả các nước đi đối phương có thể thực hiện). Hay nói một cách khác, nó cho rằng đối thủ cũng chơi hoàn hảo.
Nick Johnson

Đây là một điểm thú vị. Có thể xảy ra một tình huống mà phản ứng với nước đi tốt nhất có thể sẽ khiến bạn gặp bất lợi nếu đối thủ của bạn không thực hiện nước đi tốt nhất có thể? Điều này có ý nghĩa gì?
Nona Urbiz

Tôi không phải là nhà toán học và không phải là một người chơi cờ giỏi; Tôi cũng giả định rằng trên lý thuyết (nên biết toàn bộ cây trò chơi) rằng câu trả lời cho điều này là 'có'. Tuy nhiên, bây giờ bạn đề cập đến vấn đề này [sự lựa chọn của người chơi khác], điều này có nghĩa là hệ thống có khả năng không thể đoán trước? Có điểm giữa trận nào mà người chơi kia có thể gây bất lợi không? Điều này có hơi giống với thực tế là Perceptron (Neural Net) có thể học 'OR' và 'AND' nhưng không bao giờ có thể nắm được 'XOR' không? Cờ vua có phải là một ví dụ của hệ thống 'Chaotic' không? FWIW, IMHO Tôi nghĩ rằng câu trả lời có vẻ là 'dunno' vào thời điểm này.
monojohnny

@Nona Theo định nghĩa, động thái đó sẽ là động thái tốt nhất. Không có giả định.
piccolbo 14/10/10

@piccolbo: Tốt hơn - một trong những động thái tốt nhất. Có những thế cờ trong đó nhiều nước đi dẫn đến cùng một kết quả (thắng, hòa hoặc thua với cùng một số nước đi).
SDwarfs

0

Về mặt toán học, cờ vua đã được giải bằng thuật toán Minimax , thuật toán có từ những năm 1920 (do Borel hoặc von Neumann tìm ra). Vì vậy, một máy turing thực sự có thể chơi cờ vua hoàn hảo.

Tuy nhiên, sự phức tạp về tính toán của cờ vua khiến nó thực tế không khả thi. Các động cơ hiện tại sử dụng một số cải tiến và phương pháp phỏng đoán. Các công cụ hàng đầu ngày nay đã vượt qua con người tốt nhất về sức mạnh chơi, nhưng do tính toán kinh nghiệm mà họ đang sử dụng, chúng có thể không chơi hoàn hảo khi có thời gian vô hạn (ví dụ: va chạm băm có thể dẫn đến kết quả không chính xác).

Gần nhất mà chúng tôi hiện có về lối chơi hoàn hảo là bàn chơi cuối game . Kỹ thuật điển hình để tạo ra chúng được gọi là phân tích ngược dòng . Hiện tại, tất cả các vị trí có tới sáu mảnh đã được giải quyết.


-1

Vâng , trong toán học, cờ vua được phân loại là một trò chơi xác định, có nghĩa là nó có một thuật toán hoàn hảo cho mỗi người chơi đầu tiên, điều này đã được chứng minh là đúng ngay cả đối với bàn cờ truyền thống, vì vậy một ngày nào đó có lẽ một AI lượng tử sẽ tìm ra chiến lược hoàn hảo, và trò chơi đã biến mất

Thông tin thêm về điều này trong video này: https://www.youtube.com/watch?v=PN-I6u-AxMg

Ngoài ra còn có cờ vua lượng tử, không có bằng chứng toán học nào chứng minh rằng đó là trò chơi xác định http://store.steampowered.com/app/453870/Quantum_Chess/

và ở đó bạn có video chi tiết về cờ lượng tử https://chess24.com/en/read/news/quantum-chess


-2

Tất nhiên chỉ có 10 đến sức mạnh của năm mươi sự kết hợp có thể có của các quân cờ trên bàn cờ. Lưu ý rằng, để chơi theo mọi phép so sánh, bạn sẽ cần thực hiện dưới 10 đến sức mạnh của năm mươi nước đi (bao gồm cả các lần lặp lại nhân số đó với 3). Vì vậy, có ít hơn mười đến sức mạnh của một trăm nước đi trong cờ vua. Chỉ cần chọn những người dẫn đến kiểm tra và bạn đã sẵn sàng


-3

Toán học 64 bit (= bàn cờ) và toán tử bit (= nước đi có thể tiếp theo) là tất cả những gì Bạn cần. Rất dễ. Brute Force thường sẽ tìm ra cách tốt nhất. Tất nhiên, không có thuật toán chung cho tất cả các vị trí. Trong cuộc sống thực sự tính toán cũng có giới hạn về thời gian, hết thời gian sẽ dừng lại. Một chương trình cờ vua tốt có nghĩa là mã nặng (vượt qua, quân tốt gấp đôi, v.v.). Mã nhỏ không thể rất mạnh. Cơ sở dữ liệu trò chơi mở và kết thúc chỉ tiết kiệm thời gian xử lý, một số loại dữ liệu được xử lý trước. Ý tôi là thiết bị - hệ điều hành, khả năng phân luồng, môi trường, phần cứng xác định các yêu cầu. Ngôn ngữ lập trình là quan trọng. Dù sao thì, quá trình phát triển thật thú vị.

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.