1. Trang chủ
  2. » Giáo án - Bài giảng

Bài toán đường đi ngắn nhất

28 64 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 3,08 MB

Nội dung

TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.1 Giới thiệu tốn Cho đơn đồ thị liên thơng, có trọng số dương G=(V,E) Bài tốn 1: Tìm đường ngắn từ đỉnh u đến đỉnh v đồ thị G Bài tốn 2: Tìm đường ngắn cặp đỉnh đồ thị G B A D Z C 10 BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM E TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Thuật tốn tìm đường ngắn từ đỉnh u đến đỉnh v đồ thị G, nhà toán học người Hà Lan E Dijkstra đề xuất vào năm 1959 Thuật toán thực theo cách gán nhãn đỉnh Thuật ngữ: w(x,y) : trọng số dương cạnh (x,y); w(x,y) ∞ (vô lớn) hai đỉnh không kề d(v) : độ dài đường từ đỉnh xuất phát tới đỉnh v p(v) : đỉnh đứng trước đỉnh v đường từ đỉnh xuất phát đến đỉnh v Nhãn đỉnh v : gồm cặp (d(v), p(v)) T : Tập nút mà đường ngắn xác định BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn 1.2 Thuật toán Dijkstra Gán T = ø; p(v) = NULL với đỉnh v d(a)=0; /* a đỉnh xuất phát Với đỉnh v lại d(v) = ∞; Repeat u =(uT | d(u) bé nhất); T = T ∪ {u}; for ((v đỉnh kề u) vT) if d(v) > d(u) + w(u,v) then d(v) = d(u) + w(u,v) p(v) = u Until (T=V) BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM Website: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Ví dụ 1: Tìm đường ngắn từ A đến đỉnh khác đồ thị G B A D Z C 10 BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM E TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Ví dụ 1: d(D) =∞ = d(A)+w(A,D)=0+∞=∞ d(E) =∞ = d(A)+w(A,E)=0+∞=∞ d(Z) =∞ = d(A)+w(A,Z)=0+∞=∞ d(B) =∞ > d(A)+w(A,B)=0+1=1 d(C) =∞ > d(A)+w(A,C)=0+2=2 (∞,-) (∞,-) B (0,-) A D (∞,-) 10 E A (0,-)* (∞,-) BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM B (∞,-) Z 2 C (1,a) (∞,-) D (∞,-) (2,a) 10 Z 2 C (∞,-) (∞,-) E (∞,-) TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Ví dụ 1: (∞,-) B A (0,-)* D C (2,a) (1,a)* (6,b) (1,a)* 10 (∞,-) E Z A (0,-)* (∞,-) d(C) =2 = d(B)+w(B,C)=1+1=2 d(D) =∞ > d(B)+w(B,D)=1+5=6 d(E) =∞ = d(B)+w(B,E)=0+∞=∞ d(Z) =∞ = d(B)+w(B,Z)=0+∞=∞ BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM B (6,b) D (∞,-) C Z E 10 (12,c) (2,a)* (∞,-) d(D) =6 > d(C)+w(C,D)=2+8=10 d(E) =∞ > d(C)+w(C,E)=2+10=12 d(Z) =∞ = d(C)+w(C,Z)=0+∞=∞ TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật toán Dijkstra Ví dụ 1: (1,a)* B A D 10 (2,a)* Z E (8,d) B (12,d) (0,-)* C (1,a)* (6,b)* A (0,-)*2 C (12,c) d(E) =12 > d(D)+w(D,E)=6+2=8 d(Z) =∞ = d(D)+w(D,Z)=6+6=12 BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM 10 (2,a)* (6,b)* (12,d) D (11,e) Z E (8,d)* d(Z) =12 >d(E)+w(E,Z)=8+3=11 TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Ví dụ 1: (1,a)* B A (0,-)* (6,b)* D C (2,a)* BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM 10 (11,e)* Z E (8,d)* TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Ví dụ 1: Lập bảng để giải tốn tìm đường ngắn Bước Tập T a b d c e z ø (0,-) (,-) (,-) (,-) (,-) (,-) a (0,-)* (1,a) (,-) (2,a) (,-) (,-) ba - (1,a)* (6,b) (2,a) (,-) (,-) cba - - (6,b) (2,a) * (12,c) (,-) dcba - - (6,b)* - (8,d) (12,d) edcba - - - - (8,d)* (11,e) zedcba - - - - - (11,e)* BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TỐN TÌM KIẾM TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE http://www.ispace.edu.vn Website: 1.2 Thuật tốn Dijkstra Ví dụ 1: Nhận xét bảng kết thu 1/ Độ dài đường ngắn từ A đến đỉnh ->B: ->C: ->D: ->E: ->Z: 11 2/ Để vẽ đường ngắn từ A đến đỉnh Z, sử dụng cách ngược từ Z A Cụ thể Z

Ngày đăng: 18/05/2020, 08:44

TỪ KHÓA LIÊN QUAN

w