chezz
23-12-2022, 07:41 PM
Một trong các thú vui của dân yêu cờ yêu máy tính là cho các chương trình hoặc hệ thống chơi cờ “chiến” với nhau để tìm xem cái nào tốt nhất. Có nhiều kiểu chiến. Dân Việt và Trung đã nói nhiều đến kiểu chiến “tổng lực” bằng cách đọ vài ván cờ giữa những người chủ với nhau trực tiếp hoặc qua mạng để xem ai có phần cứng tốt hơn, trình cờ tốt/mới/nhiều U hơn, book (cẩm nang khai cuộc) cao tay hơn hay người chủ có trình độ điều khiển giỏi hơn!
Kiểu thử trên rất thú vị, nhiều gay cấn. Người ta vẫn dùng trong các giải đấu phần mềm cờ hoặc giữa người và máy. Tuy vậy cách này nặng về tính thi thố, cá cược. Kết quả tuy chỉ ra hệ thống cờ nào là tốt nhất nhưng vẫn có nhiều điều không chắc chắn, không trả lời được câu hỏi cơ bản chương trình cờ nào là tốt nhất. Rất có thể một bên thắng vì họ có phần cứng tốt hơn, cẩm nang khai cuộc tốt hơn, người điều khiển giỏi hơn hoặc tổng hoà những thứ đó.
Có một kiểu “chiến” khác tìm xem chương trình cờ nào là tốt nhất. Cách thử nghiệm hợp lý là chạy các trình cờ đó trong các điều kiện giống nhau để đảm bảo công bằng và so sánh được. Phổ biến và đơn giản nhất là chạy chúng trong cùng một máy tính, thiết lập cùng giá trị cho các tham số quan trọng nhất như số luồng (thread, CPU), kích thước bảng hash. Để tránh các ưu thế về đi trước/sau và ảnh hưởng của cẩm nang khai cuộc thì thường các trình cờ sẽ đấu với nhau với số ván chẵn bằng cách đấu nhiều vòng, mỗi vòng sẽ đổi bên để đảm bảo số lần được đi trước như nhau và mỗi vòng đi/về sẽ chơi cùng khai cuộc để đảm bảo công bằng.
Vì cờ là vô cùng, cả người lẫn các chương trình cờ khó có thể luôn thắng hay đi hệt như các ván trước. Cho dù chơi cùng khai cuộc và cùng thời gian vẫn có lúc thắng lúc thua. Điều này đặc biệt đúng khi các chương trình cờ có trình độ không cách nhau quá xa. Muốn tránh cái rủi ro bất ổn này người ta phải cho các chương trình cờ đấu với số lượng lớn, từ vài chục đến hàng nghìn ván. Để tiến hành chơi với số lượng lớn ván cờ như vậy người ta thường phải dùng cờ nhanh, vài phút cho mỗi bên. Người ta cũng dùng ít U (luồng/thread) cho các chương trình cờ. Thông thường chỉ cần 1 và bỏ ponder (chức năng cho phép tính toán trong khi đối phương đang tới lượt). Nhờ thế người ta có thể chạy cùng lúc hàng chục ván cờ trên máy tính đời mới nhiều CPU. Nên nhớ do máy tính ngày càng mạnh một ván cờ nhanh trên máy tính đời mới nhiều khi còn tính toán nhiều hơn ván cờ chậm trên các máy đời cũ hơn.
Người ta cũng để các GUI (trình giao diện cờ) điều khiển tự động các ván đấu này, tránh sự can thiệp của người làm mất đi sự công bằng. Cũng chỉ có máy tự động mới tiến hành được hàng trăm ván cờ ròng rã nhiều ngày đêm.
Dưới đây là thử nghiệm của tôi với 4 chương trình cờ Tướng loại miễn phí và được coi là mạnh hiện nay bao gồm Pikafish, GG chess 9.0, SA chess 1.6 và Fairy Stockfish.
Hai chương trình cờ GG chess, SA chess từng nổi đình đám trong giới cờ chúng ta lâu nay. GG chess hồi đầu là bản thương mại (bán), tương đối ngang ngửa với các chương trình cờ mạnh nhất thời đó. Thường nó kém một ít nhưng cũng có phiên bản vọt lên dẫn đầu được một thời gian. Cách đây khoảng hai năm tác giả ngừng cải tiến, thôi không bán nó nữa và cho luôn mã nguồn trên Internet. Nó vẫn là chương trình rất mạnh và chơi có bản sắc riêng. Chương trình cờ SA chess của một tác giả gốc TQ sống ở Úc cũng nổi đình đám thời đó. Phiên bản 1.6 là bản miễn phí cuối cùng. Cùng năm ra bản 1.6 tác giả đã mang nó về TQ thi đấu trong một giải cờ máy nổi tiếng và đoạt vị trí thứ hai, chỉ sau XQMS. Ngay sau đó tác giả đã ra mắt phiên bản 1.8 là bản thương mại và kinh doanh từ hồi đó đến giờ. Tuy nhiên tôi không thấy tác giả ra phiên bản mới nữa, trang web thỉnh thoảng sập một thời gian. Có lẽ việc kinh doanh không thuận lợi và tác giả cũng chán hoặc bận việc khác.
Pikafish là chương trình cờ mới ra đời gần đây, cải tiến từ chương trình cờ nổi tiếng Stockfish của cờ Vua thành cờ Tướng và họ tạo dữ liệu học máy cho công nghệ cờ NNUE. Hiện nay nó được coi là trình miễn phí mạnh nhất. Trên trang mạng họ tuyên bố đã hạ được trình cờ AlphaCat và họ nói họ sẽ phấn đấu để hạ bệ tất cả các chương trình cờ thương mại khác. Họ tin tưởng rằng họ sẽ làm được cũng như Stockfish đã làm với thế giới cờ Vua. Một số người đề nghị có thêm chức năng chạy theo cách cổ điển, không dùng NNUE. Tác giả đã trả lời rằng họ không có phần mã này và đùa rằng họ chỉ có thể làm được nếu ai đó “cắt” chúng từ các chương trình nổi tiếng, thương mại như Cyclone hay XQMS. Qua đó mọi người đoán rằng họ đã lấy các ván cờ từ các chương trình cao cấp để “dậy” nó qua công nghệ NNUE.
Fairy-Stockfish cũng tương tự như Pikafish, họ nhà “cá” cả: được cải tiến từ trình cờ Vua Stockfish. Có điều Fairy-Stockfish có thâm niên hơn nhiều Pikafish. Có lẽ nó là chương trình cờ Tướng miễn phí đầu tiên làm từ Stockfish và phát triển từ thời chưa có NNUE nên nó cũng có đủ mọi thành phần. Cách đây vài năm tôi đã từng thử nhiều với nó. Chơi dở tệ!!! Cũng không thể trách được: tác giả chính của nó là một người Đức, có lẽ còn không chơi được cờ Tướng theo đúng nghĩa. Họ mới có phiên bản mới chạy với công nghệ NNUE. Tôi sẽ thử nghiệm với hai chương trình, một chạy với NNUE và cái kia không NNUE (chạy cùng kiểu như trước đây) và tôi đặt tên nó là Classic (Cổ điển).
Tất cả các chương trình này đều có thể tìm được trên Internet, miễn phí và chạy “an toàn” theo nghĩa các hệ thống phòng vệ/chống virus của máy tính không kêu, không xoá chúng. “An toàn” cũng là lý do tôi chưa thử với nhiều chương trình khác như Cyclone, Xqms…
Trận chiến giữa các chương trình trên đã kết thúc. Tổng số ván cờ là 300. Chúng là loại cờ nhanh, 5 phút cho 40 nước, mỗi nước cộng thêm nửa giây. Tôi cho chạy cùng lúc 9 ván trên một máy tính có 8 CPU/16 luồng và mất khoảng một đêm. Chương trình GUI là MoonRiver (Sông Trăng) vốn là một trương trình phát triển từ GUI cờ Vua Banksia GUI nên nó có rất đủ các chức năng và chạy rất ổn định, rất ít lỗi!
Hình dưới đây là kết quả của lần thử này:
Pikafish không hổ danh là phần mềm miễn phí mạnh nhất hiện nay, bỏ khá xa các chương trình còn lại. Nó thắng dễ quá nên tôi không biết bàn thêm thế nào nữa! Có lẽ khó khăn sắp tới là tìm cho nó một đối thủ xứng tầm.
Hai anh GG chess và SA chess kèn cựa nhau một chín một mười, GG chess nhỉnh hơn chút ít nhưng khoảng cách không quá lớn.
Điều đáng ngạc nhiên nhất lại là Fairy-Stockfish. Trình Cổ điển (Classic - chơi không dùng NNUE) vẫn kiên định chơi dở như xưa, đứng dưới GG ches và SA ches một khoảng xa (căn cứ vào điểm số). Tuy vậy khi chạy với NNUE lại là một câu chuyện khác: nó cho cả hai trình kia hít khói! NNUE dường như là cây đũa thần, biến một anh chàng nhỏ con bỗng hoá thành khổng lồ! Khoảng cách sẽ còn được nới rộng vì Fairy-Stockfish vẫn luôn được cải tiến còn hai anh kia đã đứng im từ lâu rồi!
/PHN
https://i.imgur.com/r7SXGtj.png
Kết quả
https://i.imgur.com/bFvPuqJ.png
Các trình cờ đang thi đấu cật lực, xuyên đêm với GUI MoonRiver
Kiểu thử trên rất thú vị, nhiều gay cấn. Người ta vẫn dùng trong các giải đấu phần mềm cờ hoặc giữa người và máy. Tuy vậy cách này nặng về tính thi thố, cá cược. Kết quả tuy chỉ ra hệ thống cờ nào là tốt nhất nhưng vẫn có nhiều điều không chắc chắn, không trả lời được câu hỏi cơ bản chương trình cờ nào là tốt nhất. Rất có thể một bên thắng vì họ có phần cứng tốt hơn, cẩm nang khai cuộc tốt hơn, người điều khiển giỏi hơn hoặc tổng hoà những thứ đó.
Có một kiểu “chiến” khác tìm xem chương trình cờ nào là tốt nhất. Cách thử nghiệm hợp lý là chạy các trình cờ đó trong các điều kiện giống nhau để đảm bảo công bằng và so sánh được. Phổ biến và đơn giản nhất là chạy chúng trong cùng một máy tính, thiết lập cùng giá trị cho các tham số quan trọng nhất như số luồng (thread, CPU), kích thước bảng hash. Để tránh các ưu thế về đi trước/sau và ảnh hưởng của cẩm nang khai cuộc thì thường các trình cờ sẽ đấu với nhau với số ván chẵn bằng cách đấu nhiều vòng, mỗi vòng sẽ đổi bên để đảm bảo số lần được đi trước như nhau và mỗi vòng đi/về sẽ chơi cùng khai cuộc để đảm bảo công bằng.
Vì cờ là vô cùng, cả người lẫn các chương trình cờ khó có thể luôn thắng hay đi hệt như các ván trước. Cho dù chơi cùng khai cuộc và cùng thời gian vẫn có lúc thắng lúc thua. Điều này đặc biệt đúng khi các chương trình cờ có trình độ không cách nhau quá xa. Muốn tránh cái rủi ro bất ổn này người ta phải cho các chương trình cờ đấu với số lượng lớn, từ vài chục đến hàng nghìn ván. Để tiến hành chơi với số lượng lớn ván cờ như vậy người ta thường phải dùng cờ nhanh, vài phút cho mỗi bên. Người ta cũng dùng ít U (luồng/thread) cho các chương trình cờ. Thông thường chỉ cần 1 và bỏ ponder (chức năng cho phép tính toán trong khi đối phương đang tới lượt). Nhờ thế người ta có thể chạy cùng lúc hàng chục ván cờ trên máy tính đời mới nhiều CPU. Nên nhớ do máy tính ngày càng mạnh một ván cờ nhanh trên máy tính đời mới nhiều khi còn tính toán nhiều hơn ván cờ chậm trên các máy đời cũ hơn.
Người ta cũng để các GUI (trình giao diện cờ) điều khiển tự động các ván đấu này, tránh sự can thiệp của người làm mất đi sự công bằng. Cũng chỉ có máy tự động mới tiến hành được hàng trăm ván cờ ròng rã nhiều ngày đêm.
Dưới đây là thử nghiệm của tôi với 4 chương trình cờ Tướng loại miễn phí và được coi là mạnh hiện nay bao gồm Pikafish, GG chess 9.0, SA chess 1.6 và Fairy Stockfish.
Hai chương trình cờ GG chess, SA chess từng nổi đình đám trong giới cờ chúng ta lâu nay. GG chess hồi đầu là bản thương mại (bán), tương đối ngang ngửa với các chương trình cờ mạnh nhất thời đó. Thường nó kém một ít nhưng cũng có phiên bản vọt lên dẫn đầu được một thời gian. Cách đây khoảng hai năm tác giả ngừng cải tiến, thôi không bán nó nữa và cho luôn mã nguồn trên Internet. Nó vẫn là chương trình rất mạnh và chơi có bản sắc riêng. Chương trình cờ SA chess của một tác giả gốc TQ sống ở Úc cũng nổi đình đám thời đó. Phiên bản 1.6 là bản miễn phí cuối cùng. Cùng năm ra bản 1.6 tác giả đã mang nó về TQ thi đấu trong một giải cờ máy nổi tiếng và đoạt vị trí thứ hai, chỉ sau XQMS. Ngay sau đó tác giả đã ra mắt phiên bản 1.8 là bản thương mại và kinh doanh từ hồi đó đến giờ. Tuy nhiên tôi không thấy tác giả ra phiên bản mới nữa, trang web thỉnh thoảng sập một thời gian. Có lẽ việc kinh doanh không thuận lợi và tác giả cũng chán hoặc bận việc khác.
Pikafish là chương trình cờ mới ra đời gần đây, cải tiến từ chương trình cờ nổi tiếng Stockfish của cờ Vua thành cờ Tướng và họ tạo dữ liệu học máy cho công nghệ cờ NNUE. Hiện nay nó được coi là trình miễn phí mạnh nhất. Trên trang mạng họ tuyên bố đã hạ được trình cờ AlphaCat và họ nói họ sẽ phấn đấu để hạ bệ tất cả các chương trình cờ thương mại khác. Họ tin tưởng rằng họ sẽ làm được cũng như Stockfish đã làm với thế giới cờ Vua. Một số người đề nghị có thêm chức năng chạy theo cách cổ điển, không dùng NNUE. Tác giả đã trả lời rằng họ không có phần mã này và đùa rằng họ chỉ có thể làm được nếu ai đó “cắt” chúng từ các chương trình nổi tiếng, thương mại như Cyclone hay XQMS. Qua đó mọi người đoán rằng họ đã lấy các ván cờ từ các chương trình cao cấp để “dậy” nó qua công nghệ NNUE.
Fairy-Stockfish cũng tương tự như Pikafish, họ nhà “cá” cả: được cải tiến từ trình cờ Vua Stockfish. Có điều Fairy-Stockfish có thâm niên hơn nhiều Pikafish. Có lẽ nó là chương trình cờ Tướng miễn phí đầu tiên làm từ Stockfish và phát triển từ thời chưa có NNUE nên nó cũng có đủ mọi thành phần. Cách đây vài năm tôi đã từng thử nhiều với nó. Chơi dở tệ!!! Cũng không thể trách được: tác giả chính của nó là một người Đức, có lẽ còn không chơi được cờ Tướng theo đúng nghĩa. Họ mới có phiên bản mới chạy với công nghệ NNUE. Tôi sẽ thử nghiệm với hai chương trình, một chạy với NNUE và cái kia không NNUE (chạy cùng kiểu như trước đây) và tôi đặt tên nó là Classic (Cổ điển).
Tất cả các chương trình này đều có thể tìm được trên Internet, miễn phí và chạy “an toàn” theo nghĩa các hệ thống phòng vệ/chống virus của máy tính không kêu, không xoá chúng. “An toàn” cũng là lý do tôi chưa thử với nhiều chương trình khác như Cyclone, Xqms…
Trận chiến giữa các chương trình trên đã kết thúc. Tổng số ván cờ là 300. Chúng là loại cờ nhanh, 5 phút cho 40 nước, mỗi nước cộng thêm nửa giây. Tôi cho chạy cùng lúc 9 ván trên một máy tính có 8 CPU/16 luồng và mất khoảng một đêm. Chương trình GUI là MoonRiver (Sông Trăng) vốn là một trương trình phát triển từ GUI cờ Vua Banksia GUI nên nó có rất đủ các chức năng và chạy rất ổn định, rất ít lỗi!
Hình dưới đây là kết quả của lần thử này:
Pikafish không hổ danh là phần mềm miễn phí mạnh nhất hiện nay, bỏ khá xa các chương trình còn lại. Nó thắng dễ quá nên tôi không biết bàn thêm thế nào nữa! Có lẽ khó khăn sắp tới là tìm cho nó một đối thủ xứng tầm.
Hai anh GG chess và SA chess kèn cựa nhau một chín một mười, GG chess nhỉnh hơn chút ít nhưng khoảng cách không quá lớn.
Điều đáng ngạc nhiên nhất lại là Fairy-Stockfish. Trình Cổ điển (Classic - chơi không dùng NNUE) vẫn kiên định chơi dở như xưa, đứng dưới GG ches và SA ches một khoảng xa (căn cứ vào điểm số). Tuy vậy khi chạy với NNUE lại là một câu chuyện khác: nó cho cả hai trình kia hít khói! NNUE dường như là cây đũa thần, biến một anh chàng nhỏ con bỗng hoá thành khổng lồ! Khoảng cách sẽ còn được nới rộng vì Fairy-Stockfish vẫn luôn được cải tiến còn hai anh kia đã đứng im từ lâu rồi!
/PHN
https://i.imgur.com/r7SXGtj.png
Kết quả
https://i.imgur.com/bFvPuqJ.png
Các trình cờ đang thi đấu cật lực, xuyên đêm với GUI MoonRiver