Professional Documents
Culture Documents
Trò chơi
Trò chơi ñối kháng và tìm kiếm
Thuật toán MINIMAX
Tỉa nhánh α-β
Hàm lượng giá, Tìm kiếm cắt nhánh
Trò chơi
4
Cờ vua
1997, DeepBlue ñánh bại Gary Kasparov trong
một trận ñấu 6 ván
Bí quyết:
Tìm kiếm vét cạn với ñộ sâu cao nhất có thể
Tính ñược 200.000.000 nước ñi mỗi giây so với 2 của
Kasparov
(99.99% nước ñi ñược xem là ngu ngốc)
Hàm lượng giá cực kỳ phức tạp
Trò chơi
4
Cờ vua
1997, DeepBlue ñánh bại Gary Kasparov trong
một trận ñấu 6 ván
Bí quyết:
Tìm kiếm vét cạn với ñộ sâu cao nhất có thể
Tính ñược 200.000.000 nước ñi mỗi giây so với 2 của
Kasparov
(99.99% nước ñi ñược xem là ngu ngốc)
Hàm lượng giá cực kỳ phức tạp
Thuật toán MINIMAX
8
X X X …
MIN(o) X
X X
… … …
MINIMAX-VALUE(n) =
Utility(n) nếu n là trạng thái kết thúc
max{MINIMAX-VALUE(s) | s∈succs(n)}
MAX A
MIN
B C D
3 12 8 2 4 6 14 5 2
MAX A
MIN
B 3 C 2 D 2
3 12 8 2 4 6 14 5 2
MIN
B 3 C 2 D 2
3 12 8 2 4 6 14 5 2
3 12 8 2 14 3 12 8 2 14 5 2
e) f)
Tỉa nhánh α-β (vd)
19
Gọi x, y là lợi ích của các trạng thái không xét. Ta có:
MINIMAX-VALUE(gốc) = max(min(3,12,8),
min(2,x,y),min(14,5,2))
= max(3, min(2,x,y), 2)
= max(3, z, 2) với z <= 2
=3
Giá trị MINIMAX tại gốc không phụ thuộc vào x và y.
ðánh giá α-β
20
Tỉa nhánh không ảnh hưởng ñến kết quả cuối cùng
Thứ tự các nước ñi tốt có thể cải thiện hiệu quả của tỉa
nhánh (trong ví dụ, hãy xem xét nhánh D)
ðánh giá khả năng thành công của một nước ñi (thắng,
thua, hòa?)
ðánh giá tuyến tính tổng các ñặc trưng có ñược của một
ñối thủ
Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s)
trong ñó: wi: trọng số gán cho quân thứ I
(ví dụ: hậu w=9, ngựa w= 3…)
fi: số quân còn lại