Mạch số học chỉ với một cổng ngưỡng


21

Khi giới hạn 0 - 1 đầu vào, mỗi {+,×} -circuit F(x1,,xn) tính một số chức năng F:{0,1}nN . Để có được hàm boolean , chúng ta chỉ cần thêm một cổng ngưỡng fanin-1 làm cổng đầu ra. Khi nhập a{0,1}n , ngưỡng kết quả {+,×} -mạchsau đó kết quả đầu ra1 nếuF(a)t , và kết quả0 nếuF(a)t1 ; ngưỡngt=tn có thể là bất kỳ số nguyên dương nào, có thể phụ thuộc vàon nhưng khôngphụ thuộcvào giá trị đầu vào. Các mạch kết quả tính toán một số (đơn điệu)booleanchức năng F:{0,1}n{0,1} .

Câu hỏi: Cần ngưỡng {+,×} -circuits được mô phỏng một cách hiệu quả bởi {,} -circuits?

Theo "hiệu quả" ý tôi là "với nhiều nhất là sự gia tăng kích thước đa thức." Câu trả lời là rõ ràng "có" cho ngưỡng t=1 : chỉ cần thay thế + bởi , × bởi , và loại bỏ các cổng ngưỡng ngoái. Đó là, {,} -circuits là trên thực tế threshold- 1 {+,×} -circuits. Nhưng những gì về ngưỡng lớn hơn, giả sử, t=2 ?

Người ta có thể định nghĩa các phép tương tự số học #C của hầu hết các lớp mạch boolean chỉ bằng cách sử dụng thay vì OR, thay vì AND và thay vì . Ví dụ: các mạch là -các bộ có độ sâu không đổi với các cổng fanin và không giới hạn , và nhập vào và . Agrawal, Allender và Datta đã chỉ ra rằng ngưỡng = . (Nhắc lại rằng chính là một+ × 1 - x i ˉ x i # A C 0 { + , × } + × x i 1 - x iC+×1xix¯i#AC0{+,×}+×xi1xi T C 0 A C 0#AC0TC0AC0tập hợp con đúng của ; nói, chức năng Đa số.) Nói cách khác, các mạch ngưỡng có độ sâu không đổi có thể được mô phỏng hiệu quả bằng các độ sâu không đổi -các bộ chỉ với một cổng ngưỡng duy nhất! Tuy nhiên, lưu ý rằng câu hỏi của tôi là về các mạch đơn điệu (không có dấu trừ " " dưới dạng cổng và thậm chí không có làm đầu vào). Một ngưỡng cửa (cuối cùng) có thể mạnh đến thế không? Tôi không biết những thứ này, vì vậy bất kỳ con trỏ liên quan đều được chào đón. { + , - , × }TC0{+,,×}1 - x tôi1xi

NB Có một kết quả liên quan thú vị khác do Arnold Rosenbloom: -circuits chỉ với một hàm đơn điệu như cổng đầu ra có thể tính toán mọi hàm lát với . Hàm lát là hàm boolean đơn điệu, đối với một số cố định , xuất ra (tương ứng ) trên tất cả các đầu vào có ít (tương ứng, nhiều hơn) so với . Mặt khác, việc đếm dễ dàng cho thấy hầu hết các hàm lát yêu cầu chung Land -các bộ có kích thước theo cấp số nhân. Do đó, một cổng đầu ra bổ sung "vô tội" có thể{+,×}O ( n ) k 0 1 k { , , ¬ }g:N2{0,1}O(n)k01k{,,¬}làm cho mạch đơn điệu toàn năng! Câu hỏi của tôi hỏi liệu điều này cũng có thể xảy ra khi là một cổng ngưỡng fanin . 1g:N{0,1}1


THỰC TẾ (đã thêm 03.11.2014 ): Emil Jeřábek đã chỉ ra (thông qua một công trình đơn giản đáng kinh ngạc, xem câu trả lời của anh ấy bên dưới) rằng câu trả lời là "có" miễn là cho hằng số . Vì vậy, câu hỏi vẫn chỉ mở cho các ngưỡng siêu đa thức (tính bằng ). ctnccn

