Cấu trúc dữ liệu cho các truy vấn sản phẩm chấm tối thiểu


19

Hãy xem xét được trang bị sản phẩm chấm tiêu chuẩn và vectơ ở đó: . Chúng tôi muốn xây dựng cấu trúc dữ liệu cho phép truy vấn theo định dạng sau: đã cho output . Có thể vượt quá thời gian truy vấn O (nm) tầm thường không? Ví dụ: nếu n = 2 , thì ngay lập tức lấy O (\ log ^ 2 m) .Rn,mv1,v2,,vmxRnminix,viO(nm)n=2O(log2m)

Điều duy nhất tôi có thể đưa ra là sau đây. Đó là hậu quả tức thời của bổ đề Johnson-Lindenstrauss rằng với mọi ε>0 và phân phối D trên Rn có ánh xạ tuyến tính f:RnRO(logm) (có thể được đánh giá theo thời gian O(nlogm) ) sao cho PrxD[ix,viε(x+vi)2f(x),f(vi)x,vi+ε(x+vi)2]1ε . Vì vậy, trong thời gian O((n+m)logm) chúng ta có thể tính toánmột cái gì đó theo nghĩa nào đó gần với minix,vi đối với hầu hết các x (ít nhất là nếu các chỉ tiêu xvi nhỏ).

CẬP NHẬT Các ràng buộc nêu trên có thể được làm sắc nét đôi chút với thời gian truy vấn O(n+m) nếu chúng ta sử dụng băm nhạy cảm cục bộ. Chính xác hơn, chúng tôi chọn k:=O(1ε2) các vectơ Gaussian độc lập r1,r2,,rk . Sau đó, chúng tôi ánh xạ Rn thành {0,1}k như sau: v(r1,v0,r2,v0,,rk,v0) . Sau đó, chúng ta có thể ước tính góc giữa hai vectơ trong một lỗi cộng gộp ε bằng cách tính toán 1 trong hình ảnh của ánh xạ này. Do đó, chúng tôi có thể ước tính các sản phẩm chấm trong một lỗi phụ giaεxvitrong thời gian O(1ε2) .



Tôi không chắc điều này có hiệu quả hay không, nhưng vấn đề của bạn (sau khi chuyển dấu hiệu của v_i để chuyển đổi thành tối đa hóa) có vẻ liên quan đến sơ đồ Voronoi. Có thể sửa đổi các thuật toán cho sơ đồ Voronoi cho vấn đề này, nhưng ngay cả khi có thể, nó có thể chỉ hữu ích cho n nhỏ.
Tsuyoshi Ito

Tôi không biết đây có phải là cùng một quan sát không ... Tất cả có thể được chuẩn hóa thành một vectơ đơn vị và không thay đổi kết quả, chúng ta có thể làm mọi thứ trong một khối n đơn vị tập trung vào gốc. Tìm vùng nào của khối lập phương thu nhỏ sản phẩm chấm với cho mỗi (mỗi vùng phải là đa giác). Tôi không bị ràng buộc về số lượng polytopes. Nếu nó là ít hơn theo cấp số nhân trong , bạn có một cái gì đó tốt hơn so với bằng cách thực hiện một truy vấn vị trí điểm n-chiều. v i i n m O ( n m )xviinmO(nm)
Chao Xu

thông số nào bạn quan tâm hơn? thông thường, nếu bạn muốn lấy tuyến tính theo m, bạn sẽ bắt đầu nhận số mũ theo n.
Suresh Venkat

@Suresh Chà, thật tuyệt khi hiểu những sự đánh đổi khác nhau có thể có. Phiên bản gần đúng cũng thú vị.
ilyaraz

Lưu ý nhanh: đối với trường hợp n = 2, tìm kiếm nhị phân trên thân lồi cho thời gian truy vấn . O(logn)
Geoffrey Irving

Câu trả lời:


16

Xem xét trường hợp đặc biệt trong đó bạn chỉ muốn xác định xem vectơ truy vấn của bạn có trực giao với một số vectơ trong bộ sưu tập được xử lý trước của bạn không. (Nghĩa là, bạn muốn xác định xem , trong đó các vectơ đang thảo luận có hệ số không âm.) Trường hợp này đã rất thú vị.minix,vi=0

Giả sử bạn có thể trả lời các truy vấn trong thời gian cho một số , với tiền xử lý ( Độ của đa thức không nên phụ thuộc vào hoặc hoặc ). δ > 0 m O ( 1 ) n O ( 1 ) m n δnO(1)m1δδ>0mO(1)nO(1)mnδ

