Tôi hy vọng đây không phải là quá nhiều câu hỏi tùy ý, nhưng tôi đã xem xét các mã nguồn của Faile và TSCP và tôi đã chơi chúng với nhau. Theo như tôi có thể thấy các công cụ có rất nhiều điểm chung, nhưng thất bại tìm kiếm ~ 1,3 triệu nút mỗi giây trong khi TSCP chỉ tìm kiếm 300k nút mỗi giây.Tại sao Thất bại nhanh hơn rất nhiều so với Chương trình Cờ vua Đơn giản (TSCP)? (Tối ưu hóa động cơ cờ vua)
Mã nguồn cho lỗi có thể tìm thấy tại đây: http://faile.sourceforge.net/download.php. Mã nguồn TSCP có thể tìm thấy ở đây: http://www.tckerrigan.com/Chess/TSCP. Sau khi xem xét chúng, tôi thấy một số điểm tương đồng: cả hai đều sử dụng biểu diễn bảng mảng (mặc dù Faile sử dụng bảng kích thước 144), cả hai đều sử dụng tìm kiếm alpha beta với một số loại bảng chuyển vị, cả hai đều có hàm đánh giá rất giống nhau. Sự khác biệt chính tôi có thể tìm thấy là Faile sử dụng một đại diện dư thừa của hội đồng quản trị bằng cách cũng có mảng của các vị trí mảnh. Điều này có nghĩa là khi các chuyển động được tạo ra (bởi các hàm rất giống nhau cho cả hai chương trình), Faile phải lặp lại ít phần xấu hơn, trong khi duy trì mảng này tốn ít tài nguyên hơn đáng kể.
Câu hỏi của tôi là: tại sao có sự khác biệt 4x về tốc độ của hai chương trình này? Ngoài ra, tại sao Faile luôn đánh bại TSCP (tôi ước tính khoảng 200 điểm ELO chỉ bằng cách theo dõi chuyển động của họ)? Đối với sau này, nó có vẻ là bởi vì Faile đang tìm kiếm một số sâu hơn.
Cảm ơn câu trả lời. Tôi có thể chia sẻ một số nghiên cứu tôi đã làm trong đó trong thời gian chờ đợi.Tôi nghĩ rằng tôi thấy rằng có lẽ lý do lớn nhất, trong khi những gì bạn nói là một lý do chính đáng, là trong khi dường như TSCP đầu tiên sử dụng các bảng chuyển vị, nó thực sự không phải. Nó tạo ra một chìa khóa Zobrist nhưng chỉ sử dụng nó để vẽ bằng sự lặp lại. Điều này có nghĩa là nó có khả năng phân tích một số vị trí nhiều lần. Từ những gì tôi đã đọc, các bảng chuyển vị trí có thể tạo ra hiệu suất tăng 3-4x. –