stringtranslate.com

Problema de partición

En teoría de números y ciencias de la computación , el problema de partición , o partición de números , [1] es la tarea de decidir si un multiconjunto dado S de números enteros positivos se puede dividir en dos subconjuntos S 1 y S 2 de manera que la suma de los números en S 1 sea igual a la suma de los números en S 2 . Aunque el problema de partición es NP-completo , existe una solución de programación dinámica en tiempo pseudopolinomial , y hay heurísticas que resuelven el problema en muchos casos, ya sea de manera óptima o aproximada. Por esta razón, se lo ha llamado "el problema difícil más fácil". [2] [3]

Existe una versión optimizada del problema de partición, que consiste en particionar el multiconjunto S en dos subconjuntos S 1 , S 2 de manera que se minimice la diferencia entre la suma de elementos en S 1 y la suma de elementos en S 2. La versión optimizada es NP-hard , pero se puede resolver de manera eficiente en la práctica. [4]

El problema de la partición es un caso especial de dos problemas relacionados:

Sin embargo, es bastante diferente al problema de partición triple : en ese problema, el número de subconjuntos no está fijado de antemano; debe ser | S |/3, donde cada subconjunto debe tener exactamente 3 elementos. La partición triple es mucho más difícil que la partición: no tiene un algoritmo de tiempo pseudopolinomial a menos que P = NP . [5]

Ejemplos

Dado S = {3,1,1,2,2,1}, una solución válida para el problema de partición son los dos conjuntos S 1 = {1,1,1,2} y S 2 = {2,3}. Ambos conjuntos suman 5 y dividen S . Nótese que esta solución no es única. S 1 = {3,1,1} y S 2 = {2,2,1} es otra solución.

No todos los multiconjuntos de números enteros positivos tienen una partición en dos subconjuntos con sumas iguales. Un ejemplo de un conjunto de este tipo es S = {2,5}.

Dificultad computacional

El problema de partición es NP difícil. Esto se puede demostrar mediante reducción a partir del problema de suma de subconjuntos . [6] Una instancia de SubsetSum consiste en un conjunto S de números enteros positivos y una suma objetivo T ; el objetivo es decidir si hay un subconjunto de S con suma exactamente  T .

Dada tal instancia, construya una instancia de Partición en la que el conjunto de entrada contenga el conjunto original más dos elementos: z 1 y z 2 , con z 1  = suma(S) y z 2 = 2 T . La suma de este conjunto de entrada es suma( S ) +  z 1  +  z 2 = 2 suma( S ) + 2 T , por lo que la suma objetivo para Partición es suma( S ) +  T .

Algoritmos de aproximación

Como se mencionó anteriormente, el problema de la partición es un caso especial de partición multidireccional y de suma de subconjuntos. Por lo tanto, se puede resolver mediante algoritmos desarrollados para cada uno de estos problemas. Los algoritmos desarrollados para la partición de números multidireccional incluyen:

Algoritmos exactos

Existen algoritmos exactos que siempre encuentran la partición óptima. Dado que el problema es NP-hard, dichos algoritmos pueden requerir un tiempo exponencial en general, pero pueden ser prácticamente utilizables en ciertos casos. Los algoritmos desarrollados para la partición de números multidireccional incluyen:

Los algoritmos desarrollados para la suma de subconjuntos incluyen:

Instancias difíciles y transición de fase

Los conjuntos con una sola partición o sin partición tienden a ser más difíciles (o más costosos) de resolver en comparación con sus tamaños de entrada. Cuando los valores son pequeños en comparación con el tamaño del conjunto, es más probable que se obtengan particiones perfectas. Se sabe que el problema sufre una " transición de fase "; es probable para algunos conjuntos y poco probable para otros. Si m es el número de bits necesarios para expresar cualquier número en el conjunto y n es el tamaño del conjunto, entonces tiende a tener muchas soluciones y tiende a tener pocas o ninguna solución. A medida que n y m se hacen más grandes, la probabilidad de una partición perfecta llega a 1 o 0 respectivamente. Esto fue argumentado originalmente con base en evidencia empírica por Gent y Walsh [10] , luego utilizando métodos de física estadística por Mertens [11] [12] y luego demostrado por Borgs , Chayes y Pittel [13] .

Versión probabilística

Un problema relacionado, algo similar a la paradoja del cumpleaños , es el de determinar el tamaño del conjunto de entrada de modo que tengamos una probabilidad de la mitad de que exista una solución, bajo el supuesto de que cada elemento del conjunto se selecciona aleatoriamente con una distribución uniforme entre 1 y algún valor dado. La solución a este problema puede ser contraintuitiva, como la paradoja del cumpleaños.

Variantes y generalizaciones

