Un problema de partición en el que se pueden cortar algunos números


8

En el problema de partición estándar , se nos dan algunos números cuya suma es y tenemos que decidir si se pueden dividir en dos subconjuntos cuya suma es . Se sabe que es NP-duro.2 s 2sss

Sin embargo, suponga que se nos permite designar uno de los números como un "número blando" que se puede cortar en un número arbitrario de piezas, donde diferentes piezas se pueden poner en diferentes subconjuntos. Luego, el problema se vuelve fácil: simplemente organice todos los números en una línea en un orden arbitrario, y corte la línea en dos sublíneas con la misma suma.

PREGUNTA: Supongamos que se nos dan algunos números cuya suma es 3 s3s , y tenemos que decidir si se pueden dividir en tres subconjuntos cuya suma es ss , mientras se usa como máximo un número blando. ¿Cuál es la complejidad de este problema?

  • Si se nos permite usar dos números blandos, entonces el problema es nuevamente fácil: podemos resolverlo organizando los números en una línea como arriba.
  • Si se nos permite usar cero números blandos, entonces el problema es obviamente difícil: es al menos tan difícil como el problema de la partición en dos subconjuntos.
  • Si se nos permite usar un número blando, supongo que el problema aún debería ser difícil, y de alguna manera podemos reducirlo del problema de partición estándar, pero no pude encontrar la reducción correcta. Entonces, ¿es fácil o difícil?

Otra pregunta: en caso de que el problema sea NP-hard, ¿se puede resolver en tiempo pseudo-polinomial como el problema de la partición de dos subconjuntos?


1
Una parte de este problema es encontrar un subconjunto cuya suma sea un tercio de la suma del conjunto completo. Sin embargo, no puedo encontrar las referencias apropiadas que indiquen que este problema de suma de subconjuntos restringido es NP-hard
John Dvorak

Es equivalente a eso, en realidad, ya que el resto es biparticionar los dos tercios con un corte.
John Dvorak

@JohnDvorak si podemos resolver el problema de la suma de subconjuntos, entonces podemos resolver el problema en la pregunta, pero lo contrario no es cierto: podemos tener una solución al problema en cuestión en el que un número se corta en tres fracciones, y cada El subconjunto contiene una fracción. Esta solución no resuelve el problema de la suma de subconjuntos.
Erel Segal-Halevi

Por eso no publiqué una respuesta. Estoy convencido de que el problema de partición 1: 2 todavía está np-complete (y, en general, el problema de partición para cualquier relación fija), pero no tengo ninguna prueba de ello. Pero si es NP-hard, entonces también lo es la partición de 3 vías con un problema de corte.
John Dvorak

1
He actualizado la formulación del problema para que quede claro que un número que se puede cortar se puede cortar en muchas partes. (Cuando leí por primera vez el problema, pensé que sólo se le permite cortar un número una vez.)
Gamow

Respuestas:


