Báo cáo chuyên đề 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

27 2 0
Báo cáo chuyên đề 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

Đ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 ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ 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 hiện NGÔ TRUNG HIẾU NGUYỄN HU[.]

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 .8 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 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 hoà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 tố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ự đốn Turing Các tác giả nghiên cứu đề xuât mơ hình 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 trình Lisp – ngơn ngữ lập trình 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 trình Macsyma - chương trình tố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 trình 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 trình 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 đạ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 nhà nghiên cứu cho phương pháp tố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) bắt đầu với khái niệm bay nhân tạo (flying machines), tức máy bay Đã 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 hình mặt đất, hay nói cách khác máy bay Khơng có 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 quãng đường ngắn lịch sử hàng không thực sang trang 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, thấy, có sức trở lớn bay qng đườ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 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 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 thành thực, thành tựu đạt không nhỏ: 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; làm phần mềm chứng minh tốn hình 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 não 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ý hồn tồ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 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 xuyên 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ơ 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 trình rút kết luận (tri thức mới) từ giả thiết cho (được biểu diễn 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 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 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 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 mình, 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ố â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 gán cho giá trị lớn Node  Node thuộc lớp MIN gán cho giá trị nhỏ Node Từ giá trị người chơi lựa chọn cho 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 B1 A chọn B chọn B2 B chọn B3 +3 -2 +2 -1 +4 -4 -3 +1 A1 A chọn A2 A chọn 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 kết xấu sau phải trả 1, lựa chọn minimax đơn giản cho B B2 kết xấu sau khơng phải trả Tuy vậy, lời giải khơng ổn định, B tin A chọn A2 B chọn B1 để thắng 1; sau 10 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 A1 hay A2 sinh kết tốt hơn, B chọn gì; B khơng chọn B3 B2 sinh kết tốt hơn, A chọn 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 chọn 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 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, 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 TỐ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 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 vng 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 yêu cầu phải kẻ thành ơ, giấy ly nói khơng gian q nhỏ cịn 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, q 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 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 qn 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() để tìm 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

Ngày đăng: 10/05/2023, 22:56

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

Tài liệu liên quan