Problemas, problemas, problemas





I've got 99 problems and 3-SAT reduces to all of them..— Reddit



Ivan Meza

Reducción

Un problema $A$ se reduce a $B$, $A \le B$

Función de reducción

  • Una función $f(w)$
  • $A$ se reduce a $B$ si $w\in A$ si y sólo si $f(w) \in B$
  • Sí $w\in A$ entonces $f(w)\in B$
  • Sí $w\not\in A$ entonces $f(w)\not\in B$

Pequeño problema

Considerar $L_D$ y reducir a $0^*1^*$

  • Sí $w\in L_D$ entonces $f(w)= 01$
  • Sí $w\not\in L_D$ entonces $f(w)= 10$

¿Entonces reducimos $L_D$ a regular?

$f$ tiene que ser computable

Reducción

Máquina R

Con la entrada $w$

  • Calcular $f(w)$
  • Correr $M_B$ en $f(w)$
  • Si $M_B$ acepta $f(w)$, entonces aceptar $w$
  • Si $M_B$ rechaza $f(w)$, entonces rechazar $w$

Notación $A\le_M B$, $A$ es reducible a $B$

Propiedades

  • Si A, entonces $A \le B$
  • Si A,B y C entonces $A \le B$ y $B \le C$ entonces $A \le C$

Informalemente, A no es más difícil que B

Reducciones famosas

  • $HALT \le L_u$
  • $L_u \le HALT$
  • $HALT \le DECIDER$ donde $\{ m | \text{is a decider} \}$
  • $L_u \le ONES$ donde $\{m | m\text{ acepta w con forma } 1^n\}$
  • $L_d \le ONLYONES$ donde $\{m | L(m) \subseteq 1^*\}$
  • $L_d \le \overline{ONLYONES}$ donde $\{m | L(m) \not \subseteq 1^*\}$

Opciones

Si $A\le_MB$

  • Si $B$ es decidible, entonces $A$ lo es
  • Si $B$ es computable, entonces $A$ lo es
  • Si $A$ es indecidible, entonces $B$ lo es
  • Si $A$ es no es computable (no RE), entonces $B$ lo es

Dónde quedan en la jerarquía extendida

  • $HALT \le L_u$
  • $L_u \le HALT$
  • $HALT \le DECIDER$ donde $\{ m | \text{is a decider} \}$
  • $L_u \le ONES$ donde $\{m | m\text{ acepta w con forma } 1^n\}$
  • $L_d \le ONLYONES$ donde $\{m | L(m) \subseteq 1^*\}$
  • $L_u \le \overline{ONLYONES}$ donde $\{m | L(m) \not \subseteq 1^*\}$

El poder de tener la respuesta

  • $ONES$ si me dan una respuesta válida $m,1^n$, es fácil de checar
  • $ONES$ si me dan una inválida $m,1^n$, no es tan fácil de checar (loop)
  • $\overline{ONLYONES}$ si me dan una respuesta inválida $m,\not = 1^n$, es fácil de checar
  • $\overline{ONLYONES}$ si me dan una respuesta válida $m,1^n$, no es fácil de checar (loop)

RE y co-RE

RE es el conjunto de lenguajes reconocidos por una máquina de Turing

Problemas para los cuales verificamos una respuesta correcta


co-RE es el conjunto de lenguajes cuyos complementso son reconocidos por una máquina de Turing

Problemas para los cuales verificamos una respuesta incorrecta

RE y co-RE

  • Si $L\in RE$ y $\overline{L} \in RE$, entonces $L\in Rec$
  • Si $L\in RE$ y $\overline{L} \in coRE$, entonces $L\in Rec$
  • Si $L\not\in R$ y ${L}\in RE$, entonces $L\not\in co-RE$
  • Si $L\not\in R$ y ${L}\in co-RE$, entonces $L\not\in RE$

¿Qué sabemos de este lenguaje?



$REGULAR=\{[M] | L(M)\text{ es regular}\}$


$L_D\le_M REGULAR$


REGULAR es no RE, pero


$\overline{L_D}\le_M REGULAR$

$REGULAR$ y $\overline{REGULAR}$ afuera de los límites de lo computable


¿Otro afuera?



$EQ_{TM}=\{[M_1,M_2] | L(M_1) = L(M_2)\}$


