Độ phức tạp mạch OR của toán tử tuyến tính dày đặc


14

Hãy xem xét mô hình mạch đơn điệu đơn giản sau đây: mỗi cổng chỉ là một OR nhị phân. Độ phức tạp của hàm f ( x ) = A xf(x)=Ax trong đó AA là ma trận Boolean với 0's? Nó có thể được tính bằng các mạch OR kích thước tuyến tính không?n × n O ( n )n×nO(n)

Chính thức hơn, ff là một hàm từ nn đến nn bit. Đầu ra thứ ii của ffn j = 1 ( A i jx j )nj=1(Aijxj) (nghĩa là OR của tập hợp con của các bit đầu vào được cho bởi hàng thứ ii của AA ).

Lưu ý rằng O ( n )O(n) 0 chia các hàng của AA thành các phạm vi O ( n )O(n) (các tập hợp con gồm các phần tử liên tiếp của [ n ][n] ). Điều này làm cho nó có thể sử dụng các cấu trúc dữ liệu truy vấn phạm vi đã biết. Ví dụ, cấu trúc dữ liệu bảng thưa thớt có thể được chuyển thành mạch OR có kích thước O ( n log n )O(nlogn) . Thuật toán của Yao cho các truy vấn điều hành phạm vi -nửa nhóm có thể được biến thành một mạch gần như tuyến tính (kích thước O ( α ( n ) n )O(α(n)n) nơiα ( n )α(n) là nghịch đảo Ackermann)

Cụ thể, tôi thậm chí không biết cách xây dựng mạch kích thước tuyến tính cho trường hợp đặc biệt trong đó mỗi hàng AA chứa chính xác hai số không. Trong khi trường hợp chính xác một số không trong mỗi hàng là dễ dàng. (Mỗi hàm đầu ra có thể được tính bằng OR của tiền tố [ 1 .. k - 1 ][1..k1] và hậu tố [ k + 1 .. n ][k+1..n] , có thể được tính trước bởi 2 n2n cổng OR.)


3
Một giới hạn trên được biết: nhiều nhất là rk (A) lần n được chia cho log n, trong đó rk (A) là thứ hạng OR của ma trận boolean A (= số lượng tối thiểu của tất cả các tiểu số 1 có OR trùng với A ). Xem Bổ đề 2.5 trong cuốn sách này . Vậy, thứ hạng boolean của ma trận nxn với số 0 (n) có thể lớn đến mức nào?
Stasys

@Stasys Cảm ơn bạn, Stasys! Đã cho ma trận có đường chéo bằng 0, thứ hạng OR là tuyến tính, phải không?
Alexander S. Kulikov

2
Thứ hạng OR của ma trận của bạn (đường chéo bằng 0 và 1 giây ở nơi khác) nhiều nhất là 2 \ log n: nhãn hàng / cột theo chuỗi nhị phân có độ dài \ log n và xem xét hình chữ nhật {(r, c): r (i) = a, c (i) = 1-a} với a = 0,1. Cũng lưu ý rằng Bổ đề 2.5 là giới hạn trên . Một giới hạn thấp hơn về thứ hạng OR được đưa ra trong Thm. 3,20. Ngoài ra, nhật ký của xếp hạng OR chính xác là độ phức tạp giao tiếp không xác định của ma trận.
Stasys

@Stasys ồ, đúng rồi!
Alexander S. Kulikov

Câu trả lời:


7

Đây là câu trả lời một phần (khẳng định) trong trường hợp khi chúng ta có giới hạn trên về số lượng số không trong mỗi hàng hoặc trong mỗi cột.

