Báo cáo Nghiên cứu về Lịch sử Chơi Cờ Tướng (Xiangqi) Trên Máy Tính

Tổng hợp có hệ thống lịch sử phát triển engine cờ tướng từ thập niên 1980 đến năm 2026, bao gồm các engine tiêu biểu, giao thức và hệ sinh thái công cụ. Chương 7 Qizhong Forum: Trung Tâm Của Cộng Đồng Engine → Chương 12 Pikafish: Cuộc Cách mạng Nguồn M…

☰ Mục lục

Chương 7 Qizhong Forum: Trung Tâm Của Cộng Đồng Engine

7.1 Sự Thành Lập và Phát Triển Sớm Của Qizhong Forum

Qizhong Forum (棋中论坛, qqzze.com) là một trong những nền tảng giao tiếp quan trọng nhất trong cộng đồng engine cờ tướng. Nó được thành lập vào khoảng đầu những năm 2000, khi các diễn đàn internet đang ở thời kỳ hoàng kim.

Người sáng lập Qizhong Forum không còn có thể xác minh được, nhưng sự phát triển và thịnh vượng của diễn đàn đã tập hợp những đóng góp của nhiều nhà phát triển và người đam mê engine cờ tướng. Tên miền qqzze.com bắt nguồn từ sự kết hợp pinyin của “Qizhong” (cờ ở giữa / bên trong cờ).

Bố Cục Chuyên Mục Của Diễn Đàn:

Qizhong Forum đã thiết lập một loạt các chuyên mục phù hợp với nhu cầu của cộng đồng engine cờ tướng:

  • Khu vực Phát hành Engine: Khu vực chuyên biệt để phát triển và phát hành các phiên bản engine cờ tướng, nơi các nhà phát triển có thể đăng các phiên bản engine và nhật ký thay đổi của họ.
  • Khu vực Trao đổi Kỹ thuật: Chuyên mục thảo luận về công nghệ phát triển engine (thuật toán tìm kiếm, hàm đánh giá, giao thức UCCI, v.v.) — khu vực cốt lõi có hàm lượng kỹ thuật cao nhất.
  • Khu vực Nghiên cứu Sách Khai cuộc: Tập trung vào việc tạo và nghiên cứu sách khai cuộc, nơi các thành viên cộng đồng chia sẻ và thảo luận về sách khai cuộc.
  • Khu vực Thưởng thức Ký hiệu Ván đấu: Khu vực đăng và thảo luận các ký hiệu ván đấu cấp cao, bao gồm các ván đấu người-máy và ván đấu của các kỳ thủ.
  • Khu vực Thảo luận Binghe 54: Khu vực thảo luận chuyên biệt cho công cụ quản lý engine Binghe 54.
  • Khu vực Thảo luận Chơi Trực tuyến: Thảo luận về lối chơi và chiến lược trên các nền tảng trực tuyến như Yitian (弈天).
  • Khu vực Đánh giá Phần mềm: So sánh hiệu suất và đánh giá các engine và sách khai cuộc khác nhau.

7.2 Văn Hóa Diễn Đàn và Những Đóng Góp

Ảnh hưởng của Qizhong Forum đối với cộng đồng engine cờ tướng rất sâu sắc, được thể hiện ở các khía cạnh sau:

1. Trung Tâm Phổ Biến Kiến Thức:

Qizhong Forum là kênh cốt lõi để phổ biến kiến thức kỹ thuật về engine cờ tướng. Nhiều nhà phát triển engine đã chia sẻ kinh nghiệm kỹ thuật của họ trên diễn đàn, bao gồm:

  • Chi tiết triển khai và kỹ thuật tối ưu hóa của thuật toán tìm kiếm
  • Kinh nghiệm điều chỉnh hàm đánh giá
  • Phương pháp tạo sách khai cuộc
  • Chiến lược triển khai tìm kiếm đa luồng/phân tán

Mặc dù các bài đăng này thiếu tính nghiêm ngặt của bài báo học thuật, nhưng chúng thường thực tế hơn và có giá trị tham khảo cực kỳ cao đối với các nhà phát triển khác (đặc biệt là người tự học).

2. Địa Điểm Kiểm Thử Cộng Đồng:

Qizhong Forum là địa điểm chính để kiểm thử và đánh giá engine của cộng đồng. Người dùng sẽ:

  • Công bố kết quả kiểm tra đối đầu giữa các engine khác nhau
  • So sánh hiệu suất engine dưới các cài đặt khác nhau
  • Thảo luận về ưu và nhược điểm của các phiên bản engine cụ thể
  • Chia sẻ kết quả phân tích engine cho các vị trí cụ thể

Những báo cáo kiểm thử và thảo luận này đã cung cấp dữ liệu phản hồi có giá trị cho các nhà phát triển engine và cũng giúp người dùng chọn engine phù hợp nhất với nhu cầu của họ.

3. Kênh Xuất Bản và Phân Phối Cho Engine Thương Mại:

Trong thời kỳ hoàng kim của engine thương mại (2005–2015), Qizhong Forum là kênh quan trọng nhất để các tác giả engine công bố phiên bản thương mại và tương tác với người dùng. Các tác giả engine sẽ:

  • Phát hành phiên bản xem trước và phiên bản chính thức của các bản phát hành mới
  • Thu thập báo cáo lỗi và phản hồi từ người dùng
  • Công bố các bản cập nhật và bản vá chính thức
  • Quản lý thông báo phiên bản

4. Cầu Nối Giữa Engine và Người Dùng:

Qizhong Forum đóng vai trò cầu nối giữa các nhà phát triển engine và người dùng. Trên diễn đàn:

  • Người dùng có thể đặt câu hỏi và tìm kiếm sự trợ giúp
  • Nhà phát triển có thể hiểu nhu cầu và vấn đề của người dùng
  • Những người đam mê bên thứ ba có thể tạo các tài nguyên hỗ trợ như sách khai cuộc và cấu hình giao diện

7.3 Nhân Vật Chủ Chốt và Những Người Đóng Góp Cho Cộng Đồng

Nhiều cá nhân đã có những đóng góp đáng kể cho cộng đồng engine cờ tướng trên Qizhong Forum:

Các Nhà Phát Triển Engine:

  • Chen Chaoying (tác giả của Xiangqi Cyclone): Thường xuyên đăng các phiên bản mới và nhật ký thay đổi của Cyclone trên diễn đàn
  • Jiang Zhimin và Zhang Min (tác giả của Xiangqi Mingshou): Phát hành các phiên bản và kết quả kiểm tra của Mingshou thông qua diễn đàn
  • Li Guolai (tác giả của Jiajia Xiangqi): Thảo luận các chi tiết kỹ thuật của Jiajia trên diễn đàn

Những Người Tạo Sách Khai Cuộc:

  • “Longjiang” (龙江): Tạo ra bộ sách khai cuộc nổi tiếng “Longjiang Library”
  • Những người tạo sách khai cuộc liên quan đến “Intella”: Sản xuất sách khai cuộc chất lượng cao cho Intella

Những Người Chia Sẻ Kỹ Thuật:

  • Nhiều thành viên cộng đồng đã đăng các hướng dẫn kỹ thuật phong phú trên diễn đàn, bao gồm nội dung từ lập trình cơ bản đến tối ưu hóa thuật toán nâng cao

Người Kiểm Thử và Đánh Giá:

  • Các thành viên cộng đồng thường xuyên công bố báo cáo kiểm thử engine trên diễn đàn, cung cấp tài liệu tham khảo cho việc đánh giá hiệu suất engine

7.4 Sự Suy Thoái Của Qizhong Forum và Sự Chuyển Đổi Của Cộng Đồng Kỹ Thuật

Với sự trỗi dậy của internet di động và sự phổ biến của mạng xã hội, các diễn đàn truyền thống dần suy thoái vào cuối những năm 2010. Hoạt động của người dùng Qizhong Forum đã giảm đáng kể sau năm 2015, vì những lý do bao gồm:

  1. Tác động của mạng xã hội: Các công cụ nhắn tin tức thời như WeChat và nhóm QQ đã thay thế diễn đàn làm kênh thảo luận hàng ngày
  2. Tối ưu hóa SEO không đủ: Giao diện/trải nghiệm người dùng của diễn đàn không theo kịp yêu cầu của thời đại internet di động
  3. Sự rút lui của engine thương mại: Khi thị trường engine thương mại thu hẹp, nội dung cốt lõi (phát hành và đánh giá engine) trên diễn đàn giảm đi
  4. Sự trỗi dậy của GitHub: Sự hợp tác của các nhà phát triển engine đã chuyển từ diễn đàn sang GitHub, và các cuộc thảo luận kỹ thuật cũng di chuyển theo

Sự suy thoái của Qizhong Forum đánh dấu một sự chuyển đổi quan trọng trong cấu trúc cộng đồng engine cờ tướng — từ mô hình “lấy diễn đàn làm trung tâm” truyền thống sang mô hình phân tán “GitHub + Nhóm QQ/WeChat.” Sự chuyển đổi này đã tăng tốc trong những năm 2020 với sự trỗi dậy của các dự án mã nguồn mở như Pikafish.


Chương 8 ElephantEye và Đóng Góp Mã Nguồn Mở Của Huang Chen (2005–2020)

8.1 Kiến Trúc Mã Nguồn Mở Của ElephantEye

ElephantEye (tên tiếng Trung “Xiangyan” / 象眼) được phát triển bởi Huang Chen (黄晨), và là một trong những dự án engine cờ tướng mã nguồn mở quan trọng nhất. Huang Chen cũng là người duy trì trang xqbase.com, người thiết kế giao thức UCCI và người thúc đẩy tiêu chuẩn định dạng ký hiệu ván đấu XQF.

Lịch Sử Phát Triển Của ElephantEye:

Huang Chen bắt đầu phát triển ElephantEye vào khoảng năm 2000. Là một nhà khám phá kỹ thuật và xây dựng cộng đồng cho engine cờ tướng, Huang Chen đã chọn phát hành ElephantEye theo giấy phép LGPL. Điều này có nghĩa là:

  • Bất kỳ ai cũng có thể tự do sử dụng, sửa đổi và phân phối mã nguồn của ElephantEye
  • Nếu mã đã sửa đổi được sử dụng làm thư viện, các yêu cầu sẽ thoải mái hơn
  • Nếu được phân phối dưới dạng chương trình độc lập, mã nguồn phải được cung cấp hoặc phải cho phép kỹ thuật đảo ngược

Mục tiêu phát triển của ElephantEye không phải là “vượt qua engine thương mại” mà là “cung cấp một nền tảng cho việc học tập và nghiên cứu.” Huang Chen đã viết tài liệu kỹ thuật phong phú trên xqbase.com, trình bày chi tiết việc triển khai ElephantEye. Những tài liệu này được coi là tài liệu tham khảo “cấp độ kinh thánh” cho lập trình engine cờ tướng.

