Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desarrollo
Conclusiones
Matemática Discreta I
Conferencia 6: Máquinas de Turing
Objetivo
Sumario
Identificar alfabetos y cadenas.
Determinar si un conjunto de cadenas dadas pertenece a
la potencia de un alfabeto.
Identificar lenguajes en la teorı́a de la computabilidad.
Definir lenguajes de forma intencional y mediante el es-
tablecimiento de condiciones.
Construir Máquinas de Turing sencillas para resolver prob-
lemas y particularmente para reconocer un lenguaje deter-
minado.
Obtener el conjunto de transiciones de una Máquina de
Turing para una cadena de entrada determinada y concluir
entonces si dicha entrada es reconocida o no.
Colectivo de Matemática Discreta I Matemática Discreta I
Introducción
Desarrollo
Conclusiones
Introducción
Introducción
Definición 1
P
Un alfabeto (o vocabulario) es un conjunto finito y no vacı́o,
cuyos elementos se llaman sı́mbolos.
P
Una cadena P (o palabra) sobre es una secuencia finita de
elementos de . La palabra vacı́a o cadena vacı́a, denotada por
λ, es la
Pcadena sin sı́mbolos.
P∗ El conjunto de todas las palabras
sobre se denota P
por .
es un subconjunto de ∗ .
P
Un lenguaje sobre
Ejemplo 1
Los siguientes son ejemplos de alfabetos:
P
= {0, 1}, el alfabeto binario.
P
= {0, 1, 2, . . . , 9}, el alfabeto formado por los dı́gitos
decimales.
P
= {a, b, c, . . . , z}, el alfabeto formado por las letras
minúsculas.
Ejemplo 2
Los siguientes son ejemplos de cadenas:
001101
P y 111 son cadenas sobre el alfabeto binario
= {0, 1}
1345 es una cadena del conjunto de los dı́gitos decimales.
zenaida y dsghtrs , son cadenas del alfabeto formado por
las letras minúsculas del español.
Definición 2
P
Sea w = a1 , a2 , . . . , an una cadena
P sobre el alfabeto , donde
a1 , a2 , . . . , an son sı́mbolos de . Se define la longitud de la
cadena w como n y se denota por |w |.
Ejemplo 3
La longitud de las siguientes cadenas es:
|001101| = 6
|1345| = 4
|zenaida| = 7
|λ| = 0
Potencia de un alfabeto
Definición 3
P
Si es un alfabeto, podemos expresar el conjunto de todas
las cadenas de una determinada longitud de dicho alfabeto uti-
lizando una notación exponencial.
Definimos potencia k deP un alfabeto al conjunto de todasPlas
cadenas sobre el alfabeto de longitud k. Se denota por k .
Potencia de un alfabeto
Ejemplo 4
Son ejemplos de potencias de un alfabeto, las siguientes:
P0
= {λ}
P P1
P2 = {0, 1} entonces,
Si = {0, 1},
P3 = {00, 01, 10, 11},
= {000, 001, 010, 011, 100, 101, 110, 111}, etc.
Clausura de un alfabeto
Definición 4
P
El conjuntoPde todas las potencias de un alfabeto se designa
mediante ∗ y lo definiremos como clausura de un alfabeto.
El mismo será expresado de la siguiente forma:
∗
X 0
X 1
X 2
X ∞ X
[ n
= ∪ ∪ ∪... =
n=0
Clausura de un alfabeto
Ejemplo 5
P
Sea el alfabeto = {0, 1}. La clausura de dicho alfabeto es:
0, 1∗ = {λ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, . . .}
P
El conjunto de las cadenas no vacı́as de un alfabeto se designa como
P +
. Por tanto, este conjunto puede definirse de la siguiente manera:
+
X 1
X 2
X 3
X ∞ X
[ n n
[ X
= ∪ ∪ ∪... = =
n=1 n∈Z+
Por tanto:
∗
X +
X
= ∪{λ}
Lenguaje
Definición 5
cualquier subconjunto de ∗ es un
P P
Para un alfabetoP
dado
lenguaje sobre . Esto incluye el subconjunto ∅ al que lla-
maremos lenguaje vacı́o.
Lenguaje
Ejemplo 6
Son ejemplos de lenguajes los siguientes:
El Español.
Los lenguajes de programación Java, C + +, C #, etc.
P
Sobre el alfabeto = {0, 1}:
1 El conjunto de cadenas formadas por el mismo número
de ceros que de unos:
{λ, 01, 10, 0011, 0101, 0110, 1100, 1010, 1001, . . .}.
2 El conjunto de números binarios cuyo valor en decimal es
un número primo: {10, 11, 101, 111, 1011, . . .}
Ejemplo 7
Son ejemplos de notación intencional para lenguajes los sigu-
ientes:
{w | w consta de un número igual de ceros que de unos}.
{w | w es un entero binario que es primo}.
{w | w es un programa X sintácticamente correcto}.
Máquina de Turing
Máquina de Turing
Máquina de Turing
Definición 6
Una Máquina de Turing (MT), es una tupla de la forma
P
MT = {Q, , Γ, q0 , F , δ}
donde:
Q : Conjunto finito de estados.
P
: Alfabeto de entrada.
Γ : Alfabeto de la cinta.
q0 : Estado inicial.
F : Conjunto de estados finales.
δ : Función de transición, δ : Q × Γ → Q × Γ × {I , D, N}.
Máquina de Turing
Máquina de Turing
Ejemplo 8
P
Diseñar una MT que lleve las cadenas del alfabeto =
{a, b, A, B}P
a mayúsculas:
MT = {Q, , Γ, q0 , F , δ} donde:
Q = q0 , q1
P
= {a, b, A, B}
Γ = {a, b, A, B, #}
F = {q1 }
δ:
Máquina de Turing
Ejemplo 8 (continuación)
(q0 , a) = (q0 , A, D): en el estado q0 cambia el caracter a por A, se
mantiene en el mismo estado y mueve el cabezal a la derecha.
(q0 , A) = (q0 , A, D): en el estado q0 mantiene el caracter A, se
mantiene en el mismo estado y mueve el cabezal a la derecha.
(q0 , b) = (q0 , B, D): en el estado q0 cambia el caracter b por B, se
mantiene en el mismo estado y mueve el cabezal a la derecha.
(q0 , B) = (q0 , B, D): en el estado q0 mantiene el caracter B, se
mantiene en el mismo estado y mueve el cabezal a la derecha.
(q0 , #) = (q1 , #, N): en el estado q0 tras haber convertido toda la
cadena de entrada, pues llegó a la primera celda vacı́a, mantiene el
caracter especial #, pasa al estado final q1 y deja el cabezal en la
misma posición.
Máquina de Turing
Ejemplo 8 (continuación)
Consideremos que la cadena de entrada a la MT anterior sea
abAbBa, al estar en el estado q0 y el cabezal apuntando al car-
acter a se aplica la función de transición (q0 , a) = (q0 , A, D)
y se llega a la configuración que se muestra a continuación.
Máquina de Turing
Ejemplo 8 (continuación)
A continuación se muestran las configuraciones que se van obte-
niendo producto de la aplicación de la función de transición en cada
paso.
Máquina de Turing
(...finalizando el Ejemplo 8)
Puede observarse que al alcanzar la Máquina de Turing la confi-
guración que se muestra en la última cinta de la figura anterior
llega el estado q1 , al no estar definida la función de transición para
dicho estado y el caracter # ((q1 , #) no está definida) la MT se
detiene, pero el estado q1 ∈ F lo que indica que el proceso para
llevar la cadena de entrada a mayúsculas fue exitoso. Esto es de
vital importancia, porque en caso de que el estado q1 no fuese un
estado final, y al no estar definida (q1 , #) la MT se detiene pero
indicando que el proceso no fue exitoso.
Configuración
Definición 7
Una configuración correspondiente a una MT es una cadena
z = αqβ, donde α, β ∈ δ ∗ , o sea (α y β son cadenas del alfabeto
de cinta Γ con longitud mayor o igual que cero) y q ∈ Q . En
z, q representa el estado en el que se encuentra la MT y la
posición del cabezal está apuntando al primer caracter de β.
Configuración
Ejemplo 9
Sea la siguiente cinta de una MT:
Configuración
Ejemplo 10
Sea la siguiente cinta de una MT:
Configuración
Ejemplo 11
La configuración representada en la última cinta del ejemplo 8 es
z = ABABBAq1 , siendo α = ABABBA la cadena transformada
a mayúsculas, β = λ la cadena vacı́a, q1 el estado final. En casos
como este, cuando β = λ el cabezal se encuentra apuntando al
caracter especial # que está justo a continuación de la cadena,
como bien muestra la figura del ejemplo 8 (última cinta).
Derivación
Definición 8
P
En una Máquina de Turing MT = {Q, , Γ, q0 , F , δ} una
derivación consiste en el paso inmediato de una configuración
z a otra z0 al aplicar una vez la función de transición δ, y se
representa como z ` z0.
Derivación
Ejemplo 12
La primera derivación en la MT del ejemplo 8 se representarı́a
entonces como:q0 abAbBa ` Aq0 bAbBa. La que indica que es-
tando la MT en el estado q0 y con el cabezal apuntando al ca-
racter a, al aplicar la función de transición (q0 , a) = (q0 , A, D)
la MT cambia el caracter a por el A, se mantiene en el estado
q0 y mueve el cabezal hacia la derecha.
Derivación
Ejemplo 13
La secuencia de pasos descritos arriba en las figuras del ejem-
plo 8 se representarı́a entonces como la siguiente secuencia
de derivaciones: q0 abAbBa ` Aq0 bAbBa ` ABq0 AbBa `
ABAq0 bBa ` ABABq0 Ba ` ABABBq0 a ` ABABBAq0 `
ABABBAq1 .
Cómputo
Definición 9
Un P cómputo de la Máquina de Turing MT =
{Q, , Γ, q0 , F , δ} de n pasos, es una secuencia de derivaciones
como: z ` z1 ` z2 ` . . . ` zn .
En el ejemplo 13 se muestra un cómputo de 7 pasos.
Cómputo
Definición 10
P
Sea la Máquina de Turing MT = {Q, , Γ, q0 , F , δ}, y dos con-
figuraciones z y z0 para dicha MT. Entonces podemos escribir
z ` ∗z0 si existe un cómputo de 0 o más pasos que comienza
en la configuración z y termina en la configuración z0.
Cómputo
Lenguaje reconocido
Definición 10
L(MT ) es el lenguaje reconocido P por la Máquina de Turing
MT cuando para toda cadena w ∈ ∗ se tiene que w ∈ L si y
solo si la cadena w es aceptada por MT. Es decir:
∗
X
L(MT ) = w ∈ | q0 w ` ∗αqf β, qf ∈ F , α ∈ Γ∗ , α ∈ Γ∗
Lenguaje reconocido
Lenguaje reconocido
Lenguaje reconocido
Ejemplo 14
P
Diseñar una MT en el alfabeto = {a, b} que acepte las
palabras en que la cantidad de a es impar.
Las condiciones relevantes para este problema, que deben ser
recordadas por los estados correspondientes, son:
El número de a recibidas hasta el momento es par (estado
P);
El número de a recibidas hasta el momento es impar
(estado I );
Ejemplo 14 (continuación)
Al iniciar la operación del autómata no se ha recibido aún ninguna
a, por lo que debemos encontrarnos en el estado P (considerando el
cero como un número par), y por lo tanto el estado P es inicial.
Los estados P e I aparecen en la siguiente figura. Esta es la primera
etapa del diseño de una MT. En nuestro método de diseño es im-
portante trazar las transiciones únicamente después de haber deter-
minado cuáles son los estados y sus caracterı́sticas.
Ejemplo 14 (continuación)
Ahora ya podemos trazar las transiciones, lo cual es una tarea relati-
vamente sencilla, si ya tenemos el diseño de los estados. Por ejemplo,
si estamos en P y recibimos una a, claramente debemos irnos a I ,
porque la cantidad de a pasa de ser par a impar. Similarmente se
hacen las otras transiciones. Veamos
Ejemplo 14 (continuación)
Para determinar qué estados son finales, debemos fijarnos en cuáles
corresponden con el enunciado original de las palabras aceptadas.
En este caso vemos que el estado I es el que corresponde, por lo
que es final, mientras que P no corresponde y no es final.
Ejemplo 15
La definición gráfica de la MT definida
P analı́ticamente en el ejemplo
8 (que lleve las cadenas del alfabeto = {a, b, A, B} a mayúsculas)
serı́a la siguiente.
Ejemplo 16
Diseñe una MT que reconozca P el lenguaje L formado por todas
las cadenas sobre el alfabeto = {w , x, y } que cumplen con la
siguiente condición:
l = {w m , x n , y p | m ≥ 0, n ≥ 1, p > 0}
Ejemplo 16 (continuación)
La MT que da solución a la problemática es la siguiente:
Ejemplo 17
Diseñe una MT que reconozca
P el lenguaje formado por todas las
cadenas sobre el alfabeto = {0, 1} que cumplen con las siguientes
condiciones:
Finalizando...
¿Por qué se cree que la Máquina de Turing es una buena
formalización del concepto de algoritmo?
Porque cada programa de una Máquina de Turing puede
ser implementado.
Porque todos los algoritmos conocidos han podido ser
implementados en Máquinas de Turing.
Porque todos los otros intentos por formalizar este
concepto fueron reducidos a las Máquinas de Turing.
Los mejores intentos resultaron ser equivalentes a las
Máquinas de Turing.
Todos los intentos razonables fueron reducidos
eficientemente.
Tesis de Church: Algoritmo = Máquina de Turing.
Colectivo de Matemática Discreta I Matemática Discreta I
Introducción
Desarrollo
Conclusiones
Conclusiones
¿Qué aprendimos en la
clase de hoy?
Estudio Independiente
Estudio Independiente
Estudiar todas las definiciones y ejemplos de la Conferencia para
ser evaluados de forma oral en la próxima clase.
Matemática Discreta I
Conferencia 6: Máquinas de Turing