Considere el siguiente problema,
- Dado un conjunto de números positivos { a 1 , ... , a n } en el que k ≥ 3 es una constante, queremos dividir el conjunto en m subconjuntos de tamaño k para que el producto de la suma de cada subconjunto Está maximizado.
El problema es bastante similar al conocido particionamiento de números -way, excepto que tenemos un límite en el número de números en cada partición. Para k = 2 se puede proponer el siguiente algoritmo polinómico simple:
- suponga que los números están ordenados, es decir, . Luego, para i ≤ m asigne un i al subconjunto i , para i > m , asígnelo al subconjunto n - i + 1 .
No es difícil ver por qué funciona el algoritmo. Simplemente elija dos contenedores arbitrarios. Cualquier cambio en los números no aumentará la cantidad del producto.
Pero para las más grandes , me pregunto si el problema puede resolverse en tiempo polinómico o no. También estaría agradecido si alguien puede demostrar que es np-hardness.
Nota: Encontré el problema mientras trabajaba en un problema de programación en redes inalámbricas. Encontré un buen algoritmo heurístico para resolver el problema. Pero después de un tiempo pensé que el problema podría ser teóricamente interesante.