Bài tập lớn trí tuệ nhân tạo trò chơi cờ vua trường đại học công nghệ GTVT. Đề tài mô tả nhập môn trí tuệ nhân tạo của các trường đại học, Là tiền đề để học các giải thuật. Trong đề tài sử dụng hai giải thuật chính là minimax và cắt tỉa anphabeta.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MƠN TRÍ TUỆ NHÂN TẠO Tên đề tài: Trị chơi cờ vua GIÁO VIÊN HƯỚNG DẪN: ĐỒN THỊ THANH HẰNG NHÓM THỰC HIỆN: NHÓM LỚP: 72DCTT21 THÀNH VIÊN THỰC HIỆN: ĐỒNG THANH TUẤN HOÀNG TRẦN NGUYÊN ĐỖ VIỆT HƯNG HY TIẾN SƠN LÊ QUANG DUY BẠCH MINH TUẤN HÀ NỘI 2023 MỤC LỤC MỤC LỤC PHÂN CÔNG CÔNG VIỆC VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ĐỀ TÀI .3 LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ AI 1.1 Lịch sử hình thành phát triển trí tuệ nhân tạo .5 1.2 Định nghĩa trí tuệ nhân tạo 1.2.1 Trí tuệ nhân tạo 1.2.2 Trắc nghiệm Turing CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 13 Tổng quan trò chơi Cờ Vua 13 2.1 Giới thiệu trò chơi 13 2.2 Các quy tắc trò chơi 13 2.3 Một số khái niệm 16 2.3.1 Dạng trò chơi 16 2.3.2 Cây trò chơi 17 2.3.3 Vét cạn 17 2.3.4 Chiến lược tìm kiếm 18 2.4 THUẬT TOÁN .19 2.4.1 Thuật toán Minimax .19 2.4.2 Cải tiến Alpha – Beta .21 CHƯƠNG 3: CÀI ĐẶT THUẬT TOÁN 25 3.1 Biểu diễn bàn cờ quân cờ .25 3.2 Sinh nước 25 3.3 Kiểm tra giới hạn bàn cờ 26 3.4 Đánh giá cờ 26 3.5 Xử lí nước "thử" 28 3.6 Xử lí điều khiển người chơi 30 3.7 Cập nhật nước .31 3.8 Vịng lặp xử lí trị chơi 31 3.9 Chạy chương trình 33 TÀI LIỆU THAM KHẢO 35 Trí tuệ nhân tạo PHÂN CÔNG CÔNG VIỆC VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ĐỀ TÀI Thành viên Công việc Đồng Thanh Tuấn - Tìm hiểu thuật tốn cải tiến Alpha – Beta - Dạng trò chơi - Biểu diễn bàn quân cờ - Sinh nước Hoàng Trần Nguyên - Tìm hiểu thuật tốn Minimax - Cây trị chơi - Kiểm tra giới hạn bàn cờ - Đánh giá cờ Đỗ Việt Hưng - Tìm hiểu thuật toán Minimax - Vét cạn - Xử lý nước “thử” - Xử lí điều khiển người chơi Lê Quang Duy - Tìm hiểu thuật tốn Minimax - Chiến lược tìm kiếm - Cập nhật nước - Vịng lặp xử lý trị chơi Bạch Minh Tuấn - Tìm hiểu thuật tốn cải tiến Alpha – Beta - Tổng quan AI - Chạy chương trình 35 LỜI NĨI ĐẦU Trong thời đại mà cơng nghiệp tự động hóa chiếm vị trí thiếu kinh tế phát triển, máy móc chứng tỏ ưu vượt trội nhờ xác, độ ổn định cao,… Nhưng đằng sau đó, máy người điều khiển, trí tuệ máy móc người cài đặt mà có Vì vậy, tri thức người yếu tố then chốt Từ năm 50 kỉ XX, trí tuệ nhân tạo bắt đầu nhen nhóm, mà đây, ta thấy có bước phát triển vượt bậc, không ngừng Để hiểu rõ AI, chúng em định lựa chọn trò chơi cờ vua, trò chơi cổ điển trị chơi biểu tượng trí tuệ để hồn thành tập lớn mơn học Dưới phần trình bày báo cáo mơn học thơng qua đề tài nêu Hiện tại, chương trình chúng em cịn nhiều thiếu sót, mong nhận ý kiến góp ý tư vấn từ thầy bạn để chúng em trau dồi thêm cho thân kiến thức hữu ích NHĨM TÁC GIẢ Trí tuệ nhân tạo CHƯƠNG 1: TỔNG QUAN VỀ AI 1.1 Lịch sử hình thành phát triển trí tuệ nhân tạo Những năm gần đây, nhiều sách, báo, cơng trình nghiên cứu khoa học đề cập đến kỹthuật tính tốn, người ta hay nhắc đến nhiều thuật ngữ như: máy tính thơng minh, máy tính hệ V, hệ chuyên gia, mạng ngữ nghĩa, Các ngơn ngữ lập trình LISP, PROLOG mởđường cho việc áp dụng hàng loạt hệ thống chương trình có khả “thơng minh” Trước đây, nói đến Trí tuệ nhân tạo (TTNT) người ta thường quan tâm đến việc tạo lập máy tính có khả “suy nghĩ”, chí số phạm vi hẹp đó, cạnh tranh vượt khả não người Những hy vọng thời gian dài ảnh hưởng nhiều đến nghiên cứu phòng thí nghiệm Mặc dù mơ hình tương tự máy tính thơng minh đưa hàng nhiều năm trước, từ Alan Turing công bố kết nghiên cứu quan trọng đầu tiên, người ta bắt đầu thực nghiên cứu đến vấn đề TTNT cách nghiêm túc Phát Turing cho chương trình lưu trữ nhớ để sau thực sở phép toán thao tác với bit 0, Điều tạo nên tảng máy tính đại Việc lưu trữ chương trình máy cho phép thay đổi chức cách nhanh chóng dễ dàng thơng qua việc nạp chương trình vào nhớ Theo nghĩa đó, khả làm cho máy tính có khả học suy nghĩ Đó biểu quan trọng máy tính trang bị TTNT 35 Năm 1956, chương trình dẫn xuất kết luận hệ hình thức cơng bố Tiếp theo đó, năm 1959 chương trình chứng minh định lý hình học phẳng chương trình giải tốn vạn (GPS - General Problem Solving) đưa Tuy khoảng năm 1960 McCathy MIT (Massachussets Institute of Technology) đưa ngôn ngữ lập trình dùng cho trí tuệ nhân tạo LISP (list processing), nghiên cứu TTNT bắt đầu phát triển mạnh mẽ Thuật ngữ TTNT Marvin Minsky chuyên gia tiếng MIT đưa năm 1961 báo “ Steps Forwards To ArtIficial Intelligence” Những năm 60 xem mốc quan trọng trình xây dựng máy có khả suy nghĩ Các chương trình chơi cờ chương trình chứng minh định lý tốn học công bố khoảng thời gian Những bế tắc, hạn chế thành công cơng trình nghiên cứu TTNT năm 60 giới hạn khả thiết bị, nhớ đặc biệt yếu tố thời gian thực Chính yếu tố khơng cho phép tổng qt hóa thành cơng bước đầu đạt hệ chương trình TTNT xây dựng Tuy vào năm 70, nhớ máy tính thời gian tính tốn nâng cao đáng kể chất, song cách tiếp cận khác đến TTNT chưa đem tới thành công thật sự bùng nổ tổ hợp trình tìm kiếm lời giải cho tốn đặt Cuối năm 70, số nghiên cứu lĩnh vực xử lý ngôn ngữ tự nhiên, biểu diễn tri thức, lý thuyết giải vấn đềđã đem lại diện mạo cho TTNT Thị trường Trí tuệ nhân tạo tin học bắt đầu đón nhận sản phẩm TTNT ứng dụng mang tính thương mại Đó hệ chun gia áp dụng lĩnh vực khác Hệ chuyên gia phần mềm máy tính, chứa thông tin tri thức lĩnh vực cụ thể đó, có khả giải yêu cầu người dùng mức độ với trình độ nhưmột chun gia có kinh nghiệm lâu năm Một hệ chuyên gia sửdụng thành công thực tế hệ MYCIN, thiết kế cài đặt trường Đại học Tổng Hợp Stanford Một kiện quan trọng phát triển khoa học TTNT đời ngôn ngữ PROLOG, Alain Calmerauer đưa năm 1972 Năm 1981, dự án Nhật Bản xây dựng máy tính hệ thứ V lấy ngơn ngữ PROLOG ngôn ngữ sở làm thay đổi nhiều tình hình phát triển TTNT Mỹ châu Âu Giai đoạn 1981 trở người ta cảm nhận rõ nét chuyên gia TTNT dần chuyển kết nghiên cứu từ phịng thí nghiệm sang cài đặt ứng dụng cụ thể Có thể nói giai đoạn cạnh tranh riết công ty, viện nghiên cứu hàng đầu nhằm đưa thị trường sản phẩm phần mềm ứng dụng kỹ thuật TTNT Cuối năm 80, đầu năm 90 thị trường sản phẩm dân dụng có nhiều sản phẩm trình độ cao máy giặt, máy ảnh, sử dụng TTNT Các hệ thống nhận dạng xử lý hình ảnh, tiếng nói ngày thúc đẩy phát triển kỹ thuật mạng Neuron Sựxích lại hai cách tiếp cận: Tiếp cận mờ lập luận xấp xỉ kỹ thuật mạng Neuron gây 35 quan tâm đặc biệt chuyên gia tin học Bên cạnh xuất hệ chuyên gia, ứng dụng công nghiệp quản lý xã hội, quản lý kinh tế đòi hỏi đời hệ thống xử lý tri thức – liệu tích hợp Thế giới chuyển nghiên cứu TTNT Tuy câu hỏi liệu kỹ thuật TTNT có tạo nên bước nhảy vọt công nghệ tin học, đặc biệt cơng nghệmáy tính người ta mong đợi hay khơng chưa có lời giải đáp thỏa đáng 1.2 Định nghĩa trí tuệ nhân tạo 1.2.1 Trí tuệ nhân tạo Trí tuệ nhân tạo (AI: ArtIficial Intelligence) định nghĩa ngành khoa học máy tính liên quan đến việc tự động hóa hành vi thơng minh AI phận khoa học máy tính phải đặt nguyên lý lý thuyết vững chắc, có khả ứng dụng lĩnh vực Những nguyên lý bao gồm cấu trúc liệu dùng cho biểu diễn tri thức, thuật tốn cần thiết để áp dụng tri thức đó, ngơn ngữ kỹ thuật lập trình dùng cho việc cài đặt chúng Tuy nhiên định nghĩa phải chấp nhận thực tế - trí tuệ tự khái niệm khơng định nghĩa cách rõ ràng Mặc dù hầu hết nhận hành vi thơng minh nhìn thấy chúng khó đưa định nghĩa trí tuệ Vì mà vấn đề định nghĩa Trí tuệ nhân tạo tự trở thành định nghĩa trí tuệ: có phải lực tên dùng gọi tập hợp khả khác khơng liên quan đến nhau? Thế khả Trí tuệ nhân tạo sáng tạo? Thế trực giác? Có thể kết luận tính trí tuệ từ việc quan sát hành vi hay khơng hay cần phải có biểu chế nằm bên trong? Tất câu hỏi chưa trả lời chúng nêu vấn đề cần có phương pháp luận để giải Cho đến nay, Trí tuệ nhân tạo ngành khoa học trẻ, mối quan tâm phương pháp chưa rõ ràng so với tất ngành khoa học trưởng thành trước Song, mục tiêu trọng tâm quan tâm đến việc mởrộng khả khoa học máy tính tìm cách định nghĩa giới hạn 1.2.2 Trắc nghiệm Turing Năm 1950, nhà toán học người Anh Alan Turing viếtu trang sách trả lời cách cụ thể câu hỏi: trí tuệ máy có liên hệ với máy tính kỹ thuật số đại Tác phẩm “Máy tính trí tuệ” (Turing 1950) ơng cịn mang tính thời đại việc đánh giá tranh luận khả tạo máy tính thông minh, câu trả lời tác phẩm cho tranh luận Turing, người tiếng chủ yếu qua đóng góp ơng cho lý thuyết khả tính tốn xem xét câu hỏi: liệu làm cho máy tính thực có khả suy nghĩ hay không? Để giải mơ hồ câu hỏi này, ông đề xuất thay câu trả lời kết trắc nghiệm mang tính thực nghiệm – trắc nghiệm Turing (Turing test) hay “trò chơi bắt chước” 35 Trắc nghiệm Turing đo lường khả máy tính coi thơng minh so sánh với khả người – đối tượng xem có hành vi thơng minh chuẩn mực trí tuệ Trong trắc nghiệm này, máy tính người tham gia trắc nghiệm đặt vào phòng cách biệt với người thứ hai, người gọi “người thẩm vấn” (hình 1.1) Người thẩm vấn khơng thể nhìn thấy hay nói chuyện với trong hai đối tượng trên, khơng biết xác đối tượng người hay máy tính, giao tiếp với hai đối tượng thơng qua thiết bị soạn thảo văn bản, chẳng hạn thiết bịđầu cuối Người thẩm vấn có nhiệm vụ phân biệt người với máy tính cách dựa câu trả lời họđối với câu hỏi truyền qua thiết bị liên lạc Trong trường hợp người thẩm vấn khơng thể phân biệt máy tính với người đó, theo Turing, máy tính xem thơng minh Trắc nghiệm Turing Người thẩm vấn cách cách ly người thẩm vấn với máy tính người tham gia vào trắc nghiệm, thí nghiệm bảo đảm người thẩm vấn khơng có thành kiến với xuất máy tính hay đặc tính máy móc lời nói Tuy nhiên, với mục đích cố gắng phát đâu máy tính, người thẩm vấn tự hỏi câu hỏi nào, cho dù câu hỏi bóng gió hay quanh co Chẳng hạn, người thẩm vấn yêu cầu hai đối tượng thực phép tính liên quan nhiều đến số học với giảđịnh máy tính thực nhanh xác người Để đối phó với chiến thuật này, máy tính 10 Nếu lượt chơi đấu thủ maximizer, ta xét toàn nút nó, chọn nút có giá trị lớn Nếu lượt chơi đấu thủ minimizer, ta xét tồn nút nó, chọn nút có giá trị nhỏ Ta thấy cách cài đặt thuật tốn Minmax tương tự với cách cài đặt đệ quy quay lui, kết hợp với quy hoạch động đoạn từ chọn cách tối ưu Đánh giá thuật toán Minmax: Nếu hệ số nhánh trung bình b ta thực tìm kiếm đến độ sâu d số nút phải lượng giá đáy ta biết b*d Đây số đo phức tạp thuật tốn Nếu b = 40, d = (các số thường gặp trị chơi cờ) số nút lượng giá 2560000 nút Còn với b = 40, d = số nút lượng giá tăng lên 40 lần = 102400000 nút 20