Está en la página 1de 44

Facultad de Ingeniería

Teoría de Autómatas y
Lenguajes Formales
Máquinas de Turing
Profesor Guía: Alexander Espina-Leyton al.espina@uandresbello.edu

Nicolás Enrique Hormazábal Santibañez nic.hormazabal@uandresbello.edu


Fecha: 11-11-2020 1
Contenido

2
Tabla de contenidos
● Introducción
● Definición y Notaciones
● Máquinas

3
Introducción

4
Introducción
● Sin duda hasta el momento del curso y la carrera, hemos
revisado problemas que pueden ser resueltos por un
computador.
○ Si una palabra es palíndromo
○ Calcular el largo de una lista de elementos
○ Otros
● Existe un conjunto de problemas llamados “problemas
decidibles”, para los cuales siempre es posible encontrar
un algoritmo para resolver el problema.
5
Introducción
● Por lo tanto, existe otro conjunto de problemas llamados
“problemas indecidibles”, para los cuales no es posible
encontrar un algoritmo para resolver el problema.
● Para ellos, existe un gran reto para la teoría de la
computación y la informática. Lo que invita a buscar
nuevas formas de diseñar computadoras, que puedan
resolver dichos problemas.

6
Introducción
● Observe el siguiente código:
○ int main(){
○ printf("hola mundo.\n");
○ return 0;
○ }
○ ¿Qué ‘locura’ creen que hará este programa?

7
8

Introducción

Facultad de Ingeniería
● Y el siguiente
código:
Introducción
● El código anterior cae en la categoría de problema
‘indecidible’.
● Si se analiza para n > 2, el programa no imprimirá “hola
mundo”.
● Esta afirmación fue hecha por Fermat (el último teorema
de fermat) hace 3 siglos.

9
Introducción
● Parece probable que, si los matemáticos tardaron 3
siglos en resolver una pregunta acerca de un único
programa de 22 líneas, entonces el problema general de
establecer si un determinado programa, para una entrada
dada, imprime “hola mundo” tiene que ser realmente
complicado.

10
Demostración
● Por tanto, sería totalmente extraordinario que
consiguieramos escribir un programa que examinara
cualquier programa P y la entrada I para P, y estableciera
si P, ejecutado para la entrada I, imprime o no “hola
mundo”. Así fue como Alan Turing demuestra que tal
programa no existe. El famoso “problema del hola
mundo”.

11
Demostración

12
Demostración

13
Demostración

14
Demostración

15
Demostración
● El propósito de la teoría de los problemas indecidibles no
es sólo establecer la existencia de tales problemas, sino
proporcionar un marco teórico que guíe sobre lo que se
puede o no se puede conseguir a través de la
programación.
● 1936, A. M. Turing propuso la máquina de Turing como
modelo de “cualquier posible computación”. Este modelo
es como una computadora, en lugar de como un
programa, incluso aunque las verdaderas computadoras
electrónicas aparecieron varios años después. 16
Definición y Notación
de Máquina de Turing

17
Definición y Notación
● Generalmente se dibuja como se ve en las 2 figuras:

18
Definición y Notación
M = (Q,Σ,Γ,𝛿, q0,B,F)
● Q: El conjunto finito de estados de la unidad de control
● Σ: El conjunto finito de símbolos de entrada
● Γ: El conjunto completo de símbolos de cinta; Σ siempre
es un subconjunto de Γ

