La pregunta para la que no me puedo decidir





To iterate is human, to recurse divine.— L. Peter Deutsch



Ivan Meza

La tesis de Turing-Church (relajada)

Toda computación real puede ser transformada a una máquina de Turing

La tesis de Turing-Church

Toda computación efectiva puede llevarse a cabo por una máquina de Turing

Método efectivo, M

  • $M$ está compuesto por un número finito de instrucciones
  • $M$ cuando llevado a cabo sin error siempre produce el resultado deseado en un número finito de pasos
  • $M$ puede llevarse a cabo por un humano sin la necesidad de una computadora, pero con lápiz y papel
  • $M$ no necesita de conocimiento externo o ingenuidad de parte del humano que lo ejecuta

Evidencia

  • Toda función efectivamente calculable se ha comprobado ser una máquina de Turing
  • Todos los métodos para obtener nuevas funciones efectivamente calculables tienen un equivalente en máquina de Turing
  • Todos los intentos de formalizar la noción intuitiva de efectivamente calculable han resultado en el mismo conjunto, recursivo enumerable

Otras formalizaciones

  • Cálculo lambda
  • Gramática tipo 0
  • Funciones parciales recursivas
  • Algoritmos Post
  • Forma canónica Post
  • Algoritmos de Markov

Variaciones

  • Todas las funciones físicas computables son Turing-computable
  • Una máquina probabilistica de Turing puede simular eficientemente cualquier modelo razonable de computación
  • Máquinas razonables pueden simularse las unas a las otras con un exceso polinomial en tiempo y un factor constante en espacio
  • Una máquina de Turing cuántica puede simular eficientemente cualquier modelo realista de computación
  • Problemas computables, RE
  • Problemas no computables, NRE, $L_d$
Lenguaje Gramática Máquina Ejemplo
No RE -- -- $L_d$
$L_{RE}/L_{Rec}$ Tipo 0
($\alpha \rightarrow \beta$)
Máquina de Turing, APDo, AC $L_u$/$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^*$

Lenguajes decidibles

Suma

¿Dado dos número en notación unaria, verificar que se puedan sumar?


Los sumamos


Muy fácil, $O(n+m)$

Verificación de suma

¿Dado tres números en notación unaria, verificar que el último sea la suma de los dos primeros?


Los sumamos y comprobamos que sean el mismo valor


Muy fácil, $O(n+m)$

Multiplicación

¿Dado dos número en notación unaria, verificar que se puedan multiplicar?


Los multiplicamos


Más o menos fácil, $O(n*m)$ (naive)

Verificación de multiplicación

¿Dado tres número en notación unaria, verificar que el último sea producto de los dos primeros?


Los multiplicamos y comprobamos que sean el mismo valor


Más o menos fácil, $O(n*m)$ (naive)

Verificar número primos

¿Dado un número en notación unaria, es primo?


Dividir número entre factores de $2$ hasta $\sqrt{n}$


¡Más o meno algo de tiempo! $O(\sqrt{n})$

Identificar factores

¿Dado un número en notación unaria, identificar si es divisible entre dos factores primos?


Encontrar un par de primos menores a $n$ que produzcan el número n


¡Más dificil! $O(\frac{n*\sqrt(n)}{log(n)^2})$

Verificación factor

¿Dado tres número en notación unaria, verificar que el último sea el producto de los dos primeros?


Los multiplicamos y comprobamos que sean el mismo valor


Más o menos fácil, $O(n*m)$ (naive)

  • Sacar un elemento de un arreglo $O(n)$
  • Sacar un elemento de un ábol B $O(log(n))$
  • Verificar que mi usuario esté en la base de datos $O(n)$

Nuestro talón de aquiles comienza con que el complemento de decidibles son decidibles

Lenguajes no decidibles

Problema del paro

Existe una máquina de Turing $M_h$ que pueda tomar cualquier máquina $M$ y una entrada $w$ y pueda determinar si el programa para.


La respuesta es NO

Definición de halt

$$M_h(M,w) = \begin{cases} 1 & \text{si } M \text{ para con entrada } w \\ 0 & \text{otherwise} \end{cases}$$

La función computable (no decidible)

$$ M_g(i) = \begin{cases} 0 & \text{si } M(i,i)=0 \\ loop & \text{otherwise} \end{cases}$$

Sabemos que es computable

Dos opciones

¿Qué $M$ define a $M_h$?

Si $M(M_g,M_g)=0$ entonces $M_g(M_g)=0$, entonces $M_h(M_g,M_g)=1$

Si $M(M_g,M_g)=1$ entonces $M_g(M_g)$ loops, entonces $M_h(M_g,M_g)=0$


Entonces asumimos mal que $M_h$ era decidible

Uno de los primeros problemas descubiertos ser no decidibles


Es común transformar problemas al problema de paro para demostrar que también son no decidibles

Teorema de Rice

Toda propiedad no trivial de los lenguajes RE es indecidible

  • Todo conjunto de lenguajes de RE es una propiedad
  • $\emptyset$ y RE son propiedades triviales
  • El conjunto de $M$ que regresan verdadero para toda $w$
  • El conjunto de $M$ que no aceptan al lenguaje vacio
  • El conjunto de $M$ que corresponde a un lenguajes libres de contexto
  • La app va a vigilarme
  • La app va alentar mi celular
  • La app va a pasmarse

No recursivamente enumerables

Nuestro talón de aquiles continua con que hay problemas para los cuales no hay una MT


  • $L$ y $\overline{L}$ son Rec
  • $L\in RE \bigcap \overline{R} $ y $\overline{L}$ no en RE

Los complementos de RE

  • $h=\{[M,w] | w \in L(M) \text{ y para} \}$
  • $\overline{h}=\{[M,w] | w \in L(M) \text{no para si }M\text{ es una máquina de Turing o}$ $M\text{ no es una Máquina de Turing}$
  • El conjunto de $M$ que regresan falso para toda $w$ o $M$ no es una MT
  • El conjunto de $M$ que aceptan al lenguaje vacio o $M$ no es una MT
  • El conjunto de $M$ que corresponde a los lenguajes no son libres de contexto o $M$ no es una MT
  • La app no va a vigilarme
  • La app no va alentar mi celular
  • La app no va a pasmarse
Lenguaje Gramática Máquina Ejemplo
No RE -- -- $L_d,L_{\bar{h}}$
$L_{RE}/L_{Rec}$ Tipo 0
($\alpha \rightarrow \beta$)
Máquina de Turing, APDo, AC $L_u$,$L_h$/$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^*$
Licencia de Creative Commons
La pregunta para la que no me puedo decidir 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/problems.html.