Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
90 KB
Nội dung
11.4 MỘT SỐ ỨNG DỤNG CỦA CÂY BAO TRÙM Kiểm tra tính liên thông đồ thị: Đồ thị liên thông ⇔ có bao trùm Xây dựng hệ sở chu trình Giả sử đồ thị liên thông G = (V, E) với n đỉnh m cạnh 11.4 MỘT SỐ ỨNG DỤNG CỦA CÂY BAO TRÙM (tiếp) Τηựχ ηιệν ηαι βướχ: Ξψ δựνγ χψ βαο τρµ Τ χủα Γ Γιả σử τρονγ θυ〈 τρνη ξψ δựνγ χψ βαο τρµ Τ τα đ βỏ đι χ〈χ χạνη ε1, ε2, , εµ – ν + Ξψ δựνγ ηệ χηυ τρνη χơ σở: Λầν λượτ τηµ ϖ◊ο χψ Τ χ〈χ χ νη ει, κηι đ⌠ σẽ ξυấτ ηιệν χηυ τρνη αι − đψ χũνγ λ◊ χηυ τρνη χủα đồ τηị Γ Σαυ ⌠ λ ι ξο〈 χ νη ει ϖ◊ τηµ χ νη ει+1 ϖ◊ο Χυốι χνγ τα νηậν đượχ χ〈χ χηυ τρνη τươνγ ứνγ λ◊ α1, α2, , αµ – ν + 11.4 MỘT SỐ ỨNG DỤNG CỦA CÂY BAO TRÙM (tiếp) Ηệ χηυ τρνη ν◊ψ độχ λậπ ϖ: ∀ ι ≠ ϕ τη αι χηứα ει νηưνγ κηνγ χηứα εϕ, χ∫ν αϕ χη α εϕ νη νγ κηνγ χη α ει Σố χ〈χ χηυ τρνη ν◊ψ λ◊ µ − ν +1 = µ − ν + π = χ(Γ) = σ χ〈χ χηυ τρνη độχ λậπ χựχ đạι ςậψ ηệ χηυ τρνη τµ đượχ λ◊ µộτ χơ σở χủα χ〈χ χηυ τρνη τρονγ đồ τηị Γ VÍ DỤ 11.5 Ξτ đồ τηị ϖ ηướνγ: b c G= a d e Hình 11.7 Đồ thị cạnh bỏ ν = 5, µ = 8, π = ςậψ χ(Γ) = 4 VÍ DỤ 11.5 (tiếp) Μộτ χψ βαο τρµ Τ χủα Γ λ◊: b c a Τα νηậν đượχ µộτ ηệ χηυ τρνη χeơ σở: d α1 = [a, b, d] α3 = [a, b, c, d] α2 = [a, b, e, d] α4 = [a, b, c, e, d] 11.5 CÂY BAO TRÙM NHỎ NHẤT Β◊ι το〈ν: Χηο τη ϖ η νγ Γ λιν τηνγ ϖ ι τậπ χạνη Ε ϖ◊ η◊µ τρọνγ σố χ : Ε → Ν Τµ χψ βαο τρµ Τ χủα Γ σαο χηο τổνγ τρọνγ σố χủα χ〈χ χạνη χủα Τ đạτ γι〈 τρị νηỏ νηấτ Μ τ σ τηυ τ το〈ν τµ χψ βαο τρµ νη νη τ: - Thuật toán Kruskal - Thuật toán Prim 11.6 THUẬT TOÁN KRUSKAL Τηυ ậτ το〈ν: Χη ν χ νη χ⌠ τρ νγ σ β νη τ, κ ηι υ λ◊ ε1 ϖ◊ đặτ Ω := {ε1} Γιả σử đ χηọν đượχ Ω = {ε1, ε2, , ει} Χη ν ει+1 λ◊ χ νη χ⌠ τρ νγ σ β νη τ τρονγ σ χ〈χ χ νη χ∫ν λ ι τρονγ Ε ∴ Ω σαο χηο {ε1, ε2, , ει, ει+1} κηνγ χηứα χηυ τρνη Β συνγ: Ω := Ω ∪ {ει+1} Λặπ λạι χ〈χ βướχ – χηừνγ ν◊ο χ∫ν χ⌠ τηể 11.6 THUẬT TOÁN KRUSKAL (tiếp) Địνη λ 11.4 : Τ π χ〈χ χ νη Ω τµ χ τηεο τηυ τ το〈ν Κρυσκαλ τ ο νν χψ βαο τρµ νη νη τ χ α τη Γ Τηυ ậτ το〈ν Κρυσκαλ χηι τι ếτ procedure Kruskal ; begin W := ∅ ; Z := E ; 11.6 THUẬT TOÁN KRUSKAL (tiếp) ωηιλε (|Ω| < ν −1) ανδ (Ζ ≠ ∅) δο begin chọn cạnh e có trọng số bé Z ; Z := Z \ {e} ; if W ∪ {e} không chứa chu trình then W := W ∪ {e} end ; 10 if |W| < n -1 then writeln(″Đồ thị không liên thông″) 11 end ; VÍ DỤ 11.6 Đồ τηị χ⌠ τρọνγ σố ϖ◊ χψ βαο τρµ νηỏ νηấτ: 1 1 6 Hình 11.10 Đồ thị trọng số bao trùm nhỏ 10 11.7 THUẬT TOÁN PRIM Τηυ τ το〈ν Πριµ Prim cải tiến thuật toán Kruskal sau: vòng lặp ta chọn cạnh có trọng số bé số cạnh kề với cạnh chọn mà không tạo nên chu trình 11 11.7 THUẬT TOÁN PRIM (tiếp) Τηυ τ το〈ν Πριµ χ γ ι λ◊ πη νγ πη〈π λν χậν γầν νηấτ: βắτ đầυ τừ µộτ đỉ νη ν◊ο đ⌠ α χủα đồ τηị Γ τα νốι ν⌠ ϖớι đỉ νη “γầν” νηấτ, χηẳνγ ηạν β Νγηĩα λ◊, χạνη (α, β) χ χη ν χ⌠ τρọνγ σố β νηấτ Τιếπ τηεο, τρονγ σố χ〈χ χạνη κề ϖớι đỉ νη α ηο χ νη β τα χη ν χ νη χ⌠ τρ νγ σ β νη τ µ◊ κηνγ τ ο νν χηυ τρνη ϖ ι χ νη (α, β) Χạνη ν◊ψ δẫν đếν đỉνη τη βα χ Τιếπ τụχ θυ〈 τρνη ν◊ψ χηο đếν κηι νηậν đượχ χψ γ µ ν νη ϖ◊ ν−1 χ νη ⌠ χηνη λ◊ χψ βαο τρµ νη νη τ 12 11.7 THUẬT TOÁN PRIM (tiếp) προχεδυρε Πριµ ; begin W := {cạnh có trọng số bé }; for i := to n - begin e := cạnh có trọng số bé kề với cạnh W ghép vào W không tạo nên chu trình ; W := W ∪ {e} end end ; 13 CÂY BAO TRÙM NHỎ NHẤT (tiếp) Đị νη λ 11.5 Trong đồ thị vô hướng có trọng số đôi khác nhau, bao trùm nhỏ tồn Chứng minh: Vì vòng lặp có cạnh chọn 14 11.8 CÂY BAO TRÙM LỚN NHẤT Τρονγ χ〈χ τηυậτ το〈ν Κρυσκαλ ϖ◊ Πριµ τα κηνγ ρ◊νγ βυộχ ϖề δấυ χủα τρọνγ σố, νν χ⌠ τηể 〈π δụνγ χηο đồ τηị ϖ ηướνγ ϖớι τρọνγ σố τρν χ〈χ χạνη χ⌠ χνγ δấυ τυỳ 15 11.8 CÂY BAO TRÙM LỚN NHẤT (tiếp) Để τµ χψ βαο τρµ λớν νηấτ τα χ⌠ ηαι χ〈χη: Đổi thành dấu - cho trọng số cạnh áp dụng hai thuật toán trình bày để tìm bao trùm nhỏ Sau đổi dấu + trở lại, ta bao trùm lớn Sửa đổi thuật toán: bước “chọn cạnh có trọng số bé “ thay “chọn cạnh có trọng số lớn “ bước khác giữ nguyên Khi thuật toán kết thúc, ta nhận bao trùm lớn 16 [...]... trọng số bé nhất }; 4 for i := 1 to n - 2 do 5 begin 6 e := cạnh có trọng số bé nhất kề với cạnh trong W và nếu ghép nó vào W thì không tạo nên chu trình ; 7 W := W ∪ {e} 8 end 9 end ; 13 CÂY BAO TRÙM NHỎ NHẤT (tiếp) Đị νη λ 11.5 Trong đồ thị vô hướng có trọng số đôi một khác nhau, cây bao trùm nhỏ nhất tồn tại và duy nhất Chứng minh: Vì trong vòng lặp chỉ có duy nhất một cạnh được chọn 14 11.8 CÂY BAO. .. 11.8 CÂY BAO TRÙM LỚN NHẤT Τρονγ χ〈χ τηυậτ το〈ν Κρυσκαλ ϖ◊ Πριµ τα κηνγ ρ◊νγ βυộχ ϖề δấυ χủα τρọνγ σố, νν χ⌠ τηể 〈π δụνγ χηο đồ τηị ϖ ηướνγ ϖớι τρọνγ σố τρν χ〈χ χạνη χ⌠ χνγ δấυ τυỳ 15 11.8 CÂY BAO TRÙM LỚN NHẤT (tiếp) Để τµ χψ βαο τρµ λớν νηấτ τα χ⌠ ηαι χ〈χη: 1 Đổi thành dấu - cho các trọng số trên các cạnh áp dụng một trong hai thuật toán đã trình bày ở trên để tìm cây bao trùm nhỏ nhất... toán đã trình bày ở trên để tìm cây bao trùm nhỏ nhất Sau đó đổi dấu + trở lại, ta sẽ được cây bao trùm lớn nhất 2 Sửa đổi trong các thuật toán: bước “chọn cạnh có trọng số bé nhất “ được thay bằng “chọn cạnh có trọng số lớn nhất “ còn các bước khác thì giữ nguyên Khi thuật toán kết thúc, ta sẽ nhận được cây bao trùm lớn nhất 16 ...11.7 THUẬT TOÁN PRIM Τηυ τ το〈ν Πριµ Prim đã cải tiến thuật toán Kruskal như sau: ở mỗi vòng lặp ta chọn cạnh có trọng số bé nhất trong số các cạnh kề với các cạnh đã chọn mà không tạo nên chu trình 11 11.7 THUẬT TOÁN PRIM (tiếp) Τηυ τ το〈ν Πριµ χ γ ι λ◊ πη νγ πη〈π λν χậν γầν νηấτ: βắτ đầυ τừ µộτ đỉ νη ν◊ο đ⌠ α χủα đồ τηị Γ τα ...11.4 MỘT SỐ ỨNG DỤNG CỦA CÂY BAO TRÙM (tiếp) Τηựχ ηιệν ηαι βướχ: Ξψ δựνγ χψ βαο τρµ Τ χủα Γ Γιả σử τρονγ θυ〈 τρνη... ει+1 ϖ◊ο Χυốι χνγ τα νηậν đượχ χ〈χ χηυ τρνη τươνγ ứνγ λ◊ α1, α2, , αµ – ν + 11.4 MỘT SỐ ỨNG DỤNG CỦA CÂY BAO TRÙM (tiếp) Ηệ χηυ τρνη ν◊ψ độχ λậπ ϖ: ∀ ι ≠ ϕ τη αι χηứα ει νηưνγ κηνγ χηứα εϕ,... 11.8 CÂY BAO TRÙM LỚN NHẤT (tiếp) Để τµ χψ βαο τρµ λớν νηấτ τα χ⌠ ηαι χ〈χη: Đổi thành dấu - cho trọng số cạnh áp dụng hai thuật toán trình bày để tìm bao trùm nhỏ Sau đổi dấu + trở lại, ta bao