Está en la página 1de 58

Introducción

Desarrollo
Conclusiones

Matemática Discreta I
Conferencia 6: Máquinas de Turing

Colectivo de Matemática Discreta I


Universidad de las Ciencias Informáticas

Disciplina Inteligencia Computacional

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción
Desarrollo
Conclusiones

Objetivo

Identificar los elementos básicos de las Máquinas de


Turing a partir de la caracterización de su lenguaje,
ası́ como de su funcionamiento y definición.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción
Desarrollo
Conclusiones

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

Las palabras del idioma español pueden combinarse de varias


formas. La gramática española nos dice cuándo cierta combi-
nación de palabras es una frase válida.
Es sencillo comprobar que son enunciados válidos un matemáti-
co hambriento come salvajemente, un enorme matemáti-
co salta, el conejo come rápidamente, etc. Ası́ mismo, se
puede comprobar que no es válida la frase el rápidamente
come matemático.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción
Desarrollo
Conclusiones

Introducción

El uso de la gramática es de gran ayuda cuando se trata de


resolver las dos clases de problemas que aparecen conmucha
frecuencia en las aplicaciones a los lenguajes de programación:
1 ¿Cómo se puede determinar cuándo una combinación de
palabras es una frase válida en un lenguaje formal?
2 ¿Cómo se pueden generar las frases válidas de un lenguaje
formal?
Como puede observarse, el trabajo con las gramáticas es ex-
tremadamente complicado, por lo que centraremos la atención
en los lenguajes y los elementos que los componen. Para aden-
trarnos en la teorı́a del lenguaje, introducimos algunos términos.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Teorı́a del lenguaje

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

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Teorı́a del lenguaje

Nótese que λ, la palabra vacı́a, es la cadena que no contiene


sı́mbolos, y es diferente del conjunto vacı́o, ∅. Por tanto, {λ}
es el conjunto que contiene exactamente una palabra, la pal-
abra vacı́a. Además, λ es una cadena que puede construirse en
cualquier alfabeto.
Los lenguajes se pueden especificar de varias formas. Una de
ellas consiste en enumerar todas las palabras que conforman el
lenguaje. Otra es dar algunos criterios que una palabra debe
satisfacer para pertenecer al lenguaje.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Teorı́a del lenguaje

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Teorı́a del lenguaje

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Longitud de una cadena

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 |.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Longitud de una cadena

Ejemplo 3
La longitud de las siguientes cadenas es:
|001101| = 6
|1345| = 4
|zenaida| = 7
|λ| = 0

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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 .

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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
= ∪{λ}

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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, . . .}

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Notación para lenguaje

Un lenguaje puede describirse utilizando la notación intencional


de conjuntos:
{w | P(w )}
Esta expresión se lee: el conjunto de cadenas w que cumplen la
propiedad P.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Notación para lenguaje

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}.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Notación para lenguaje

También es común reemplazar a w por alguna expresión con


parámetros y describir las cadenas del lenguaje estableciendo
condiciones sobre los parámetros.
Ejemplo 8
Son ejemplos de notación intencional para lenguajes los sigu-
ientes:
{0m 1n 0m | m ∈ N, n ∈ N y representan la cantidad de
ocurrencias del sı́mbolo en la cadena}
{an b m c n+m | n > 0, m > 0}.
{an | n − 1 o n − 5 sean divisibles por 8 }.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Máquina de Turing

Un paseo por la historia

Alan Mathison Turing (1912-1954) se


le considera uno de los padres de la in-
formática y se le conoce como el padre
de la computabilidad. Quién definió la
primera formalización de algoritmo y propu-
so el modelo de cómputo conocido por la
máquina de Turing.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Máquina de Turing

¿Quién es Alan Turing y en qué consiste una


Máquina de Turing?
(Libro: Matemáticas Discretas para Ingenieros en Ciencias In-
formáticas, páginas 195-203)

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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}.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Máquina de Turing

¿Cuándo se detiene una MT? La MT se detiene cuando llega


a un estado q con el cabezal apuntando a un caracter c tales
que la función de transición δ no está definida para esa tupla
(δ(q, c) no está definida). Entonces pueden suceder dos cosas:
que sea un estado final q ∈ F o no q ∈ / F . El hecho de que
q ∈ F indica que la MT terminó exitosamente, no ası́ en caso
de que q ∈/ F.
Pero, ¿qué significa todo esto? Veamos:

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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 }
δ:

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Primer paso en la ejecución de la MT, debido a que (q0 , a) =


(q0 , A, D).

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Resultado de aplicar los pasos del 2 al 7 (léase de izquierda a derecha


y de arriba a abajo).
Colectivo de Matemática Discreta I Matemática Discreta I
Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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 β.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Configuración
Ejemplo 9
Sea la siguiente cinta de una MT:

