stringtranslate.com

problema de partición

En teoría de números e informática , el problema de partición , o partición de números , [1] es la tarea de decidir si un conjunto múltiple S dado de enteros positivos se puede dividir en dos subconjuntos S 1 y S 2 de modo que la suma de los números en S 1 es 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 existen heurísticas que resuelven el problema en muchos casos, ya sea de manera óptima o aproximada. Por esta razón, se le ha llamado "el problema difícil más fácil". [2] [3]

Existe una versión de optimización del problema de partición, que consiste en dividir el multiconjunto S en dos subconjuntos S1 , S2 de modo que se minimice la diferencia entre la suma de elementos en S1 y la suma de elementos en S2 . La versión de optimización 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 las 3 particiones : en ese problema, el número de subconjuntos no está fijado de antemano; debería estarlo | S |/3, donde cada subconjunto debe tener exactamente 3 elementos. La partición 3 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 al 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 . Tenga en cuenta 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 conjuntos múltiples de números enteros positivos tienen una partición en dos subconjuntos con suma igual. Un ejemplo de tal conjunto es S = {2,5}.

Dureza computacional

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

Dada una instancia de este tipo, 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 entradas es sum( S ) +  z 1  +  z 2 = 2 sum( S ) + 2 T , por lo que la suma objetivo para Partition es sum( 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 tanto, puede resolverse mediante algoritmos desarrollados para cada uno de estos problemas. Los algoritmos desarrollados para la partición de números de múltiples vías incluyen:

Algoritmos exactos

Existen algoritmos exactos que siempre encuentran la partición óptima. Dado que el problema es NP-difícil, tales algoritmos pueden tomar un tiempo exponencial en general, pero pueden ser prácticamente utilizables en ciertos casos. Los algoritmos desarrollados para la partición de números de múltiples vías 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 ninguna partición tienden a ser los más difíciles (o más caros) 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 produzcan particiones perfectas. Se sabe que el problema sufre una " transición de fase "; siendo probable para algunos conjuntos e improbable para otros. Si m es el número de bits necesarios para expresar cualquier número del 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 aumentan, la probabilidad de una partición perfecta pasa a 1 o 0 respectivamente. Esto fue argumentado originalmente basándose en evidencia empírica por Gent y Walsh, [10] luego usando métodos de la 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 haya una solución, bajo el supuesto de que cada elemento del conjunto se selecciona aleatoriamente con métodos uniformes. distribución entre 1 y algún valor dado. La solución a este problema puede ser contraria a la intuición, 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 igual número de ítems, además de tener igual suma. Esta variante también es NP-duro. [5] :  Prueba SP12 . Dada una instancia de partición estándar con algunos n números, construya una instancia de partición de igual cardinalidad agregando n ceros. Claramente, la nueva instancia tiene una partición de igual cardinalidad y suma igual si la instancia original tiene una partición de igual suma. Consulte también Partición de números equilibrados .

La partición distinta es una variante en la que todos los números enteros de entrada son distintos. Esta variante también es NP-duro. [ cita necesaria ]

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-difícil . [14]

Kovalyov y Pesch [15] discuten un enfoque genérico para probar la dureza NP de 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). Se debe elegir a un solo candidato utilizando una regla de votación basada en la puntuación, por ejemplo, la regla del veto (cada votante veta a un solo candidato y gana el candidato con menos vetos). Si una coalición quiere asegurarse de que C sea elegido, debe dividir sus votos entre A y B para maximizar el menor número de vetos que obtenga cada uno de ellos. Si los votos son ponderados, entonces el problema puede reducirse al problema de partición y, por lo tanto, puede resolverse de manera eficiente utilizando CKK. Lo mismo se aplica a cualquier otra regla de votación que se base en la puntuación. [dieciséis]

Notas

  1. ^ ab Korf 1998.
  2. ^ Hayes, Brian (marzo-abril de 2002), "El problema difícil más fácil" (PDF) , American Scientist , vol. 90, núm. 2, Sigma Xi, Sociedad de Investigación Científica, págs. 113–117, JSTOR  27857621
  3. ^ Mertens 2006, pag. 125.
  4. ^ Korf, Richard E. (2009). Partición 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 integridad NP . págs. 96-105. ISBN 978-0-7167-1045-5.
  6. ^ Goodrich, Michael. "Más problemas de 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). "4 Problema de suma de 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 Internacional Conjunta sobre Inteligencia Artificial . IJCAI'95. vol. 1. Montreal, Quebec, Canadá: Morgan Kaufmann Publishers. págs. 266–272. ISBN 978-1-55860-363-9.
  10. ^ Caballero y Walsh 1996.
  11. ^ Mertens 1998.
  12. ^ Mertens 2001, pag. 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 de programación y confiabilidad de 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 de partición". Matemática Aplicada Discreta . 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, Estados Unidos. Actas de la XXI Conferencia Internacional Conjunta 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