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

Lý thuyết đồ thị giải bài tập giải thuật toán prim giải thuật toán kruskal

11 13 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

Nội dung

Lý thuyết đồ thị Giải thuật toán giải thuật Prim Giải thuật toán giải thuật Kruskal Thuật toán Prim Thuật toán Kruskal Tìm theo chiều sâu Tìm theo chiều rộng Cây khung nhỏ nhất Cây khung lớn nhất trọng số

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN – HỆ VB2 ĐÀO TẠO TỪ XA  BÁO CÁO BÀI TẬP TUẦN GVHD Lý Thuyết: Đặng Trần Minh Hậu GDHD Thực hành: Nguyễn Ngọc Thảo LỚP: Lý Thuyết Đồ Thị - CSC00008 NHÓM 32  MỤC LỤC A Bài tập lý thuyết Câu Câu B Bài tập cài đặt A Nội dung tập lý thuyết Cho đồ thị hình bên Câu 1: Áp dụng giải thuật Prim lên đồ thị cho để tìm khung nhỏ bắt đầu đỉnh A a Quá trình thực Các cạnh e = (v,w) ứng viên lần lặp thứ i Lặp Khởi tạo Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Đầu lặp {(A,B),(A,D)} {(A,B),(D,B),(D,H),(D,J)} Cuối lặp Đầu lặp {(D,H),(D,J),(B,C),(B,J)} Cuối lặp Đầu lặp Cuối lặp Đầu lặp Cuối lặp Đầu lặp {(D,H),(D,J),(B,J),(C,E),(C,F)} {(D,H),(D,J),(B,J),(C,E),(F,G),(F,I)} {(D,H),(D,J),(B,J),(F,G),(F,I),(E,G)} Cuối lặp Đầu lặp {(D,H),(D,J),(B,J),(F,I),(G,I),(G,J)} Cuối lặp Đầu lặp {(D,H),(D,J),(B,J),(G,J),(I,J)} Cuối lặp Đầu lặp Cuối lặp V/Y {(D,H),(J,H)} T ( giữ nguyên thứ tự) ∅ {v} Cuối lặp Đầu lặp Y ( giữ nguyên thứ tự) {A} {B,C,D,E,F,G,H,I,J} ∅ {A,D} {B,C,E,F,G,H,I,J} {(A,D)} {A,D} {B,C,E,F,G,H,I,J} {(A,D)} {A,D,B} {C,E,F,G,H,I,J} {(A,D),(D,B)} {A,D,B} {C,E,F,G,H,I,J} {(A,D),(D,B)} {A,D,B,C} {E,F,G,H,I,J} {(A,D),(D,B),(B,C)} {A,D,B,C} {A,D,B,C,F} {A,D,B,C,F} {A,D,B,C,F,E} {A,D,B,C,F,E} {E,F,G,H,I,J} {E,G,H,I,J} {E,G,H,I,J} {G,H,I,J} {G,H,I,J} {A,D,B,C,F,E,G} {H,I,J} {A,D,B,C,F,E,G} {H,I,J} {A,D,B,C,F,E,G,I} {H,J} {A,D,B,C,F,E,G,I} {H,J} {A,D,B,C,F,E,G,I,J} {H} {A,D,B,C,F,E,G,I,J} {H} {A,D,B,C,F,E,G,I,J,H} ∅ {(A,D),(D,B),(B,C)} {(A,D),(D,B),(B,C),(C,F)} {(A,D),(D,B),(B,C),(C,F)} {(A,D),(D,B),(B,C),(C,F),(C,E)} {(A,D),(D,B),(B,C),(C,F),(C,E)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G),(G,I)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G),(G,I)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G),(G,I),(I,J)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G),(G,I),(I,J)} {(A,D),(D,B),(B,C),(C,F),(C,E), (E,G),(G,I),(I,J),(J,H)} Bảng 1.1 Bảng trình chạy thuật tốn Prim b Danh sách cạnh khung tìm trọng số tương ứng - Cây khung tìm : Cây khung {(A,D),(D,B),(B,C),(C,F),(C,E),(E,G),(G,I),(I,J),(J,H)} - Trọng số khung Cạnh Trọng số - AD DB BC CF CE EG 4 2 Bảng 1.2 Bảng cạnh khung trọng số tương ứng GI IJ JH Tổng trọng số = 1+4+4+1+2+2+3+3+2 = 22 Câu 2: Áp dụng giải thuật Kruskal lên đồ thị cho để tìm khung nhỏ a Quá trình thực Danh sách cạnh E xếp kèm theo trọng số tương ứng Danh sách cạnh AD CF CE EG HJ FG GI IJ AB DB GJ BC DH FI DJ BJ E xếp Trọng số Lặp Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần Lặp lần 10 Lặp lần 11 Lặp lần 12 1 2 3 4 Bảng 2.1 Danh sách cạnh E xếp kèm trọng số tương ứng Cạnh e lấy AD CF CE EG HJ FG GI IJ AB DB GJ BC 5 10 T ∪ {e} có tạo thành chu T trình khơng? Khơng {(A,D)} Khơng {(A,D),(C,F)} Không {(A,D),(C,F),(C,E)} Không {(A,D),(C,F),(C,E) ,(E,G)} Không {(A,D),(C,F),(C,E) ,(E,G) ,(H,J)} Có {(A,D),(C,F),(C,E) ,(E,G) ,(H,J)} Khơng {(A,D),(C,F),(C,E) ,(E,G) ,(H,J), (G,I)} Khơng {(A,D),(C,F),(C,E) ,(E,G) ,(H,J), (G,I), (I,J)} Không {(A,D),(C,F),(C,E) ,(E,G) ,(H,J), (G,I), (I,J),(A,B)} Có {(A,D),(C,F),(C,E) ,(E,G) ,(H,J), (G,I), (I,J),(A,B)} Có {(A,D),(C,F),(C,E) ,(E,G) ,(H,J), (G,I), (I,J),(A,B)} Không {(A,D),(C,F),(C,E) ,(E,G) ,(H,J), (G,I), (I,J),(A,B),(B,C)} Bảng 2.2 Bảng q trình chạy thuật tốn Kruskal b Danh sách cạnh khung tìm trọng số tương ứng - Cây khung tìm được: Cây khung {(A,D),(C,F),(C,E),(E,G),(H,J),(G,I),(I,J),(A,B),(B,C)} - Trọng số khung Cạnh Trọng số AD CF CE EG HJ GI 1 2 Bảng 2.3 Bảng cạnh khung trọng số tương ứng - Tổng trọng số = 1+1+2+2+2+3+3+4+4 = 22 IJ AB BC B Nội dung tập cài đặt Cho tập tin input.txt chứa ma trận kề đồ thị vô hướng liên thông Tập tin có định dạng sau: ▪ Dịng chứa số nguyên n (n > 2) thể số đỉnh đồ thị ▪ n dòng chứa n số nguyên dòng, số nguyên cách khoảng trắng Gọi [i, j] giá trị dòng i cột j (i, j = 0,…,n-1) [i, j] = 0: khơng có cạnh nối từ đỉnh i đến đỉnh j, [i, j] = x > 0: có cạnh nối từ i đến j với trọng số x a Cài đặt giải thuật Prim để tìm khung nhỏ đồ thị cho Đỉnh bắt đầu người dùng nhập từ bàn phím Xuất hình thơng tin khung nhỏ tìm - Danh sách cạnh thuộc khung nhỏ theo thứ tự phát giải thuật Quy ước: In cạnh dòng riêng biệt theo mẫu -: , với x y hai đỉnh cạnh z trọng số cạnh - Trọng số khung nhỏ b Cài đặt giải thuật Kruskal để tìm khung nhỏ đồ thị cho Xuất hình thơng tin khung nhỏ theo quy cách tương tự câu a Chương trình sử dụng cấu trúc liệu stack, (priority) queue, vector, list, v.v Không sử dụng thư viện cài đặt khung nhỏ có sẵn Những lưu ý quan trọng - Chương trinh gồm class (Program.cs) nơi gọi file.txt xuất kết class chức - Chương trình hoạt động với trọng số t file txt với t < 10 - Lưu ý copy đường dẫn vào hàm main để chương trình truy xuất vào file (bơi màu vàng hình)* * ví dụ đường dẫn: @"D:\VB KHTN\Lý thuyết đồ thị\Bai Tap\Bài tập tuần 03 - Có tính điểm\N32-21880053,21880147-BTTuan03\SOURCE\testcase2.txt" Hình 1.1 Vị trí đường dẫn - Các class hàm chức gồm có Class/Struct Program EdgeStruct Graph Handler QuickSort Bao gồm/Chức - Hàm Main: Hàm chạy chương trình - Khởi tạo kiểu liệu Edge - Struct AdjacencyMatrix: Kiểu liệu tự định nghĩa cho AdjacencyMatrix - Hàm InputAndStore : Đọc trữ liệu từ file txt - Hàm OutputGraph: In ma trận kề - Hàm Parting: Tìm điểm phân chia quicksort - Hàm Sort: hàm quicksort MinimumSpanningTree Kết làm - Hàm Prim : Hàm chạy thuật toán Prim xuất kết hình - Hàm SortWeightInEdgeList: Hàm gọi Sort tạo List Edge Sort - Hàm checkCycle: Hàm check thêm edge cần check vào có tạo Cycle khơng - Hàm refreshIndex: Refresh tất index có liên quan cycle - Hàm Kruskal: Hàm thuật tốn Kruskal xuất kết hình Hình 2.1 Kết testcase Hình 2.1 Kết testcase ...MỤC LỤC A Bài tập lý thuyết Câu Câu B Bài tập cài đặt A Nội dung tập lý thuyết Cho đồ thị hình bên Câu 1: Áp dụng giải thuật Prim lên đồ thị cho để... IJ AB BC B Nội dung tập cài đặt Cho tập tin input.txt chứa ma trận kề đồ thị vô hướng liên thông Tập tin có định dạng sau: ▪ Dịng chứa số nguyên n (n > 2) thể số đỉnh đồ thị ▪ n dòng chứa n số... Cài đặt giải thuật Prim để tìm khung nhỏ đồ thị cho Đỉnh bắt đầu người dùng nhập từ bàn phím Xuất hình thơng tin khung nhỏ tìm - Danh sách cạnh thuộc khung nhỏ theo thứ tự phát giải thuật Quy

Ngày đăng: 01/09/2022, 16:13

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w