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.