Có biết tồn tại các hàm với thuộc tính tổng trực tiếp sau đây không?


15

Câu hỏi này có thể được hỏi hoặc trong khuôn khổ độ phức tạp của mạch Boolean, hoặc trong khuôn khổ của lý thuyết phức tạp đại số, hoặc có thể trong nhiều cài đặt khác. Thật dễ dàng để hiển thị, bằng cách đếm các đối số, tồn tại các hàm Boolean trên N đầu vào yêu cầu nhiều cổng theo cấp số nhân (mặc dù tất nhiên chúng ta không có bất kỳ ví dụ rõ ràng nào). Giả sử tôi muốn đánh giá cùng một hàm M lần, đối với một số nguyên M, trên M các bộ đầu vào riêng biệt, sao cho tổng số đầu vào là MN. Đó là, chúng tôi chỉ muốn đánh giá cho cùng một chức năng mỗi lần.f(x1,1,...,x1,N),f(x2,1,...,x2,N),...,f(xM,1,...,xM,N)f

Câu hỏi đặt ra là: có biết rằng tồn tại một chuỗi các hàm (một hàm cho mỗi N) sao cho với mọi N, với bất kỳ M nào, tổng số cổng yêu cầu ít nhất bằng M lần một hàm số mũ của N? Đối số đếm đơn giản dường như không hoạt động vì chúng tôi muốn kết quả này giữ cho tất cả M. Người ta có thể đưa ra các tương tự đơn giản của câu hỏi này trong lý thuyết phức tạp đại số và các lĩnh vực khác.f

Câu trả lời:


13

Vâng, đó là sai: có thể đánh giá các bản sao M của BẤT K f chỉ sử dụng cổng O (N (M + 2 ^ N)) có thể nhỏ hơn nhiều so với M * exp (N) (trên thực tế, bạn được khấu hao tuyến tính độ phức tạp cho hàm mũ M). Tôi không nhớ một tài liệu tham khảo, nhưng tôi nghĩ rằng nó có thể đi một cái gì đó như sau:

Đầu tiên thêm 2 ^ N đầu vào giả tưởng chỉ là hằng số 0 ... 2 ^ N-1 và bây giờ biểu thị đầu vào N-bit thứ i của xi (vì vậy với i <= 2 ^ N, chúng ta có xi = i và cho 2 ^ N <i <= 2 ^ N + M chúng ta có đầu vào ban đầu). Bây giờ chúng ta tạo một bộ ba cho mỗi đầu vào M + 2 ^ N: (i, xi, fi) trong đó fi là f (i) cho đầu vào 2 ^ N đầu tiên (một hằng số được gắn vào mạch) và fi = "*" nếu không thì. Bây giờ chúng ta sắp xếp các bộ ba (i, xi, fi) theo khóa xi và để bộ ba thứ j (i_j, x_j, f_j) từ đây, chúng ta tính toán một bộ ba (i_j, x_j, g_j) bằng cách cho g_j f_j nếu f_j không phải là "*" và đặt g_j là g_ (j-1) nếu không. Bây giờ sắp xếp các bộ ba mới trở lại theo khóa i_j và bạn đã có câu trả lời đúng tại các địa điểm chính xác.


Tài giỏi! Một điều nhỏ: chúng ta phải sắp xếp các bộ ba một cách ổn định (hoặc trong một số phương pháp khác đảm bảo rằng các bộ ba với fi ≠ Trả giá đến sớm hơn các bộ ba với fi = Lỗi phạm ).
Tsuyoshi Ito

Rất thông minh, và cảm ơn. Có bất cứ điều gì tương tự làm việc, tuy nhiên, trong các thiết lập phức tạp đại số, hay không?
matt vội vàng

1
Tôi đoán một cách khác để nói điều này trong trường hợp M chuyển sang vô cùng là bạn có thể đầu tư 2 ^ N * 2 ^ N thời gian để xây dựng bảng băm cho tất cả các giá trị của f, và sau đó bạn có thể tính toán mọi bản sao trong O (N ) thời gian. Tôi nghĩ rằng có một lý do khác mà ít nhất chúng ta không nên biết nếu điều đó là đúng, ngay cả đối với các giá trị N nhẹ hơn, đó là nó sẽ cung cấp tốt hơn giới hạn thấp hơn đã biết. Bạn có thể xây dựng một hàm với siêu tuyến bị ràng buộc bởi brute đầu tiên buộc phải tìm một hàm trên các đầu vào n '= log n (hoặc có thể n' = loglog n) với độ phức tạp lớn và sau đó lấy n / n'copies của nó .
Boaz Barak

1
Trong tranh luận ở trên về lý do tại sao các kết quả như vậy dẫn đến giới hạn thấp hơn tôi không biết liệu số lần lặp lại có thực sự nhẹ hơn không, nhưng nó cũng áp dụng cho các trường vô hạn.
Boaz Barak

