Práctico 12 - Ejercicio 1 (a)

Práctico 12 - Ejercicio 1 (a)

de Leandro Damian Domenech Aguiar -
Número de respuestas: 3

Buenas tardes:

Me gustaría saber qué tan precisa debe ser la demostración de que un problema (como el del ejercicio 1) es NP (parte a).

La consulta se debe a que he notado grados de formalidad muy distintos entre el libro y el teórico de OpenFing. En los ejercicios del libro se da una demostración muy por arriba, sin entrar en detalles del formato y tamaño de la entrada y el certificado. En las clases de OpenFing, sin embargo, este tema se trata con bastante más detalle.

Gracias y saludos.

En respuesta a Leandro Damian Domenech Aguiar

Re: Práctico 12 - Ejercicio 1 (a)

de Javier Baliosian -
hola Leandro:

en la linea de la respuesta que mandé hace un rato a una consulta de otro compañero, te comento:

En el caso de un ejercicio en el que pidamos demostrar que algo es NP, lo que nos parece más importante es que nos muestres que entendés los elementos que definen a un problema NP. Es decir, que un problema X es NP si existe un certificador eficiente para él. Ese certificador es un algoritmo, B, de tiempo polinómico que toma dos argumentos de entrada s y t, una solución y un certificado. Debe existir una función polinómica p tal que para cada cadena s, s pertenece al conjunto de las soluciones SÍ de X si y sólo si existe una cadena t tal que |t| ≤ p(|s|) y B(s, t) = SÍ.

Todos esos son aspectos que debés que mencionar para el problema particular que aparezca en un ejercicio. Explicar cuál es el algoritmo certificador, explicar qué es y que forma tienen la solución s y el certificado t. 

No es tan importante que demuestres formalmente que |t| ≤ p(|s|) o que B es de tiempo polinómico. Si no aclaramos otra cosa, en el contexto de un examen o parcial no exigiriamos eso para dar todos los puntos.

saludos,
Javier








En respuesta a Javier Baliosian

Re: Práctico 12 - Ejercicio 1 (a)

de Amalia Lucia Balestrazzi Silveira -
Buenas.

Hay algo que no me queda claro de esta respuesta. En el libro, entiendo que s no es una solución sino una instancia del problema X:A
También acá:
B
No me queda clara está interpretación donde s es una solución al problema X. 
Si pueden aclarar eso se agradece 
En respuesta a Amalia Lucia Balestrazzi Silveira

Re: Práctico 12 - Ejercicio 1 (a)

de Jonathan Murana -
Hola Lucia,
creo que es la formalizacion lo que confunde,
trato de explicarlo con un ejemplo.

Consideremos Independent Set.

En este caso:

"s" es una instancia (G,k) del problema, o sea un grafo con por ejemplo tres nodos y dos aristas, y el numero k=2.
Si queremos ver "s" como un string podríamos usar la matriz de adyacencias (como string) y concatenado el numero k=2.

"A" es un algoritmo que reciba como parámetros un grafo y un k (el string s), y retorne "SI" siempre que exista
un conjunto de nodos de tamaño al menos 2 en ese grafo sin aristas entre ellos, o "NO" .

"X" son el conjunto de "s" tal que A(s)=yes

"t" es la evidencia que "s" es SI ("solucion de s"), que seria el conjunto de nodos de la instancia "s" que no tiene aristas, podría ser una
lista o un string con los ids de nodos, en este caso el nodo 1 y el nodo 3 por ejemplo.

todo esto es para luego definir un algoritmo certificador B(s,t) que pueda chequear si la instancia "s" es si (polinomial)
para todo s en X

saludos