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.
Respuestas:
(Esta es una versión un poco más detallada de mis comentarios sobre la pregunta).
Como turkistany sugirió en un comentario sobre la pregunta, este problema es NP-difícil para cada constante k ≥3 por una reducción del problema de la partición k . La reducción no cambia las instancias en absoluto: solo tenga en cuenta que el máximo del producto de las sumas es al menos (∑ a i / k ) m si y solo si los números se pueden dividir en m conjuntos cada uno con un tamaño k cuyas sumas son todos iguales
Tenga en cuenta que la entrada al problema de partición k generalmente se define como números de km que pueden no ser del todo distintos , y esto es esencial en la prueba estándar de su integridad NP (como la de Garey y Johnson ). Por lo tanto, la reducción anterior solo prueba la dureza NP de una ligera generalización del problema actual en el que se permite que la entrada sea un conjunto múltiple en lugar de un conjunto. Sin embargo, este vacío puede llenarse porque el problema de la partición k sigue siendo NP completo incluso si se requiere que los números en la entrada sean todos distintos; ver [HWW08] para el caso de k = 3 (ver también la respuesta de Serge Gaspersa otra pregunta), que puede modificarse fácilmente para valores mayores de k .
Además, todo lo indicado aquí sigue siendo NP-completo / NP-duro incluso cuando los números en la entrada se dan en unario.
[HWW08] Heather Hulett, Todd G. Will, Gerhard J. Woeginger. Realizaciones multigráficas de secuencias de grados: la maximización es fácil, la minimización es difícil. Cartas de investigación de operaciones , 36 (5): 594–596, septiembre de 2008. http://dx.doi.org/10.1016/j.orl.2008.05.004
fuente