En dicha cinta se representa la configuración en la que z =


ABqAbBa, en la que α = AB y β = AbBa, de modo que la
MT se encuentra en el estado q y el cabezal está apuntando al
caracter A (primer caracter de β).

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Configuración
Ejemplo 10
Sea la siguiente cinta de una MT:

La configuración inicial de la MT representada en la figura an-


terior es z0 = q0 abAbBa, siendo α = λ la cadena vacı́a de
longitud 0, β = abAbBa la cadena de entrada, q0 el estado ini-
cial y el cabezal se encuentra apuntando al caracter a (primero
de la cadena de entrada).
Colectivo de Matemática Discreta I Matemática Discreta I
Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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).

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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 .

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Cómputo

Es importante destacar que siempre es posible pasar de una


configuración z a ella misma sin aplicar la función de transición,
o sea, z ` ∗z; estos son los únicos casos en que se asume que
el cómputo es de 0 pasos.
En el ejemplo 13 se demuestra que q0 abAbBa ` ∗ABABBAq1 .

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Reconociendo una cadena

Decimos que una MT reconoce o acepta una cadena si se


cumplen las siguientes condiciones:
1 Se consumen todos los caracteres de dicha cadena de
entrada, siguiendo las transiciones y pasando en
consecuencia de un estado a otro.
2 Al terminarse la cadena, el estado al que llega es uno de
los estados finales del autómata (los que tienen doble
cı́rculo en los diagramas, o que son parte del conjunto F
en la representación formal).

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Reconociendo una cadena

El lenguaje reconocido por una Máquina de Turing es el conjunto


de todasPlas cadenas formadas por caracteres del alfabeto de
entrada que son aceptadas por dicha MT, y viceversa, todas
las cadenas que son aceptadas por la MT pertenecen al lenguaje
que ella reconoce. Veamos:

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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 , α ∈ Γ∗ , α ∈ Γ∗

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Lenguaje reconocido

Para llevar a cabo el diseño de una MT deben tenerse en cuenta


varios elementos.
Considérese el problema de construir una MT que acepte exac-
tamente un lenguaje dado.
Este problema es comúnmente llamado problema de diseño. No
es conveniente proceder por ensayo y error, puesto que en gen-
eral hay que considerar demasiadas posibilidades, y es muy fácil
equivocarse.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Lenguaje reconocido

Más aún, hay dos maneras de equivocarse al diseñar una MT:


1 Que sobren cadenas, esto es, que la máquina acepte
algunas cadenas que no deberı́a aceptar. En este caso
decimos que la solución es incorrecta.
2 Que falten cadenas, esto es, que haya cadenas en el
lenguaje considerado que no son aceptadas por la
máquina, cuando deberı́an serlo. En este caso decimos
que la solución es incompleta.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

Lenguaje reconocido

Recuérdese que la única forma de memoria que tienen las MT


es el estado en que se encuentran. Ası́, el diseño de la MT ini-
cia con la propuesta de un conjunto de estados que recuerdan
condiciones importantes en el problema considerado. Posterior-
mente se proponen las transiciones que permiten pasar de un
estado a otro; esta última parte es relativamente sencilla una
vez que se cuenta con los estados y sus condiciones asociadas.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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 );

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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}

(Téngase en cuenta que w m significa una cantidad m de apariciones


del caracter w )

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

Ejemplo 16 (continuación)
La MT que da solución a la problemática es la siguiente:

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes

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:

está formado por todas las cadenas donde el primer y el


último dı́gito son diferentes.

el primer y el segundo dı́gito son diferentes; el último y el


penúltimo dı́gito son diferentes.

para toda cadena w de L se cumple que |w | > 3.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

MT para el reconocimiento de lenguajes


Ejemplo 17 (continuación)
Una posible solución serı́a:

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción La Teorı́a del Lenguaje
Desarrollo Máquinas de Turing
Conclusiones Máquinas de Turing para el reconocimiento de lenguajes

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?

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción
Desarrollo
Conclusiones

Estudio Independiente

Estudio Independiente
Estudiar todas las definiciones y ejemplos de la Conferencia para
ser evaluados de forma oral en la próxima clase.

Colectivo de Matemática Discreta I Matemática Discreta I


Introducción
Desarrollo
Conclusiones

Matemática Discreta I
Conferencia 6: Máquinas de Turing

Colectivo de Matemática Discreta I


Universidad de las Ciencias Informáticas

Disciplina Inteligencia Computacional

Colectivo de Matemática Discreta I Matemática Discreta I

También podría gustarte