Báo cáo chuyên đề học phần nhập môn trí tuệ nhân tạo đề ti bi toán v phương pháp tìm kiếm mù (tìm kiếm theo chiều rộng, chiều sâu)

32 3 0
Báo cáo chuyên đề học phần nhập môn trí tuệ nhân tạo đề ti bi toán v phương pháp tìm kiếm mù (tìm kiếm theo chiều rộng, chiều sâu)

Đ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 CHUN ĐỀ HỌC PHẦN NHẬP MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TI: BI TỐN V PHƯƠNG PHÁP TÌM KIẾM MÙ (TÌM KIẾM THEO CHIỀU RỘNG, CHIỀU SÂU) Sinh viên thực Giảng viên hướng dẫn : Nguyễn Đức Anh - 20810310262 Lê Trần Trung Kiên - 20810310296 : Phạm Đức Hồng Ngành : Công nghệ thông tin Chuyên ngành : Cơng nghệ phần mềm Lớp Khóa : D15CNPM2 : 2020 - 2025 Hà Nội, tháng 12 năm 2022 PHIẾU CHẤM ĐIỂM STT Họ tên sinh viên Nguyễn Đức Anh 20810310262 Lê Trần Trung Kiên 208103101296 Họ tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Nội dung thực Chữ ký Điểm Ghi Chữ ký MỤC LỤC MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Tổng quan mơn trí tuệ nhân tạo .2 1.1 Các vấn đề TTNT 1.2 Giải vấn đề tìm kiếm .2 CHƯƠNG 2: ÁP DỤNG GIẢI QUYẾT BÀI TOÁN Phân tích tốn 2.1 Phát biểu toán 2.2 Mơ hình hóa tốn 2.3 Các bước thực 2.4 So sánh thuật tốn tìm kiếm theo chiều sâu theo chiều rộng .17 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 19 Một số giao diện kết chạy chương trình .19 3.1 Ví dụ toán 19 3.2 Code C++ tìm kiếm chiều rộng Breadth First Search (BFS) 19 3.3 Kết code C++ tìm kiếm chiều rộng Breadth First Search (BFS) 23 3.4 Code C++ tìm kiếm chiều rộng .25 3.5 Kết code C++ tìm kiếm chiều sâu Depth-first Search (DFS)29 KẾT LUẬN 30 MỞ ĐẦU Trí tuệ nhân tạo (AI) lĩnh vực khoa học máy tính nghiên cứu việc thiết kế tác nhân thông minh Ứng dụng trí tuệ nhân tạo đa dạng phong phú, nhiều hệ thống thông minh đời hệ thống chuyên gia, hệ thống điều khiển tự động, hệ thống nhận dạng Yếu tố thông minh, linh hoạt tiện lợi Một nghiên cứu đề xuất thuật tốn tìm kiếm tối ưu để giải vấn đề sớm tốt Thuật tốn tìm kiếm thuật toán lấy vấn đề làm đầu vào trả kết giải pháp cho vấn đề Hầu hết thuật tốn mà nhà khoa học máy tính nghiên cứu để giải vấn đề thuật tốn tìm kiếm Tập hợp tất giải pháp khả thi cho vấn đề gọi khơng gian tìm kiếm Thuật tốn tìm kiếm thơ bạo tìm kiếm sử dụng phương pháp đơn giản trực quan Đồng thời, thuật tốn tìm kiếm thơng tin sử dụng hàm heuristic để áp dụng kiến thức cấu trúc khơng gian tìm kiếm nhằm giảm thời gian tìm kiếm cần thiết Để hiểu chất thuật tốn tìm kiếm, phải nắm vững hai chiến lược tìm kiếm bản: tìm kiếm theo chiều sâu tìm kiếm trước tiên Cụ thể giới thiệu cách cài đặt thuật tốn tìm kiếm theo chiều sâu theo chiều rộng ngôn ngữ C ++ Mặc dù có nhiều cố gắng q trình thực tốn khơng tránh khỏi sai sót, mong hướng dẫn bạn đề xuất Em xin chân thành cảm ơn thầy Phạm Đức Hồng tận tình hướng dẫn tạo điều kiện tốt trình học tập hoàn thành luận văn CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Tổng quan mơn trí tuệ nhân tạo 1.1 Các vấn đề TTNT Trí tuệ nhân tạo lĩnh vực cơng nghệ thông tin (CNTT) ngành khoa học nghiên cứu phương thức để máy tính có khả tư suy nghĩ người Ngồi trí tuệ nhân tạo ngành nghiên cứu phương thức để giúp máy tính làm cơng việc mà thời điểm cơng việc mà người chưa làm hay khơng làm Trí tuệ nhân tạo chia thành hai trường phái tư duy: TTNT truyền thống Trí tuệ tính tốn Năm 1943, Warren McCulioch Walter Pitts bắt đầu nghiên cứu ba tảng lý thuyết bản: triết học chức nơ-ron; mệnh đề logic phân tích; lý thuyết dự đốn Turing Thuật ngữ "trí tuệ nhân tạo" (AI) John McCarthy đặt vào mùa hè năm 1956 hội thảo chủ đề Trong năm 1990 đầu kỷ 21, trí tuệ nhân tạo đạt thành tựu to lớn trí tuệ nhân tạo sử dụng nhiều ứng dụng công nghiệp logic, khai thác liệu chẩn đoán y tế Thành công phụ thuộc vào nhiều yếu tố: tăng khả tính tốn máy tính, tập trung vào giải vấn đề phụ cụ thể, xây dựng mối quan hệ AI lĩnh vực khác giải vấn đề tương tự, việc chuyển giao nhà nghiên cứu sang phương pháp toán học đáng tin cậy tiêu chuẩn Khoa học xác 1.2 Giải vấn đề tìm kiếm Vấn đề tìm kiếm cách tổng quan hiểu tìm đối tượng thỏa mãn số địi hỏi đó, tập hợp rộng lớn đối tượng kể nhiều vấn đề mà việc giải quy vấn đề tìm kiếm Các trị chơi chẳng hạn cờ vua, cờ caro xem vấn đề tìm kiếm Trong số nhiều nước phép thực phải tìm nhiều nước dẫn đến tình kết mà ta người thắng Chứng minh định lý xem vấn đề tìm kiếm Cho tập tiên đề luật suy diễn trường hợp mục tiêu ta tìm luật chứng minh (một dãy luật suy diễn áp dụng) để đưa đến công thức mà ta cần chứng minh Trong lĩnh vực nghiên cứu TTNT thường xuyên phải đối đầu với vấn đề tìm kiếm Đặc biệt lập kế hoạch học máy tìm kiếm có vai trị quan Trong phần nghiên cứu ký thuật tìm kiếm áp dụng để giải vấn đề áp dụng rộng rãi lĩnh vực khác TTNT Cụ thể nghiên cứu chiến lược tìm kiếm mù, sâu vào chiến lược tìm kiếm theo bề rộng (breadth-first search) tìm kiếm theo độ sâu (depth-first search) Trong tìm kiếm theo bề rộng, bước ta chọn trạng thái để phát triển trạng thái sinh trước trạng thái chờ phát triển khác Còn tìm kiếm theo độ sâu, trạng thái chọn để phát triển trạng thái sinh sau số trạng thái chờ phát triển Chúng ta sử dụng danh sách L để lưu trạng thái sinh chờ phát triển Mục tiêu tìm kiếm khơng gian trạng thái tìm đường từ trạng thái ban đầu tới trạng thái đích, ta cần lưu lại vết đường Ta sử dụng hàm father để lưu lại cha đỉnh đường đi, father(v) = u cha đỉnh v u CHƯƠNG 2: ÁP DỤNG GIẢI QUYẾT BI TOÁN Phân tích tốn 2.1 Phát biểu tốn a Tìm kiếm theo chiều sâu Tìm kiếm theo chiều sâu thuật tốn duyệt tìm kiếm một đồ thị Thuật toán khởi đầu gốc (hoặc chọn đỉnh coi gốc) phát triển xa theo nhánh Thuật tốn tìm kiếm theo chiều sâu ứng dụng cho nhiều giải thuật như: xác định thành phần liên thông đồ thị; kiểm tra đồ thị có đồ thị phẳng hay khơng,… b Tìm kiếm theo chiều rộng Tìm kiếm theo chiều rộng thuật tốn tìm kiếm tất nút mức khơng gian tốn trước chuyển sang nút mức Tìm kiếm theo chiều rộng chủ yếu sử dụng để tìm đường ngắn theo số cạnh hai đỉnh đồ thị, tìm tất đỉnh thành phần liên thơng, 2.2 Mơ hình hóa tốn Hình 2.2 Bài tốn tím kiếm 2.2.1 Tìm kiếm theo chiều sâu Với liệu cho hình 2.2, thuật tốn tìm kiếm theo chiều sâu bắt đầu thăm đỉnh A, theo cạnh trái, tiếp tục tìm kiếm xong trái chuyển sang tìm kiếm phải Thứ tự duyệt đỉnh là: A, B, D, F, C, G, E Quá trình duyệt đỉnh diễn sau: Sau thăm đỉnh A, B chưa thăm nên theo cạnh AB ta thăm B, tiếp tục theo cạnh BD tới viếng thăm D Từ D tiếp tục xa hơn, ta quay lại B Từ B, theo BF đến thăm F, từ F xa nên ta quay lại B Tại B, tất khả từ B xem xét nên ta quay lại A Từ A, ta theo cạnh AC tới thăm C, tiếp tục theo cạnh CG tới thăm G Từ G xa nên ta quay lại C Tại C, tất khả từ C xét nên ta lại quay A theo cạnh AE tới thăm đỉnh E Như tất đỉnh đồ thị duyệt đến 2.2.2 Tìm kiếm theo chiều rộng Cũng với liệu hình 2.2, thuật tốn tìm kiếm theo chiều rộng bắt đầu thăm đỉnh A, theo đỉnh con, tìm kiếm đỉnh phía Thứ tự duyệt đỉnh là: A, B, C, E, D, F, G Quá trình duyệt đỉnh diễn sau: Sau thăm đỉnh A, ta thăm hết đỉnh A B, C, E theo cạnh tương ứng Sau duyệt xong đỉnh A, ta duyệt đỉnh B D, F duyệt đỉnh C G Vì E khơng có đỉnh nên quay duyệt đỉnh đỉnh B, C Các đỉnh D, F, G khơng có đỉnh nên thuật toán kết thúc, tất đỉnh đồ thị duyệt đến 2.2.3 Một số toán liên quan a) Trạng thái xa Trò chơi 8-puzzle gồm khay hình vng với mảnh vng đặt lên vng Ơ vng cịn lại rỗng Mỗi mảnh có ghi số Một mảnh kề với rỗng đẩy sang rỗng Một ván chơi bao gồm trạng thái bắt đầu trạng thái kết thúc Người chơi phải biến đổi đến trạng thái kết thúc cách di chuyển mảnh vng Bài tốn 8-puzzle u cầu phải biến đổi với số bước Hình 2.2.3.1: Trị chơi 8-puzzle Nhưng toán (bài toán trạng thái xa nhất), bạn cho trạng thái bắt đầu Hãy tìm trạng thái xa (theo nghĩa số bước đi) tất trạng thái đến Hướng dẫn: Đây tốn loang Nhưng khó khăn chỗ lưu vết, có đến 9!=362880 trạng thái => khơng đủ nhớ Có thể khắc phục cách dùng kỹ thuật băm Cách làm sau: cho tương ứng (1-1) trạng thái với số nguyên khoảng 1->362880, sau dùng bảng băm với kích thước cho đủ nhớ Tiếp ánh xạ trạng thái vào khe bảng băm (có thể dùng phép đồng dư) để lưu b) Mã bàn cờ 5x5 Có quân mã trắng đen bàn cờ 5x5 Có 12 qn loại có rỗng Tại thời điểm, quân mã di chuyển đến ô rỗng (cách quân mã luật cờ vua thông thường) Cho trạng thái ban đầu bàn cờ, xác định số bước để đạt trạng thái sau: Hình 2.2.3.2 Bàn cờ 5x5 2.3 Các bước thực 2.3.1 Tìm kiếm theo chiều sâu Trong tìm kiếm theo chiều sâu, trạng thái (đỉnh nút), chọn trạng thái (trong tập hợp trạng thái chuyển đổi từ trạng thái tại) làm trạng thái tại, trạng thái trở thành trạng thái đích Trong trường hợp chuyển trạng thái sang trạng thái tiếp theo, dò ngược lại trạng thái trước trạng thái (trạng thái trở thành trạng thái tại) để chọn cách khác Nếu trạng Kết đường cây: c) Ưu nhược điểm:  Ưu điểm: Kỹ thuật tìm kiếm rộng kỹ thuật vét cạn không gian trạng thái tốn tìm lời giải có Đường tìm qua đỉnh  Nhược điểm: Tìm kiếm lời giải theo thuật tốn định trước, tìm kiếm cách máy móc; khơng có thơng tin hỗ trợ cho q trình tìm kiếm, khơng nhận lời giải  Khơng phù hợp với khơng gian tốn kích thước lớn Đối với loại toán này, phương pháp tìm rộng đối mặt với nhu cầu: Cần nhiều nhớ theo số nút cần lưu trữ Cần nhiều công sức xử lý nút, nhánh dài, số nút tăng Dễ thực thao tác khơng thích hợp, thừa, đưa đến việc tăng đáng kể số nút phải xử lý Không hiệu lời giải sâu Phương pháp không phù hợp cho trường hợp có nhiều đường dẫn đến kết sâu Giao tiếp với người dùng không thân thiện Do duyệt qua tất nút, việc tìm kiếm khơng tập trung vào chủ đề 2.4 So sánh thuật tốn tìm kiếm theo chiều sâu theo chiều rộng Tính hiệu Chiều sâu Chiều rộng Hiệu lời giải nằm Hiệu lời giải nằm sâu tìm kiếm có gần gốc tìm kiếm phương án chọn hướng Hiệu chiến lược xác Hiệu phụ thuộc vào độ sâu chiến lược phụ thuộc vào lời giải Lời giải xa phương án chọn hướng gốc hiệu chiến Phương án hiệu lược giảm Thuận lợi hiệu chiến muốn tìm nhiều lời lược giảm Thuận lợi giải muốn tìm lời giải Lượng nhớ sử Chỉ lưu lại trạng thái Phải lưu toàn trạng dụng để lưu trữ chưa xét đến thái Vét cạn toàn Vét cạn toàn Phương án chọn hướng Vét cạn toàn trạng thái Trường hợp xấu Trường hợp tốt tuyệt đối xác Lời giải xác định cách trực tiếp Tìm kiếm chiều sâu tìm kiếm chiều rộng phương pháp tìm kiếm có hệ thống chắn tìm lời giải Tuy nhiên, chất vét cạn nên với tốn có khơng gian lớn ta khơng thể dùng hai chiến lược Hơn nữa, hai chiến lược có tính chất "mù qng" chúng khơng ý đến thông tin (tri thức) trạng thái thời thơng tin đích cần đạt tới mối quan hệ chúng CHƯƠNG 3: CI ĐẶT CHƯƠNG TRÌNH Một số giao diện kết chạy chương trình 3.1 Ví dụ tốn Hình 3.1.1 Ví dụ tốn 3.2 Code C++ tìm kiếm chiều rộng Breadth First Search (BFS) #include #include #include using namespace std; using namespace std; //dinh nghia cau truc thi #define MAX 100 struct Graph{ int n; //so dinh cua thi int A[MAX][MAX]; }; //nhap thi tu file F:\Temp\graph1_ke.txt bool Nhap(Graph &g){ //mo file ifstream fi("F:\\graph1_ke.txt"); //doc du lieu tu file if (fi.is_open()==true){ fi >> g.n; //so dinh for (int i=0; i g.A[i][j]; //dong file fi.close(); return true; } else{ cout

Ngày đăng: 11/06/2023, 10:04

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

Tài liệu liên quan