8.2 Hệ Thống Kỹ Thuật Của ElephantEye

Cấu trúc mã của ElephantEye rất sạch sẽ và có tính mô-đun cao. Các mô-đun chính của nó bao gồm:

1. Biểu Diễn Vị Trí:

Sử dụng biểu diễn dựa trên bitboard, với mỗi loại quân sử dụng một số nguyên 64-bit (90 bit đầu tiên của bitboard đại diện cho 90 giao điểm của bàn cờ 9×10).

Ưu điểm cốt lõi của biểu diễn bitboard là tạo nước đi nhanh. Thông qua tính toán trước và các phép toán bit, engine có thể tạo ra tất cả các nước đi hợp lệ trong một thời gian rất ngắn. Ví dụ, nước đi của Xe có thể được tạo ra thông qua “bảng khả năng tiếp cận” được tính toán trước kết hợp với trạng thái bàn cờ.

2. Bộ Tạo Nước Đi:

Huang Chen đã thiết kế một bộ tạo nước đi hiệu quả cho ElephantEye, tập trung vào việc tối ưu hóa:

  • Tốc độ tạo nước đi được tối ưu hóa cho đặc điểm của quân cờ tướng (đặc biệt là các hạn chế chặn của Mã và Tượng)
  • Sử dụng các bảng tính toán trước để giảm tính toán trong thời gian chạy
  • Tách biệt nước đi ăn quân và không ăn quân (SEE yêu cầu chuỗi nước đi ăn quân)

3. Bảng Chuyển Vị:

ElephantEye triển khai một bảng chuyển vị băm Zobrist tiêu chuẩn, với kích thước có thể cấu hình (thường từ 2^20 đến 2^24 mục).

Thông tin được lưu trữ trong các mục bảng chuyển vị bao gồm:

  • Giá trị băm (để xác minh)
  • Độ sâu tìm kiếm (độ sâu của kết quả tìm kiếm)
  • Loại nút (giá trị chính xác / cận Alpha / cận Beta)
  • Nước đi tốt nhất (để sắp xếp nước đi)
  • Giá trị đánh giá

4. Hàm Đánh Giá:

Hàm đánh giá của ElephantEye rất tiêu biểu trong số các engine mã nguồn mở:

  • Đánh giá giá trị quân: Điểm số có trọng số cho mỗi quân dựa trên vị trí và giai đoạn ván đấu (khai cuộc / trung cuộc / tàn cuộc)
  • Đánh giá giá trị vị trí: Điểm cho mỗi quân tại mỗi vị trí trên bàn cờ (được lưu trong các bảng giá trị vị trí tính toán trước)
  • Đánh giá tính cơ động của quân: Dựa trên khả năng di chuyển và kiểm soát khu vực của quân
  • Đánh giá an toàn của Tướng: Trạng thái bảo vệ của cả hai Tướng
  • Đánh giá cấu trúc Tốt: Cấu hình Tốt, giá trị của Tốt qua sông
  • Đánh giá phối hợp quân: Sự phối hợp giữa Xe, Mã và Pháo; tính toàn vẹn phòng thủ của Sĩ và Tượng

5. Triển Khai Giao Thức UCCI:

ElephantEye bao gồm hỗ trợ đầy đủ giao thức UCCI, cho phép nó hoạt động với bất kỳ GUI tương thích UCCI nào. Hỗ trợ giao thức UCCI của ElephantEye bao gồm tất cả các lệnh và tùy chọn cốt lõi.

6. Trình Mô Phỏng LEAGUE:

Mã của ElephantEye bao gồm trình mô phỏng LEAGUE — một công cụ kiểm thử trận đấu tự động có thể chạy số lượng lớn các ván đấu dưới các cài đặt khác nhau. Sự tồn tại của LEAGUE cho phép các nhà phát triển thực hiện kiểm thử và xác nhận kỹ lưỡng trước khi cam kết thay đổi mã.

7. XQFTOOLS (Công Cụ Ký Hiệu Cờ):

Huang Chen cũng phát triển bộ XQFTOOLS để chuyển đổi giữa XQF (định dạng ký hiệu cờ tướng) và PGN (ký hiệu ván đấu di động).

8.3 Đánh Giá Sức Mạnh Chơi Của ElephantEye

Theo đánh giá của chính Huang Chen và báo cáo từ những người kiểm thử engine khác, sức mạnh chơi của ElephantEye tương ứng khoảng với trình độ nghiệp dư 3-đẳng đến 4-đẳng (khoảng 2000–2200 ELO). Sức mạnh này ở mức trung bình trong giai đoạn 2005–2008, thấp hơn nhiều so với các engine thương mại cùng thời (Cyclone, Intella, v.v.).

Tuy nhiên, bản chất mã nguồn mở của ElephantEye đã mang lại cho nó giá trị vượt xa sức mạnh chơi. Nó là tài nguyên học tập tốt nhất cho những người mới bắt đầu với engine cờ tướng và đã thu hút vô số nhà phát triển thực hiện nghiên cứu và phát triển thứ cấp dựa trên nó. Nhiều engine sau này (như BitStronger và một số phiên bản đầu của Cyclone) đã tham khảo mã hoặc thiết kế của ElephantEye.

8.4 Tài Liệu Giảng Dạy Của Huang Chen

Bên cạnh engine, loạt tài liệu giảng dạy mà Huang Chen công bố trên xqbase.com cũng là những tài nguyên kiến thức có giá trị không kém. Những tài liệu này bao gồm:

  • Loạt bài “Khám phá Thiết kế Chương trình Cờ Tướng”: Giới thiệu về phát triển một chương trình cờ tướng từ đầu, bao gồm biểu diễn bàn cờ, thuật toán tìm kiếm, hàm đánh giá, giao thức UCCI và các chủ đề khác.

  • “Đặc tả Giao thức UCCI”: Tài liệu kỹ thuật hoàn chỉnh của giao thức UCCI, một tài liệu tham khảo thiết yếu cho tất cả những người triển khai giao thức UCCI.

  • “Kỹ Thuật Băm Trong Chương Trình Cờ Tướng”: Giới thiệu chi tiết về việc triển khai băm Zobrist và bảng chuyển vị trong các chương trình cờ tướng.

  • “Tạo Nước Đi Trong Chương Trình Cờ Tướng”: Giới thiệu chi tiết về các thuật toán tạo nước đi và chiến lược tối ưu hóa cho các loại quân cờ tướng khác nhau.

Những tài liệu này có định dạng ngắn gọn và dễ hiểu, với nhiều mã mẫu, khiến chúng trở thành một trong những tài nguyên giảng dạy bằng tiếng Trung chất lượng cao nhất trong lĩnh vực lập trình cờ tướng.

8.5 Ý Nghĩa Lịch Sử Của ElephantEye

Ý nghĩa lịch sử của ElephantEye có thể được tóm tắt như sau:

  1. Mỏ neo mã nguồn mở: Bản chất mã nguồn mở của ElephantEye đã cung cấp một tham chiếu mã ổn định cho cộng đồng engine cờ tướng. Trong bối cảnh hầu hết các engine đều là mã nguồn đóng, ElephantEye là engine hoàn chỉnh duy nhất có thể được tự do nghiên cứu, sửa đổi và phân phối.

  2. Đào tạo nhân tài: Vô số nhà phát triển engine cờ tướng đã bước vào lĩnh vực phát triển engine bằng cách nghiên cứu mã nguồn của ElephantEye.

  3. Thiết lập tiêu chuẩn: Giao thức UCCI và các công cụ XQF do Huang Chen triển khai trong ElephantEye đã thúc đẩy việc tiêu chuẩn hóa engine cờ tướng.

  4. Di sản kiến thức: Các tài liệu giảng dạy do Huang Chen viết đã ghi lại một cách có hệ thống kiến thức cốt lõi về phát triển engine cờ tướng, mang lại lợi ích cho hàng nghìn nhà phát triển thông qua hiệu ứng lan tỏa của internet.

  5. Ảnh hưởng liên lĩnh vực: Ảnh hưởng của ElephantEye vượt ra ngoài lĩnh vực cờ tướng; nó cũng được chuyển sang các biến thể cờ vua quốc tế (ví dụ như thông qua sự thích nghi của Fairy-Stockfish), chứng minh khả năng mở rộng kiến trúc của nó.


Chương 9 Giao Diện Binghe 54 và Công Cụ Quản Lý Engine

9.1 Sự Ra Đời Của Binghe 54

Binghe 54 (兵河五四, BingHe 54) là một trong những công cụ giao diện và quản lý quan trọng nhất trong lĩnh vực phần mềm cờ tướng. Nó được tạo ra bởi nhà phát triển cộng đồng “54” (五四, bút danh), với mục tiêu ban đầu là cung cấp một nền tảng quản lý thống nhất, giàu tính năng cho các engine cờ tướng.

Biểu tượng Binghe 54
Binghe 54 (BingHe 54) — công cụ GUI quản lý engine quan trọng nhất trong lĩnh vực phần mềm cờ tướng, được tạo ra bởi nhà phát triển cộng đồng "54"

Tên “Binghe 54” là một cách chơi chữ đồng âm với “Engine” (引擎), phản ánh cả định vị chức năng của công cụ và đặc điểm cờ tướng. Sự xuất hiện của Binghe 54 đã lấp đầy khoảng trống thị trường cho các công cụ quản lý engine cờ tướng sau khi giao thức UCCI phổ biến.

9.2 Chức Năng Cốt Lõi Của Binghe 54

Các chức năng cốt lõi của Binghe 54 bao gồm:

Quản Lý Nhiều Engine: Binghe 54 hỗ trợ tải đồng thời nhiều engine giao thức UCCI/UCI. Người dùng có thể tự do chuyển đổi giữa các engine khác nhau, điều này cực kỳ hữu ích trong kiểm thử so sánh và chuẩn bị thi đấu. Binghe 54 cũng hỗ trợ:

  • Chạy đồng thời nhiều phiên bản engine
  • Cài đặt và lưu độc lập các tham số engine
  • Giám sát hiệu suất engine theo thời gian thực

Hệ Thống Trận Đấu Tự Động: Binghe 54 có hệ thống trận đấu hàng loạt tự động hoàn chỉnh tích hợp sẵn, hỗ trợ:

  • Lịch thi đấu vòng tròn và loại trực tiếp
  • Cài đặt thời gian (tuyệt đối, gia tăng, giới hạn, v.v.)
  • Quản lý sách khai cuộc
  • Tự động lưu ký hiệu ván đấu và thống kê
  • Tính toán xếp hạng ELO
  • Hiển thị thời gian thực và phát lại diễn biến ván đấu