Xin chào Boaz, trong thực tế nhận xét của bạn chính xác là lý do tại sao tôi quan tâm đến sự tồn tại của các chức năng này. Tuy nhiên, có một điểm tinh tế, đó là "vũ phu". Có thể (đó là những gì câu hỏi của tôi nhắm đến), rằng các hàm như vậy tồn tại nhưng chúng tôi không có thuật toán nào cho phép chúng tôi chứng minh rằng một hàm nhất định có thuộc tính này. Rốt cuộc, dường như không có cách nào để vũ trang tài sản mà giới hạn dưới đó giữ cho tất cả M, bởi vì bạn phải kiểm tra vô số mạch khác nhau. Vì vậy, có lẽ các hàm như vậy tồn tại cho các trường vô hạn nhưng chúng ta không thể hiển thị nó.
matt hastings

10

Có một kết quả khác làm hạn chế hơn nữa các khả năng cho loại hiện tượng tổng hợp trực tiếp mà bạn đang tìm kiếm. Một kết quả ban đầu nổi tiếng của Shannon (được thắt chặt bởi Lupanov) cho thấy tất cả các hàm Boolean đều có thể tính toán được bằng các mạch có kích thước và bởi đối số đếm của Shannon, điều này rất chặt chẽ đối với các hàm ngẫu nhiên. Người ta có thể nghĩ rằng, ít nhất là đối với các giá trị vừa phải của m , độ phức tạp mạch của các trường hợp tính toán m của một f ngẫu nhiên sẽ có tỷ lệ là m 2 n / n . Tuy nhiên, Dietmar Uhlig cho thấy trongO(2n/n)mmfm2n/n

"Mạng tính toán các hàm Boolean cho nhiều giá trị đầu vào"

rằng điều này là sai: miễn là , người ta có thể tínhm cáctrường hợp của bất kỳfnàovới một mạch có kích thướcO( 2 n / n) -chi phí tương tự như đối vớim=1!m=2o(n/logn)mfO(2n/n)m=1

Tôi không thể tìm thấy một bản sao không có kiểm soát trực tuyến hoặc trang chủ cho tác giả, nhưng tôi đã xem qua bài báo trong thủ tục này:

Độ phức tạp của hàm Boolean (Sê-ri Bài giảng của Hội Toán học Luân Đôn)


Cảm ơn! Không có câu hỏi nào về nghịch lý trong TCS sao? Điều này cũng có thể phục vụ như là một câu trả lời ở đó :)
arnab

Cảm ơn câu trả lời này cũng. Không thể đọc các thủ tục tố tụng, tôi đoán rằng tương tự như câu trả lời trước đó, nó có thể dựa vào số lượng hữu hạn của các đầu vào có thể, vì vậy một lần nữa câu hỏi tiếp theo như trên: trong trường hợp phức tạp đại số thì sao?
matt hastings

Trên thực tế, lần đầu tiên Shannon đã chứng minh giới hạn trên của O (2 ^ n / n); Lupanov có hằng số hàng đầu đúng. Tôi đã sửa nó. Các chi tiết được giải thích trong "Xem xét giới hạn về kích thước mạch của các chức năng cứng nhất", bởi Frandsen và Miltersen.
Andy Drucker

5

Về độ phức tạp đại số, tôi không biết một ví dụ về độ phức tạp theo cấp số nhân giảm xuống mức độ phức tạp theo cấp số mũ, nhưng ít nhất có một ví dụ đơn giản rằng độ phức tạp của các bản sao M có thể nhỏ hơn đáng kể so với M độ phức tạp của một bản sao :

Đối với ma trận n * n "ngẫu nhiên" A, độ phức tạp của dạng song tuyến được xác định bởi A, (hàm f_A (x, y) = xAy, trong đó x và y là 2 vectơ có độ dài n) là Omega (n ^ 2 ) - điều này có thể được hiển thị bằng một đối số thứ nguyên "giống như đếm" vì bạn cần n ^ 2 "địa điểm" trong mạch để đặt các hằng số. Tuy nhiên, với n cặp vectơ khác nhau (x ^ 1, y ^ 1) ... (x ^ n, y ^ n), bạn có thể đặt x vào các hàng của ma trận n * n X và tương tự như y vào các cột của ma trận Y, sau đó đọc tất cả các câu trả lời x ^ iAy ^ i từ đường chéo của XAY, trong đó điều này được tính trong các hoạt động n ^ 2.3 (hoặc hơn) bằng cách nhân ma trận nhanh, ít hơn đáng kể so với n * n ^ 2.


Cảm ơn, tôi biết ví dụ đó. Một điều tương tự là tồn tại đa thức bậc n trong một biến cần thời gian n để đánh giá tại một điểm nhất định (mặc dù tôi không nghĩ có bất kỳ ví dụ rõ ràng nào, tôi có sai không?) Tuy nhiên, người ta có thể đánh giá một đa thức như vậy tại n điểm trong thời gian n log ^ 2 (n).
matt hastings

1
Tôi đã tìm thấy hai bài báo từ thập niên 80 về bài toán tổng đại số: "Về tính hợp lệ của phỏng đoán tổng trực tiếp" của Ja'ja và Takche, và "Về phỏng đoán tổng trực tiếp mở rộng" của Bshouty. Tôi không thể tóm tắt nội dung của họ, nhưng có lẽ chúng sẽ hữu ích.
Andy Drucker

5

Điều này đã được nghiên cứu và giải quyết bởi Wolfgang Paul, người đã chỉ ra về cơ bản những gì được thảo luận.


2
Đẹp! Có bất kỳ tài liệu tham khảo?
Hsien-Chih Chang 張顯
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.