El problema de la partición triple es un problema NP-completo en informática . El problema consiste en decidir si un conjunto múltiple de números enteros dado se puede dividir en tripletes que tengan todos la misma suma. Más precisamente:
- Entrada: un multiconjunto S que contiene n elementos enteros positivos.
- Condiciones: S debe ser particionable en m tripletes, S 1 , S 2 , …, S m , donde n = 3m . Estos tripletes particionan S en el sentido de que son disjuntos y cubren S . El valor objetivo T se calcula tomando la suma de todos los elementos en S , luego dividida por m .
- Salida: si existe o no una partición de S tal que, para todos los tripletes, la suma de los elementos en cada triplete sea igual a T.
El problema de la partición triple sigue siendo fuertemente NP-completo bajo la restricción de que cada entero en S está estrictamente entre T /4 y T /2.
Ejemplo
- El conjunto se puede dividir en cuatro conjuntos , cada uno de los cuales suma T = 90.
- El conjunto se puede dividir en dos conjuntos, cada uno de los cuales suma T = 15.
- (cada entero en S está estrictamente entre T /4 y T /2): , por lo tanto m = 2 y T = 15. Existe una partición tripartita factible .
- (todo entero en S está estrictamente entre T /4 y T /2): , por lo tanto m = 2 y T = 15. No hay solución factible.
NP-completitud fuerte
El problema de 3-partición sigue siendo NP-completo incluso cuando los números enteros en S están acotados por encima por un polinomio en n . En otras palabras, el problema sigue siendo NP-completo incluso cuando se representan los números en la instancia de entrada en unario. es decir, la 3-partición es NP-completa en el sentido fuerte o fuertemente NP-completa . Esta propiedad, y la 3-partición en general, es útil en muchas reducciones donde los números se representan naturalmente en unario.
3-Partición vs Partición
El problema de 3-partición es similar al problema de partición , en el que el objetivo es particionar S en dos subconjuntos con suma igual, y al particionamiento de números multidireccional , en el que el objetivo es particionar S en k subconjuntos con suma igual, donde k es un parámetro fijo. En 3-Partición el objetivo es particionar S en m = n /3 subconjuntos, no solo un número fijo de subconjuntos, con suma igual. La partición es "más fácil" que la 3-Partición: mientras que la 3-Partición es fuertemente NP-hard , la Partición es solo débilmente NP-hard - es difícil solo cuando los números están codificados en un sistema no unario, y tienen valor exponencial en n . Cuando los valores son polinomiales en n , la Partición se puede resolver en tiempo polinomial usando el algoritmo de partición de números en tiempo pseudopolinomial .
Variantes
En la variante de entrada sin restricciones , las entradas pueden ser números enteros arbitrarios; en la variante de entrada restringida , las entradas deben estar en ( T /4 , T /2 ). La versión restringida es tan difícil como la versión sin restricciones: dada una instancia S u de la variante sin restricciones, construya una nueva instancia de la versión restringida S r ≔ {s + 2 T | s ∈ S u }. Cada solución de S u corresponde a una solución de S r pero con una suma de 7 T en lugar de T , y cada elemento de S r está en [2 T , 3 T ] que está contenido en ( T /4, 7 T /2 ) .
En la variante con entradas distintas , las entradas deben estar en ( T /4 , T /2) y, además, todas deben ser números enteros distintos. También es tan difícil como la versión sin restricciones. [1]
En la variante de salida sin restricciones , los m subconjuntos de salida pueden ser de tamaño arbitrario - no necesariamente 3 (pero aún necesitan tener la misma suma T ). La variante de salida restringida puede reducirse a la variante sin restricciones: dada una instancia S r de la variante restringida, con 3 m elementos que suman mT , construya una nueva instancia de la variante sin restricciones S u ≔ {s + 2 T | s ∈ S r }, con 3m elementos que suman 7mT, y con suma objetivo 7 T . Cada solución de S r corresponde naturalmente a una solución de S u . A la inversa, en cada solución de S u , dado que la suma objetivo es 7 T y cada elemento está en ( T /4, 7 T /2 ) , debe haber exactamente 3 elementos por conjunto, por lo que corresponde a una solución de S r .
El problema de partición ABC (también llamado emparejamiento numérico tridimensional ) es una variante en la que, en lugar de un conjunto S con 3 m enteros, hay tres conjuntos A , B , C con m enteros en cada uno. La suma de los números en todos los conjuntos es . El objetivo es construir m tripletes, cada uno de los cuales contiene un elemento de A, uno de B y uno de C, de modo que la suma de cada triplete sea T . [2]
El problema de 4 particiones es una variante en la que S contiene n = 4 m enteros, la suma de todos los enteros es , y el objetivo es particionarlo en m cuatrillizos, todos con una suma de T . Se puede suponer que cada entero está estrictamente entre T /5 y T /3. De manera similar, ABCD-partition es una variante de 4 particiones en la que cada uno de los 4 conjuntos de entrada y cada cuatrillizo debe contener un elemento de cada conjunto.
Pruebas
Garey y Johnson (1975) demostraron originalmente que la partición tridimensional es NP-completa, mediante una reducción del emparejamiento tridimensional . [3] La referencia clásica de Garey y Johnson (1979) describe una prueba de NP-completitud, reduciendo del emparejamiento tridimensional a la partición cuádruple y luego a la partición tridimensional. [4] Lógicamente, la reducción se puede dividir en varios pasos.
Reducción de la correspondencia 3D a la partición ABCD
Se nos da una instancia de E de correspondencia 3d, que contiene algunos m tripletes {w i ,x j ,y k }, donde los vértices son w 1 ,...,w q y x 1 ,...,x q e y 1 ,...,y q . Construimos una instancia de partición ABCD con 4* m elementos, de la siguiente manera (donde r := 32q):
- Para cada triplete t = {w i ,x j ,y k } en E, el conjunto A contiene un elemento u t = 10r 4 -kr 3 -jr 2 -ir.
- Para cada triplete t = {w i ,x j ,y k } en E, el conjunto B contiene a w it , C contiene a x jt y D contiene a y kt . Por lo tanto, para cada uno de w i , x j , y k , puede haber muchos elementos correspondientes en B, C, D - uno por cada triplete en el que aparecen. Consideramos uno de estos elementos (indicado por "1") como el "real" y los demás como "ficticios". Los tamaños de los elementos son los siguientes:
- w i [1] = 10r 4 + ir; w i [2..] = 11r 4 + ir.
- x j [1] = 10r 4 + jr 2 ; x j [2..] = 11r 4 + jr 2 .
- y k [1] = 10r 4 +kr 3 ; y k [2..] = 8r 4 +kr 3 .
- La suma de cada tres elementos "reales" o de cada tres elementos "ficticios" es 30r 4 + ir + jr 2 + kr 3 ; y si se suma el elemento triplete, la suma es 40r 4 .
- El umbral para la instancia de partición ABCD es T=40r 4 . Tenga en cuenta que el tamaño de cada elemento está en (T/3,T/5).
Dado un emparejamiento perfecto en E , construimos una partición de 4 de ABCD de la siguiente manera:
- Para cada triplete t= { w i ,x j ,y k } en el emparejamiento, construimos un conjunto de 4 {u t , w i [1], x j [1], y k [1]}.
- Para cada triplete que no esté en la correspondencia, construimos un conjunto de 4 similar, pero con los elementos ficticios correspondientes.
En ambos casos la suma de los 4 conjuntos es 40r 4 según sea necesario.
Dada una partición de ABCD, la suma de cada conjunto de 4 es 40r 4 . Por lo tanto, los términos con r, r 2 y r 3 deben cancelarse, y los términos con r 4 deben sumar 40r 4 ; por lo tanto, el conjunto de 4 debe contener un triplete y 3 elementos "reales" coincidentes, o un triplete y 3 elementos "ficticios" coincidentes. A partir de los tripletes con los 3 elementos "reales" coincidentes, construimos un emparejamiento perfecto válido en E.
Tenga en cuenta que, en la reducción anterior, el tamaño de cada elemento es polinomial en el tamaño de entrada; por lo tanto, esta reducción muestra que la partición ABCD es fuertemente NP-dura.
Reducción de partición ABCD a partición 4
Dada una instancia de partición ABCD con m elementos por conjunto, umbral T y suma mT , construimos una instancia de partición 4 con 4 m elementos:
- Para cada elemento a en A, el elemento correspondiente tiene tamaño 16a+1;
- Para cada elemento b en B, el elemento correspondiente tiene tamaño 16b+2;
- Para cada elemento c en C, el elemento correspondiente tiene tamaño 16c+4;
- Para cada elemento d en D, el elemento correspondiente tiene tamaño 16d+8.
En total, la suma es 16mT+15m, y el nuevo umbral es 16T+15.
Toda partición ABCD corresponde naturalmente a una partición 4. A la inversa, en toda partición 4, la suma módulo 16 es 15 y, por lo tanto, debe contener exactamente un elemento con un tamaño módulo 16 = 1, 2, 4, 8; esto corresponde exactamente a un elemento de A, B, C, D, a partir del cual podemos construir una partición ABCD.
Utilizando una reducción similar, la partición ABC se puede reducir a una partición de 3.
Reducción de 4 particiones a 3 particiones
Se nos da una instancia A de 4-partición: 4 m enteros, a 1 ,...,a 4m , cada uno de los cuales en el rango (T/3,T/5), que suman mT . Construimos una instancia B de 3-partición de la siguiente manera:
- Para cada a i en A, B contiene un elemento "regular" w i = 4*(5T+a i )+1. En total hay 4 m elementos regulares, que suman 81mT + 4m.
- Para cada par de elementos a i ,a j en A, B contiene dos elementos "de apareamiento": u ij = 4*(6T - a i - a j )+2 y u ij ' = 4*(5T + a i + a j )+2. En total hay 4 m* (4 m -1) elementos de apareamiento, que suman (88mT+16m)*(4 m -1).
- Además, B contiene 8m2-3m elementos "de relleno", con tamaño 20T, y suma total (8m2-3m ) *20T.
- En total, B contiene 24m 2 -3m = 3(8m 2 -m) elementos, con suma (64T+4)*(8m 2 -m).
- El umbral para la instancia de 3 particiones es 64T+4; tenga en cuenta que los tamaños de todos los elementos en B están en (16T+1,32T+2).
Dada una partición 4-de A , construimos una partición 3-de B de la siguiente manera:
- Para cada conjunto de 4 {a 1 ,a 2 ,a 3 ,a 4 } con suma T, construimos un conjunto de 3 {w 1 ,w 2 ,u 12 } con suma 4*(5T+a 1 +5T+a 2 +6T-a 1 -a 2 )+1+1+2=64T+4 y otro conjunto de 3 {w 3 ,w 4 ,u 12 '} con suma 4*(5T+a 3 +5T+a 4 +5T+a 1 +a 2 )+1+1+2=64T+4. Estos conjuntos contienen los 4m elementos regulares y 2m pares coincidentes de elementos de emparejamiento.
- A partir de los elementos restantes, construimos 3-conjuntos {u ij ,u ij ',filler} con suma 4*(6T-a i -a j +5T+a i +a j +5T)+2+2=64T+4.
Por el contrario, dada una partición tridimensional de B, la suma de cada conjunto tridimensional es un múltiplo de 4, por lo que debe contener dos elementos regulares y un elemento de emparejamiento, o dos elementos de emparejamiento y un elemento de relleno:
- Si un conjunto de 3 contiene dos elementos de emparejamiento u ij , u kl y un elemento de relleno, entonces la suma de los dos elementos de emparejamiento debe ser 44T+4 = 4*(5T+6T)+2+2, por lo que deben tener tamaños coincidentes (a i + a j = a k + a l ). Por lo tanto, al reemplazar según sea necesario, podemos suponer que los dos elementos de emparejamiento son de hecho u ij y u ij '. Por lo tanto, los elementos de emparejamiento restantes también constan de n pares coincidentes.
- Por lo tanto, los 3-conjuntos restantes se pueden dividir en dos grupos: n 3-conjuntos que contienen los elementos u ij , y n 3-conjuntos que contienen los elementos u ij '. En cada par coincidente de 3-conjuntos, la suma de los dos elementos de emparejamiento u ij +u ij ' es 44T+4, por lo que la suma de los cuatro elementos regulares es 84T+4. Por lo tanto, a partir de los cuatro elementos regulares, construimos un 4-conjunto en A, con suma T.
Aplicaciones
La dureza NP de la partición 3 se utilizó para probar el empaquetamiento de rectángulos de dureza NP , así como de Tetris [5] [6] y algunos otros rompecabezas, [7] y algunos problemas de programación de trabajos . [8]
Referencias
- ^ Hulett, Heather; Will, Todd G.; Woeginger, Gerhard J. (1 de septiembre de 2008). "Realizaciones multigráficas de secuencias de grados: la maximización es fácil, la minimización es difícil". Operations Research Letters . 36 (5): 594–596. doi :10.1016/j.orl.2008.05.004. ISSN 0167-6377.
- ^ Demaine, Erik (2015). "MIT OpenCourseWare - Hardness made Easy 2 - 3-Partition I". Youtube . Archivado desde el original el 14 de diciembre de 2021.
- ^ Garey, Michael R. y David S. Johnson (1975). "Resultados de complejidad para la programación de multiprocesadores bajo restricciones de recursos". Revista SIAM de Computación . 4 (4): 397–411. doi :10.1137/0204035.
- ^ Garey, Michael R. y David S. Johnson (1979), Computadoras e intratabilidad: una guía para la teoría de la NP-completitud . ISBN 0-7167-1045-5 . Páginas 96–105 y 224.
- ^ "El Tetris es difícil, incluso de aproximarse". Nature . 2002-10-28. doi :10.1038/news021021-9. ISSN 0028-0836.
- ^ BREUKELAAR, RON; DEMAINE, ERIK D.; HOHENBERGER, SUSAN; HOOGEBOOM, HENDRIK JAN; KOSTERS, WALTER A.; LIBEN-NOWELL, DAVID (1 de abril de 2004). "El Tetris es difícil, incluso aproximado". Revista internacional de aplicaciones y geometría computacional . 14 (1n02): 41–68. arXiv : cs/0210020 . doi :10.1142/s0218195904001354. ISSN 0218-1959. S2CID 1177.
- ^ Demaine, Erik D.; Demaine, Martin L. (1 de junio de 2007). "Rompecabezas, emparejamiento de aristas y empaquetamiento de poliominós: conexiones y complejidad". Graphs and Combinatorics . 23 (S1): 195–208. doi :10.1007/s00373-007-0713-4. ISSN 0911-0119. S2CID 17190810.
- ^ Bernstein, D.; Rodeh, M.; Gertner, I. (1989). "Sobre la complejidad de los problemas de planificación para máquinas paralelas/en cadena". IEEE Transactions on Computers . 38 (9): 1308–1313. doi :10.1109/12.29469. ISSN 0018-9340.