Bài giảng Duyệt đồ thị theo chiều rộng

Danh sách DS được tổ chức theo kiểu hàng đợi (danh sách vào trước - ra trước – FIFO).

- Việc duyệt có tính chất “lan rộng”.

- Đỉnh được duyệt xong ngay sau khi ta đã xét hết tất cả

các đỉnh kề với nó.

- Đỉnh được xét càng sớm thì sớm trở thành duyệt xong.

 

ppt20 trang | Chia sẻ: lalala | Lượt xem: 1892 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Duyệt đồ thị theo chiều rộng, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
6.4. DUYỆT ĐỒ THỊ THEO CHIỀU RỘNGDanh sách DS được tổ chức theo kiểu hàng đợi (danh sách vào trước - ra trước – FIFO).- Việc duyệt có tính chất “lan rộng”. - Đỉnh được duyệt xong ngay sau khi ta đã xét hết tất cả các đỉnh kề với nó. - Đỉnh được xét càng sớm thì sớm trở thành duyệt xong.1VÍ DỤ 6.4Duyệt đồ thị theo chiều rộng:73561011121315121489426.4. DUYỆT ĐỒ THỊ THEO CHIỀU RỘNG (tiếp)Thuật toán 6.3 (Breadth-First Search )1 procedure D_RONG (v) ;2 begin3	 Q :=  ;enqueue v into Q ; { Nạp v vào cuối hàng đợi Q }5	Duyet [v] := true ;6	while Q   do7	 begin dequeue z from Q ; { Loại z ra khỏi đầu hàng đợi Q}36.4. DUYỆT ĐỒ THỊ THEO CHIỀU RỘNG (tiếp)	 9	 Thăm_đỉnh (z) ;10	 for u  DK[z] do11	if ! Duyet [u] then12	 	 begin13	 enqueue u into Q ;14	 Duyet [u] := true 15	 end 16	 end 17 end ;46.4. DUYỆT ĐỒ THỊ THEO CHIỀU RỘNG (tiếp)	18 BEGIN {Chương trình chính }	19	 for v  V do Duyet [v] := false ;	20	 for v  V do 	21	 if ! Duyet [v] then D_RONG (v) ;	22 END .Độ phức tạp: O(n+m).5VÍ DỤ 6.5Đồ thị và quá trình duyệt theo chiều rộng:1258364791066.5. MỘT SỐ ỨNG DỤNG CỦA PHÉP DUYỆT ĐỒ THỊBài toán đường điBài toán tìm các mảng liên thông7BÀI TOÁN ĐƯỜNG ĐICho G = (V, E) là một đồ thị vô hướng và hai đỉnh a, b  V.Bài toán: Tìm đường đi từ đỉnh a đến đỉnh b trên đồ thị G (nếu có).8BÀI TOÁN ĐƯỜNG ĐI (tiếp)1. Thuật toán Warshall đã trả lời: có đường đi từ đỉnh a đến đỉnh b  AS[a, b] = true.2. Dùng phép duyệt đồ thị tìm đường đi (nếu có) từ đỉnh a đến đỉnh b.9BÀI TOÁN ĐƯỜNG ĐI (tiếp)Sau lời gọi thủ tục D_SAU(a) hoặc D_RONG(a) Nếu Duyet[b] = false thì không có đường đi từ đỉnh a đên đỉnh b.Nếu Duyet[b] = true thì b thuộc cùng mảng liên thông với a và có đường đi từ a đến b. Dùng thêm một biến mảng Truoc để khôi phục đường đi, Truoc [u] ghi đỉnh đến trước đỉnh u trên đường duyệt từ a tới u. 10BÀI TOÁN ĐƯỜNG ĐI (tiếp)Sửa dòng lệnh 6 trong thủ tục D_SAU(a)6 if ! Duyet [u] then begin Truoc [u] := v ; D_SAU(u) end ; Sửa các dòng lệnh 11-15 trong thủ tục D_RONG (v):11 if ! Duyet [u] then12 	begin 13	 enqueue u into Q ;14	 Duyet [u] := true ; Truoc [u] := z15	end ; 11BÀI TOÁN ĐƯỜNG ĐI (tiếp)Khôi phục đường đi cần tìm: b  a1 = Truoc[b]  a2 = Truoc[a1]  . . . .  aĐường đi tìm được theo thuật toán duyệt theo chiều rộng là đường đi ngắn nhất từ đỉnh a đến đỉnh b.12VÍ DỤ 6.6Đồ thị và quá trình duyệt theo chiều rộng:Đường đi từ 1  10: 10  9  6  2  11258364791013BÀI TOÁN TÌM CÁC MẢNG LIÊN THÔNGBài toán: Tìm số mảng liên thông p của đồ thị G và xác định xem mỗi mảng liên thông bao gồm những đỉnh nào.12435678914BÀI TOÁN TÌM CÁC MẢNG LIÊN THÔNG (tiếp)Do thủ tục D_SAU(v) hoặc D_RONG(v) duyệt tất cả các đỉnh thuộc cùng mảng liên thông với đỉnh v nên số mảng liên thông p của đồ thị G bằng số lần gọi các thủ tục D_SAU(v) hoặc D_RONG(v).	Dùng thêm biến mảng Mang[v] ghi chỉ số của mảng liên thông chứa v.15BÀI TOÁN TÌM CÁC MẢNG LIÊN THÔNG (tiếp)	Dùng biến p đếm số mảng liên thông và gán chỉ số cho các mảng liên thông tìm được. Khởi tạo: p := 0 ; Thêm lệnh gán: Mang [v] := p ; trong thủ tục Thăm_đỉnh(v). 16BÀI TOÁN TÌM CÁC MẢNG LIÊN THÔNG (tiếp)Sửa lại chương trình chính của thuật toán duyệt:1 BEGIN { Chương trình chính }2 for v  V do Duyet [v] := false ;3	 p := 0 ;4	 for v  V do 5	 if ! Duyet [v] then 6 	 begin p := p + 1 ; 7	 D_SAU (v) ; { D_RONG (v) ; }8 	 end 9 END .17BÀI TOÁN TÌM CÁC MẢNG LIÊN THÔNG (tiếp)Khi kết thúc chương trình: Biến p cho số mảng liên thông. Các giá trị Mang[v] , v  V cho phép liệt kê tất cả các đỉnh trong từng mảng liên thông.18VÍ DỤ 6.7Xét đồ thị:56789124319VÍ DỤ 6.7 (tiếp)Quá trình duyệt và tìm các mảng liên thông:20

File đính kèm:

  • pptDUYET DO THI THEO CHIEU RONG.ppt
Bài giảng liên quan