Trong bài báo "Một thuật toán mới cho sự hài lòng ràng buộc 2 tối ưu và ý nghĩa của nó", tôi đã quan sát thấy rằng cấu trúc dữ liệu như vậy thực sự sẽ cho phép bạn giải quyết CNF-SAT trong thời gian trong một thời gian , Trong đó là số lượng biến. Điều này sẽ bác bỏ "Giả thuyết thời gian theo cấp số nhân mạnh mẽ" rằng k-SAT đòi hỏi cơ bản là thời gian cho không giới hạn . α < 1 v 2 n k2αvα<1v2nk

Để xem tại sao, giả sử thời gian tiền xử lý được giới hạn bởi . Xét công thức CNF với biến và mệnh đề. Chúng tôi chia bộ biến thành hai phần và có kích thước và , tương ứng. Liệt kê tất cả các phép gán có thể cho các biến trong các phần (lần lượt nhận và ). Liên kết mỗi bài tập một phần với vectơ -bit trong đó iff the F v n P 1 P 2 v ( 1 - 1 / ( 2 c ) ) v / ( 2 c ) 2 v ((nm)cFvnP1P2v(11/(2c))v/(2c) 2 v / ( 2 c ) A i n w i w i [j]=1j2v(11/(2c))2v/(2c)Ainwiwi[j]=1jthứ khoản của không được thỏa mãn bởi . Vì vậy, chúng tôi có hai danh sách các vectơ bit theo cấp số nhân.A iFAi

Lưu ý rằng là thỏa đáng nếu có một vectơ từ một bài tập trên và một vectơ từ một bài tập trên sao cho .w 1 P 1 w 2 P 2w 1 , w 2= 0Fw1P1w2P2w1,w2=0

Bây giờ hãy để và tiền xử lý cấu trúc dữ liệu giả định với tất cả các vectơ từ phần . Điều này mất thời gian, theo giả định. Chạy thuật toán truy vấn trên tất cả các vectơ từ các bài tập trên phần . Theo giả định, việc này mất . Đặt . P 2 n 2 v / 2 P 1 2 v ( 1 - 1m=2v/(2c)P2n2v/2P1 α=1-δ2v(11/(2c))nO(1)m1δ=nO(1)2vδv/(2c)α=1δ/(2c)

Có lẽ có thể có được tiền xử lý hiệu quả và thời gian truy vấn với các kỹ thuật hiện có. Các thuật toán CNF-SAT nổi tiếng nhất không loại trừ nó. (Họ có được một cái gì đó giống như .) Tuy nhiên, để tính toán là hơi mạnh - trong thiết lập này, nó sẽ như thế nào giải quyết MAX CNF-SAT. 2 n - n / log n phút ix , v inO(1)m11/(loglogm)2nn/lognminix,vi


Tuyệt vời! Nhưng nó không loại trừ các cấu trúc dữ liệu gần đúng cũng như thời gian truy vấn như , điều này cũng rất thú vị. O(mpoly(logn))
ilyaraz

Nhân tiện, chúng ta không thể nói điều gì đó như "nếu thậm chí có cấu trúc dữ liệu gần đúng với thời gian truy vấn nhanh, thì MAX-SAT sẽ gần đúng".
ilyaraz

Tại sao sự tương đương được nêu trong đoạn đầu tiên giữ? Tôi nghĩ rằng các sản phẩm bên trong có thể là tiêu cực nói chung.
Tsuyoshi Ito

ilyaraz: Có, thậm chí các cấu trúc dữ liệu gần đúng sẽ ngụ ý xấp xỉ MAX-SAT. Tsuyoshi: Cảm ơn bạn đã hiểu biết của bạn
Ryan Williams

6

Đây là một ý tưởng cho câu trả lời chính xác, mà tôi nghi ngờ Chao Xu có thể đang ám chỉ. Trước hết hãy quan sát rằng chúng ta cũng có thể bình thường hóa , như Chao chỉ ra. Bây giờ hãy xem xét siêu phẳng bình thường theo hướng . Mục tiêu là tìm điểm gần nhất với siêu phẳng này. Theo tính đối ngẫu, điều này tương ứng với một truy vấn bắn tia trong sự sắp xếp của các siêu phẳng để tìm mặt phẳng gần nhất "phía trên" điểm truy vấn. Vì điều này có thể được xử lý trước, nên độ phức tạp chính là vị trí điểm, và do đó, vấn đề của bạn giờ đã được giảm xuống thành độ phức tạp của việc thực hiện vị trí điểm trong sự sắp xếp của siêu phẳng. Sử dụng các phần cắt, điều này có thể được thực hiện trong thời gian trong không gian .h x O ( log n ) n dxhxO(logn)nd


1
Tôi nên đã đề cập rằng tôi cũng quan tâm đến thời gian tiền xử lý hợp lý không phải là trường hợp ở đây nếu kích thước là lớn.
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.