19
Definición y Notación
M = (Q,Σ,Γ,𝛿, q0,B,F)
● 𝛿 La función de transición. Los argumentos de 𝛿(q,X) son un estado q
y un símbolo de cinta X. El valor de 𝛿(q,X), si está definido, es
(p,Y,D), donde:
○ p es el siguiente estado de Q
○ Y es el símbolo de Γ, que se escribe en la casilla que señala la
cabeza y que sustituye a cualquier símbolo que se encontrara en
ella.
○ D es una dirección y puede ser L, R, ←, ⟶ lo que nos indica la
dirección en que la cabeza se mueve.
q0, el estado inicial, un elemento de Q, en que inicialmente se
20
encuentra la unidad de control.
Definición y Notación
M = (Q,Σ,Γ,𝛿, q0,B,F)
● B el símbolo de espacio en blanco (#, _). Este símbolo pertenece a Γ
pero no a Σ; es decir, no es un símbolo de entrada. El espacio en
blanco aparece inicialmente en todas las casillas, excepto en
aquellas que almacenan símbolos de entrada.
● F el conjunto de estados finales o de aceptación, un subconjunto de
Q.

21
Definición y Notación
● Un movimiento de la máquina de Turing, es una función del estado
de la unidad de control y el símbolo de cinta al que señala la cabeza.
En un movimiento, la máquina de Turing:
○ Cambiará de estado. El siguiente estado puede ser
opcionalmente el mismo que el estado actual
○ Escribirá un símbolo de cinta en la casilla que señala la
cabeza. Este símbolo de cinta reemplaza a cualquier símbolo
que estuviera anteriormente en dicha casilla. Opcionalmente, el
símbolo escrito puede ser el mismo que el que ya se encontraba
○ allí.
22
Definición y Notación
● Un movimiento de la máquina de Turing, es una función del estado
de la unidad de control y el símbolo de cinta al que señala la cabeza.
En un movimiento, la máquina de Turing:
○ Moverá la cabeza de la cinta hacia la izquierda o hacia la derecha. En
nuestro formalismo, exigiremos que haya un movimiento y no
permitiremos que la cabeza quede estacionaria. Esta restricción no
limita lo que una máquina de Turing puede calcular, ya que cualquier
secuencia de movimientos con una cabeza estacionaria podría
condensarse, junto con el siguiente movimiento de la cabeza de la cinta,
en un único cambio de estado, un nuevo símbolo de cinta y un
movimiento hacia la izquierda o hacia la derecha
○ 23
Máquinas

24
Máquinas

25
Máquinas
Dado el alfabeto Σ = {0,1}, considere L1 el lenguaje formado por todas las
cadenas con el mismo número de 0’s que de 1’s. Sea L2 la siguiente M:

¿Reconocen el mismo lenguaje? 26


Máquinas
Dado el alfabeto Σ = {0,1}, considere L1 el lenguaje formado por todas las
cadenas con el mismo número de 0’s que de 1’s. Sea L2 la siguiente M:
L1 = {𝜀, 01, 10, 0101, 0011, 1100, 1100, 1010,1001}

← B 0 1 0 1 B ⟶

← B X Y X Y B ⟶

27
Ejercicios

28
29

Facultad de Ingeniería
Ejercicio:
¿Qué lenguaje describe la siguiente MT?
M = ({q0,q1,q2,q3,q4},{0,1},{0,1,X,Y,B},𝛿,q0,B,{q4})
30

Facultad de Ingeniería
Ejercicio 2:
¿Qué lenguaje describe el siguiente problema?
31

Facultad de Ingeniería
Ejercicio 3:
Construya la tabla de transiciones del siguiente diagrama de MT
32

Facultad de Ingeniería
Ejercicio 4:
Describa narrativamente lo que retorna la siguiente MT
33

Facultad de Ingeniería
Ejercicio 5:
¿Qué hace la siguiente MT?
Anexos

34
35

Facultad de Ingeniería
Ejercicio 2:
¿Qué lenguaje describe el siguiente problema?
36

Facultad de Ingeniería
Ejercicio 3:
Construya la tabla de transiciones del siguiente diagrama de MT
37

Facultad de Ingeniería
Ejercicio 4:
38

Facultad de Ingeniería
Ejercicio 5:
¿Qué hace la siguiente MT?
39

Facultad de Ingeniería
Teorema del Bombeo
40

Facultad de Ingeniería
Lemas LLC
PDA 2 Stacks
Un autómata de dos pilas, tiene exactamente el mismo poder cómputo de un autómata de 3 pilas, 4
pilas, etc. Ese poder de cómputo es el mismo de una máquina de Turing.

La tupla de un PDA de dos pilas:

P = (Q, Σ, Γ1,Γ2, Δ, s, F)
○ Δ ⊆ (Q x Σ* x Γ1* x Γ2*) x (Q x Γ1* x Γ2*), conjunto finito
de transiciones.

Diseñe un PDA de 2 pilas para el lenguaje formado por:


anbncn
41
42

Facultad de Ingeniería
MT + 0.3 + 0.3
Diseñe el PDA de 2 pilas y la MT del
ejercicio 4 de la Solemne II
43

Facultad de Ingeniería
Fuentes
➢ Ponencias Curso Carlos Rey Barra
➢ Ponencias Curso Carlos Gómez-Pantoja
➢ J. Hopcroft, R. Motwani, J. Ullman. (2001).
Introduction to Automata Theory, Languages,
and Computation. Pearson Education.
➢ https://www.youtube.com/channel/UCXXF51JG
HlD5UN9IYxNEUCw
Facultad de Ingeniería

Teoría de Autómatas y
Lenguajes Formales
Máquinas de Turing
Profesor Guía: Alexander Espina-Leyton al.espina@uandresbello.edu

Nicolás Enrique Hormazábal Santibañez nic.hormazabal@uandresbello.edu


Fecha: 11-11-2020 44

También podría gustarte