Tích Hợp Sách Đám Mây (Cloud Book): Binghe 54 là một trong những ứng dụng khách chính cho Sách Đám Mây Cờ Tướng (Chinese Chess Cloud Book). Thông qua Binghe 54, người dùng có thể trực tiếp truy vấn dữ liệu sách khai cuộc và bảng tàn cuộc từ sách đám mây, đồng thời cũng có thể sử dụng chức năng tự động học của sách đám mây.

Kết Nối Chơi Trực Tuyến: Binghe 54 hỗ trợ kết nối đến nhiều nền tảng chơi trực tuyến (như Yitian, QQ Chess, Tiange Chess, v.v.), cho phép người dùng tham gia đấu người-máy kết hợp với phân tích engine.

Tùy Chỉnh: Binghe 54 cung cấp các tùy chọn tùy chỉnh phong phú, bao gồm:

  • Đường dẫn engine và cài đặt tham số khởi động
  • Tải và chỉnh sửa sách khai cuộc
  • Cấu hình định dạng ký hiệu ván đấu
  • Cài đặt giao diện
  • Gán phím tắt

9.3 Tác Động Của Binghe 54 Đối Với Hệ Sinh Thái Phần Mềm Cờ Tướng

Tác động của Binghe 54 đối với hệ sinh thái phần mềm cờ tướng rất đa dạng:

  1. Hạ thấp rào cản sử dụng engine: Người dùng không cần phải gõ lệnh dòng lệnh thủ công để gọi engine; thông qua giao diện đồ họa của Binghe 54, việc quản lý và gọi engine có thể được hoàn thành.

  2. Chuẩn hóa phương pháp kiểm thử engine: Hệ thống trận đấu tự động của Binghe 54 đã cung cấp một phương pháp kiểm thử chuẩn hóa, làm cho kết quả kiểm tra từ những người dùng khác nhau có thể so sánh được.

  3. Thúc đẩy trao đổi giữa các engine: Binghe 54 hỗ trợ quản lý nhiều engine trên cùng một nền tảng, cho phép người dùng trực quan so sánh hiệu suất của các engine khác nhau.

  4. Đóng góp cho tài liệu và cộng đồng: Tài liệu và hướng dẫn sử dụng của Binghe 54 đã lan truyền rộng rãi trong cộng đồng, hình thành một hệ thống kiến thức xoay quanh việc sử dụng nó.

9.4 Các Công Cụ Giao Diện Khác Cùng Thời

Các công cụ giao diện quan trọng cùng thời với Binghe 54:

  • Xiangqi Wizard (象棋巫师, ElephantBoard): Một giao diện nổi tiếng do Huang Chen phát triển, có tích hợp engine ElephantEye, hỗ trợ giao thức UCCI, có giao diện người dùng thân thiện và trải nghiệm người dùng tốt.
Giao diện Xiangqi Wizard
Xiangqi Wizard (ElephantBoard) — một giao diện Cờ Tướng do Huang Chen phát triển với engine ElephantEye tích hợp, một công cụ cấp độ đầu vào cho nhiều người đam mê để tiếp cận engine UCCI
  • Giao diện Intella: Ban đầu là giao diện đồng hành của Intella, sau đó hỗ trợ nhiều engine. Giao diện Intella có thị phần cao vào cuối những năm 2000.

  • Giao diện Cyclone: Giao diện đồng hành của Xiangqi Cyclone, được tích hợp chặt chẽ với engine Cyclone, mang lại lợi thế về tối ưu hóa và tương thích.

Những công cụ giao diện này, cùng với các engine, đã tạo nên một hệ sinh thái phần mềm cờ tướng hoàn chỉnh, cho phép người dùng sử dụng các tính năng engine tiên tiến mà không cần hiểu các giao thức cơ bản.

9.5 So Sánh Các Công Cụ GUI Cờ Tướng

Các công cụ giao diện (GUI) cho engine cờ tướng đã tiến hóa từ giao diện tích hợp sẵn trong engine thành các giao diện phổ dụng độc lập. Dưới đây là so sánh các công cụ giao diện chính thống:

Khía cạnh Binghe 54 (BingHe54) Xiangqi Wizard (ElephantBoard) Cyclone GUI (CycloneGUI) Yitian Client Qilu
Nhà phát triển OkDodo (Fan Dejun) Huang Chen Chen Chaoying Đội ngũ Yitian Đội ngũ Qilu
Năm phát hành đầu 2005 2005 2005 ~2000 2010s
Định vị cốt lõi Quản lý engine / chơi trực tuyến Giáo dục / giải trí / cấp độ đầu vào Giao diện riêng của Cyclone Nền tảng chơi trực tuyến Phân tích di động
Hỗ trợ engine ★★★★★ Đa engine UCCI ★★★★ Engine UCCI ★★ Chỉ Cyclone ★★★ Engine ngoài ★★ Hạn chế
Kết nối chơi trực tuyến ★★★★★ Toàn nền tảng ★ Không ★ Không ★ Không ★ Không
Quản lý sách khai cuộc ★★★★★ Quản lý sâu ★★ Cơ bản ★★★ Riêng Cyclone ★ Không ★ Không
Phân tích ký hiệu ván đấu ★★★★★ Bộ công cụ hoàn chỉnh ★★★★ Phân tích cơ bản ★★★ Cơ bản ★★ Phát lại ★★★★ Phân tích đám mây
Luyện tập tàn cuộc ★★ Hạn chế ★★★★ Truy vấn bảng tàn cuộc ★ Không ★ Không ★★★★ Chế độ theo cấp độ
Thẩm mỹ giao diện ★★★ Phong cách tiện dụng ★★★★★ Đẹp ★★ Sơ sài ★★ Cổ điển ★★★★★ Hiện đại
Đường cong học tập ★★★★★ Dốc (chuyên nghiệp) ★★★ Nhẹ nhàng ★★★ Trung bình ★★ Đơn giản ★★★ Trung bình
Người dùng mục tiêu Người đam mê engine / đấu thủ Giáo dục / người mới bắt đầu Người dùng Cyclone Người chơi trực tuyến Người đam mê di động
Nền tảng Windows Windows Windows Windows iOS/Android
Mã nguồn mở Mở một phần (phiên bản cũ) Mã nguồn mở (GPLv3) Mã nguồn đóng Mã nguồn đóng Mã nguồn đóng
Trạng thái hiện tại Đã ngừng Đã ngừng Vẫn được cập nhật (đi kèm engine) Vẫn hoạt động Vẫn hoạt động
Ưu điểm chính Giàu tính năng nhất, quản lý engine mạnh nhất Đẹp, dễ sử dụng, tốt cho giảng dạy Tích hợp sâu với Cyclone Hệ sinh thái chơi trực tuyến Trải nghiệm di động tốt
Nhược điểm chính Đã ngừng, tương thích Win10+ kém Đã ngừng, không có kết nối chơi trực tuyến Chỉ hỗ trợ Cyclone Giao diện cũ, ít tính năng Quản lý engine yếu

Ghi chú: Binghe 54, với tư cách là công cụ quản lý engine hoàn chỉnh nhất về chức năng trong lịch sử, mặc dù đã ngừng phát triển vào những năm 2010, nhưng triết lý thiết kế của nó (tách biệt giao diện và engine, quản lý đa engine, kết nối chơi trực tuyến) đã ảnh hưởng sâu sắc đến tất cả các phần mềm cờ tướng sau này. Xiangqi Wizard đã đóng một vai trò không thể thay thế trong giáo dục và sử dụng cấp độ đầu vào — nhiều người đam mê cờ tướng lần đầu tiên tiếp xúc với engine UCCI thông qua Xiangqi Wizard. Với sự phổ biến của internet di động, các công cụ GUI trên PC nhìn chung đã nhường chỗ cho các ứng dụng di động, nhưng đối với các nhà phát triển engine và người dùng nặng, Binghe 54 vẫn chưa được thay thế hoàn toàn.


Chương 10 Xiangqi Mingshou và Jiajia Xiangqi (2009–2015)

10.1 Sự Trỗi Dậy Của Xiangqi Mingshou

Xiangqi Mingshou (象棋名手, CChess Master) được phát triển bởi nhóm của Jiang Zhimin (蒋志敏) và Zhang Min (张闽), và là đỉnh cao của engine cờ tướng thương mại Trung Quốc. Mingshou đã trở thành người dẫn đầu thị trường engine cờ tướng trong giai đoạn 2009–2015.

Giao diện chính của phần mềm Xiangqi Mingshou
Giao diện chính của Xiangqi Mingshou (CChess Master) — cỗ máy vô địch CCMC năm lần liên tiếp, đỉnh cao của kỷ nguyên đánh giá thủ công truyền thống

Xiangqi Mingshou (Danh Thủ Tượng Kỳ) được phát hành phiên bản đầu tiên vào khoảng năm 2009. Các phiên bản đầu của nó đã giành chức vô địch tại CCMC (China Computer Game Championship), và Mingshou liên tục được cải tiến, dần dần xây dựng lợi thế toàn diện về sức mạnh thi đấu, độ ổn định và tính dễ sử dụng.

Đặc điểm Kỹ thuật của Xiangqi Mingshou:

1. Tìm kiếm PVS: Mingshou triển khai tìm kiếm PVS (Principal Variation Search) được tối ưu hóa cao, với hiệu suất tìm kiếm ở mức dẫn đầu so với các cỗ máy cùng thời. Việc triển khai PVS của Mingshou đặc biệt chú trọng đến:

  • Chiến lược sắp xếp nước đi hiệu quả
  • Quản lý cửa sổ (window) chính xác
  • Cân bằng giữa tỉa nhánh và an toàn

2. Tìm kiếm song song đa luồng: Mingshou là một trong những cỗ máy đầu tiên hỗ trợ tìm kiếm song song đa luồng. Trên các máy lõi kép và lõi tứ, hiệu suất tìm kiếm song song của Mingshou có thể đạt trên 70%. Khả năng song song này mang lại lợi thế hiệu suất đáng kể trong thời kỳ phần cứng phát triển nhanh vào cuối những năm 2000.

3. Hỗ trợ tính toán phân tán: Mingshou hỗ trợ phân phối các tác vụ tìm kiếm trên nhiều máy tính. Mặc dù phạm vi của tính toán phân tán này trong ứng dụng thực tế còn hạn chế (yêu cầu kết nối mạng tốc độ cao giữa nhiều máy), nó thể hiện thiết kế có tầm nhìn xa của Mingshou về khả năng mở rộng.