5

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 iai 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 i2ai2 . WLOG suponga queakakes estouniai. Luego reclamo la instancia del problema de empaque(a1,...,ak-1),+ak(a1,,ak1),+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,,ak1 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,,ak1 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 i3sk1i=1ai (espacio total 3s3s menos espacio utilizadok - 1i = 1 aik1i=1aiespacio vacío k + en total. Entonces desde una k < ). Pero3s- k - 1 i = 1 ai=ak+3sk1i=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 22 y, podemos concluir que en cada paso del proceso anterior,S2 aS2 a cambia a lo sumo22 .

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 22 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 (44 4 ) deAUNA. ComoS2bS2 bsiempre tiene la misma distancia deAUNAqueS2aS2 a, podemos concluir que en algún momento, ambas sumasS2aS2 ayS2bS2 bestán dentro de44 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 de44 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 22 (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 sumo22 . 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 22 (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 sumo22 . 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áximo22 , 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 22 , 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=vai 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(vxi)+nv=+(3n+2)v2n+2i=1(xi)=(v)+(3n+3)v2n+2i=1(xi) .

Entonces s = ( n + 1 ) v + - v3 - 13 2 n + 2 i = 1 (xi )s=(n+1)v+v3132n+2i=1(xi) .

Si elegimos algún conjunto II de n + 1n+1 índices, entonces la suma de a iai s con i IiI es igual a i I a i = i I v - x i = ( n + 1 ) v - i I x iiIai=iIvxi=(n+1)viIxi . 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 i13 2 n + 2 i = 1 (xi)--v3iIxi132n+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 i13 2 n+ 2 i = 1 (xi) - - v3iIxi132n+2i=1(xi)v3 . ComoiIxi= 2 n + 2 i = 1 xi-iIxiiIxi=2n+2i=1xiiIxi, podemos reescribir la segunda condición comoiI x i 23 2 n + 2 i = 1 (xi) + - v3iIxi232n+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)+- v3iIx i 13 2 n + 2 i = 1 (xi)--v3232n+2i=1(xi)+v3iIxi132n+2i=1(xi)v3 .

Tenga en cuenta que vv (y por lo tanto - v 0v0 ) 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 X13 .

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 jX3 = 13 XcXy 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.


¡Gracias! La prueba del Lema 1 se puede acortar: ordene los elementos del grupo 2 aumentando el orden. Deje que el grupo 2a sean los elementos indexados impares y el grupo 2b los elementos indexados pares. Cada elemento en 2a es más pequeño que el siguiente elemento que está en 2b, entonces S 2 bS 2 a . Por otro lado, si eliminamos el elemento más pequeño de 2a y el elemento más grande de 2b, la suma de los elementos restantes en 2a es al menos la suma de los elementos restantes en 2b. Así S 2 b - S 2 un el elemento más grande menos la más pequeña = l / 2 . Por el supuesto, S 2 b a + S22 s - l / 2 . Sumar las desigualdades da S 2 bs .
Erel Segal-Halevi

Pregunta: usted menciona un subproblema: "¿es posible dividir los 2 n + 2 a i -s más pequeños en dos grupos de tamaño n + 1 de modo que cada uno de esos dos grupos tenga una suma como máximo s ?". ¿Por qué este problema no es tan difícil como el problema de PARTICIÓN?
Erel Segal-Halevi

Tienes razón, mi prueba Lemma 1 no es la más simple posible. Sin embargo, soy un poco perezoso para realizar las ediciones (especialmente porque otras partes de la prueba hacen referencia a las técnicas utilizadas en la prueba). En cuanto al subproblema, la razón por la que no es tan difícil como PARTITION es que no tiene que resolver ese subproblema en general: el valor de s no es arbitrario. Para caer en ese caso, existen restricciones adicionales específicas en sy en los a i s que deben cumplirse. Si faltaran estas restricciones, estaría en lo cierto: el problema sería tan difícil como PARTICIÓN.
Mikhail Rudoy

Muchas gracias por la solución clara y detallada.
Erel Segal-Halevi

Hola Mikhail, estamos trabajando en un documento en el que este resultado sea útil. ¿Te gustaría unirte? Si es así, por favor escríbeme un correo electrónico.
Erel Segal-Halevi

3

Esta respuesta hace no resuelve la pregunta. Solo resuelve el siguiente problema auxiliar formulado por @JohnDvorak en los comentarios (particionando un conjunto en relación 1: 2):

Problema auxiliar:
Instancia: Racionales positivos a 1 , ... , a m con m i = 1 a i = 3 A .
Pregunta: ¿Existe un conjunto de índices I { 1 , ... , n } con i I a i = A ?

  • Tome una instancia de PARTICIÓN clásica (racionales b 1 , , b n con la suma 2 B , ¿puede dividirlos en dos grupos con la suma B? ).
  • Tome b 1 , ... , b n junto con los cuatro números 5 B , 5 B , 5 B , 7 B para crear una instancia del problema auxiliar. La suma de todos losnúmeros n + 4 es 24 B , de modo que A = 8 B .
  • Dividiendo los n + 4 números en un grupo con suma A = 8 B y un grupo con suma 2 A = 16 B es posible si y solo si la instancia PARTITION tiene respuesta SÍ.

Por lo tanto, el problema auxiliar de @ JohnDvorak es NP-completo


Hola Gamow, estamos trabajando en un documento en el que este resultado puede ser útil. ¿Te gustaría unirte? Si es así, por favor escríbeme un correo electrónico.
Erel Segal-Halevi

3

Editar: El resultado es incorrecto, vea la discusión al final.

Inspirado por la respuesta de Mikhail Rudoy, ​​podemos generalizar a la división en k partes con la misma suma. El problema es el tiempo polinómico solucionable para cada constante k .

La entrada es un 1 , ... , un n tal que un n es el número más grande. Las observaciones de Mikhail son, wlog,

  • el número blando es un n
  • a i > a nk - 1 por cadai

wlog, suponga que la suma de un 1 , ... , un n - 1 es 1 (es decir, 1 = k s - a n ). Tenga en cuenta que a n1n - 1 , entoncesai>1( k - 1 ) ( n - 1 ) >1k n para cadai. El problema es equivalente a dividir los númerosa1,...,an-1enksubconjuntos, de modo que la suma de cada subconjunto sea como máximos:=1+ank .

Consideramos una restricción del problema de la mochila múltiple . Defina el problema de k- mochila como una instancia del problema de mochila múltiple con k mochilas de la misma capacidad, donde el valor de cada artículo es igual al peso del artículo.

Deje que la entrada para el problema k -knapsack sea un 1 , ... , un n - 1 , y cada mochila tiene capacidads . El siguiente reclamo es claro.

Reclamación : A ( 1 - 1k n ) elalgoritmo de aproximación para elproblemak-knapsack devuelve1, si y solo si todos los númerosa1,...,an-1se pueden empaquetar enk mochilas.

Por el reclamo anterior, solo tenemos que encontrar un ( 1 - 1k n )- algoritmo de aproximación para lak problema mochila.

Reclamación : Existe un algoritmo de tiempo pseudopolinomial para la mochila que se generaliza para k- mochila para cada constante k .

Prueba : defina D [ b 1 , , b k , i ] como el valor máximo utilizando los elementos a a 1 , ... , a i , donde la mochila tiene capacidad b 1 , ... , b k . La relación de recurrencia es D [ b 1 , , b k , i + 1 ] = max ( max j ( D [b 1 , , b j - i + 1 , b k , i ] ) + a i + 1 , D [ b 1 , , b k , i ] ) . El caso base es simple. El tiempo de ejecución es O ( s k k n ) .

Es estándar obtener un FPTAS escalando todos los números y redondeando a enteros, consulte la sección 5 de esto . Esto significa que podemos encontrar un ( 1 - 1k n )-proximación alproblemak-mochila en el tiempo polinómico. Por lo tanto, para cada constantek, el problema original se puede decidir en tiempo polinómico.

Lo anterior es incorrecto, debido a que el algoritmo de tiempo pseudopolinomial no se transforma en un FPTAS. Sin embargo, el enfoque aún puede darnos una idea porque tenemos un caso muy especial de problema k -knapsack.


Encontré este documento: epubs.siam.org/doi/abs/10.1137/S0097539700382820 que muestra un PTAS para mochila múltiple. ¿Cómo se obtiene un FPTAS de él? (¿Quiso decir que hay un FPTAS para el caso especial en el que los valores son iguales a los pesos?)
Erel Segal-Halevi

He hecho una actualización. El FPTAS es para el caso cuando k es una constante. Si el número de mochilas es parte de la entrada, no hay FPTAS.
Chao Xu

Hola Chao, estamos trabajando en un documento en el que este resultado sea útil. ¿Te gustaría unirte? Si es así, por favor escríbeme un correo electrónico.
Erel Segal-Halevi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.