Tư cách thành viên quý có thể được quyết định không gian hiệu quả?


8

Hãy xem xét các vấn đề quyết định sau đây. Đặt và để (C_0 ^ n, C_1 ^ n, \ dot, C_ {q-1} ^ n) là phù hợp liệt kê các tập hợp con của \ {0,1, \ dot, n-1 \} có tối đa n / 4 phần tử.q=i=0n/4(ni)(C0n,C1n,,Cq1n){0,1,,n1}n/4

Tứ tập hợp con Membership
Input: tuple của các số nguyên không âm (i,j,n) trong hệ nhị phân
Câu hỏi:iCjn ?

Bằng cách chọn một phép liệt kê "đẹp" , Tư cách thành viên của Tập hợp con có thể được quyết định bởi một máy Turing xác định sử dụng không quá bit không gian làm việc, cho tất cả đủ lớn không?(Cin)(0.99)nn


Thảo luận

Đặt logx=log2x . Thật dễ dàng để liệt kê tất cả các tập hợp con của tối đa k phần tử được chọn ngoài n bằng cách theo dõi các chỉ số k có kích thước logn mỗi bit. (Xem thêm phần thảo luận trong phần TAOCP của Knuth 7.2.1.3.) Khi k không đổi, đây chỉ là các bit O(logn) . Tuy nhiên, nếu chúng ta để k=cn cho một số hằng số c1/4 , thì các sơ đồ liệt kê như vậy sử dụng không gian Ω(nlogn) . Người ta cũng có thể sử dụng một vectơ đặc trưng n -bit cùng với kiểm tra số lượng bit được đặt. Tôi quan tâm đến các chương trình đánh bại n bit.

Một câu hỏi liên quan chặt chẽ là:

Đối với dương thỏa mãn bất đẳng thức , có mã đại diện cho các tập hợp con của hầu hết các phần tử được chọn từ sử dụng bit cho một số không đổi và có thể Giải mã hiệu quả?c log ( e ( 1 + c ) / c ) < 1 c n n d n d < 1cclog(e(1+c)/c)<1cnndnd<1

Lưu ý rằng với đủ lớn , và vì khi thì về mặt lý thuyết thông tin theo sau đó sẽ đạt được với một mã hoàn hảo. (Giá trị này nhỏ hơn nếu .) Do đó, tôi đang tìm kiếm một mã hợp lý sạch có thể được thao tác mà không cần sử dụng nhiều dung lượng.k i = 0 ( nnnhật ký ( n+k-1

i=0k(ni)((nk))=(n+k1k),
k=cndclog(e(1+c)/c)10<c0,2728
log(n+k1k)log[(e(n+k1)/k)k],
k=cndclog(e(1+c)/c)10<c0.2728

Để có được một mã hoàn hảo, người ta có thể chọn một số phép liệt kê của các tập hợp con, chạy một chỉ mục thông qua phép liệt kê theo thứ tự tăng dần, và sau đó có được mỗi kết hợp bằng cách giải mã chỉ mục. Tuy nhiên, giải mã mã như vậy khi dường như yêu cầu sử dụng ít nhất bit không gian cho các liệt kê mà tôi đã xem, chẳng hạn như thông qua các vectơ đặc trưng được sắp xếp bằng cách tăng trọng lượng Hamming và sau đó theo từ vựng hoặc thông qua mã Gray.nkΩ(n/logn)n

Có thể có một cách để làm điều này với không gian , nhưng tôi nghĩ có nhiều khả năng khả thi. ( 1 - ε ) no(n)(1ε)n log ( n Lưu ý rằng vì , giới hạn dưới lý thuyết thông tin đã là các bit , vì vậy đây thực sự là về việc có thể đạt được đối với một số . Một mã đủ tốt (nhưng không nhất thiết phải hoàn hảo) dường như là đủ để trả lời câu hỏi của tôi trong câu khẳng định. Nó cũng có thể là trường hợp Thành viên Tập hợp con có thể được quyết định một cách hiệu quả mà không cần xây dựng mã một cách rõ ràng. Mặt khác, một phép liệt kê như vậy có thể không tồn tại: ví dụ: mọi chuỗi liệt kê cho các giá trị củaΩ ( n ) ( 1 - ε ) n ε > 0 n ( 1 - ε ) nlog(ncn)cnlog(1/c)Ω(n)(1ε)nε>0n có thể là không đồng nhất, hoặc có thể là bất kỳ -bit ràng buộc phải bị vi phạm thường xuyên.(1ε)n


Giới hạn của bạn là lãng phí. Nếu , thì và . Một tính toán cẩn thận hơn một chút (xem ví dụ mathoverflow.net/q/55585 ) cho thấy thực sự , do đó nhật ký của nó là một lần nữa . Tất nhiên, với mọi . log ( n0<c<1/2log(icn ( nlog(ncn)=H(c)n12logn+O(1)icn ( nlog(icn(ni))log(n(ncn))H(c)n+12logn+O(1)H(c)n-1icn(ni)=O((ncn))H(c)<1c<1/2H(c)n12logn+O(1)H(c)<1c<1/2
Emil Jeřábek

@ EmilJeřábek điểm tốt, vì vậy câu hỏi có thể được mở rộng thành Thành viên nửa tập hợp chung hơn, và phần lớn các cuộc thảo luận được đơn giản hóa.
András Salamon

Câu trả lời:


3

Tôi giả sử từ các cuộc thảo luận rằng bạn không thực sự quan tâm đến không gian làm việc như đã yêu cầu, nhưng trong tổng không gian bao gồm cả kích thước của đầu vào. ( Mặt khác, sơ đồ mã hóa -bit tầm thường có thể được giải mã trong không gian logarit.)n

Đặt là hằng số đủ lớn và xem xét sơ đồ mã hóa sau cho . Tách thành khối , , có kích thước mỗi khối và đặt . Mã hóa của bao gồm chuỗi các số sau (được viết bằng nhị phân) cho mỗi :X { 0 , ... , n - 1 } { 0 , ... , n - 1 } k B u u < k n / k X u = X B u X u < kkX{0,,n1}{0,,n1}kBuu<kn/kXu=XBuXu<k

Đối với kích thước của mã hóa, giả sử . Các số lấy , sẽ không đáng kể. Chúng tôi có cho ít nhất của , trong trường hợp đó, mã hóa của mất khoảng bit; còn lại lấy tối đa bit mỗi. Tổng cộng tối đa là bit.s u O ( k log ( n / k ) ) un / ( 3 k ) k / 4 u X u H ( 1 / 3 ) n|X|n/4suO(klog(n/k))sun/(3k)k/4uXuXun/k0. 98nH(1/3)nk0.92n/kXun/k0.98n

Giải mã số tiền để quyết định khối nào đi vào, và sau đó tìm ra ; việc thứ hai được thực hiện dễ dàng trong không gian và người ta có thể sử dụng lại không gian bị chiếm bởi mã hóa của các khối còn lại (miễn là tổng không gian ít nhất là , điều đó phù hợp với đủ lớn).X u n / k + O ( log n ) 2 n / k kiXun/k+O(logn)2n/kk

Một phân tích tốt hơn cho thấy sơ đồ này đạt được không gian về cơ bản : let . Vì , trung bình của so với nhiều nhất là . Mã hóa của mất khoảng bit. Bây giờ, hàm entropy là lõm, do đó trung bình của so với nhiều nhất là và tổng không gian là . Điều này là tối ưu cho đến .H(1/4)n0.812n| X | / N 1 / 4 p u u < k 1 / 4 X u H ( p u ) n / k H ( p u ) u < k H ( 1pu=su/(n/k)|X|/n1/4puu<k1/4XuH(pu)n/kH(pu)u<kH ( 1 / 4 ) n + O ( log n ) O ( log n )H(1/4)H(1/4)n+O(logn)O(logn)

Tất nhiên không có gì đặc biệt về . Lập luận tương tự cho thấy với bất kỳ hằng số , có một sơ đồ mã hóa cho các tập con -size của có bit và có thể được giải mã tại chỗ. Ở một mức độ nào đó, nó thậm chí có thể được sử dụng cho các tập hợp con có kích thước trong đó , bằng cách lấy số khối không đổi ( hoặc như vậy), nhưng sau đó, chi phí trở nên rõ ràng hơn và vượt qua thuật ngữ chính khi giảm xuống dưới khoảng .1/4c n { 0 , ... , n - 1 } H ( c ) n + O ( log n ) s ( n ) s ( n ) « n k 2 / H ( s ( n ) / n ) O ( k đăng nhập0<c<1/2cn{0,,n1}H(c)n+O(logn)s(n)s(n)nk2/H(s(n)/n)s ( n ) O(klog(n/k))s(n)n

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.