Considere la siguiente tarea algorítmica:
Entrada: un entero positivo , junto con su factorización prima
Encontrar: enteros positivos que minimizan , sujeto a la restricción de quex , y , z
x y z = n
¿Cuál es la complejidad de este problema? ¿Existe un algoritmo de tiempo polinómico? ¿Es NP-duro?
Este problema básicamente pregunta: de todos los sólidos rectangulares cuyo volumen es cuyas dimensiones son todos enteros, ¿cuál tiene la menor área de superficie?
Este problema fue planteado por Dan Meyer, bajo el título El problema matemático que 1,000 maestros de matemáticas no pudieron resolver . Hasta ahora, ninguno de los profesores de matemáticas con los que trabajó ha encontrado un algoritmo razonable para este problema. En su contexto, la definición de "razonable" es un poco imprecisa, pero como informáticos podemos hacer una pregunta más precisa sobre la complejidad de este problema.
El enfoque obvio es enumerar todas las posibilidades para , pero eso lleva tiempo exponencial. Los comentaristas en el blog de Dan Meyer han propuesto muchos algoritmos de candidatos eficientes que desafortunadamente todos resultaron ser incorrectos. Martin Strauss sugiere que este problema parece recordar vagamente a las 3 particiones , pero no puedo ver una reducción.
Permítanme aclarar algunas ideas falsas que he visto en los comentarios / respuestas:
No se puede reducir de 3 particiones simplemente reemplazando cada número con su potencia , ya que las funciones objetivas de los dos problemas son diferentes. La reducción obvia simplemente no funciona.2 q
No es cierto que la solución óptima implica elegir uno de para que sea el divisor más cercano de a . Veo a varias personas que suponen que este es el caso, pero de hecho, eso no es correcto. Esto ya ha sido refutado en la publicación del blog de Dan Meyer. Por ejemplo, considere ; , y 4 divide 68, por lo que podría pensar que al menos uno de debería ser 4; Sin embargo, eso no es correcto. La solución óptima es , , . Otro contraejemplo es , , pero la solución óptima esn 3 √ n=683 √x,y,zx=2y=2z=17n=2223 √x=37 , , . ( Puede ser cierto que para todo , la solución óptima implica hacer que al menos uno de sea igual al divisor más pequeño de más grande que o al divisor más grande de más pequeño que - No tengo un contraejemplo en este momento, pero si crees que esta afirmación es verdadera, necesitaría pruebas. No puedes asumir que es verdadera).z = 2x , y , z n 3 √ 3 √
"Hacer que sean del mismo tamaño" no parece dar necesariamente la respuesta óptima en todos los casos; vea la publicación de blog de Dan Meyer para contraejemplos. O, al menos, para algunas interpretaciones razonables de la frase "hacerlos más o menos del mismo tamaño", hay contraejemplos que muestran que esta estrategia no es óptima. Si desea probar alguna estrategia de ese tipo, asegúrese de exponer el reclamo con precisión y luego proporcionar una prueba matemática cuidadosa.
Un tiempo de ejecución de no es polinomial. Para que este problema esté en P, el tiempo de ejecución debe ser un polinomio en la longitud de la entrada . La longitud de la entrada es algo así como , no . El algoritmo de fuerza bruta obvio puede ejecutarse en tiempo u , pero eso es exponencial en y, por lo tanto, cuenta como un algoritmo de tiempo exponencial. Por lo tanto, eso no es útil.lg n n O ( n 3 ) O ( n 2 ) lg n