4. Hàm đánh giá thủ công sâu: Hàm đánh giá của Mingshou được coi là đỉnh cao của kỷ nguyên đánh giá thủ công. Hàm đánh giá của nó bao gồm hàng trăm đặc điểm vị trí được tinh chỉnh thủ công, với nhiều bộ tham số đánh giá được thiết kế cho các loại thế trận khác nhau. Hàm đánh giá của Mingshou có các đặc điểm sau:

  • Đánh giá phối hợp quân cờ tinh tế
  • Phát hiện mối đe dọa chiến thuật sâu
  • Các quy tắc chuyên biệt để xử lý các mẫu chiến thuật điển hình như lộ đầu pháo (空头炮), mã khốn tâm (窝心马), và đa tử quy biên (多子归边)

Kết quả Thi đấu của Xiangqi Mingshou:

Xiangqi Mingshou đã đạt được những kết quả xuất sắc tại China Computer Game Championship (CCMC):

  • 2009: Vô địch (Thâm Quyến)
  • 2011: Vô địch
  • 2012: Vô địch
  • 2013: Vô địch
  • 2014: Vô địch

Kỷ lục vô địch liên tiếp của Mingshou tại CCMC đã thể hiện đầy đủ sự ổn định và vị thế dẫn đầu về sức mạnh thi đấu của nó.

Giao diện phân tích của cỗ máy Xiangqi Mingshou
Xiangqi Mingshou — cỗ máy đang phân tích thế cờ, hiển thị độ sâu tìm kiếm và điểm đánh giá
Phân tích tàn cuộc của Xiangqi Mingshou
Xiangqi Mingshou — phân tích thế cờ tàn cuộc, cơ sở tri thức tàn cuộc tích hợp sẵn của Mingshou khiến việc xử lý tàn cuộc của nó đặc biệt xuất sắc

10.2 Kiến trúc Kỹ thuật Chi tiết của Xiangqi Mingshou

Kiến trúc kỹ thuật của Xiangqi Mingshou đại diện cho trình độ cao nhất của các cỗ máy Alpha-Beta truyền thống. Các quyết định thiết kế cốt lõi của nó bao gồm:

(I) Kiến trúc Tìm kiếm Song song

Xiangqi Mingshou áp dụng chiến lược tìm kiếm song song mạnh mẽ hơn so với các cỗ máy cùng thời. Các sơ đồ tìm kiếm song song truyền thống (như Young Brothers Wait, ABDADA, v.v.) có hạn chế về cân bằng tải và chi phí giao tiếp giữa các lõi. Mingshou sử dụng phiên bản cải tiến của “Split Search” — khi tìm kiếm đạt đến một độ sâu nhất định, các nhánh khác nhau của cây tìm kiếm được gán cho các lõi khác nhau để khám phá song song.

Hiệu suất song song của Mingshou có thể đạt khoảng 70–80% trên các máy 4–8 lõi, một mức dẫn đầu so với các cỗ máy cùng thời.

(II) Triển khai Tính toán Phân tán

Xiangqi Mingshou hỗ trợ phân phối các tác vụ tìm kiếm trên nhiều máy tính. Việc triển khai cụ thể bao gồm phân phối các tác vụ tìm kiếm đến các nút tính toán phân tán thông qua một giao thức mạng, với các nút tổng hợp kết quả sau khi hoàn thành các tác vụ con. Kiến trúc này cực kỳ tiên tiến vào thời điểm đó — hầu hết các cỗ máy chỉ hỗ trợ đa lõi trên một máy, trong khi Mingshou đã có thể tận dụng tài nguyên tính toán trên toàn bộ mạng.

Quy trình Tính toán Phân tán:

  1. Nút Master chạy logic điều khiển của cỗ máy và hàm đánh giá
  2. Mỗi nút Worker chạy các tác vụ tính toán tìm kiếm
  3. Nút Master gán các tác vụ tìm kiếm (một chuỗi nước đi) cho các nút Worker
  4. Các nút Worker trả kết quả về nút Master sau khi hoàn thành tác vụ
  5. Nút Master tổng hợp kết quả và thực hiện phân tích sâu hơn

(III) Tinh chỉnh Hàm Đánh giá

Hàm đánh giá của Mingshou được coi là đỉnh cao của kỷ nguyên đánh giá thủ công. Nó bao gồm:

  • Hàng trăm đặc điểm vị trí được tinh chỉnh thủ công
  • Nhiều bộ tham số đánh giá cho các loại thế trận khác nhau
  • Đánh giá phối hợp quân cờ tinh tế
  • Phát hiện mối đe dọa chiến thuật sâu
  • Các quy tắc chuyên biệt để xử lý các mẫu chiến thuật điển hình như lộ đầu pháo, mã khốn tâm và đa tử quy biên

(IV) Hệ sinh thái Cộng đồng Sách Khai cuộc và Cơ sở Dữ liệu Tàn cuộc

Sách khai cuộc của Xiangqi Mingshou chủ yếu được duy trì bởi các kỳ thủ trình độ cao trong cộng đồng. Các kỳ thủ này hợp tác thông qua các nền tảng như Diễn đàn Kỳ Trung (Qizhong Forum):

  • Thường xuyên phát hành các phiên bản sách khai cuộc mới
  • Cập nhật trọng số dựa trên các ván đấu đỉnh cao mới nhất và kết quả kiểm tra của cỗ máy
  • Tùy chỉnh sách khai cuộc cho các đặc điểm khác nhau của từng cỗ máy
  • Xác minh hiệu quả của sách khai cuộc thông qua thử nghiệm cộng đồng

10.3 Jiajia Xiangqi và GGzero

Jiajia Xiangqi (佳佳象棋, Jiangui / Jiajia) được phát triển bởi Li Guolai (李国来). Trong khi các cỗ máy Alpha-Beta truyền thống đạt đến đỉnh cao, Jiajia Xiangqi cũng tích cực khám phá ứng dụng của học tăng cường (reinforcement learning) trong cờ tướng.

Phiên bản Truyền thống của Jiajia Xiangqi:

Phiên bản truyền thống của Jiajia Xiangqi dựa trên tìm kiếm Alpha-Beta và các hàm đánh giá thủ công. Nó đạt đến trình độ sức mạnh thi đấu tương đương với Mingshou và Cyclone vào đầu những năm 2010. Jiajia Xiangqi có những đặc điểm riêng trong thiết kế hàm đánh giá, đặc biệt là trong đánh giá thế trận phòng thủ tương đối chính xác.

Dự án GGzero:

GGzero là một cỗ máy cờ tướng dựa trên học tăng cường được phát triển bởi nhóm Jiajia Xiangqi, lấy cảm hứng trực tiếp từ AlphaZero của DeepMind. GGzero sử dụng mạng nơ-ron sâu (CNN) để thay thế các hàm đánh giá thủ công, học thông qua tự đấu (self-play).

Các đặc điểm kỹ thuật của GGzero bao gồm:

  • Tìm kiếm Cây Monte Carlo (MCTS): Thay thế tìm kiếm Alpha-Beta truyền thống
  • Mạng nơ-ron sâu: Sử dụng mạng nơ-ron tích chập (CNN) để đồng thời dự đoán xác suất nước đi và giá trị đánh giá thế trận
  • Học tự đấu: Liên tục cải thiện bằng cách chơi với các phiên bản trước của chính nó
  • Yêu cầu tính toán: Huấn luyện yêu cầu tài nguyên GPU đáng kể (thường là nhiều GPU cao cấp chạy trong nhiều tuần)

Sự xuất hiện của GGzero đánh dấu một nỗ lực thăm dò của công nghệ “mạng nơ-ron + học tăng cường” trong các cỗ máy cờ tướng. Mặc dù quá trình huấn luyện của GGzero bị giới hạn bởi tài nguyên tính toán và sức mạnh thi đấu của nó không vượt qua được các cỗ máy Alpha-Beta hàng đầu thời bấy giờ, nó đã chứng minh một hướng đi mới cho sự phát triển của cỗ máy cờ tướng.

10.4 Xiaochong Xiangqi (BugChess)

Xiaochong Xiangqi (小虫象棋, BugChess) được phát triển bởi nhóm của Liu Zongyuan (刘宗元), tạo thành một lực lượng quan trọng trong số các cỗ máy cờ tướng thương mại Trung Quốc. BugChess đã giành huy chương vàng tại Olympic Tin học lần thứ 17 (Computer Olympiad) năm 2013, củng cố vị thế của nó như một tác nhân chính trong bối cảnh cỗ máy cờ tướng thương mại Trung Quốc. Trên thị trường phần mềm cờ tướng Trung Quốc, nó có thị phần và mức độ công nhận rất cao.

Đặc điểm Kỹ thuật:

  1. Triển khai tìm kiếm Alpha-Beta hiệu quả: Mặc dù thuật toán tìm kiếm của BugChess không có đột phá cơ bản, việc triển khai kỹ thuật của nó cực kỳ vững chắc. Mã nguồn đã trải qua quá trình tối ưu hóa thủ công sâu rộng và hoạt động xuất sắc trên các phần cứng tương đương.

  2. Tìm kiếm song song đa luồng: BugChess hỗ trợ tìm kiếm song song đa lõi từ sớm, với khả năng mở rộng tốt trên các máy lõi kép và lõi tứ.

  3. Sách khai cuộc quy mô lớn: BugChess hợp tác với những người duy trì sách khai cuộc trong cộng đồng để cung cấp một sách khai cuộc có độ phủ cực kỳ rộng. Sách khai cuộc của nó bao phủ gần như tất cả các nhánh khai cuộc chính thống và cung cấp nhiều phiên bản cho người dùng ở các trình độ khác nhau.

  4. Hỗ trợ cơ sở dữ liệu tàn cuộc: Hỗ trợ cơ sở dữ liệu tàn cuộc kiểu Nalimov để chơi chính xác trong giai đoạn tàn cuộc.

  5. Tương thích đa nền tảng: BugChess hỗ trợ nhiều nền tảng bao gồm Windows, Android và iOS. Phiên bản Android của nó có thị phần rất cao trong số các phần mềm cờ tướng di động.

Mô hình Kinh doanh và Chiến lược Thị trường:

Chiến lược kinh doanh của BugChess khác biệt so với Cyclone và Mingshou:

  • Giá tương đối thấp hơn, nhắm đến cơ sở người dùng rộng hơn
  • Hỗ trợ nhiều phương thức thanh toán và mô hình cấp phép
  • Cung cấp phiên bản dùng thử miễn phí
  • Cập nhật và bảo trì liên tục, phản hồi hỗ trợ người dùng nhanh chóng

Cơ sở Người dùng:

Cơ sở người dùng của BugChess bao phủ một phạm vi cực kỳ rộng:

  • Các cơ sở đào tạo cờ tướng sử dụng BugChess như một công cụ hỗ trợ giảng dạy
  • Các kỳ thủ chuyên nghiệp sử dụng BugChess để chuẩn bị trước giải đấu và phân tích thế cờ
  • Nghiệp dư sử dụng BugChess để luyện tập và chơi hàng ngày
  • Người dùng các nền tảng chơi cờ trực tuyến sử dụng BugChess để hợp tác người-máy