La partición de igual cardinalidad es una variante en la que ambas partes deben tener un número igual de elementos, además de tener una suma igual. Esta variante también es NP-hard. [5] :  Demostración SP12 . Dada una instancia estándar de Partition con algunos números n , construya una instancia de Equal-Cardinality-Partition agregando n ceros. Claramente, la nueva instancia tiene una partición de igual cardinalidad y suma igual si y solo si la instancia original tiene una partición de igual suma. Consulte también Partición de números balanceada .

La partición del producto es el problema de dividir un conjunto de números enteros en dos conjuntos con el mismo producto (en lugar de la misma suma). Este problema es fuertemente NP-hard . [14]

Kovalyov y Pesch [15] analizan un enfoque genérico para demostrar la NP-dureza de los problemas de tipo partición.

Aplicaciones

Una aplicación del problema de la partición es la manipulación de elecciones . Supongamos que hay tres candidatos (A, B y C). Un único candidato debería ser elegido utilizando una regla de votación basada en la puntuación, por ejemplo, la regla del veto (cada votante veta a un único candidato y el candidato con menos vetos gana). Si una coalición quiere asegurarse de que C sea elegido, debería repartir sus votos entre A y B de modo de maximizar el menor número de vetos que cada uno de ellos obtenga. Si los votos están ponderados, entonces el problema puede reducirse al problema de la partición y, por lo tanto, puede resolverse de manera eficiente utilizando CKK. Lo mismo es cierto para cualquier otra regla de votación que se base en la puntuación. [16]

Notas

  1. ^ desde Korf 1998.
  2. ^ Hayes, Brian (marzo-abril de 2002), "El problema más fácil y difícil" (PDF) , American Scientist , vol. 90, núm. 2, Sigma Xi, The Scientific Research Society, págs. 113-117, JSTOR  27857621
  3. ^ Mertens 2006, pág. 125.
  4. ^ Korf, Richard E. (2009). Particionado de números multidireccional (PDF) . IJCAI .
  5. ^ ab Garey, Michael; Johnson, David (1979). Computadoras e intratabilidad: una guía para la teoría de la NP-completitud . pp. 96–105. ISBN 978-0-7167-1045-5.
  6. ^ Goodrich, Michael. "Más problemas NP completos y NP difíciles" (PDF) .
  7. ^ Hans Kellerer; Ulrich Pferschy; David Pisinger (2004). Problemas con la mochila. Saltador. pag. 97.ISBN 9783540402862.
  8. ^ Martello, Silvano; Toth, Paolo (1990). "Problema de la suma de 4 subconjuntos". Problemas de mochila: algoritmos e interpretaciones informáticas . Wiley-Interscience. págs. 105-136. ISBN 978-0-471-92420-3.Señor 1086874  .
  9. ^ Korf, Richard E. (20 de agosto de 1995). "De soluciones aproximadas a óptimas: un estudio de caso de partición de números". Actas de la 14.ª Conferencia conjunta internacional sobre inteligencia artificial . IJCAI'95. Vol. 1. Montreal, Quebec, Canadá: Morgan Kaufmann Publishers. págs. 266–272. ISBN 978-1-55860-363-9.
  10. ^ Gent y Walsh 1996.
  11. ^ Mertens 1998.
  12. ^ Mertens 2001, pág. 130.
  13. ^ Borgs, Chayes y Pittel 2001.
  14. ^ Ng, CT; Barketau, MS; Cheng, TCE; Kovalyov, Mikhail Y. (1 de diciembre de 2010). ""Partición de productos" y problemas relacionados con la programación y la fiabilidad de los sistemas: complejidad computacional y aproximación". Revista Europea de Investigación Operativa . 207 (2): 601–604. doi :10.1016/j.ejor.2010.05.034. ISSN  0377-2217.
  15. ^ Kovalyov, Mikhail Y.; Pesch, Erwin (28 de octubre de 2010). "Un enfoque genérico para demostrar la dureza NP de problemas de tipo partición". Matemáticas Aplicadas Discretas . 158 (17): 1908–1912. doi : 10.1016/j.dam.2010.08.001 . ISSN  0166-218X.
  16. ^ Walsh, Toby (11 de julio de 2009). "¿Dónde están los problemas de manipulación realmente difíciles? La transición de fase en la manipulación de la regla de veto" (PDF) . Escrito en Pasadena, California, EE. UU. Actas de la 21.ª Conferencia Conjunta Internacional sobre Inteligencia Artificial . San Francisco, California, EE. UU.: Morgan Kaufmann Publishers Inc., págs. 324–329. Archivado (PDF) desde el original el 10 de julio de 2020. Consultado el 5 de octubre de 2021 .

Referencias