Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
557,7 KB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG Báo cáo Trị chơi cờ úp android sử dụng thuật toán Alpha-Beta cắt tỉa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sinh viên thực hiện: Phạm Xuân Cường 20090438 Đinh Minh Quốc 20092156 Nguyễn Quốc Vinh 20093277 Lê Thanh Tùng 20093106 Ngô Việt Linh 20091599 Trần Thanh Sơn 20092281 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hà Nội 07/2013 Mục lục I Đặt vấn đề toán Giới thiệu trò chơi cờ úp: Mục tiêu toán Mô tả không gian trạng thái toán II Phương pháp giải 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giới thiệu thuật toán 10 1.1 Thuật toán MINIMAX: 10 1.2 Thuật toán Alpha-Beta cắt tỉa 12 Hàm chi phí 16 III Cài đặt chương trình 19 IV Đánh giá chương trình 21 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com I Đặt vấn đề tốn Giới thiệu trị chơi cờ úp: Cờ úp biến thể trò chơi cờ Tướng, sử dụng bàn cờ quân giống cờ Tướng Trong trò chơi này, thời điểm bắt đầu, quân cờ bên bàn úp xuống cách ngẫu nhiên Nước cờ úp phải tuân theo luật cờ tướng vị trí chiếm giữ Sau nước đầu, quân cờ lật lại từ nước này, quân cờ theo luật cờ Tướng thông thường Luật quân cờ Tướng: Mỗi nước ô, ngang dọc Tướng phạm vi cung."Cung" gồm hình vng nhỏ gạch đường chéo LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sĩ: Đi chéo, nước ô Sĩ "Cung" giống Tướng Tượng: Đi chéo ô nước, ngang dọc Tượng không phép qua sông sang bàn cờ đối phương.Nước Tượng không hợp lệ có quân cờ chặn đường Xe: Đi ngang dọc khắp bàn cờ miễn khơng có quân khác cản đường Mã: Đi ngang ô dọc ô ( dọc ô ngang ô) cho nước đi.Nếu có quân khác nằm cạnh mã cản đường ngang cản đường dọc 2, mã khơng đường Pháo: Đi ngang dọc giống Xe Điểm khác Pháo muốn ăn quân đối phương Pháo quân muốn ăn phải có quân cản LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tốt: Đi nước Nếu Tốt chưa qua sơng thẳng tiến Khi vượt qua sơng ngang thẳng tiến, nước ô Một số ngoại lệ cờ úp: Quân sĩ khơng bị giới hạn cung mà khắp bàn cờ Quân tượng sang lãnh thổ đối phương Quân tốt xuất phát từ đường biên ngang bên sân nhà, qua sông ngang Kết thúc trận đấu: Chiếu bí: Nếu bên chiếu (bắt Tướng) đối phương khơng cịn khả đỡ Bên chiếu tướng thắng Hết nước đi: Nếu bến tới lượt khơng có nước hợp lệ để đi, bên bị thua LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Xin thua: Người chơi xin đầu hàng chấp nhận thua ván chơi Cầu hòa: Người chơi cầu hòa đối phương đồng ý Ván chơi xử hịa Mục tiêu tốn Xây dựng ứng dụng mơ trị chơi cờ úp người với máy, người với người tảng điện thoại android Mô tả không gian trạng thái toán Trạng thái đầu: Là trạng thái bàn cờ thời điểm bắt đầu chơi Trạng thái thể hình Với trị chơi này, trạng thái ban đầu sinh ngẫu nhiên từ 2.17! khả Trạng thái đích: Là trạng thái mà hai quân tướng hai bên bị ăn quân LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com tướng khơng cịn nước hợp lệ Khi đó, bên cịn lại người thắng Trạng thái trung gian: Là trạng thái hợp lệ bàn cờ thời điểm ván đấu Các cạnh nối: Trạng thái bàn cờ mức i mức (i+1) có cạnh nối với trạng thái mức (i+1) sinh từ trạng thái mức I cách di chuyển quân cờ bàn theo bước hợp lệ II Phương pháp giải Giới thiệu thuật toán 1.1 Thuật toán MINIMAX: Đây thuật toán thường sử dụng trò chơi đối kháng hai bên Giả sử trạng thái bàn cở gắn giá trị cụ thể Người chơi Max chọn nước LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com dẫn đến điểm lớn hơn, Min tìm nước để điểm nhỏ Các giá trị điểm trạng thái bàn cờ xác định thơng qua hàm lượng giá trị chơi Ví dụ thuật tốn MINIMAX: Xét hình vẽ, thời điểm ban đầu, Max chọn nút có giá trị Đến lượt Min, Min chọn nút có giá trị Đến lượt Max, Max chọn nút (có giá trị 6) nút (có giá trị 14) tương ứng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1.2 Thuật toán Alpha-Beta cắt tỉa Mặc dù thuật tốn MINIMAX hiệu cho trị chơi đối kháng, nhiên thuật toán chậm tìm kiếm lớn khơng hiệu thực tế Đặc biệt với tốn trị chơi cờ úp, thời điểm bắt đầu, số nút 44 Nhưng từ mức thứ hai trở đi, số nút sinh sau trạng thái nhiều Vì dùng MINIMAX thời gian chạy lâu Thuật toán Alpha-Beta cắt tỉa cải tiến dựa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MINIMAX cho phép ta dự đoán nhánh không chứa kết loại bỏ nhánh để làm giảm số lượng nút phải sinh lượng giá, làm tăng độ sâu tìm kiếm Ý tưởng tìm kiếm alpha – beta đơn giản: Thay tìm kiếm tồ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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 tố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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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à: o Q 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 o Q 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Việc cắt tỉa alpha – beta thể quan hệ nút lớp n nút lớp n+2 quan hệ tồ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ể Thuật tốn mơ tả qua mã giả sau Hàm chi phí LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hàm chi phí trị chơi trạng thái đánh giá dựa ba yếu tố Tổng điểm quân đỏ (người chơi Max) Tổng điểm quân đen (người chơi Min) Điểm thưởng Công thức tổng quát hàm lượng giá Trong đó: f(x): Điểm số quân x bàn cờ Nếu quân cờ x trạng thái úp f(x)= diemTrangThaiUp Nếu quân cờ trạng thái lật f(x)= diemTrangThaiLat+ diemViTri Nếu quân cờ bị ăn f(x)=0 Dưới điểm loại quân với trạng thái tương ứng STT Quân Trạng thái úp Trạng thái lật LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com cờ Chốt 20 10 Sĩ 20 35 Tượng 20 35 Mã 20 45 Pháo 20 100 Xe 20 70 Tướng 6000 diemViTri loại quân biểu diễn qua ma trận thể điểm loại quân vị trí bàn cờ VD: Điểm vị trí quân xe LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com điểm thưởng phe đỏ phe đen cho cờ tốt sinh bàn cờ − Khi bên đen bị khuyết sĩ mà bên đỏ cịn xe bên đỏ cộng điểm − Khi tốt sang sông cộng điểm − … III Cài đặt chương trình Chương trình cài đặt máy chạy hệ điều hành android thơng qua file apk Giao diện chương trình LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bắt đầu ván chơi Kết thúc ván chơi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com IV Đánh giá chương trình Chương trình mơ thành cơng trị chơi cờ úp android Trong tương lai, cải tiến thêm mức độ khó vào trị chơi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... đề toán Giới thiệu trò chơi cờ úp: Cờ úp biến thể trò chơi cờ Tướng, sử dụng bàn cờ quân giống cờ Tướng Trong trò chơi này, thời điểm bắt đầu, quân cờ bên bàn úp xuống cách ngẫu nhiên Nước cờ úp. .. luanvanchat@agmail.com 1.2 Thuật toán Alpha- Beta cắt tỉa Mặc dù thuật tốn MINIMAX hiệu cho trị chơi đối kháng, nhiên thuật toán chậm tìm kiếm lớn khơng hiệu thực tế Đặc biệt với tốn trị chơi cờ úp, thời điểm... Phương pháp giải Giới thiệu thuật toán 1.1 Thuật toán MINIMAX: Đây thuật toán thường sử dụng trò chơi đối kháng hai bên Giả sử trạng thái bàn cở gắn giá trị cụ thể Người chơi Max chọn nước LUAN VAN