Mặc dù BugChess không có “hào quang vô địch” như Cyclone hay Mingshou, với sự ổn định, dễ sử dụng và hỗ trợ nền tảng rộng rãi, nó chiếm một vị trí không thể bỏ qua trên thị trường phần mềm cờ tướng.

10.5 So sánh Đa chiều các Cỗ máy Giai đoạn 2009–2015

Giai đoạn 2009 đến 2015 là thời kỳ trưởng thành của thương mại hóa cỗ máy cờ tướng, với các cỗ máy thể hiện sự phát triển khác biệt về hướng tiếp cận kỹ thuật, mô hình kinh doanh và định vị thị trường. Dưới đây là so sánh có hệ thống từ nhiều chiều:

Chiều Xiangqi Mingshou Xiangqi Cyclone (sau này) Jiajia Xiangqi (Jiajia) BugChess (Xiaochong) Nan’ao Xiangqi (Nanao)
Thời kỳ hoạt động 2009–2016 2005–nay 2009–2016 2010–nay 2012–nay
Nhà phát triển Jiang Zhimin + Zhang Min Chen Chaoying Li Guolai Nhóm Liu Zongyuan Zheng Mingzheng → Đội ngũ Nanao
Tổ chức phát triển Nhóm cá nhân Cá nhân Cá nhân Nhóm tập thể Nhóm nhỏ
Công nghệ cốt lõi PVS + song song + phân tán PVS + null move + LMR GGzero (MCTS+NN) → truyền thống PVS + dữ liệu PVS + thủ công + dữ liệu
Phương pháp đánh giá Thủ công sâu (100+ đặc điểm) Thủ công + hiệu chỉnh dữ liệu Thủ công → NN (sau này) Thủ công + dữ liệu Thủ công + tối ưu từng bước
Chiến lược song song Đa luồng + cụm phân tán Đa luồng (SMP) Đa luồng Đa luồng Đa luồng
Giao thức UCI UCCI UCI (sau này) UCI UCCI
Giấy phép Thương mại đóng Thương mại đóng Thương mại đóng Thương mại đóng Thương mại đóng
Kết quả ICGA Bạc (2008) Vàng (2013)
Kết quả CCMC 5 lần vô địch (2009–2014) 2 lần vô địch (2007, 2010)
Hỗ trợ nền tảng Windows Windows / Linux Windows Win / Mac / Android / iOS Windows
Chiến lược giá Giấy phép trung-cao cấp Giấy phép trung cấp Miễn phí → Trả phí Giá thấp, số lượng lớn Giấy phép trung cấp
Người dùng mục tiêu Kỳ thủ chuyên / bán chuyên Người đam mê cốt lõi Nhà nghiên cứu / người đam mê Người dùng đại chúng / giáo dục Người đam mê / tác giả thư viện
Ưu điểm chính Sức mạnh hàng đầu, phân tán mạnh Tiến hóa liên tục, thuật toán tốt Khám phá MCTS sớm Đa nền tảng, giá thấp Sách khai cuộc mạnh, ổn định
Nhược điểm chính Giá cao, hậu mãi hạn chế Giao diện kém, tài liệu thưa Sức mạnh dao động, cập nhật chậm Trần sức mạnh thấp hơn Quảng bá hạn chế, độ nhận diện thấp
Đóng góp lịch sử Năm chức vô địch liên tiếp CCMC Vận hành thương mại lâu nhất Thí nghiệm tích hợp AI + cờ tướng Tiên phong di động Kế thừa truyền thống Đài Loan
Sức mạnh đỉnh (ELO) ~2850 ~2780 ~2550 ~2500 ~2600
Cải tiến kỹ thuật đáng chú ý Kiến trúc tìm kiếm phân tán Tối ưu tỉa nhánh LMR Tìm kiếm Cây Monte Carlo Cổng Android Tự động hóa sách khai cuộc

Ghi chú: Trong giai đoạn này, Xiangqi Mingshou đã thiết lập vị thế là cỗ máy thương mại hàng đầu với năm chức vô địch CCMC liên tiếp. Tuy nhiên, việc nó không tham gia các sự kiện quốc tế như ICGA phản ánh lựa chọn chiến lược của một số cỗ máy thương mại nội địa — ưu tiên lợi nhuận thương mại tại thị trường nội địa hơn là các cuộc thi học thuật quốc tế. Nỗ lực GGzero của Jiajia Xiangqi là ứng dụng có hệ thống đầu tiên của công nghệ MCTS trong cờ tướng. Mặc dù sức mạnh thi đấu của nó không đạt đến trình độ của các cỗ máy PVS, nó đã đặt nền móng kỹ thuật cho kỷ nguyên NNUE sau này. Thành công của BugChess đã chứng minh tầm quan trọng của hỗ trợ đa nền tảng và giá cả hợp lý trong việc mở rộng cơ sở người dùng.

Chương 11 Nanao Chess: Từ Xiangqi Shijia đến Di sản Xuyên thế hệ

11.1 Tiền thân của Nanao Chess: Sự Ra đời của Xiangqi Shijia

Nanao Chess (Nanao Xiangqi / sachess) là một lực lượng quan trọng có bề dày lịch sử trong lĩnh vực cỗ máy cờ tướng. Tiền thân của nó là Xiangqi Shijia (Xiangqi Shijia / “Kỳ Gia”), được tạo ra bởi nhà phát triển người Đài Loan Zheng Mingzheng (biệt danh trực tuyến “Poor”) vào giữa những năm 1990.

Nguồn gốc của Xiangqi Shijia (1995):

Zheng Mingzheng là một giáo viên tiểu học ở Đài Loan. Vào tháng 11 năm 1995, ông đã dùng thời gian rảnh để bắt đầu viết một chương trình khách cờ tướng có tên “zmz” để chơi trực tuyến trên ICCS (International Chinese Chess System — Hệ thống Cờ Tướng Quốc tế). Chương trình ban đầu chỉ là một giao diện cờ đơn giản, nhưng khi Zheng Mingzheng liên tục bổ sung các tính năng, nó dần dần phát triển thành một cỗ máy cờ tướng hoàn chỉnh.

Vào năm 2000, phần mềm chính thức được đặt tên là Xiangqi Shijia, một cái tên giàu văn hóa do Shi Jinshan đặt. Sau đó, một nhóm phát triển chính thức đã được tập hợp:

  • Zheng Mingzheng (Poor): Nhà phát triển cốt lõi của cỗ máy, chịu trách nhiệm về thuật toán tìm kiếm và hàm đánh giá (được phát triển bằng ngôn ngữ lập trình Visual Basic 6.0 (sp5))
  • Wu Yanqi: Kiểm thử và tối ưu hóa cỗ máy
  • Tang Shiyan: Kiểm thử cỗ máy
  • Shi Jinshan: Thu thập sách khai cuộc
  • Huang Hengshan: Trưởng nhóm kiểm thử

Vào đầu những năm 2000, Xiangqi Shijia được bán tại Đài Loan và Hồng Kông, trở thành một trong những thương hiệu quan trọng trên thị trường phần mềm cờ tướng thương mại. Xiangqi Shijia cũng là một trong những phần mềm cờ tướng đầu tiên tham gia vào hợp tác phát triển từ xa xuyên biên giới qua Internet. Xiangqi Shijia V4 là phiên bản lớn cuối cùng do Zheng Mingzheng và Xiao Ye (Quảng Châu, Trung Quốc đại lục) phát triển. V5 là một phiên bản lớn trong đó Zheng Mingzheng chịu trách nhiệm về cỗ máy (mã nguồn C++, thuật toán kế thừa từ thuật toán VB của riêng ông) và Oldwu (Thượng Hải, Trung Quốc đại lục) chịu trách nhiệm về giao diện và bán hàng tại thị trường Trung Quốc đại lục. Sau đó, do bất đồng nội bộ trong nhóm, nhóm ban đầu đã chia tách, dẫn đến các phiên bản dòng V6-V9 được duy trì bởi Oldwu.

Thành tích của Xiangqi Shijia tại ICGA:

Năm 2010, Xiangqi Shijia (thi đấu dưới tên Shiga) đã giành huy chương vàng trong nội dung cờ tướng tại Olympic Tin học ICGA lần thứ 15 (Kanazawa, Nhật Bản). Đây là vinh dự cao nhất cho dòng cỗ máy Xiangqi Shijia tại các giải đấu quốc tế.

11.2 Sự Đổi thương hiệu và Kiến trúc Kỹ thuật của Nanao Chess

Sau năm 2009, Oldwu, tác giả giao diện của Xiangqi Shijia, sau nhiều năm nghiên cứu công nghệ cỗ máy, đã phát hành một cỗ máy mới dưới tên Nanao Chess (sachess). Tệp thực thi của cỗ máy được đặt tên là sachess.exe, do đó nó cũng thường được gọi là “Sachess.”

Kiến trúc Kỹ thuật:

Nanao Chess là một cỗ máy dựa trên Đánh giá Thủ công (Hand-Crafted Evaluation — HCE) truyền thống, sử dụng kiến trúc tìm kiếm Alpha-Beta cổ điển:

  1. Thuật toán Tìm kiếm: PVS (Principal Variation Search) kết hợp với Làm sâu dần (Iterative Deepening), Tỉa nhánh Nước đi Null (Null Move Pruning), Tỉa nhánh Lịch sử (History Pruning), Cửa sổ Khát vọng (Aspiration Windows) và các kỹ thuật khác.

  2. Tìm kiếm Yên tĩnh (Quiescence Search): Được sử dụng để giảm thiểu Hiệu ứng Đường chân trời (Horizon Effect), tiếp tục tìm kiếm các nước ăn quân và các nước đi quan trọng sau khi đạt đến độ sâu tìm kiếm đã đặt.

  3. Bảng Chuyển vị (Transposition Table): Bảng chuyển vị dựa trên hàm băm Zobrist để lưu vào bộ nhớ đệm kết quả của các thế cờ đã được tìm kiếm.

  4. Sắp xếp Nước đi: Sử dụng chiến lược sắp xếp nhiều lớp — nước đi tốt nhất từ bảng chuyển vị trước, tiếp theo là các nước ăn quân (theo nguyên tắc MVV/LVA, tức Nạn nhân Giá trị nhất / Kẻ tấn công Giá trị thấp nhất), sau đó là Nước đi Sát thủ (Killer Moves), và cuối cùng là các nước đi theo Heuristic Lịch sử (History Heuristic).

  5. Mở rộng Tìm kiếm (Search Extensions): Các kỹ thuật như Mở rộng Chiếu (Check Extension), Mở rộng Ăn lại (Recapture Extension) và Mở rộng Đe dọa Chiếu hết (Mate-threat Extension).

  6. Biểu diễn Thế trận (Position Representation): Sử dụng kỹ thuật bit-rank/bit-file để sinh nước đi hiệu quả.

  7. Hàm Đánh giá: Đánh giá thủ công truyền thống, bao gồm nhiều chiều như giá trị quân, giá trị vị trí, độ linh hoạt của quân, độ an toàn của Tướng, v.v. Hàm đánh giá của Nanao Chess đã được tinh chỉnh tỉ mỉ trong kỷ nguyên đánh giá thủ công.

