Quero saber se esse problema é solucionável em tempo polinomial ou não?
O problema é: Dada uma matriz com valor inteiro não negativo de tamanho dois números inteiros não negativos e .
A questão é: Encontre um subconjunto das colunas de cardinalidade no máximo modo que a soma de cada linha sobre o subconjunto das colunas seja maior que . Retorne no se esse subconjunto não existir.
Não posso mostrar que é NP-difícil.
EDITAR:
Minha tentativa de provar dureza : de acordo com as sugestões do Filmus, tentei reduzir PARTITION (uma instância é dada pelo conjunto de números inteiros não negativos ) para o meu problema. Eu falhei, é claro. O pensamento que eu não entendi é como o particionamento de um conjunto de números inteiros não negativos está relacionado a esse problema? Quero dizer, no meu problema, quero escolher um subconjunto de para maximizar algo. Não consigo ver como isso é uma partição. Eu tentei muitos pensamentos, mas não posso escrevê-los todos aqui:
- Eu tentei criar a matriz com apenas na primeira linha e na segunda linha.
- Eu cansei de fazer a primeira linha classificada em ordem crescente e a segunda linha em ordem decrescente.
- Tentei dividir o em dois valores e modo que e crie a matriz com na primeira linha e na segunda linha.
Alguém pode me explicar, intuitivamente, como posso usar PARTITION para mostrar a dureza NP do meu problema? Você não precisa dar a solução.
Minha solução para resolver o problema :
Eu tentei esta solução. Suponha, sem perder a generalidade, que a primeira linha da matriz seja classificada em ordem crescente. (A segunda linha da matriz não precisa ser classificada, caso contrário, o problema é trivial.)
Agora, pegue as últimas colunas da matriz.
- Se a soma da primeira linha for menor que do que a efetuada. Nenhuma solução existe.
- Senão, a soma da primeira linha nas últimas colunas é maior que e veja a soma da segunda linha.
- Se a soma da segunda linha nas últimas colunas for maior que que nós, fizemos. Retorne as últimas colunas.
- Senão, a soma da primeira linha sobre as colunas é maior que mas a soma da segunda linha sobre as colunas é menor que . Bem, aqui temos um problema.
Respostas:
Dica: mostre que é NP-difícil por redução de EQUAL-PARTITION, a variante de PARTITION na qual exigimos que ambas as partes tenham tamanhos iguais (consulte uma pergunta em math.se ).
Dada uma instância{x1,…,xn} EQUAL-PARTITION (com xi>0 ), considere uma instância do seu problema com b=n/2 , c=∑i(M+xi)/2−1 para grande o suficiente M (Eu penso isso M=maxixi deve bastar) e a matriz
fonte