Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,19 MB
Nội dung
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUN ĐỀ HỌC PHẦN NHẬP MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: XÂY DỰNG GAME CỜ CARO BẰNG GIẢI THUẬT MINIMAX Sinh viên thực : NGÔ TRUNG HIẾU : NGUYỄN HUY HOÀ̀NG Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D15CNPM2 Khóa : 2020-2025 Hà Nội, tháng năm 2022 PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: STT Họ tên Chữ ký Nhiệm vụ Nguyễn Huy Hoàng Mã SV: Ngô Trung Hiếu Mã SV: Giảng viên chấm: Họ tên Giảng viên chấm 1: Giảng viên chấm 2: Chữ ký Ghi MỤC LỤC LỜI MỞ ĐẦU .1 CHƯƠNG 1: GIỚI THIỆU VỀ AI VÀ THUẬT TOÁN MINIMAX 1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO 1.1.1 Trí tuệ nhân tạo ? 1.1.2 Vai trị trí tuệ nhân tạo 1.1.3 Lĩnh vực AI 1.1.4 Hạn chế AI 1.2 GIỚI THIỆU VỀ KỸ THUẬT MINIMAX 1.2.1 Tư tưởng 1.2.2 Một thuật toán minimax 1.2.3 Phương pháp 1.3 Mơ hình tốn 10 1.4 KẾT LUẬN 11 CHƯƠNG 2: BÀ̀I TOÁN CỜ CARO .12 2.1 BÀ̀I TOÁN: 12 2.2 GIẢI QUYẾT BÀ̀I TOÁN 13 2.2.1 Ý tưởng: .13 2.2.2 Phương pháp giải nước đi: 14 2.3 Mô tả toán cờ caro theo minmax .15 CHƯƠNG 3: ĐÁNH GIÁ THỬ NGIỆM 17 3.1 Cặt đặt với C# Winform 17 3.1.1 Giao diện chạy chương trình 17 3.1.2 Giao diện bắt đầu chơi (sau bắt đầu bắt đầu tích vào trống để chơi 18 3.1.3 Giao diện sau chơi ( tích vào trống hai người máy hồn thành kí tự thẳng hàng sau hệ thống thông báo người thắng hỏi xem có muốn chơi ván khơng) 19 3.2 Code 20 KẾT LUẬN .22 TÀ̀I LIỆU THAM KHẢO 23 MỤC LỤC HÌNH ẢNH Hình 1: minh họa thuật toán 10 Hình Mơ tả cờ 15 Hình 3: Giao diện chạy chương trình 17 Hình 4: bàn cờ bắt đầu chơi 18 Hình 5: ván đấu kết thúc 19 Hình Code 21 LỜI MỞ ĐẦ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 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ơ Trong q trình làm tập lớn, chúng em xin chân thành cảm ơn thầy 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 1: GIỚI THIỆU VỀ AI VÀ THUẬT TOÁN MINIMAX 1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO Trong cơng nghệ thơng tin, trí tuệ nhân tạo ngành mới, phát triển mạnh mẽ đem lại nhiều kết to lớn Con người thường tự cho sinh vật thơng minh khả trí tuệ đóng vai trị quan trọng sống.Trong văn học có câu chuyện đề cao trí thơng minh người Vào năm 1943, Warren McCulioch Walter Pitts bắt đầu thực nghiên cứu ba sở lý thuyết bản: triết học chức noron thần kinh; phân tích mệnh đề logic; lý thuyết dự đoán Turing Các tác giả đa nghiên cứu đề xuât mô hinh noron nhân tạo, noron đặc trưng hai trạng thái “bật”, “tắt” phát mạng noron có khả học Thuật ngữ “Trí tuệ nhân tạo” (Artificial Intelligence - AI) thiết lập John McCarthy Hội thảo chủ đề vào mùa hè năm 1956 Đồng thời, ông đề xuất ngôn ngữ lập trinh Lisp – ngôn ngữ lập trinh hàm tiêu biểu, sử dụng lĩnh vực AI Sau đó, Alan Turing đưa "Turing test" phương pháp kiểm chứng hành vi thông minh Thập kỷ 60, 70 Joel Moses viết chương trinh Macsyma - chương trinh toán học sử dụng sở tri thức thành công Marvin Minsky Seymour Papert đưa chứng minh giơi hạn mạng nơ-ron đơn giản Ngôn ngữ lập trinh logic Prolog đời phát triển Alain Colmerauer Ted Shortliffe xây dựng thành công số hệ chuyên gia trợ giúp chẩn đoán y học, hệ thống sử dụng ngôn ngữ luật để biểu diễn tri thức suy diễn Vào đầu năm 1980, nghiên cứu thành công liên quan đến AI hệ chuyên gia (expert systems) – dạng chương trinh AI mô tri thức kỹ phân tích nhiều chuyên gia người Vào năm 1990 đầu kỷ 21, AI đa đạt thành tựu to lơn nhất, AI áp dụng logic, khai phá liệu, chẩn đoán y học nhiều lĩnh vực ứng dụng khác công nghiệp Sự thành công dựa vào nhiều yếu tố: tăng khả tính tốn máy tính, tập trung giải toán cụ thể, xây dựng mối quan hệ AI lĩnh vực khác giải toán tương tự, chuyển giao mơi nhà nghiên cứu cho phương pháp toán học vững chuẩn khoa học xác 1.1.1 Trí tuệ nhân tạo ? Để hiểu trí tuệ nhân tạo (artificial intelligence) gi bắt đầu vơi khái niệm bay nhân tạo (flying machines), tức máy bay Đa từ lâu, loài người mong muốn làm máy mà di chuyển khơng trung mà không phụ thuộc vào địa hinh dươi mặt đất, hay nói cách khác máy bay Khơng có gi ngạc nhiên ý tưởng làm máy bay từ nghiên cứu cách chim bay Những máy biết bay thiết kế theo nguyên lý “vỗ cánh” chim bay quang đường ngắn lịch sử hàng không thực sang trang mơi kể từ anh em nhà Wright thiết kế máy bay dựa nguyên lý khí động lực học (aerodynamics) Các máy bay nay, đa thấy, có sức trở lơn bay quang đường vịng quanh giơi Nó khơng thiết phải có ngun lý bay chim bay chim (dáng vẻ), tốt chim Quay lại câu hỏi Trí tuệ nhân tạo gi Trí tuệ nhân tạo trí thơng minh máy người tạo Ngay từ máy tính điện tử đời, nhà khoa học máy tính đa hương đến phát hiển hệ thống máy tính (gồm phần cứng phần mềm) cho có khả thơng minh lồi người Mặc dù nay, theo quan niệm người viết, ươc mơ xa mơi thành thực, thành tựu đạt không nhỏ: đa làm hệ thống (phần mềm chơi cờ vua chạy siêu máy tinh GeneBlue) thắng vua cờ giơi; đa làm phần mềm chứng minh tốn hinh học; v.v Hay nói cách khác, số lĩnh vực, máy tính thực tốt tương đương người (tất nhiên khơng phải tất lĩnh vực) Đó hệ thống thơng minh Có nhiều cách tiếp cận để làm trí thơng minh máy (hay trí tuệ nhân tạo), chẳng hạn nghiên cứu cách nao người sản sinh trí thơng minh loài người nhưthế ta bắt chươc nguyên lý đó, có cách khác sử dụng nguyên lý hoàn toàn khác vơi cách sản sinh trí thơng minh lồi người mà làm máy thông minh người; giống máy bay bay tốt chim có chế bay khơng phải giống chế bay chim Như vậy, trí tuệ nhân tạo nói đến khả máy thực công việc mà người thường phải xử lý; dáng vẻ ứng xử kết thực máy tốt tương đương vơi người thi ta gọi máy thơng minh hay máy có trí thơng minh Hay nói cách khác, đánh giá thơng minh máy khơng phải dựa ngun lý thực nhiệm vụ có giống cách người thực hay không mà dựa kết dáng vẻ ứng xử bên ngồi có giống vơi kết dáng vẻ ứng xử người hay không Các nhiệm vụ người thường xun phải thực là: giải tốn (tìm kiếm, chứng minh, lập luận), học, giao tiếp, thể cảm xúc, thích nghi vơi mơi trường xung quanh, v.v., dựa kết thực nhiệm vụ để kết luận có thơng minh hay khơng Mơn học Trí tuệ nhân tạo nhằm cung cấp phương pháp luận để làm hệ thống có khả thực nhiệm vụ đó: giải tốn, học, giao tiếp, v.v cách làm có người hay khơng mà kết đạt dáng vẻ bên người 1.1.2 Vai trị trí tuệ nhân tạo Trí tuệ nhân tạo bao quát nhiều lĩnh vực nghiên cứu hẹp Nó nghiên cứu từ lĩnh vực tổng quát máy nhận biết, suy luận logic, đến toán chơi cờ, chứng minh định lý, tim kiểm đường Thường nhà khoa học lĩnh vực khác tìm đến với trí tuệ nhân tạo kỹ thuật hệ thống hóa tự động hóa xử lý trí thức phương pháp thuộc lĩnh vực mang tính người Trí tuệ nhân tạo nghiên cứu kỹ thuật làm cho máy tính “suy nghĩ cách thơng minh" mơ q trình suy nghĩ người đưa định, lời giải Trên sở đó, thiết kế chương trình cho máy tính để giải toán Sự đời phát triển trí tuệ nhân tạo tạo bước nhảy vọt chất kỹ thuật kỹ nghệ xử lý thơng tin Trí tuệ nhân tạo sở công nghệ xử lý thông tin mới, độc lập với công nghệ xử lý thông tin truyền thống dựa văn giấy tờ Điều thể qua mặt sau: - Nhờ công cụ hình thức hóa (các mơ hình logic ngơn ngữ, logic mở ), tri thức thủ tục tri thức mơ tả diễn máy Do q trình giải tốn tiến hành hữu hiệu - Mơ hình logic ngơn ngữ mở rộng khả ứng dụng máy tính lĩnh vực địi hỏi tri thức chun gia trình độ cao, khó như: Y học, sinh học, địa lý, tự động hóa - Một số phần mềm trí tuệ nhân tạo thể tính thích nghi tính mềm dẻo lớp toán thuộc nhiều lĩnh vực khác Khi máy tính trang bị phần mềm trí tuệ nhân tạo ghép mạng cho phép giải toán cỡ lớn phân tán 1.1.3 Lĩnh vực AI Lập luận, suy diễn tự động: Khái niệm lập luận (reasoning), suy diễn (reference) sử dụng phổ biến lĩnh vực AI Lập luận suy diễn logic, dùng để tiến trinh rút kết luận (tri thức mơi) từ giả thiết đa cho (được biểu diễn dươi dạng sở tri thức) Như vậy, để thực lập luận người ta cần có phương pháp lưu trữ sở tri thức thủ tục lập luận sở tri thức Biểu diễn tri thức: Muốn máy tính lưu trữ xử lý tri thức thi cần có phương pháp biểu diễn tri thức Các phương pháp biểu diễn tri thức bao gồm ngôn ngữ biểu diễn kỹ thuật xử lý tri thức Một ngôn ngữ biểu diễn tri thức đánh giá “tốt” có tính biểu đạt cao tính hiệu thuật tốn lập luận ngơn ngữ Tính biểu đạt ngơn ngữ thể khả biểu diễn phạm vi rộng lơn thông tin miền ứng dụng Tính hiệu thuật tốn lập luận thể chi phí thời gian không gian dành cho việc lập luận Tuy nhiên, hai yếu tố dường đối nghịch nhau, tức ngơn ngữ có tínhbiểu đạt cao thi thuật tốn lập luận có độ phức tạp lơn (tính hiệu thấp)và ngược lại (ngơn ngữ đơn giản, có tính biểu đạt thấp thi thuật tốn lập luận có hiệu cao) Do đó, thách thức lơn lĩnh vực AI xây dựng ngôn ngữ biểu diễn tri thức mà cân hai yếu tố này, tức ngơn ngữ có tínhbiểu đạt đủ tốt (tùy theo ứng dụng) lập luận hiệu 1.2.2 Một thuật toán minimax Là thuật toán đệ quy cho việc lựa chọn bươc trị chơi có hai người chơi Một giá trị gán cho vị trí hay trạng thái trị chơi Giá trị tính tốn hàm tính giá trị vị trí cho biết độ tốt người chơi đạt đến Người chơi sau bươc làm tối đa giá trị tối thiểu vị trí kết từ tập hợp bươc đối thủ Nếu phiên A đi, A cho giá trị cho bươc hợp pháp 1.2.3 Phương pháp Hai đối thủ trò chơi gọi MIN MAX luân phiên thay MAX đại diện cho người dành thắng lợi cố gắng tối đa hóa ưu minh, ngược lại người chơi đại diện cho MIN lại cố gắng giảm điểm số MAX cố gắng làm cho điểm số minh âm tốt Giả thiết đưa MIN MAX có kiến thức khơng gian trạng thái trò chơi hai đối thủ cố gắng Mỗi Node biểu diễn cho trạng thái trò chơi Node Node chứa trạng thái kết thúc trò chơi Giải thuật Minimax thể cách định trị Node trò chơi: Node thuộc lơp MAX thi gán cho giá trị lơn Node Node thuộc lơp MIN thi gán cho giá trị nhỏ Node Từ giá trị người chơi lựa chọn cho minh nươc hợp lý 1.3 Mơ hình tốn Trong ví dụ sau trị chơi tổng 0, A B bươc lúc, minh họa thuật toán minimax Nếu người chơi có chọn lựa ma trận lợi cho A là: B chọn B chọn B1 A chọn B chọn B2 B3 +3 -2 -1 A1 A chọn A2 A chọn -4 A3 Hình 1: minh họa thuật tốn Và B có ma trận lợi ngược dấu (i.e lựa chọn A1 B1 B trả cho A) sau lựa chọn minimax đơn giản cho A A2 vi kết xấu sau phải trả 1, lựa chọn minimax đơn giản cho B B2 vi kết xấu sau khơng phải trả gi Tuy vậy, lời giải không ổn định, vi B tin A chọn A2 thi B chọn B1 để thắng 1; sau 10 -3 A tin B chọn B1 A chọn A1 để thắng 3; sau B chọn B2; cuối hai người chơi nhận khó khăn việc chọn lựa Do chiến lược ổn định cần thiết Một số chọn lựa bị thống trị người khác bị loại bỏ: A khơng chọn A3 vi A1 hay A2 sinh kết tốt hơn, B chọn gì; B không chọn B3 vi B2 sinh kết tốt hơn, A chọn gi A tránh việc phải trả số lượng dự định (expected payment) 1/3 cách chọn A1 vơi xác suất 1/6 A2 vơi xác suất 5/6, B đa chọn gi B tính phần lợi dự định (expected gain) 1/3 cách sử dụng chiến thuật ngẫu nhiên việc chọn B1 vơi xác suất 1/3 B2 vơi xác suất 2/3, A chọn gi Những chiến lược minimax hỗn hợp ổn định cải tiến 1.4 KẾT LUẬN - Ưu điểm: Tìm kiếm nươc sau lựa chọn nươc tốt nhất, giải thuật có tính chất vét cạn nên khơng bỏ sốt trạng thái - Nhược điểm: Đối vơi trị chơi có khơng gian trạng thái lơn caro, cờ tương… việc áp dụng giải thuật Minimax có lẽ khơng cịn hiệu bùng nổ tổ hợp lơn Giải thuật áp dụng nguyên lý vét cạn không tận dụng thông tin trạng thái để lựa chọn nươc đi, vi duyệt hết trạng thái nên tốn thời gian 11 CHƯƠNG 2: BÀ̀I TOÁN CỜ CARO 2.1 BÀ̀I TOÁN: Cờ Caro mơn có logic lâu đời cổ xưa Trái Đất Cờ Caro sáng tạo từ nhiều văn minh khác cách độc lập Cổ Caro trò chơi phổ biến Vì trị chơi sử dụng tư nhiều trò chơi lôi tạo cảm giác hưng phấn thủ vị cho người chơi, Cờ Caro không phân biệt kén chọn người chơi, khơng phân biệt trò chơi tác động tư suy nghĩ người nhiều Cờ Caro thông dụng nhiều nước khơng thể khơng kể đến Việt Nam, đặc biệt phổ biến với bạn học sinh nước ta, đơn giản từ tờ giấy kẻ thành ô vuông nhỏ người chơi chơi trị cờ Caro Từ thủa ban đầu người (mọi người chơi trò này) thi đấu với giấy, giấy ta cần u cầu phải kẻ thành ô, giấy ô ly nói khơng gian q nhỏ giấy kẻ giấy A4 tiêu tốn nhiều thời gian việc chuẩn bị kẻ lên không gian chơi cờ Khơng vậy, trị chơi u cầu có đối thủ luân phiên thực bước nên người có cầu muốn chơi trị lại khơng thể tự chơi Chính vậy, người dần tiến tới lập trình chơi cờ Caro máy tính vừa khơng cần phải phi cơng kẻ từ dịng từ trang giấy mà cịn thực chơi game với máy tính có Cờ Caro thể tính chất đối kháng cao thi đấu game đòi hỏi suy nghĩ người chơi Chương trình có chế độ chơi máy tính, chạy có có ra, trình chơi có thơng báo máy (người) thắng 12 2.2 GIẢI QUYẾT BÀ̀I TỐN 2.2.1 Ý tưởng: Có người chơi Min Max • Một chiến lược tối ưu chuỗi nươc giúp đưa đến trạng thái đích mong muốn • Chiến lược MAX bị ảnh hưởng ( phụ thuộc ) vào nươc MIN –và ngược lại • MAX cần chọn chiến lược giúp cực đại hóa giá trị hàm mục tiêu – vơi giả sử MIN nươc tối ưu • Chiến lược xác định việc xét giá trị MINIMAX đối vơi nút biểu diễn trò chơi • MAX chọn nươc tương ứng vơi giá trị MINIMAX cực đại ( MIN chọn nươc ứng vơi giá trị MINIMAX cực tiểu b Áp dụng vào game Caro: Người chơi cầm quân X đóng vai trị Max, người chơi cầm qn O đóng vai trò Min Để định nươc tiếp theo, ta xây dựng thủ tục đệ quy gồm hàm max_value() để tim nươc cho quân X, min_value() để tìm nươc cho quân O Để giảm thời gian giải thuật đệ quy, ta giơi hạn độ sâu giải thuật int max_value(state s, int dept){ if( terminal_test() || dept >= ) return eval(s); v = -; for(duyệt tất trạng thái s’ s){ v = max(v, min_value(s’, dept + 1)); } 13 return v; } int min_value(state s, int dept){ if(terminal_test() || dept >= ) return eval(s); v =+; for(duyệt tất trạng thái s’ s) { v = min(v, max_value(s’, dept+ 1)); } return v; } Hàm xác định trạng thái kết thúcterminal_test(): 2.2.2 Phương pháp giải nước đi: Tìm kiếm nước đi: Giới thiệu khơng gian tìm kiếm : Trong trò chơi caro,cứ sau nước cờ,mỗi đối thủ chọn từ ô trống để đi,do đó,sau nước số trống cịn lại giảm đi.Như vậy,việc tìm nước cho trạng thái có sẵn việc tìm kiếm trống cịn lại,đồng thời,khơng gian tìm kiếm thu he theo số nước tạo Không gian chon nước từ trạng thái ban đầu hữu hạ,nhưng khơng gian tìm kiếm nước dẫn đến chiến thắng lớn.Do ta khơng thể vét khơng gian tìm kiếm nước mà phải giới hạn khơng gian tìm kiếm 14 2.3 Mơ tả tốn cờ caro theo minmax Trị chơi cờ caro thực hai đối thủ bàn cờ hình vng có 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 dẫn tạo quân thành chuỗi liên tiếp hàng ,doc,chéo Hình Mơ tả cờ 15 Như hình ta thấy trạng thái game đến lượt đánh người chơi X đại diện cho MAX Ta tạm quy định giá trị MAX lúc game thắng cho X = +10 MIN lúc game thua cho X = -10 lúc game hòa = Lúc lượt 1, MAX nước hình Vậy để chọn nước nước tốt để Chúng ta dựa vào giá trị nước để chọn nước tốt nhất, node thuộc lớp MAX nên chọn giá trị lớn Chúng ta bắt đầu tìm giá trị node Ở lớp MAX lượt 1, ta có node 1,2,3 đánh số từ trái sáng phải hình Node node có giá trị +10 Cịn node 1,2 chưa biết giá trị lượt nên dựa vào giá trị node để định giá trị giá trị bé node lớp MIN lượt Cứ tiếp tục tương tự đến lúc gặp node từ node ta suy ngược lại ta tính node có giá trị -10 node Vậy nước tốt node có giá trị lớn +10 16