Sách Khai cuộc:

Sách khai cuộc của Nanao Chess được xây dựng từ hàng nghìn ván đấu đẳng cấp kiện tướng, bao gồm dữ liệu ván đấu trình độ cao từ các giải cờ tướng quốc gia, Giải Tượng Kỳ (Xiangjia League), Giải Vô địch Cá nhân, Yitian Huashan (Nhất Thiên Hoa Sơn) và các nguồn khác. Sách khai cuộc hỗ trợ tra cứu trực tuyến sách khai cuộc đám mây và cơ sở dữ liệu tàn cuộc đám mây.

Hỗ trợ Đa lõi:

Nanao Chess đã phát hành nhiều phiên bản để hỗ trợ các cấu hình phần cứng khác nhau:

  • Phiên bản Lõi kép (phát hành miễn phí): Tối ưu cho CPU lõi kép
  • Phiên bản Cao cấp Lõi tứ v1.5: Tối ưu cho CPU lõi tứ
  • Cả phiên bản 32-bit và 64-bit đều được cung cấp

Tính năng Giao diện:

GUI đi kèm của Nanao Chess có các tính năng sau:

  • Giao diện phong cách Office 2003
  • Chế độ phân tích cho bất kỳ thế cờ nào
  • Hỗ trợ ghi chép ván đấu định dạng XML
  • Tương thích với các định dạng ghi chép ván đấu XQF, CBL, PGN, MXQ, CHE, v.v.
  • Quản lý và chỉnh sửa sách khai cuộc
  • Quản lý cấu hình cỗ máy

11.3 Kết quả Thi đấu của Nanao Chess

Nanao Chess đã đạt được các kết quả sau tại các giải đấu như Giải Vô địch Trò chơi Máy tính Trung Quốc (China Computer Games Championship) và Giải Mời AI Cờ Tướng Châu Á:

Năm Sự kiện Kết quả
2017 Giải Vô địch Trò chơi Máy tính Trung Quốc lần thứ 11 (Trùng Khánh) Á quân
2017-10 Cúp Sở Hà Hán Giới lần thứ 2 Giải Mời AI Cờ Tướng Châu Á (Huỳnh Dương) Hạng ba
2019 Giải Đấu AI Cờ Tướng Sở Hà Hán Giới lần thứ 3 Đã tham gia

Giải Vô địch Trò chơi Máy tính Trung Quốc lần thứ 11 năm 2017:

Tại Giải Vô địch Trò chơi Máy tính Trung Quốc lần thứ 11 được tổ chức tại Trùng Khánh, Nanao Chess đã giành vị trí á quân, một trong những kết quả tốt nhất của nó tại các giải đấu ở Trung Quốc đại lục. Trong suốt giải đấu, Nanao Chess đã thể hiện khả năng chiến thuật trung cuộc xuất sắc và xử lý tàn cuộc ổn định.

Cúp Sở Hà Hán Giới lần thứ 2 năm 2017:

Tại Giải Mời AI Cờ Tướng Châu Á Cúp Sở Hà Hán Giới được tổ chức tại Huỳnh Dương, Hà Nam, Nanao Chess đã thi đấu với các đối thủ mạnh như Xiangqi Cyclone, Xiangqi Tianqi và Alpha Cat. Giải đấu sử dụng thiết lập siêu máy tính 36 lõi thống nhất, sách khai cuộc bị vô hiệu hóa và áp dụng lối ra sách bắt buộc sau 8 nước.

Nanao Chess đã hòa liên tiếp với Xiangqi Cyclone, Xiangqi Tianqi và Alpha Cat trong ba vòng đầu tiên của vòng loại, thể hiện trạng thái thi đấu ổn định. Nó cuối cùng đã giành hạng ba và giải thưởng 5.000 RMB. Nhà vô địch là Xiangqi Cyclone, và á quân là Xiangqi Mingshou.

Đánh giá Sức mạnh:

Theo dữ liệu thử nghiệm cộng đồng, sức mạnh thi đấu của phiên bản miễn phí Nanao Chess xấp xỉ 2890 ELO (theo bảng xếp hạng cỗ máy của Kaka), tương đương với trình độ của Xiangqi Mingshou 3.26, vượt xa các đại kiện tướng con người, nhưng kém đáng kể so với các cỗ máy NNUE hiện đại (Pikafish xấp xỉ 4005 ELO).

Trong bảng xếp hạng cỗ máy cộng đồng, Nanao Chess được xếp hạng khoảng thứ 16 (trong số khoảng 26 cỗ máy được kiểm tra), đặt nó ở trình độ của các cỗ máy truyền thống hạng hai.

11.4 Mô hình Cấp phép và Tác động Cộng đồng của Nanao Chess

Mô hình cấp phép của Nanao Chess đã phát triển từ thương mại sang miễn phí:

  • Phiên bản Lõi kép Nanao Chess: Phát hành miễn phí, phù hợp cho máy tính cấp thấp
  • Phiên bản Cao cấp Lõi tứ: Có thể là phiên bản trả phí

Mã nguồn của Nanao Chess chưa bao giờ được công khai. Mặc dù không có giấy phép nguồn mở rõ ràng, việc phát hành miễn phí phiên bản lõi kép đã cho phép một lượng lớn người đam mê cờ tướng tiếp cận với khả năng phân tích cỗ máy đẳng cấp thương mại.

11.5 Ý nghĩa Lịch sử của Nanao Chess

Vị thế của Nanao Chess trong lịch sử phát triển cỗ máy cờ tướng:

  1. Người Tiên phong của Quá trình Chuyển đổi Thương mại sang Miễn phí: Mô hình phát hành phiên bản lõi kép miễn phí của Nanao Chess là một trong những nỗ lực đầu tiên chuyển đổi các cỗ máy thương mại sang mô hình miễn phí.

  2. Chuẩn mực của Kỷ nguyên HCE Truyền thống: Trước khi NNUE phổ biến, trình độ tinh chỉnh hàm đánh giá của Nanao Chess đại diện cho tiêu chuẩn cao của các cỗ máy đánh giá thủ công truyền thống.

  3. Vật chứa Ký ức Cộng đồng: Các phiên bản được lưu hành và hồ sơ thi đấu của Nanao Chess mang theo ký ức về hành trình phát triển của cộng đồng cỗ máy cờ tướng xuyên suốt những năm 2000-2010.

Phiên bản mới nhất được biết đến là Nanao Chess v1.6 (khoảng 2017-2019). Sau đó, các bản cập nhật cho Nanao Chess dường như đã ngừng, nhưng ảnh hưởng của nó trong cộng đồng và tính thực dụng trên các máy tính cấp thấp vẫn còn.


Chương 12 Pikafish: Cuộc Cách mạng Nguồn Mở Kỷ nguyên NNUE (2022–Nay)

Ảnh chụp màn hình trang web chính thức của Pikafish
Trang web chính thức của Pikafish www.pikafish.com — cỗ máy cờ tướng nguồn mở miễn phí mạnh nhất, cung cấp tải xuống, tài liệu Wiki và giao tiếp cộng đồng
Logo Pikafish
Logo dự án Pikafish — một cỗ máy cờ tướng nguồn mở được chuyển từ Stockfish, được cấp phép theo GPLv3, với kiến trúc đánh giá NNUE

12.1 Công nghệ NNUE và Sự Giới thiệu của Nó vào Cờ Tướng

NNUE (Efficiently Updatable Neural Network — Mạng Nơ-ron Cập nhật Hiệu quả) là một kiến trúc đánh giá mạng nơ-ron ban đầu được phát triển bởi lập trình viên người Nhật Yu Nasu vào năm 2018 cho cỗ máy cờ vua Stockfish. Đặc điểm nổi bật của NNUE là: sử dụng cấu trúc mạng tuyến tính nửa số nguyên (half-integer linear network), trong đó sau mỗi nước đi chỉ cần cập nhật gia tăng các đặc điểm bị ảnh hưởng, thay vì thực hiện suy luận mạng đầy đủ trên toàn bộ bàn cờ.

Những Cải tiến Chính của NNUE:

  1. Cập nhật Gia tăng (Incremental Update): NNUE chỉ cập nhật các giá trị đặc điểm của vị trí cũ và mới của quân cờ vừa di chuyển, thay vì tính toán lại toàn bộ bàn cờ. Điều này làm cho chi phí tính toán của việc cập nhật đặc điểm độc lập với kích thước bàn cờ, chỉ liên quan đến phạm vi cục bộ bị ảnh hưởng bởi mỗi nước đi.

  2. Tính toán Thưa (Sparse Computation): NNUE chuyển đổi trích xuất đặc điểm thưa thành các phép tính ma trận của các lớp kết nối đầy đủ (fully connected layers), khéo léo tận dụng các tập lệnh SIMD (đặc biệt là AVX2) để suy luận hàng loạt hiệu quả.

  3. Kiến trúc Lai (Hybrid Architecture): NNUE được sử dụng như một mô hình đánh giá thế trận kết hợp với tìm kiếm Alpha-Beta — đánh giá được thực hiện bởi NNUE, trong khi tìm kiếm vẫn sử dụng tìm kiếm PVS truyền thống.

Di chuyển NNUE từ Cờ Vua sang Cờ Tướng:

Di chuyển NNUE từ cờ vua sang cờ tướng không phải là một bản sao tham số đơn giản; nó yêu cầu giải quyết các vấn đề thích ứng sau:

Khác biệt về Kích thước Bàn cờ: Cờ vua là 8×8 = 64 ô; Cờ tướng là 9×10 = 90 điểm giao nhau. Điều này có nghĩa là kích thước đặc điểm đầu vào cho cờ tướng lớn hơn khoảng 1,4 lần so với cờ vua.

Khác biệt về Loại Quân: Cờ vua có 6 loại quân mỗi bên (Vua, Hậu, Xe, Tượng, Mã, Tốt); Cờ tướng có 7 loại quân mỗi bên (Tướng/Soái, Sĩ, Tượng/Tướng, Mã, Xe, Pháo, Tốt/Binh). Ngoài ra, “Pháo” của cờ tướng có luật ăn quân nhảy độc đáo không có đối tác trong cờ vua.

Khác biệt về Sông: “Sông” của cờ tướng chia bàn cờ thành lãnh thổ đỏ và đen. Tốt/Binh thay đổi hành vi sau khi qua sông, điều này cần được phản ánh trong mạng đánh giá.

