En el OrderedPartition
problema, la entrada es dos secuencias de enteros positivos, y . El resultado es una partición de los índices en dos subconjuntos disjuntos, y , de modo que:
- Para todo y para todo : .
En otras palabras, primero tenemos que ordenar los índices en una línea para que aumente débilmente, y luego cortar la línea para que la suma de en ambos lados sea la misma.
Si todos son iguales, entonces la condición 2 es irrelevante y tenemos una instancia del problema NP-hard . Por otro lado, si todos los son diferentes, entonces la condición 2 impone un orden único en los índices, por lo que solo hay opciones para verificar y el problema se vuelve polinómico. ¿Qué sucede entre estos casos?Partition
Para formalizar la pregunta, defina por OrderedPartition[n,d]
, para , el problema restringido a instancias de tamaño , en el que el subconjunto más grande de -s idénticas es de tamaño . Entonces, el caso fácil, cuando todos los -s son diferentes, es , y el caso difícil, cuando todos los b i -s son idénticos, es .OrderedPartition[n,1]
OrderedPartition[n,n]
Más en general, para cualquier y , en cualquier OrderedPartition[n,d]
caso, el número de posibles particiones condición 2 respetando es . Por lo tanto, si , entonces OrderedPartition[n,d]
todavía es polinomial en .
Por otra parte, para cualquier y , podemos reducir de un Partition
problema enteros a OrderedPartition[n,d]
. Sea una instancia de Partition
. Definir una instancia de OrderedPartition[n,d]
por:
- Para cada , deje y .
- Para cada , deje y
[si es impar, haga modo que la suma sea par] .
Por lo tanto, si , para cualquier número entero , entonces OrderedPartition[n,d]
es NP-hard.
PREGUNTA: ¿Qué sucede en los casos intermedios, en los que es superlogarítmico pero subpolinomial en ?
fuente