• Một kiểu NodeType được khai báo một cách thích hợp để biểu diễn cho một nút trên cây phản ánh một trạng thái của cuộc chơi. • Ta có một hàm is_leaf để xác định xem một nút có phải là nút lá hay không? • Hàm max và min tương ứng lấy giá trị lớn nhất và giá trị nhỏ nhất của hai giá trị. Hàm Search nhận vào một nút n và kiểu mode của nút đó (MIN hay MAX) trả về giá trị của nút. Nếu nút n là nút lá thì trả về giá trị. | Giải thuật Kĩ thuật thiết kế giải thuật Một kiểu NodeType được khai báo một cách thích hợp để biểu diễn cho một nút trên cây phản ánh một trạng thái của cuộc chơi. Ta có một hàm is_leaf để xác định xem một nút có phải là nút lá hay không Hàm max và min tương ứng lấy giá trị lớn nhất và giá trị nhỏ nhất của hai giá trị. Hàm Search nhận vào một nút n và kiểu mode của nút đó MIN hay MAX trả về giá trị của nút. Nếu nút n là nút lá thì trả về giá trị đã được gán cho nút lá. Ngược lại ta cho n một giá trị tạm value là -œ hoặc œ tùy thuộc n là nút MAX hay MIN và xét con của n. Sau khi một con của n có giá trị V thì đặt lại value max value V nếu n là nút MAX và value min value V nếu n là nút MIN. Khi tất cả các con của n đã được xét thì giá trị tạm value của n trở thành giá trị của nó. FUNCTION Search n NodeType mode ModeType real VAR C NodeType C là một nút con của nút n Value real Lúc đầu ta cho value một giá trị tạm sau khi đã xét hết tất cả các con của nút n thì value là giá trị của nút n BEGIN IF is_leaf n THEN RETURN Payoff n ELSE BEGIN Khởi tạo giá trị tạm cho n IF mode MAX THEN value -œ ELSE value œ Xét tất cả các con của n mỗi lần xác định được giá trị của một nút con ta phải đặt lại giá trị tạm value. Khi đã xét hết tất cả các con thì value là giá trị của n FOR với mỗi con C của n DO IF mode MAX THEN Value max Value Search C MIN ELSE Value min Value Search C MAX RETURN value END END Kĩ thuật cắt tỉa Alpha-Beta Alpha-Beta Pruning Trong giải thuật vét cạn ở trên ta thấy để định trị cho một nút nào đó ta phải định trị cho tất cả các nút con cháu của nó và muốn định trị cho nút gốc ta phải định trị cho tất cả các nút trên cây. Số lượng các nút trên cây trò chơi tuy hữu hạn nhưng không phải là ít. Chẳng hạn trong cây trò chơi ca rô nói trên nếu ta có bàn cờ bao gồm n ô thì có thể có tới n nút trên cây trong trường hợp trên là 9 . Đối với các loại cờ khác như cờ vua chẳng hạn thì số lượng các nút còn lớn hơn nhiều. Ta gọi là một sự bùng nổ tổ hợp các nút. .