Xét các trò chơi hai đối thủ đối kháng, chẳng hạn trò chơi nim. Để chơi nim, một số token (vật biểu hiện như đồng xu, lá bài, mảnh gỗ, ...) được đặt trên bàn giữa hai đối thủ. Ở mỗi nước đi, người chơi phải chia đống token thành hai đống nhỏ có số lượng khác nhau. Ứng với một số token vừa phải, không gian trạng thái này có thể triển khai đến cùng. Hình sau biểu diễn không gian trạng thái của trò chơi có 7 token
SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Bởi: Huynh Tram Vo SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Thủ tục minimax Xét trò chơi hai đối thủ đối kháng, chẳng hạn trò chơi nim Để chơi nim, số token (vật biểu đồng xu, bài, mảnh gỗ, ) đặt bàn hai đối thủ Ở nước đi, người chơi phải chia đống token thành hai đống nhỏ có số lượng khác Ứng với số token vừa phải, không gian trạng thái triển khai đến Hình sau biểu diễn không gian trạng thái trò chơi có token Hình 4.6 – Không gian trạng thái trò chơi nim 1/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Khi chơi trò chơi triển khai hết không gian trạng thái, khó khăn chủ yếu phải tính toán phản ứng đối thủ Một cách xử lý đơn giản giả sử đối thủ bạn sử dụng kiến thức không gian trạng thái giống bạn áp dụng kiến thức kiên định để thắng Mặc dù giả thiết có hạn chế nó cho sở hợp lý để dự đoán hành vi đối thủ Minimax tìm kiếm không gian trò chơi theo giả thiết Hai đối thủ trò chơi gọi MIN MAX MAX đại diện cho đối thủ giành thắng lợi hay cố gắng tối đa hóa ưu Ngược lại MIN đối thủ cố gắng tối thiểu hóa điểm số MAX Ta giả thiết MIN dùng thông tin MAX Khi áp dụng thủ tục Minimax, đánh dấu luân phiên mức không gian tìm kiếm phù hợp với đối thủ có nước mức Trong ví dụ trên, MIN quyền trước, nút gán giá trị hay tùy theo kết thắng MAX hay MIN Minimax truyền giá trị lên cao dần đồ thị qua nút cha mẹ theo luật sau: - Nếu trạng thái cha mẹ nút MAX, gán cho giá trị tối đa cháu - Nếu trạng thái cha mẹ nút MIN, gán cho giá trị tối thiểu cháu Giá trị gán cho trạng thái cách rõ giá trị trạng thái tốt mà đối thủ hy vọng đạt Các giá trị dùng để lựa chọn nước có Kết việc áp dụng Minimax vào đồ thị không gian trạng thái trò chơi Nim thể hình Vì tất nước xảy cho MIN dẫn đến nút có giá trị nên đối thủ MAX bắt trò chơi giành thắng lợi cho nước đẩu tiên MIN (đường thắng lợi MAX cho theo mũi tên đậm) Áp dụng minimax đến độ sâu lớp cố định Khi áp dụng Minimax cho trò chơi phức tạp, có khả mở rộng đồ thị không gian trạng thái đến nút Thay vào không gian trạng thái triển khai đến số mức xác định phụ thuộc tiềm thời gian nhớ chẳng hạn Chiến lược gọi tính trước n nước (n –move lookahead) Vì giá trị nút đồ thị trạng thái kết thúc trò chơi nên chúng không phản ánh giá trị thắng hay thua Chúng gán giá trị phù hợp với hàm đánh giá heuristic Giá trị truyền ngược nút gốc không cung cấp thông tin thắng hay thua mà giá trị heuristic trạng thái tốt tiếp cận sau n nước kể từ nút xuất phát Việc tính trước làm tăng hiệu heuristic áp dụng vào phạm vi lớn 2/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI không gian trạng thái Minimax hợp tất giá trị nút cháu trạng thái thành giá trị cho trạng thái Trong đồ thị trò chơi tìm kiếm mức hay lớp, MAX MIN luân phiên chọn nước Mỗi nước đối thủ xác định lớp đồ thị Các chương trình trò chơi nói chung dự tính trước độ sâu lớp cố định (thường xác định giới hạn không gian thời gian máy tính) Các trạng thái mức đánh giá theo heuristic giá trị truyền ngược lên thủ tục Minimax, sau thuật toán tìm kiếm dùng giá trị vừa nhận để chọn lựa nước số nước Bằng cách tối đa hóa cho cha mẹ MAX tối thiểu hóa cho cha mẹ MIN, giá trị lùi theo đồ thị đến trạng thái hành Sau trạng thái hành dùng chúng để tiến hành lựa chọn Hình sau trình bày trình Minimax không gian trạng thái giả thuyết tính trước bốn lớp Hình 4.7 – Minimax không gian trạng thái giả định Hình 4.8 giới thiệu ứng dụng Minimax độ sâu lớp cố định vào trò chơi Tic-tactoe 3/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Hình 4.8 – Minimax hai lớp áp dụng vào nước mở đầu trò chơi Tic-tac-toe Ở sử dụng heuristic phức tạp hơn, cố đo mức độ tranh chấp trò chơi Heuristic chọn trạng thái cần đo, tính tất đường thắng mở cho MAX, trừ tổng số đường thắng mở cho MIN Giải thuật tìm kiếm cố gắng tối đa hóa chênh lệch (hiệu số) Nếu có trạng thái bắt buộc thắng cho MAX, đánh giá +∞, với trạng thái bắt buộc thắng cho MIN đánh giá -∞ Hình 4.8 trình bày heuristic áp dụng cho hai mức bắt đầu không gian trạng thái Câu hỏi : Khi máy tính sử dụng giải thuật minimax để chơi cờ, máy tính chơi tốt thời gian cho phép để tính toán cho nước cờ lâu Hãy giải thích cách ngắn gọn điều Thủ tục cắt tỉa alpha – beta (alpha-beta prunning) Minimax yêu cầu phải có phân tích qua hai bước không gian tìm kiếm: Bước đầu truyền xuống đến độ sâu lớp áp dụng heuristic bước sau để truyền ngược giá trị Minimax lần theo tất nhánh không gian bao gồm nhánh mà thuật toán thông minh bỏ qua hay tỉa bớt Các nhà nghiên cứu lĩnh vực chơi game xây dựng kỹ thuật tìm kiếm gọi cắt tỉa alpha –beta nhằm nâng cao hiệu tìm kiếm toán trò chơi hai đối thủ 4/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Ý tưởng tìm kiếm alpha – beta đơn giản: Thay tìm kiếm toàn không gian đến độ sâu lớp cố định, tìm kiếm alpha – beta thực theo kiểu tìm kiếm sâu Có hai giá trị, gọi alpha beta tạo trình tìm kiếm Giá trị alpha liên quan với nút MAX có khuynh hướng không giảm Ngược lại giá trị beta liên quan đến nút MIN có khuynh hướng không tăng Giả sử có giá trị alpha nút MAX 6, MAX không cần phải xem xét giá trị truyền ngược nhỏ có liên quan với nút MIN bên Alpha giá trị thấp mà MAX nhận sau cho MIN nhận giá trị tốt Tương tự MIN có giá trị beta không cần xem xét nút nằm có giá trị lớn Để bắt đầu thuật toán tìm kiếm alpha – beta, ta xuống hết độ sâu lớp theo kiểu tìm kiếm sâu, đồng thời áp dụng đánh giá heuristic cho trạng thái tất trạng thái anh em Giả thuyết tất nút MIN Giá trị tối đa nút MIN truyền ngược lên cho nút cha mẹ (là nút MAX) Sau giá trị gán cho ông bà nút MIN giá trị beta kết thúc tốt Tiếp theo thuật toán xuống nút cháu khác kết thúc việc tìm kiếm nút cha mẹ chúng gặp giá trị lớn giá trị beta Quá trình gọi cắt tỉa beta (β cut) Cách làm tương tự thực cho việc cắt tỉa alpha (α cut) nút cháu nút MAX Hai luật cắt tỉa dựa giá trị alpha beta là: • Quá trình tìm kiếm kết thúc bên nút MIN có giá trị beta nhỏ giá trị alpha nút cha MAX • Quá trình tìm kiếm kết thúc bên nút MAX có giá trị alpha lớn giá trị beta nút cha MIN Việc cắt tỉa alpha – beta thể quan hệ nút lớp n nút lớp n+2 quan hệ toàn bắt nguồn lớp n+1 loại khỏi việc xem xét Chú ý giá trị truyền ngược thu hoàn toàn giống kết Minimax, đồng thời tiết kiệm bước tìm kiếm cách đáng kể 5/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI A có β = (Trị nút A không lớn 3)B bị cắt tỉa β, > 3C có α = (Trị nút C không nhỏ 3)D bị cắt tỉa α, < 3E bị cắt tỉa α, < 3Trị nút C Hình 4.9 – Thực giải thuật cắt tỉa alpha – beta TỔNG KẾT CHƯƠNG IV: Các heuristic tìm kiếm giới thiệu thông qua trò chơi đơn giản trò đố ô, Tic-tac-toe, … phát triển đến không gian toán phức tạp Chương trình bày việc áp dụng heuristic cho trò chơi đối kháng có hai người chơi, dùng cách rút gọn tối thiểu độ sâu lớp cắt tỉa alpha - beta để thực việc tính trước nước dự đoán hành vi đối thủ Việc áp dụng heuristic làm cho không gian toán trở nên ngắn gọn hơn, thời gian tìm kiếm lời giải chấp nhận tối thiểu trình tìm kiếm trở nên đơn giản nhiều Phần chương V tiếp theo, xem xét kỹ thuật cao câp cho việc cài đặt thuật toán Bài tập chương IV Xét toán trò đố ô sau: 6/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Dùng hàm lượng giá heuristic sau, triển khai không gian trạng thái toán theo giải thuật leo núi đến mức 5: • h1 = số lượng vị trí sai khác so với trạng thái goal • h2 = tổng số độ dời ngắn ô vị trí (khoảng cách Manhattan) Trong tìm kiếm đây, nút có giá trị kèm: giá trị bên trái nút (in nghiêng) thể giá trị heuristic nút, giá trị bên phải nút thể thứ tự nút duyệt qua Với chiến lược tìm kiếm đây, viết danh sách thứ tự nút duyệt, so sánh cho biết ta dùng giải thuật tìm kiếm : • • • • Tìm kiếm rộng BFS Tìm kiếm sâu DFS Tìm kiếm tốt Tìm kiếm leo núi Thực giải thuật Minimax sau đây: 7/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Sẽ có khác biệt ta dùng giải thuật cắt tỉa alpha – beta để định trị nút gốc cho cây? Hãy áp dụng giải thuật cắt tỉa alpha-beta cho sau Cho biết nhánh cắt alpha-cut hay beta-cut giá trị nút gốc sau định trị: 8/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI 9/9 ... thiệu ứng dụng Minimax độ sâu lớp cố định vào trò chơi Tic-tactoe 3/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Hình 4.8 – Minimax hai lớp áp dụng vào nước mở đầu trò chơi Tic-tac-toe Ở sử dụng heuristic. ..SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI Khi chơi trò chơi triển khai hết không gian trạng thái, khó khăn chủ yếu phải tính toán phản ứng đối thủ Một cách xử lý đơn giản giả sử đối thủ bạn sử dụng. .. hiệu heuristic áp dụng vào phạm vi lớn 2/9 SỬ DỤNG HEURISTIC TRONG CÁC TRÒ CHƠI không gian trạng thái Minimax hợp tất giá trị nút cháu trạng thái thành giá trị cho trạng thái Trong đồ thị trò chơi