Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (121.94 KB, 5 trang )
Báo cáo môn Trí tuệ nhân tạo
Sinh viên: Đỗ Tuấn Sơn.
Lớp: Tin5A.
Giáo viên hướng dẫn: Ngô Hữu Phúc.
Đề tài:Không gian trạng thái được mô tả là trò chơi cờ tướng.
Hãy xây dựng chương trình giải quyết bài toán theo phương
pháp cắt tỉa alpha-beta.
Để mô tả không gian trạng thái của 1, ta sử dụng 3 mảng răng cưa:
private int[][] giatri = new int[150][];
private int[][] cha = new int[150][];
private int[][] con = new int[150][];
Mảng giatri[][] để chứa các giá trị của từng node, mảng cha[][] để xác định giá trị
cha của từng node, mảng con để xác định node đó là lá của cây hay là đỉnh kết thúc.
Thuật toán cắt tỉa Alpha-Beta:
Ý tưởng này được gọi là nguyên tắc Alpha-Beta do nó dùng trong thủ tụcAlphaBeta
Hai tham số của thủ tục này (theo các đặt tên truyền thống) được gọi là alpha và beta
và dùng để theo dõi các triển vọng - chúng cho biết các giá trị nằm ngoài khoảng
[alpha, beta] là các điểm "thật sự tồi" và không cần phải xem xét nữa. Khoảng [alpha,
beta] còn được gọi là cửa sổ alpha, beta. Trong ngữ cảnh của các trò chơi, nguyên tắc
Alpha-Beta nói rằng, mỗi khi xem xét một nút bất kì, nên kiểm tra các thông tin đã
biết về các nút cha, ông của nó. Rất có thể do có đủ thông tin từ cha, ông nên không
cần phải làm bất cứ việc gì nữa cho nút này. Cũng vậy, nguyên tắc này cũng giúp
chỉnh sửa hoặc xác định chính xác giá trị tại nút cha, ông nó. Như trên nói, một cách
để tiện theo dõi quá trình tính toán là dùng các tham số alpha và beta để ghi lại các
thông tin theo dõi cần thiết. Thủ tục AlphaBeta được bắt đầu tại nút gốc với giá trị
của alpha là -vôcùng và beta là +vôcùng. Thủ tục sẽ tự gọi đệ quy chính nó với
khoảng cách giữa các giá trị alpha và beta ngày càng hẹp hơn.
-Đánh giá độ phức tạp của thuật toán Alpha-Beta:
Trong trường hợp điều kiện lý tưởng, thuật toán Alpha-Beta chỉ cần xét số nút:
+Số d chẵn: