1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và cài đặt chương trình thực hiện các giải thuật tìm kiếm theo chiều sâuvà theo chiều rộng trên đồ thị (đồ thị được lưu trữ bằng ma trận lân cận và bằngdanh sách lân cận)

37 1 0

Đ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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Và Cài Đặt Chương Trình Thực Hiện Các Giải Thuật Tìm Kiếm Theo Chiều Sâu Và Theo Chiều Rộng Trên Đồ Thị (Đồ Thị Được Lưu Trữ Bằng Ma Trận Lân Cận Và Bằng Danh Sách Lân Cận)
Tác giả Nguyễn Huyền Trâm, Đỗ Hương Trà, Lương Xuân Đại, Nguyễn Thị Như Quỳnh, Nguyễn Xuân Sơn, Vũ Lê Thành Vinh
Người hướng dẫn ThS. Lưu Minh Tuấn
Trường học Trường Đại Học Kinh Tế Quốc Dân
Chuyên ngành Khoa Học Máy Tính
Thể loại tiểu luận
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 37
Dung lượng 1,79 MB

Nội dung

TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN VIỆN CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ TIỂU LUẬN MÔN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Đề tài 06:  Nghiên cứu cài đặt chương trình thực giải thuật tìm kiếm theo chiều sâu theo chiều rộng đồ thị (đồ thị lưu trữ ma trận lân cận danh sách lân cận) Sinh viên thực hiện: Nhóm Lớp: Khoa học máy tính 63 Giảng viên giảng dạy: ThS Lưu Minh Tuấn Hà Nội, tháng 10 năm 2022 DANH SÁCH THÀNH VIÊN NHÓM STT Họ tên Nguyễn Huyền Trâm Đỗ Hương Trà Lương Xuân Đại Nguyễn Thị Như Quỳnh Nguyễn Xuân Sơn Vũ Lê Thành Vinh Nhiệm vụ Đánh giá MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG I GIỚI THIỆU ĐỀ TÀI .5 1.1 Phát biểu đề tài 1.2 Đối tượng phạm vi nghiên cứu 1.3 Phương pháp nghiên cứu 1.4 Mục đích nghiên cứu CHƯƠNG II TRÌNH BÀY NỘI DUNG VỀ ĐỀ TÀI NGHIÊN CỨU PHẦN A: NỘI DUNG LÝ THUYẾT .7 2.1 Định nghĩa khái kiệm 2.1.1 Đồ thị phân loại 2.1.2 Các khái niệm đồ thị 2.2 Các phương pháp lưu trữ (biểu diễn) đồ thị .9 2.2.1 Ma trận kề 2.2.2 Danh sách kề 12 2.3 Phát biểu tốn tìm kiếm đồ thị 15 2.4 Các phép tìm kiếm đồ thị 16 2.4.1 Tìm kiếm theo chiều sâu 16 2.4.2 Tìm kiếm theo chiều rộng 21 PHẦN B: CÀI ĐẶT THỬ NGHIỆM CHƯƠNG TRÌNH 25  TÌM KIẾM THEO CHIỀU SÂU .25  TÌM KIẾM THEO CHIỀU RỘNG 30 CHƯƠNG III ĐÁNH GIÁ KẾT QUẢ NGHIÊN CỨU VÀ KẾT LUẬN 33 1.1 So sánh tìm kiếm theo chiều rộng tìm kiếm theo chiều sâu 33 1.2 Kết luận .34 TÀI LIỆU THAM KHẢO .35 LỜI NĨI ĐẦU Cơng nghệ thơng tin giữ vai trị quan trọng quốc gia giới Đây xem tảng vững cho tiến trình phát triển bền vững đất nước Nhờ có Công nghệ thông tin mà hàng loạt ngành khoa học, công nghiệp dịch vụ đời, cho phép giải toán phát triển, giúp cho việc quản lý, xử lý thơng tin nhanh chóng, xác kịp thời Trong hầu hết mạng lưới hệ thống tin học, khai thác, giải xử lý tài liệu tất phải thực thao tác tìm kiếm, xử lý thơng tin Vì vậy, cần  phải đưa giải thuật tìm kiếm tối ưu phục vụ cho việc giải vấn đề  bài tốn Ví dụ tốn tìm kiếm đường từ nơi sinh sống đến tất thành  phố khác đất nước tìm kiếm đồ thị Hiện có nhiều giải thuật tìm kiếm đồ thị khác xây dựng, mức độ hiệu giải thuật cịn phụ thuộc vào tính chất cấu trúc liệu mà tác động đến Trong tiểu luận lần này, nhóm chúng em định chọn đề tài: “Nghiên cứu cài đặt chương trình thực giải thuật tìm kiếm theo chiều sâu theo chiều rộng đồ thị (đồ thị lưu trữ ma trận lân cận danh sách lân cận)” với hy vọng hiểu rõ thuật tốn tìm kiếm đồ thị, giúp cho cơng việc tìm kiếm trở nên thuận tiện hơn, đầy đủ xác Chúng em xin cảm ơn thầy Lê Minh Tuấn tận tình hướng dẫn tạo điều kiện để chúng em mở rộng tầm hiểu biết Mặc dù cố gắng q trình nghiên cứu khơng thể tránh khỏi thiếu sót cần bổ sung Chúng em mong nhận góp ý từ thầy để làm hoàn thiện Chúng em xin chân thành cảm ơn! CHƯƠNG I GIỚI THIỆU ĐỀ TÀI 1.1 Phát biểu đề tài Vấn đề tìm kiếm tổng quan hiểu tìm đối tượng thỏa mãn số địi hỏi Trong 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 cờ vua, cờ caro xem vấn đề tìm kiếm Trong số nhiều nước phép thực hiện,  phải tìm nước dẫn đến kết chiến 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) để đưa đến công thức mà ta cần Xuất phát từ nhu cầu thực tế đó, nhà khoa học máy tính nghiên cứu thuật tốn tìm kiếm Trong tốn lý thuyết đồ thị có vấn đề quan trọng duyệt tất đỉnh đến từ đỉnh xuất phát đó, khơng duyệt lặp lại khơng bỏ sót đỉnh Vì vậy, ta phải xây dựng phép duyệt đỉnh đồ thị theo hệ thống định, phép duyệt gọi thuật tốn tìm kiếm đồ thị Đồ thị lưu trữ dạng ma trận danh lân cận Có hai giải thuật tìm kiếm đồ thị Tìm kiếm theo chiều sâu (Depth First Search - DFS)  Tìm kiếm theo chiều rộng (Breadth First Search BFS). Hai giải thuật có độ phức tạp thuật tốn nhau, có ứng dụng khác cách cài đặt khác 1.2 Đối tượng phạm vi nghiên cứu 1.2.1 Đối tượng: Bài tiểu luận hướng đến người muốn tìm hiểu mơn Cấu trúc liệu giải thuật nói chung, phương pháp lưu trữ đồ thị phép tìm kiếm thị nói riêng 1.2.2 Phạm vi nghiên cứu: Lý thuyết môn học Cấu trúc liệu giải thuật Lý thuyết đồ thị, hai phương pháp lưu trữ: ma trận lân cận, danh sách lân cận; hai phép tìm kiếm đồ thị: tìm kiếm theo chiều sâu, tìm kiếm theo chiều rộng 1.3 Phương pháp nghiên cứu  1.4  Nêu ý tưởng thuật toán  Tìm hiểu giải thuật  Mơ thuật tốn  Phân tích, đánh giá độ phức tạp thuật tốn  Chạy file cài đặt Mục đích nghiên cứu Cùng với phát triển khoa học kỹ thuật, công nghệ thơng tin nói chung mơn Cấu trúc liệu giải thuật nói riêng ngày ứng dụng rộng rãi nhiều lĩnh vực Với sở liệu khổng lồ, việc đưa phương pháp nhằm giải vấn đề tìm kiếm liệu có hiệu nhanh chóng ln nhận quan tâm nhà phát triển phần mềm Thông thường liệu biểu diễn dạng danh sách liên kết nhiên việc truy cập liệu chưa đạt hiệu cao Sử dụng cấu trúc liệu dạng đồ thị giải pháp nhằm tăng hiệu suất thao tác xử lý Chính vậy, mục đích việc nghiên cứu đồ thị phương pháp tìm kiếm đồ thị giúp cho người lưu trữ thông tin cách logic hơn, việc tìm kiếm trở nên nhanh chóng dễ dàng kho liệu khổng lồ CHƯƠNG II TRÌNH BÀY NỘI DUNG VỀ ĐỀ TÀI NGHIÊN CỨU PHẦN A: NỘI DUNG LÝ THUYẾT 2.1 Định nghĩa khái kiệm 2.1.1 Đồ thị phân loại  Đồ thị  là cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh G = (V,E) tức đồ thị G có tập đỉnh V, tập cạnh E Có thể hiểu E tập hợp cặp (u, v) với u v hai đỉnh thuộc V Có thể phân loại đồ thị G theo tính chất tập cạnh sau:  G gọi đơn đồ thị  nếu hai đỉnh (u, v) V có nhiều cạnh E nối từ u tới v  G gọi đa đồ thị  nếu hai đỉnh (u, v) V có nhiều cạnh nối E nối từ u tới v Hiển nhiên đơn đồ thị đa đồ thị, đa đồ thị đơn đồ thị, đa đồ thị có hai (hoặc nhiều hơn) cạnh nối cặp đỉnh  G gọi đồ thị vơ hướng   (undirected graph) cạnh E không định hướng, tức cạnh (u,v) cạnh hai chiều  G gọi đồ thị có hướng  (directed graph) cạnh E có định hướng, tức tồn cạnh nối từ u tới v chưa tồn cạnh nối từ v tới u Trên đồ thị có hướng, cạnh gọi cung  Đồ thị vơ hướng coi đồ thị có hướng, ta coi cạnh (u, v) tương ứng với hai cung (u→v) (v→u) Trong nghiên cứu này, tập trung xét đến đơn đồ thị Hình 2.1 Phân loại đồ thị 2.1.2 Các khái niệm đồ thị  Hai đỉnh lân cận (hay hai đỉnh kề nhau) (adjacent): Nếu (v i,v j) cung thuộc E đỉnh v i và v j gọi lân cận (kề nhau)  Đường đi (path): Đường từ đỉnh v a đến v b trong đồ thị G dãy đỉnh v a, vi1, vi2, ,vin, v b mà (va,vi1), (vi1,vi2), (vi2,vi3), ,(vin,v b) cung tập E(G) Độ dài đường số lượng cung đường  Đường đơn: khơng có cạnh đường qua lần  Chu trình (cycle): Đường đơn mà đỉnh đầu đỉnh cuối trùng  Hai đỉnh liên thơng (connected): Nếu tồn đường từ đỉnh v i tới v j (trong đồ thị vô hướng đồng thời tồn đường từ đỉnh v  j tới vi) Lưu ý: Hai đỉnh kề hai đỉnh liên thông ngược lại hai đỉnh liên thông chưa đỉnh kề  Đồ thị liên thông: Đồ thị G gọi đồ thị liên thông với cặp đỉnh phân biệt (vi, v j) ln tồn đường từ đỉnh v i đến đỉnh v j Hình 2.1.a Đồ thị có hướng, liên thơng Hình 2.1.b Đồ thị vơ hướng, liên thơng Hình 2.1.c Đồ thị có hướng, khơng liên thơng Hình 2.1.d Đồ thị vơ hướng, khơng liên thơng  Đồ thị có trọng số (weighted graph): Ứng với cung đồ thị, ta gắn giá trị để thể thơng tin gọi trọng số cung Đồ thị gọi đồ thị có trọng số 40 Hình 2.1.e Đồ thị có hướng, có trọng số Hình 2.1.f Đồ thị vơ hướng, có trọng số 2.2 Các phương pháp lưu trữ (biểu diễn) đồ thị 2.2.1 Ma trận kề a Khái niệm Xét đồ thị G = {V, E} (có hướng vô hướng) Giả sử tập V gồm n đỉnh xếp theo thứ tự V = {x 1, x2, …, xn} Ma trận kề đồ thị G, kí hiệu A(G), ma trận nhị phân cấp n x n định nghĩa sau: A = (A ij) với: - Bij = có cạnh nối x i tới x j - Bij = { khơng có cạnhnối x i tớix j đỉnhi≡đỉnh j Ví dụ 1: Đồ thị ma trận kề tương đương 1 1 0 0 0 0 0 0 0 gắn đỉnh v đỉnh đầu danh sách xóa v khỏi queue q v=q.front(); q.pop(); cout

Ngày đăng: 14/11/2023, 05:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w