Soma do subconjunto vs. produto do subconjunto (dureza NP forte vs. fraca)

15

Eu esperava que alguém pudesse me explicar por que exatamente o problema do produto do subconjunto é fortemente NP-difícil, enquanto o problema da soma do subconjunto é fracamente NP-difícil.

Subconjunto Soma: Dado e T , existe um subconjunto X tal que i X X={x1,...,xn}TXiXxi=T .

Subconjunto do produto: Dado e T , não existe um subconjunto X ' tal que Π i X ' x i = T .X={x1,...,xn}TXiXxi=T

Eu sempre pensei que os dois problemas eram equivalentes - uma instância do SS poderia ser transformada em uma instância do SP via exponenciação e uma instância do SP para SS via logaritmos. Isso me levou a concluir que os dois pertenciam à mesma classe de NP-hard - ou seja, ambos eram fracamente NP-hard.

Além disso, parece que a mesma recorrência pode ser usada para resolver ambos os problemas usando programação dinâmica com uma alteração muito pequena (substituindo subtração em SS por divisão em SP).

Isso foi até eu ler o capítulo 8 de "Teoria da computação", de Bernard Moret (para aqueles que não têm o livro, ele tem uma prova de dureza do produto do subconjunto via X3C - um problema fortemente difícil de NP).

Entendo a redução, mas não consigo descobrir o que havia de errado com minha conclusão anterior (equivalência dos dois problemas).


ATUALIZAÇÃO : Acontece que o produto do subconjunto é apenas fracamente NP completo (o produto de destino é exponencial em ). Gary e Johnson publicaram isso na coluna NP-completeness em 1981 , mas acho que era menos visível do que a afirmação anterior em seu livro.Ω(n)

RDN
fonte
5
Provavelmente, seria bom imaginar como você implementaria seu algoritmo de programação dinâmica. Então, você descobriria o que estava errado.
Yoshio Okamoto
@ MohammadAl-Turkistany: Está na seção final desta coluna
RDN 28/03

Respostas:

5

Em relação ao problema de equivalência da Soma do Subconjunto e do Produto do Subconjunto Existe um detalhe técnico referente ao Produto do Subconjunto. O produto de x's = T é na verdade psuopolinomial se T não for exponencial! Portanto, as provas de que o Subset Product é NP Hard não são (por razões técnicas !!!) muito corretas!

No entanto, dada a promessa de que T é grande, a redução via Logaritmos para Subconjunto dá um SOM DE SUBSET NÃO NORMAL, que está acima dos reais! Isso significa que o algoritmo Psuedopolinomial para Subconjunto de soma não se aplica! Embora os logaritmos sejam pequenos, as casas decimais atrapalham a Programação Dinâmica Psuedopolinomial!

Eu espero que isso ajude

Zelah

Zelah 02
fonte
2
Acontece que você estava certo o tempo todo sobre as reduções estarem incorretas (ou seja, alegando que elas mostram forte completude de NP, quando não mostram). Obrigado!
RDN 28/03
8

Em primeiro lugar, o uso da exponenciação para ir do SS para o SP funciona (usando a base 2 em vez da base ), mas aumenta o tamanho dos números envolvidos. Uma dureza NP fraca significa que, se os números forem pequenos (ou mais precisamente, indicados como unários), o problema não será mais difícil. Portanto, o uso da exponenciação cria instâncias de tamanho exponencial do SP, mesmo para as instâncias fáceis do SS, em que os números são escritos em unário.e

Em segundo lugar, o uso de logaritmos para ir de SP para SS não funciona, pois os logaritmos geralmente geram valores não inteiros. SS e SP são definidos usando números inteiros, e os logaritmos geralmente resultam em valores transcendentais, difíceis de representar ou fazer contas.

<edit>

Seja um número inteiro, A > 0 , então o log 2 A é racional se, e somente se A for uma potência de 2, e transcendental de outra forma. Em primeiro lugar, se log 2 A = pAA>0log2AA para inteiros diferentes de zeropeq, entãoA=2 plog2A=pqpq ,Aq=2p. Portanto, temos queA=2rpor decomposição primária. Além dissoArq=2p, para que uma dadaUmpodemos escolherq=1ep=rpara provarlog2Umé racional.A=2pqAq=2pA=2rArq=2pAq=1p=rlog2A

