Tôi đang viết AI cho trò chơi bài và sau một số thử nghiệm tôi đã phát hiện ra rằng sử dụng MTD (f) trên thuật toán alpha beta của mình - một chuỗi các tìm kiếm không có cửa sổ - nhanh hơn chỉ sử dụng alpha-beta.Cách sử dụng bảng chuyển đổi với MTD (f)
Các MTD (f) thuật toán được mô tả tốt ở đây http://people.csail.mit.edu/plaat/mtdf.html
Tôi có vấn đề ở đây là mỗi đường chuyền trong MTD (f) tìm kiếm (đối với từng dự đoán) Tôi không tái sử dụng bất kỳ vị trí trước Tôi đã lưu trữ ngay cả khi ghi lên trên liên kết cho thấy rằng tôi nên (trong thực tế, thanh toán bù trừ các bảng giữa các lần lặp tăng tốc thuật toán).
Vấn đề của tôi là khi tôi lưu trữ một vị trí và một giá trị trong bảng chuyển vị của tôi, tôi cũng lưu trữ các giá trị alpha và beta mà nó hợp lệ. Do đó, lần thứ hai đi qua cây với một dự đoán khác (và do đó alpha và beta) không thể sử dụng lại bất kỳ thông tin nào. Đây có phải là những gì được mong đợi hoặc tôi thiếu một cái gì đó cơ bản ở đây?
Ví dụ, nếu cho alpha = 3 beta = 4, chúng tôi đến kết quả của 7 (rõ ràng là một cut-off) tôi nên lưu trữ trong bảng như là hợp lệ cho alpha = 3 để beta = 6? Hoặc beta = 7?
Cảm ơn bạn, đây chính xác là những gì tôi đang tìm kiếm và đã cắm một vài lỗ vào sự hiểu biết của tôi. – Daniel
Tôi nghĩ rằng nó cũng cần thiết để bằng cách nào đó chứng minh rằng nó không làm mất hiệu lực giả định alpha/beta để sử dụng các giá trị tt từ một tìm kiếm sâu hơn. Ít nhất là nếu bạn muốn toàn bộ sức mạnh. –