BÀI GIẢNG GIẢI THUẬT VÀ LẬP TRÌNH - QUY HOẠCH ĐỘNG - LÊ MINH HOÀNG - 9
Số trang: 28
Loại file: pdf
Dung lượng: 2.40 MB
Lượt xem: 11
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Các thuật toán trên đồ thịVì đường pha chỉ là đường đi cơ bản trên đồ thị định hướng nên việc xác định những đỉnh nào có thể đến được từ x ∈ X bằng một đường pha có thể sử dụng các thuật toán tìm kiếm trên đồ thị (BFS hoặc DFS). Những đỉnh và những cạnh được duyệt qua tạo thành một cây pha gốc x Một đường mở (Augmenting Path) là một đường pha đi từ một X_đỉnh chưa ghép tới một Y_đỉnh chưa ghép. Như vậy: Đường đi trực tiếp từ một X_đỉnh chưa ghép tới...
Nội dung trích xuất từ tài liệu:
BÀI GIẢNG GIẢI THUẬT VÀ LẬP TRÌNH - QUY HOẠCH ĐỘNG - LÊ MINH HOÀNG - 9Các thuật toán trên đồ thị 2750_cạnh đã ghép xen kẽ nhau. Vì đường pha chỉ là đường đi cơ bản trên đồ thị định hướng nên việcxác định những đỉnh nào có thể đến được từ x ∈ X bằng một đường pha có thể sử dụng các thuậttoán tìm kiếm trên đồ thị (BFS hoặc DFS). Những đỉnh và những cạnh được duyệt qua tạo thànhmột cây pha gốc xMột đường mở (Augmenting Path) là một đường pha đi từ một X_đỉnh chưa ghép tới một Y_đỉnhchưa ghép. Như vậy:Đường đi trực tiếp từ một X_đỉnh chưa ghép tới một Y_đỉnh chưa ghép qua một 0_cạnh chưa ghépcũng là một đường mở.Dọc trên đường mở, số 0_cạnh chưa ghép nhiều hơn số 0_cạnh đã ghép đúng 1 cạnh.12.3.2. Thuật toán HungariBước 1: Khởi tạo:Một bộ ghép M := ∅Bước 2: Với mọi đỉnh x*∈X, ta tìm cách ghép x* như sau.Bắt đầu từ đỉnh x* chưa ghép, thử tìm đường mở bắt đầu ở x* bằng thuật toán tìm kiếm trên đồ thị(BFS hoặc DFS - thông thường nên dùng BFS để tìm đường qua ít cạnh nhất) có hai khả năng xảyra:Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏ những cạnh đã ghép khỏi M và thêmvào M những cạnh chưa ghép, ta được một bộ ghép mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x*trở thành đã ghép.Hoặc không tìm được đường mở thì do ta sử dụng thuật toán tìm kiếm trên đồ thị nên có thể xácđịnh được hai tập:VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằng một đường pha} VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằng một đường pha}Gọi ∆ là trọng số nhỏ nhất của các cạnh nối giữa một đỉnh thuộc VisitedX với một đỉnh khôngthuộc VisitedY. Dễ thấy ∆ > 0 bởi nếu ∆ = 0 thì tồn tại một 0_cạnh (x, y) với x∈VisitedX vày∉VisitedY. Vì x* đến được x bằng một đường pha và (x, y) là một 0_cạnh nên x* cũng đến được ybằng một đường pha, dẫn tới y ∈ VisitedY, điều này vô lý.Biến đổi đồ thị G như sau: Với ∀x ∈ VisitedX, trừ ∆ vào trọng số những cạnh liên thuộc với x, Với∀ y ∈ VisitedY, cộng ∆ vào trọng số những cạnh liên thuộc với y.Lặp lại thủ tục tìm kiếm trên đồ thị thử tìm đường mở xuất phát ở x* cho tới khi tìm ra đường mở.Bước 3: Sau bước 2 thì mọi X_đỉnh đều được ghép, in kết quả về bộ ghép tìm được.Mô hình cài đặt của thuật toán có thể viết như sau:;Lê Minh Hoàng 276 Chuyên đềfor (x*∈X) do begin repeat xuất phát ở x*>; then ; if Các thuật toán trên đồ thị 277 1 1 1 1 X = X4, không thấy đường * mở VisitedX = {X3, X4} 2 2 2 2 VisitedY = {Y3} 1=∆ 0 2 2 Giá trị xoay ∆ = 1 (=c[3,2]) Trừ trọng số những cạnh 3 +1 3 3 3 -1 liên thuộc với {X3,X4} đi 1 Cộng trọng số những cạnh liên thuộc với {Y3} lên 1 -1 4 4 4 4 9 8 -2 1 +2 1 1 1 X* = X4, không thấy đường mở VisitedX = {X1, X2, X3, X4} 2 2 +2 2 2 -2 ...
Nội dung trích xuất từ tài liệu:
BÀI GIẢNG GIẢI THUẬT VÀ LẬP TRÌNH - QUY HOẠCH ĐỘNG - LÊ MINH HOÀNG - 9Các thuật toán trên đồ thị 2750_cạnh đã ghép xen kẽ nhau. Vì đường pha chỉ là đường đi cơ bản trên đồ thị định hướng nên việcxác định những đỉnh nào có thể đến được từ x ∈ X bằng một đường pha có thể sử dụng các thuậttoán tìm kiếm trên đồ thị (BFS hoặc DFS). Những đỉnh và những cạnh được duyệt qua tạo thànhmột cây pha gốc xMột đường mở (Augmenting Path) là một đường pha đi từ một X_đỉnh chưa ghép tới một Y_đỉnhchưa ghép. Như vậy:Đường đi trực tiếp từ một X_đỉnh chưa ghép tới một Y_đỉnh chưa ghép qua một 0_cạnh chưa ghépcũng là một đường mở.Dọc trên đường mở, số 0_cạnh chưa ghép nhiều hơn số 0_cạnh đã ghép đúng 1 cạnh.12.3.2. Thuật toán HungariBước 1: Khởi tạo:Một bộ ghép M := ∅Bước 2: Với mọi đỉnh x*∈X, ta tìm cách ghép x* như sau.Bắt đầu từ đỉnh x* chưa ghép, thử tìm đường mở bắt đầu ở x* bằng thuật toán tìm kiếm trên đồ thị(BFS hoặc DFS - thông thường nên dùng BFS để tìm đường qua ít cạnh nhất) có hai khả năng xảyra:Hoặc tìm được đường mở thì dọc theo đường mở, ta loại bỏ những cạnh đã ghép khỏi M và thêmvào M những cạnh chưa ghép, ta được một bộ ghép mới nhiều hơn bộ ghép cũ 1 cạnh và đỉnh x*trở thành đã ghép.Hoặc không tìm được đường mở thì do ta sử dụng thuật toán tìm kiếm trên đồ thị nên có thể xácđịnh được hai tập:VisitedX = {Tập những X_đỉnh có thể đến được từ x* bằng một đường pha} VisitedY = {Tập những Y_đỉnh có thể đến được từ x* bằng một đường pha}Gọi ∆ là trọng số nhỏ nhất của các cạnh nối giữa một đỉnh thuộc VisitedX với một đỉnh khôngthuộc VisitedY. Dễ thấy ∆ > 0 bởi nếu ∆ = 0 thì tồn tại một 0_cạnh (x, y) với x∈VisitedX vày∉VisitedY. Vì x* đến được x bằng một đường pha và (x, y) là một 0_cạnh nên x* cũng đến được ybằng một đường pha, dẫn tới y ∈ VisitedY, điều này vô lý.Biến đổi đồ thị G như sau: Với ∀x ∈ VisitedX, trừ ∆ vào trọng số những cạnh liên thuộc với x, Với∀ y ∈ VisitedY, cộng ∆ vào trọng số những cạnh liên thuộc với y.Lặp lại thủ tục tìm kiếm trên đồ thị thử tìm đường mở xuất phát ở x* cho tới khi tìm ra đường mở.Bước 3: Sau bước 2 thì mọi X_đỉnh đều được ghép, in kết quả về bộ ghép tìm được.Mô hình cài đặt của thuật toán có thể viết như sau:;Lê Minh Hoàng 276 Chuyên đềfor (x*∈X) do begin repeat xuất phát ở x*>; then ; if Các thuật toán trên đồ thị 277 1 1 1 1 X = X4, không thấy đường * mở VisitedX = {X3, X4} 2 2 2 2 VisitedY = {Y3} 1=∆ 0 2 2 Giá trị xoay ∆ = 1 (=c[3,2]) Trừ trọng số những cạnh 3 +1 3 3 3 -1 liên thuộc với {X3,X4} đi 1 Cộng trọng số những cạnh liên thuộc với {Y3} lên 1 -1 4 4 4 4 9 8 -2 1 +2 1 1 1 X* = X4, không thấy đường mở VisitedX = {X1, X2, X3, X4} 2 2 +2 2 2 -2 ...
Tìm kiếm theo từ khóa liên quan:
toán kinh tế kiến thức thống kê giáo trình đại học bài giảng chứng khoán đề cương ôn tập câu hỏi trắc nghiệmGợi ý tài liệu liên quan:
-
Giáo trình phân tích một số loại nghiệp vụ mới trong kinh doanh ngân hàng quản lý ngân quỹ p5
7 trang 469 0 0 -
Giáo trình Toán kinh tế: Phần 1 - Trường ĐH Kinh doanh và Công nghệ Hà Nội (năm 2022)
59 trang 298 0 0 -
MARKETING VÀ QUÁ TRÌNH KIỂM TRA THỰC HIỆN MARKETING
6 trang 279 0 0 -
Đề cương học phần Toán kinh tế
32 trang 213 0 0 -
BÀI GIẢNG KINH TẾ CHÍNH TRỊ MÁC - LÊNIN - TS. NGUYỄN VĂN LỊCH - 5
23 trang 185 0 0 -
QUY CHẾ THU THẬP, CẬP NHẬT SỬ DỤNG CƠ SỞ DỮ LIỆU DANH MỤC HÀNG HÓA BIỂU THUẾ
15 trang 182 1 0 -
Giáo trình chứng khoán cổ phiếu và thị trường (Hà Hưng Quốc Ph. D.) - 4
41 trang 177 0 0 -
Giáo trình hướng dẫn phân tích các thao tác cơ bản trong computer management p6
5 trang 169 0 0 -
Quản trị danh mục đầu tư: Cổ phiếu-Chương 1: Mô hình C.A.P.M
63 trang 157 0 0 -
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGÂN HÀNG ĐỀ THI HẾT HỌC PHẦN HỌC PHẦN: TOÁN KINH TẾ
9 trang 156 0 0