TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC NGHIỆMTHÍ NGHIỆM Học phần TRÍ TUỆ NHÂN TẠO – IT6043 Đề Tài XÂY DỰNG CHƯƠNG TRÌNH GIẢI BÀI TOÁN TRÒ CHƠI 8 SỐ VỚI THUẬT TOÁN TÌM.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN BÁO CÁO THỰC NGHIỆM/THÍ NGHIỆM Học phần: TRÍ TUỆ NHÂN TẠO – IT6043 Đề Tài: XÂY DỰNG CHƯƠNG TRÌNH GIẢI BÀI TỐN TRỊ CHƠI SỐ VỚI THUẬT TỐN TÌM KIẾM CHIỀU RỘNG, CHIỀU SÂU (C++) Lớp: 20221IT6043001 Nhóm 9: Vũ Mạnh Dũng - 2020605565 Vũ Huy Cơng - 2020605358 Võ Văn Đức – 202060 Giảng viên HD: TS Trần Thanh Huân Hà Nội, 11/2022 MỤC LỤC LỜI NÓI ĐẦU TÓM TẮT BÁO CÁO .5 DANH SÁCH CÁC HÌNH VẼ CÁC TỪ VIẾT TẮT .6 MỞ ĐẦU .7 CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu trí tuệ nhân tạo 1.1.1 Khái niệm 1.1.2 Vai trò .9 1.1.3 Các kĩ thuật 1.2 Giới thiệu trò chơi số (8 puzzle) 11 1.2.1 Giới thiệu toán 11 1.2.2 Xác định trạng thái đích 11 1.2.3 Kiểm tra trạng thái đích 14 CHƯƠNG 2: CÁC THUẬT TOÁN CHIỀU RỘNG, CHIỀU SÂU .15 2.1 Thuật tốn tìm kiếm theo chiều rộng (BFS) 15 2.1.1 Khái niệm .15 2.1.2 Tư tưởng 15 2.1.3 Thuật toán 16 2.1.4 Ưu, nhược điểm .16 2.2 Thuật tốn tìm kiếm theo chiều sâu (DFS) 17 2.2.1 Khái niệm .17 2.2.2 Tư tưởng 17 2.2.3 Thuật toán 18 2.2.4 Ưu, nhược điểm .19 2.3 Sự khác thuật toán 20 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 21 3.1 Tìm kiếm theo chiều rộng (BFS) 22 3.2 Tìm kiếm theo chiều sâu (DFS) .27 KẾT LUẬN 32 TÀI LIỆU THAM KHẢO .32 ĐỐI CHIẾU VIỆT – ANH .32 LỜI NĨI ĐẦU Để hồn thiện đề tài Bài tập lớn mơn Trí tuệ nhân tạo, chúng em xin gửi lời cảm ơn chân thành đến trường Đại học Công nghiệp Hà Nội, khoa Công nghệ thông tin tạo điều kiện cho chúng em học tập Chúng em xin gửi lời cảm ơn chân thành đến thầy cô khoa Công nghệ thông tin truyền đạt cho chúng em nhiều kiến thức trình học tập trường Đặc biệt chúng em xin chân thành cảm ơn đến cô giáo TS Trần Thanh Huân Trong suốt trình làm tập lớn thầy ln giúp đỡ, hướng dẫn tận tình, truyền đạt kiến thức kinh nghiệm để chúng em hồn thành đề tài Chúng em cố gắng hoàn thiện báo cáo tập lớn tốt tránh thiếu sót Chúng em mong nhận góp ý thầy bạn để báo cáo chúng em hoàn thiện Chúng em xin chân thành cảm ơn! TĨM TẮT BÁO CÁO Chương 1: Mục đích: - Tìm hiểu tổng quan trí tuệ nhân tạo - Giới thiệu trò chơi tám số Kết luận: - Khái niệm, vai trò, kĩ thuật TTNT - Giới thiệu cách chơi trò chơi số, xác định trạng thái đich, cách kiểm tra trạng thái đích Chương 2: Mục đích: - Tìm hiểu thuật tốn tìm kiểm theo chiều rộng (BFS) Tìm hiểu thuật tốn tìm kiếm theo chiều sâu(DFS) Kết luận: Đưa khái niệm, tư tưởng, thuật toán, ưu nhược điểm so sánh thuật tốn Chương 3: Mục đích: Cài đặt chương trình Kết luận: Đưa bước cài đặt chương trình, chương trình hồn chỉnh DANH SÁCH CÁC HÌNH V Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Các trạng thái đích .10 Giải thuật xác định trạng thái đích .12 Giải thuật kiểm tra trạng thái đích .12 Thứ tự thăm đỉnh BFS 14 Thứ tự thăm đỉnh DFS 16 Ví dụ giải thuật DFS 17 Lớp Node thể trạng thái puzzle .20 Code puzzle theo BFS 21 Chạy trương trình theo BFS 24 10 Code puzzle theo DFS .26 11 Chạy chương trình theo DFS .29 CÁC TỪ VIẾT TẮT - AI: Artificial Intelligence TTNT: Trí tuệ nhân tạo BFS: Breadth First Search DFS: Deep First Search MỞ ĐẦU Tên đề tài: “Xây dựng chương trình giải tốn trị chơi số với thuật toán chiều sâu, chiều rộng (C++)” Lý chọn đề tài: Trong ngành khoa học máy tính, giải thuật tìm kiếm thuật tốn lấy đầu vào toán trả kết lời giải cho tốn đó, thường sau cân nhắc loạt lời giải Tập hợp tất lời giải cho tốn gọi khơng gian tìm kiếm Có thuật tốn tìm kiếm “sơ đẳng” khơng có thơng tin, phương pháp đơn giản trực quan, thuật tốn tìm kiếm có thơng tin sử dụng hàm đánh giá heuristic giúp ta giảm đáng kể thời gian cần thiết cho việc tìm kiếm lời giải Mục đích đề tài: Trình bày thuật tốn chúng em tìm hiểu, nêu chế ưu nhược điểm thuật tốn, áp dụng vào thực tế (trị chơi số) Bốc cục đề tài: Nội dung đề tài trình bày chương: Chương 1: Tổng quan Chương 2: Thuật toán chiều rộng, chiều sâu Chương 3: Xây dựng chương trình CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu trí tuệ nhân tạo 1.1.1 Khái niệm Trong khoa học máy tính, trí tuệ nhân tạo hay AI (tiếng anh: Artificial Intelligence), đơi gọi trí thơng minh nhân tạo, trí thơng minh thể máy móc, trái ngược với trí thơng minh tự nhiên người Thơng thường, thuật ngữ "trí tuệ nhân tạo" thường sử dụng để mô tả máy móc (hoặc máy tính) có khả bắt chước chức "nhận thức" mà người thường phải liên kết với tâm trí, "học tập" "giải vấn đề" Trí tuệ nhân tạo lĩnh vực nghiên cứu khoa học máy tính khoa học tính tốn nói chung Có nhiều quan điểm khác Trí tuệ nhân tạo Do có nhiều định nghĩa khác lĩnh vực Sau số định nghĩa: - Sự nghiên cứu lực trí tuệ thơng qua việc sử dụng mơ hình tính tốn (Charniak McDormott, 1985) - Nghệ thuật tạo máy thực chức địi hỏi thơng minh thực người (Kurweil, 1990) - Lĩnh vực nghiên cứu tìm cách giải thích mơ hành vi thơng minh thuật ngữ q trình tính tốn (Schalkoff, 1990) - Sự nghiên cứu tính tốn để nhận thức, lập luận hành động (Winston, 1992) - Một nhánh khoa học máy tính liên quan đến tự động hóa hành vi thơng minh (Luger and Stubblefield, 1993) - TTNT nghiên cứu thiết kế tác nhân thông minh (Poole, Mackworth and Goebel, 1998) Trí tuệ nhân tạo nhánh khoa học công nghệ liên quan đến việc làm cho máy tính có lực trí tuệ cong người, tiêu biểu khả biết suy nghĩ lập luận để giải vấn đề, biết giao tiếp hiểu ngơn ngữ tiếng nói, biết học tự thích nghi,… 1.1.2 Vai trị 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ở đó, ta thiết kế chương trình cho máy tính để giải tốn Sự đời phát triển TTNT 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ố (các mơ hinh logic ngơn ngữ, logic mờ, ), tri thức thủ tục tri thức mơ tả biểu diễn máy Do q trình giải tốn thực 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 chuyên 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 tố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, việc sử dụng mạng cho phép giải toán cỡ lớn phân tán 1.1.3 Các kĩ thuật Các kỹ thuật Trí tuệ nhân tạo bao gồm: - Lý thuyết giải toán suy diễn thơng minh: Lý thuyết giải tốn cho phép viết chương trình giải câu đố, trị chơi thơng qua suy luận mang tính người - Lý thuyết tìm kiếm may rủi: Lý thuyết bao gồm phương pháp kỹ thuật tìm kiếm với hỗ trợ thông tin phụ để giải tốn cách có hiệu - Các ngơn ngữ TTNT: Để xử lý tri thức người ta khơng sử dụng ngơn ngữ lập trình dùng cho xử lý liệu số, mà cần có ngôn ngữ khác Các ngôn ngữ chuyên dụng cho phép lưu trữ xử lý thông tin ký hiệu Một số ngôn ngữ nhiều người biết đến LISP, PROLOG, - Lý thuyết thể tri thức hệ chuyên gia: Trí tuệ nhân tạo khoa học thể sử dụng tri thức Mạng ngữ nghĩa, logic vị từ, Frame,… phương pháp biểu diễn tri thức thông dụng Việc gắn liền cách thể sử dụng tri thức sở hình thành hệ chuyên gia - - - Lý thuyết nhận dạng xử lý tiếng nói: Giai đoạn phát triển đầu TTNT gắn với lý thuyết nhận dạng Ứng dụng phương pháp việc nhận dạng chữ viết, âm thanh,… Người máy: Cuối năm 70, người máy công nghiệp đạt nhiều tiến Người máy có phận cảm nhận chế hoạt động nối ghép theo điều khiển thông minh Khoa học học TTNT tích hợp khoa học người máy Tâm lý học xử lý thông tin : Các kết nghiên cứu tâm lý học giúp Trí tuệ nhân tạo xây dựng chế trả lời theo hành vi, có ý thức; giúp cho việc thực suy diễn mang tính người Ngồi ra, xử lý danh sách, kỹ thuật đệ quy, kỹ thuật quay lui xử lý cú pháp hình thức kỹ thuật tin học truyền thống có liên quan trực tiếp đến TTNT Các loại cơng nghệ tích hợp AI: - - Tự động hóa Máy móc Thị giác máy Xử lý ngôn ngữ tự nhiên Robotics Xe tự lái 10 n B(n) 2, 6, 3, Là MO 2, 6, 3, 5, 6, 4, 5, 6, 5, 6, 6, 7 dừng Hình Ví dụ giải thuật DFS DONG 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, Cha 1 2 Con đích Đường đi: – – – – – – – 2.2.4 Ưu, nhược điểm - Ưu điểm + Nếu tốn có lời giải, phương pháp tìm kiếm theo chiều sâu đảm bảo tìm lời giải + Kỹ thuật tìm kiếm sâu tập trung vào đích, người cảm thấy hài + lịng câu hỏi tập trung vào vấn đề Do cách tìm kỹ thuật này, lời giải sâu, kỹ thuật sâu tiết kiệm thời gian - Nhược điểm 19 + Tìm sâu khai thác khơng gian tốn để tìm lời giải theo thuật tốn đơn giản cách cứng nhắc Trong trình tìm khơng có thơng tin để phát lời giải Nếu nút ban đầu khơng thích hợp khơng dẫn tới đích tốn + Khơng phù hợp với khơng gian tốn lớn, kỹ thuật tìm kiếm sâu khơng đến lời giải khoảng thời gian vừa phải (nếu cố định thời gian) + Không cần quan tâm đến số lượng bước liên quan đến tìm kiếm vàchỉ quan tâm đến chi phí đường dẫn Do giả thuật bị mắtkẹt vịng lặp vơ hạn 2.3 Sự khác thuật toán Đặc điểm Căn Cấu trúc BFS Dựa vertex Rộng ngắn DFS Dựa cạnh Hẹp dài xây dựng Tìm đích Tiêu thụ nhớ Tối ưu Chắc chắn tìm Khơng hiệu Tối ưu cho việc tìm Khơng chắn tìm Hiệu Khơng tối ưu Chi phí khoảng cách ngắn Chi phí cao Chi phí thấp 20 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH Tạo lớp node trạng thái puzzle 21 22 Hình Lớp Node thể trạng thái puzzle 3.1 Tìm kiếm theo chiều rộng (BFS) 23 Hình Code puzzle theo BFS Sau tìm trạng thái đích, biến check nhận giá trị true, lúc chuỗi way lưu lại đường từ trạng thái đầu đến trạng thái đích khỏi vịng lặp 24 25 26 Hình Chạy trương trình theo BFS 27 3.2 Tìm kiếm theo chiều sâu (DFS) 28 Hình 10 Code puzzle theo DFS Sau tìm trạng thái đích, biến check nhận giá trị true, lúc chuỗi way lưu lại đường từ trạng thái đầu đến trạng thái đích khỏi vịng lặp 29 30 31 Hình 11 Chạy chương trình theo DFS 32 KẾT LUẬN Thơng qua việc tìm hiểu nghiên cứu đề tài giúp chúng em có nhìn tồn diện việc ứng dụng trí tuệ nhân tạo vào giải vấn đề thực tế Đây toán cổ điển trí tuệ nhân tạo cho thuật tốn mơ hình hóa liên quan đến tìm kiếm có tri thức bổ sung Đề tài nhiều người nghiên cứu giải quyết, chưa có cách giải tối ưu cho tất không gian trạng thái trị chơi kích thước tăng khơng gian trạng thái tăng lên nhanh Hy vọng nghiên cứu đánh giá chúng em góp phần bổ sung thêm hướng giải cho toán Do thời gian có hạn nên đề tài khơng tránh khỏi sai sót, mong thầy góp ý, đánh giá giúp chúng em hoàn thiện đề tài TÀI LIỆU THAM KHẢO Giải thuật tìm kiếm theo chiều rộng (Breadth First Search) - VietTuts Khóa: Trí tuệ nhân tạo - 20221IT6043001 (haui.edu.vn) Thuật tốn BFS – Tìm kiếm theo chiều rộng đồ thị (tek4.vn) Tìm kiếm theo chiều rộng - wikipedia tiếng Việt Tìm kiếm theo chiều sâu - wikipedia tiếng Việt ĐỐI CHIẾU VIỆT – ANH Trí tuệ nhân tạo: Artificial Intelligence (AI) Tìm kiếm theo chiều rộng: Breadth First Search (BFS) Tìm kiếm theo chiều sâu: Deep First Search (DFS) 33 ... TỔNG QUAN 1.1 Giới thiệu trí tuệ nhân tạo 1.1.1 Khái niệm Trong khoa học máy tính, trí tuệ nhân tạo hay AI (tiếng anh: Artificial Intelligence), gọi trí thơng minh nhân tạo, trí thơng minh thể máy... phải liên kết với tâm trí, "học tập" "giải vấn đề" Trí tuệ nhân tạo lĩnh vực nghiên cứu khoa học máy tính khoa học tính tốn nói chung Có nhiều quan điểm khác Trí tuệ nhân tạo Do có nhiều định... thiện đề tài Bài tập lớn mơn Trí tuệ nhân tạo, chúng em xin gửi lời cảm ơn chân thành đến trường Đại học Công nghiệp Hà Nội, khoa Công nghệ thông tin tạo điều kiện cho chúng em học tập Chúng em