Một hình chữ nhật là một ma trận boolean bao gồm một hàm con tất cả 1 và có các số 0 ở nơi khác. OR-rank r k ( A ) của một ma trận boolean là số nhỏ nhất r của hình chữ nhật như vậy Một có thể được viết như một (componentwise) HOẶC các hình chữ nhật. Nghĩa là, mỗi 1 mục nhập của A là một mục nhập trong ít nhất một trong các hình chữ nhật và mỗi mục nhập 0 của A là một mục nhập 0 trong tất cả các hình chữ nhật. Lưu ý rằng log r k ( A ) chính xác là độ phức tạp giao tiếp không xác định của ma trận Ark(A)rAAAlogrk(A)A(nơi Alice lấy hàng và cột Bob). Như OP đã viết, mỗi boolean m × n ma trận A = ( một i , j ) xác định một ánh xạ y = A x , nơi y i = n j = 1 một i , j x j cho i = 1 , ... , m . Đó là, chúng tôi lấy một sản phẩm vectơ ma trận trên bán kết boolean. m×nA=(ai,j)y=Axyi=nj=1ai,jxji=1,,m

Bổ đề sau là do Pudlák và Rödl; xem Dự luật 10.1 trong bài viết này hoặc Bổ đề 2.5 trong cuốn sách này để biết cách xây dựng trực tiếp.

Bổ đề 1: Đối với mỗi boolean n × n ma trận A , ánh xạ y = A x có thể được tính bằng một fanin vô biên OR-mạch sâu-3 sử dụng nhiều nhất là O ( r k ( A ) n / log n ) dây. n×nAy=AxO(rk(A)n/logn)

Chúng tôi cũng có giới hạn trên sau trên cấp OR của ma trận dày đặc. Đối số là một biến thể đơn giản của Alon được sử dụng trong bài viết này .

Bổ đề 2: Nếu mỗi cột hoặc mỗi hàng của ma trận boolean A chứa tối đa d số không, thì r k ( A ) = O ( d ln | A | ) , trong đó | Một | là số 1 s trong Một . Adrk(A)=O(dln|A|)|A|1A

Chứng minh: Xây dựng ngẫu nhiên tất cả 1 Subatrix R bằng cách chọn từng hàng độc lập với cùng xác suất p = 1 / ( d + 1 ) . Đặt tôi là tập con ngẫu nhiên thu được của các hàng. Sau đó, chúng ta hãy R = I × J , nơi J là tập hợp của tất cả các cột của A mà không có số không trong các hàng trong tôi . 1Rp=1/(d+1)IR=I×JJAI

Một 1 -entry ( i , j ) của A được bao phủ bởi R nếu tôi được chọn trong tôi và không ai trong số (nhiều nhất là d ) hàng với một 0 trong j cột -thứ đã được lựa chọn trong tôi . Do đó, sự xâm nhập ( i , j ) được bao phủ với xác suất ít nhất p ( 1 - p ) dp e - p d - p 2 d1(i,j)ARiId0jI(i,j)p / e . Nếu chúng ta áp dụng quy trình này r lần để lấy r hình chữ nhật, thì xác suất ( i , j ) được bao phủ bởi không có hình chữ nhật nào trong số này không vượt quá ( 1 - p / e ) re - r p / e . Theo liên kết bị ràng buộc, xác suất mà một số 1 người A vẫn chưa được khám phá là nhiều nhất | Một | e - r p / ep(1p)dpepdp2dp/err(i,j)(1p/e)rerp/e1A|A|erp/e, nhỏ hơn 1 cho r = O ( d ln | A | ) . 1r=O(dln|A|)

Hệ luỵ: Nếu mỗi cột hoặc mỗi hàng của một ma trận boolean Một chứa ít nhất d số không, sau đó ánh xạ y = A x có thể được tính bằng một fanin vô biên OR-mạch sâu-3 sử dụng O ( d n ) dây. Ady=AxO(dn)

Tôi đoán rằng một giới hạn trên tương tự như trong Bổ đề 2 cũng nên giữ khi d là số trung bình của 1 s trong một cột (hoặc trong một hàng). Sẽ rất thú vị khi thể hiện điều này.d1


