P/NP: Reducciones Polinomiales, NP-Hard, NP-Complete, SAT Flashcards

1
Q

Explique el concepto de transición de Problema de Optimización a Problema de Decisión

A

Dado un problema de optimización Q, podemos reformularlo como un problema de decisión y viceversa. Y así, encontrar la respuesta en tiempo polinómico o pseudopolinómico.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuándo se resuelve eficientemente un problema?

A

Un algoritmo A resuelve eficientemente un problema S si para toda instancia I de S, el algoritmo A encuentra solución en tiempo polinomial.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es P?

A

Se conoce como P al conjunto de problemas de decisión para los que existe un algoritmo que lo resuelve en forma eficiente (polinómica).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cuándo un algoritmo B certifica de forma eficiente un problema S?

A

Un algoritmo B certifica o verifica eficientemente un problema de decisión S si para toda instancia de ese problema, dado un certificado t, se puede verificar su solución en tiempo polinomial.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explique el concepto de certificado

A

El certificado es el resultado de la combinación de valores de variables de un conjunto. Por ejemplo: X = {x1,x2,x3}.

Entonces, un certificado puede ser: {x1 = 1, x2 = 0, x3 = 0}, y se debe verificar que el resultado obtenido por ese certificado en el problema es true.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué es NP?

A

Se conoce como NP al conjunto de problemas de decisión para los que existe un algoritmo que lo certifique en forma eficiente (es decir, en tiempo polinomial).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explique por qué P ⊆ NP

A

Si un problema Q pertenece a P, significa que existe un algoritmo que lo resuelve en tiempo polinomial.

Por lo tanto, si un problema Q tiene un algoritmo A que lo resuele en tiempo polinomial, significa que podemos definir a B como un algoritmo que certifica al problema Q y lo hace en tiempo polinomial.

B(I,t):
	solucion = A(I)
	return solucion == t
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Explique por qué NP ⊈ P

A

Si el problema Q pertenece a NP, significa que existe un algoritmo B que lo certifica en tiempo polinomial.

  • Si pudiésemos asegurar que la existencia de B garantiza la existencia de un algoritmo A que resuelve el problema Q en tiempo polinomial => P = NP
  • De lo contrario, P != NP

Este es un problema sin resolver dentro de la ciencia de la computación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explique:

  • ¿Qué se busca con las reducciones polinomiales?
  • ¿Cuál es la idea?
  • ¿Que significa reducir del problema Y al problema X?
A

Con las reducciones polinomiales buscamos clasificar problemas computacionales de acuerdo a la complejidad que requiere su resolución.

La idea es reducir un problema a otro conocido, para poder resolverlo.

Reducir del problema Y al problema X es tener un algoritmo de tiempo polinómico que convierta los inputs de Y en inputs equivalentes de X. Las reducciones dicen que si yo sé cómo resolver el problema X, entonces también sé cómo resolver el problema Y.

Además, si el algoritmo Y pertenece a P, entonces X pertenece a P; porque tienen inputs equivalentes. Esto también funciona para NP.

Esto quiere decir que si Y <=p X, X es al menos tan dificil como Y.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explique el concepto de acotar un problema a la clase P, con sus 3 casos posibles para P

A

Sea X,Y problemas tal que:

  1. Caso 1
    - X pertenece a P (se resuelve en tiempo polinomial)
    - Y <=p X

Entonces Y pertenece a P, porque X es igual o más complicado que Y.

  1. Caso 2
    - Y no pertenece a P
    - Y <=p X

Entonces X tampoco pertenece a P.

  1. Caso 3
    - Y <=p X
    - X <=p Y

Entonces X e Y tienen la misma complejidad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique la propiedad de transitividad

A

Sean X,Y,Z problemas tal que:

  • Z <=p Y
  • Y <=p X

Entonces Z <=p X. Además, si X pertenece a P, Z también pertenece.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué es NP-Hard?

A

Sean X,Y problemas tal que:

  • Y pertenece a NP
  • Y <=p X

Entonces X pertenece a NP-Hard. Es decir, X es al menos igual de difícil que cualquier problema en NP. O sea, X es igual o más difícil que cualquier problema de NP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es NP-Complete?

A

Sea X un problema tal que:

  • X pertenece a NP
  • X pertenece a NP-Hard

Entonces X pertenece a NP-C. Es decir, X es uno de los problemas más difíciles dentro de NP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explique el problema SAT

A

SAT: Problema de Satisfacibilidad Booleana

SAT es un problema que pertenece a NP-C.
El problema SAT consiste en determinar si dada una expresión booleana, existe una asignación de valores tales para que la expresión sea verdadera.

Supongamos que se nos da un set X de n variables booleanas {x1, ..., xn}, que pueden tener valor 0 o 1.

Queremos encontrar una asignación de valores para una cantidad de cláusulas (expresiones booleanas) tal que el resultado de todas las cláusulas sea 1 o true.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SAT: Explique por qué pertenece a NP

A

Sea I una instancia del problema SAT y t un certificado que corresponde a un valor de asignación de cada variable, podemos certificar en tiempo polinomial si esa asignación de variables produce un resultado true, reemplazando las variables en las cláusulas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Explique el problema 3-SAT

A

Tenemos un set de cláusulas donde cada una tiene una longitud de 3. Es un caso especial de SAT, y resulta equivalente en dificultad, pero es más sencillo de pensar: todas las cláusulas contienen 3 términos.

17
Q

Explique el Teorema de Cook-Levin

A

Sea X un problema tal que:

  • X pertenece a NP

Entonces X <=p SAT.

Como SAT pertenece a NP-C, sabemos que SAT es uno de los problemas más complejos de resolver en NP.
Por lo que todo problema perteneciente en NP es a lo sumo tan complejo de resolver como SAT.