Thuật toán thời gian tuyến tính để tìm đường đi ngắn nhất từ đến


8

Định nghĩa. Cho một đồ thị và hai đỉnh và , các vấn đề -shortest-con đường được tìm đường dẫn đơn giản ngắn nhất giữa và trong .s t k k s t GG= =(V,E)StkkStG

Lưu ý rằng độ dài của các đường dẫn này không nhất thiết phải bằng nhau và các đỉnh và nhất thiết phải được kết nối . Tôi đã tự hỏi nếu có một thuật toán thời gian tuyến tính (về và ) cho vấn đề này.t k n mStknm

Tôi đã xem xét một vài bài báo trong tài liệu, chẳng hạn như " Một thuật toán mới về thuật toán đường dẫn không vòng lặp của Yen " nhưng độ phức tạp thời gian thực sự rất cao . Ngoài ra, bài báo khác của Epstein " Tìm đường đi k ngắn nhất " trình bày thuật toán tìm đường đi ngắn nhất không nhất thiết là đường dẫn đơn giản với thời gian chạy .O(Kn(m+nlogn))O ( n + m + k )kO(n+m+k)

Có một thuật toán thời gian tuyến tính cho bài toán đường dẫn ngắn nhất -simple không?k


@DW Thuật toán của Eppstein tìm thấy các đường dẫn không nhất thiết phải đơn giản. OP muốn một thuật toán tương tự, có thể trong cùng thời gian chạy, tìm ra đường dẫn đơn giản ngắn nhất . Thuật toán xếp hạng của Yen là quá chậm cho điều đó. k
Yuval Filmus

Câu trả lời:


7

Trước hết, câu trả lời áp dụng ở đây đã được Raphael đưa ra trong các bình luận cho câu hỏi: " Cho rằng chúng ta thậm chí không biết cách tìm một con đường ngắn nhất đơn giản trong thời gian tuyến tính, tôi nghi ngờ về điều đó. " do đó, tôi sẽ cho rằng bạn quan tâm đến việc biết về các thuật toán có sẵn tốt nhất trong tình trạng hiện đại. Sau đây, tôi mô tả trường hợp xấu nhất bị ràng buộc (theo hiểu biết tốt nhất của tôi) nhưng cũng là một thuật toán có thể chạy trong thời gian tuyến tính trong một số trường hợp cụ thể.

Nhưng trước khi mô tả những phát triển mới nhất trong tình trạng của nghệ thuật, tôi muốn nhấn mạnh tầm quan trọng của những con đường đơn giản trong vấn đề cụ thể này. Trên thực tế, nhiều người bỏ qua tầm quan trọng của yêu cầu này và một số người thậm chí không hiểu nó ngay từ cái nhìn đầu tiên.

Khi tính toán đường đi ngắn nhất từ ​​đỉnh bắt đầu đến đỉnh mục tiêu, đường dẫn tối ưu nhất thiết phải đơn giản , nghĩa là nó không lặp lại bất kỳ đỉnh nào. Tuy nhiên, khi tính toán đường dẫn tối ưu, đường dẫn thứ hai, thứ ba, ... tốt nhất có thể không đơn giản. Để chứng minh, tôi cung cấp ở đây một ví dụ đã được điều chỉnh một chút từ Hershberger, Maxel & Suri, 2007:k

nhập mô tả hình ảnh ở đây

Hình hiển thị một sơ đồ có giải pháp tối ưu (từ đỉnh nguồn đến đỉnh mục tiêu ) là đường dẫn với chi phí bằng 5. Nếu các đường dẫn không bắt buộc phải đơn giản, thì các đường dẫn tối ưu thứ hai và thứ ba là và đều có chi phí bằng 7. Tuy nhiên, nếu các đường dẫn được yêu cầu đơn giản, thì các đường dẫn tối ưu thứ hai và thứ ba sẽ là và với chi phí lần lượt là 10 và 11.t π 1 : s , A , B , C , D , t π 2 : s , A , B , C , D , C , D , t π 3 : s , A , B , A , B , C , D , t pi 2 :Stπ1:S,Một,B,C,D,tπ2:S,Một,B,C,D,C,D,tπ3:s,A,B,A,B,C,D,tpi 3 : s , G , t π2:S,F,tπ3:S,G,t