Ghi chú: (đã thêm 04.01.2018) Một tương tự r k ( A ) = O ( d 2 log n ) của Bổ đề 2 cũng giữ khi dsố 0 trung bình tối đa trong một hàm con của A , trong đó số 0 trung bình trong một r × s ma trận là tổng số của số không chia s + r . Điều này tuân theo Định lý 2 trong N. Eaton và V. Rödl;, Đồ thị có kích thước nhỏ, Combinatorica 16 (1) (1996) 59-85 . Giới hạn trên kém hơn một chútrk(A)=O(d2logn)dAr×ss+rr k ( A ) = O ( d 2 ln 2 n ) có thể được lấy trực tiếp từ Bổ đề 2 như sau.rk(A)=O(d2ln2n)

Bổ đề 3: Hãy d 1 . Nếu mọi sơ đồ con kéo dài của đồ thị lưỡng cực G có độ trung bình d , thì G có thể được viết dưới dạng liên kết G = G 1G 2 , trong đó mức độ tối đa bên trái của G 1 và mức độ tối đa bên phải của G 2d . d1GdGG=G1G2G1G2d

Chứng minh: Cảm ứng trên số n của các đỉnh. Các trường hợp cơ sở n = 1n = 2 là rõ ràng. Đối với bước cảm ứng, chúng ta sẽ tô màu các cạnh bằng màu xanh lam và đỏ sao cho mức độ tối đa trong cả hai sơ đồ con màu xanh và đỏ là d . Đi một đỉnh u của mức độ d ; một đỉnh như vậy phải tồn tại bởi vì mức độ trung bình của toàn bộ đồ thị phải là d . Nếu u thuộc về phần bên trái, sau đó tô màu tất cả các cạnh sự cố để u màu xanh lam, màu sắc khác tất cả các cạnh màu đỏ. Nếu chúng ta loại bỏ đỉnh unn=1n=2dudduuuthì mức độ trung bình của đồ thị kết quả G cũng nhiều nhất là d và chúng ta có thể tô màu các cạnh của đồ thị này bằng giả thuyết cảm ứng. Gd

Bổ đề 4: Hãy d 1 . Nếu số không trung bình tối đa trong ma trận boolean n × n A = ( a i , j ) nhiều nhất là d , thì r k ( A ) = O ( d 2 ln 2 n ) . d1n×nA=(ai,j)drk(A)=O(d2ln2n)

Chứng minh: Xét đồ thị bipartite n × n G với ( i , j ) là một cạnh iff a i , j = 0 . Khi đó mức độ trung bình tối đa của G nhiều nhất là d . Bằng cách bổ đề 3, chúng ta có thể viết G = G 1G 2 , nơi mà mức độ tối đa của các đỉnh về phía bên trái của G 1 , và mức độ tối đa của các đỉnh trên phần bên phải của G 2d . Để chon×nG(i,j)ai,j=0GdG=G1G2G1G2dA 1 A 2 là phần bổ sung của ma trận kề của G 1 G 2 . Do đó, A = A 1A 2 là một thành phần AND của các ma trận này. Số lượng số không tối đa trong mỗi hàng của A 1 và trong mỗi cột của A 2 nhiều nhất là d . Kể từ khi r k ( A ) r k ( A 1 ) r k ( A 2 )A1A2G1G2A=A1A2A1A2drk(A)rk(A1)rk(A2), Bổ đề 2 thu được r k ( A ) = O ( d 2 ln 2 n ) . rk(A)=O(d2ln2n)