Khác biệt về Cung: Phạm vi di chuyển của Tướng/Soái và Sĩ bị giới hạn trong cung, điều này ảnh hưởng đến phương pháp mã hóa các đặc điểm đầu vào của mạng.

12.2 Sự Ra đời và Phát triển Ban đầu của Pikafish

Dự án Pikafish bắt đầu vào năm 2022, được tạo ra bởi những người dùng trên nền tảng nguồn mở GitHub. Ban đầu, nó được thúc đẩy bởi một nhóm các nhà phát triển trong cộng đồng có kiến thức sâu sắc về cách tiếp cận kỹ thuật của Stockfish.

Nguồn gốc của Tên gọi Pikafish:

Tên Pikafish bắt nguồn từ cách chơi chữ theo ngữ âm của “Feika Yu” (Pikafish phát âm giống “Phi Khả Ngư” trong tiếng Trung), đồng thời cũng tương ứng với tên Stockfish (Stockfish là cá tuyết khô, Pikafish là một loại “cá” khác). Phong cách đặt tên này phản ánh mối quan hệ của dự án với Stockfish — thích ứng mã nguồn của Stockfish cho cờ tướng.

Nguồn gốc Dự án và Tạo Kho lưu trữ GitHub:

Kho lưu trữ GitHub của Pikafish ban đầu được tạo với tên tổ chức/kho lưu trữ “official-pikafish/Pikafish.” Các thành viên sáng lập đã chọn tham gia ẩn danh hoặc dưới bút danh, một phần để tránh các tranh chấp tiềm ẩn về sở hữu trí tuệ của các cỗ máy thương mại.

Phát triển Phiên bản Đầu (2022):

Các phiên bản đầu tiên của Pikafish (khoảng tháng 4-5 năm 2022) chủ yếu liên quan đến việc thích ứng mã của Stockfish với luật chơi và bàn cờ tướng. Công việc ở giai đoạn này bao gồm:

  1. Biểu diễn bàn cờ thay đổi từ 8×8 thành 9×10
  2. Loại quân thay đổi từ 6 mỗi bên thành 7 mỗi bên
  3. Thích ứng luật chơi (đối mặt Tướng, pháo ăn quân nhảy, tốt qua sông, v.v.)
  4. Thích ứng cấu trúc mạng NNUE (điều chỉnh kích thước lớp đầu vào)
  5. Hỗ trợ giao thức UCCI (thay vì giao thức UCI)

Sự Tham gia của Các Cộng tác viên Cộng đồng:

Dự án Pikafish nhanh chóng thu hút một số lượng lớn các nhà phát triển cộng đồng. Những người đóng góp này có nền tảng đa dạng:

  • Các nhà phát triển từ cộng đồng cờ vua quan tâm đến cờ tướng
  • Những người đam mê từ cộng đồng phần mềm cờ tướng
  • Các nhà nghiên cứu và sinh viên khoa học máy tính
  • Lập trình viên quan tâm đến các dự án nguồn mở

12.3 Huấn luyện Mạng NNUE và Bộ Dữ liệu

Huấn luyện một mạng NNUE yêu cầu dữ liệu đánh giá thế trận cờ tướng quy mô lớn, chất lượng cao. Các nguồn dữ liệu của Pikafish bao gồm:

  1. Dữ liệu Sách Đám mây (Cloud Book Data): Sử dụng dữ liệu cơ sở dữ liệu tàn cuộc lớn và sách khai cuộc từ Sách Đám mây Cờ tướng (chessdb.cn). Sách đám mây cung cấp khoảng 2,5 triệu điểm dữ liệu đánh giá.

  2. Dữ liệu Tự đấu (Self-Play Data): Pikafish thu thập dữ liệu ván đấu bằng cách tiến hành số lượng lớn các trận đấu giữa các phiên bản khác nhau của cỗ máy. Dữ liệu này được quản lý thông qua khung Fishtest.

  3. Dữ liệu Cỗ máy vs. Cỗ máy: Dữ liệu được tạo ra từ các trận đấu giữa Pikafish và các cỗ máy khác (như Cyclone, Mingshou).

  4. Dữ liệu Cơ sở Ván đấu: Dữ liệu ván đấu lịch sử của các kỳ thủ đẳng cấp kiện tướng con người.

Huấn luyện mạng NNUE sử dụng các tập lệnh Python (dựa trên PyTorch hoặc TensorFlow), với quy trình huấn luyện bao gồm:

  • Chuẩn bị dữ liệu: Chuyển đổi ván đấu thành các mẫu huấn luyện (thế trận + nước đi + giá trị đánh giá)
  • Làm sạch dữ liệu: Lọc dữ liệu chất lượng thấp hoặc bất thường
  • Huấn luyện mạng: Sử dụng các vòng lặp huấn luyện tăng tốc GPU
  • Chuyển đổi lượng tử hóa: Chuyển đổi mạng đã huấn luyện thành định dạng nhúng có thể tải được bởi C++

Quy mô và Chất lượng của Dữ liệu Huấn luyện NNUE:

Huấn luyện NNUE yêu cầu các bộ dữ liệu quy mô lớn. Dữ liệu huấn luyện được thu thập bởi cộng đồng Pikafish lên đến hàng triệu hoặc thậm chí hàng chục triệu thế cờ. Dữ liệu bao gồm:

  • Nhiều loại thế trận từ khai cuộc đến tàn cuộc
  • Nhiều phạm vi đánh giá từ ưu thế đến bất lợi
  • Nhiều thế trận từ cấu hình quân đơn giản đến cấu trúc nhiều quân phức tạp

Chất lượng của dữ liệu huấn luyện ảnh hưởng trực tiếp đến độ chính xác đánh giá của NNUE. Cộng đồng Pikafish đã thực hiện nhiều công việc trong việc làm sạch và tiền xử lý dữ liệu, bao gồm:

  • Loại bỏ các thế cờ trùng lặp hoặc tương tự
  • Lọc các bất thường rõ ràng (như trạng thái trung gian của các ván đấu đã có kết quả)
  • Cân bằng phân phối của các loại thế trận khác nhau trong dữ liệu

12.4 Kiến trúc Kỹ thuật của Pikafish

Kiến trúc mã nguồn của Pikafish dựa trên Stockfish, nhưng được thích ứng sâu sắc cho cờ tướng. Các mô-đun cốt lõi của nó bao gồm:

1. Biểu diễn Thế trận (Position Representation):

Pikafish sử dụng biểu diễn bitboard cho trạng thái bàn cờ. Mỗi loại quân (7 đỏ + 7 đen = 14 loại) sử dụng một số nguyên 64-bit để biểu diễn vị trí của nó. Vì bàn cờ tướng chỉ có 90 điểm giao nhau, 26 bit trên của bitboard có thể được sử dụng để lưu trữ thông tin trạng thái khác.

2. Bộ Sinh Nước đi (Move Generator):

Bộ sinh nước đi của Pikafish được tối ưu hóa cao, sử dụng:

  • Các bảng nước đi quân cờ được tính toán trước
  • Thuật toán phát hiện “ăn quân nhảy” của Pháo (yêu cầu kiểm tra xem có chính xác một quân làm “giá pháo” giữa pháo và quân mục tiêu hay không)
  • Phát hiện “chân què” của Mã
  • Phát hiện “mắt bị chặn” của Tượng

3. Thuật toán Tìm kiếm (Tìm kiếm PVS):

Pikafish sử dụng tìm kiếm PVS tiêu chuẩn của Stockfish, kết hợp với các kỹ thuật tỉa nhánh sau:

  • Tỉa nhánh Nước đi Null (Null Move Pruning): Mạnh dạn giả định rằng ngay cả khi đối thủ có một nước đi miễn phí, thế trận vẫn không thua, trong các giai đoạn không phải tàn cuộc
  • LMR (Late Move Reductions): Giảm độ sâu tìm kiếm cho các nước đi được sắp xếp sau
  • SEE (Static Exchange Evaluation): Đánh giá lãi/lỗ ròng của các chuỗi ăn quân trao đổi
  • Tỉa nhánh Razor (Razor pruning), Tỉa nhánh Futility (Futility pruning), v.v.

4. Tìm kiếm Song song Lazy SMP:

Pikafish sử dụng Lazy SMP (Lazy Symmetric Multi-Processing) cho tìm kiếm song song. Ý tưởng cơ bản của Lazy SMP là:

  • Nhiều luồng tìm kiếm chia sẻ một bảng chuyển vị
  • Mỗi luồng thực hiện tìm kiếm độc lập, không có phân bổ tác vụ
  • Các luồng giao tiếp gián tiếp thông qua bảng chuyển vị được chia sẻ

Mặc dù Lazy SMP kém hiệu quả hơn trong việc sử dụng tài nguyên phần cứng so với các chiến lược phân bổ tác vụ chính xác, nó đơn giản để triển khai và có khả năng mở rộng tốt, đặc biệt hoạt động tốt trên phần cứng có số lõi cao với 16+ luồng.

5. Mạng Đánh giá NNUE:

Cấu trúc mạng NNUE của Pikafish được thích ứng cho cờ tướng dựa trên bộ đặc điểm HalfKP của Stockfish. HalfKP sử dụng “vị trí tướng của ta + vị trí của từng quân đối phương” làm đặc điểm, tận dụng tính đối xứng của bàn cờ để giảm số lượng đặc điểm.

Phiên bản mới nhất của Pikafish sử dụng kiến trúc ATT++ (Attention-based NNUE), giới thiệu cơ chế chú ý (attention mechanisms) để cải thiện khả năng mô hình hóa các mẫu không gian quy mô lớn của mạng.

12.5 Các Phiên bản Phát hành Quan trọng nhất của Pikafish

Lịch sử phát triển của Pikafish bao gồm một số phiên bản cột mốc quan trọng:

Phiên bản (Ngày phát hành) Tính năng Chính Điểm Cải thiện Sức mạnh
Phiên bản đầu (giữa 2022) Chuyển từ Stockfish, đánh giá NNUE cơ bản Đạt được khả năng sử dụng cơ bản, sức mạnh tương đương với cỗ máy thương mại truyền thống
2022-10-22 Sửa lỗi đánh giá sai tàn cuộc, tối ưu thời gian kiểm soát dài Cải thiện độ ổn định trong ván đấu thời gian kiểm soát dài (LTC)
2022-12-26 Luật 60 nước, phát hiện lặp lại ba lần, mô hình WDL Cải thiện sức mạnh khoảng +26 ELO
Nhiều phiên bản nhỏ năm 2023 Cải tiến huấn luyện mạng liên tục Dần dần cải thiện khoảng 80 ELO
2024-08-31 Kiến trúc mạng NNUE ATT++ Cải thiện đáng kể, khoảng +60 ELO
2025-06-23 Bộ nhớ đệm L1 lớn hơn, mã hóa mid-mirror, tối ưu AVX512, cải thiện phát hiện bế tắc Khoảng +50 ELO

