Hola.
Muchas gracias por responder, geómetracat. Adjunto la solución oficial. Es el quinto ejercicio. Como ya me ha pasado otras veces, el documento que adjunto está en catalán, que es lo que hablamos por aquí. Yo diría que se entiende bastante bien para alguien que hable castellano. No obstante, si alguien tiene alguna duda idiomática yo estaría encantado de aclarársela.
La solución además de incorrecta es sospechosa. Empieza definiendo el problema BIN_PACK de forma diferente a como lo hacen en los apuntes y en las clases, que sería la definición que he dado en el primer mensaje del hilo. A pesar de ello, y aún asumiendo la nueva definición, la solución es claramente errónea, ya que lo que viene a decir es que una palabra de la forma \( (v_1,...,v_n,V,k) \) pertenece a BIN_PACK si y sólo si la palabra \( (v_1,...,v_n,V\cdot{}k) \) pertenece a SUM_SET. Esto es claramente falso, por ejemplo \( (3,3,2;8) \) pertenece a SUM_SET porque en \( A=\{3,3,2\} \) hay un subconjunto que suma \( 8 \), el propio \( A \). Sin embargo, \( (3,3,2;4;2) \) no pertenece a BIN_PACK, ya que no hay manera de empaquetar objetos de volúmenes 3, 3 y 2 en dos cajas de volumen 4. Observa que da igual cuál de las dos definiciones de BIN_PACK tengas en mente.
A mí, personalmente, me suena todo un poco a que querían pedir otra cosa, probablemente transformar SUM_SET en BIN_PACK y que cuando se dieron cuenta de que lo habían preguntado al revés reaccionaron publicando esto... No sé...
Hoy he estado mirando por encima una demostración del teorema de Cook, que según me ha parecido es constructiva. Es decir, parece que hay un algoritmo que permite transformar cualquier problema NP en un problema de satisfacibilidad booleana. Y después, se supone que también existen funciones polinomiales que transforman el problema de la satisfacibilidad booleana en cualquier otro de los NP-completos. No obstante, esto se sale del temario de la asignatura. No han visto ni teorema de Cook, ni el problema de la satisfacibilidad booleana ni nada de eso. Solamente la definición de NP-completo, algunos ejemplos de estos problemas (4 ó 5) y lo que significa transformar polinomialmente un problema en otro. Así que...
Pero bueno, ya que estamos aquí, me gustaría preguntar si alguien conoce algún documento o algo donde se hable de los problemas NP-completos y que incluya las reducciones de unos problemas en otros. Algo así como lo que se vislumbra en
la lista de Karp.
De verdad que muchísimas gracias. Un saludo.