Cho đồ thị trong đó là tập hợp các đỉnh và nếu có một cạnh giữa các đỉnh và , trạng thái hiện tại của nghệ thuật cho vấn đề này theo sự hiểu biết tốt nhất của tôi được mô tả dưới đây:V u , v E , u , v V u vG(V,E)Vbạn,vE,bạn,vVbạnv

Cải tiến đáng kể đầu tiên để giải quyết vấn đề đường dẫn tối ưu là thuật toán của Eppstein (Eppstein, 1998) chạy trong . Tuy nhiên, thuật toán này đòi hỏi đồ thị phải được đưa ra rõ ràng. làm giảm bớt yêu cầu này trong khi duy trì độ phức tạp thấp (Aljazzar & Leue, 2011) và, ngoài ra, cho phép áp dụng các phương pháp phỏng đoán được chấp nhận. Trong cả hai trường hợp, đầu ra được tính toán bởi các thuật toán này không nhất thiết là các đường dẫn đơn giản.O ( | E | + | V | log | V | + k ) K *kÔi(|E|+|V|đăng nhập|V|+k)K*

Trong trường hợp các đường dẫn được yêu cầu đơn giản, kết quả tốt nhất là do Yen (Yen, 1971, 1972), được Lawler (Lawler, 1972) khái quát hóa, sử dụng cấu trúc dữ liệu hiện đại có thể được thực hiện trong trường hợp xấu nhất. Trong trường hợp đồ thị vô hướng, Katoh, Ibaraki và Mine (Katoh, Ibaraki & Mine, 1982) cải thiện thuật toán của Yen thành thời gian . Trong khi trường hợp xấu nhất không có triệu chứng của Yen bị ràng buộc trong việc liệt kê đường đi ngắn nhất đơn giản trong đồ thị có hướng vẫn bất bại (một lần nữa, theo hiểu biết tốt nhất của tôi!), Một số nỗ lực đã được thực hiện để vượt trội hơn trong thực tế.Ôi(k|V|(|E|+|V|đăng nhập|V|))Ôi(k(|E|+|V|đăng nhập|V|))k

Một trong những công việc như vậy là do John Hershberger và cộng sự, người đã giới thiệu một thuật toán đường dẫn thay thế được biết là thất bại hiếm khi. Kết quả là, thuật toán của họ cung cấp một tốc độ tăng trưởng tuyến tính với số cạnh trung bình trong các đường dẫn ngắn nhất , nhưng đối với một số trường hợp (dưới dạng biểu đồ ngẫu nhiên), tốc độ này được giảm thiểu.k

Hi vọng điêu nay co ich,

Thư mục

Aljazzar, H. & Leue, S. (2011). : Một thuật toán tìm kiếm heuristic để tìm đường dẫn ngắn nhất. Trí tuệ nhân tạo, 175 (18), 2129-2154.K*k

Eppstein, D. (1998). Tìm đường đi ngắn nhất. Tạp chí SIAM về máy tính, 28 (2), 652-673.k

Hershberger, J., Maxel, M. & Suri, S. (2007). Tìm đường dẫn đơn giản ngắn nhất: Một thuật toán mới và cách thực hiện. Giao dịch ACM trên các thuật toán, 3 (4), 45-46k

Katoh, N., Ibaraki, T. & Mine, H. (1982). Một thuật toán hiệu quả cho đường dẫn đơn giản ngắn nhất. Mạng, 12, 411-427.k

Luật sư, EL (1972). Một thủ tục để tính giải pháp tốt nhất để bài toán tối ưu rời rạc và ứng dụng của nó vào bài toán đường đi ngắn nhất. Khoa học quản lý, 18, 401-405.k

Yến, JY (1971). Tìm đường dẫn ngắn nhất trong một mạng. Khoa học quản lý, 17, 712-716.k

Yến, JY (1972). Một thuật toán khác để tìm các đường dẫn mạng không vòng lặp ngắn nhất. Kỷ yếu của Hiệp hội nghiên cứu hoạt động quản lý thứ 41 của Mỹ, 20.k


Ôi(n+m)

Rất vui khi biết bạn thích nó @kezzos
Carlos Linares López
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.