Độ phức tạp của st-Connectivity


11

Tôi muốn biết liệu vấn đề sau có thể được quyết định trong (không gian đăng nhập không xác định):NL

Cho đồ thị có hướng với hai đỉnh và phân biệt , có đường dẫn duy nhất từ đến trong không?s t s t GGststG

Tôi cảm thấy rằng nó có khả năng nằm trong vì chúng tôi có thể quyết định cả hai nếu có - -path và nếu không có đường dẫn như vậy. Tuy nhiên, đếm số lượng đường dẫn như vậy là -hard (Valiant, 1979). s t PNLstP

Vì vậy, câu hỏi của tôi: Bạn có tài liệu tham khảo về điều này? Rõ ràng là nó có trong ? Hoặc nó không có trong ?N LNLNL


5
Bạn có nghĩa là những con đường đơn giản? Không rõ ràng nó giống nhau trong bối cảnh này.
Lance Fortnow

1
Điểm tốt, tôi có nghĩa là con đường đơn giản thực sự.
Bruno

Câu trả lời:


16

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 .vtj1NL=coNLstj1

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:=vvt

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


Tôi nghĩ rằng một cái gì đó tương tự nhưng nó sử dụng không gian tuyến tính. Cảm ơn câu trả lời của bạn!
Bruno

5
Tôi đồng ý nó thực sự là văn hóa dân gian. Đó là hậu quả tức thời của sự sụp đổ của hệ thống phân cấp Ngoài ra, vấn đề đếm trong không hoàn thành # P. Đó là ở #L, lần lượt là trong N C 2NLNC2
V Vinay

2
Vâng, như tôi đã nói ở trên, thuật toán không phân biệt giữa các đường dẫn đơn giản và đường dẫn có chu kỳ.
Ryan Williams

1
P

1
Btw, nhận xét của Allender & Lange là đủ để kết luận trực tiếp.
Bruno
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.