1. Trang chủ
  2. » Khoa Học Tự Nhiên

Thuật toán trong Thuật toán trong cờ caro

3 376 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 135,02 KB

Nội dung

Chào đồng chí Dương Trần, Theo tớ biết, nhiều cách tiếp cận để giải toán cờ ca rô hay cờ nói chung Ở tớ nêu cách: - Xây dựng hệ thống dựa tập luật (giống hệ chuyên gia) - Sử dụng giải thuật tìm kiếm để tìm nước tối ưu (Duyệt với độ sâu đó) Theo cách tiếp cận thứ nhất, ta phải xây dựng tập luật, luật biểu diễn dạng sau: If(State = A) then Move(A,x,B) - Trong A trạng thái bàn cờ - Move(A,x,B) thực nước tốt x (dựa kinh nghiệm) trạng thái A bàn cờ; B trạng thái bàn cờ sau thực nước x Tuy nhiên, cách tiếp cận gặp phải số vấn đề sau: - Số trạng thái bàn cờ lớn, liệt kê lưu trữ toàn tập luật - Việc xác định nước tốt trạng thái cho trước bàn cờ khó Do đó, người ta thường giải toán theo cách tiếp cận thứ 2: coi toán chơi cờ trường hợp đặc biệt lớp toán tìm kiếm Biểu diễn không gian trạng thái bàn cờ Như nói trên, toán cờ ca rô mô tả trường hợp đặc biệt lớp toán tìm kiếm Đối với lớp toán này, giải thuật tìm kiếm duyệt không gian trạng thái toán, trạng thái khởi đầu tìm trạng thái biểu diễn lời giải Nếu ta mô không gian trạng thái bàn toán (tree) giải thuật tìm kiếm gốc, theo "strategy" đó, duyệt node trung gian tìm lời giải node Như vậy, vấn đề cần phải giải biều diễn không gian trạng thái bàn cờ Với cờ ca rô, bạn đơn giản biểu diễn bàn cờ mảng chiều, phần tử mảng mang giá trị ô trống, ô chứa nước bạn, -1 ô chứa nước đối thủ Tuy nhiên, số loại cờ khác cờ vua, cờ tướng việc biêu diễn phức tạp Trạng thái bàn cờ phải mô tả tất khả bàn cờ Bước mô tả tất nước trạng thái bạn cờ Tại trạng thái bàn cờ, bạn (hay đối thủ thực số nước hợp lệ Khi thực nước này, bàn cờ chuyển sang trạng thái Một lần biểu diễn sau: If(State==A, move(A,x,B)) then State = B Trong đó: A trạng thái move(A,x,B) thực nước x trạng thái A B trạng thái bàn cờ sau đi nước x Khi biểu diễn trạng thái bàn cờ nước hợp lệ ứng với trạng thái, không gian trạng thái bàn cờ biểu diễn cây, với node gốc (roof) bàn cờ ca rô lúc ban đầu (không quân cờ nào), node B mức i (level i-child) đuợc xây dựng từ node A mức i - (parent) ứng với nước hợp lệ move(A,x,B) Cuối node Các node tương ứng với trạng thái kết thúc ván cờ (bạn thua, thắng, hòa) Lời giải cho toán node ứng với trạng thái "thắng" (mức ưu tiên 1) hòa (ưu tiên 2) Đến đây, ta thấy giải thuật trường hợp toán tìm kiếm Nếu bạn máy tính với tài nguyên "đủ lớn", bạn tìm trình tự nước (đuờng từ gốc tới lá) cho kết thúc ván cờ "tốt nhất" với bạn Tuy nhiên, thuật toán cờ nhiều điểm khác biệt Ví dụ: - Bạn biết trước nước đối thủ - Kích thước không gian trạng thái bàn cờ lớn (khoảng 15 mũ 80 nodes với cờ vua, 200 mũ 300 với cờ vây, ) Đặc biệt với loại cờ đơn giản cờ ca rô, cờ vây không gian trạng thái thường lớn nhiều ràng buộc quân cờ - Việc đánh giá so sánh trạng thái bàn cờ (hay nước đi) khó (một nước lợi thời điềm chưa tốt nước tiếp theo) Do vậy, loại cờ cần kỹ thuật tìm kiếm khác thay phương pháp tìm kiếm thông thường Hàm lượng giá giải thuật min-max, anpha-beta Như nói trên, không gian trạng thái bàn cờ lớn đặc tính đối kháng trò chơi, ta sử dụng phương pháp tìm kiếm thông thường (e.g vét cạn) để tìm kiếm lời giải tối ưu Các giải thuật áp dụng trò cờ tìm kiếm không gian trạng thái bàn cờ "lời giải tốt tương đối" ứng với thời gian cho trước (2 phút với cờ vua) Giải pháp thường sử dụng cờ ca rô loại cờ khác tìm kiếm tới độ sâu định trước (search up to certain level) tìm kiếm đạt tới thời gian cho phép (a wellknown methode: iterative deepening search) Một vấn đề đặt là: biết trạng thái bàn cờ tìm tốt, so sánh trạng thái bàn cờ? Nói cách khác lượng giá trạng thái bàn cờ Bạn nói: dễ, việc cho trạng thái bàn cờ giá trị! Nhưng vấn đề phát sinh là: Không thể liệt kê đánh giá hết trạng thái bàn cờ Việc đánh giá không dễ dàng Đây vấn đề khó gặp phải thiết kế chương trình đánh cờ Nó với người chơi cờ: Người chơi cờ giỏi người đánh giá cờ tốt người khác! Một giải pháp dùng hàm lượng giá (hay hàm mục tiêu) để lượng giá trạng thái bàn cờ Với hàm mục tiêu trạng bàn cờ tương ứng với giá trị thực Ví dụ, cờ vua, người ta lượng giá bạn cờ bàng tổng (có trọng số) quân đen - tổng số quân trắng Việc lựa chọn hàm mục tiêu tùy thưộc vào "nhạy cảm" bạn Trên thực tế, trò cờ tiếng Deepblue, C3000, người ta dùng nhiều kỹ thuật khác nhau; eg Machine learning, Artificial Neural Nets để tính giá trị cho trạng thái bàn cờ Sau xây dựng hàm mục tiêu, node trạng thái giá trị Vấn đề tìm nút với giá trị "lớn thể" tìm kiếm đường từ nút gốc tới nút Vì tính chất đối kháng trò chơi, bạn biết trước nước đối thủ, việc tìm kiếm khác chút Giải thuật min-max dùng phổ biết cho hầu hết chương trình cờ (thậm chí Deepblue) Ý tường giải thuật là: Gán người chơi nhãn MIN, Máy nhãn MAX Xây dựng tới độ sâu đó, level cây, gán MAX MAX đi, MIN MIN Tính toán giá trị cho nút (dùng hàm lượng giá), Sau tính ngược từ lên giá trị nút trung gian+nút gốc theo (1) SCORE(parent-MAX) = MAX (SCORE(all children)) (2) SCORE(parent-MIN) = MIN(SCORE(all children)) Theo cách này, tới lân máy đi, máy chọn node giá trị lớn nhất, lân người đi, xu hướng chọn node giá trị nhỏ (để giảm thiệt hại) Kết là, cuối trạng thái bàn 'giá trị đối kháng" tốt Thuật toán apha-beta trình bày đây: Initialise depthbound; Minimax (board, depth) = IF depth = depthbound THEN return static_evaluation(board); ELSE IF maximizing_level(depth) THEN FOR EACH child child of board compute Minimax(child, depth+1); return maximum over all children; ELSE IF minimizing_level(depth) THEN FOR EACH child child of board compute Minimax(child, depth+1); return minimum over all children; Call: Minimax(current_board, 0) Ngoài ra, để làm giảm nhánh duyệt người ta áp dụng nhiều ký thuật khác như: constraint processing, Backtracking, Backjumping, Backmarking, , Một thuật toán khác cải tiến từ thuật toán MIN-MAX thuật toán Alpha-Beta Để tìm hiểu thêm, bạn tham khảo "Trí tuệ nhân tạo" Nguyễn Thanh Thủy Chúc thành công! ... người ta áp dụng nhiều ký thuật khác như: constraint processing, Backtracking, Backjumping, Backmarking, , Một thuật toán khác cải tiến từ thuật toán MIN-MAX thuật toán Alpha-Beta Để tìm hiểu... vua, 200 mũ 300 với cờ vây, ) Đặc biệt với loại cờ đơn giản cờ ca rô, cờ vây không gian trạng thái thường lớn nhiều ràng buộc quân cờ - Việc đánh giá so sánh trạng thái bàn cờ (hay nước đi) khó... ưu Các giải thuật áp dụng trò cờ tìm kiếm không gian trạng thái bàn cờ "lời giải tốt tương đối" ứng với thời gian cho trước (2 phút với cờ vua) Giải pháp thường sử dụng cờ ca rô loại cờ khác tìm

Ngày đăng: 27/08/2017, 14:32

TỪ KHÓA LIÊN QUAN