NB Ví dụ đơn giản sau (được chỉ ra bởi Igor Sergeev) cho thấy "đoán" của tôi ở cuối câu trả lời là hoàn toàn sai: nếu chúng ta lấy d = d ( A ) là số 0 trung bình trong toàn bộ ma trận A (không phải mức trung bình tối đa trên tất cả các mô hình con), sau đó bổ đề 2 có thể thất bại nặng nề. Hãy m = d=d(A)An , và đặt mộtma trậnm×mdanh tínhvào, giả sử góc trên bên trái củaAvà điền vào các mục còn lại theo từng mục. Sau đód(A)m2/2n<1nhưngrk(A)m, đó làtheo cấp số nhânlớn hơnln| Một| . Tuy nhiên, lưu ý rằng độ phức tạp OR của ma trận này rất nhỏ, làO(n). Vì vậy,đối sốtrực tiếp(không thông qua xếp hạng)m=nm×mAd(A)m2/2n<1rk(A)mln|A|O(n)có thể mang lại giới hạn trên tốt hơn nhiều về độ phức tạp OR của ma trận dày đặc.


Cảm ơn rất nhiều, Stasys! Cái này đẹp đấy! Trong khi đó, Ivan Mihajlin đã đưa ra một bằng chứng khác. Tôi đã đăng nó dưới đây.
Alexander S. Kulikov

2

(Tôi đã cố gắng đăng bài này dưới dạng nhận xét cho câu trả lời của Stasys ở trên, nhưng văn bản này quá dài cho một nhận xét, vì vậy, đăng nó dưới dạng câu trả lời.) Ivan Mihajlin (@ivmihajlin) đã đưa ra cách xây dựng sau. Tương tự như bằng chứng của Stasys, nó hoạt động trong trường hợp khi số lượng tối đa (chứ không phải trung bình) là 0 'trong mỗi hàng bị giới hạn.

Đầu tiên, hãy xem xét trường hợp khi mỗi hàng chứa chính xác hai số không. Hãy xem xét đồ thị vô hướng sau: tập hợp các đỉnh là [ n ] ; hai nút ij được nối bởi một cạnh, nếu có một hàng có các số 0 trong cột ij . Biểu đồ có n cạnh và do đó nó chứa một vết cắt ( L , R ) có kích thước ít nhất là n / 2 . Việc cắt này chia các cột của ma trận thành hai phần ( LR ). Bây giờ cũng chia các hàng thành hai phần: phần trên cùng T[n]ijijchứa tất cả các cột có chính xác một số không trong cả LR ; phần dưới cùng B chứa tất cả các hàng còn lại. Tốt đẹp về phần trên của ma trận (là những gì T × ( L R ) ) là nó có thể được tính bằng cách O ( n ) cửa. Đối với phần dưới cùng, hãy cắt tất cả 1 cột ra khỏi nó và thực hiện cuộc gọi đệ quy. Mối quan hệ tái phát tương ứng là C ( n ) một n + C ( n / 2 ) ngụ ý C ( n) = O ( n ) .

Bây giờ, khái quát nó vào trường hợp của ít nhất d zeros trong mỗi hàng. Đặt C d ( n ) là độ phức tạp của ma trận n × ( d n ) với tối đa d số không trên mỗi hàng (nếu có nhiều hơn d n cột, thì một số trong số chúng là tất cả 1). Phân vùng các cột thành hai phần LR sao cho ít nhất n ( 1 - 2 - d ) hàng (gọi chúng là T ) thỏa mãn tính chất sau: nếu có chính xác dcác số 0 trong một hàng, sau đó không phải tất cả chúng thuộc cùng một phần (biểu thị các hàng còn lại bằng B ). Sau đó, thực hiện ba cuộc gọi đệ quy: T × L , T × RB × ( L R ) . Điều này cho phép một mối quan hệ tái C d ( n ) một n + 2 C d - 1 ( n ( 1 - 2 - d ) ) + C d ( 2- d n). Điều này, đến lượt nó, ngụ ý rằng C d (n)f(d)n. Hàmf(d)là hàm mũ, nhưng vẫn.


Một cuộc tranh luận tốt đẹp. Nhưng nó dường như được thiết kế riêng cho trường hợp d = 2 số không trên mỗi hàng. Thế còn d> 2 số không?
Stasys

@Stasys, có thể làm được nếu tôi không nhầm. Tôi đã cập nhật câu trả lời.
Alexander S. Kulikov
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.