Só precisamos mostrar que o nunca é transcendental. Isso se segue do teorema de Gelfond-Schneider , para uma formulação equivalente (como pode ser encontrada na página da Wiki) é "se α e γ são números algébricos diferentes de zero e tomamos qualquer logaritmo diferente de zero de α , então ( log γ ) / ( log α ) = log α γ é racional ou transcendental. " Também é fácil de verificar tomando o inverso do teorema e definindo α β = γ e, portanto, βlog2Aαγα(logγ)/(logα)=logαγαβ=γ .β=logαγ

</edit>

Por fim, considere o que acontece quando tentamos o algoritmo de programação dinâmica do SS no SP. Como usamos produtos em vez de somas, os números envolvidos aumentam enormemente, e a matemática arbitrária de precisão necessária de repente se torna um fator no tempo de execução. É por isso que o algoritmo não pode resolver instâncias de SP rapidamente, mesmo que os números estejam unários.

Alex ten Brink
fonte
isso leva a um caso especial um tanto interessante. para que classe de números os log's são expressáveis ​​como racionais e não exigem precisão infinita? nesse caso, os problemas seriam quase equivalentes e redutíveis um ao outro. também parece levar a um algoritmo de aproximação "natural".
vzn
1
Obrigado pela ótima resposta! Eu tenho apenas um problema - eu entendo por que pegar logs é ilegal (exceto, talvez, no caso em que os logs tenham comprimento poli - como vzn aponta), mas ainda não tenho certeza sobre a legalidade de ir de SS para SP via exponenciação. O WRT passando de SS para SP, como você mencionou (via exponenciação), não encontramos o seguinte problema: O número de bits na instância de entrada de é O ( n log x ) e o número de bits no A instância de I S P é O ( n x ) . Esta é uma explosão exponencial. Então, ainda é legal? Se for, por que?ISSO(nlogx)ISPO(nx)
RDN 25/03
1
@vzn, RDN: editei uma caracterização quando o logaritmo é transcendental. Sobre a explosão da redução, ela depende da sua definição de 'legal': a redução está correta , mas sua eficiência não é polinomial e, portanto, não diz nada sobre a dureza NP. Portanto, não é uma redução correta no tempo de polissemia, mas é uma redução correta (sem qualificadores).
Alex ten Brink
Também há um caso especial em que todos os números estão no formulário cnEu, cada nEu racional, para qualquer c, não apenas c=2. o algoritmo de aproximação que eu estava pensando poderia encontrar umc such that the conversion of values into that "base" is "close" to the originals.
vzn
1

The literal explanation is that Subset Product problem is NP-complete by a reduction from strongly NP-complete problem such as exact cover by 3-sets. In such "strong" reduction, the input integers are bounded by some polynomial function in the number of integers in the resulting instance of Subset Product problem.

Such a "strong" reduction is impossible from any strongly NP-complete problem to Subset Sum Problem unless P=NP. We have polynomial-time dynamic programming algorithm for solving Subset Sum problem if input integers are bounded by a polynomial.

Mohammad Al-Turkistany
fonte
Yes, I understand that. My question was about why the conclusion I had made earlier was incorrect (i.e., equivalence of SS and SP).
RDN
@rdn There are not equivalent in that sense unless P =NP.
Mohammad Al-Turkistany
Yes, I get that. But I want to know what was wrong with my reductions in either direction.
RDN
Can you outline you reductions?
Mohammad Al-Turkistany
Let I(SS)=X,S be an instance of SS and I(SP)=Y,P be an instance of SP. Transforming I(SS) into I(SP): Let P=eS and Yi=eXi. There exists a SS of sum S iff there exists a SP of product P=eS. Transforming I(SP) into I(SS): Let S=log(P) and Xi=log(Yi). There exists a SP of product P iff there exists a SS of sum S=log(P).
RDN