Lenguaje Gramática Máquina Ejemplo
Más alla/No RE -- -- $REGULAR, \overline{REGULAR}, L_{EQ}$
co-RE/No RE -- -- $\overline{L_u},L_D, \overline{ONES}, ONLYONES$
$L_{RE}/L_{Rec}$ Tipo 0
($\alpha \rightarrow \beta$)
Máquina de Turing, APDo, AC $L_u,\overline{L_D}, ONES, \overline{ONLYONES}$/$L_n$,$L_\bar{f}$
$L_{DC}$ Tipo 1
($\alpha V \beta \rightarrow \alpha \gamma \beta$)
Autómata lineal con fronteras $ww, a^nb^nc^n$
$L_{LC}$ Tipo 2
($V\rightarrow \alpha$)
Autómata de pila $ww^r, a^nb^n$
$L_{reg}$ Tipo 3
($V \rightarrow aA|\epsilon$)
Autómata finito $w, a^*$

Resumen: Church-Turing tesis

  • Rec: problemas que pueden ser calculados por una computadora
  • RE: problemas donde respuestas pueden ser verificados por una computadora
  • co-RE: problemas donde respuestas pueden ser refutadas por una computadora

Fijandonos en los decidables

  • ¿Es posible resolver un problema eficientemente?

Eficiencia se mide en número de pasos/tiempo

Tipos de complejidades

  • Contante $O(1)$
  • Log log $O(log(n)log(n))$
  • Logarítmica $O(log(n))$
  • Raiz cuadrática $O(\sqrt{n})$
  • Polinómica $O(n)$
  • Polinómica Log $O(nlog(n))$
  • Polinómica cuadrada $O(n^2)$
  • Exponencial log $O(2^{log(n)})$
  • Exponencial $O(2^n)$
  • Factorial $O(n!)$

Tesis de Cobham-Edmonds

Un lenguaje $L$ puede ser resuelto eficientemente si se decide en tiempo polinómico

Clase de P

Todos los problemas que se pueden resolver en en tiempo polinomial

Ejemplos

  • Reconocer $w$ de un AF, AFND y AFND-$\epsilon$
  • Reconocer $w$ de un APD
  • Reconocer $w$ de un AP (!Compiladores!)
  • ¿Dado un grafo y dos nodos, estos se conectan?
  • ¿Dado un número $n$ es primo?
  • Etc, ...

Clase de NP

Todos los problemas que se pueden resolver en en tiempo polinomial por una MTND

NP es No determinístico en tiempo polinomial

Máquinas de Turing

Es una tupla $(Q,\Sigma,\Gamma,q_0,B,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ alfabeto de cadenas reconocidas
  • $\Gamma $ alfabeto de cinta, $\Sigma \subset \Gamma$
  • $q_0$ estado inicial
  • $B$ Símbolo de espacio en blanco $B \in \Gamma$ pero $B \not\in \Sigma$
  • $A$ estados finales
  • $\delta$ función de transición $Q \times \Gamma \rightarrow Q\times\Gamma\times\{der,izq\}$

Máquinas de Turing no determinística

Es una tupla $(Q,\Sigma,\Gamma,q_0,B,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ alfabeto de cadenas reconocidas
  • $\Gamma $ alfabeto de cinta, $\Sigma \subset \Gamma$
  • $q_0$ estado inicial
  • $B$ Símbolo de espacio en blanco $B \in \Gamma$ pero $B \not\in \Sigma$
  • $A$ estados finales
  • $\delta$ función de transición $Q \times \Gamma \rightarrow \{Q\times\Gamma\times\{der,izq\}\}$

Uso el no determinismo para adivinar respuestas

Uso el determinismo para verificar la respuesta


Problemas fáciles de verificar

Ejemplos de NP

  • Soduko
  • El problema del agente de viaje
  • Un grafo puede ser coloreado por $k$ colores
  • Determinar la mejor forma de asignar trabajos a trabajadores

La pregunta más importante en computación

¿$P=NP$? o ¿$P\not =NP$?

El cuarto problema de los problemas de Millenium

Solucción vale un millón de dolares

Descrito en 1971

NP-hard

Informalmente, son los problemas que son tan difíciles como el más difícil en NP


Formalmente, son los problemas que son tan difíciles como el más difícil en NP

NP-complete


Intercección NP y NP-hard

Ejemplos $NP-complete$

  • Satisfacción Lógica Proposicional
  • De un conjunto de números podemos encontrar un conjunto que sume zero

Ejemplos $NP-hard$

  • NP-complete
  • Halting problem

Si $L\in \text{NP-complete}$ y $L\in P$, entonces $P=NP$

¿Como resolvemos estos problemas?

  • Aproximación
  • Aleatoriidad
  • Uso de restricciones
  • Parametrización
  • Heurísticas

Para mayor información visitar el zoológico aquí

Licencia de Creative Commons
Problemas, problemas, problemas by Ivan V. Meza Ruiz is licensed under a Creative Commons Reconocimiento 4.0 Internacional License.
Creado a partir de la obra en http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/np_p.html.