Tôi có cảm giác rằng có thể có giải pháp dọc theo các dòng sau, nhưng điều này không có nghĩa là giải pháp đầy đủ.
Cho S là tập con của các đỉnh. Đối với mỗi đỉnh V trong biểu đồ, hãy xem xét tập D_S (V), mà tôi xác định như sau: D_S (V) = {V} nếu V trong S, và ngược lại, D_S (V) là liên kết {V} với các bộ D_S (W) cho tất cả con cháu trực tiếp W của V. (Nghĩa là, nó là "tất cả các hậu duệ cuối cùng của V, nhưng dừng đệ quy bất cứ khi nào bạn nhấn một phần tử V".) Câu hỏi đặt ra là: chúng ta có thể tìm một tập hợp không S sao cho kích thước của S là O (f (N)) và D_S (V) có kích thước O (g (N)) cho tất cả V, và trong đó f và g là cận tuyến cận tính? (Có lẽ chúng ta có thể đạt được sqrt cho cả hai, ví dụ.)
Nếu chúng ta có thể tìm thấy điều này, thì tôi đề nghị chiến lược sau đây. Đối với tiền xử lý, tạo cho mỗi U trong S một bảng băm có chứa tất cả các đỉnh cuối cùng có thể truy cập từ U. Điều này có thể đạt được trong O (f (N) * M); đó không nhất thiết phải tốt hơn O (N^2), nhưng tốt hơn O (M * Q) ít nhất.
Bây giờ để trả lời truy vấn "có thể truy cập được từ V?", Điều này là tầm thường nếu V trong S. Nếu không, chúng tôi kiểm tra xem V = U, trong trường hợp đó nó cũng tầm thường. Cuối cùng, chúng tôi áp dụng cùng một quá trình cho tất cả con cháu của V, đệ quy, trả về "có" nếu câu trả lời là "có" qua một trong hai trường hợp trên, nhưng "không" chỉ khi chúng ta không bao giờ tìm thấy U. O (g (N)) bước.
Câu hỏi còn lại là cách chọn S. Tôi nghĩ nếu đồ thị phát sinh từ quá trình nào đó ở mức độ thấp hơn luật pháp quyền lực, người ta chỉ có thể lấy các đỉnh sqrt (N) với độ lệch cao nhất.Nhưng ví dụ nếu chúng ta có đồ thị trên N = 2 * K đỉnh (i, 0) và (i, 1), với K^2 cạnh: từ mỗi (i, 0) đến mỗi (j, 1); thì không có tập hợp con nào phù hợp S. Nhưng có thể các đồ thị không có S phù hợp có nhu cầu một mức độ đồng nhất chúng ta có thể khai thác ... Hoặc có thể không. Tôi không biết. Bất kỳ ý tưởng nào, hãy cho tôi biết!
Nguồn
2015-09-05 20:39:35
Ngay cả trong một DAG, có thể được 'O (n^2)' cạnh, (trừ khi nó được cho rằng đồ thị được sparsed), vì vậy bạn đang tìm kiếm thời gian phụ tuyến tính, thực sự ... Và 'Câu hỏi này có thể dễ dàng được giải quyết trong O (n) 'Không, vì lý do tương tự. – amit
Tệ của tôi. Tôi có nghĩa là O (n + m). – Badf
Are các truy vấn có thể trả lời trong diễn đàn? –