báo cáo môn tri tuê nhân tạo áp dụng thuật toán tìm kiếm min max và alphabeta cắt tỉa xây dựng trò chơi cờ ca rô trên android

16 1.8K 4
báo cáo môn tri tuê nhân tạo áp dụng thuật toán tìm kiếm min max và alphabeta cắt tỉa xây dựng trò chơi cờ ca rô trên android

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trường Đại Học Bách Khoa Hà Nội Bộ Môn Hệ Thống Thơng Tin Báo Cáo Trí Tuệ Nhân Tạo Đề Tài: Game Cờ Caro Trên Android Nhóm sinh viên: SHSV: Đặng Tiến Đạt 20090656 Trần Đình Quang 20093577 Lê Huy Hoàng 20091144 Nguyễn Thanh Sơn 20092261 Trần Mạnh Hùng 20091336 Giảng viên hướng dẫn: TS Phạm Văn Hải Hà Nội 4-8-2013 Mục lục LỜI NĨI ĐẦU Trí tuệ nhân tạo trí tuệ biểu diễn hệ thống nhân tạo Thuật ngữ thường dùng để nói đến máy tính có mục đích khơng định ngành khoa nghiên cứu lý thuyết ứng dụng trí tuệ nhân tạo Tuy trí thơng minh nhân tạo có nghĩa rộng trí thơng minh khoa học viễn tưởng, ngành trọng yếu tin học Trí thơng minh nhân tạo liên quan đến cách cư xử, học hỏi khả thích ứng thơng minh máy móc Các ví dụ ứng dụng bao gồm tác vụ điều khiển, lập kế hoạch lập lịch (scheduling), khả trả lời câu hỏi chẩn đoán bệnh, trả lời khách hàng sản phẩm công ty, nhận dạng chữ viết tay, nhận dạng tiếng nói khn mặt Bởi vậy, trí thơng minh nhân tạo trở thành mơn học, với mục đích cung cấp lời giải cho vấn đề sống thực tế Ngày nay, hệ thống nhân tạo dùng thường xuyên kinh tế, y dược, ngành kỹ thuật quân sự, phần mềm máy tính thơng dụng gia đình trị chơi điện tử Để áp dụng kiến thức AI học lớp tìm hiểu qua internet, nhóm chúng em đến định chung xây dựng trị chơi cờ ca rơ tảng Android Trong trình làm tập lớn, chúng em xin chân thành cảm ơn thầy Phạm Văn Hải tận tình hướng dẫn, cảm ơn bạn đóng góp ý kiến bổ ích để trị chơi tốt Do chưa có nhiều kinh nghiệm kiến thức AI hạn hẹp nên trò chơi chưa tối ưu Mong thầy bạn góp ý để game tốt Chúng em xin chân thành cảm ơn! NỘI DUNG TRÌNH BÀY Giới thiệu toán Phân công công việc Công nghệ sử dụng Chiến lược tìm kiếm Kỹ thuật lượng giá Các khó khăn gặp phải Hướng cải tiến phát triển Tài liệu tham khảo I Giới thiệu tốn Trị chơi cờ caro thực hai đối thử bàn cờ hình vng kích thước n*n (n tùy ý) Hai ký hiệu X O đại diện cho hai quân cờ người chơi có nhiệm vụ thay phiên điền ký hiệu vào bàn cờ Người thắng người tạo quân thành chuỗi liên tiếp hàng ngang, dọc, chéo II Phân công công việc • • • Đạt + Hồng: nghiên cứu thuật tốn tìm kiếm hàm lượng giá Quang + Sơn : Code Hùng : Cài đặt, kiểm thử cộng viết báo cáo Cơng nghệ sử dụng III • • • • IV Tool: eclipse Các thuật tốn tìm kiếm với chi thức bổ xung: Minimax Alphabeta cắt tỉa Ngôn ngữ sử dụng : Javas Nền tảng phát triển: Hệ điều hành Android Chiến lược tìm kiếm  Phân tích Đến lượt mình, người chơi cố gắng tạo nước uy hiếp đối phương cao đưa tướng đối phương trạng thái chiếu hết (checkmate) Ở chế độ chơi người với máy tính : Nguời lập trình phải xây dựng hàm để tìm kiếm cho máy tính nước tối ưu Mỗi nước mà máy tính lựa chọn số khả mà máy tính đi, ta gọi trạng thái nước máy tính Việc xét hết trạng thái nước bàn cờ việc không dễ dàng Việc duyệt hết khả làm cho khơng gian trạng thái lớn ảnh hưởng tới khả xử lý CPU thời gian cho máy chọn phương án tối ưu lâu Vấn đề yêu cầu sử dụng giải thuật heuristic cho máy để tăng khả tối ưu, giảm thời gian “suy nghĩ” cho phương án lựa chọn máy Người lập trình áp dụng thủ tục cắt tỉa alpha - beta (alpha-beta prunning) để cài đặt cho chương trình  Cây trị chơi Trong trình chơi, trạng thái bàn cờ thay đổi liên tục nước đối thủ Ta biểu diễn trạng thái dạng tìm kiếm(gọi trò chơi), nút tương ứng với trạng thái bất kỳ, nhánh nối nút cho ta biết từ trạng thái sang trạng thái thơng qua nước  Thuật tốn MiniMax Minimax(cịn gọi minmax) phương pháp có mục đích tối thiểu hóa (minimize) tổn thất vốn dự tính "tối đa" (maximize) Có thể hiểu ngược lại là, nhằm tối đa hóa lợi ích vốn dự tính tối thiểu (maximin) Nó bắt nguồn từ trị chơi có tổng khơng Nó mở rộng cho nhiều trị chơi phức tạp giúp đưa định chung có diện khơng chắn Minimax thường dùng để giải trò chơi có tính chất đối kháng Giả sử hai đối thủ trị chơi có tên MAX MIN • • Max: biểu diễn cho mục đích đối thủ làm lớn tối đa lợi Min: biểu diễn cho mục đích đối thủ làm nhỏ tối đa lợi đối phương Trên tìm kiếm phân lớp thành lớp Max 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ẹ Max, gán cho giá trị lớn có trạng thái Nếu trạng thái bố, mẹ Min, gán cho giá trị nhỏ có trạng thái Hình 1: Cây nhị phân tìm kiếm Max-Min • • Các nút gán giá trị heuristic Còn giá trị nút giá trị nhận dựa giải thuật Minimax Giải thuật function MINIMAX-DECISION(state) returns an action vMAX-VALUE(state) return the action in SUCCESSORS(state) with value v function MAX-VALUE(state) returns a ultility state if TERMINAL-TEST(state) then return UTILITY(state) v -∞ for a,s in SUCCESSORS(state)do vMAX(v,MIN-VALUE(s)) return v function MIN-VALUE(state) returns a ultility state if TERMINAL-TEST(state) then return UTILITY(state) v -∞ for a,s in SUCCESSORS(state)do vMIN(v,MAX-VALUE(s)) return v Ta thấy để gán giá trị cho nút ta phải xét hết tất nút truy hồi dần nút gốc Vấn đề gặp phải bùng nổ hàm mũ số lượng nút phải xét Để giải vấn đề ta dùng phương pháp cắt tỉa Alphabeta 4.4 Phương pháp cắt tỉa Alphabeta • • Ý tưởng: Nếu nhánh tìm kiếm khơng cải thiện giá trị(hàm lượng giá) mà xét phần sau, khơng cần xét đến nhánh tìm kiếm Việc cắt tỉa nhánh tìm kiếm “tồi” không ảnh hưởng đến kết cuối GIẢI THUẬT function ALPHA-BETA-SEARCH(state) returns an action v MAX-VALUE(state,- ,+ ) return the action in SUCCESSORS(state) with value v function MAX-VALUE(state) returns a ultility state if TERMINAL-TEST(state) then return UTILITY(state) v -∞ for a,s in SUCCESSORS(state)do vMAX(v,MIN-VALUE(s,α,β)) if(v≥β) then return v αMAX(α,v) return v function MIN-VALUE(state) returns a ultility state if TERMINAL-TEST(state) then return UTILITY(state) v +∞ for a,s in SUCCESSORS(state)do vMIN(v,MAX-VALUE(s,α,β)) if(v≤ α) then return v 1ß MIN(β,v) return v 10 • Cắt tỉa α Max S= α Min A= α Z α - cut =z Z≤α z ã Ct ta Min Max 1ò S= A= β Z - cut =z Z≥β z≥ β 11 Ví dụ minh họa Hình 2: định trị trị chơi phương pháp cắt tỉa α- β V Kỹ thuật lượng giá Hàm lượng giá quan trọng phương pháp cắt tỉa α- β Một hàm lượng giá tốt rút bớt cho ta nhiều trạng thái phải xét Trong toán cờ caro, hai yếu tố có vai trị định cho trận đấu tổng số nước thắng quân X tổng số nước thắng quân O trạng thái Vì ta sử dụng hàm lượng giá sau Xét trạng thái n thì: Eval(n)=Eval1(n)+Eval2(n) Trong đó: • • Eval1(n) hàm cơng Eval2(n) hàm phịng thủ 12 Cụ thể tính giá trị tính nhu sau:  Eval1(n)=X(n)-O(n) với X(n) tổng bình phương số quân X liên tiếp đường ngang, dọc, chéo O(n) tổng bình phương số quân O liên tiếp đường ngang, dọc, chéo Ví dụ hàng ngang có quân X liên tiếp Eval1+=1*1+2*2+3*3 Trường hợp riêng:    số quân X liên tiếp cộng thêm 50 vào giá trị hàm Eval1(n) cộng thêm 100 số quân X liên tiếp để thấy rõ cấp thiết nước số quân O liên tiếp phương trừ 50 vào giá trị hàm Eval 1(n) trừ 100 số quân O liên tiếp Eval2(n) =X’(n)-O’(n) với X’(n) tổng bình phương số quân O liên tiếp mà X chặn O’(n) tổng bình phương số quân X liên tiếp mà O chặn đường ngang, dọc, chéo Trường hợp riêng:   Nếu X chặn quân O liên tiếp phương cộng thêm 100 vào giá trị hàm Eval(n) Nếu O chặn quân X liên tiếp phương trừ 100 vào giá trị hàm Eval(n) 13 Ví dụ cụ thể Giả sử độ sâu k trị chơi ta có trang thái sau: o x o o x x o x o x Eval1=(1+1+4+1+1+4+1+1+1+1+4+1+4+1+1+1)(1+1+9+1+1+1+1+1+1+1+1+1+1+1+1+1+4)=0 Eval2=(1+1+9+1+1+1+1+1+1+1+1+1+4)(1+4+1+1+4+1+1+4+1+4+1+1)=0 Vậy Eval=0+0=0 VI Các khó khăn gặp phải • • Việc xây dựng chương trình gặp số khó khăn việc tìm hàm đánh giá, việc xử lý từ thuật tốn chụng cho trị chơi đối kháng thành code riêng cờ ca rơ Tố ưu thuật tốn giảm thời gian tính tốn máy, tăng cường xét độ sâu cao 14 VII Hướng cải tiến phát triển Cải tiến không gian trạng thái Do khơng gian trạng thái bàn cờ lớn, ta phải xét nhiều nút từ nút cha Nhưng ta cải tiến cách xét ô trống xung quanh ô đánh, trống gần khu vực đánh có tầm quan trọng cao xa khu vực đánh Những xa tầm quan trọng giảm Như số nút phải xét giảm thay vào ta tăng độ sâu cho tìm kiếm => máy thông minh Dùng tri thức bổ sung bên ngồi • • Ta sử dụng openingbook để lưu trữ cờ mà máy thắng máy ln có xu hướng đưa đối thủ vào số Ta tao cho máy lưu lại ván mà máy thua để lần sau máy không bị tái phạm 15 Tài liệu tham khảo VIII • Slide trí tuệ nhân tạo thầy Phạm Văn Hải • Slide trí tuệ nhân tạo thầy Nguyễn Nhật Quang Giáo trình trí tuệ nhân tạo thầy Đinh Mạnh Tường Trò chơi đối kháng phương pháp tìm kiếm thầy Phạm Hồng Nguyên http://www.java2s.com/Tutorial/Java/0280 SWT/Catalog028 SWT.htm -Kéo thả giao diện với Eclipse: http://www.ptpsoft.com.vn/? page=hotnews&id=694&catid=96 • • • • IX Hướng dẫn cài đặt Trên smartphone Android Trong thư mục gửi code bọn em có build file demo-co-ca-ro.apk Thầy cần copy file vào thư mục download smartphone Android rùi tiến hành cài đặt chạy bình thường Trên PC Muốn chạy chương trình PC trước hết phải cài phần mềm bluestacks Đây phần mềm giả lập Android PC Link dowload bulestacks http://www.bluestacks.com/ 10 Sau tiến hành tải cài đặt chạy file demo-ca-ca-ro.apk PC bình thường 11 12 13 14 15 16 16 ... v 10 • Cắt tỉa α Max S= α Min A= α Z α - cut =z Z≤α z ≤α • Cắt tỉa β Min Max 1ß S= β A= β Z - cut =z Z≥β z≥ β 11 Ví dụ minh họa Hình 2: định trị trị chơi phương pháp cắt tỉa α- β V Kỹ thuật lượng... pháp cắt tỉa Alphabeta 4.4 Phương pháp cắt tỉa Alphabeta • • Ý tưởng: Nếu nhánh tìm kiếm khơng cải thiện giá trị(hàm lượng giá) mà xét phần sau, khơng cần xét đến nhánh tìm kiếm Việc cắt tỉa nhánh... phần mềm máy tính thơng dụng gia đình trị chơi điện tử Để áp dụng kiến thức AI học lớp tìm hiểu qua internet, nhóm chúng em đến định chung xây dựng trò chơi cờ ca rô tảng Android Trong trình làm

Ngày đăng: 23/10/2014, 23:46

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • I. Giới thiệu bài toán

  • II. Phân công công việc

  • III. Công nghệ sử dụng

  • IV. Chiến lược tìm kiếm

  • V. Kỹ thuật lượng giá

  • VI. Các khó khăn gặp phải

  • VII. Hướng cải tiến và phát triển

    • 1. Cải tiến không gian trạng thái

    • 2. Dùng tri thức bổ sung bên ngoài

    • VIII. Tài liệu tham khảo

    • IX. Hướng dẫn cài đặt

Tài liệu cùng người dùng

Tài liệu liên quan