É difícil encontrar cadeias de adição ideais?

20

Uma cadeia de adição é uma sequência de números inteiros positivos que e cada índice , temos para alguns índices . O comprimento da cadeia de adição é ; o alvo da cadeia de adição é .x 1 = 1 i 2 x i = x j + x k 1 j , k < i(x1,x2,,xn)x1=1i2xi=xj+xk1j,k<inxn

O que se sabe sobre a complexidade do seguinte problema: Dado um número inteiro , qual é o comprimento da cadeia de adição mais curta cujo destino é ? É NP-difícil?NNN

A Wikipedia aponta para um artigo de 1981 de Downey, Leong e Sethi que prova que o seguinte problema relacionado é NP-difícil: Dado um conjunto de números inteiros, qual é o comprimento mínimo de uma cadeia de adição que inclui todo o conjunto? Aparentemente, vários autores afirmam que este artigo prova que o problema de alvo único é NP-difícil, mas não é.

Jeffε
fonte
2
duas questões: é dado na forma binária presumo, e pode a e ser idênticos (em caso afirmativo, então há sempre uma sequcia de registo de comprimento n através de expansão binário)j kNjk
Suresh Venkat
Vamos supor que seja dado em binário, embora eu não conheça um algoritmo de politempo, mesmo quando é unário. E sim, adicionar a si mesmo é permitido - de fato, necessário para decolar. A cadeia mais curta para 128 é (1, 2, 4, 8, 16, 32, 64, 128). NNN
Jeffε

Respostas:

11

O problema é mencionado como aberto na tese de doutorado de Eric Lehman "Algoritmos de aproximação para compressão de dados baseados em gramática" em 2002. Na pág. 35 da tese:

"No entanto, uma solução exata para o problema da cadeia de adição permanece estranhamente ilusória. O método M-ary é executado no tempo polylog (n) e fornece uma aproximação de 1 + o (1). No entanto, mesmo que exponencialmente mais tempo seja permitido, poly ( n), nenhum algoritmo exato é conhecido. "

Andrew W.
fonte
2

E no artigo principal da tese de Lehman, há uma boa visão geral do problema (seção VB) com referências.

mgalle
fonte
1

Eu gostaria de documentar algum progresso parcial - aparentemente promissor até agora - em direção a um algoritmo de tempo polinomial. UPDATE : Adicionados alguns detalhes para explicar uma falha apontada por @David (obrigado!).

A abordagem é reduzir isso a uma instância de MIN-ONES EVEN-3 CSPs (MOEC), que passa a ser um problema solucionável em tempo polinomial. A prova da redução é um pouco confusa, mas espero que exista!

Uma instância do MOEC é uma família de subconjuntos de tamanhos de um universo de variáveis ​​e um número . A questão é se existe uma atribuição de peso satisfatória no máximo , onde uma atribuição é uma função do universo para , o peso de uma atribuição é o número de variáveis ​​que ele atribui uma e um a atribuição é satisfatória se, para cada subconjunto de variáveis , a atribuição (digamos ) tiver a propriedade de:k k { 0 , 1 } { x , y , z } f3kk{0,1}{x,y,z}f

f(x)+f(y)+f(z)=0(mod  2) .

Você pode visualizar isso como 3-SAT com uma noção diferente de satisfação - escolha nenhuma ou escolha duas. Ficarei um pouco relaxado sobre a instância do MOEC, pois permitirei, além dos comuns, implicações, disjunções de comprimento dois e a restrição . Acredito que essas simples adições manterão o tempo polinomial do problema.( x = 1 )3(x=1)

Digamos que estamos reduzindo o problema da cadeia de adição para o número . A variável definida para essa redução é a seguinte:n

Para cada , a variável N i . Vou re-escrever a variável N N como N . Para cada par i , j , de modo que 1 i , j k , introduza as variáveis P i j e Q i j . 1inNiNnNi,j1i,jkPijQij

Introduza os seguintes subconjuntos, para cada , de modo que k = i + j :i,j,kk=i+j

{Pij,Qij,Nk}

e as seguintes implicações:

e P i jN jPijNiPijNj

e as seguintes restrições:

.(N1=1),(N=1)

Finalmente, precisamos adicionar restrições que garantam que pelo menos uma das variáveis seja selecionada quando uma variável N "correspondente" (perdoe o abuso de notação) for atribuída. Isto pode ser feito adicionando o habitual ou restrição sobre toda P i j tal que i + j soma para o N -variável em questão. Porém, precisamos encontrar uma maneira de recodificar isso na estrutura do MOEC.PNPiji+jN

