Cấu trúc dữ liệu cho các đường dẫn ngắn nhất


19

Đặt G là đồ thị vô hướng không trọng số với n đỉnh và m cạnh. Có thể xử lý trước G và tạo cấu trúc dữ liệu có kích thước mpolylog(n) để nó có thể trả lời các truy vấn có dạng "khoảng cách giữauv " trong thời gian O (n) không?

Vấn đề dường như quá cơ bản để không được giải quyết.


1
Để đáp lại nhận xét cuối cùng của bạn về việc quá cơ bản để không thể giải quyết được: Nếu truy vấn phải được trả lời trong một thời gian liên tục, thì nó thực sự được nghiên cứu kỹ lưỡng. Nhưng quan điểm của câu hỏi của bạn là bạn cho phép O (n) thời gian cho một truy vấn (thay vì O (1) hoặc O (m) tầm thường. Mặc dù tôi nghĩ rằng đó là một câu hỏi thú vị, tôi không nghĩ rằng câu hỏi đó có tầm quan trọng cơ bản.
Tsuyoshi Ito

1
@TsuyoshiIto - Tôi không hiểu tại sao câu hỏi mất "tầm quan trọng cơ bản" nếu nó cho phép thời gian truy vấn siêu tuyến tính nhưng không đổi. Ví dụ, giả sử tôi có thể giải quyết vấn đề trên với ràng buộc là các truy vấn từ xa có thể được trả lời trong O(n1ε) thời gian cho một số ε>0 , và thời gian xử lý tối đa là O(n3ε) - điều này sẽ không cho tôi một thuật toán khối phụ để tính toán các đường dẫn ngắn nhất? Cá nhân tôi nghĩ rằng đây là một câu hỏi rất thú vị.
Rachit

Tôi không biết có cách nào chung hay không, nhưng có một cách hay trong đồ thị treewidth bị ràng buộc, xem truy vấn Đường dẫn ngắn nhất trong đồ thị treewidth bị ràng buộc
Saeed

Ngoài ra nếu m=Ω(n2) bạn có thể tạo ra một cây đường ngắn nhất (bắt đầu từ mỗi nút) và sau đó trả lời các câu truy vấn con đường ngắn nhất (bằng gốc có liên quan) trong O(n) , hay dưới hình thức tương tự có thể bạn có thể xây dựng một dữ liệu cấu trúc với kích thước bộ nhớ ít hơn.
Saeed

Câu trả lời:


9

Đây là một câu hỏi rất thú vị. Ở mức cao, bạn đang hỏi liệu người ta có thể xử lý trước một biểu đồ sao cho các truy vấn đường dẫn ngắn nhất trở nên độc lập với mật độ của biểu đồ, mà không sử dụng nhiều không gian thừa - thú vị, nhưng như bạn nói, chưa được giải quyết.

Nếu bạn hài lòng với khoảng cách gần đúng, đây là một cách để có được xấp xỉ lần. Đặt G là đồ thị vô hướng có trọng số với n nút và m cạnh. Trong bài báo sau đây cho thấy các truy vấn khoảng cách gần đúng, thiết kế cấu trúc dữ liệu cho các đồ thị có cạnh m không khó hơn các đồ thị trong đó mỗi nút có mức độ giới hạn bởi m / n :2Gnmmm/n

R. Agarwal, PB Godfrey, S. Har-Peled, Các truy vấn khoảng cách gần đúng và định tuyến nhỏ gọn trong các biểu đồ thưa thớt, INFOCOM 2011

Vì vậy, giả sử rằng là đồ thị giới hạn m / n -degree. Các mẫu α = O ( m / n ) thống nhất ngẫu nhiên; gọi các nút mốc này. Trong giai đoạn tiền xử lý, lưu trữ khoảng cách từ mỗi nút mốc đến từng nút khác trong biểu đồ; điều này đòi hỏi không gian O ( m ) . Đối với mỗi nút u , lưu trữ nút mang tính bước ngoặt gần nhất của nó ( u ) . Ngoài ra, lưu trữ biểu đồ trong cấu trúc dữ liệu, nói như một danh sách kề.Gm/nα=O(m/n)O(m)u(u)

Khi truy vấn cho khoảng cách giữa v , phát triển bóng xung quanh cả hai nút - bóng của nút w được định nghĩa là tập hợp các nút đó là đúng gần gũi hơn với w hơn tới nút mang tính bước ngoặt gần nhất của nó, nói ( w ) . Có thể chỉ ra rằng kích thước của mỗi quả bóng là O ( n 2 / m ) , theo kỳ vọng. Hãy Γ ( u ) = B ( u ) N ( B ( u ) ) , nơi B ( uuvww(w)O(n2/m)Γ(u)=B(u)N(B(u)) là bóng của nút u N ( B ( u ) ) là tập hợp các lân cận của các nút trong B ( u ) . Có thể chỉ ra rằng kích thước của Γ ( u ) O ( n ) , theo kỳ vọng.B(u)uN(B(u))B(u)Γ(u)O(n)

Trả lời các câu hỏi: nếu , trở về phút x Γ ( u ) Γ ( v ) { d ( u , x ) + d ( v , x ) } ; khác nếu d ( u , ( u ) ) d ( v , ( vΓ(u)Γ(v)minxΓ(u)Γ(v){d(u,x)+d(v,x)} , trả về d ( u , ( u ) ) + d ( ( u ) , v ) ; khác trở lại d ( v , ( v ) ) + d ( ( v ) , u ) . Thật dễ dàng để chỉ ra rằng đây là mộtxấp xỉ 2 .d(u,(u))d(v,(v))d(u,(u))+d((u),v)d(v,(v))+d((v),u)2

Về thời gian truy vấn, lưu ý rằng việc phát triển các quả bóng cần thời gian cho đồ thị giới hạn m / n -degree; xây dựng Γ ( u )Γ ( v ) đưa quả bóng tương ứng mất O ( n ) thời gian (kể từ khi các nước láng giềng được lưu trữ trong các cấu trúc dữ liệu); và kiểm tra xem Γ ( u ) Γ ( v ) là rỗng hay không cũng phải mất O ( n ) thời gian.O(n)m/nΓ(u)Γ(v)O(n)Γ(u)Γ(v)O(n)

Các giới hạn trên là trong kỳ vọng; Tôi nghĩ rằng nó là dễ dàng để derandomize xây dựng. Thật không may, kỹ thuật này dường như không cho phép lấy xấp xỉ tốt hơn . Đó là một câu hỏi rất thú vị mặc dù ....2


Kỹ thuật trên không khai thác thực tế là đồ thị đầu vào của bạn không có trọng số; có thể có một điều thú vị mà bạn có thể làm bằng cách khai thác thực tế đó nhưng tôi không thể nghĩ ra cách nào để lấy lại khoảng cách chính xác. Chẳng hạn, có thể giảm thời gian truy vấn xuống và nhận khoảng cách giới hạn bởi 2 d + 1 , trong đó d là khoảng cách chính xác giữa uv . O(n2/m)2d+1duv
Rachit

Tôi nhận ra rằng tôi không hiểu tại sao nó chỉ là xấp xỉ 2. Thorup-Zwick trong các tình huống tương tự cho 3-xấp xỉ.
ilyaraz

@ilyaraz: Lưu ý rằng chương trình Thorup-Zwick không đòi hỏi phải kiểm tra (và do đó, câu trả lời truy vấn trong thời gian hầu như không đổi). Xem bài báo mà tôi đã đề cập ở trên để kéo dài 2 bằng chứng. Γ(u)Γ(v)2
Rachit

4

Những gì bạn cần được gọi là "nhà tiên tri khoảng cách". Thật không may, tôi không quen thuộc lắm với các nhà tiên tri từ xa, vì vậy tôi chỉ có thể giới thiệu bạn đến bài báo bán nguyệt do Thorup và Zwick:

Mikkel Thorup và Uri Zwick. Khoảng cách gần đúng STOC '01, 2001.

Đây là một đoạn trích từ bản tóm tắt:

Đặt là đồ thị có trọng số không xác định với | V | = n| E | = m . Gọi k là số nguyên. Chúng tôi cho thấy G = ( V , E ) có thể được xử lý trước trong thời gian dự kiến O ( k m n 1 / k ) , xây dựng cấu trúc dữ liệu có kích thước O ( k n 1 + 1 / kG=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k) , sao cho bất kỳ truy vấn khoảng cách tiếp theo nào cũng có thể được trả lời, trong khoảngthời gian O ( k ) . Khoảng cách gần đúng được trả về là kéo dài tối đa 2 k - 1 , tức là thương số thu được bằng cách chia khoảng cách ước tính cho khoảng cách thực tế nằm trong khoảng từ 1 đến 2 k - 1 . [...] Yêu cầu không gian của thuật toán của chúng tôi là [...] về cơ bản là tối ưu.O(kn1+1/k)O(k)2k12k1

Theo kết quả của họ, những gì bạn yêu cầu về cơ bản là có thể thực hiện được ngay cả đối với các biểu đồ có trọng số: chọn mang lại một khoảng cách kích thước O ( n 2 ) thu được trong thời gian dự kiến O ( m n ) , có thể trả lời các truy vấn đường đi ngắn nhất của bạn với 1 -Tải trong thời gian O ( 1 ) !k=1O(n2)O(mn)1O(1)

Từ xa là một lĩnh vực được nghiên cứu rất kỹ, vì vậy bạn sẽ có thể đào sâu hơn tôi tin.


2
Phiên bản tạp chí: JACM 2005 .
Tsuyoshi Ito

3
Sử dụng không gian người ta có thể lưu trữ bảng tra cứu một cách ngây thơ. Vì vậy, bài báo này (mà tôi đã biết) không liên quan ở đây. O(n2)
ilyaraz

1
Đủ công bằng. Kết quả gần nhất với những gì bạn yêu cầu AFAIK là dành cho đồ thị với mức độ trung bình cung cấp cho các đường căng-2 với O ( n 3 / 2 ) không gian trong O ( Θ(logn)O(n3/2)thời gian truy vấn. (R. Agarwal, P. Godfrey, và S. Har-Peled, "xấp xỉ Queries Khỏang cách và nhỏ gọn Routing trong thưa thớt đồ thị", INFOCOM 2011.)O(n)
Gabor Retvari

Sử dụng phép nhúng số liệu của Bourgain vào , người ta có thể đưa ra một lời tiên tri với không gian O ( n log 2 n ) , thời gian truy vấn O ( log 2 n ) và lỗi nhân O ( log n ) . 1O(nlog2n)O(log2n)O(logn)
ilyaraz
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.