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
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 , A , B , C, D , t ⟩π2: ⟨ S , A , B , C, D , C, D , t ⟩π3:⟨s,A,B,A,B,C,D,t⟩pi 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)V⟨ U , v ⟩ ∈ E, U , v ∈ Vbạ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Ô ( | 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ế.O ( k | V| ( | E| + | V| đăng nhập| V| ))O ( 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