Đề tài game Cờ Caro môn Trí tuệ nhân tạo

11 1.6K 4
Đề tài game Cờ Caro môn Trí tuệ nhân tạo

Đ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 VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG * BÁO CÁO MÔN HỌC TRÍ TUỆ NHÂN TẠO Đề tài: Chương trıǹ h trò chơi cờ tướng sử du ̣ng giải thuâ ̣t cắ t tıả α-β Giảng viên: Nguyễn Nhâ ̣t Quang Nhóm sinh viên thực hiên: ̣ Ho ̣ tên Trầ n Văn Thành Đă ̣ng Bá Tú Vũ Thi ̣Nga MSSV 20133560 20134472 20132741 Lớp CNTT-TT 2.04 CNTT-TT 2.01 CNTT-TT 2.04 Hà Nô ̣i Ngày 15 tháng 11 năm 2015 LỜI MỞ ĐẦU Trı́ tuê ̣ nhân ta ̣o (hay AI: Articifial Intelligence) là mô ̣t ngành khoa ho ̣c ngày càng phát triể n ma ̣nh mẽ và có ứng du ̣ng rô ̣ng raĩ cuô ̣c số ng Rõ ràng máy tı́nh với đô ̣ thông minh nhấ t đinh ̣ có ảnh hưởng không nhỏ đế n cuô ̣c số ng ngày và tương lai phát triể n của văn minh nhân loa ̣i Mô ̣t những ứng du ̣ng có thể kể đế n của AI đó là viê ̣c xây dựng, phát triể n các trò chơi đố i kháng Cờ tướng cũng là mô ̣t số đó Cờ tướng có nguồ n gố c từ Trung Quố c, là trò chơi trı́ tuê ̣ dành cho hai người, cùng với cờ vua trở thành hai loa ̣i cờ phổ biế n nhấ t thế giới Để tı̀m hiể u sâu về AI nói chung cũng các kı ̃ thuâ ̣t tı̀m kiế m nói riêng, chúng em quyế t đinh ̣ lư ̣a cho ̣n đề tài: “Chương trı̀nh trò chơi cờ tướng sử du ̣ng giải thuâ ̣t cắ t tı̉a α-β” Do thời gian ̣n he ̣p cũng viê ̣c thiế u nhiề u kı ̃ xây dư ̣ng, thiế t kế phầ n mề m cũng những hiể u biế t về AI, đề tài của chúng em vẫn còn nhiề u ̣n chế Rấ t mong nhâ ̣n đươ ̣c sư ̣ đóng góp ý kiế n của thầ y và các ba ̣n để đề tài ngày càng hoàn thiêṇ MỤC LỤC I Giới thiệu mô tả toán thực tế………………………………… II Phương pháp giải toán……………………………… III Các tài nguyên, liệu sử dụng từ bên ngoài…………………… IV Các vấn đề gặp phải……………………………………………… V Phương pháp giải quyết………………………………………… VI Đánh giá………………………………………………………… VII Ý tưởng cải tiến………………………………………………… NỘI DUNG I Giới thiê ̣u, mô tả bài toán thực tế Cờ tướng là loa ̣i cờ diễn giữa hai người chơi Xét mô ̣t ván cờ, người chơi lầ n lươ ̣t thay phiên các quân cờ bàn cờ cho phù hơ ̣p với luâ ̣t chơi môn cờ tướng để nhằ m chiế u tướng đố i phương và dành chiế n thắ ng Bài toán đă ̣t là cầ n xây dư ̣ng mô ̣t chương trı̀nh để máy tı́nh có thể tư ̣ đô ̣ng chơi cờ, thi đấ u với đố i thủ là người, đảm bảo chấ t lươ ̣ng nước cũng chi phı́ vı̀ thời gian Chương trıǹ h chơi cờ có các chức sau: - Ta ̣o môi trường là giao diêṇ bàn cờ và các quân cờ cho đố i thủ người chơi và máy tı́nh - Máy tı́nh sinh nước tư ̣ đô ̣ng đế n lươ ̣t đảm bảo đúng luâ ̣t chơi bằ ng viê ̣c đánh giá điể m thử từng quân cờ, lấ y điể m quân cờ đa ̣t giá tri lơ ̣ ́ n nhấ t và thực hiê ̣n nước đó - Sau đó đế n lươ ̣t người chơi thực hiê ̣n nước của mı̀nh - Chương trın ̀ h tiế p tu ̣c lă ̣p la ̣i vâ ̣y đế n người chơi thoát chương trıǹ h hoă ̣c xác đinh ̣ đươ ̣c người thắ ng cuô ̣c II Phương pháp giải quyế t bài toán Trò chơi đươ ̣c biể u diễn mô ̣t không gian tra ̣ng thái Nút gố c biể u diễn tra ̣ng thái bắ t đầ u, mỗ i nước se ̃ biế n đổ i tra ̣ng thái hiêṇ hành thành mô ̣t tra ̣ng thái mới Các tra ̣ng thái bàn cờ khác đươ ̣c biể u diễn thành mô ̣t trò chơi, chương trı̀nh tiế n hành tı̀m kiế m để tı̀m nước tố t nhấ t Chương trın ̀ h sẽ đươ ̣c dư ̣ tıń h trước mô ̣t đô ̣ sâu lớp của tı̀m kiế m, các tra ̣ng thái mức đó đươ ̣c đánh giá theo mô ̣t hàm heuristic Chương trıǹ h sử du ̣ng giải thuâ ̣t cắ t tıả α-β.Ý tưởng của tı̀m kiế m α-β đó là thay vı̀ tım ̀ kiế m toàn bô ̣ không gian đế n mô ̣t đô ̣ sâu cố đinh, ̣ tı̀m kiế m α-β thư ̣c hiêṇ theo kiể u tı̀m kiế m sâu Giá tri α ̣ liên quan đế n các nút MAX và có khuynh hướng không bao giờ giảm, giá tri β̣ la ̣i liên quan đế n các nút MIN và có khuynh hướng không bao giờ tăng Hai luâ ̣t cắ t tı̉a dư ̣a các giá tri α, ̣ β: - Quá trı̀nh tı̀m kiế m có thể kế t thúc bên dưới mô ̣t nút MIN nào có giá tri β̣ nhỏ hoă ̣c bằ ng giá tri ̣α của mô ̣t nút cha MAX bấ t kı̀ nào đó - Quá trı̀nh tı̀m kiế m có thể kế t thúc bên dưới mô ̣t nút MAX nào có giá tri α ̣ nhỏ hoă ̣c bằ ng giá tri ̣ β của mô ̣t nút cha MIN bấ t kı̀ nào đó Giải thuâ ̣t giúp tı̉a bớt nhánh trò chơi, từ đó tăng hiêụ quả tı̀m kiế m Ta xét chi tiế t phương pháp đươ ̣c dùng để giải quyế t bài toán: Biể u diễn các quân cờ - Ta xây dư ̣ng các lớp biể u diễn cho từng quân cờ - Trong mỗi lớp ta se ̃ ta ̣o mô ̣t hàm getValue() trả la ̣i giá tri ̣của quân đó Bên ca ̣nh đó, ở các lớp Cannon, Chariot, Horse, Soldier, ta dùng mô ̣t mảng lưu la ̣i giá tri ̣khác ta ̣i mỗi vi trı ̣ ́ của chúng bàn cờ Các giá tri du ̣ ̀ ng để phu ̣c vu ̣ cho viê ̣c xây dựng hàm lươ ̣ng giá sau này - Dựa luâ ̣t chơi của môn cờ tướng, mỗi lớp ta cũng xây dư ̣ng hàm để kiể m tra các nước hơ ̣p lê ̣ cho từng quân cờ, đảm bảo đươ ̣c vi trı ̣ ́ giới ̣n, tı́nh bi ̣chă ̣n của mô ̣t số quân Hàm lươ ̣ng giá thế cờ Như đã trı̀nh bày ở trên, mỗi lớp biể u diễn quân cờ sẽ có hàm để trả la ̣i giá tri ̣của quân cờ đó Để tı́nh giá tri ̣của mô ̣t thế cờ, ta thiế t kế mô ̣t hàm lươ ̣ng giá đơn giản Đó là, lấ y tổ ng điể m quân mı̀nh trừ tổ ng điể m quân đố i phương Giá tri ̣của các quân cờ đươ ̣c tıń h dư ̣a theo cách tıń h giá tri ̣trong tài liêụ “Computer Chinese Chess” Dưới là giá tri ̣mă ̣c đinh ̣ của các quân cờ: General Chariot Cannon Elephant Horse Advisor Soldier 6000 600 285 120 120 30 270 Giá tri ̣vi ̣trı́ của các quân: Cannon: int[][]= Chariot: int[][]= {6, 4, 0, -10, -12, -10, 0, 4, 6}, {14, 14, 12, 18, 16, 18, 12, 14, 14}, {2, 2, 0, -4, -14, -4, 0, 2, 2}, {16, 20, 18, 24, 26, 24, 18, 20, 16}, {2, 2, 0, -10, -8, -10, 0, 2, 2}, {12, 12, 12, 18, 18, 18, 12, 12, 12}, {0, 0, -2, 4, 10, 4, -2, 0, 0}, {12, 18, 16, 22, 22, 22, 16, 18, 12}, {0, 0, 0, 2, 8, 2, 0, 0, 0}, {12, 14, 12, 18, 18, 18, 12, 14, 12}, {-2, 0, 4, 2, 6, 2, 4, 0, -2}, {12, 16, 14, 20, 20, 20, 14, 16, 12}, {0, 0, 0, 2, 4, 2, 0, 0, 0}, {6, 10, 8, 14, 14, 14, 8, 10, 6}, {4, 0, 8, 6, 10, 6, 8, 0, 4}, {4, 8, 6, 14, 12, 14, 6, 8, 4}, {0, 2, 4, 6, 6, 6, 4, 2, 0}, {8, 4, 8, 16, 8, 16, 8, 4, 8}, {0, 0, 2, 6, 6, 6, 2, 0, 0} {-2, 10, 6, 14, 12, 14, 6, 10, -2}}; Horse: int[][]= Soldier: int[][]= {4, 8, 16, 12, 4, 12, 16, 8, 4}, {0, 3, 6, 9, 12, 9, 6, 3, 0}, {4, 10, 28, 16, 8, 16, 28, 10, 4}, {18, 36, 56, 80, 120, 80, 56, 36, 18} {12, 14, 16, 20, 18, 20, 16, 14, 12}, {14, 26, 42, 60, 80, 60, 42, 26, 14} {8, 24, 18, 24, 20, 24, 18, 24, 8}, {10, 20, 30, 34, 40, 34, 30, 20, 10}, {6, 16, 14, 18, 16, 18, 14, 16, 6}, {6, 12, 18, 18, 20, 18, 18, 12, 6}, {4, 12, 16, 14, 12, 14, 16, 12, 4}, {2, 0, 8, 0, 8, 0, 8, 0, 2}, {2, 6, 8, 6, 10, 6, 8, 6, 2}, {0, 0, -2, 0, 4, 0, -2, 0, 0}, {4, 2, 8, 8, 4, 8, 8, 2, 4}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 2, 4, 4, -2, 4, 4, 2, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, -4, 0, 0, 0, 0, 0, -4, 0} {0, 0, 0, 0, 0, 0, 0, 0, 0} Giải thuâ ̣t tı̀m kiế m α-β  Là giải thuật cho toán tìm kiếm có đối thủ dựa ý tưởng chiến lược tối ưu cho nước bên  Có sử dụng tri thức bổ sung giúp cắt phận thuộc tập khả mà khả tạo nước tốt nước khác  Trong toán cờ tướng:  Trạng thái ban đầu trạng thái bàn hai bên bắt đầu chơi  Các toán tử nước hợp lệ  Trạng thái kết thúc tính hai bên bị tướng III Các phương pháp, tư liệu sử dụng từ bên  -Tư liệu tham khảo từ viết Shi-Jim Yen, Jar-hang Chen,Tai-Ning Yang, Shun-Chin Hsu (Taipei, Taiwan); (http://web.csie.ndhu.edu.tw/sjyen/Papers/2004CCC.pdf)  Bảng đánh giá giá trị ban đầu quân  Bảng đánh giá giá trị theo vị trí quân  Hàm lượng giá chương trình sử dụng ý tưởng tài liệu nên sử dụng giá trị vị trí số quân mà đánh giá giá trị ước lượng cờ  Ngoài thư viện sử dụng chương trình gồm có:  Các gói thư viện chuẩn java cung cấp IV Những vấn đề khó khăn gặp phải  Trong thời gian chấp nhận được, thuật toán cắt tỉa có độ sâu tối đa thấp ( 700MB)  Sử dụng hàm lượng giá chưa tốt dẫn đến chất lượng nước đánh máy tính chưa cao  Vấn đề đọc ghi liệu đồng thời (Concurrent Modification)  Vấn đề chạy đa luồng chưa sử dụng tốt việc chia công việc cho luồng phải phụ thuộc máy ảo Java xử lý với luồng V Phương pháp giải  Sử dụng cấu trúc liệu hàng đợi ưu tiên để xếp trạng thái bàn cờ theo giá trị ước lượng độ sâu trước tìm kiếm độ sâu thấp  Tối ưu nhớ thông qua việc : không tạo nhớ để lưu trữ trạng thái bàn cờ mà lưu trữ vết thay đổi trạng thái bàn cờ mức so với mức cha  Tăng tốc độ chương trình cách tính giá trị ước lượng cờ lúc thay đổi sang cờ khác mà tính tất lúc so sánh  Hàm lượng giá có sử dụng việc tăng giá trị ước lượng nước chiếu nước cờ có khả bắt quân đối thủ VI Đánh giá chương trình  Ưu điểm:  Đã có thông minh trò chơi cờ tướng  Với độ sâu cắt tỉa chương trình đủ thông minh để chơi thắng người chơi có trình độ trung bình  Hoàn toàn chơi với người chơi không gặp bug  Nhược điểm:  Độ sâu cắt tỉa chưa với phần lớn chương trình đánh cờ tướng  Cấu trúc lưu trữ liệu chương trình chưa tối ưu nên chương trình yêu cầu nhiều nhớ  Hàm ước lượng trạng thái  Một số kết đạt chương trình Độ sâu Thời gian (ms) Bộ nhớ (MB) 60 15 75 16 80 94 85 229 90 896 450 4260 550 VII Hướng phát triển  Tối ưu hàm lượng giá  Tạo sở liệu cho nước đầu  Tăng tầm quan trọng cờ nước cuối  Sử dụng cách thức lưu trữ trạng thái bàn cờ khác (qua giá trị số )  Thực việc tính toán song song hàm cắt tỉa [...]...VII Hướng phát triển  Tối ưu hàm lượng giá  Tạo cơ sở dữ liệu cho các nước đi đầu  Tăng tầm quan trọng của các thế cờ tại các nước cuối  Sử dụng cách thức lưu trữ trạng thái bàn cờ khác (qua giá trị số )  Thực hiện việc tính toán song song hàm cắt tỉa ...  Bảng đánh giá giá trị theo vị trí quân  Hàm lượng giá chương trình sử dụng ý tưởng tài liệu nên sử dụng giá trị vị trí số quân mà đánh giá giá trị ước lượng cờ  Ngoài thư viện sử dụng chương... thái bàn cờ theo giá trị ước lượng độ sâu trước tìm kiếm độ sâu thấp  Tối ưu nhớ thông qua việc : không tạo nhớ để lưu trữ trạng thái bàn cờ mà lưu trữ vết thay đổi trạng thái bàn cờ mức so... trình cách tính giá trị ước lượng cờ lúc thay đổi sang cờ khác mà tính tất lúc so sánh  Hàm lượng giá có sử dụng việc tăng giá trị ước lượng nước chiếu nước cờ có khả bắt quân đối thủ VI Đánh

Ngày đăng: 23/12/2015, 23:19

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

Tài liệu liên quan