Minimax Mô Hình Bài Toán
Đây là quy trình 5 bước dùng để kiểm tra xem một trò chơi đã được mô hình hóa đúng hay chưa trước khi áp dụng Minimax. Ta cần xác định đầy đủ trạng thái, thống nhất cách hiểu utility, kiểm tra mọi trạng thái và chuyển trạng thái đều hợp lệ, xác định đúng cơ chế đổi lượt hoặc yếu tố ngẫu nhiên, rồi dùng game graph nhỏ để tìm phản ví dụ cho cách mã hóa trạng thái. Nếu mô hình sai ở bất kỳ bước nào, thuật toán Minimax dù cài đặt đúng vẫn có thể cho kết quả sai.
5 bước kiểm chứng mô hình trò chơi
B1. Xác định đầy đủ trạng thái
Liệt kê mọi thông tin có thể làm thay đổi:
legal actions: các nước đi hợp lệ;transition: trạng thái sau khi thực hiện hành động;terminal: điều kiện kết thúc;utility: kết quả hoặc giá trị của trạng thái.
Nếu một thông tin trong lịch sử có thể làm thay đổi một trong bốn yếu tố trên thì thông tin đó phải được lưu trong state hoặc có thể suy ra chính xác từ state.
B2. Chọn góc nhìn của Utility
Xác định rõ giá trị được tính theo góc nhìn nào:
- người chơi ở
root; - người đang tới lượt (
side to move); - hoặc vector giá trị nếu có nhiều người chơi.
Sau khi chọn phải giữ nguyên quy ước trong toàn bộ thuật toán, không được đổi góc nhìn giữa chừng.
B3. Kiểm tra tính toàn phần của mô hình
Mọi trạng thái chưa kết thúc và có thể đạt tới phải có ít nhất một hành động hợp lệ.
Đồng thời, mọi hành động hợp lệ phải luôn sinh ra một trạng thái hợp lệ.
Tóm lại:
nonterminal reachable -> có ít nhất 1 legal action
và:
legal action -> valid next state
B4. Kiểm tra semantics của từng cạnh
Không mặc định rằng sau mỗi nước đi luôn đổi người chơi.
Với mỗi chuyển trạng thái cần kiểm tra:
- có đổi lượt hay không;
- có trường hợp người chơi được đi tiếp hay không;
- có
chance nodehay yếu tố ngẫu nhiên hay không.
Thuật toán phải tuân theo đúng luật của trò chơi, không chỉ dựa vào độ sâu chẵn/lẻ.
B5. Kiểm chứng State Key bằng phản ví dụ
Sinh một game graph nhỏ và liệt kê toàn bộ các history.
Tìm hai history khác nhau nhưng được mã hóa thành cùng một state key.
Nếu chúng có cùng key nhưng tương lai của trò chơi khác nhau, chẳng hạn:
- tập nước đi hợp lệ khác nhau;
- điều kiện kết thúc khác nhau;
- utility khác nhau;
- hoặc các trạng thái kế tiếp khác nhau;
thì state key đang thiếu thông tin.
Nguyên tắc:
cùng state key -> phải có cùng future game semantics