phân phối alpha beta cắt tỉa


19

Tôi đang tìm kiếm một thuật toán hiệu quả cho phép tôi xử lý cây tìm kiếm minimax cho cờ vua với việc cắt tỉa alpha-beta trên một kiến ​​trúc phân tán. Các thuật toán tôi đã tìm thấy (PVS, YBWC, DTS xem bên dưới) đều khá cũ (năm 1990 là mới nhất). Tôi cho rằng đã có nhiều tiến bộ đáng kể kể từ đó. Tiêu chuẩn hiện tại trong lĩnh vực này là gì?

Ngoài ra xin vui lòng chỉ cho tôi một lời giải thích của một thằng ngốc về DTS vì tôi không thể hiểu nó từ các tài liệu nghiên cứu mà tôi đã đọc.

Các thuật toán được đề cập ở trên:

  • PVS: Chia tách nguyên tắc
  • YBWC: Khái niệm chờ đợi anh em trẻ
  • DTS: Chia tách cây năng động

tất cả đều được thảo luận ở đây .


Có lẽ đây là một bài đọc thú vị: Chessbase.com/newsdetail.asp?newsid=8047
Alex ten Brink

2
Vâng, đây là một vấn đề (song song tìm kiếm minimax hoặc bất kỳ biến thể nào của nó) đặc biệt khó khăn. Trong một bài báo xuất hiện năm nay của Richard Korf có tựa đề "Những thách thức nghiên cứu trong tìm kiếm kết hợp", có thể đọc đoạn sau: "[...] tìm kiếm minimax với prising alpha-beta, rất khó để song song" Tôi thực sự nghi ngờ có một thuật toán làm cho nó luôn luôn hiệu quả ...
Carlos Linares López

Vì vậy, xem xét tôi chỉ là một sinh viên khoa học máy tính học kỳ 4 rất khiêm tốn, tôi nên đi tìm một thuật toán nối tiếp hay tôi nên thử mong đợi một số tăng tốc tuyến tính phụ được chấp nhận?
wirate

Xin lỗi vì sự chậm trễ trong câu trả lời của tôi, điều này đã hoàn toàn không được chú ý trong Hộp thư đến của tôi. Như một vấn đề thực tế, tôi hy vọng rằng khoản tiết kiệm cuối cùng hoàn toàn phụ thuộc vào việc phân phối điểm số được gán bởi chức năng đánh giá của bạn cho các lá của cây tìm kiếm. Nói chung, không có gì đảm bảo rằng thuật toán tìm kiếm phân tán sẽ hoạt động tốt hơn đáng kể so với thuật toán tìm kiếm alpha-beta được tuần tự hóa. Vì vậy, tôi chắc chắn sẽ dùng phiên bản nối tiếp của nó để thử càng nhiều cải tiến càng khả thi (di chuyển theo thứ tự, bảng chuyển vị, v.v.)
Carlos Linares López

Tôi đã có một số thành công với alpha-beta song song (về cơ bản như được mô tả trên trang wiki mà bạn đã liên kết).
Danh sách Jeremy

Câu trả lời:


3

vâng, lý thuyết đã tiến bộ đáng kể và phần nào nhờ cả tài liệu phân tích cờ vua và kỹ thuật lập trình song song chung. Dưới đây là một số giới thiệu mới hơn về (beta) cắt tỉa alpha beta trên các cụm / song song phân tán. Ngoài ra, một số tài liệu cờ vua điện toán phân tán ban đầu có rất nhiều mẫu thiết kế song song cơ bản và có thể được khái niệm hóa trong khuôn khổ đó.

ý tưởng cơ bản đằng sau DTS là các cây tìm kiếm được phân phối giữa các nút tính toán dựa trên độ phức tạp di chuyển / bố cục. bộ xử lý không sử dụng "hoàn thành sớm" có thể thực hiện công việc bổ sung ngoài phân bổ ban đầu có thể được phân phối đồng đều nhất có thể ban đầu nhưng sẽ không đồng đều. do đó về cơ bản nó là một loại hàng đợi " cân bằng tải" và "nhà sản xuất / người tiêu dùng" , hoặc cũng tương tự như lập kế hoạch công việc.

Bộ xử lý nhàn rỗi này phát sóng (sử dụng bộ nhớ dùng chung) rằng nó không hoạt động và có sẵn để "giúp" bất kỳ bộ xử lý nào khác hoàn thành việc tìm kiếm cây của nó. Các bộ xử lý bận rộn thu thập dữ liệu "trạng thái của cây" và lưu trữ nó trong bộ nhớ dùng chung để bộ xử lý nhàn rỗi kiểm tra. Bộ xử lý nhàn rỗi này phân tích dữ liệu này và quyết định (nếu có) trong các bộ xử lý bận rộn dường như có một cây đủ phức tạp để có thể giúp tìm kiếm hiệu quả. Nếu tìm thấy một vị trí như vậy, bộ xử lý nhàn rỗi sẽ thông báo cho bộ xử lý sở hữu nút đó và họ "tham gia" các lực lượng.

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.