Considere o seguinte problema,
- Dado um conjunto de números positivos { a 1 , … , a n } em que k ≥ 3 é uma constante, queremos particionar o conjunto em m subconjuntos de tamanho k, para que o produto da soma de cada subconjunto é maximizado.
O problema é bastante semelhante ao conhecido particionamento de número way, exceto que temos um limite no número de números em cada partição. Para k = 2, o seguinte algoritmo polinomial simples pode ser proposto,
- assumem os números são classificadas, ou seja, . Então, para i ≤ m atribua um i ao subconjunto i , para i > m , atribua-o ao subconjunto n - i + 1 .
Não é difícil ver por que o algoritmo funciona. Basta escolher duas caixas arbitrárias. Qualquer troca nos números não aumentará a quantidade do produto.
Mas para maiores , fico imaginando se o problema pode ser resolvido em tempo polinomial ou não? Eu também ficaria agradecido se alguém pudesse mostrar sua dureza np.
Nota: Encontrei o problema enquanto trabalhava em um problema de agendamento em redes sem fio. Encontrei um bom algoritmo heurístico para resolver o problema. Mas depois de um tempo, pensei que o problema poderia ser teoricamente interessante.
Respostas:
(Esta é uma versão um pouco mais detalhada dos meus comentários sobre a questão.)
Como o Turquistão sugeriu em um comentário sobre a questão, esse problema é NP-difícil para cada constante k ≥3 por uma redução do problema da partição- k . A redução não altera as instâncias: observe que o máximo do produto das somas é de pelo menos (∑ a i / k ) m se e somente se os números puderem ser particionados em m conjuntos cada um com o tamanho k cujas somas são Tudo igual.
Observe que a entrada para o problema da partição k é geralmente definida como números de km que podem não ser totalmente distintos , e isso é essencial na prova padrão de sua completude NP (como a de Garey e Johnson ). Portanto, a redução acima prova apenas a dureza NP de uma ligeira generalização do problema atual, onde é permitido que a entrada seja um multiset em vez de um conjunto. No entanto, essa lacuna pode ser preenchida porque o problema da partição k permanece NP-completo, mesmo que seja necessário que os números na entrada sejam todos distintos; veja [HWW08] para o caso de k = 3 (veja também a resposta de Serge Gasperspara outra pergunta), que pode ser modificada facilmente para valores maiores de k .
Além disso, tudo o que é declarado aqui permanece NP-completo / NP-rígido, mesmo quando os números na entrada são dados unários.
[HWW08] Heather Hulett, Todd G. Will, Gerhard J. Woeginger. Realizações multigráficas de seqüências de graus: a maximização é fácil, a minimização é difícil. Letters , 36 (5): 594–596, setembro de 2008. http://dx.doi.org/10.1016/j.orl.2008.05.004
fonte