Problema vetorial algorítmica

13

Eu tenho um problema algébrico relacionado a vetores no campo GF (2). Seja v1,v2,...,vm (0,1) - vetores da dimensão e . Encontre um algoritmo de tempo polinomial que encontre um vetor (0,1) da mesma dimensão, de modo que não seja a soma de nenhum vetores entre . A adição de vetores está no campo GF (2), que possui dois elementos 0 e 1 ( e ).m = n O ( 1 ) u u ( log n ) O ( 1 ) v 1 , v 2 , , v m 0 + 1 = 0 + 1 = 1 0 + 0 = 1 + 1 = 0nm=nO(1)vocêvocê(registron)O(1)v1,v2,...,vm0 0+1=0 0+1=10 0+0 0=1+1=0 0

É fácil ver a existência desse vetor u por um simples argumento de contagem. Podemos encontrar em um tempo polinomial? É trivial encontrar em tempo exponencial. Vou enviar um prêmio de cheque de US $ 200 pela primeira solução correta.uvocêvocê

Bin Fu
fonte
parece vagamente relacionado ao problema da soma de subconjuntos, que é NP completo. no entanto, que usa soma inteira inteira em vez de XOR.
vzn
1
Estranhamente, tenho tentado recentemente formular e analisar um problema semelhante. tente a seção 13.5 do livro stasys jukna sobre a complexidade da função booleana. parece que seu q pode ser formulado em termos de circuitos lineares nesse capítulo.
vzn
1
que tal algoritmos super-polis, isto é, m ^ log (n)?
Dimitris
1
@Niel de Beaudrap: mas o número de XORs que você precisa verificar é super-poli (ou seja, aproximadamente ), não poli. Isso não é um problema? (mregistro(n))
Dimitris
1
Para estender a observação de vzn: parece que quase qualquer vetor satisfaz seus requisitos, pelo mesmo argumento de contagem. Eu imagino que você também gostaria de provar que um vetor (talvez gerado aleatoriamente) não está contido em nenhum subespaço abrangido pelo polilog ( n ) dos vetores: portanto, sua pergunta equivale a mostrar que o problema de determinar se um candidato é ou não o vetor u não pertence a um subespaço gerado por alguma dimensão f ( n ) ∈ polylog ( n ) dos vetores está em NP . vj
Niel de Beaudrap 22/02/12

Respostas:

8

Parece haver um erro de digitação; Suponho que você queira encontrar que não é a soma dos vetores ( log n ) O ( 1 ) entre v 1 , , v m (não n ).você{0 0,1}n(registron)O(1)v1,...,vmn

Não está claro para mim se alguma constante em funciona para você. Se você pode aceitar somas inferiores a vetores m log, talvez haja algo a ser feito. Mas se você deseja que essa quantidade seja ( log m ) 1 + δ , acho que é bastante difícil (estou trabalhando nesse problema há muito tempo).(registron)O(1)registrom(registrom)1+δ

Ainda assim, você pode estar interessado em saber que esta é uma instância do Problema de Ponto Remoto de Alon, Panigrahy e Yekhanin ("Algoritmos de Aproximação Determinísticos para o Problema de Palavra de Código Mais Próximo") para determinados parâmetros. Sejam e v 1 , , v m as colunas da matriz de verificação de paridade de um código linear em { 0 , 1 } m de dimensão d = m - n (se essa matriz não tiver classificação completa, o problema seria trivial). Então seu problema é equivalente a encontrar u { 0 ,m>nv1,...,vm{0 0,1}md=m-n que é ( log n ) O ( 1 ) - longe do código. Essa configuração de parâmetros, onde a dimensão está muito próxima de m, não é estudada no artigo. No entanto, eles podem apenas obter o afastamento log m até a dimensão d = c m para alguma constante c . De fato, acho que não conhecemos nenhum certificado de tamanho polinomial que permitaprovarque algum vetor é mais do que ω ( log m ) - longe de um espaço de dimensão Ω ( m )você{0 0,1}n(registron)O(1)registromd=cmcω(registrom)Ω(m), muito menos encontrá-lo.

Outra conexão está no aprendizado de paridades no modelo vinculado a erros. Se alguém puder aprender eficientemente -paridades (definidas em 0 , 1 m ) com erro vinculado estritamente menor que n , poderá definir valores arbitrários para os primeiros n - 1 bits de u e `` force um erro '' no último bit, definindo-o com o valor oposto ao previsto pelo aluno. Isso parece muito mais forte.(registron)O(1)0 0,1mnn-1você

O problema também está relacionado à separação do EXP de certas reduções em conjuntos esparsos.

david
fonte
1
Obrigado por apontar o erro de digitação. O último "v_n" deve ser "v_m". Espero que alguém conserte isso. Sua resposta contém informações úteis. +1
Bin Fu