Tiểu luận môn học THIẾT KẾ VÀ PHÂN TÍCH THUẬT TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT

19 1.1K 0
Tiểu luận môn học THIẾT KẾ VÀ PHÂN TÍCH THUẬT TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT

Đ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

TÌM ĐƯỜNG ĐI NGẮN NHẤT TÌM ĐƯỜNG ĐI NGẮN NHẤT Giáo viên hướng dẫn: TS. Hoàng Quang Nhóm 1: Nguyễn Thanh Nam Trần Văn Dũng Phan Nữ Anh Thư NỘI DUNG TRÌNH BÀY NỘI DUNG TRÌNH BÀY  24.1 Giải thuật Bellman-Ford  24.2 Đường đi ngắn nhất nguồn đơn trong đồ thị có hướng không có chu trình  24.3 Giải thuật Dijkstra  24.4 Giải thuật Bellman-Ford có thể được dùng để giải quyết một trường hợp đặc biệt của " Quy hoạch tuyến tính."  Một số bài toán 24.1 Giải thuật Bellman-Ford Giải thuật Bellman-Ford để giải quyết bài toán đường đi ngắn nhất nguồn đơn trong trường hợp tổng quát mà trong đó các cạnh có thể có trọng số âm. Bài toán: Cho đồ thị có hướng có trọng số G=(V,E) với đỉnh nguồn s và hàm trọng số w : E → R , thuật toán trả về giá trị kiểu Boolean cho biết từ đỉnh nguồn có thể đến được một trình âm hay không. Nếu có thì thuật toán sẽ kết thúc mà không có lời giải. 24.1 Giải thuật Bellman-Ford Thuật toán: Thuật toán sử dụng kỹ thuật giảm bớt(Relaxation) bằng cách ngày càng giảm chiều dài của đường đi ngắn nhất từ đỉnh s đến các đỉnh v thuộc V cho đến khi đạt được giá trị ngắn nhất δ(s, v). Thuật toán trả về giá trị TRUE khi và chỉ khi từ đỉnh gốc không đi đến được chu trình âm. 24.1 Giải thuật Bellman-Ford BELLMAN-FORD(G, w, s) 1 INITIALIZE-SINGLE-SOURCE(G,s) 2 for i ← 1 to |V[G]| - 1 3 do for each edge (u, v) E[G] 4 do RELAX(u, v, w) 5 for each edge (u, v) E[G] 6 do if d[v] > d[u] + w(u, v) 7 then return FALSE 8 return TRUE ∈ ∈ ∈ 24.1 Giải thuật Bellman-Ford ∈ ∈ ∈ 24.1 Giải thuật Bellman-Ford Tính đúng đắn của thuật toán Bellman-Ford Bellman-Ford thực hiện trên đồ thị có trọng số có hướng G(V,E) với nguồn s và hàm trọng số w : E → R. Nếu G chứa chu trình không âm có đường đi từ s thì giải thuật trả về giá trị đúng, chúng ta có d[v] = δ(s, v) với mọi đỉnh v V, đỉnh liền trước là đồ thị con Gπ là một cây đường đi nhỏ nhất có gốc tại s. Nếu G chứa một chu trình âm có đường đi từ s thì thuật toán trả về giá trị False. 24.2 Đường đi ngắn nhất nguồn đơn trong đồ thị có hướng không có chu trình Thuật toán: Bằng việc giảm bớt các cạnh của một đồ thị có hướng không có chu trình(directed acyclic graph) G(V,E) gọi là dag mà các đỉnh sắp xếp tô pô. Chúng ta có thể tính đường đi ngắn nhất từ một nguồn đơn với chi phí Θ(V + E). Đường đi ngắn nhất luôn được xác định trong đồ thị dag 24.2 Đường đi ngắn nhất nguồn đơn trong đồ thị có hướng không có chu trình DAG-SHORTEST-PATHS(G, w, s) 1 topologically sort the vertices of G 2 INITIALIZE-SINGLE-SOURCE(G, s) 3 for each vertex u, taken in topologically sorted order 4 do for each vertex v Adj[u] 5 do RELAX(u, v, w) 24.2 Đường đi ngắn nhất nguồn đơn trong đồ thị có hướng không có chu trình [...]... R[ik-1,ik] R[ik,i1] > 1 Phân tích thời gian chạy thuật toán của bạn Cho một thuật toán hiệu quả để in ra một chuỗi nếu nó tồn tại Phân tích thời gian chạy của thuật toán Một số bài toán  Thuật toán chia tỉ lệ của Gabow cho những đường đi ngắn nhất nguồn đơn  Thuật toán chu trình trọng số trung bình tối thiểu Karp (Karp's minimum mean-weight cycle algorithm )  Bài toán đường ngắn nhất Bitonic ... Giải thuật Dijkstra Thuật toán: Giải thuật Dijkstra xây dựng một tập đỉnh S chứa độ dài đường đi nhắn nhất từ đỉnh nguồn s đã được xác định Giải thuật này dựa trên các bước lặp đỉnh u V – S với ước lượng đường đi ngắn nhất, thêm đỉnh u vào tập S, bỏ qua tất cả các cạnh không chứa u Trong giải thuật sau, chúng ta sử dụng một hàng đợi ưu tiên cực tiểu các đỉnh Q, được gán bởi giá trị d 24.3 Giải thuật. .. Giải thuật Dijkstra 24.3 Giải thuật Dijkstra Tính đúng đắn của giải thuật Dijkstra Giải thuật Dijkstra thực hiện trên một đồ thị có trọng số, có hướng G = (V, E) với hàm trọng số không âm w và nguồn s, hoàn thành với d[u] = δ(s, v) với mọi đỉnh u thuộc V Một số bài toán  Sự cải tiến của Yen đối với thuật toán Bellman-Ford Giả sử rằng chúng ta ra lệnh giảm bớt đỉnh trong một bước chạy của thuật toán. ..24.3 Giải thuật Dijkstra Giải thuật Dijkstra giải quyết những vấn đề về đường đi ngắn nhất nguồn đơn trên một đồ thị có trọng số, có hướng G = (V, E) cho trường hợp mà các cạnh có trọng số không âm Vì vậy, trong phần này chúng ta giả thiết rằng w (u,v) >= 0 cho mỗi cạnh (u,v) E Chúng ta sẽ thấy với một sự thực thi tốt, thời gian hoạt động của giải thuật của giải thuật Dijkstra thấp hơn giải thuật Bellman-Ford... trong một hộp khác hay không  Giả sử rằng cho một tập của n {B1, B2… Bn } hộp d-chiều Mô tả một thuật toán hiệu quả để quyết định một chuỗi dài nhất ( Bi1 , Bi2 , …., Bik ) của những hộp như là Bij lồng trong Bij+1, đối với j = 1,2,…,k-1 Diển tả thời gian chạy của thuật toán với thuật ngữ n và d Một số bài toán Buôn chứng khoán Buôn chứng khoán là việc dùng sự khác nhau trong tỉ lệ trao đổi tiền tệ... đổi được 2.5 Yen Nhật, và 1 Yen Nhật đổi được 0.091 đô la Từ đó, bằng việc chuyển đổi tiền tệ, một thương gia có thể bắt đầu với 1 đô la, và mua 46.4 x 2.5 x 0.0091 = 1.0556 đô la, thì được lãi 5.56 phần trăm Giả sử rằng cho n loại tiền c1,c2,…,cn và một bảng n x n R giá trị chuyển đổi, như vậy một đơn vị tiền tệ ci mua R[i,j] đơn vị của loại tiền cj     Đưa ra một thuật toán hiệu quả để quyết... vào G=(V,E) Sau đó, chúng ta chia tập cạnh E thành Ef U Eb , với Ef = { ( vi,vj) ϵ E và Eb = {(vi, vj) ϵ E : i > j } ( Giả sử rằng G không chứa những vòng lặp tự động, do đó mọi cạnh thuộc trong hoặc Ef hoặc trong Eb ) Định nghĩa Gf = (V,Ef) và Gb = ( V, Eb)  Chứng minh rằng Gf là phi chu trình với loại tôpô { v|v| , v|v|-1 , ,v1 }  Lược đồ này có cải tiến được thời gian chạy tiệm cận của thuật toán. .. Lược đồ này có cải tiến được thời gian chạy tiệm cận của thuật toán Bellman-Ford không ? Một số bài toán Những hộp lồng Một hộp d-chiều với những chiều ( x1,x2, …., x) lồng trong hộp khác với những chiều ( y1,y2… yd) nếu tồn tại một hoán vị trên { 1,2, …, d } như là x(1) < y1, x(2) . > 1.  Phân tích thời gian chạy thuật toán của bạn.  Cho một thuật toán hiệu quả để in ra một chuỗi nếu nó tồn tại. Phân tích thời gian chạy của thuật toán. Một số bài toán  Thuật toán chia. tô pô. Chúng ta có thể tính đường đi ngắn nhất từ một nguồn đơn với chi phí Θ(V + E). Đường đi ngắn nhất luôn được xác định trong đồ thị dag 24.2 Đường đi ngắn nhất nguồn đơn trong đồ thị. TÌM ĐƯỜNG ĐI NGẮN NHẤT TÌM ĐƯỜNG ĐI NGẮN NHẤT Giáo viên hướng dẫn: TS. Hoàng Quang Nhóm 1: Nguyễn Thanh Nam Trần Văn Dũng Phan Nữ Anh Thư NỘI DUNG TRÌNH BÀY NỘI DUNG TRÌNH BÀY  24.1 Giải thuật

Ngày đăng: 11/04/2015, 22:46

Từ khóa liên quan

Mục lục

  • TÌM ĐƯỜNG ĐI NGẮN NHẤT

  • NỘI DUNG TRÌNH BÀY

  • 24.1 Giải thuật Bellman-Ford

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • 24.2 Đường đi ngắn nhất nguồn đơn trong đồ thị có hướng không có chu trình

  • Slide 9

  • Slide 10

  • 24.3 Giải thuật Dijkstra

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Một số bài toán

  • Slide 17

  • Slide 18

  • Slide 19

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

Tài liệu liên quan