Thông thường, trong các ứng dụng, chỉ có các ngưỡng lớn mới hoạt động: chúng ta thường cần các ngưỡng có dạng cho . Giả sử, nếu đếm số lượng đường dẫn - trong biểu đồ được chỉ định bởi đầu vào - , thì với với , các threshold- phiên bản của giải quyết sự tồn tại của một Hamiltonian - con đường vấn đề trên đồ thị -vertex (xem, ví dụ như ở đây ). ε > 0 F : { 0 , 1 } nN s t 0 1 t = m m 2 m n 1 / 3 t F s t m2nϵϵ>0F:{0,1}nN st01t=mm2mn1/3tF stm

(Đã thêm 14.11.2014): Vì Emil đã trả lời một phần lớn câu hỏi của tôi và vì trường hợp ngưỡng theo cấp số nhân không có trong tầm nhìn, nên giờ tôi chấp nhận câu trả lời (rất hay) này của Emil.



Chờ kích thước theo cấp số nhân? Tôi nghĩ rằng bạn có thể thực hiện một hàm lát theo kích thước đa thức với các cổng boolean, đó chỉ là một công thức (không thể sử dụng lại kết quả trung gian nhiều lần) phải có kích thước theo cấp số nhân.
Zsbán Ambrus

@ Zsbán Ambrus: Có ít nhất mạch kích thước S , nhưng ít nhất 2 2 b n biệt k chức năng -slice đã cho k = n / 2 ; a, b hằng số dương. SaSS22bnkk=n/2
Stasys

2nc({0,,t},min{x+y,t},min{xy,t})

2
Bạn nhận được mạch trực tiếp. Thay thế mỗi nút bằng nút , trong đó tính toán vị từ Boolean . (Bạn không cần vì nó tính hằng số , nhưng nó đơn giản hóa biểu thức bên dưới.) Trong biểu diễn này, và có thể được mô phỏng theo các mạch có kích thướcc t + 1 c 0 , ... , c t c i c i c 0 1 + { , },ct+1c0,,ctcicic01+{,} : ví dụ, nếu c = một + b , sau đó c i = O(t2)c=a+b. ci=j+ki(ajbk)
Emil Jeřábek hỗ trợ Monica

1
@Emil Jeřábek: Rất đẹp! Bây giờ tôi đã thêm một nhận xét về điều này. Trên thực tế, có lẽ đáng để đặt nhận xét này như một câu trả lời: trường hợp ngưỡng đa thức cũng không rõ ràng ngay lập tức (ít nhất là đối với tôi).
Stasys

Câu trả lời:


16

Câu trả lời là có vâng, nếu . Tổng quát hơn, một ngưỡng { + , } -circuit kích thước s với ngưỡng t có thể được mô phỏng bởi một { , } -circuit kích thước O ( t 2 s ) .t=nO(1){+,}st{,}O(t2s)

Thứ nhất, nhận xét rằng nó là đủ để đánh giá mạch trong với Ngoài ra cắt ngắn và phép nhân: đặc biệt, nếu một , một 't , sau đó một + b , một ' + b t , và một trong hai a b , a b t là tốt, hoặc a b = a b ( = 0 ) .{0,,t}a,ata+b,a+btab,abtab=ab(=0)

Với ý nghĩ này, chúng ta có thể mô phỏng mạch bằng mạch đơn điệu Boolean bằng cách thay thế mỗi nút bằng các nút c 0 , Lỗi , c t , trong đó c i dự định tính toán vị ngữ c i . (Chúng ta chỉ cần c 0 để thuận tiện cho công chứng, nó tính hàm 1 không đổi .) Nếu c là biến đầu vào Boolean x , chúng ta lấy c 1 = x , c 2 = = c t = 0cc0,,ctcicic01cxc1=xc2==ct=0. Nếu là một cổng Ngoài ra, nói c = một + b , chúng tôi thực hiện nó qua c i = j , k t j + k i ( một jb k ) . Cổng nhân được xử lý theo cùng một cách.cc=a+b

ci=j,ktj+ki(ajbk).

Điều này có các trên một cổng của mạch ban đầu. Là một tối ưu hóa nhỏ, chúng ta có thể giảm nó xuống O ( t 2 ) bằng cách đặt c tO(t3)O(t2) sao cho mỗiajbkđược sử dụng làm đầu vào của chỉ một trong cáccổngci.

ct=j+kt(ajbk),ci=ci+1j+k=i(ajbk),i<t,
ajbkci
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.