Có vẻ như vấn đề của bạn là ở . Đây là một thuật toán.NL
Đầu tiên, không nhất định đoán một đường dẫn từ đến . Nếu bạn đoán không chính xác, từ chối . Gọi thuật toán này .t AstA
Hãy xem xét thuật toán không xác định sau đây , xác định xem có ít nhất hai đường dẫn hay không. Cho một đồ thị và , cho tất cả các cặp cạnh khác nhau , hãy đoán một đường dẫn từ đến bao gồm nhưng không phải , sau đó đoán một đường dẫn từ đến bao gồm nhưng không phải . Nếu đoán đúng, chấp nhận . Nếu không có sự chấp nhận xảy ra cho tất cả các lựa chọn của và , hãy từ chối . Lưu ý có thể thực hiện được trong logspace không điều kiện.s , t e , f s t e f s t f e e f BBs,te,fstefstfeefB
Bây giờ, tập là tập các đồ thị - có ít nhất hai đường dẫn từ đến . Vì , phần bù của cũng có trong , nghĩa là chúng ta có thể xác định xem và có ít hơn hai đường dẫn hay không, trong không gian loga không xác định.s t s t N L = c o N L B N L s tL(B)ststNL=coNLBNLst
Thuật toán cuối cùng là: "Chạy Nếu chấp nhận, sau đó chạy phần bù của và đưa ra câu trả lời của nó."A BAAB
Tôi không biết về một tài liệu tham khảo.
CẬP NHẬT: Nếu bạn thực sự muốn một tài liệu tham khảo, hãy xem đoạn đầu tiên của Phần 3 của bài viết này . Nhưng đây có lẽ chỉ là một trong nhiều tài liệu tham khảo trích dẫn hậu quả này. Sẽ hợp lý hơn nếu gọi kết quả là "văn hóa dân gian" thay vì trích dẫn một bài báo tình cờ đề cập đến nó.
CẬP NHẬT 2: Giả sử bạn muốn xác định xem có một đường dẫn đơn giản duy nhất không. Trong trường hợp đó, thuật toán không phải thay đổi: nếu có một đường dẫn thì có một đường dẫn đơn giản. Tôi tin rằng việc sửa đổi sau đây sẽ làm việc cho thuật toán B .AB
Chúng tôi muốn viết lại thuật toán để nó chấp nhận iff có ít nhất hai đường dẫn đơn giản.B
Trước tiên hãy xem xét thuật toán đa thức thời gian sau cho bài toán. Tìm một con đường ngắn nhất từ s đến t . Đối với mọi cạnh e trong P , hãy kiểm tra xem có đường dẫn s - t nào khác không đi qua e không . Nếu bạn tìm thấy một con đường như vậy thì chấp nhận . Nếu bạn không bao giờ tìm thấy một con đường khác thì từ chối . Bởi vì P là ngắn nhất, nó không có chu kỳ và nếu có một đường dẫn khác không sử dụng một số cạnh của P , thì có một đường dẫn khác đơn giản và không sử dụng một số cạnh của PPstePstePPP. (Thuật toán này được sử dụng cho bài toán "đường dẫn ngắn thứ hai".)
Chúng tôi sẽ thực hiện thuật toán này trong . Nếu chúng ta có một N L thuật toán để truy vấn các cạnh e trong một con đường cố định P , chúng ta có thể thực hiện trên trong logspace không xác định: lặp qua tất cả các cạnh e trong P , đoán một s - t đường dẫn và kiểm tra cho mỗi cạnh thăm dọc theo cách, không ai trong số họ bằng e .NLNLePePste
Vì vậy, những gì chúng ta cần là một "con đường oracle", một thuật toán với tài sản: cho i = 1 , ... , n , trong mỗi con đường tính toán các thuật toán hoặc báo cáo các i th cạnh trên cố định nói riêng s - t con đường, hoặc từ chối . Chúng ta có thể có được một con đường dẫn bằng cách sử dụng N L = c o N L để cô lập đường dẫn đầu tiên theo từ vựng.NLi=1,…,nistNL=coNL
Dưới đây là một bản phác thảo của nhà tiên tri đường dẫn.
Tìm , chiều dài của con đường đi ngắn nhất từ s đến t , bằng cách cố gắng tất cả k = 1 , ... , n và sử dụng N L = c o N L .kstk=1,…,nNL=coNL
Đặt các biến , x : = 1 , j : = k .u:=sx:=1j:=k
Đối với tất cả hàng xóm của u theo thứ tự từ điển,vu
Xác định xem có đường dẫn từ đến t có độ dài j - 1 hay không (sử dụng kết quả N L = c o N L ). Chính xác hơn, chạy thuật toán không xác định cho kết nối s - t (có độ dài j - 1 ) và thuật toán cho phần bù của nó, đồng thời. Khi một trong số họ chấp nhận, hãy đi với câu trả lời của nó (nó phải chính xác; cả hai đều không thể chấp nhận). Nếu cả hai từ chối thì từ chối .vtj−1NL=coNLstj−1
Nếu không có con đường, tiến tới hàng xóm tiếp theo. Nếu bạn đã hết tất cả hàng xóm thì hãy từ chối .
Nếu có một đường dẫn, thì nếu , đầu ra ( u , v ) là cạnh thứ i trên đường dẫn từ s đến t . Mặt khác, tăng x , giảm j , đặt u : = v và bắt đầu lại vòng lặp for nếu v ≠ t .x=i(u,v)istxju:=vv≠t
Nếu sau khi đạt t đầu ra xấu i ( tôi đã cho là quá lớn).x<itii
Với , thuật toán này hoặc đưa ra cạnh thứ i trên đường dẫn ngắn nhất từ vựng P từ s đến t hoặc từ chối.iiPst