Tính đến năm 2026, sự phát triển của Pikafish vẫn tiếp tục, với cộng đồng duy trì các đóng góp và cập nhật tích cực.

12.6 Khung Kiểm thử Fishtest

Fishtest là khung kiểm thử phân tán được sử dụng bởi cộng đồng Pikafish. Fishtest ban đầu được phát triển bởi cộng đồng Stockfish để chạy các bài kiểm tra cỗ máy quy mô lớn trên tài nguyên tính toán do những người tham gia cộng đồng nguồn mở đóng góp.

Cách Fishtest Hoạt động:

  1. Gửi Kiểm thử (Test Submission): Một nhà phát triển gửi một bản vá (patch) lên Fishtest, tuyên bố rằng bản vá dự kiến sẽ cải thiện sức mạnh thi đấu.

  2. Phân phối Tác vụ (Task Distribution): Máy chủ Fishtest phân rã tác vụ kiểm thử thành nhiều nhóm ván đấu và phân phối chúng đến máy tính của những người đóng góp trong cộng đồng.

  3. Thực hiện Ván đấu (Game Execution): Máy tính của mỗi người đóng góp chạy một số lượng ván đấu được chỉ định (thường sử dụng thời gian kiểm soát kiểm thử tiêu chuẩn: 15s+0.5s hoặc 60s+0.6s, v.v.).

  4. Báo cáo Kết quả (Result Reporting): Mỗi máy tính báo cáo kết quả kiểm thử trở lại máy chủ Fishtest.

  5. Kiểm tra SPRT: Máy chủ thực hiện SPRT (Sequential Probability Ratio Test — Kiểm định Tỷ lệ Xác suất Tuần tự) trên các kết quả tích lũy để xác định liệu bản vá “đạt” (cải thiện ELO đáng kể), “không đạt” (thay đổi ELO không đáng kể hoặc âm) hay “cần thêm dữ liệu.”

Cách SPRT Hoạt động:

SPRT là một phương pháp kiểm định giả thuyết thống kê liên tục tích lũy dữ liệu cho đến khi có đủ bằng chứng để đưa ra phán quyết. SPRT yêu cầu thiết lập:

  • H0 (Giả thuyết Không): Bản vá không thay đổi sức mạnh thi đấu (thay đổi ELO = 0)
  • H1 (Giả thuyết Thay thế): Bản vá cải thiện sức mạnh thi đấu (thay đổi ELO > 0)
  • Sai lầm Loại I (α): Xác suất chấp nhận H1 một cách sai lầm
  • Sai lầm Loại II (β): Xác suất chấp nhận H0 một cách sai lầm

Khi số lượng ván đấu kiểm thử tăng lên, SPRT tính toán Tỷ lệ Khả năng (Likelihood Ratio) và xác định xem kết quả đã đạt đến ngưỡng chấp nhận/từ chối hay chưa. Ưu điểm của SPRT là nó có thể đưa ra phán quyết tại thời điểm sớm nhất có thể, tránh các ván đấu kiểm thử không cần thiết.

Tác động của Fishtest đến Cộng đồng Cờ Tướng:

Sau khi Pikafish giới thiệu khung Fishtest, phương pháp kiểm thử cho các cỗ máy cờ tướng đã có một bước nhảy vọt về chất:

  • Thay đổi từ “điều chỉnh tham số theo cảm tính” sang “xác nhận thống kê dựa trên dữ liệu”
  • Mọi sửa đổi phải vượt qua kiểm định ý nghĩa thống kê mới được chấp nhận
  • Dữ liệu kiểm thử được mở và minh bạch, bất kỳ thành viên cộng đồng nào cũng có thể xem

12.7 Kiến trúc Cụ thể được Sử dụng bởi Cỗ máy Pikafish

Pikafish dựa trên Stockfish và sử dụng kiến trúc tìm kiếm PVS hoàn chỉnh. Các thành phần liên quan đến tìm kiếm cốt lõi của nó bao gồm:

Khung Tìm kiếm (Search Framework):

  • Main Search (hàm tìm kiếm chính)
  • QSearch (tìm kiếm yên tĩnh, chỉ xem xét các nước ăn quân)
  • RootSearch (tìm kiếm nút gốc, hàm chính cho làm sâu dần)

Kỹ thuật Tỉa nhánh (Pruning Techniques):

  • Tỉa nhánh Nước đi Null (Null Move Pruning)
  • Tỉa nhánh Razor (Razoring)
  • Tỉa nhánh Futility (Futility Pruning)
  • Tỉa nhánh Nước đi Muộn (Late Move Pruning)
  • Tỉa nhánh SEE (Static Exchange Evaluation Pruning)
  • ProbCut (tỉa nhánh dựa trên xác suất, sử dụng kết quả tìm kiếm nông cho quyết định tỉa nhánh)

Sắp xếp Nước đi (Move Ordering):

  • Hash Move (nước đi tốt nhất từ bảng chuyển vị)
  • Winning Captures (nước đi ăn quân thắng lợi)
  • Promotions (phong cấp tốt/binh — trong cờ tướng, giá trị thay đổi sau khi qua sông)
  • Equal Captures (nước đi ăn quân trao đổi ngang)
  • Killer Moves (nước đi sát thủ)
  • History Moves (nước đi heuristic lịch sử)
  • Losing Captures (nước đi ăn quân thua thiệt)
  • Other Moves (các nước đi khác)

12.8 Dữ liệu Kiểm thử cho các Phiên bản Pikafish

Tất cả các cải tiến phiên bản của Pikafish đều trải qua kiểm thử có đối chứng ngẫu nhiên mù đôi nghiêm ngặt (thông qua nền tảng Fishtest). Dưới đây là kết quả kiểm thử cho một số phiên bản tiêu biểu:

Phiên bản 2022-10-22:

Phiên bản này đã cải thiện hiệu suất trong các ván đấu thời gian kiểm soát dài (LTC) và bước đầu sửa các vấn đề đánh giá sai trong thế trận tàn cuộc. Tệp mạng NNUE sử dụng dữ liệu được huấn luyện từ các phiên bản trước.

Phiên bản 2022-12-26:

Đây là một trong những cải tiến phiên bản đầu quan trọng nhất của Pikafish. Các tính năng mới bao gồm:

  • Luật 60 nước và phát hiện lặp lại ba lần (về cơ bản tuân thủ luật châu Á)
  • Giới thiệu mô hình WDL (Win/Draw/Lose — Thắng/Hòa/Thua)
  • Kiến trúc nén NNUE mới

Kết quả Kiểm thử:

  • Số ván đấu: 1.548
  • Tỷ lệ thắng: 53,84%
  • Cải thiện ELO: +26,20 (khoảng tin cậy 95%: [15,87, 36,90])

Phiên bản 2024-08-31:

Giới thiệu kiến trúc mạng NNUE ATT++ hoàn toàn mới, mang lại sự cải thiện đáng kể về sức mạnh thi đấu và giảm kích thước tệp mạng. Cũng đã cập nhật logic luật chu kỳ.

Phiên bản 2025-06-23:

Một phiên bản tối ưu hóa hiệu suất quan trọng:

  • Kích thước bộ nhớ đệm L1 lớn hơn, hoạt động tốt hơn trong các ván đấu thời gian kiểm soát dài
  • Giới thiệu mã hóa đặc điểm đầu vào mid-mirror, cải thiện tính đối xứng đánh giá trong các thế trận phản chiếu
  • Cải thiện phát hiện bế tắc trong tìm kiếm yên tĩnh
  • Tối ưu hóa hiệu suất tập lệnh AVX512

12.9 Tài liệu Kỹ thuật và Hệ sinh thái Tài liệu của Pikafish

Dự án Pikafish có một hệ thống tài liệu tương đối hoàn chỉnh, phản ánh sự trưởng thành về kỹ thuật của nó như một dự án nguồn mở trưởng thành:

  • README.md: Tổng quan dự án, hướng dẫn biên dịch, mô tả giấy phép
  • AUTHORS: Danh sách đầy đủ tất cả những người đóng góp
  • UCI & Commands Guide: Tài liệu tham khảo lệnh đầy đủ cho giao thức UCI
  • Advanced Topics: Các thảo luận kỹ thuật chuyên sâu bao gồm đánh giá NNUE, kiểm thử Fishtest, tối ưu hóa biên dịch, v.v.
  • DeepWiki: Tài liệu kỹ thuật chuyên sâu do bên thứ ba duy trì bao gồm kiến trúc NNUE, chuyển đổi đặc điểm, hệ thống tìm kiếm, v.v.

Hệ sinh thái tài liệu toàn diện này rất quan trọng để thu hút những người đóng góp mới và hạ thấp rào cản đóng góp.

Kho lưu trữ GitHub của Pikafish
Kho lưu trữ nguồn mở GitHub của Pikafish — official-pikafish/Pikafish, một cỗ máy cờ tướng nguồn mở được chuyển từ Stockfish, được cấp phép theo GPLv3

12.10 Đóng góp của Pikafish cho Nghiên cứu Cờ Tướng

Sự xuất hiện của Pikafish không chỉ là một sự kiện kỹ thuật; nó cũng đã thúc đẩy mạnh mẽ những thay đổi trong cách thức nghiên cứu cờ tướng:

Dân chủ hóa Nghiên cứu (Democratization of Research):

Trước Pikafish, các công cụ phân tích đẳng cấp cao nhất có giá từ hàng trăm đến hàng nghìn RMB (như các cỗ máy thương mại Xiangqi Cyclone và Mingshou). Là một cỗ máy nguồn mở miễn phí, Pikafish cho phép bất kỳ người đam mê nào với một máy tính thông thường có thể tiếp cận các công cụ phân tích đẳng cấp thế giới. Điều này đã hạ thấp đáng kể rào cản đối với việc phân tích cờ tướng trình độ cao.

Ứng dụng Giáo dục (Educational Applications):

Pikafish được sử dụng rộng rãi trong các tình huống giảng dạy cờ tướng. Các huấn luyện viên có thể sử dụng Pikafish để phân tích ván đấu của học viên, tạo bài tập luyện tập thế trận và mô phỏng đối thủ ở các cấp độ khác nhau.

Bảo tồn Văn hóa (Cultural Preservation):

Bản thân lịch sử phát triển của Pikafish đang tích lũy một di sản văn hóa số mở cho cộng đồng phần mềm cờ tướng. Mỗi Commit trên GitHub, mỗi cuộc thảo luận Issue và mỗi ván đấu kiểm thử đều đang ghi lại lịch sử hợp tác cộng đồng.