El número más grande es el número blando.
Afirmo que, para cualquier instancia de su problema, si la instancia es solucionable (es posible dividir los números usando un número blando), entonces es posible resolver la instancia usando el número más grande como único número blando. Esto es fácil de probar: cualquier solución se puede modificar en una solución con el número más grande como número blando; simplemente coloque el número que actualmente es el número de software en la partición que contiene el número más grande y, en su lugar, divida el número más grande entre las partes de la partición.
Problema de embalaje
Aquí hay un problema que llamaré problema de embalaje:
La entrada consiste en una lista de números positivos a 1 , a 2 , ... , a ka1,a2,…,ak y un número final ℓℓ tal que ℓ ≥ a iℓ≥ai para todo ii . Definir s = 13 (ℓ+∑ k i = 1 ai)s=13(ℓ+∑ki=1ai). Entonces el problema es dividir la lista deuniais en tres partes, de modo que cada parte tenga una suma como máximoss.
Afirmo que el problema de empaque con las entradas a 1 , ... , a ka1,…,ak y ℓℓ es equivalente a su problema con la lista de entradas a 1 , ... , a k , ℓa1,…,ak,ℓ . Si es posible agrupar los números a 1 , ... , a ka1,…,ak en tres grupos de suma de s comos máximo , entonces puede usar ℓℓ como un número blando para redondear cada una de las sumas a exactamente ss ; por lo tanto tiene una partición de un 1 , ... , unak , ℓa1,…,ak,ℓ en tres grupos de sumas ss usando un número blando. Si por el contrario un 1 , ... , un k , ℓa1,…,ak,ℓ se puede dividir en tres grupos de suma ss utilizando un número suave entonces la lista se puede dividir en tres grupos de suma ss utilizando ℓℓ como el número blando (por el resultado de la sección anterior). En este caso, la agrupación de a iai s en tres partes satisface la condición de que cada parte tenga una suma como máximo ss .
El problema del embalaje sin números pequeños
Digamos que una instancia del problema de empaque "no tiene números pequeños" si por cada ii , a i > ℓ2ai>ℓ2 . Afirmo que puede reducir el problema del embalaje al problema del embalaje sin números pequeños.
Supongamos que en la instancia del problema de empaque ( a 1 , ... , a k ) , ℓ(a1,…,ak),ℓ alguna a iai tiene una i ≤ ℓ2ai≤ℓ2 . WLOG suponga queakakes estouniai. Luego reclamo la instancia del problema de empaque(a1,...,ak-1),ℓ+ak(a1,…,ak−1),ℓ+akes equivalente a la instancia original. Observe que el valorsigue siendo el mismo en ambas instancias.ss
Ciertamente, si puede agrupar los números en tres grupos con cada grupo con una suma máxima entonces puede empaquetar los números en tres grupos con cada grupo teniendo una suma en la mayoría .a 1 , ... , a ka1,…,ak s sa 1 , ... , a k - 1a1,…,ak−1 ss
Por otro lado, suponga que puede agrupar los números en tres grupos con cada grupo sumando como máximo . Para cada uno de los tres grupos, considere el valora 1 , ... , a k - 1a1,…,ak−1 s sss menos la suma de los elementos del grupo. Llame a estos valores e 1 , e 2 , e 3e1,e2,e3 ; aquí e iei es la cantidad de "espacio vacío" en el grupo ii . Sabemos que e 1 + e 2 + e 3e1+e2+e3 , el espacio vacío total, es igual a 3 s - ∑ k - 1 i = 1 a i3s−∑k−1i=1ai (espacio total 3s3s menos espacio utilizado ∑ k - 1i = 1 ai∑k−1i=1aiespacio vacío k + ℓ en total. Entonces desde una k < ℓ). Pero3s-∑ k - 1 i = 1 ai=ak+ℓ3s−∑k−1i=1ai=ak+ℓpor la definición dess. Por lo tanto, los tres grupos tienenunak+ℓ2ak<ℓ2 , sabemos que el espacio vacío total es más de3ak3ak. Según el principio del palomar, al menos uno de los grupos tieneunakako más espacio vacío. Por lo tanto, podemos agregar el elementoakaka uno de los grupos y terminar con un paquete de números a 1 , ... , a ka1,…,ak en tres grupos con cada grupo teniendo como máximo ss .
Por lo tanto, para resolver su problema, es suficiente resolver solo el problema del embalaje sin números pequeños.
Lema 1
Declaración de lema:
Supongamos que podemos dividir un 1 , ... , un ka1,…,ak en los grupos 1 y 2 de modo que el grupo 2 tenga un número par de elementos y la suma de los elementos del grupo 1 esté en el intervalo [ s - ℓ2 , s ][ s - ℓ2,s] . Entonces es posible dividir aún más el grupo 2 en dos subgrupos 2a y 2b, cada uno de los cuales tiene una suma como máximo ss . Observe que los grupos 1, 2a y 2b son una solución de la instancia del problema de empaque.
Aquí hay una prueba.
Asigne tentativamente la mitad de los elementos del grupo 2 al subgrupo 2a y la otra mitad al subgrupo 2b. Cree una coincidencia entre los elementos de los dos subgrupos. Cambia estos pares entre los dos grupos, un par a la vez. Si hay 2 n2n elementos en el grupo 2, este proceso pasa exactamente por n + 1n+1 posibles particiones del grupo 2 en los subgrupos 2a y 2b. Afirmo que al menos una de esas particiones tiene ambos subgrupos con una suma menor que ss .
Deje S 2 aS2a y S 2 bS2 b sean las sumas de los dos subgrupos (permitimos que estos valores cambien a medida que cambian los grupos).
En cada paso del proceso anterior, el grupo 2a gana un elemento y pierde otro. Como cada elemento tiene un valor entre ℓ2ℓ2 yℓℓ, podemos concluir que en cada paso del proceso anterior,S2 aS2 a cambia a lo sumo ℓ2ℓ2 .
Además, el valor final de S 2 aS2 a es igual al valor inicial de S 2 bS2 b ya que al final del proceso los grupos se han intercambiado por completo.
Sea AUNA el valor promedio de S 2 aS2 a y S 2 bS2 b . Tenga en cuenta que esto es constante a medida que cambian los grupos. Sabemos que los valores iniciales y finales de S 2 son unS2 a promedio de AUNA (ya que los valores iniciales y finales de S 2 a sonS2 a iguales a los valores iniciales de S 2 aS2 a y S 2 bS2 b ). Por lo tanto, AUNA debe estar entre los valores inicial y final de S 2 aS2 a . A medida que cambiamos los grupos, el valor de S 2 aS2 atoma medidas de tamaño como máximo ℓ2ℓ2 de un lado deAUNAal otro. A partir de esto, podemos concluir que en algún momento, el valor deS2aS2 adebe estar dentro de la mitad del tamaño máximo del paso (ℓ4ℓ4 4 ) deAUNA. ComoS2bS2 bsiempre tiene la misma distancia deAUNAqueS2aS2 a, podemos concluir que en algún momento, ambas sumasS2aS2 ayS2bS2 bestán dentro deℓ4ℓ4 4 deAUNA.
3 s - ℓ - ( S 2 a + S 2 b )3 s - ℓ - ( S2 a+ S2 b) es la suma de los elementos del grupo 1; así, 3 s - ℓ - ( S 2 a + S 2 b ) ≥ s - ℓ23 s - ℓ - ( S2 a+ S2 b) ≥ s - ℓ2 (por la condición en la suma del grupo 1). Reorganizando, tenemos que(S2a+S2b)≤2s-ℓ2( S2 a+ S2 b) ≤ 2 s - ℓ2 . Por lo tanto, el promedio deS2aS2 ayS2bS2 bes como máximos-ℓ4s - ℓ4 4 . Entonces, en el momento en que tantoS2aS2 acomoS2bS2 bestán dentro deℓ4ℓ4 4 deAUNA, vemos que ambos son, como máximo,lossdeseados.
Caso 1: k = 3 nk = 3 n
Suma el nnorte más pequeño a iunayo s y también el nnorte más grande a iunayo s.
Si el nnorte más pequeño un iunayo suma s a más de ss , entonces ningún grupo puede tener nnorte o más elementos (como cualquier elección de nnorte elementos dará lugar a la suma ser demasiado grande). Pero el principio del palomar nos dice que al menos un grupo tiene al menos nnorte elementos. Por lo tanto, en este caso no hay solución para la instancia del problema de empaque.
Si el nnorte grande una iunayo suma a s en la mayoría de ss , entonces cada elección de nnorte elementos tiene una suma de a lo más ss . En este caso, simplemente dividir los elementos en tres grupos de igual tamaño resuelve la instancia del problema de empaque.
El único caso restante es que los nnorte elementos más pequeños suman como máximo sys los nnorte elementos más grandes suman más de ss . Como en el lema, podemos hacer una transición lenta entre estos dos conjuntos: comenzar con un grupo inicializado con los nnorte elementos más pequeños e intercambiar elementos hasta que el grupo tenga los nnorte elementos más grandes . Cada paso mueve la suma del grupo como máximo ℓ2ℓ2 (por la misma lógica que en la prueba del lema) y la suma cruza el valorssen algún momento de este proceso. Por lo tanto, ya sea inmediatamente antes o inmediatamente después de cruzar el valorss, la suma es menor quesspero menor a lo sumoℓ2ℓ2 . En otras palabras, en algún momento de este proceso, el grupo tiene una suma en el intervalo[s-ℓ2 ,s][ s -ℓ2, s ]. Tome ese grupo como grupo 1 y los2n2 nelementosrestantescomo grupo 2. Se aplica el lema, lo que nos permite encontrar una solución a la instancia del problema de empaque.
Caso 2: k = 3 n + 1k = 3 n + 1
Suma el n + 1n + 1 más pequeño a iunayo s y también el n + 1norte+ 1 más grande a iunayo s.
Si el n + 1n +1 más pequeño a iunayo s suma más de ss , entonces ningún grupo puede tener n + 1n +1 o más elementos (ya que cualquier elección de n + 1n +1 elementos dará como resultado que la suma sea demasiado grande). Pero el principio del palomar nos dice que al menos un grupo tiene al menos n + 1n +1 elementos. Por lo tanto, en este caso no hay solución para la instancia del problema de empaque.
Si el n + 1n + 1 más grande una iunayo suma a s como máximo ss , entonces cada elección de n + 1n + 1 elementos tiene una suma de a lo más ss . En este caso, simplemente dividir los elementos en tres grupos de tamaño nnorte , nnorte , y n + 1n + 1 resuelve el problema de instancia de embalaje.
El único caso restante es que los elementos n + 1n + 1 más pequeños suman como máximo sys los elementos n + 1n + 1 más grandes suman más de ss . Como en el caso anterior, podemos hacer una transición lenta entre estos dos conjuntos: comenzar con un grupo inicializado con los elementos n + 1n + 1 más pequeños e intercambiar elementos hasta que el grupo tenga los elementos n + 1n + 1 más grandes . Cada paso mueve la suma del grupo como máximo ℓ2ℓ2 (por la misma lógica que en la prueba del lema) y la suma cruza el valorssen algún momento de este proceso. Por lo tanto, ya sea inmediatamente antes o inmediatamente después de cruzar el valorss, la suma es menor quesspero menor a lo sumoℓ2ℓ2 . En otras palabras, en algún momento de este proceso, el grupo tiene una suma en el intervalo[s-ℓ2 ,s][ s-ℓ2, s ]. Tome ese grupo como grupo 1 y los2n2 nelementosrestantescomo grupo 2. Se aplica el lema, lo que nos permite encontrar una solución a la instancia del problema de empaque.
Caso 3: k = 3 n + 2k = 3 n + 2 primer subcase fácil
Suma el nnorte más pequeño a iunayo sy el nnorte más grande a iunayo s.
Si alguno de los valores está en el intervalo [ s - ℓ2 ,s][ s -ℓ2, s ], aplique inmediatamente el lema con esa elección dennorteelementos como el grupo 1 y los2restantes 22 n + 2 elementos n + 2 como grupo 2. Esto nos permite encontrar una solución a la instancia del problema de empaque.
Si el nnorte más pequeño un iunayo suma s de menos de s - ℓ2s - ℓ2 y elnnortegrandeunaiunayos suma a más dessentonces podemos comenzar con elnnortemás pequeña un iunayo s y los elementos de intercambio hasta que terminan con el nnorte grande una iunayo s. En cada paso, la suma se mueve como máximo ℓ2ℓ2 , entonces en algún punto de este proceso tenemos un grupo dennorteelementos cuya suma está en el intervalo[s - ℓ2 ,s][ s -ℓ2, s ]. Tome ese grupo como el grupo 1 y los restantes2n+22 n + 2elementos como el grupo 2. aplica el lema, que nos permite encontrar una solución a la instancia los problemas de acumulación.
Si el nnorte más pequeño un iunayo suma s a más de ss , entonces ningún grupo puede tener nnorte o más elementos (como cualquier elección de nnorte elementos dará lugar a la suma ser demasiado grande). Pero el principio del palomar nos dice que al menos un grupo tiene al menos n + 1n + 1 elementos. Por lo tanto, en este caso no hay solución para la instancia del problema de empaque.
El único caso restante es que tanto el nnorte más pequeño y nnorte grande una iunayo add s a menos de s - ℓ2s - ℓ2 .
Caso 3: k = 3 n + 2k = 3 n + 2 segundos subcasete fácil
Suma el n + 2n + 2 más pequeño a iunayo s y el n + 2n + 2 más grande a iunayo s.
Si alguno de los valores está en el intervalo [ s -ℓ2 ,s ][ s -ℓ2, s ] , aplique inmediatamente el lema con esa elección de n + 2n + 2 elementos como grupo 1 y el resto 2 n2 n elementoscomo grupo 2. Esto nos permite encontrar una solución a la instancia del problema de empaque.
Si el n + 2n + 2 más pequeño a iunayo s suma menos que s - ℓ2s - ℓ2 y eln+2n + 2más grandeaiunayo s suma más de s,s entonces podemos comenzar con el n + 2n + 2 más pequeño a iunayo sy intercambiar elementos hasta que terminemos con n + 2n + 2 más grande a iunayo s. En cada paso, la suma se mueve como máximo ℓ2ℓ2 , entonces en algún punto de este proceso tenemos un grupo den+2n + 2elementos cuya suma está en el intervalo[s-ℓ2 ,s][ s -ℓ2, s ]. Tome ese grupo como grupo 1 y el resto 2 n2 n elementoscomo grupo 2. Se aplica el lema, lo que nos permite encontrar una solución a la instancia del problema de empaque.
Si el n + 2 esn + 2 mayor a iunayo suma a s en la mayoría de ss , entonces cada elección de n + 2n + 2 elementos tiene una suma de a lo más ss . En este caso, simplemente particione los elementos en tres grupos de tamaño nnorte , n + 1n + 1 y n + 1n + 1 resuelve el problema de instancia de embalaje.
El único caso que queda es que tanto el n + 2n + 2 más pequeño y n + 2n + 2 más grande una iunayo add s a más de ss .
Caso 3: k = 3 n + 2k = 3 n + 2 subcase duro
Supongamos que ninguna de las dos subcajas anteriores maneja la instancia. Entonces sabemos lo siguiente:
- tanto el nnorte más pequeño y nnorte más grande una iunayo s añadir a menos de s - ℓ2s - ℓ2 .
- tanto el n + 2n + 2 más pequeño como n + 2n + 2 más grande una iunayo add s a más de ss .
Como el n + 2n + 2 más pequeño a iunayo add s a más de ss , ningún grupo puede tener n + 2n + 2 o más elementos. La única forma en que esto es posible es si los grupos tienen tamaños nnorte , n + 1n + 1 y n + 1n + 1 .
Tenga en cuenta que desde el nnorte más grande a iunayo s se suma a menos de s - ℓ2s - ℓ2 , no importa qué elementos estén en el grupo de tamañonnorte: ese grupo tendrá una suma menor que s des todos modos. Claramente, podemos modificar cualquier solución cambiando el nnorte más grande a iunayo s en el grupo de tamaño nnorte . Estos intercambios solo disminuyen las sumas de los otros dos grupos, por lo que existe una solución para la instancia del problema de empaque si y solo si existe una solución en la que el nnorte más grande una iunayo forma s uno de los grupos.
Por lo tanto, la tarea en cuestión es simplemente esto: ¿es posible dividir los 2 n + 2 2 n + 2a iunayo s más pequeños en dos grupos de tamaño n + 1 den + 1 modo que cada uno de esos dos grupos tenga una suma como máximo ss . WLOG suponga que los a iunayo s están en orden creciente de modo que los 2 n + 2 2 n + 2a iunayo s más pequeños son un 1 , ... , a 2 n + 2a1,…,a2n+2
Sea vv el promedio de nn más grande a iai s. Sea x i = v - a ixi=v−ai para cada ii . Entonces 3 s = ℓ + ∑ 3 n + 2 i = 1 a i = ℓ + ∑ 2 n + 2 i = 1 a i + ∑ 3 n + 2 i = 2 n +2 ai)v-= ℓ + ∑ 2 n + 2 i = 1 ( 3 n + 2 ) v - ∑ 2 n + 2 i = 1 ( x i ) = ( ℓ - v ) + ( 3 n + 3 (v-xi)+nv=ℓ+∑ 2 n + 2 i = 1 ( x i )3s=ℓ+∑3n+2i=1ai=ℓ+∑2n+2i=1ai+∑3n+2i=2n+2ai=ℓ+∑2n+2i=1(v−xi)+nv=ℓ+(3n+2)v−∑2n+2i=1(xi)=(ℓ−v)+(3n+3)v−∑2n+2i=1(xi) .
Entonces s = ( n + 1 ) v + ℓ - v3 - 13 ∑ 2 n + 2 i = 1 (xi )s=(n+1)v+ℓ−v3−13∑2n+2i=1(xi) .
Si elegimos algún conjunto II de n + 1n+1 índices, entonces la suma de a iai s con i ∈ Ii∈I es igual a ∑ i ∈ I a i = ∑ i ∈ I v - x i = ( n + 1 ) v - ∑ i ∈ I x i∑i∈Iai=∑i∈Iv−xi=(n+1)v−∑i∈Ixi . Un conjunto de índices II es una opción válida para uno de los grupos, siempre que esta suma sea como máximo ss. En otras palabras, utilizando la definición alternativa de ss derivada anteriormente, la condición que nos interesa es ∑ i ∈ I x i ≥ 13 ∑ 2 n + 2 i = 1 (xi)-ℓ-v3∑i∈Ixi≥13∑2n+2i=1(xi)−ℓ−v3 . Obviamente, losíndicesn+1n+1restantesI′={1,...,2n+2 } ∖ TambiénI′={1,…,2n+2}∖I debo cumplir esta condición: ∑ i ∈ I ′ x i ≥ 13 ∑ 2 n+ 2 i = 1 (xi) - ℓ - v3∑i∈I′xi≥13∑2n+2i=1(xi)−ℓ−v3 . Como∑i∈I′xi=∑ 2 n + 2 i = 1 xi-∑i∈Ixi∑i∈I′xi=∑2n+2i=1xi−∑i∈Ixi, podemos reescribir la segunda condición como∑i∈I x i ≤ 23 ∑ 2 n + 2 i = 1 (xi) + ℓ - v3∑i∈Ixi≤23∑2n+2i=1(xi)+ℓ−v3 .
Por lo tanto, hemos reformulado este subproblema usando una alternativa equivalente: estamos tratando de elegir un conjunto II de n + 1n+1 índices entre { 1 , ... , 2 n + 2 }{1,…,2n+2} modo que 23 ∑ 2 n + 2 i = 1 (xi)+ℓ - v3 ≥∑i∈Ix i ≥ 13 ∑ 2 n + 2 i = 1 (xi)-ℓ-v323∑2n+2i=1(xi)+ℓ−v3≥∑i∈Ixi≥13∑2n+2i=1(xi)−ℓ−v3 .
Tenga en cuenta que ℓ ≥ vℓ≥v (y por lo tanto ℓ - v ≥ 0ℓ−v≥0 ) ya que v es el promedio de algunos a i sy ℓ es un límite superior en todos los a i s. Sea X = ∑ 2 n + 2 i = 1 ( x i ) . Nuestra condición anterior se puede reescribir de la siguiente manera: elija un conjunto i ∈ I x i está en el intervalo [ c X , I de n + 1 índices entre { 1 , ... , 2 n+ 2 }tal que ∑ = 1 ( 1 - c ) X ] donde c3 - ℓ - v3 X ≤ 13 .
Supongamos que para algunos j , x j tiene valor al menos X3 . En este caso, vamos I consisten en el índice j y también de la n - 1 índices correspondientes a la más pequeña x i s. Si estas x i se suman como máximo ( 1 - c ) X, entonces esta elección de I satisface la restricción anterior: la suma ∑ i ∈ I x i es al menos x j ≥ X3 = 13 X≥cXy como máximo(1-c)X. Por lo tanto, este conjunto de índicesIse puede utilizar para seleccionar uno de los grupos de tamañon+1en una solución a la instancia problema de embalaje. Por otro lado, si estasxisuman más de(1-c)X,entonces la instancia no puede resolverse: una de las dos mitades incluiráxjy la suma de esa mitad siempre será mayor que(1-c)X(ya que era más que eso incluso cuando colocamos los elementos más pequeños con x j ).
Por lo tanto, hemos manejado el caso de que alguna x j tiene valor al menos X3 . El caso restante es que cadaxitiene valor como máximo X3 . Luego asigne lasxis a dos grupos, 1 y 2, arbitrariamente. Cree una coincidencia de los elementos de los dos grupos e intercambie esos pares un par a la vez. En el transcurso de este proceso, la suma de los elementos del grupo 1 se moverá de su suma inicial a la suma inicial de los elementos del grupo 2. En otras palabras, la suma del grupo 1 cruzará el valor promedio X2 . Cada paso en este proceso implica que el grupo 1 pierda unxiy gane uno; ya que lasxitienen valor como máximo X3 , un par dexis difiere como máximo X3 y así cada paso mueve la suma del grupo 1 como máximo X3 . Por lo tanto, habrá algún punto en el proceso cuando la suma del grupo 1 esté dentro de la mitad del tamaño de paso máximo del promedio. Por lo tanto, en algún momento la suma del grupo 1 caerá dentro de X2 ± X6 . Pero este es el intervalo [ 13 X , 23 X], que es un subintervalo de[cX,(1-c)X]. Por lo tanto, en algún momento durante este proceso, el grupo 1 en ese momento satisfará nuestra condición deseada. Podemos usar este grupo dexis para seleccionar un grupo correspondiente deais; estosuni s forman uno de los dos grupos de tamaño n + 1 necesarios para resolver el problema ejemplo de embalaje.
Conclusión
El trabajo de caso exhaustivo anterior se puede usar como un algoritmo para dividir una lista en tres grupos de la misma suma usando un número blando. El trabajo de casos también identificará cuándo esto es imposible. El tiempo de ejecución de este algoritmo es polinómico.