Mã Đi Tu�n 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 ÁP DỤNG THUẬT TOÁN QUAY LUI GIẢI QUYẾT B䄃�I TOÁN MÃ ĐI TUẦN Sinh viên thực hi[.]
lOMoARcPSD|17160101 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: ÁP DỤNG THUẬT TOÁN QUAY LUI GIẢI QUYẾT B䄃I TOÁN MÃ ĐI TUẦN Sinh viên thực hiện: LÊ TUẤN ANH NGUYỄN VĂN ĐỨC TRẦN MINH QUANGGiảng viên hướng dẫn: PHẠM ĐỨC HỒNGNgành: CÔNG NGHỆ THÔNG TINChuyên ngành: QUẢN TRỊ AN NINH MẠNGLớ瀀܀: D15LTQTANMKhó愀܀: 2020-2022 Hà Nội, tháng 12 năm 2021 lOMoARcPSD|17160101 Mã Đi Tuần Phiếu chấm điểm Sinh viên thực hiện: Họ tên Chữ ký Nhiệm vụ Lê Tuấn Anh Tìm kiếếm tài liệu, ứng dụng, hoàn thiện báo cáo Mã SV: 20710320004 Nguyễn Văn Đức Tìm kiếếm chủ đếề, tài liệu, kiểm tra lại báo cáo Mã SV: 20710320003 Trần Minh Quang Góp ý chủ đếề, hoàn thiện báo cáo Mã SV: 20710320006 Giảng viến chấếm: Họ tên Chữ ký Ghi Giảng viên chấm 1: Giảng viên chấm 2: lOMoARcPSD|17160101 Mã Đi Tuần MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG GIỚI THIỆU VỀ AI VÀ THUẬT TOÁN QUAY LUI .6 1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO 1.1.1 Trí tuệ nhân tạo ? .6 1.1.2 Lịch sử .8 1.1.3 Lĩnh vực AI .9 1.2 GIỚI THIỆU VỀ KỸ THUẬT QUAY LUI 10 1.2.1 Tư tưởng quay lui 10 1.2.2 Heuristic 11 1.2.3 Cài đặt 11 1.2.4 Phương pháp 12 1.2.5 Mô tả .12 1.3 KẾT LUẬN .14 CHƯƠNG PHÁT BIỂU BÀI TOÁN VÀ THIẾT KẾ THUẬT TOÁN TỐI ƯU 15 2.1 Phát biểu toán 15 2.2 Thiết kế tối ưu thuật toán 16 2.2.1 Biểu diễn bàn cờ vua 16 2.2.2 Các khả lựa chọn cho xi 17 2.2.3 Lựa chọn xi cho hiệu 18 2.2.4 Cách ghi nhận trạng thái ? trả trạng thái cũ ? .19 2.2.5 Ghi nhận nhiệm vụ 19 2.2.6 Mô tả 19 2.2.7 Đánh giá thuật toán 21 2.2.8 Kết thực tế cài đặt 21 CHƯƠNG 3: THIẾT KẾ GIAO DIỆN 23 3.1 Màn hình chạy chương trình 23 3.2 Màn hình 24 3.3 Màn hình 24 3.3.1 Ở nước 24 lOMoARcPSD|17160101 Mã Đi Tuần 3.3.2 Bắt đầu tuần 26 3.3.3 Kết 28 KẾT LUẬN .30 TÀI LIỆU THAM KHẢO .31 lOMoARcPSD|17160101 Mã Đi Tuần LỜI NĨI ĐẦU Bài tốn “ Mã tuần” toán thú vị, tương đối kinh điển mà học sâu thuật tốn tin học nghe nói đến Mã tuần (hay hành trình qn mã) tốn việc di chuyển quân mã bàn cờ vua ( x 8) Quân mã đặt ô bàn cờ trống phải di chuyển theo quy tắc cờ vua để qua ô bàn cờ lần Chính vâ ̣y chúng em đến viê ̣c lựa chọn đề tài “ÁP DỤNG THUẬT TOÁN QUAY LUI VÉT CẠN GIẢI QUYẾT BÀI TOÁN MÃ ĐI TUẦN” cho tâ ̣p lớn môn Cấu trúc dư뀃 liê ̣u giải thuâ ̣t nâng cao Chúng em vô biết ơn thầy Phạm Đức Hồng, người trực tiếp giảng dạy, hướng dẫn nhiệt tình cho chúng em trình nghiên cứu thực đề tài Mặc dù đề tài hoàn thành, chắn tránh khỏi như뀃ng thiếu sót, chúng em mong muốn nhận ý kiến đóng góp thầy để hồn thiện nư뀃a Chúng em xin chân thành cảm ơn! lOMoARcPSD|17160101 Mã Đi Tuần CHƯƠNG GIỚI THIỆU VỀ AI VÀ THUẬT TOÁN GIẢI QUYẾT BÀI TOÁN - THUẬT TOÁN QUAY LUI 1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO 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 như뀃ng ý 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 quãng đường vịng quanh giới Nó khơng thiết phải có nguyên 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, như뀃ng 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, lOMoARcPSD|17160101 Mã Đi Tuần máy tính thực tốt tương đương người (tất nhiên 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 lồi người nhưthế ta bắt chước nguyên lý đó, có như뀃ng cách khác sử dụng ngun 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 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 dựa nguyên 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 người Trong mơn học này, tìm hiểu phương pháp để làm cho máy tính biết cách giải tốn, biết cách lập luận, biết cách học, v.v lOMoARcPSD|17160101 Mã Đi Tuần 1.1.2 Lịch sử 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ả 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 – như뀃ng 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 TedShortliffe 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 như뀃ng năm 1980, như뀃ng 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 như뀃ng năm 1990 đầu kỷ 21, AI đạt như뀃ng thành tựu to lớn nhất, AI áp dụng logic, khai phá dư뀃 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 tốn cụ thể, xây dựng mối quan hệ giư뀃a AI lĩnh vực khác giải toán lOMoARcPSD|17160101 Mã Đi Tuần tương tự, chuyển giao 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.3 Lĩnh vực 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ừ như뀃ng 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 toá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) 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 ⮚ Lập kế hoạch: khả suy mục đích cần đạt nhiệm vụ đưa ra, xác định dãy hành động cần thực để đạt mục đích lOMoARcPSD|17160101 Mã Đi Tuần ⮚ Học máy: lĩnh vực nghiên cứu AI phát triển mạnh mẽ có nhiều ứng dụng lĩnh vực khác khai phá dư뀃 liệu, khám phá tri thức,… ⮚ Xử lý ngôn ngư뀃 tự nhiên: nhánh AI, tập trung vào ứng dụng ngôn ngư뀃 người Các ứng dụng nhận dạng tiếng nói, nhận dạng chư뀃 viết, dịch tự động, tìm kiếm thơng tin,… ⮚ Hệ chun gia: cung cấp hệ thống có khả suy luận để đưa như뀃ng kết luận Các hệ chuyên gia có khả xử lý lượng thơng tin lớn cung cấp kết luận dựa như뀃ng thông tin Có nhiều hệ chuyên gia tiếng hệ chuyên gia y học MYCIN, đoán nhận cấu trúc phân tử từ cơng thức hóa học DENDRAL, … ⮚ Robotics ⮚… 1.2 GIỚI THIỆU VỀ KỸ THUẬT QUAY LUI Quay lui (backtracking) chiến lược tìm kiếm lời giải cho toán thỏa mãn ràng buộc Người đề thuật ngư뀃 (backtrack) nhà toán học người Mĩ D.H.Lehmer vào như뀃ng năm 1950 1.2.1 Tư tưởng qu愀܀y lui Các toán thỏa mãn ràng buộc tốn có lời giải đầy đủ, thứ tự phần tử khơng quan trọng Các tốn bao gồm tập biến mà biến cần gán giá trị tùy theo ràng buộc cụ thể toán Việc quay lui để thử tất tổ hợp để tìm lời giải Thế mạnh phương pháp nhiều cài đặt tránh việc phải thử nhiều tổ hợp chưa hoàn chỉnh, nhờ giảm thời gian chạy Phương pháp quay lui có quan hệ chặt chẽ với tìm kiếm tổ hợp lOMoARcPSD|17160101 Mã Đi Tuần Quy ước : - m_trangThai[x][y] = : ô (x,y) ngựa chưa qua - m_trangThai[x][y] = I : ô (x,y) ngựa qua bước thứ I (1