Então, deixe-me descrever uma maneira geral de dizer, considerando um conjunto de variáveis:

,(X,l1,l2,,lt)

como a restrição "se uma atribuição é gratificante e conjuntos a um, em seguida, exatamente um dos l i 's deve ser definido como um pela atribuição", podem ser codificados com a sintaxe MOEC. Observe que isso é suficiente para nossos requisitos, simplesmente introduzimos as restrições:Xli

.(Nk,{Pij | i+j=k})

A codificação é feita da seguinte maneira. Seja a árvore binária completa enraizada nas folhas t . Introduzir uma nova variável t d i para todos 1 d log t e 1 i G ( d ) , em que G ( d ) indica o número de nodos de T X em profundidade d .TXtTdi1dlogt1iL(d)L(d)TXd

Para cada nó , se p e q ser seus filhos na árvore, introduzir o mesmo 3-restrição:Tdipq

{Tdi,p,q}

Isso significa que, se uma variável correspondente a um nó estiver configurada como true, exatamente um de seus filhos também deverá ser configurado como true. Agora adicione as implicações:

e ( d log t , j ) l j (vírgula para maior clareza).(XT11)(dlogt,j)lj

Essa combinação de restrições e implicações do EVEN-3 é equivalente à restrição que desejamos codificar.

Intuitivamente, o que está acontecendo é que as duas últimas restrições acionam exatamente as reações necessárias para construir uma cadeia de adição. Em particular, vamos olhar para a 's que são atribuídos um por uma atribuição satisfazendo - a alegação é de que eles vão formar uma cadeia de adição para N : uma vez que a atribuição é forçado a definir N para um, deve haver pelo menos um P i j que foi definido como um, e as implicações forçam N i e N jNiNNPijNiNjser atribuído um, e isso vai até o fim (tenho certeza de que isso pode ser formalizado com indução, embora ainda não tenha elaborado esse nível de detalhe). Observe que uma atribuição de saturação que é ideal no número de atribuídas não ajustará true para dois pares ( r , s ) e ( r , s ) , pelo motivo de as variáveis P virem com o adicional bagagem das implicações, e as variáveis Q não (elas existem para garantir a satisfação do MESMO-3 - em uma cláusula em que N i é verdadeiro e PPij(r,s)(r,s)PQNi não é verdade, ainda precisamos escolher algo para satisfazer essa cláusula, e por razões que são fáceis de ver, isso não pode ser uma variável universal através cláusulas).Pij

Portanto, acredito que uma cadeia de adição corresponde a uma tarefa satisfatória e vice-versa. Deixe-me descrever uma parte disso formalmente: dada uma cadeia de adição, construímos uma tarefa que é satisfatória. Para começar, f sets tudo N i é o recurso na cadeia para um, e o outro N i 's para zero. Além disso, se k apresenta na cadeia de adição, em seguida, para cada N k , deixe de i k , j k ser os elementos da cadeia de tal modo que i k + j k = j . Então f defineffNiNikNkik,jkik+jk=jf para um (e Q i k j k a zero), e todos ( i , j ) de tal forma que i i k e j j k e i + j = k , f conjuntos Q i j para uma (e P i j para zero). Para todos os k que não aparecem na cadeia de adição, para todos os i , j de modo que iPikjkQikjk(i,j)iikjjki+j=kfQijPijki,j , defina todas as Q i j e P i j como zero (observe que a consistência decorre do fato de que dois números são somados de apenas uma maneira). Cada cláusula envolvendo um N i na cadeia é satisfeita porque, quer uma P-variável ou Q-variável que corresponde ao que foi definido como um (e aviso que exactamente um deles são definidos para um para cada par ( i , j ) ). Para todas as outras cláusulas, tudo é definido como zero. É fácil verificar que as implicações são válidas.i+j=kQijPijNi(i,j)

ttQxxé incorrido na cadeia mais longa de qualquer maneira, e o restante se compara favoravelmente. No entanto, eu tenho que escrever isso com cuidado, e posso estar vendo coisas da síndrome pós-meia-noite!

Neeldhara
fonte
1
Se isso funcionar, parece que ainda seria um tempo exponencial (quando N é expresso em binário) porque o número de variáveis ​​é proporcional a N ^ 2 em vez de polilog (N).
David Eppstein
N
Não vejo como as restrições que você descreve forçam uma solução a ser válida. O que impede você de definir P_ij = 0 e Q_ij = 1 para todos os i + j = n e P_ij = Q_ij = 0 para todos os outros i, j?
David Eppstein
NiPij