Tìm hiểu và mô phỏng vềhai thuật toán prim và ford bellman

14 55 1
Tìm hiểu và mô phỏng vềhai thuật toán prim và ford bellman

Đ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 SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN MƠN : LÍ THUYẾT ĐỒ THỊ VÀ ỨNG DỤNG BÁO CÁO ĐỀ TÀI SỐ 03 HỌC PHẦN: COMP170101 – LÍ THUYẾT ĐỒ THỊ VÀ ỨNG DỤNG Tên nhóm : I_kb_4 Mã lớp học phần : COMP170101 Giảng viên hướng dẫn : ThS Lương Trần Ngọc Khiết Thành phố Hồ Chí Minh, ngày 29 tháng 11 năm 2021 TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA CƠNG NGHỆ THƠNG TIN MƠN : LÍ THUYẾT ĐỒ THỊ VÀ ỨNG DỤNG BÁO CÁO ĐỀ TÀI SỐ 03 Thành viên nhóm thực : - Phạm Đức Quý – 46.01.104.149 - Lê Minh Triệu – 46.01.104.198 - Phan Ngọc Tánh – 46.01.104.163 - Phạm Nguyễn Hoàng Kha – 46.01.104.075 Thành phố Hồ Chí Minh, ngày 29 tháng 11 năm 2021 LỜI CẢM ƠN Lời đầu tiên, nhóm em xin gửi lời cảm ơn chân thành đến Thầy Lương Trần Ngọc Khiết Trong trình học tập tìm hiểu mơn Lí thuyết đồ thị ứng dụng, phần thực hành, chúng em nhận quan tâm giúp đỡ, hướng dẫn tận tình, tâm huyết Thầy Thầy giúp chúng em tích lũy thêm nhiều kiến thức kiến thức chắn giúp chúng em hiểu thuật toán, đường đi, thú vị thuật tốn Thơng qua báo cáo này, chúng em xin trình bày mà học tìm hiểu hai thuật tốn Prim Ford-Bellman Có lẽ kiến thức vơ hạn mà tiếp nhận kiến thức thân người tồn hạn chế định Do đó, q trình hồn thành báo cáo, chắn khơng tránh khỏi thiếu sót Bản thân chúng em mong nhận lời góp ý đến từ Thầy để tiểu luận chúng em hoàn thiện cách tốt Kính chúc Thầy sức khỏe, bình an sống, nhiệt huyết thành công bước đường sư phạm TÓM TẮT BÀI BÁO CÁO Vấn đề đặt ta muốn tạo khung nhỏ tìm đường ngắn từ đỉnh tới tất đỉnh đồ thị có trọng số âm thuật tốn Prim phục vụ cho việc tạo khung nhỏ thuật tốn Ford-Bellman tìm đường ngắn tới tất đỉnh đồ thị có trọng số âm Việc thực thuật toán giúp ta dễ dàng giải vấn đề liên quan đến việc tìm khung nhỏ tìm đường ngắn qua việc mơ tả q trình thực thuật tốn Hơn nữa, qua việc ta tìm hiểu code hai thuật toán giúp ta hiểu biết trình thực hai thuật tốn LÍ DO BÀI BÁO CÁO Cách từ lâu, nhiều nước giới, việc mơ thuật tốn sử dụng để phục vụ cho công việc giảng dạy Không cịn cho người học biết chi tiết bước hoạt động thuật toán với cấu trúc liệu kèm thông qua việc mô tả đồ hoạ Lí thuyết đồ thị ứng dụng thuật tốn lĩnh vực vơ rộng lớn phức tạp Việc hiểu cài đặt tốt thuật tốn địi hỏi thời gian cơng sức lớn Các thuật tốn khó hình dung, việc tổ chức liệu phức tạp Chính thế, báo cáo này, chúng em sâu tìm hiểu mơ hai thuật tốn Prim Ford-Bellman MỤC ĐÍCH BÀI BÁO CÁO Để hiểu rõ hai thuật tốn Prim Ford-Bellman q trình thực hai thực hai thuật toán NỘI DUNG BÀI BÁO CÁO Hai thuật toán Prim Ford-Bellman CHƯƠNG : TỔNG QUAN VỀ ĐỀ TÀI Minh hoạ trực quan giao diện đồ hoạ thuật tốn lí thuyết đồ thị bên : a Prim Prim.cpp b Ford-Bellman Ford.cpp CHƯƠNG : CƠ SỞ LÍ THUYẾT 2.1 : Thuật toán Prim 2.1.1 : Bài toán khung Khái niệm khung : Cho đồ thị G = (V,E) vô hướng, liên thông T = (V,E’) đồ thị G (E’  E) Khi đó, T gọi khung ( bao trùm ) T liên thông chu trình đơn Cho G = (V, E, w) đồ thị vơ hướng liên thơng có trọng số, với khung T G, ta gọi trọng số T tổng trọng số cạnh T Yêu cầu: Trong số khung G, khung có trọng số nhỏ Cây khung gọi khung nhỏ đồ thị, tốn gọi toán xây dựng khung nhỏ Dưới ta xét thuật toán Prim để giải toán 2.1.2 : Thuật toán Prim Trong khoa học máy tính, thuật tốn Prim gọi thuật tốn tham lam để tìm bao trùm nhỏ đồ thị vơ hướng có trọng số liên thơng Nghĩa tìm tập hợp cạnh đồ thị tạo thành chứa tất đỉnh, cho tổng trọng số cạnh nhỏ Đơn đồ thị vô hướng G = (V, E,w) Xét T G đỉnh v, gọi khoảng cách từ v tới T trọng số nhỏ số cạnh nối v với đỉnh T: d[v] = min{w[u, v]  uT} Ban đầu khởi tạo T gồm có đỉnh {1} Sau chọn số đỉnh T đỉnh gần T nhất, kết nạp đỉnh vào T đồng thời kết nạp cạnh tạo khoảng cách gần Cứ làm khi: Hoặc kết nạp tất n đỉnh ta có T khung nhỏ Hoặc chưa kết nạp hết n đỉnh đỉnh T có khoảng cách tới T + Khi đồ thị cho không liên thông, ta thông báo việc tìm khung thất bại 2.2 : Thuật tốn Ford-Bellman 2.2.1 : Bài tốn tìm đường ngắn đồ thị có trọng số Cho đồ thị có trọng số G = (V, E,w) đồ thị khơng có chu trình âm Yêu cầu: Hãy tìm đường ngắn (tổng trọng số qua đỉnh đường đi) từ đỉnh xuất phát s  V đến đỉnh đích t  V Dưới ta xét thuật toán Ford-Bellman để giải toán 2.2.2 : Thuật tốn Ford-Bellman Thuật tốn Ford-Bellman phát biểu đơn giản: Với đỉnh xuất phát S Gọi d(v) khoảng cách từ S tới v Ban đầu d(S) khởi gán d(v) với v  S khởi gán + Sau ta tối ưu hoá dần d(v) sau: Xét cặp đỉnh u, v đồ thị, có cặp đỉnh u, v mà d(v) > d(u) + c(u, v) ta đặt lại d(v) := d(u) + c(u, v) Tức độ dài đường từ S tới v lại lớn tổng độ dài đường từ S tới u cộng với chi phí từ u tới v ta huỷ bỏ đường từ S tới v có coi đường từ S tới v đường từ S tới u sau tiếp từ u tới v Chú ý ta đặt c[u, v] = +  (u, v) khơng cung Thuật tốn kết thúc tối ưu thêm nhãn d[v] CHƯƠNG : CHƯƠNG TRÌNH CỦA HAI THUẬT TỐN 3.1 : Thuật tốn Prim Cho G = (V, E) đồ thị liên thơng có trọng số gồm n đỉnh Bước 1: Chọn tùy ý đỉnh v ∈ V khởi tạo: Y = {v} T = ∅ Bước 2: Trong số cạnh e = (v, w), v ∈ Y w ∈ V\Y, ta chọn cạnh có độ dài nhỏ Bước 3: Gán Y = Y ∪ {w} T = T ∪ {e} Bước 4: Nếu T đủ n – phần tử dừng, ngược lại làm tiếp bước T khung nhỏ Hàm đọc liệu lên input Chạy thuật tốn Prim Tính tổng trọng số Màn hình chạy kết 3.2 : Thuật toán Ford-Bellman Bước : Khởi tạo đồ thị Bước : Cập nhập cạnh với n (n node) vòng lặp cho đường từ source node đến node bị lặp lớn Bước3 : Kiểm tra xem đồ thị có chu trình âm hay khơng Phần chạy thuật tốn Ford-Bellman Đây phần tạo đồ thị Màn hình chạy kết Link báo cáo: : https://drive.google.com/drive/folders/1PLKPmyT7X1m4D1UBvqasbdK3n0qwyHL7? usp=sharing Tài liệu tham khảo: https://www.javatpoint.com/prim-algorithm? fbclid=IwAR11_YYPzRSqNb9l8Tnjiaf0qnMFir62Gu9j96XyVhTmjfHIEYrR_WkE0Y https://codereview.stackexchange.com/questions/188949/bellman-ford-algorithmimplementation code prim: code ford bellman: CHƯƠNG : THÀNH VIÊN NHĨM, BẢNG PHÂN BỔ CƠNG VIỆC VÀ ĐÁNH GIÁ - Phạm Đức Quý – 46.01.104.149 - Lê Minh Triệu – 46.01.104.198 - Phan Ngọc Tánh – 46.01.104.163 - Phạm Nguyễn Hoàng Kha – 46.01.104.075 ... sâu tìm hiểu mơ hai thuật tốn Prim Ford- Bellman MỤC ĐÍCH BÀI BÁO CÁO Để hiểu rõ hai thuật tốn Prim Ford- Bellman q trình thực hai thực hai thuật toán NỘI DUNG BÀI BÁO CÁO Hai thuật toán Prim Ford- Bellman. .. xét thuật toán Prim để giải toán 2.1.2 : Thuật tốn Prim Trong khoa học máy tính, thuật toán Prim gọi thuật toán tham lam để tìm bao trùm nhỏ đồ thị vơ hướng có trọng số liên thơng Nghĩa tìm tập... đỉnh xuất phát s  V đến đỉnh đích t  V Dưới ta xét thuật toán Ford- Bellman để giải toán 2.2.2 : Thuật toán Ford- Bellman Thuật tốn Ford- Bellman phát biểu đơn giản: Với đỉnh xuất phát S Gọi d(v)

Ngày đăng: 21/04/2022, 09:27

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan