A associação de quarto de subconjunto pode ser decidida com eficiência de espaço?


8

Considere o seguinte problema de decisão. Seja e deixe ser adequado enumeração dos subconjuntos de que possuem no máximo elementos.q=i=0n/4(ni)(C0n,C1n,,Cq1n){0,1,,n1}n/4

Quartas-de-Subconjunto Membership
Entrada: tupla de inteiros não negativos representada em binário Pergunta: é ? (i,j,n)
iCjn

Ao escolher uma enumeração "legal" , a Associação de subconjuntos de trimestre pode ser decidida por uma máquina de Turing determinística usando não mais do que bits de espaço de trabalho, para todos os grandes o suficiente ?(Cin)(0.99)nn


Discussão

Seja logx=log2x . É fácil enumerar todos os subconjuntos de no máximo k elementos escolhidos dentre n , acompanhando k índices de tamanho logn bits cada. (Veja também a discussão na seção 7.2.1.3 de Knuth, TAOCP). Quando k é constante, são apenas O(logn) bits. No entanto, se deixarmos k=cn para alguma constante c1/4 , esses esquemas de enumeração usarão o espaço Ω(nlogn) . Pode-se também usar um vetor característico de n bits juntamente com uma verificação do número de bits definidos. Estou interessado em esquemas que batem n bits.

Uma questão intimamente relacionada é então:

Para positivo satisfazendo a desigualdade , existe um código que representa subconjuntos de no máximo elementos escolhidos entre que usa bits para alguma constante e pode ser decodificado de forma eficiente?c log ( E ( 1 + c ) / c ) < 1 c n n d n d < 1cclog(e(1+c)/c)<1cnndnd<1

Observe que para grande o suficiente , e desde quando então a informação é teoricamente segue que seria alcançado com um código perfeito. (Isso é menor que se .) Portanto, estou procurando um código razoavelmente limpo que possa ser manipulado sem usar muito espaço.k i = 0 ( nnlog ( 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

Para obter um código perfeito, pode-se escolher uma enumeração dos subconjuntos, executar um índice através da enumeração em ordem crescente e, em seguida, obter cada combinação decodificando o índice. No entanto, decodificar esse código quando parece exigir o uso de pelo menos bits de espaço para as enumerações que eu observei, como por meio de vetores característicos ordenados pelo aumento do peso de Hamming e, em seguida, lexicograficamente , ou via códigos Gray.nkΩ(n/logn)n

Pode haver uma maneira de fazer isso com espaço, mas acho que é mais provável que seja viável. ( 1 - ε ) no(n)(1ε)n Observe que, como , o limite inferior da teoria da informação já é bits, então isso realmente é sobre se pode ser alcançado por alguns . Um código que seja bom o suficiente (mas não necessariamente perfeito) parece ser suficiente para responder afirmativamente à minha pergunta. Também pode ser que a associação de quartos de subconjuntos possa ser decidida eficientemente sem construir explicitamente um código. Por outro lado, essa enumeração pode não existir: por exemplo, toda sequência de enumerações para valores deΩ ( n ) ( 1 - ε ) n ε > 0 n ( 1 - ε ) nlog(ncn)cnlog(1/c)Ω(n)(1ε)nε>0n pode ser inerentemente não uniforme, ou pode ser o caso de qualquer bits ser violado infinitamente com frequência.(1ε)n


Seus limites são um desperdício. Se , então e . Uma computação um pouco mais cuidadosa (veja, por exemplo, mathoverflow.net/q/55585 ) mostra que, na verdade, ; portanto, seu log é novamente . Obviamente, para todos . 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 bom ponto, para que a questão possa ser estendida aos membros de meio-subconjunto mais gerais e grande parte da discussão simplificada.
András Salamon

Respostas:


3

Suponho que, na discussão, você não esteja realmente interessado no espaço de trabalho conforme reivindicado, mas no espaço total, incluindo o tamanho da entrada. (Caso contrário, o esquema de codificação trivial de bits poderá ser decodificado no espaço logarítmico.)n

Seja uma constante suficientemente grande e considere o seguinte esquema de codificação para . Divida em blocos , , de tamanho cada, e coloque . A codificação de consiste na sequência dos seguintes números (escritos em binário) para cada :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

  • o tamanho;su=|Xu|

  • o número correspondente a no sistema combinatório de números para subconjuntos .s uXusu

Quanto ao tamanho da codificação, assuma . Os números recebem bits, que serão desprezíveis. Temos para pelo menos dos 's, nesse caso a codificação de leva cerca de bits; o restante leva no máximo bits cada. O total é no máximo bits.s u S ( k log ( n / k ) ) s 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

Decodificar equivale a decidir em qual bloco entra e depois descobrir ; o último pode ser feito facilmente no espaço e é possível reutilizar o espaço ocupado pelas codificações dos blocos restantes (desde que o espaço total seja pelo menos , o que é aceitável para grande o suficiente).X u n / k + O ( log n ) 2 n / k kiXun/k+O(logn)2n/kk

Uma análise melhor mostra que esse esquema alcança o espaço essencialmente : seja . Como , a média de sobre é no máximo . A codificação de leva cerca de bits. Agora, a função de entropia é côncava; portanto, a média de sobre é no máximo , e o espaço total é . Isso é ideal até .H(1/4)n0.812npu=su/(n/k)|X|/n1/4puu<k1/4XuH(pu)n/kH(pu)u<kH(1/4)H(1/4)n+O(logn)O(logn)

Obviamente, não há nada de especial em . O mesmo argumento mostra que, para qualquer constante , existe um esquema de codificação para os subconjuntos size de que usam bits e pode ser decodificado no local. Até certo ponto, ele pode até ser usado para subconjuntos de tamanho de que , obtendo um número não constante de blocos ( ou menos), mas a sobrecarga de fica mais acentuada e ultrapassa o termo principal quando cai abaixo aproximadamente .1/40<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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.