Está en la página 1de 176

UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO

Facultad de Ingeniería Estadística e Informática

α2 R.C.
α 2
1− α

R.R./Ho: Aceptar R.R./Ho:


Ho:

LENGUAJES FORMALES Y
AUTOMÁTAS

PREPARADO POR:

VLADIMIRO IBAÑEZ QUISPE, Dr.

Puno, Marzo del 2011


- ii - V. Ibañez Q. - Docente FINESI - UNA - Puno

VLADIMIRO IBAÑEZ QUISPE


Ingeniero Estadístico, UNA - Puno - Perú.
M.Sc. en Informática
Dr. en Administración
Profesor Principal - Facultad de Ingeniería Estadística e
Informática.

Derechos Reservados:

Ninguna parte de este guía puede ser reproducida sin


la autorización del autor. viq_ibanez@hotmail.com

© 2011, Editorial Universitaria.

Primera Edición: 2011


Impreso en Puno - Perú.

Ciudad Universitaria. Apartado 291. Fax (054) 352992.


Puno - Perú

Diagramación y Composición:
Vladimiro Ibañez Quispe
Lenguajes Formales - iii -

PRESENTACIÓN

La presente publicación «Lenguajes formales y autómatas» está dirigido


a los estudiantes que se inician a nivel de pre-grado y post-grado, en la
formación básica en ciencias de la computación e informática, el cual
incluye las definiciones básicas de alfabeto, cadena, concatenación,
lenguajes, gramáticas, lenguajes regulares, expresión regular,
representación de gramáticas y modelos computacionales que se desarrolla
con amplia profundidad que son muy importantes para avanzar en los
siguientes ciclos, los estudiantes con estos conocimientos estarán en la
capacidad de diferenciar, generar gramáticas, construir modelos
computacionales aplicados y adaptados a las diferentes disciplinas en las
ciencias de la computación e innovarán la investigación para generar
conocimientos a nivel regional, nacional e internacional.

Espero que la presenta publicación tenga alcance a los estudiantes en


forma métodica en el desarrollo de la enseñanza-aprendizaje para mejodar
la calidad de la educación superior universitaria y espero las sugerencias
de los usuarios, que sin duda servirá para corregir, mejorar y ampliar
publicaciones con otros temas referidos a la informática.
(viq_ibanez@hotmail.com)

El autor
Marzo, 2011
- iv - V. Ibañez Q. - Docente FINESI - UNA - Puno
Lenguajes Formales - v -

ÍNDICE

Pág.
CAPÍTULO 1: LENGUAJES FORMALES
1.1. Conceptos básicos..................................................................................... 01
1.2. Lenguajes .................................................................................................... 07

CAPÍTULO 2: GRAMÁTICA

2.1. Gramática ...................................................................................................... 13


2.2. Tipos de gramáticas - Jerarquía de Chomsky.......................................... 28
2.3. Lenguajes regulares y expresiones regulares......................................... 33
2.4. Representaciones de lenguajes y gramáticas especiales...................... 37
2.4.1. Notación BNF (Backus-Naur-Form)................................................ 37
2.4.2. Diagrama de sintáxis ......................................................................... 41
2.5. Gramáticas regulares y expresiones regulares ......................................... 44

CAPÍTULO 3: AUTÓMATAS FINITOS

3.1. Autómatas finitos deterministas (AFD) ................................................... 50


3.2. Autómatas finitos no determnistas (AFND) ............................................ 58
3.2.1. Extensión de la función de transición a cadenas .......................... 61
3.2.2. Lenguaje aceptado por un autómata finito no determinista ....... 63
3.3. Equivalencia entre AFD y AFND .............................................................. 66
3.4. Conversión de expresión regular (ER) a AFND ..................................... 73
3.5. Conversión de AFD a expresiones regulares (ER) ................................. 76
3.6. Minimización de autómatas finitos ........................................................... 86

CAPÍTULO 4: LENGUAJES LIBRES DE CONTEXTO

4.1. Gramáticas libres de contexto (GLC)......................................................... 101


4.2. Autómatas de Pila (AP) ............................................................................. 116
4.2.1. Autómata de pila determinista (APD)............................................ 117
4.2.1.1. Lenguaje aceptado por un autómata de pila .................. 122
4.2.2. Autómatas con pila no determinista (AFPN) ................................ 126
4.2.3. Autómatas con Pila y LIC. ............................................................... 131
4.2.4. Forma Normal de Chomsky .............................................................. 140
- vi - V. Ibañez Q. - Docente FINESI - UNA - Puno

Pág.
CAPÍTULO 5: MÁQUINAS DE TURING

5.1. Funcionamiento de la Máquina de Turing.............................................. 147


5.2. Lenguaje aceptado por una máquina de Turing..................................... 152
5.3. Máquinas de Turing como generadores de lenguajes.......................... 158
5.3.1. Técnicas para la construcción de máquinas de Turing .............. 159
5.3.2. Almacenamiento en el control finito ............................................... 159
5.4. Máquinas de Turing Modificadas ........................................................... 160
5.4.1. Máquinas de Turing Multicinta ...................................................... 161
5.4.2. Máquinas de Turing Multipista ...................................................... 162
5.4.3. Máquinas de Turing con múltiples cabezales ............................... 164
5.4.4. Máquinas de Turing Offline ............................................................ 164
5.5. Máquinas de Turing no deterministas....................................................... 165
5.5.1. Simulación de autómatas por medio de máquinas de Turing ....... 168

Bibliografía consultada ........................................................................................ 170

viq
Lenguajes Formales - 1 -

1
LENGUAJES FORMALES

1.1. CONCEPTOS BÁSICOS.

a) Alfabeto.- Un alfabeto ( ∑ ) es un conjunto finito no vacío de símbolos.


Ejemplo:
El alfabeto del idioma español: ∑ = {a , b , c ,L , z},
1
a ∈ ∑1

El alfabeto binario de ceros y unos: ∑ 2


= {0 ,1}, 0 ∈∑ 2

El alfabeto de números naturales: ∑ 3 = {0,1,2,3,4,5,6,7 ,8,9}, 4 ∈ ∑ 3

∑ = {a , b},
4
b ∈ ∑4

∑ 5
= {peón, gol, cam, pe, rú }

∑ = {if, then, for, end, else, a, b, ; =, ≥}


6

Observación:
i) Usamos meta-símbolos {} , , =, y la coma para describir sobre lo que hablamos.
ii) Usamos subíndices para distinguir diferentes alfabetos.
iii) Cardinalidad del alfabeto (número de elementos del alfabeto): ∑ 〉 0, ∑ 〈∞ .
- 2 - V. Ibañez Q. - Docente FINESI - UNA - Puno
b) Palabra - cadena o frase (chain).- Es una secuencia finita de símbolos de un
determinado alfabeto.

Ejemplos:
∑1 : LUIS, PEDRO, INFORMÁTICA, UNIVERSIDAD
∑2 : 0, 1, 00, 01, 11, 000, 1001101
∑ 3 : 123, 1024, 1999, 2010, 2011
∑4 : a, aa, abb, bba,ababa
∑ 5 : perú, golperú, campeón
∑ 6 : if a ≥ b then b = a;
Observación:
i) Existe una cadena vacía que no tiene símbolos y se denota con λ , cuya
longitud es cero λ = 0 .
ii) El símbolo λ no pertenece a ningún alfabeto, pero si al meta-alfabeto, λ ∉ ∑

c) Longitud de cadena (palabra o frase).- La longitud de una cadena es el número de


símbolos de ∑ que contiene X, y es denotado por X a la longitud de la palabra
X.

 0, si X = λ
w =
 y + 1, si X = ya

Ejemplo:

∑ 1
: w = a, entonces w = 1

∑ 2
: w = 0, entonces w = 1 , w = 1001101, entonces w = 7

∑: 3 w = 123, entonces w = 3

∑ 4
: w = aa, entonces w = 2 , w = ababa, entonces w = 5

∑ 5
: w = perú, entonces w = 2 , w = golperú, entonces w = 3

∑ : w = if a ≥ b then b = a; entonces w = 9
6
Lenguajes Formales - 3 -

Observación:
i) Dependiendo del alfabeto puede resultar díficil dividir una palabra en sus
símbolos.
ii) Si se puede dividir toda las palabras sobre un alfabeto solamente de una
manera en sus símbolos, se llama alfabeto libre.

Definición.- El conjunto de todas las cadenas o palabras que se puede formar


sobre un alfabeto ∑ más la palabra vacía se llama Lenguaje Universal o Universo de
discurso de ∑ o cierre de ∑ y se representa por ∑* . Es evidente que ∑* es un conjunto
finito.
- ∑ = {λ }U {w w es palabra sobre ∑}
*

Ejemplo: El alfabeto de una sola letra ∑ = {a} estará formado por:


∑* = {λ , a, aa, aaa,L}
- ∑ ⊂ ∑* , Ejemplo: a ⊂ ∑* , aa ⊂ ∑*
- λ es palabra de cualquier universo, λ ∈ ∑*
- La cardinalidad del universo es infinito (contable o enumerable).
- Si el alfabeto es libre (un generador libre), se denota con w(∑ ) por ∑*

Definición.- Se define lenguaje formal al conjunto de cadenas sobre un alfabe-


to ó se denomina lenguaje sobre un alfabeto ( ∑ ) a un subconjunto del universo del
discurso ( ∑* ).
Ejemplo: Sea ∑ = {0,1}
L1 = {0 ,1,11,1111 } L2 = {0,1} = ∑
L3 = {0,00,000,0000, L} L 4 = {λ ,1,10 ,110 , L}

Definición.- Un lenguaje sí puede ser vacío. Ejemplo: L5 = φ , pero: {λ}≠ φ

d) Operaciones con palabras - operaciones con cadenas.

Definición.- Dadas dos palabras o cadenas x, y ∈ ∑* ó α , β ∈ ∑* , se llama


concatenación de x e y (α y β ) a la palabra w que se obtiene de escribir «y» a
continuación de X.
- 4 - V. Ibañez Q. - Docente FINESI - UNA - Puno

 ∑* x ∑* → ∑*
w = x⋅ y ó w =α ⋅β 
( w1 , w2 ) → w1 ⋅ w2
Ejemplo:
Si x = banana, y = rama. Entonces w = bananarama
Si x = porta, y = equipajes. Entonces w = portaequipajes
Si x = como, y = zanahoria. Entonces w = comezanahoria
Si x = abra, y = cada. Entonces xybra es w = abracadabra

En forma general:
Dadas x = a 1 a 2 a 3 L a m , y = b1b 2 b 3 L b n con ai , b j ∈ ∑,
i = 1,2,3, L m; j = 1,2,3, L n entonces:
x ⋅ y = a1a2 a3 L amb1b2b3 Lbn

Propiedades de la concatenación:
P1: La concatenación es una operación cerrada en el conjunto de palabras ∑* .
esto es: * : ∑* × ∑* → ∑* .
P2: Propiedad asociativa: ∀x, y, z ∈ ∑* , entonces
( x ⋅ y) ⋅ z = x ⋅ ( y ⋅ z) ó x ⋅ ( y ⋅ z) = ( x ⋅ y) ⋅ z
Por cumplir los dos propiedades P1 y P2), la concatenación de las pala-
bras de un alfabeto es un semigrupo (∑* ,*) .
Ejemplo:
x = conejo, y = come, z = zanahoria. Aplicando la propiedad (xy)z = x(yz)
se tiene: (conejocome)zanahoria = conejo(comezanahoria)
conejocomezanahoria = conejocomezanahoria.
P3: Existencia de elemento neutro: La palabra vacía λ es el elemento neutro de
la concatenación de palabras, tanto por la derecha como por la izquierda. Entonces, sea
«x» una palabra cualquiera. Se cumple que: λx = xλ = x . Por cumplir las tres pro-
piedades P1, P2 y P3, la concatenación de palabras es un monoide.
P4: La concatenación de palabras no tiene la propiedad conmutativa. Es trivial
hallar contraejemplos, incluso con palabras de un asola letra.
Ejemplo:
Las palabras «a» y «b» verifican que «ab» no es igual a «ba», siempre que «a»
Lenguajes Formales - 5 -
y «b» sean caracteres distintos.
Ejemplo: x = abc, y = dec, entonces xy = abcdec ≠ decabc = yz.
P5: Propiedad de cancelación por la izquierda.
∀a, b, c ∈ ∑* , se cumple que: ab = ac, entonces b = c

P6: Propiedad de cancelación por la derecha:


∀a, b, c ∈ ∑* , se cumple que: ac = bc, entonces a = b

Definición.- Sea define z , x , y ∈ ∑ * tal que z = x*y. Decimos que «x» es


cabeza o prefijo de «z» y que «y» es cola o sufijo de «z». Además, «x» es prefijo propio
de «z», si z = x*y, «x» es prefijo propio de z ⇔ y ≠ λ , «y» es sufijo propio de «z» si,
z = x*y, «y» es sufijo propio de z ⇔ x ≠ λ .

Ejemplo: Sea z = ABC. Las siguientes palabras son cabeza de z:


λ , A, AB, ABC son palabras prefijas de z.
λ , C, BC, ABC son palabras sufijos de z.
Todas son propias, excepto abc.

Definición.- Se llama potencia n-ésima de una palabra a la operación que con-


siste en concatenar la palabra consigo misma «n» veces.
Sea w una palabra, para n ∈ Ν se define:

 λ , si n = 0
wn =  n−1
ww , si n > 0
Ejemplo:
Si w = 133 sobre el alfabeto ∑ = {133}, se tiene:
w0 = λ
w1 = 133
w 2 = 133133
Ejemplo:
Si w = ala sobre el alfabeto ∑ = {ala}, se tiene:
- 6 - V. Ibañez Q. - Docente FINESI - UNA - Puno

w0 = λ
w1 = ala
w 2 = alaala
Ejemplo:
Si w = abc sobre el alfabeto ∑ = {abc}, se tiene:
w0 = λ
w1 = abc
w 2 = abcabc
w3 = abcabcabc
Observación: Las propiedades de la función longitud son semejantes a las del
logaritmo: w = n × w
n

Ejemplo: w2 = 2 × alaala

Definición.- Sea w = a1a2 a3 L an . Se llama palabra refleja o palabra inversa


de w, y se representa como: w R = an an −1an − 2 L a1 , es decir a la que esta formada
por las mismas letras en orden inverso. La función longitud es invariante con respecto
a la reflexión de palabras w R = w y esta definido como:

 w, si w = λ
wI =  I
Y a, si w = ay, a ∈ ∑ y y ∈ ∑
*

Ejemplo: Supongamos que X = «amor».


X I = (amor ) I = (mor ) I a = (or ) I ma = (r ) I oma = (λ ) I roma = rom
Ejemplo: Supongamos que X = «able».
X I = ( able ) I = ( ble ) I a = ( le ) I ba = ( e ) I lba = ( λ ) I elba = elba
Ejemplo: Supongamos que X = «arroz».
(arroz)I = (rroz) I a = (roz) I ra = (oz)I rra = ( z)I orra = (λ)I zorra = zor
Lenguajes Formales - 7 -
1.2. LENGUAJES.

Definición.- Se llama lenguaje sobre el alfabeto ∑ a cualquier subconjunto del


lenguaje universal de ∑ , es decir L ⊂ ∑* .
Observación:
- El conjunto vacío φ es un lenguaje sobre ∑ . A este lenguaje se llama Lenguaje
vacío (se incluye φ , lenguaje vacío no contiene ninguna palabra). Este lenguaje vacío
no debe ser confundido con el lenguaje formado por la palabra vacía {λ }.
- φ y {λ } son lenguajes sobre cualquier alfabeto ∑ .
- El alfabeto es un lenguaje ∑ ⊆ ∑* .
- Un lenguaje se denomina finito, si tiene un número finito de palabras.
- Los lenguajes que no son finitos tienen una cardinalidad idéntica al conjunto
de los números naturales (infinito numerable).
- Una ordenación en este tipo de lenguajes es la llamada Lexicográficas, que
consiste en establecer dos niveles de ordenación. El primero es la longitud de las
palabras, y las palabras de igual longitud se ordenan de acuerdo al orden alfabético.
- La mayor parte de los lenguajes que tienen interés son infinitos, por lo que no
se pueden definir por extensión.

a) Operaciones con lenguajes.

Definición.- Sean dos lenguajes definidos sobre el mismo alfabeto:


L1 , L2 ⊂ ∑* . Se llama UNIÓN de los dos lenguajes, L1 + L2 al
lenguaje definido por:
{ }
L = L1 + L2 = x ∈ ∑* ( x ∈ L1 ) ∨ ( x ∈ L2 ) = L1 U L2

Propiedades:
P-1: La unión de lenguajes es una operación cerrada.
L1 U L2 ⊆ ∑* ⇒ L1 U L2 es un lenguaje.
P-2: Propiedad asociativa: (L1 + L2 ) + L3 = L1 + (L2 + L3 ) ó
( L1 U L2 ) U L3 = L1 U ( L2 U L3 )
Por cumplir las dos propiedades 1 y 2, la unión de lenguajes es un
semigrupo.
P-3: Existencia de elemento neutro: cualquiera que sea el lenguaje L, el lenguaje
- 8 - V. Ibañez Q. - Docente FINESI - UNA - Puno

vacío cumple que: φ + L = L + φ = L ó φ ∪ L = L ∪ φ = L


Por cumplir las tres propiedades 1, 2 y 3, la unión de lenguajes es un monoide.

P-4: Conmutativa: Cualesquiera que sean L1 y L2 , se verifica que:

L1 + L 2 = L2 + L1 ó L1 ∪ L 2 = L 2 ∪ L1
Por cumplir las cuatro propiedades anteriores, la unión de lenguajes es un
monoide abeliano.

P-5: Idempotente: Cualquiera que sea L, se verifica que: L + L = L ó L ∪ L = L

b) Concatenación de lenguajes - Producto de lenguajes.

Definición.- Sean dos lenguajes definidos sobre el mismo alfabeto:


L1 , L2 ⊂ ∑* . Se llama concatenación de los dos lenguajes, L1 L2
ó L1 ⋅ L2 al lenguaje definido como:

L1 ⋅ L2 = {x ⋅ y ∈ ∑* ( x ∈ L1 ) ∧ ( y ∈ L2 )}

Ejemplo: L1 = {0,1}, L2 = {a, b, cd }


Aplicando la propiedad de concatenación se tiene:
L 1 ⋅ L 2 = {0 a , 0 b , 0 cd ,1 a ,1 b ,1 cd }
Ejemplo: L1 = {casa}, L2 = {pájaro, perro}
L1 ⋅ L2 = {casapájaro, casaperro}

Ejemplo: L1 = {ca, ma}, L2 = {nta, sa}


L1 ⋅ L2 = {canta, casa, manta, masa}

Propiedades:
P-1: La concatenación de lenguajes es una operación cerrada, es decir la
concatenación de dos lenguajes sobre el mismo alfabeto es otro lenguaje sobre el
mismo alfabeto.
Lenguajes Formales - 9 -

L = L 1 ⋅ L 2 es un lenguaje.

P-2: Asociativa: ( L1 ⋅ L 2 ) ⋅ L 3 = L1 ⋅ ( L 2 ⋅ L 3 )
Por cumplir las dos propiedades anteriores, la operación de
concatenación de lenguajes es un semigrupo.

P-3: Elemento neutro: Cualquiera que sea el lenguaje L, el lenguaje formado por
la palabra vacía cumple que: λL = Lλ = L .
Por cumplir los tres propiedades anteriores, la operación de concatenación
de lenguajes es un monoide.

P-4: Lenguaje vació o anulador: L ⋅ φ = φ ⋅ L = φ


P-5: Si λ ∈ L1 ⋅ L2 ⇔ λ ∈ L1 ∧ λ ∈ L2
P-6: Distributiva respecto de la unión:
L1 ⋅ ( L 2 ∪ L 3 ) = L1 ⋅ L 2 ∪ L1 ⋅ L 3
P-7: Distributiva respecto a la intersección.
L1 ⋅ ( L 2 ∩ L 3 ) ⊆ L1 ⋅ L 2 ∩ L1 ⋅ L 3
Nota: Puede no cumplirse la igualdad en la última propiedad, por ejemplo:
L1 = {a, ab}, L2 = {a}, L3 = {ba}

c) Potencia de un lenguaje. Se llama potencia n-ésima de un lenguaje a la operación


que consiste en concatenarlo consigo mismo «n» veces. Como la concatenación tiene
la propiedad asociativa, no es preciso especificar el orden en que tienen que efectuarse
las «n» operaciones: Ln = LLLL L (n veces).

 {λ }, sí n = 0
Ln =  n −1 n∈Ν
 LL , sí n > 0

Ejemplo: L = {0,1}, encontrar L4.

L0 = {λ }≠ φ
L1 = L ⋅ L 0 = L {λ } = L = {0 ,1}
L2 = L ⋅ L1 = L ⋅ L = {00 , 01 ,10 ,11}
- 10 - V. Ibañez Q. - Docente FINESI - UNA - Puno

L3 = L ⋅ L2 = L ⋅ L ⋅ L = {000,001,010,011,100,101,110,111}

L4 = {0,1}{000,001,010,011,100,101,110,111}
0000,0001,0010,0011,0100,0101,0110,0111,
= 
1000,1001,1010,1011,1100,1101,1110,1111 
Ejemplo: L = {ab}, encontrar L3.
L0 = {λ }
L1 = L ⋅ L0 = L{λ } = L = {ab}
L2 = L ⋅ L1 = L ⋅ L = {abab}
L3 = L ⋅ L2 = {ababab}

d) Cierre estrella (de Kleene) y cierre positivo.

1) Cierre estrella ó clausura universal.-Se denomina cierre estrella de L o


*
clausura de L, y se denota por L (Estrella de Kleene) al lenguaje cuyas palabras son
todas las que se pueden obtener realizando 0 (cero) o más concatenaciones de palabras
de L.
∞ ∞
L* = U Ln ó L* = U Ln ó L* = L0 ∪ L1 ∪ L2 ∪ L
n=0 n≥0

Ejemplo: L = {a }, entonces:
L0 = {λ }, L1 = {a}, L2 = {aa}, L3 = {aaa},...

Luego: L* = {λ , a, aa, aaa,L}

Ejemplo: L = {abra, cadabra}, entonces:


Luego: L* = {λ , abra, abraabra, abracadabra, cadabraabra, L}

2) Cierre positivo.- Dado un lenguaje L sobre un alfabeto ∑ , se define la


+
clausura positiva (o cierre positivo) de L, denotado L como:
Lenguajes Formales - 11 -

∞ ∞
L+ = U Ln ó L+ = U Ln
n =1 n>0

Nota: Si en lugar de efectuar cero o más concatenaciones de palabras de L,


hacemos una o más.

Ejemplo: L = {a}, entonces L+ = {a, aa, aaa,L}


{ }
Ejemplo: L = {ab}, entonces L+ = (ab) n n ≥ 1 = {ab, abab, ababab,L}

3) Relación entre ambos:

+ L* , sí λ ∈ L
L = *
 L − {λ }, sí λ ∉ L
Observación: Las operaciones unión, concatenación y cierre estrella, en
conjunto son denominados operaciones regulares o racionales.

4) Reverso de un Lenguaje.
Definición.- Dado L ⊆ ∑* , se denomina lenguaje reflejo, reverso ó inverso
de L, y se representa por LR al lenguaje formado por los reversos de todas las palabras
de L.
LR = {x R x ∈ L} ó LR = {w R w ∈ L}

Propiedades:
i) Si ∑ = {a}, LR = L ii) ∑ R = ∑
iii) ( L1 L 2 ) R = L R2 L1R iv) ( Ln ) R = ( LR ) n

v) ( L* ) R = ( LR )* vi) ( L* ) R = ( L R ) * = ∑ *

vii) ( LR ) R = L

Observación: λR = λ , ( a1a2 L an ) = an L a2 a1
R

Ejemplo: RADAR ( radar ) R = radar


- 12 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: RECONOCER ( reconocer ) R = reconocer


Ejemplo: ANITALAVALATINA (anitalavalatina ) R = anitalavalatina

Para todo palabra w, se tiene ( w R ) R = w , observamos que un palíndromo es


una palabra que es igual a su transpuesta. Una definición recursiva de palíndromo es
la siguiente:
i) λ es un palíndromo.
ii) Todas las palabras formadas por un sólo símbolo son palíndromos.
iii) Si «w» es un palíndromo, entonces para todo símbolo «a» la palabra «awa»
también es un palíndromo.
iv) No existen otros palíndromos que los obtenidos por las reglas anteriores.
Gramática - 13 -

2
GRAMÁTICA
2.1. GRAMÁTICA.

La idea para aplicar una gramática es que parte de una variable (no terminales),
llamada símbolo inicial, y se aplican repetidamente las reglas gramaticales, hasta que
ya no haya símbolos no terminales en la palabra. En ese momento se dice que la palabra
resultante es generada por la gramática, o en forma equivalente, que la palabra resultante
es parte del lenguaje de esa gramática.

Definición.- Se llama gramática formal o simplemente gramática G a la cuadrúpla o 4-


uple o ada definido como:
G = ( ∑ N , ∑ T , I , P ) = (V , S , v0 , a )
Donde:
∑ N = V : Es un conjunto finito y no vacío de símbolos llamados no terminales
(alfabeto de símbolos no terminales).
∑T = S : Es un conjunto finito y no vació de símbolos llamados terminales (alfabeto
de símbolos terminales) con ∑ N ∩ ∑T = φ (llamaremos V = ∑ N ∪ ∑T ).
S = v0 : Símbolo especial, llamado símbolo inicial o símbolo distinguido o axioma
( S ∈ ∑ N ).
P =a : Es un conjunto finito de reglas de producción que especifica los reemplazos
permisibles. A los elementos del conjunto P se les denomina Reglas de
producción.
- 14 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: ∑ N = {S }, ∑T = {a, b}, P = {S a ab, S a aSb},


S: Estado inicial.
Generar la palabra aaabbb.

SOLUCIÓN:
a: S a ab
S a aSb
S ⇒ aSb ⇒ aaSbb ⇒ aaabbb
Ejemplo: Sea la gramática definido como: G = (V , S , v0 , a ) cuyas reglas de
producción son:
N a NC C a1 Ca4 Ca7
N aC Ca2 Ca5 C a8
Ca0 Ca3 Ca6 Ca9

Generar la palabra: 12230, 2011, 122010, Se deja para el estudiante: 280481

SOLUCION:
12230 2011 122010
N a NC N a NC N a NC
N a NCC N a NCC N a NCC
N a NCCC N a NCCC N a NCCC
N a NCCCC N a CCCC N a NCCCC
N a CCCCC N a 2CCC N a NCCCCC
N a 1CCCC N a 20CC N a CCCCCC
N a 12CCC N a 201 C N a 1CCCCC
N a 122CC N a 2011 N a 12 CCCC
N a 1223C N a 122 CCC
N a 12230 N a 1220 CC
N a 12201C
N a 122010
Gramática - 15 -
Convenio de notación:
Para facilitar la comprensión de las formulaciones y agilizar su descripción, se
utiliza los criterios de notación siguientes:
i) Utilizaremos letras mayúsclas latinas (A,B,C,...,Z) para representar símbolos
no terminales, llamados también variables. La idea principal de la descripción es eliminar
los símbolos no terminales.
ii) Se usará letras minúsculas latinas iniciales (a,b,c,....) para representar a los
símbolos terminales.
iii) Se usará letras minúsculas latinas finales (....,w,x,y,z) para representar las
palabras formadas por terminales, llamados también hojas finales de un árbol.
iv) Utilizaremos minúsculas griegas (α , β , γ , L , ω ) para representar las palabras
sobre ( ∑ N ∪ ∑ T )* , que llamaremos cadenas intermedias.

Ejemplo: Describir una gramática sólo con especificar su conjunto de


producciones.
S → aBS bAS λ

S → bAA a

B → aBB b
Generar la palabra aabbbbaaba

SOLUCION:
S → aBS
S → aBbAS
S → aBbAbAS
S → aaBBbbAAbAS
S → aabbbbaaba

Definición (derivación).- Sean α ' , β '∈ ∑* , se dice que α ' deriva directamente

β ' en la gramática G y se denota por: α ' ⇒ β ' si α ' = γαδ (secuencia en la que está
G

presente α ), β ' = γβδ y α → β ∈P.

Ejemplo: Sea las siguientes producciones:


- 16 - V. Ibañez Q. - Docente FINESI - UNA - Puno

S → ab Generar la palabra: aaabbb


S → aSb
SOLUCION:
S → aSb
S → aaSbb
S → aaabbb

Aplicando la definición al ejemplo anterior se tiene:


α ' ⇒ β ' entonces γαδ ⇒ γβδ
G G

aa { ⇒G
{ S{ bb aa
{ ab
{ bb
{
γ α δ γ β δ

Definición (cierre reflexivo).- Decimos que α deriva en β y se denota por

α ⇒ β si existe la secuencia α1 , α 2 , L , α n ∈ V * , n ≥ 1, de manera que α1 = α , α n = β


*

y se cumple α i ⇒ α i +1 , i = 1,2, L , n − 1 . El cierre transitivo se define como α ⇒+ β


G G

cuando el número de pasos es mayor que uno.

Definición.- Se dice que β ∈ V * es una forma sentencial de la gramática G si


*
S⇒β .
G

Ejemplo: S , aSb, aaSbb y aaabbb son formas sentenciales.

Definición.- Se denomina palabra, frase ó sentencia generada por una gramática


G a aquella forma sentencial, cuyos símbolos pertenecen a ∑.
Ejemplo: S ⇒ aSb ⇒ aaSbb ⇒ aaabbb , la palabra es: aaabbb
G G G

Definición.- Se llama lenguaje generado por una gramática G, denotado por


L(G) al conjunto de todas las palabras que derivan a partir del axioma.
 *
  *

L (G ) = w ∈ ∑* S ⇒ w ó L(G ) =  x ∈ ∑ * S ⇒ x 
 G   G 
Gramática - 17 -

Ejemplo: Sea la gramática G = {S }{( { } )


, a, b}, S → aSb λ , S genera el lenguaje.
L = {a n b n n ≥ 0}. Observe la caracterización recursiva de las palabras de este
lenguaje que se deduce de su estructura gramatica.
S → aSb
S →λ
Si n = 4, entonces la derivación de la palabra es el siguiente:
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaaλbbbb ⇒ aaaabbbb

w0 = λ
w1 = ab = aw0b

w2 = aSb = aaSbb = aaλbb = a 2 b 2 = aw1b L wn = a n b n = awn −

Definición.- Dos gramáticas G y G´ son equivalentes si generan el mismo


lenguaje:
L(G ) = L(G´) ó L(G1 ) = L(G2 )

Ejemplo: El lenguaje L = {a n b n n ≥ 1}, puede ser generado también por la


gramática G´, cuyas reglas de producción son:
S → aA ab ó S → aA
A → Sb S → ab
A → Sb
Ejemplo:
Sea S = {Juan, Julia, maneja, corre, descuidadamente, rápido, frecuentemente}
N = {Oración, sujeto, predicado, verbo, adverbio}
v0 = «Oración».
Generar: «Juan corre descuidadamente».

SOLUCION:
Oración → Sujeto Predicado
Sujeto → Juan
Sujeto → Julia
- 18 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Predicado → Verbo Adverbio
Verbo → maneja
Verbo → corre
Adverbio → descuidadamente
Adverbio → rápido
Adverbio → frecuentemente

Respuesta: «Juan corre descuidadamente» ∈ L(G).

Forma alternativa:
Oración
Sujeto Predicado
Juan Predicado
Juan Verbo Adverbio
Juan corre Adverbio
Juan corre descuidadamente

Ejemplo: Sea G = (V , S , v0 , a) , cuyas reglas de producción son:

S a aS
S a bA Generar la palabra i) aaaabaaaaaa
A a aA ii) aaabaaa
Aa a

SOLUCION:

Para i) Para ii)


S a aS S a aS
S a aaS S a aaS
S a aaaS S a aaaS
S a aaaaS S a aaabA
S a aaaabA S a aaabaA
S a aaaabaA S a aaabaaA
S a aaaabaaA S a aaabaaa
Gramática - 19 -

S a aaaabaaaA
S a aaaabaaaaA
S a aaaabaaaaa A
S a aaaabaaaaa a
Arbol de derivación.- Consideremos una derivación cualquiera de la forma
A ⇒ α , donde A y α son, respectivamente una variable (símbolo no terminal) y una
*

cadena intermedia; consideremos la secuencia de derivaciones directos que constituyen


la derivación considerada. Es muy ùtil representar esta derivación por medio de un
árbol, de la siguiente manera:

i) La raíza del árbol tiene como etiqueta la variable A.


ii) Cada nodo interno del árbol corresponde a alguna de las variables (no
terminal) que son sustituídas en el proceso de derivación. Así, si una derivación directa
consiste en aplicar la producción X → β , las etiquetas de los hijos del nodo que
corresponde a esta variable X, leídas de izquierda a derecha, forman β .
iii) El producto del árbol, es decir, la palabra formada por sus hojas de izquierda
a derecha, es α .

Ejemplo: Sea el conjunto de producciones:

S a aBS bAS λ

A a bAA a

B a aBB b

Encontrar la palabra: aabbbbaa

SOLUCION:
a) S ⇒ aBS ⇒ aaBBS ⇒ aabBS ⇒ aabbS ⇒ aabbbAS ⇒ aabbbbAAS
⇒ aabbbbaAS ⇒ aabbbbaaS ⇒ aabbbbaa

A través del árbol de derivación es el siguiente:


- 20 - V. Ibañez Q. - Docente FINESI - UNA - Puno

a B S

a B b A S
B

b b b A A λ
a a

b) S ⇒ aBS ⇒ aaBBS ⇒ aaBBbAS ⇒ aabBbAS ⇒ aabBbA ⇒ aabbbA


⇒ aabbbbAA ⇒ aabbbbaA ⇒ aabbbbaa

c) S ⇒ aBS ⇒ aBbAS ⇒ aBbA ⇒ aBbbAA ⇒ aBbbAa ⇒ aBbbaa


⇒ aaBBbbaa ⇒ aaBbbbaa ⇒ aabbbbaa

EJEMPLO:
l q l
Sea V = v0 , w , a ,b, c , S = a ,b, c , y sea q → la relación en V * dada por:
v0 a aw
w a bbw
wac
Examine la gramática de estructura de frase: G = ( V , S , v0 ,→ )

SOLUCIÓN:

v0 v0 v0

w w w
a a a w
c b b w
b b c
ac ∈ L( G ) abbc ∈ L( G ) b b w
ab 2 c ∈ L( G ) b b
abbbbbbc ∈ L( G )
c
ab 6 c ∈ L( G )
a( bb ) c ∈ L( G )
*

l
( bb )* : Es una expresión regular ∧,b,bb,bbbb,L . La respuesta es: q
Gramática - 21 -

m
L( G ) = a( bb )* c a ,b, c ∈ S r
EJEMPLO:
l
G = (V , S ,v0 ,→ ),V = v0 , v1 , x , y , z , S = x , y , z , N = V − S = v0 , v1 , q l q l q
a: v0 a xv0
v0 a yv1
v1 a yv1
v1 a z

SOLUCIÓN:

v0 v0 v0
v0 v0 v0
v1 v1 v0
x x v1 x v1
v1 v1
y x x
z y x v1
xyz ∈L(G) y y v1
z y
xxyyz ∈L(G), x2 y2z ∈L(G)
y
xxxyyyz ∈L(G), x3y3z ∈L( G) z

v0 v0 v0
v0 v0 v0
v0 v0 v0
v0 v0
x v0 x x v0
x v0
v1 x v0
x v1
x v1 x x
x x v1 v1
y v1
x v1 x v1
y v1
y v1 y v1
y y v1
y
y v1
y y
z y z
xxxxyyyyz ∈L(G), x4y4z ∈L(G) y
xxxxxyyyyyz∈LG
( ), x yz∈LG
( ) 5 5 z
m
L(G)= x y z n≥0,m≥1
n m
r
- 22 - V. Ibañez Q. - Docente FINESI - UNA - Puno

EJEMPLO:

G = ( V , S , v0 ,→ ). Construir el lenguaje

l q
V = v 0 , a ,b , S = a ,b , N = V − S = v 0 l q l q
a: v0 a aav0
v0 a a
v0 a b

SOLUCIÓN:
v0 v0 v0 v0 v0 v0

v0 v0 v0 v0 v0
a a a a a a a a a a a
v0 v0 v0 v0
a1 ∈L(G) a a a a a a a a a
a =aaa∈LG
3
( ) v0 v0 v0
a a a a a …..
a =aaaaa∈L(G)
5
v0 v0
a7 = aaaaaaa ∈L(G) a
a a a a
a9 =aaaaaaaaa∈L(G) a a2n+1 a

v0 v0 v0 v0 v0 v0

v0 v0 v0 v0 v0
b a a a a a a a a a a
v0 v0 v0 v0
0 1
ab ∈LG
( )
b a a a a a a a a
a b∈L(G)
2
v0 v0 v0
a4b∈L(G) b a a a a …..
v0 v0
a6b∈L(G)
b a a a a
a8b∈L(G)
b a2nb b

m
L( G ) = a 2 n +1 n ≥ 0 ∪ a 2 nb n ≥ 0 r m r
EJEMPLO:

Describa exactamente el L(G) producido por la gramática, todas las oraciones


sintácticamente correctas:
Gramática - 23 -

l q l
G = (V , S , v0 ,→ ), V = v0 , v1 , v2 , x ,(, ),− , S = x ,(, ),− q
a: v0 a ( v0 )
v0 a xxv1
v1 a x − v2
v2 a x − v2
v2 a x

SOLUCIÓN:

v0

( v0 )

( v0 )

( v0 )
v0

( v0 )
v1
x x
v2
x - v2
x -
v2
x -
v2
x - v2

v2
x -
x

l
L( G ) = ((( L( xxx − x − x −L x − x )L ))) n ≥ 0,m ≥ 3 q
- 24 - V. Ibañez Q. - Docente FINESI - UNA - Puno

EJERCICIOS:
1. Describa exactamente el L(G) producido por la gramática, todas las oraciones
sintácticamente correctas:
l q
G = (V , S , v0 ,→ ), V = v0 , a , S = a lq
a: v0 a aav0
v0 a aa

l q l q
2. G = ( V , S , v0 ,→ ), V = v0 , x , y , z , S = x , y , z

a: v0 a xv0v0
v0 a yv0
v0 a z

l q l q
3. G = (V , S , v0 , →), V = v0 , v1 , v2 , a ,+ ,(, ) , S = a ,(,),+

a: v0 a (v0 )
v0 a a + v1
v1 a a + v2
v2 a a + v2
v2 a a

l q
4. G = (V , S , v0 , →), V = v0 , a , b , S = a , b l q
a: v0 a aav0
v0 a a
v0 a b

l q l q
5. G = (V , S , v0 , →), V = v0 , v1 , a , b , S = a , b
Gramática - 25 -

a: v 0 a av1
v1 a bv 0
v1 a a

l q l
6. G = (V , S , v 0 , → ), V = v 0 , v1 , v 2 , a , b , c , S = a , b , c q
a : v0 a aav0
v 0 a b v1
v1 a c v 2b
v1 a cb
v2 a abv2
v2 a bb

Definición.- Una gramática es ambigua cuando es posible construir dos árboles


de derivacón diferentes que corresponden a una misma palabra; de lo contrario, decimos
que la gramática es inambigua.

Ejemplo: Sea la siguientes producciones:

S → aSbS ó S → bSaS bSaS λ

S → bSaS
S →λ
Encontrar la palabra: abab

S S

a S S a S b S
b
a S
S a λ λ a S b S

λ λ λ λ
abab abab
- 26 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Ejemplo: Se tiene las siguientes reglas de producción.
S → SPVP N → árbol Donde:
SP → AN VP → VO S: Sentencia.
A → un V → come V: Verbo
A → el V → trepa O: Objeto
N → mono O → NP A: Artículo
N → plá tan o NP → AN N: Nombre
SP: Sintagma sujeto.
VP: Predicado verbal.
NP: Predicado nominal.

Construir la siguiente frase: UN MONO COME EL PLÁTANO.


SOLUCIÓN: A través del árbol de derivación se tiene:

S e n te n c ia (S )

S u je to (S P ) P r e d ic a d o v e r b a l (V P )

A r tíc u lo ( A ) N o m b r e (N ) V e r b o (V ) O b je to (O )

un m ono com e P r e d ic a d o n o m in a l ( N P )

A r tíc u lo (A ) N o m b r e (N )

el p lá ta n o

S ⇒ SPVP
⇒ ANVP
⇒ unNVP
⇒ un monoVP
⇒ un monoVO
⇒ un mono comeO
Gramática - 27 -

⇒ un mono comeNP
⇒ un mono comeAN
⇒ un mono come elN
⇒ un mono come el plá tan o

Ejercicio:
1) El mono come el plátano.
2) El mono sube a un árbo.
3) El mono sube al árbol.
4) El plátano come el mono.

Ejemplo: Construya un árbol de derivación para la siguiente frase.


el conejo hambriento come rápidamente.

SOLUCIÓN: Se resuelve a través del árbol de derivacón.

frase

Sujeto predicado

artículo nombre adjetivo verbo adverbio

el conejo hambriento come rápidamente

frase
sujeto predicado
artículo nombre adjetivo predicado
artículo nombre adjetivo verbo adverbio
el nombre adjetivo verbo adverbio
el conejo adjetivo verbo adverbio
el conejo hambriento verbo adverbio
el conejo hambriento come adverbio
el conejo hambriento come rápidamente
- 28 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Reglas para construir una frase válida.
1) Una FRASE se compone de un SUJETO seguido de un PREDICADO;
2) un SUJETO se compone de un ARTÍCULO seguido de un NOMBRE seguido
de un ADJETIVO, o
3) Un SUJETO se compone de un ARTÍCULO seguido de un NOMBRE;
4) Un PREDICADO se compone de un VERBO seguido de un ADVERBIO, o
5) Un PREDICADO se compone de un VERBO;
6) un artículo es UN, o
7) Un artículo es EL;
8) Un adjetivo es GRANDE, o
9) Un adjetivo es HAMBRIENTO;
10) Un nombre es CONEJO, o
11) Un nombre es MATEMÁTICO;
12) Un verbo es COME, o
13) Un verbo es SALTA;
14) Un adverbio es RÁPIDAMENTE, O
15) Un adverbio es SALVAJEMENTE.

Ejemplo:
- el conejo grande salta rápidamente
- un matemático hambriento come salvajemente
- un enorme matemático salta.

2.2. TIPOS DE GRAMÁTICAS - JERARQUÍA DE CHOMSKY.

De acuerdo con lo que hemos visto, toda gramática genera un único lenguaje, pero
distintas gramáticas pueden generar el mismo lenguaje.

Lenguajes Forma de las


TIPO producciones en la Dispositivo de
(Gramáticas) aceptación
gramática
3 Regulares A→aB, A→a (A,B∈Ν,a∈∑) Autómata finito

2 De contexto libre A→α (A∈Ν,α∈(N∪∑)* Autómata finito con Pila

1 Sensibles al contexto α →β (α, β ∈(N ∪∑) , β ≥ α,


*
Autómata limitado
linealmente
α contieneuna variable)
0 Enumerables recursivamente α →β (α, β ∈(N ∪∑)*, Máquina de Turing
(irrestrictos ó de estructura
α contiene una variable)
de frase)
Gramática - 29 -
Representación gráfica de la Jerarquía de Chomsky.

Lenguajes generales (sin restricción)

TIPO 0 Lenguajes independientes del contexto


(lenguajes sensibles al contexto)(autómatas
TIPO 1 lineales acotados)

TIPO 2
Lenguajes independientes del contexto
determinista (Autómata finito con pila)
TIPO 3

Lenguajes regulares (Autómata


finito)

A) Gramáticas regulares.- Se denomina también racionales, de Kleene o


simplemente de Tipo 3 (lenguajes regulares). Sus reglas de producción son
exclusivamente de uno de los dos siguientes tipos:
1) Lineales por la Derecha.- Sus reglas de producción son de la forma:
A → aB b con A, B ∈ Ν y a, b ∈ ∑ ∪{λ}
Son lineales por la derecha porque las palabras se van generando
hacia la derecha, es decir, empezando por los prefijos.

2) Lineales por la Izquierda.- Sus reglas de producción son de la forma:


A → Ba b con A, B ∈ Ν y a, b ∈ ∑ ∪{λ}
Son lineales por la izquierda porque las palabras se van
generando hacia la izquierda, es decir, empezando por los sufijos.

B) Gramáticas incontextuales (Context - free, lenguajes independientes del


contexto).- Se denomina también algebraicas de Chomsky o de Tipo 2. Sus reglas de
producción son de la forma:
A →α ó A ::= α con A ∈ Ν , α ∈ ( N ∪ ∑ )*
Se observa que las dos últimas definiciones se comprueba que
toda gramática de Tipo 3 es de Tipo 2, puesto que la parte derecha de las reglas de
producción de éstas últimas no tienen las restricciones que las primeras.
- 30 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Los lenguajes que se pueden describir mediante gramáticas del Tipo 2,


se llaman Lenguajes Independientes del Contexto (Context-free), pues la
transformaciónn o derivación de A en α puede aplicarse siempre, cualquiera que sea
el contexto en que se encuentre A.

Por otra parte, cualquier gramática del Tipo 2 cumple también los
requisitos para ser una gramática del Tipo 1, salvo que en todas sus reglas el contexto
derecho e izquierdo se reduce a la cadena vacía. En consecuencia, todo lenguaje
iidnependiente del contexto pertenecerá también a la clase de los lenguajes dependientes
del contexto.

(
Ejemplo: Sea la gramática G = {S }{ {
, a, b}, S → aSb ab , S} )
S → aSb
S → ab
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaaSbbbb ⇒ aaaaabbbbb ⇒ a
Puede comprobarse que: L = {a n b n n ≥ 1}
En general, un mismo lenguaje puede describirse mediante muchas gramáticas
diferentes. En cambio, una gramática determinada describe siempre un lenguaje único.

Ejemplo: Encontrar una gramática libre de contexto para generar los siguientes
lenguajes.
{
L = a i b j i, j ∈ Ν , i ≤ j }
SOLUCIÓN:
S → aSb
S→λ
S → Sb

C) Gramáticas contextuales (Lenguajes dependientes del contexto - lenguajes


sensibles al contexto - context sensitive - gramática del tipo 1 de Chomsky.- Se llama
gramática del Tipo 1 de Chomsky a toda gramática cuyas reglas de producción son de
la forma: γXδ → γαδ , donde X ∈ Ν, γ , δ ∈ V * y α ∈V + ó xAy → xvy ó
x, y ∈ (∑ ∪ Ν )* , v ∈ (∑ ∪ Ν ) + y A ∈ Ν .
Gramática - 31 -

Al par de cadenas γ y δ se denomina contexto, puesto que el no terminal X


sólo se reescribe en α si va precedido de γ y seguido δ . Al ser X ∈ Ν y α ∈V + ,
*
las formas sentenciales son de longitud no decreciente, es decir, si α ⇒ β se tiene
G

que α ≤ β . Además, α no puede ser la cadena vacía. Por esta razón, los lenguajes
representados por las gramáticas del Tipo 1, se llaman lenguajes dependientes del
contexto ó lenguajes sensibles al contexto.

Se admite, como excepción, que una gramática del Tipo 1 pueda contener la
regla S → λ , donde S es el axioma. De lo contrario, el lenguaje representado por una
gramática del Tipo 1 no podría contener la palabra vacía. Esto se permite únicamente
cuando la gramática no sea recursiva en S, para evitar la posibilidad de que haya
derivaciones no crecientes de palabras distintas de λ .

Ejemplo: Sea la siguiente gramática: S → SS a λ no es del Tipo 1, porque es


recursiva en S y contiene la regla S → λ , con lo que son posibles derivaciones
decrecientes, como la siguiente:
S → SS
→ S
→a
Cuando se desea obtener una gramática del Tipo 1 para un lenguaje L que
contiene la palabra vacía, se puede aplicar el siguiente procedimiento.
i) Se obtiene en primer lugar una gramática del Tipo 1 para el lenguaje L − {λ }.
ii) Si la gramática obtenida no es recursiva en el axioma S, se añade la regla
S →λ.
iii) En caso contrario, se añade a la gramática un nuevo símbolo no terminal, A
que será el nuevo axioma, junto con la reglas: A → S λ .

D) Gramáticas no restringidas o con estructura de frase gramáticas del TIPO


0 (Gramáticas con estructura de frase).

Son las gramáticas más generales. Sus reglas de producción tienen la forma
u → v donde u = xAy , x, y, v ∈ ( Ν ∪ ∑)* y A ∈ Ν , sin ninguna restricción
- 32 - V. Ibañez Q. - Docente FINESI - UNA - Puno
adicional. Sus reglas no tienen ningún tipo de restricción. Por lo tanto, cualquiera de
los tipos anteriores de gramáticas son también de Tipo 0. Los lenguajes representados
por estas gramáticas se llaman lenguajes recursivamente enumerables.

Definición.- Se llama gramática de estructura de frase a aquella gramática, cuyas


reglas de producción tienen la forma xAy → xvy , donde x, y , v ∈ ( Ν ∪ ∑ ) * y
A ∈ Ν . Es decir, dichas reglas indican que un símbolo no terminal A se transforma en
la cadena «v» si está flanqueado por la izquierda por la cadena «x» y por la derecha por
la cadena «y».

Definición.- Un lenguaje L es de tipo i = 0,1,2,3 si es generable por una gramática


G de tipo «i» y no lo es por otra de tipo más restringido.

Si llamamos l i a la clase de los lenguajes de Tipo «i», se puede demostrar que:

l 3 ⊂ l 2 ⊂ l 1 ⊂ l 0 . En seguida se presenta la estructura de las clases de lenguajes.

l3 l2 l1 l0

Ejemplo: Sea la gramática G = ({A, B, C}{


, a, b}, P, S ) . Donde P contiene las
siguientes reglas de producción:
A → aABC abC
CB → BC
bB → bb
bC → b

SOLUCIÓN:
Puede comprobarse que el lenguaje representado por esta gramática es:
Gramática - 33 -

{a b
n n
}
n ≥ 1 . Esta gramática es compresora, pues la regla bC → b . El
símbolo no terminal C puede sustituirse por la cadena vacía, cuando está precedido
por el símbolo terminal «b».

2.3. LENGUAJES REGULARES Y EXPRESIONES REGULARES.

Lenguajes Regulares.- Los lenguajes regulares son interesantes desde el punto


de vista práctico porque pueden ser usados para especificar la construcción de
analizadores léxicos - programas que analizan un texto y extraer los lexemas (o unidades
léxicas) que hay en el mismo. Un lenguaje regular es un alfabeto ∑ es uno que puede
obtenerse de esos lenguajes básicos con las operaciones de unión, concatenación y *
de Kleene, y es factible describir un lenguaje regular con una fórmula explícita.

Definición.- Sea ∑ un alfabeto. El conjunto de los lenguajes regulares (LR) sobre


∑ se define recursivamente como sigue:
a) φ es un lenguaje regular.
b) {λ}ó {ε }es un lenguaje regular.
c) ∀a ∈ ∑, {a} es un lenguaje regular.
d) Si A y B son lenguajes regulares, entonces A ∪ B, A ⋅ B y A* son lenguajes
regulares.
e) Ningún otro lenguaje sobre ∑ es un lenguaje regular.

Ejemplo: Dado ∑ = {a, b}, las siguientes afirmaciones son ciertas:


φ y {λ} son lenguajes regulares.
{a} y {b} son lenguajes regulares.
{a , b } es regular porque es la unión de {a} y {b}.
{a, ab, b} es un lenguaje regular.
{a i ≥ 0} es un lenguaje regular.
i

{a b i ≥ 0 y j ≥ 0} es un lenguaje regular.
i j

{(ab) i ≥ 0} es un lenguaje regular.


i
- 34 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: Dado ∑ = {a, b, c}. ¿El lenguaje de todas las cadenas sobre el ∑ que
no contiene ninguna subcadena ac es regular?

SOLUCIÓN:
{c}, {a}, {b} son lenguajes regulares.
{c}* es un lenguaje regular.
{b}{c}* es un lenguaje regular.
{a }∪ {b}{c}* es un lenguaje regular.
({a}∪ {b}{c} ) es un lenguaje regular.
* *

{c} ({a }∪ {b}{c} ) es un lenguaje regular.


* * *

Observación: resulta engorroso construir y especificar lenguajes regulares,


por lo que existe una manera de representación a través de las expresiones regulares.

Expresiones Regulares.- Las expresiones regulares (ER) permiten representar


de manera simplificada un lenguaje regular.

Definición.- Una expresión regular sobre un alfabeto ∑ , se define


recursivamente como sigue:
a) φ es una expresión regular y denota el lenguaje vació.
b) λ es una expresión regular y denota el lenguaje {λ}.
c) ∀a ∈ ∑, a es una expresión regular y denota el lenguaje {a}.
d) Si α y β son dos expresiones regulares, que denotan los lenguajes, A y B
entonces:
i) α + β es una expresión regular que denota A ∪ B .
ii) α ⋅ β es una expresión regular que denota A ⋅ B .
iii) α * es una expresión regular que denota A* .
e) Ninguna otra secuencia de símbolos es una expresión regular.
f) Orden de precedencia de operadores: *, ., + (se puede usar paréntesis).
Gramática - 35 -
Ejemplo:
{a, b}= {a}∪ {b}= a ∪ b
{ab } = ab
{a }* = a *
{a }+ = a +

( )
Ejemplo: {a }∪ {a } {c} = a ∪ b c
* *

Ejemplo: Sea el alfabeto ∑ = {0 ,1}, son vaarios ejemplos de lenguajes regulares


junto con las expresiones regulares.

Lenguajes Regulares (LR) Expresión Regular (ER)


---------------------------------------------------- ----------------------------------------
1) {λ} λ
2) {0} 0
3) {001 }es decir {0 }{0 }{}
1 001
4) {0,1}o sea {0}∪ {}
1 0+1
5) {0 ,10 }o sea {0}∪ {10 } 0+10
6) {1, λ}{001} (1 + λ )001
7) {110}* {0,1} (110)*(0 +1)
8) {}
1 {10}
*
1*10
9) {10,111,11010}* (10 + 111 + 11010)*

10) {0,10}* ({11}* ∪ {001, λ }) (0 + 10)* ((11)* + 001 + λ )


---------------------------------------------------- ---------------------------------------------

Ejemplo: Sea ∑ = {a, b, c,L , z}. El lenguaje ∑* puede representarse mediante


la expresión regular: ( a + b + c + L + z ) * .
- 36 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: Sea ∑ = {0,1}. El lenguaje {01,000}. Representar mediante la expresión


regular: 01+000.

Ejemplo: Sea ∑ = {0,1}. El lenguaje de todas las cadenas que contiene un sólo
1. Represente mediante la Expresión Regular. 0*10* .

Ejemplo: Sea L ⊆ {0,1}* el lenguaje de todas las cadenas de longitud par. ¿Es L
regular ?¿cuál es una expresión regular que corresponde?.
SOLUCIÓN:
Si es una expresión regular.
Todas las cadenas de longitud par pueden obtenerse al concatenar cero o más
cadenas de longitud 2. L = {00,01,10,11}*
Expresión Regular que corresponde a L es (00 + 01 + 10 + 11)* . Otra alternativa
de solución es el siguiente: ((0 + 1)(0 + 1))* .

Definición.- Dos expresiones regulares α y β son equivalentes si describen


el mismo lenguaje regular: L (α ) = L ( β ) . Se escribe entonces que α = β.

Propiedades de las Expresiones Regulares:


1) La unión es Asociativa:
(α + β ) + γ = α + ( β + γ ) ó (α ∪ β ) ∪ γ = α ∪ ( β ∪ γ )
2) La unión es Conmutativa: α + β = β + α ó α ∪ β = β ∪ α
3) La concatenación es asociativa: (αβ )γ = α ( βγ )
4) La concatenación es distributiva respecto a la unión:
α ( β + γ ) = αβ + αγ
5) φ es el elementro neutro de la unión: α + φ = φ + α = α
6) λ es el elemento neutro de la concatenación: α ⋅ λ = λ ⋅ α = α
7) α ⋅φ = φ ⋅α = φ
8) λ* = λ
9) φ* = λ
Gramática - 37 -

10) α ⋅α = α
* * *

11) α ⋅α * = α * ⋅α
12) (α * )* = α *

13) α * = λ + α ⋅α *
14) (α * + β * )* = (α * ⋅ β * )* = (α + β )*

15) (α ⋅ β )* ⋅ α = α ⋅ ( β ⋅ α )*

2.4. REPRESENTACIONES DE LENGUAJES Y GRAMÁTICAS ESPECIALES

2.4.1. Notación BNF (Backus-Naur Form)

Es uno de los métodos empleados para la definición de reglas sintácticas,


utilizando los siguientes símbolos: El símbolo w permanecerá en la izquierda y todos
los lados derechos asociados a w se enlistarán juntos, separados por el símbolo « »
(separa las distintas alternativas). El símbolo de la relación « → » se reemplaza por el
símbolo « ::= » que sirve para definir o indicar equivalencia; y los símbolos no termi-
nales, se encierran entre llaves «<«, «>», " " indica que es un carácter que forma parte
de la sintáxis del lenguaje.

Observación.- Las gramáticas serán de tipo 2, además incluye las gramáticas de


tipo 3.

EJEMPLO:

Sean las producciones: a: v0 a aw . Expresar a la notación BNF.


w a bbw
wac
SOLUCIÓN:

v0 :: = a w
w :: = bb w c
- 38 - V. Ibañez Q. - Docente FINESI - UNA - Puno
EJEMPLO:

Sea S = {Juan, Julia, maneja, corre, cuidadosamente, rápidamente, frecuente-


mente}
N = {Oración, sujeto, predicado, verbo, adverbio} y sea V = S ∪ N. Sea v0 =
«oración» y supóngase que la relación → en V * .

SOLUCIÓN:
Expresar en notación BNF

Oración a Sujeto predicado <Oración>::= <sujeto><predicado>


sujeto a Juan <sujeto>::= Juan Julia
sujeto a Julia <Predicado>::=<Verbo><adverbio>
Predicado a verbo adverbio <Verbo>::=maneja corre

verbo a maneja <adverbio>::=cuidadosamente rápida-

a corre
verbo mente frecuentemente
Adverbio a cuidadosamente
Adverbio a rápidamente
Adverbio a frecuentemente

EJEMPLO:
l q l q l q
G = (V , S ,v0 ,→ ),V = v0 , v1 , x , y , z , S = x , y , z , N = V − S = v0 , v1 ,

Expresar en notación BNF:

a: v0 a xv0
v0 a yv1 v 0 :: = x v 0 y v1
v1 a yv1 v1 :: = y v1 z
v1 a z
Gramática - 39 -
EJEMPLO:
l q
G = (V , S , v0 ,→ ), V = v0 , a , S = a lq
a: v0 a aav0 Expresar en notación BNF
v0 a aa v0 :: = aa v0 aa

EJEMPLO:
l q
G = (V , S , v0 ,→ ), V = v0 , a ,b , S = a ,bl q
a: v0 a aav0 Expresar en notación BNF
v0 a a v0 :: = aa v0 a b
v0 a b

EJEMPLO:
l q l q
G = (V , S , v0 ,→ ), V = v0 , v1 , a ,b , S = a ,b

a: v0 a av1 E xpresar en notación B N F


v1 a bv0 v 0 :: = a v 1
v1 a a v 1 :: = b v 0 a

EJERCICIO:
l q l q
1. Sea G = ( V , S , v0 ,→ ), V = v0 , v1 , v2 , a ,b, c , S = a ,b, c . Expre-
sar en la notación BNF:

a: v0 a aav0
v0 a bv1
v1 a cv2b
v1 a cb
v2 a bbv2
v2 a bb
- 40 - V. Ibañez Q. - Docente FINESI - UNA - Puno

l q l q
2. Sea G = ( V , S , v0 ,→ ), V = v0 , v1 , v2 , a ,+ ,(, ) , S = (, ), a ,+ . Ex-
presar en notación BNF:
a: v0 a ( v0 ); v0 a a + v1 ; v1 a a + v2 ; v2 a a + v2 ; v2 a

En los ejercicios siguientes, construya una gramática para la estructura de


oraciones G tal que el lenguaje L(G) de G sea igual al lenguaje L.

{
3. L = a b n ≥ 1
n n
}
4. L = {a n b m n ≥ 1, m ≥ 1}
{
5. L = a n b n n ≥ 3 }
6. L = {a nb m n ≥ 1, m ≥ 3}
7. {
L = x n y m n ≥ 2, m no negativo y par }
8. L = {x n
ym n, par, m positivo e impar}
 cadenas de ceros y unos con una misma 
9. L =  cantidad n ≥ 0 de ceros y unos 
 

En los siguientes ejercicios, encuentre el Lenguaje de la Gramática L(G).

10. G = (V , S , v0 , a), V = {v0 , v1 ,0,1}, S = {0,1}


a: v0 a 0v11, v0 a 1v1 0 , v1 a 0v11
v1 a 1v1 0 , v1 a 01 , v1 a 10

11. G = (V , S , v0 , a), V = {v0 , v1 , a, b}, S = {a, b}

a : v0 a aav 1bb , v1 a av1b , v1 a ab

12. G = (V , S , v0 , a ), V = {v0 , x, y}, S = {x, y}

a: v0 a v0 yy , v 0 a xv 0 , v 0 a xx
Gramática - 41 -

2.4.2. DIAGRAMA DE SINTÁXIS.

Un segundo método para describir las producciones en alguna gramáti-


ca del tipo 2 es el diagrama sintáctico. Es una representación gráfica que permite ver a
las sustituciones dinámicamente, para ver movimientos a través del diagrama. Los
símbolos utilizados son los siguientes:

Símbolos no terminales

Símbolos terminales

a Indica la dirección del movimiento para completar la sustitució

EJEMPLO:

Un enunciado BNF es:


w ::= w1 w2 w3 . Realizar su diagrama sintáctico es:

w
w1 w2 w3

EJEMPLO:

Un enunciado BNF es:

w ::= w1 w2 w1 a bc w2 . Realizar su diagrama sinstáctico:

w1 w2
w
w1 a

b c w2
- 42 - V. Ibañez Q. - Docente FINESI - UNA - Puno
EJEMPLO: Enunciado de BNF:
w ::= ab w . Construya su diagrama de sintáxis:

b a

EJEMPLO: Enunciado de BNF:


w ::= abc abc w . Construya su diagrama de sintáxis:

a b c
w w
a b c

c b a

EJEMPLO: Enunciado de BNF:


v0 ::= aa v0 aa . Construya su diagrama de sintáxis:

v0
a a

a a

EJEMPLO: Enuncaido de BNF:

v0 :: = x v0 y w1
. Construya su diagrama de sintáxis.
w1 :: = y v1 z
Gramática - 43 -

v0 w1
y w1
z

x y

EJEMPLO: Enunciado de BNF:


v0 ::= aa v0 a b . Construya su diagrama de sintáxis:

v0
a b

a a

EJEMPLO: Enunciado de BNF:

v 0 :: = aa v 0 b v 1
v 1 :: = c v 2 b cb
. Construya su diagrama de sintáxis:
v 2 :: = bb v 2 bb

a v2 b
v0 v1
b v1

c b
a a

v2
b b

b b
- 44 - V. Ibañez Q. - Docente FINESI - UNA - Puno
2.5. GRAMÁTICAS REGULARES Y EXPRESIONES REGULARES.

Existe estrecha conexión entre el lenguaje de una gramática regular y una expre-
sión regular.

Teorema.- Sea S un conunto finito y L ⊆ S * , entonces L es un conjunto


regular si y solo sí L = L(G) para alguna gramática regular G = ( V , S , v0 ,→ ) .

Definición.- Sea G = ( V , S , v0 ,→ ) una gramática regular y → se especifi-


ca por un conjunto de diagramas sintácticos, es posible combinar todos los diagramas
sintácticos dentro de un gran diagrama que representa a v0 , y sólo tenga símbolos
terminales, se denomina diagrama maestro de G.

Reglas:
1. Los símbolos terminales del diagrama corresponden a sí mismos, como expre-
siones regulares.
2. Si un segmento D del diagrama se compone de dos segmentos D1 y D2 en
sucesión, y D1 y D2 corresponden a las expresiones regulares α1 y α2
respectivamente, entonces D corresponde a α 1α 2 .
3. Si un segmento D del diagrama se compone de segmentos alternativos D1 y
D2 , si D1 y D2 corresponden a las expresiones regulares α 1 y α 2 res-
pectivamente, entonces D corresponde a α1 ∨α 2 .
4. Si un segmento D del diagrama es un ciclo a través del segmento D1 y si
D1 corresponde a la expresión regular α , entonces D corresponde a α * .

EJEMPLOS:

D
1. D1 D2 D3 D4 está en sucesión, entonces:
α1 α2 α3 α4

α 1α 2α 3α 4
Gramática - 45 -

D1
α1
2. D2
α2

D3
α3

α 1 ∨ α 2 ∨ α 3 son segmentos alternativos.

3. α *1 es un ciclo.

D1
α1

EJEMPLO:
l q l q
1. Sea G = ( V , S , v0 ,→ ), V = v0 , w , a ,b, c , S = a ,b, c y sea la rela-
ción en V * dada por:

a: v0 a aw
w a bbw Expresar en BNF y diagrama sintáctico.
wac
SOLUCIÓN:

Expresar en notación BNF


v0
v0 :: = x w a w
w :: = bb w c
w
c

b b v0

Uniendo éstos dos notaciones BNF v0 y w , se obtendrá el diagrama


maestro de esta gramática.
- 46 - V. Ibañez Q. - Docente FINESI - UNA - Puno

a c

b b v0

La expresión regular es: a( bb )* c

EJEMPLO:
l q
2. Sea G = ( V , S , v0 ,→ ), V = v0 , a ,b , S = a ,b l q
a: v0 a aav0 Expresar en BNF y diagrama sintáctico.
v0 a a
v0 a b
SOLUCIÓN:
v 0 :: = aa v 0 a b

v0
a b

a a v0

La expresión regular es:

l
( aa )* ( b ∨ a ) ⇔ ∧ ,aa ,aaaa ,aaaaaa ,K b ,a ql q
EJEMPLO:

l q l q l q
3. Sea G = (V , S ,v0 ,→ ), V = v0 ,v1 , x , y , z , S = x , y , z , N = V − S = v0 , v1 ,

Expresar en notación BNF y su respectivo diagrama sintáctico.


Gramática - 47 -
SOLUCIÓN:

a: v0 a xv0
v0 a yv1
v1 a yv1
v1 a z

v 0 :: = x v 0 y v1 v0
y v1

v1 :: = y v1 z x
v1
z

Uniendo éstos dos notaciones BNF v0 y v1 , se obtendrá el diagrama


maestro de esta gramática.

y z

x y

La expresión regular es: x* yy* z


EJEMPLO:
l q l q
4. Sea G = (V , S , v0 ,→ ),V = v0 , v1 , a ,b , S = a ,b

a: v0 a av1
v1 a bv0
v1 a a
Expresar en notación BNF, diagrama sintáctico, diagrama maestro y la expre-
sión regular.
- 48 - V. Ibañez Q. - Docente FINESI - UNA - Puno

SOLUCIÓN:

v0
Expresar en notación BNF a v1

v0 :: = a v1 b v0
v1
v1 :: = b v0 a
a

El diagrama maestro es:

v0
a a Expresión Regular: (ab)*aa

EJERCICIOS:

1. Determinar la expresión regular y exprese en notación BNF a los diagramas


sintácticos siguientes:

a b
v0 c
d

2.
v0
a b d

c d
Autómatas Finitos - 49 -

3
AUTÓMATAS FINITOS
Todo proceso que recibe una o varias entradas, que las transforma y que después
emite una salida recibe el nombre de sistema. Existen sistemas muy complejos, como
los sistemas de los seres vivos; por ejemplo una planta que recibe como entrada agua,
sales minerales, oxígeno luz solar, procesa esas entradas y emite como salida hojas,
tallos, flores y frutos. Este sistema parece muy sencillo, sin embargo no lo es ya que de
acuerdo con las entradas, cantidad y calidad de elementos, así como el medio ambiente
que rodea a la planta, puede tener mejores flores y frutos.

Un sistema aún más complejo es el comportamiento del ser humano, el cual recibe
infinidad de información de varios lados que se procesa de acuerdo con su estructura
cognitiva y que en función de esto toma una decisión de lo que debe hacer. Su compor-
tamiento o reacción a la información proporcionada no se puede determinar con exac-
titud, ya que depende además de la información de entrada, del entorno socioeconómico,
edad, valores morales entre otras muchas cosas más. Este tipo de sistemas recibe el
nombre de sistemas infinitos.

Los autómatas finitos también reciben como entrada información que procesan y
en función de ello emiten una salida. Un autómata finito recibe una palabra, la cual debe
procesar por medio de un recorrido a través de los diferentes estados que integran el
autómata, y si al final del procesamiento de ésta el recorrido termina en un estado o
posición de aceptación, se dice que la palabra forma parte del lenguaje. A diferencia de
los sistemas infinitos, un autómata es un sistema finito y por eso se llama autómata
finito, en donde si es posible determinar con exactitud la salida que se tendrá con cierta
información.
- 50 - V. Ibañez Q. - Docente FINESI - UNA - Puno
3.1. AUTOMÁTAS FINITOS DETERMINISTAS (AFD).

Un Autómata Finito Determinística (AFD) es otro mecanismo para describir len-


guajes. En vez de pensar en generar las cadenas (como las ERs), un autómata finito
determinista describe un lenguaje mediante reconocer las cadenas del lenguaje, y
ninguna otra.

Definición.- Un autómata finito determinista (AFD) es una tupla


M = ( K , ∑, δ , q0 , F ) , tal que:
K: Es un conjunto finito de estados ( K ≠ φ , ha de ser finito y K ∩ ∑ = φ ).
∑ : Es un alfabeto finito (alfabeto del autómata).
q0 ∈ K : Es el estado inicial o arranque del autómata.
F ⊆ K : Es el conjunto de estados de aceptación ó estados finales.
δ : K × ∑ → K : Es la función de transición del autómata que determina defini-
da como:
δ : K ×∑ → K
δ ( q, a ) = p, p, q ∈ K , a ∈ ∑

Estructura de un autómata finito.

CINTA DE ENTRADA

a b a b a b a ...

Cabeza de lectura La cabeza se mueve en esta


dirección

Indicador de Estado
q0
q7 q1

q6 q2

q5 q3
q4

MECANISMO DE CONTROL
Autómatas Finitos - 51 -

La función de transición δ de un autómata finito determinista es que


δ ( p, x ) = q , sí y sólo sí la máquina puede pasar de un estado «p» a un estado «q»
al leer el símbolo «x».

Ejemplo: Procesar la cadena «5.2».

5 . 2 5 . 2 5 . 2 5 . 2

1 1 1 1
8 2 8 2 8 2 8 2
7 3 7 3 7 3 7 3
6 4 6 4 6 4 6 4
5 5 5 5

Ejemplo: M = ( K , ∑, δ , q0 , F ) , donde: K = {q0 , q0 }, ∑ = {a, b}, q0 = {q0 },


F = {q1}. Cuya tabla de transición de estados (TTE) es:

a) Construya el diagrama de transición de un autómata.


b) ¿Cómo se podría escribir una Expresión Regular para las cadenas de a´s y b´s
que contuvieran una cantidad impar de b´s?.

SOLUCIÓN: a)

a a
b

q0 q1
b

b) a * (ba*ba * )* ba* ó (a *ba*ba * )* ba*


- 52 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: M = ( K , ∑, δ , q0 , F ) , cuyo diagrama de transición de un autómata


está dado por:

F = {q2 }
q0 = {q0 }

a) Construya el diagrama de transición de un autómata.


b) Encuentre la función de transiciones y la Expresión regular.

SOLUCIÓN: a) El diagrama de transiciones es la siguiente:

b a,b
a
a

q0 q1 q2
b

b) Las funciones de transiciones son los siguientes:


δ (q0 , a) = q1 δ (q1 , a) = q2 δ ( q2 , a ) = q 2
δ ( q0 , b ) = q0 δ (q1 , b) = q0 δ ( q2 , b) = q2

La expresión regular es: (b*ab)* a(a b)*


Observación: En el autómata la función de transición esta dado por:
∀qi , q j ∈ K , ∀ak ∈ ∑, sí δ ( qi , qk ) = q j , entonces el grafo posee
un arco del nodo qi al q j etiquetado con el símbolo ak .

Definición.- Se define un estado de absorción o muerte como aquel estado


qi ∈ K , y qi ∉ K , que no tiene ninguna transición hacia ningún otro estado
(opcionalmente, a sí mismo puede tenerlos), únicamente hay transiciones que inciden
Autómatas Finitos - 53 -

en él. Esto es: sí δ ( qi , a k ) = φ ó δ ( q i , a k ) = q j , ∀ a k ∈ ∑ .

Ejemplo: Sea el autómata, cuyo diagrama de transición se presenta en seguida:

a a
q0 q1 q2

b b
a,b a,b

q3

Si w = aaab; el autómata acepta la cadena, puesto que para en q2 ∈ F .


Si w = bbba; el autómata rechaza la cadena, puesto que para en q3 ∉ F .

Nota: El estado q3 no tiene ninguna transición, únicamente hay transiciones que


inciden en él. Además, q3 ∉ F , luego q3 es un estado de muerte.

Ejemplo: Realizar el autómata que reconozca el lenguaje (a b)aba*


SOLUCIÓN:

a,b a a a
q0 q1 q2 q3

Ejemplo:
Sea ∑ = {0,1}, dibuje el diagrama de transición que reconozca cadenas con dos
«unos» consecutivos.

SOLUCIÓN:
- 54 - V. Ibañez Q. - Docente FINESI - UNA - Puno

0 0,1
1
1
q0 q1 q2
0

Expresión Regular: (0*10)*1(01)*

Ejemplo: Se tiene el Autómata finito determinsta, siguiente:

0
1

1
q0 q1 q2
0

Encuentre las combinaciones de cadenas?. Se deja como ejercicio para el estu-


diante para que resuelva y explique.

Definición.- Sea M = ( K , ∑, δ , q0 , F ) un AFD, y sea x ∈ ∑* . Se dice que la


cadena «x» es aceptada por el AFD M cuando δ (q0 , x) ∈ F . Se define el Lenguaje
aceptado por el AFD M como:
L ( M ) = {x ∈ ∑ * δ ( q0 , x ) ∈ F }

Ejemplos:

1) el lenguaje aceptado por el AFD es: L (M ) = φ

2) el lenguaje aceptado es: L (M ) = λ


Autómatas Finitos - 55 -

a,b

3) el lenguaje aceptado es: L ( M ) = {a, b}*

a,b
el lenguajes es L ( M ) = {a, b}{a, b}*
a,b
4)

a,b
el lenguaje es L ( M ) = {a, b}*
a,b
5)

{ }
a
L ( M ) = bc {a} , a{c}
b c * *
6)

a c a,b
b,c
a,b
c
a,b,c

a,b
7) el lenguaje es: L ( M ) = {a , b}

el lenguaje es: L(M ) = {λ, a, b}


a,b
8)

a,b

9) el lenguaje es: L ( M ) = {a, b}*

a,b

a b

L( M ) = a{a} b{b}
a b a * *
10)
b a,b
a
- 56 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Definición.- Una configuración de un AFD M = ( K , ∑, δ , q0 , F ) es un ele-


mento de C M = K × ∑* . La configuración (q,x) indica que M está en el estado «q» y le
falta leer o consumir la cadena «x» de la entrada. Esta es información suficiente para
predecir lo que ocurrirá en el futuro.

Definición.- La relación lleva en un paso, − M ⊆ CM × CM se define de la siguiente

manera: (q, ax) − M (q' , x) donde a ∈ ∑, ⇔ δ ( q, a ) = q ' .

Nota: Se usará − en vez de −M .


Definición.- La relación lleva en cero o más pasos − M es la clausura reflexiva y
*

transitiva de −.

Definición.- El lenguaje aceptado por un AFD M = ( K , ∑, δ , q0 , F ) se define

{
como: L( M ) = x ∈ ∑* ∃f ∈ F , ( q0 , x ) −*M ( f , λ ) }
Ejemplo: Sea el AFD M = ( K , ∑, δ , q0 , F ) que se presenta a continuación:

a a a,b
b b
q0 q1 q2 q3
b
a
Sea la cadena de entrada x = abbababb, escribir las configuraciones por las que
pasa M al recibir x como entrada.
SOLUCIÓN: La tabla de transición de estados es el siguiente:

qi ä a b
q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q3 q3
Autómatas Finitos - 57 -
La configuración es el siguiente:
(q0 , abbababb) − M (q0 , bbababb) − M (q1 , bababb)
− M (q2 , ababb) − M (q0 , babb) − M (q1 , abb)
*
− M (q0 , bb) − M (q1 , b) − M (q2 , λ ) Por lo tanto ( q 0 , x ) − ( q 2 , λ ) y como

q2 ∈ F , tenemos que x ∈ L (M ) .

Ejemplo: Considere el AFD, cuyo diagrama de transición es el siguiente:

q0 q1
0
1 1 1 1
0
q2 q3
0
a) Encuentre la tabla de transición de estados (TTE).

qi ä 0 1
q0 q1 q2
q1 q0 q3
q2 q3 q0
q3 q2 q1
b) Sea la cadena de entrada x = 110101, escribir las configuraciones por las que
pasa M al escribir «x» como entrada.
(q0 ,110101) − M (q2 ,10101) − M (q0 ,0101) − M (q1 ,101)
− M (q3 ,01) − M (q2 ,1) − M (q0 , λ )
*

Por lo tanto Por lo tanto ( q 0 , x ) − ( q 0 , λ ) y como q 0 ∈ F , entonces x ∈ L(M ) .


- 58 - V. Ibañez Q. - Docente FINESI - UNA - Puno
3.2. AUTOMÁTAS FINITOS NO DETERMINISTA (AFND).

Una versión en principio más potente es un Autómata Finito No Determinísta


(AFND), donde frente a un estado actual y un siguiente caracter, es posible tener cero,
uno o más estados siguientes. Hay dos formas posibles de entender cómo funciona un
AFND.

a) La primera es pensar que, cuando hay varias alternativas, el AFND elige alguna
de ellas. Si existe una forma de elegir el siguiente estado que me lleve finalmente a
aceptar la cadena, entonces el AFND la aceptará.
b) La segunda forma es imaginarse que el AFND está en varios estados a la vez
(en todos en los que puede estar de acuerdo a la primera visión).

Si luego de leer la cadena puede estar en un estado final, acepta la cadena. Un


caso particular relevante son los llamados transiciones- λ , rotuladas por la cadena
vacía. Una transición- λ de un estado «p» a uno «q» permite activar siempre que se
active «p» sin necesidad de leer ningún carácter de la entrada.

Ejemplo:

a) b) c)
a
ab
a
q0 q1 q3
a b
q0 q1 q2 q0
b λ
a a aba
b
q2 q3

¿Cómo puede no aceptar una cadena?. Supongamos que recibe como entrada
«bb». Parte del estado inicial (y final), y no tiene transiciones para moverse. Queda,
pues en ese estado. ¿Acepta la cadena?. Respuesta: NO, pues no ha logrado consumir-
la. El AFND c) tiene sólo un estado y éste es final.

Un AFND acepta una cadena cuando tiene una forma de consumirla y llegar a un
estado final. Loas AFND son un superconjunto de los AFD, la relación que hay entre
AFD y AFND es que los AFD son un caso particular de los AFND.
Nota: Cuando tenemos más de una transición con un mismo símbolo del alfabeto
desde un estado, se refiere a AFND.
Autómatas Finitos - 59 -
Ejemplo:

q0 q2 q4

a b
a b
q1 q3
b

Del estado q0 sale con el símbolo «a» con dos transiciones, una al estado q1 y
otra al estado q4 , es decir δ (q0 , a) = {1,4}.

Definición.- En los AFND no existen los estados de muerte o absorción.

Definición.- Un autómata finito no determinista (AFND) es una 5-tupla


M = ( K , ∑, ∆, q0 , F ) , tal que:
K: Es un conjunto finito de estados.
∑ : Es un alfabeto finito (entrada).
q0 ∈ K : Es el estado inicial (estado de partida).
F ⊆ K : Son los estados finales (estados de aceptación).
∆ ⊂ F : K × ∑* ×K es la relación de transición finita o ∆ : K × ∑ → 2 K

Ejemplo: Sea el AFND M = ( K , ∑, ∆, q0 , F ) , ∑ = {a,b}, q0 = estado inicial,


K = {q0 , q1 , q2 , q3 , q4 }, F = {q2 , q3 , q4 }, cuyo diagrama de transición
es el siguiente:

a b
q0 q1 q2

b a a

q3 q4
b
- 60 - V. Ibañez Q. - Docente FINESI - UNA - Puno

• a b
q0 {q1,q4} {q3}
q1 {q1} {q2}
q2 Ø Ø
q3 Ø Ø
q4 Ø {q4}

Ejemplo: Sea el AFND M = ( K , ∑, ∆, q0 , F ) , cuyo diagrama de transición de


estados se presenta en seguida:

b b
a
q0 q1 q2
a
b
a) Construya la tabla de transición de estados.
b) ¿Cuál es el lenguaje aceptado por M?
c) Encuentre las funciones de transición
d) Realice la configuración para la cadena x = bbababab

SOLUCIÓN:
a)

• a b
q0 {q1} {q0,q2}
q1 Ø {q2}
q2 {q1} Ø

{
b) L( M ) = b m (ab) n m ≥ 1, n ≥ 0 }
c) ∆ (q0 , a ) = {q1} ∆(q1 , a) = φ ∆ (q2 , a ) = {q1}
∆(q0 , b) = {q0 , q2 } ∆(q1 , b) = {q2 } ∆ ( q2 , b ) = φ
d) Sea la cadena x = bbababab
) −(q0 , bababab) −(q0 , ababab) −(q1, babab)
(q0 , bbababab
Autómatas Finitos - 61 -

−(q2 , abab) −(q1 , bab) −(q2 , ab) −(q1 , b) = q2 ∈ F se acepta la cadena.

Definición.- La relación lleva en un paso, − M ⊆ CM × CM , donde


M = ( K , ∑, ∆, q0 , F ) es un AFND, se define de la siguiente forma:
( q, zx ) − M ( q ' , x ) donde z ∈ ∑* , ⇔ ( q, z , q ' ) ∈ ∆ . La clausura reflexiva y

transitiva de − M se llama, nuevamente, lleva en cero o más pasos −*M .

Definición.- El lenguaje aceptado por un AFD M = ( K , ∑, δ , q0 , F ) se define

como: {
l( M ) = x ∈ ∑* ∃f ∈ F , ( q0 , x) −*M ( f , λ ) . }
Ejemplo: Considere la cadena de entrada x = ababaababa.
ab

q0

aba

SOLUCIÓN:
( q 0 , ababaababa ) − ( q 0 , abaababa ) − ( q 0 , ababa ) − ( q 0 , aba ) − ( q 0 , λ )

∴ (q0 , x) − M (q0 , λ ) y como q0 ∈ F , entonces x ∈ l(M ) .


*

3.2.1. Extensión de la función de transición a cadenas.

Al igual que en el caso del AFD, la función de transición δ se puede exten-


der para que pueda aplicarse a cadenas.

~ : K × ∑* → 2 K como sigue: ∀q ∈ K , x ∈ ∑* , a ∈ ∑
Definición.- Se define ∆
a)
~ (q, λ ) = {q}

~
b) ∆ ( q, xa ) = U p∈∆~ ( q , x ) ∆ ( p , a )
- 62 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Observación: Cuando se restringe al dominio K × ∑ , coincide con el de la


función de transición δ , ya que:
~ ( q, a ) = U ~ δ ( p , a ) = U
∆ p∈∆ ( q ,λ ) p∈{q }δ ( p , a ) = δ ( q , a )

Ejemplo: Sea M el AFND, cuyo diagrama de transición se presentación en


seguida:

a b c
a,b b,c
q0 q1 q2
a,b,c

Calcule el resultado de
~ (q , abbc ) .
∆ 0
SOLUCIÓN:
∆ ( q0 , abbc ) = U p∈∆ ( q0 ,abb ) ∆ ( p, c ) .......................... (1)
∆ ( q0 , abb) = U p∈∆ ( q0 ,ab ) ∆ ( p, b) ................................... (2)
∆ ( q 0 , ab ) = U p∈∆ ( q 0 , a ) ∆ ( p , b ) ................................... (3)
∆ ( q0 , a ) = {q0 , q1 , q2 }

Sustituyendo en (3), se tiene:


∆( q0 , ab) = U p∈{q0 , q1 , q2 }∆( p, b) = {q1 , q2 }∪ {q1 , q2 }∪ φ = {q1 , q2
Sustituyendo en (2):
∆ ( q0 , abb ) = U p∈{q1 , q2 }∆ ( p, b ) = {q1 , q2 }∪ φ = {q1 , q2 }
Sustituyendo en (1):
∆ ( q0 , abbc ) = U p∈{q1 ,q2 }∆ ( p, c) = {q2 }∪ {q2 }= {q2 }
Entonces: {q2 }∩ {q0 , q1 , q2 }= {q2 }≠ φ
Representación del análisis de la cadena «abbc» a través del AFND en forma de
grafo multietapa.
Autómatas Finitos - 63 -

a b b c
q0

q1

q2

3.2.2. Lenguaje aceptado por un autómata finito no determinista (AFND).

Definición.- Sea M = ( K , ∑, ∆, q0 , F ) un AFND, se define el lenguaje


aceptado por el AFND como:

{
L ( M ) = x ∈ ∑ * ∆ ( q0 , x ) ∩ F ≠ φ }
Ejemplo: Sea el diagrama de transición dada en seguida:

0,1 0,1
0 0
q0 q1 q2

1
0,1
1
q3 q4

Probar la cadena x = 01001, suponiendo que ∑ = {0,1}.


SOLUCIÓN:

• 0 1
q0 {q0,q1} {q0,q3}
q1 {q2} Ø
q2 {q2} {q2}
q3 Ø {q4}
q4 {q4} {q4}
- 64 - V. Ibañez Q. - Docente FINESI - UNA - Puno

∆(q0 ,01001) = U p∈∆ ( q0 , 0100) ∆( p,1) .......................... (1)

∆(q0 ,0100) = U p∈∆ ( q0 ,010) ∆( p,0) ................................... (2)


∆ ( q0 ,010 ) = U p∈∆ ( q0 , 01) ∆ ( p ,0) ................................... (3)
∆ ( q 0 ,01) = U p∈∆ ( q 0 , 0 ) ∆ ( p ,1) ...................................... (4)
∆ (q0 ,0) = {q0 , q1}

Sustituyendo en (4), se tiene:


∆ ( q0 ,01) = U p∈{q0 ,q1 }∆ ( p,1) = {q0 , q3 }∪ φ = {q0 , q3 }
Sustituyendo en (3):
∆ ( q0 ,010) = U p∈{q0 , q3 } ∆ ( p,0) = {q0 , q1 }∪ φ = {q0 , q1 }
Sustituyendo en (2):
∆ (q0 ,0100) = U p∈{q0 ,q1 } ∆ ( p,0) = {q0 , q1}∪ {q2 } = {q0 , q1 , q2 }
Sustituyendo en (1):
∆(q0 ,01001) = U p∈{q0 ,q1 ,q2 } ∆( p,1) = {q0 , q3 }∪ φ ∪ {q2 } = {q0 , q2 , q3 }

Entonces: {q0 , q2 , q3 }∩ {q2 , q4 }= {q2 }≠ φ . Entonces se acepta la cadena.

Ejemplo: Sea M = ( K , ∑, ∆, q0 , F ) , donde K = {q 0 , q1 , q 2 , q 3 } ,

∑ = {0,1}, F = {q3 } y ∆ esta dado por la tabla siguiente:

• 0 1
q0 {q0} {q0,q1}
q1 {q2} {q2}
q2 {q3} {q3}
q3 Ø Ø
a) Construya el diagrama de transición de estados.
Autómatas Finitos - 65 -

0,1
1 0,1 0,1
q0 q1 q2 q3

b) Probar para la cadena x = 101101


∆(q0 ,101101) = U p∈∆ ( q0 ,10110 ) ∆( p,1) .......................... (1)
∆ ( q0 ,10110 ) = U p∈∆ ( q0 ,1011 ) ∆ ( p ,0) ........................... (2)
∆ ( q 0 ,1011 ) = U p∈ ∆ ( q 0 ,101 ) ∆ ( p ,1) ........................... (3)
∆ ( q 0 ,101 ) = U p ∈ ∆ ( q 0 ,10 ) ∆ ( p ,1) ............................ (4)
∆ ( q 0 ,10 ) = U p ∈ ∆ ( q 0 ,1 ) ∆ ( p , 0 ) ............................ (5)
∆ ( q0 ,1) = {q0 , q1 }

Sustituyendo en (5), se tiene:


∆ ( q0 ,10) = U p∈{q0 ,q1 }∆ ( p,0) = {q0 }∪ {q2 } = {q0 , q2 }
Sustituyendo en (4):
∆(q0 ,101) = U p∈{q0 ,q2 } ∆( p,1) = {q0 , q1}∪ {q3 }= {q0 , q1 , q3 }
Sustituyendo en (3):
∆(q0 ,1011) = U p∈{q0 ,q1 ,q3 } ∆( p,1) = {q0 , q1}∪ {q2 }∪ {φ}= {q0 , q1, q2 }
Sustituyendo en (2):
∆(q0 ,10110) = U p∈{q0 ,q1 ,q2 }∆( p,0) = {q0 }∪ {q2 }∪ {q3 }= {q0 , q2 , q3 }
Sustituyendo en (1):
∆ ( q0 ,101101) = U p∈{q0 ,q2 ,q3 }∆ ( p,1) = {q0 , q1 }∪ {q3 }∪ {φ }= {q0 , q1 ,
{
Aplicando la fórmula: L ( M ) = x ∈ ∑ * ∆ ( q0 , x ) ∩ F ≠ φ , entonces se tiene: }
{q 0 , q1 , q 3 }∩ {q 3 }= {q 3 }≠ φ . Como q3 ∈ F , entonces se acepta la ca-
dena x = 101101.
- 66 - V. Ibañez Q. - Docente FINESI - UNA - Puno
3.3. EQUIVALENCIA ENTRE AFD y AFND.

Los autómatas finitos no deterministas (AFND) son más convenientes que los
AFD, pues para algunos lenguajes es más fácil construir un AFND que lo reconozca,
que un AFD. De hecho, ésta es la principal utilidad de los autómatas no determinístas,
pues no sirven para describir tipos nuevos de lenguajes. dicho de otro modo, dado un
autómata finito no determinista, siempre se puede construir otro determinista equiva-
lente (que acepta el mismo lenguaje que el primero).

Todo AFD es un AFND. Por lo tanto, resulta obvio que los dos conjuntos de
autómatas finitos (AFD y AFND) son totalmente equivalentes en cuanto a los lengua-
jes que reconocen. Por otra parte, cuando hay que construir un autómata para recono-
cer un lenguaje, en la práctica siempre se desea evitar el indeterminismo, cuyo análisis
es poco eficiente. Por el mismo motivo, se prefiere utilizar el autómata finito determinista
mínimo o cociente.

Como todo AFD es un AFND, se puede entender como un caso particular de la


definición de un AFND para el cual la función de transición asigna a cada par (estado,
símbolo) un conjunto de estados que como mucho contiene un estado. Vamos a ver
cómo se cumple la condición inversa, es decir, se puede encontrar un AFD por cada
AFND que acepta el mismo lenguaje (equivalentes).

La forma de obtener este AFD equivalente a un AFND consiste en hacer que los
estados del AFD se correspondan con conjuntos de estados del AFND, y hacer que la
función de transición del AFD simule el cambio de conjuntos de estados que se produ-
ce en el AFND para un mismo símbolo de entrada.

Definición.- Dado un AFND M = ( K , ∑, ∆, q0 , F ) , la clausura- λ de un esta-

{
do q ∈ K se define como: E ( q ) = q '∈ K ( q, λ ) −*M ( q ' , λ ) . }
Definición.- Dado un AFND M = ( K , ∑, ∆, q0 , F ) que cumple
( q, x, q ' ) ∈ ∆ entonces x ≤ 1 , se define un AFD det( M ) = ( K ' , ∑, δ , s ' , F ' )
de la sigiuente manera:.
i) K ' = Ρ ( K ) , es decir los subconjuntos de K, o conjuntos de estados de M.
ii) s ' = E ( s ) , es decir la clausura- λ del estado inicial de M.
Autómatas Finitos - 67 -

iii) F ' = K '−Ρ ( K − F ) , son todos los conjuntos de estados de M que conten-
gan algún estado de F.
iv) ∀Q ∈ K ' (Q ⊆ K ) y c ∈ ∑ , δ (Q , c ) = U E (q ' )
q∈Q , ( q ,c , q '∈∆

Teorema.- Dado un AFND M = ( K , ∑, ∆, s, F ) , existe AFD definido como:


M ' = ( K ' , ∑' , δ ' , s' , F ' ) L(M ) = L( M ' ) , tal que:
i) K ' = Ρ ( K )
ii) ∑' = ∑
iii) s' = {s}, conjunto de estados que contiene el arranque del AFND.
iv) F ⊆ K ' , son subconjuntos de K que contengan algún p ∈ F .
v) δ ' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ⇔ δ ({q1, q2 ,L, qk }, a ) = {p1, p2 ,L, p

Para construir un AFD a partir de un AFND, se procede de la siguiente forma:


- Se toman todos los símbolos de ∑ ,y se aplica δ sobre el símbolo inicial s = q0 .
Al hacer esto, darán como resultados un conjunto A ∈ Ρ (K ) , que añadiremos a una
lista de estados nuevos.
- Se denomina marcar un estado a aplicar la función δ sobre todo los símbolos del
alfabeto.
- A partir de ahí hay que marcar todos los estados nuevos que nos salgan.

El algoritmo para una vez estén marcado todos los estados nuevos, serán estados
de aceptación aquellos estados que contengan algún estado de aceptación del AFND.

Teorema.- Sea L ⊆ ∑* un lenguaje aceptado por un AFND, existe entonces un


AFD que acepta L.

Definición.- Dado un AFND obtengo AFD.


AFND N = ( K N , ∑, ∆ N , s, FN )
AFD D = ( K D , ∑, δ D , {s}, FD ) , tal que L(N)=L(D).
i) ∑ son iguales.
- 68 - V. Ibañez Q. - Docente FINESI - UNA - Puno

ii) K D es el conjunto de los subconjuntos de K N , ( K N* ) conjuntos potencia.


No todos los estados de K D es accesible desde s = q0 eso son eliminados.
iii) FD es el conjunto de subconjuntos s ⊆ K N s ∩ FN ≠ φ , es decir FD con-
tiene todos los conjuntos de estados de N que incluyen al menos un estado de acep-
tación de N.
iv) ∀s ⊆ K N y a ∈ ∑ . δ D ( s, a) = Uδ
P en S
N ( p, a )

Ejemplo: Determine el AFD equivalente del siguiente AFND.

b b
a b
q0 q1 q2

SOLUCIÓN (Método 1).


Ρ( K ) = 2 n , ⇒ Ρ( K ) = 23 = 8 , el conjunto potencia esta dado por:
Ρ( K ) = {φ , {q0 }{
, q1}{
, q2 }{
, q0 , q1 }{
, q0 , q2 }{
, q1 , q2 }{
, q0 , q1 , q2 }}
δ ({q0 }, a ) = {q1} δ ({q1 }, a ) = {φ } δ ({q2 }, a ) = {φ }
δ ({q0 }, b ) = {q0 } δ ({q1},b) = {q1, q2} δ ({q2 }, b ) = {φ }

δ ({q0 , q1}, a ) = δ (q0 , a ) ∪ δ (q1 , a ) = {q1}∪ {φ} = {q1}


δ ({q0 , q1}, b ) = δ (q0 , b )∪ δ (q1 , b ) = {q0 }∪ {q1 , q2 }= {q0 , q1 , q2

δ ({q0 , q2 }, a ) = δ (q0 , a )∪ δ (q2 , a ) = {q1 }∪ {φ }= {q1 }


δ ({q0 , q2 }, b ) = δ (q0 , b )∪ δ (q2 , b ) = {q0 }∪ {φ }= {q0 }

δ ({q1 , q2 }, a ) = δ (q1 , a )∪ δ (q2 , a ) = {φ }∪ {φ }= {φ }


δ ({q1 , q2 }, b) = δ (q1 , b )∪ δ (q2 , b ) = {q1 , q2 }∪ {φ }= {q1 , q2 }
Autómatas Finitos - 69 -

δ ({q0 , q1 , q2 }, a ) = δ (q0 , a )∪ δ (q1 , a ) ∪ δ (q2 , a ) = {q1}∪ {φ }∪ {φ }=


δ ({q0 , q1 , q2 }, b ) = δ (q0 , b ) ∪ δ (q1 , b )∪ δ (q2 , b ) = {q0 }∪ {q1 , q2 }∪ {φ } =
δ ({φ }, a ) = {φ }
δ ({φ }, b ) = {φ }

El diagrama de transición es el resultado del procedimiento anterior.

a
b a b

{q0} {q1} {q2} {q0,q1,q2}

a,b
b a a b
b b

{q0,q2} {q0,q1} {q1,q2} a {Ø}

a,b

Eliminando los estados que no se tocan, se tiene el siguiente AFD equivalente:

b b
a b
{q0} {q1} {q1,q2}

a a

{Ø}
a,b
- 70 - V. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN (Método 2).
δ ' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ⇔ δ ({q1, q2 ,L, qk }, a ) = {p1, p2 ,L, p

δ ({q0 }, a ) = {q1} δ ({q 1 }, a ) = {φ } δ ({φ }, a ) = {φ }


δ ({q0 }, b ) = {q0 } δ ({q1}, b) = {q1 , q2 } δ ({φ}, b ) = {φ}

δ ({q1 , q2 }, a ) = δ (q1 , a )∪ δ (q2 , a ) = {φ }∪ {φ }= {φ }


δ ({q1 , q2 }, b) = δ (q1 , b )∪ δ (q2 , b ) = {q1 , q2 }∪ {φ }= {q1 , q2 }

El diagrama de transición es el resultado del procedimiento anterior.

b b
a b
{q0} {q1} {q1,q2}

a a

{Ø}
a,b

Ejemplo: Sea el M el AFND, cuyo diagrama de transiciones es:

a a
a
q0 q2 q1
b

SOLUCIÓN:
δ ' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ⇔ δ ({q1, q2 ,L, qk }, a) = {p1, p2 ,L, p
δ ({q0 }, a ) = {q1 , q2 }
δ ({q0 }, b ) = {φ }
Autómatas Finitos - 71 -

δ ({q1 , q2 }, a) = δ (q1 , a) ∪ δ (q2 , a ) = {q1}∪ {φ}= {q1}


δ ({q1 , q2 }, b) = δ (q1 , b)∪ δ (q2 , b) = {q0 }∪ {q1}= {q0 , q1}

δ ({q1}, a ) = {q1}
δ ({q1}, b ) = {q0 }

δ ({q0 , q1}, a) = δ (q0 , a) ∪δ (q1, a) = {q1, q2 }∪{q1} = {q1, q2 }


δ ({q0 , q1 }, b ) = δ (q0 , b ) ∪ δ (q1 , b ) = {φ }∪ {q0 } = {q0 }
δ ({φ }, a ) = {φ }
δ ({φ }, b ) = {φ }

El diagrama de transición de estados es el siguiente:

b {q1} a
{q0}
b
b
a {q0,q1}
a a

{q1,q2} {Ø}
b
a,b
- 72 - V. Ibañez Q. - Docente FINESI - UNA - Puno

EJERCICIOS:

Construya el AFD equivalente al AFND del diagrama de transiciones de estados


que se presentan a continuación:

a,b a,b a,b


a b a b
1) q0 q1 q2 2) q0 q1 q2

a b a,b
a,b a b
3) q0 q1 q2 q3

q1
a b b
a q1 q2 b
a
4) a q0 q2 5) q0 b a a
a
a b a
q4 q3
a a
q4 q3

b b a
q1
b
a
a a a
6) q0 q1 q2 7) aq0 b b b q3
a b b
a b b
q3 q4 q2
b
Autómatas Finitos - 73 -

3.4. CONVERSIÓN DE EXPRESIÓN REGULAR (ER) A AFND.

Las Expresiones Regulares (ERs), Autómatas Finitos Determinístas (AFDs) y


Autómatas Finitos No Deterministas (AFND) son mecanismos equivalentes para de-
notar los lenguajes regulares. Por lo que demostraremos esto mediante convertir
ER → AFND → AFD → ER . Las dos primeras conversiones son muy relevantes en la prác-
tica, pues permiten construir verificadores o buscadores eficientes a partir de ERs. Hay
distintos formas de convertir una ER a un AFND, de modo que l( E ) = l( M ) . El
método de Thompson es de los más sencillos.

Definición.- La función (Th) convierte ERs en AFND, según las siguientes reglas.
Sean α y β expresiones regulares:

---------------------------------------------------- ----------------------------------------
Expresión Regular (ER) Autómata Finito (AF)
---------------------------------------------------- ----------------------------------------

1) φ ó Th (φ )

2) λ ó Th(λ )

a
3) a ∈ ∑ ó a ∈ ∑, Th(a)

(α)
λ λ

4) α β ó Th(α β ) λ λ
(β )

5) α ⋅ β ó Th(α ⋅ β ) (α) λ (β )

λ
(α)
6) α * ó Th(α * ) λ λ
λ

---------------------------------------------------- ---------------------------------------------
- 74 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Teorema.- Sea E una Expresión Regular (ER), entonces l(Th( E )) = l( E ) .

Ejemplo: Sea α = ba *

SOLUCIÓN:

q0
a
Para a: q1

q2
b
Para b: q3

Para a * (en este paso el estado 1 deja de ser de aceptación).

λ
a
q0 q1
λ λ

q4
λ q5

Para ba * se tiene:

λ
a
q0 q1
λ λ

q2
b
q3
λ q4
λ q5

Ejemplo: Sea α = 011


*

SOLUCIÓN:
Autómatas Finitos - 75 -
Para 01, se tiene:

A
0
B
λ C
1
D

*
Para 1 .

λ
1
F G
λ λ

E
λ H

Finalmente se tiene: 011*

A
0
B
λ C
1
D

λ λ
λ
I 1* J
F G
λ λ
λ λ
E
λ H

Ejemplo: Tenemos un AFND que acepta «ab», y queremos construir un AFND


*
que acepte ( ab )
SOLUCIÓN: Para «ab»
a b
q0 q1 q2

*
Para ( ab )

q3
λ q0
a
q1
b
q2

λ
- 76 - V. Ibañez Q. - Docente FINESI - UNA - Puno

3.5. CONVERSIÓN DE AFD A EXPRESIONES REGULARES (ER).

Un procedimiento para transformar en forma sistemática un AFD en una expresión


regular equivalente consiste en ir eliminando gradualmente nodos de una gráfica de
transiciones (GT), que inicialmente es el AFND que se quiere transformar hasta que
únicamente queden un nodo inicial y un nodo final.

Procedimiento:
1) El primer paso consiste en añadir al AFD un nuevo estado final «i», mientras
que el antiguo estado inicial q0 deja de ser inicial, y un nuevo estado final «f», mientras
que los antiguos estados finales qi ∈ F dejan de ser finales; además se añade una
transición vacía del nuevo estado inicial al antiguo (i, λ , q0 ) , y varias transiciones de
los antiguos estados finales al nuevo {(qi , λ , f ) qi ∈ F }. Esta transformación tiene
por objeto que haya un estado inicial al que no llegue ninguna transición, y un solo
estado final del que no salga ninguna transición.

2) El segundo paso consiste en eliminar nodos intermedios en la gráfica de transi-


ciones. Se llama nodo intermedio a aquel que se encuentra en una trayectoria entre el
estado inicial y el final. El proceso de eliminación de nodos intermedios es directo. La
idea es que al suprimir el nodo en cuestión, no se alteren las cadenas que hay que
consumir para pasar de uno a otro de los nodos vecinos. En otras palabras, al suprimir
dicho nodo, se deben reemplazar las transiciones que antes tomaban ese nodo como
punto intermedio para ir de un nodo vecino a otro, por otras transiciones que vayan del
nodo vecino origen al nodo vecino destino, pero ahora sin pasar por el nodo elimina-
do.

β1 b
p1 α1 γ1
q1

αn q
γm

pn
βk qm

q es el nodo intermedio que se quiere eliminar, y los nodos entre los que se
encuentra.
Autómatas Finitos - 77 -

En la figura precedente α i , β i , γ i son expresiones regulares.


Para eliminar el nodo «q», reemplazamos la parte de la gráfica de transiciones por
el subgrupo representado a continuación.

α 1 ( β 1 + L + β k )γ 1 b
p1 q1

α1(β1 +L+ βk )*γ1 L αn(β1 +L+ βk )*γ m

pn qm
α n ( β1 + L + β k )γ m

Gráfica de transiciones sin el nodo eliminado.

3) Cuando después de aplicar repetidamente el paso 2), ya no sea posible hacerlo,


tendremos una gráfica de transiciones. Esta gráfica de transiciones se puede transfor-
mar en otra con una sola transición, fusionando todas las transiciones en una sola con
etiqueta R1 + R2 + L + Rn . Esta etiqueta será la expresión regular buscada. En forma
gráfica se presenta a continuación.

R1

R2

R3

Rn

Gráfica de transiciones tras la eliminación de nodos intermedios.

Ejemplo: Encontrar una ER para el AFD, del siguiente diagrama de transiciones:


- 78 - V. Ibañez Q. - Docente FINESI - UNA - Puno

a,b
a
q0 q1

a b

q2 b

SOLUCIÓN:

Paso 1: Añadir un nuevo estado inicial y uno final.

a,b
λ a
i q0 q1

a b λ
λ
q2 f
b

Paso 2: Eliminación de nodos intermedios. Se elimina primero el nodo q1 .

λ q0 a(a+b)*
i

a b

λ
q2 f
b
Autómatas Finitos - 79 -

Paso 3: Después eliminamos el nodo q2 .

a(a+b)*
λ
i q0 f
bb*
bb*a

Paso 4: Eliminamos el nodo q0 .

(bb*a)*a(a+b)*

i f

(bb*a)*bb*
Paso 5: Finalmente fusionamos las expresiones que están en paralelo.

(bb*a)*a(a+b)* + (bb*a)*bb*
i f

Por lo que la expresión regular buscaa es:

er ( M ) = (bb*a)* a(a + b)* + (bb*a )* bb*

Ejemplo: Consideremos el AFD que se presenta a continuación y generemos


er(M).

a b a

q0 q1

b
- 80 - V. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN:
Paso 1: Añadir un nuevo estado inicial y uno como estado final.

a b a

i
λ q0 q1
λ f

Paso 2: Eliminación de nodos intermedios. Se elimina el nodo q1 .

i
λ q0
ba*
f

ba*b

Paso 3: Eliminamos el nodo q0 .

(a+ba*b)*ba*
i f

Por lo que la expresión regular buscaa es:

er ( M ) = (a + ba *b)* ba *

Método alternativo para convertir un AFD a una Expresión Regular (ER).

A cada estado q i del autómata se hace corresponder el conjunto o lenguaje


L i de todas las palabras que llevan desde dicho estado a un estado final. Es evidente
que el lenguaje aceptado por el autómata es L0 .
Si el autómata se encuentra en un estado q i , recibir de la entrada la palabra vacía
tiene el efecto de dejar al autómata en el mismo estado q i (puesto que el autómata no
Autómatas Finitos - 81 -

contiene transiciones λ ). Por consiguiente, si q i no es final, la palabra vacía no


pertenecerá a L i . Por el contrario, si q i es final, la palabra vacía sí pertenecerá a L i .

n
Definición.- Se define, si el estado q i no es final, se verifica que Li = U a jk ⋅ L jk .
k =1

n
En cambio, si q i es final, entonces: Li = λ + U a jk ⋅ L jk .
k =1

Teorema (Lema de Arden).- Sea la ecuación L = A ⋅ L + B , donde λ ∉ A . Enton-


ces se verifica que L = A* ⋅ B .

Ejemplo: Dada el siguiente AFD, encuentre la expresión regular del autómata.

a b a

q0 q1

b
SOLUCIÓN:
Lq0 = aLq0 + bLq1 ............................................... (1)

Lq1 = aLq1 + bLq0 + λ ............................................ (2)


En la ecuación (2), se despeja Lq1 , usando el Teorema L = A ⋅ L + B , donde

λ ∉ A , entonces se verifica que L = A* ⋅ B .


( )
Lq1 = bLq0 + λ + aLq1 = bLq0 + λ a * ( )
Lq1 = ba* Lq0 + a* ...................................................... (3)
Sustituyendo (3) en (1) se tiene:
Lq0 = aLq0 + b(ba* Lq0 + a* ) = aLq0 + ba*bLq0 + ba*
( ) (
= aLq0 + ba*bLq0 + ba* = a + ba*b Lq0 + ba* factorizando Lq0 )
- 82 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Lq0 = (a + ba*b ) ba*


*
aplicando el Teorema de Arden.

(
er ( M ) = a + ba*b ba * )*

Ejemplo: Encontrar una ER para el AFD del diagrama de transiciones por el méto-
do simplificado.

a,b
a
q1 q2

a b

q3 b

SOLUCIÓN:
X 1 = aX 2 + bX 3 .................................................................... (1)
X 2 = aX 2 + bX 2 = (a + b) X 2 = (a + b)* ..................... (2)
X 3 = aX 1 + bX 3 + λ ........................................................... (3)
De la ecuación (3) se despeja X3 .
X 3 = (aX 1 + λ ) + bX 3 = ( aX 1 + λ )b* = (b* aX 1 + b* )
Reemplazando en X 1 , se obtiene:
X 1 = aX 2 + b(b*aX 1 + b* ) = aX 2 + bb*aX 1 + bb*
= (aX 2 + bb* ) + bb*aX 1 = (aX 2 + bb* )(bb*a )*
= aX 2 (bb*a )* + (bb*a )* bb*
Reemplazando (2) en la ecuación (1), se tiene:
= a(a + b)* (bb*a )* + (bb*a )* bb*
Autómatas Finitos - 83 -

er ( M ) = a(a + b)* (bb*a )* + (bb*a )* bb*

Ejemplo: Encontrar una ER para el AFD, siguiente:

b
q1 q2
b
a a

q3 a,b

SOLUCIÓN: (a través de la ecuación característica)


Lq1 = aLq3 + bLq2 ............................................... (1)

Lq2 = aLq3 + bLq2 .................................................... (2)


Lq3 = aLq3 + bLq3 + λ ............................................ (3)
En la ecuación (3), se despeja Lq3 , se tiene:.

Lq3 = (a + b)* ............................................................. (4)


Sustituyendo (4) en (2) se obtiene:
Lq2 = a(a + b)* + bLq2 = a(a + b)* b* ................... (5)
Reemplazando (5) en la ecuación (1), se tiene:
Lq1 = a(a + b)* + ba(a + b)* b*

Finalmente encontramos la Expresión Regular buscada:


er ( M ) = a (a + b)* + bb*a (a + b)*

Ejemplo. Dado el autómata siguiente, obtener una expresión regular que denote el
lenguaje:
- 84 - V. Ibañez Q. - Docente FINESI - UNA - Puno

a,b b
q1 q2 q3
a

SOLUCIÓN:
X 1 = (a + b) X 2 .................................................................... (1)
X 2 = bX 3 + λ ...................................................................... (2)
X 3 = aX 2 ................................................................................ (3)

Paso 1: Fase de reducción (Primera iteración).

X 3 = aX 2 

X 2 = bX 3 + λ  ⇒ X 3 = aX 2
X 1 = (a + b) X 2 

Paso 2: Se realiza la segunda iteración:

X 2 = b(aX 2 ) + λ 
 ⇒ X 2 = (ba) X 2 + λ = (ba)
*

X 1 = ( a + b) X 2 

Paso 3: La tercera iteración y se encuentra la solución:


X 1 = (a + b) X 2 = (a + b)(ba)*

er ( M ) = (a + b)(ba)*
Autómatas Finitos - 85 -

EJERCICIOS:

En los siguientes ejercicios encontrar las expresiones regulares para los lenguajes
de los AFD siguientes:

a b
1) q1 q2 q3

b b

q4 a

a b
2) q1 q2 q3

a b a

q4

a,b b
3) q1 q2 q3

a
b b
q4
a
- 86 - V. Ibañez Q. - Docente FINESI - UNA - Puno

3.6. MINIMIZACIÓN DE AUTÓMAAS FINITOS.

Sea M = ( S , I , ℑ, s0 , T ) una máquina de Moore y «k» un entero no negati-


vo ( k ∈ Z + ). Entonces se define la relación R en S como sigue: Para cualesquier
s ,t ∈ S y w ∈ I * , se dice que «s» y «t» son compatibles en w si f w ( s ) y f w ( t )
ambas pertenecen a T o ninguna lo hace.
Sea sRt, significa que «s» y «t» son compatibles con w. ∀w ∈ I * .

TEOREMA: Sea M = ( S , I , ℑ, s0 , T ) una máquina de Moore y sea R la


relación definida arriba, entonces:
a) R es una relación de equivalencia en S.
b) R es una congruencia de máquinas.

TEOREMA: Sea M = ( S , I , ℑ, s0 , T ) una máquina de Moore, R la relación

d i
de equivalencia, y M = S R , I , ℑ,[s0 ], T R la máquina de Moore cociente. Entonces

c h b g
L M =L M .

∈ Z + ), se define una relación Rk en S, el conjunto de los


Observación.- Si ( k
estados de una máquina de Moore M = ( S , I , ℑ, s0 , T ) . Si w ∈ I , se recuerda que
*

l( w ) es la longitud de la cadena w, estoes, el número de símbolos en w. Obsérvese


que l( ∧ ) = 0 . Entonces s,t ∈ S , se define sRk t significa que s y t son compatibles

para todas las w ∈ I con l( w ) ≤ k . Las relaciones Rk no son congruencia de


*

máquinas, pero son aproximaciones sucesivas a la congruencia R.

TEOREMA:
a) Rk +1 ⊆ Rk , ∀k ≥ 0
b) Toda Rk es una relación de equivalencia.
c) R ⊆ Rk , ∀k ≥ 0
Autómatas Finitos - 87 -

TEOREMA:

a) m r
S R0 = T ,T , donde T es el complemente de T.
b) Sea k ∈ Z + y sean s ,t ∈ S . Entonces sRk +1t ⇔:
i) sRk t
ii) f x ( s ) Rk f x ( t ), ∀x ∈ I
Este resultado nos indica que es posible encontrar las particiones Pk , que
corresponde a las relaciones Rk por el siguiente método recursivo:

PROCEDIMIENTO:

Una procedimiento para reducir una máquina de Moore dada a una máquina
equivalente es el siguiente:

PASO 1: Se inicia con la partición m r


P0 = T , T de S.
PASO 2: Se construyen particiones sucesivas P1 , P2 ,L que corresponden a
las relaciones de equivalencia R1 , R2 ,L usando el método recursivo:

l q
i) Al alcanzar la partición Pk = A1 , A2 ,L , Am , se examina cada una

de las clases de equivalencia Ai y se separa en bloques si existen


elementos de Ai que con alguna entrada de «x» lleva de «s» a «t»
van a diferentes bloques de Pk , en caso contrario Ai no se
particiona.
ii) La nueva partición de S, obtenida al analizar todos los bloques Ai de
Pk , será Pk +1 .
PASO 3: Cuando Pk = Pk +1 entonces alto, para k ≥ 0 la partición resultante
P = Pk corresponde a la relación de compatibilidad R.
PASO 4: La máquina cociente resultante es equivalente a la máquina de Moore
dada.
- 88 - V. Ibañez Q. - Docente FINESI - UNA - Puno

TEOREMA: Si Rk = Rk +1 para un entero no negativo «k», entonces Rk = R .

DEF. Un AFD M = ( K , Σ ,δ ,q0 , F ) , es accesible si para cualquier q ∈ K existe


alguna palabra x ∈ Σ * δ ( q0 , x ) = q .

DEF. Sea M = ( K , Σ ,δ , q0 , F ) un AFD completo y accesible. Definimos la


relación de indistinguibilidad ~ en K como:

m
∀q , q' ∈ K q ~ q' ⇔ ∀x ∈ Σ* ( δ ( q , x ) ∈ F ⇔ δ ( q' , x ) ∈ F ) r
DEF. Sea M = ( K , Σ ,δ' ,q0 , F ) un AFD completo y accesible y sea ~ la relación
de indistinguibilidad. Se define el autómata cociente:
l
A ~ = ( K' , Σ ,δ ' , q'0 , F' ) como: K' = [ q ] ~ q ∈ K q
q'0 = [ q0 ]~
l q
F' = [ q ] ~ q ∈ K y la fun-
ción de transición está dada por: δ ' ([ q ]~ , a ) = [ δ ( q , a )]~

TEOREMA.- Sea M = ( K , Σ ,δ' ,q0 , F ) un AFD completo y accesible y sea ~ la


relación de indistinguibilidad. El autómata A ~ es el AFD mínimo que acepta L(M).

DEF.- M = ( K , Σ ,δ ,q0 , F ) un AFD completo y accesible sea k ≥ 0 un entero,


definimos la relación de k -indistinguibilidad ~ k es:

m
∀q , q' ∈ K q ~ kq' ⇔ ∀x ∈ Σ* , x ≤ k ( δ ( q , x ) ∈ F ⇔ δ ( q' , x

Propiedades:
i) Para cualquier k ≥ 0, p~ k +1q⇒ p~ k q
ii) Para cualquier k ≥ 0, p ~ q ⇒ p ~ k q
iii) Para cualquier k ≥ 0, p ~ k + a q ⇒ p~ k q ∧ ∀aΣ( δ ( p , a )~ k δ ( q , a ))
Autómatas Finitos - 89 -
ALGORITMO DE MINIMIZACIÓN DE AUTÓMATAS:
1) Hacer π 0 = {K - F, F}
2) Obtener π k +1 a partir de π k como sigue:
B( p ,π k +1 ) = B( q ,π k +1 ) ⇔ B( p ,π k ) = B( q ,π k ) ∧
∀a ∈ Σ( B( δ ( p , a ),π k ) = B( δ ( q , a ),π k )
3) Repetir 2) hasta encontrar un m tal que π m +1 = π m .

EJEMPLO:
Encuentre la partición correspondiente a la relación R y construya la tabla de
estados de la máquina cociente que sea equivalente a la máquina de Moore, cuyo grafo
dirigido se presenta a continuación:

0 0,1
1
s0 s2 s4
0
0
0 1 1
0,1

s1 1
s3 s5

SOLUCIÓN:
l q
T = s4 , s5 ; l q
S = s0 , s1 , s2 , s3 , s4 , s5 ; I = {0,1}

La tabla de transición de estados se presenta en seguida:

0 1
s0 s0 s2
s1 s0 s3
s2 s5 s3
s3 s4 s2
s4 s4 s4
s5 s5 s5
- 90 - V. Ibañez Q. - Docente FINESI - UNA - Puno

PASO 1: m r mls ,s q,ls ,s ,s ,s qr


P0 = T ,T = 4 5 0 1 2 3

PASO 2: P1 = ?

l q
Analizando: s4 , s5 entonces: 0: s4 a s4 1: s4 a s4 N . S . P .
s5 a s5 s5 a s5

l
Analizando: s0 , s1 , s2 , s3 q
0: s0 a s0 1: s0 a s2 S . S . P.
s1 a s0 s1 a s3
s2 a s5 s2 a s3
s3 a s4 s3 a s2

P1 = mls ,s q,ls , s q,ls ,s qr


4 5 0 1 2 3

PASO 3: P2 = ?

l q
Analizando: s4 , s5 entonces: 0: s4 a s4 1: s4 a s4 N . S . P .
s5 a s5 s5 a s5

l q
Analizando: s0 , s1 entonces: 0: s0 a s0 1: s0 a s2 N . S . P.
s1 a s0 s1 a s3

l q
Analizando: s2 , s3 entonces: 0: s2 a s5 1: s2 a s3 N . S . P .
s3 a s4 s3 a s2

P2 =mls , s q,ls , s q,ls , s qr


4 5 0 1 2 3

P = P = P = mls , s q,ls , s q,ls , s qr = S R = S


3 2 4 5 0 1 2 3

S = S R = mls , s q,ls , s q,ls , s qr = m s , s , s r


4 5 0 1 2 3 0 2 4
Autómatas Finitos - 91 -
Se puede probar la congruencia de la máquina:

d i
M = S R , I , ℑ,[s0 ], T R = S = S R = P

Pero: b g
f x [s] = f x ( s )
b g
f 0 [s0 ] = f 0 ( s0 ) = [s0 ]
f b[s ]g = f ( s ) = [s ] = [s ]
0 2 0 2 5 4

f b[s ]g = f ( s ) = [s ]
0 4 0 4 4

f b[s ]g = f ( s ) = [s ]
1 0 1 0 2

f b[s ]g = f ( s ) = [s ] = [s ]
1 2 1 2 3 2

f b[s ]g = f ( s ) = [s ]
1 4 1 4 4

La tabla de transición de estados:

0 1 [s0]
[s0] [s0] [s2] 1
[s2] [s4] [s2] 0,1
1
[s4] [s4] [s4] [s2] [s4]
0

EJEMPLO:

Dado el AFD siguiente, construya el diagrama de transiciones del AF cociente


equivalente al AFD.
- 92 - V. Ibañez Q. - Docente FINESI - UNA - Puno

a
a a
q0 q1 b
a
b b
q4
b
a q3
q2 b

SOLUCIÓN:

l q
F = q3 ; l
K = q0 , q1 , q2 , q3 q ; I = {a,b}

La tabla de transición de estados se presenta en seguida:

q0 q1 q2 q3 q4
a q1 q1 q1 q2 q4
b q3 q3 q4 q4 q1

PASO 1: m r mlq q,lq ,q ,q ,q qr


P0 = F , F = 3 0 1 3 4

PASO 2: P1 = ?

Analizando: lq ,q ,q ,q q
0 1 2 4

a: q0 a q1 b: q0 a q3 S . S . P.
entonces:
q1 a q1 q1 a q3
q2 a q1 q 2 a q4
q4 a q 4 q4 a q1

P1 = mlq q,lq ,q q,lq ,q qr


3 2 4 0 1
Autómatas Finitos - 93 -

PASO 3: P2 = ?

l q
Analizando: q2 ,q4 entonces: a: q2 a q1 b: q2 a q4 S . S . P.
[ q4 a q4 ] [ q4 a q1 ]

l q
Analizando: q0 ,q1 entonces: a: q0 a q1 b: q0 a q3
q1 a q1 q1 a q3

P2 = mlq q,lq q,lq q,lq ,q qr


4 3 2 0 1

PASO 3: P3 = ?

l q
Analizando: q0 ,q1 entonces: a: q0 a q1 b: q0 a q3 N . S . P.
q1 a q1 q1 a q3

P3 = P2 = P = mlq ,q q,lq q,lq q,lq qr = S R = S


0 1 2 3 4

S =S R= mlq ,q q,lq q,lq q,lq qr = m q


0 1 2 3 4 0 , q2 , q3 , q 4 r
Se puede probar la congruencia de la máquina:

c
M = S R , Σ , ∆ ,[q 0 ], T R = S = S R = P h
Pero: b g
f x [s] = f x ( s )

b g
fa [q0] = fa(q0 ) =[q1]=[q0] ; b g
f a [q 2 ] = f a ( q2 ) = [q1 ] = [q 0 ]

b g
f b [q 0 ] = fb ( q0 ) = [q 3 ] ; b g
f b [q 2 ] = f b ( q2 ) = [q 4 ]
f b[q ]g =
a 3 f a ( q3 ) = [q 2 ] ; b g
f a [q 4 ] = f a ( q4 ) = [q 4 ]
f b[q ]g =
b 3 f b ( q3 ) = [q 4 ] ; f b[q ]g =
b 4 f b ( q4 ) = [q 1 ] = [q 0 ]
- 94 - V. Ibañez Q. - Docente FINESI - UNA - Puno
La tabla de transición de estados y el diagrama del automáta finito cocientees:

a b
[q0] [q0] [q3] a b a
a a b
[q2] [q0] [q4] [q0] [q2] [q3] [q4]
[q3] [q2] [q4] b
b
[q4] [q4] [q0]

Se observa que L( M ) = L( M ) y que la máquina M es más eficiente en el sentido del


número de estados.

Usando el algoritmo, se puede resolver de otra forma:

a
a a
q0 q1 b
b a
b
q4
b
a q3
q2 b

SOLUCIÓN:

La tabla de transición de estados se presenta en seguida:

q0 q1 q2 q3 q4
a q1 q1 q1 q2 q4
b q3 q3 q4 q4 q1

PASO 1: m r mlq q,lq ,q ,q ,q qr


π 0 = F,F = 3 0 1 3 4
Autómatas Finitos - 95 -

a b
q0 B1 B2
l
B1 = q0 , q1 , q3 , q4 q q1 B1 B2

= lq q
q2 B1 B1
B2 3 q3 B1 B1
q4 B1 B1

PASO 2: π1 = ?; π1 = mlq ,q ,q q,lq ,q qr


2 3 4 0 1

a b
q0 B1 B2
l q
B1 = q0 , q1
q1 B1 B2

= lq , q , q q
q2 B1 B2
B2 2 3 4 q3 B2 B2
q4 B2 B1

PASO 3: π2 = ?; π2 = mlq ,q ,q q,lq q,lq qr


0 1 2 4 3

a b

l q
B1 = q0 , q1 , q2
q0
q1
B1
B1
B2
B2
B = lq q q2 B1 B3
B = lq q
2 3

3 4
q3 B1 B3
q4 B3 B1

PASO 4: π3 = ?; π3 = mlq ,q q,lq ,q q,lq qr


0 1 2 3 4
- 96 - V. Ibañez Q. - Docente FINESI - UNA - Puno

a b

l q
B1 = q0 ,q1
q0
q1
B1
B1
B2
B2
B = lq , q q q2 B1 B3
B = lq q
2 2 3

3 4
q3 B2 B3
q4 B3 B1

PASO 5: π4 = ?; l
π 4 = { q0 , q1 },{ q2 },{ q3 },{ q4 } q
a b
l q
B1 = q0 , q1 q0 B1 B3
B = lq q
2 2
q1 B1 B3
B = lq q
q2 B1 B4
3 3

B = lq q
q3 B2 B4
4 4
q4 B4 B1

PASO 6: π5 = ?; l
π 5 = { q0 , q1 },{ q2 },{ q3 },{ q4 } q
l q
B1 = q0 , q1
B = lq q
2 2

B = lq q
3 3 l q
⇒ π 5 = π 4 = { q0 , q1 },{ q2 },{ q3 },{ q4 } , el algo-
B = lq q
4 4

ritmo termina. El AFD con mínimo de estados es el siguiente, que es equivalente al


anterior.
Autómatas Finitos - 97 -

a b a
a a b
B1 B2 B3 B4
b
b
EJEMPLO:

Encuentre la relación R y construya el diagrama de transiciones de del autóma-


ta finito cociente equivalente que corresponda al autómata finito, cuyo diagrama de
transiciones es:

0
1
0 1 0
s0 s1 s2 s3
0
1 0
0 1 1

1 1 0
s4 s5 s6 s7
1 0

SOLUCIÓN:
T = ls q ; 2 l
S = s0 , s1 , s2 , s3 , s4 , s5 , s6 , s7 ; q I = {0,1}

La tabla de transición de estados se presenta en seguida:

s0 s1 s2 s3 s4 s5 s6 s7
0 s1 s6 s0 s2 s7 s2 s6 s6
1 s5 s2 s2 s6 s5 s6 s4 s2

PASO 1: P0 = T , T = m r mls q, ls , s , s , s , s , s , s qr
2 0 1 3 4 5 6 7
- 98 - V. Ibañez Q. - Docente FINESI - UNA - Puno

PASO 2: P1 = ?

Analizando: ls , s , s , s , s , s , s q
0 1 3 4 5 6 7

0: s0 a s1 1: s0 a s5 S . S . P.
s1 a s6 s1 a s2
entonces: s3 a s2 s3 a s6
s4 a s7 s4 a s5
s5 a s2 s5 a s6
s6 a s6 s6 a s4
s7 a s6 s7 a s2

P1 = mls q, ls , s q, ls , s q, ls , s , s qr
2 3 5 1 7 0 4 6

PASO 3: P2 = ?

l q
Analizando: s3 , s5 entonces: 0: s3 a s2 1: s3 a s6 N . S . P.
s5 a s2 s5 a s6

l q
Analizando: s1 , s7 entonces: 0: s1 a s6 1: s1 a s2 N . S . P.
s7 a s6 s7 a s2
l q
Analizando: s0 , s4 , s6 entonces: 0: s0 a s1 1: s0 a s5 S . S . P.
s4 a s7 s4 a s5
s6 a s6 s6 a s4

P2 = mls q, ls , s q,ls , s q, ls q,ls , s qr


2 3 5 1 7 6 0 4

PASO 3: P3 = ?

l q
Analizando: s0 , s4 entonces: 0: s0 a s1 1: s0 a s5 N . S . P.
s4 a s7 s4 a s5
Autómatas Finitos - 99 -

mls q, ls , s q, ls , s q, ls , s q, ls qr = S R = S
P3 = P2 = P = 2 3 5 1 7 0 4 6

S = S R = mls q, ls , s q, ls , s q, ls , s q, ls qr = m s , s , s
2 3 5 1 7 0 4 6 0 1 2 , s3

Se puede probar la congruencia de la máquina:

d
M = S R , I , ℑ,[s0 ], T R = S = S R = P i
Pero: b g
f x [s] = f x ( s )

b g
f 0 [s0 ] = f 0 ( s0 ) = [s1 ] ; b g
f 1 [s0 ] = f 1 ( s0 ) = [s5 ] = [s3 ]

b g
f 0 [s1 ] = f 0 ( s1 ) = [s6 ] ; b g
f 1 [s1 ] = f 1 (s1 ) = [s2 ]
f b[s ]g =
0 2 f 0 ( s2 ) = [s0 ] ; f b[s ]g =
1 2 f 1 ( s 2 ) = [s 2 ]
f b[s ]g =
0 3 f 0 ( s3 ) = [s2 ] ; f b[s ]g =
1 3 f 1 ( s 3 ) = [s 6 ]
f b[s ]g =
0 6 f 0 ( s6 ) = [s6 ] ; b g
f 1 [s6 ] = f 1 (s6 ) = [s4 ] = [s0 ]

La tabla de transición de estados y el diagrama del automáta finito cocientees:

0 1 1
[s0] [s6]
[s0] [s1] [s3] 0
0
[s1] [s6] [s2] 0 1
0 1
[s2] [s0] [s2] 1
[s3] [s2] [s6]
[s6] [s6] [s0]
[s1] [s2] [s3]
1 0

Se observa que L( M ) = L( M ) y que la máquina M es más eficiente en el sentido del


número de estados.
- 100 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Otra forma:
SOLUCIION: Primeramente se elimina el estado S3, porque es inaccesible.

0
1
0 1
s0 s1 s2
0
1 0
0 1 1

1 1 0
s4 s5 s6 s7
1 0

La tabla de transición de estados se presenta en seguida:

s0 s1 s2 s4 s5 s6 s7
0 s1 s6 s0 s7 s2 s6 s6
1 s5 s2 s2 s5 s6 s4 s2

PASO 1: π 0 m r ml q l
= T ,T = s2 , s0 , s1 , s4 , s5 ,s6 , s7 qr
l
B1 = s0 , s1 , s4 , s5 , s6 , s7 q
B = ls q
2 2

PASO 2: π1 = ?; π1 = mls , s , s q,ls , s , s q,ls qr


0 4 6 1 2 7 5

0 1

l
B1 = s0 , s4 , s6 q s0
s1
B1
B1
B1
B2
= ls , s , s q
s2 B1 B2
B2 1 2 7 s4 B1 B1
= ls q
s5 B2 B1
B2 5 s6 B1 B1
s7 B1 B2
Autómatas Finitos - 101 -

PASO 3: π2 = ?; π2 = mls q,ls , s ,s q,ls ,s q,ls qr


6 1 2 7 0 4 5

l q
B1 = s0 , s4 s0
0
B2
1
B3
B = ls , s , s q s1 B1 B2

B = ls q
2 1 2 7 s2 B1 B2
s4 B2 B3

B = ls q
3 5 s5 B2 B1
s6 B1 B1
4 6
s7 B1 B2

PASO 4: π3 = ?; π3 = mls q,ls , s q,ls q,ls q,ls , s qr


2 0 4 5 6 1 7

l q
B1 = s0 , s4 0 1
B2 = ls , s q s0 B2 B3

= ls q
1 7 s1 B4 B2
B3 s2 B1 B2

= ls q
2
s4 B2 B3
B4 5 s5 B2 B4
= ls q
s6 B4 B1
B5 6 s7 B4 B2

PASO 5: π4 = ?; l
π 4 = { s2 },{ s0 , s4 },{ s5 },{ s1 , s7 },{ s6 } q
l q
B1 = s0 , s4 0 1

= ls , s q
s0 B2 B4
B2 s1 B5 B3
= ls q
1 7

B3 s2 B1 B3

= ls q
2
s4 B2 B4
B4 5 s5 B3 B5
= ls q
s6 B5 B1
B5 6 s7 B5 B3
- 102 - V. Ibañez Q. - Docente FINESI - UNA - Puno

l q
⇒ π 4 = π 3 = { s2 },{ s0 ,s4 },{ s5 },{ s1 ,s7 },{ s6 } , el algoritmo termina.
El autómata finito determinsta mínimo, se muestra en la siguiente como grafo dirigi-
do.

0 1
1
s0 B2 B4 B1 B5 0
B1
s4 B2 B4 1 0
s1 B5 B3 0
1
B2 0
s7 B5 B3
1 B4
B3 s2 B1 B3
B4 s5 B3 B5 B2 B3 0
B5 s6 B5 B1 1

EJERCICIOS:

1. Encuentre la partición correspondiente a la relación R y construya el grafo dirigi-


do de la máquina cociente que corresponde a la máquina de Moore, cuya tabla
de transición de estados se muestra a continuón:
a b c d e f g
0 a g f a a g g s0 = a
1 c d e d d f c T = {d, e}

2.

b
S0 a a
S2 S4
b b
b b a

S1 a S3 a S5
a,b
Autómatas Finitos - 103 -

0
0 0
1
S0 S2 S4
1 0
1 1
0
3.
0
S1 S3 1 S5
1

4.

1 S1 0
S2
S0 1 0
0 1 1
0
1 0
S5 S3
1 S4 0

5. Examine la máquina de Moore con el grafo dirigido. a) construya una gramática


G del tipo 3/L(G) = L(M), b) Expresar en notación BNF.

1 0
0
0 1 0 1
S0 S1 S2 S3 S4
1 0
0
1

6. Minimizar los autómatas de las siguientes diagramas de estados.

0
S0 S1
0
1 1
0
1 S2 S3 1
0
1 1
0
S4 S5
0
- 104 - V. Ibañez Q. - Docente FINESI - UNA - Puno
7. Minimizar los autómatas de las siguientes diagramas de estados.

0
S0 S1
0
1 1

S2 S3
1 0
0 1
0
1
S4 S5
0,1

8. Minimizar los autómatas de las siguientes diagramas de estados.

a,b
a a b b S6
S0 S1 S3 S5
b a a b
b
a,b b a
S2 S4 S7

9. Minimizar los autómatas de las siguientes diagramas de estados.

1 0 1 0 1
0 1
S0 S1 S2 S3 S4
0 1
0
Autómatas Finitos - 105 -
10. Minimizar los autómatas de las siguientes diagramas de estados.

1 0 1 0
0
S0 S1 S2 S3
0 1
0
1 S4
1
0 S5
1
0 1
S6
1 0

S7
- 106 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Lenguajes Libres de Contexto - 107 -

4
Lenguajes Libres de Contexto
Se estudia una forma de representación de lenguajes más potentes que los regula-
res. Los lenguajes libres de contexto (LC), sirve como mecanismo formal para expresar
la gramática de lenguajes de programación o los semiestructurados. Backus-Naur-
Form es esencialmente una gramática libre de contexto. Los DTDs usados para indicar
el formato permitido en documento XML son gramáticas que describen lenguajes
libres de contexto. Los lenguajes libres de contexto, se usan en biología computacional
para modelar las propiedades que se buscan en secuencias de ADN ó proteínas.

El estudio de este tipo de lenguajes deriva en la construcción semiautómatica de


Parsers (reconocedores) eficientes, los cuales son esenciales en la construcción de
compiladores e interpretes, así como para procesar textos semiestructurados. Una
herramienta conocida para esta construcción semiautómatica es LEX/YACC en C/
UNIX y sus distintas versiones para otros ambienes.

En términos teóricos, los lenguajes libres de contexto, van más allá de la memoria
finita sobre el pasado permitida a los regulares, puede almacenar una cantidad arbitra-
ria de información sobre el pasaod, siempre que esta información se acceda en forma de
pila.

4.1. GRAMÁTICAS LIBRES DE CONTEXTO (GLC).

Una gramática libre de contexto (GLC) es una serie de reglas de derivación,


producción o reescritura que indican que un cierto símbolo puede convertirse en una
secuencia de otros símbolos, los cuales a su vez pueden convertirse en otros, hasta
- 108 - V. Ibañez Q. - Docente FINESI - UNA - Puno
obtener una cadena del lenguaje. Es una forma particular de sistema de reescritura
restringida a que las reglas aplicables para reescribir un símbolo son independientes
de lo que tiene alrededor en la cadena que se está generando (libre de contexto).

Definición.- Una gramática libre de contexto (GLC) es una tupla G = (V , ∑, P, S ) .


Donde:
V: Es un conjunto finito de símbolos no terminales V ≠ 0 (se representa
con letras mayúsculas).
∑ : Es un conjunto finito de símbolos terminales V ∩ ∑ = φ .
S : Es el símbolo inicial o arranque S ∈V .
P ⊆ V × (V ∪ ∑)* es el conjunto de producciones de la gramática ó son
las reglas de derivación (conjunto finito).

Escribiremos las reglas de producción como: A → z o simplemente


G
A → z en
vez de (A,z). X → a, X ∈ V , a ∈ ∑ y se lee «X produce a».

Ejemplo: Considere la gramática G = (V , ∑, P, S ) , donde V, ∑ y P son definidos


como:
V = {a, b, S , A}, ∑ = {a, b}, P = {S → aAa, S → bAb, S → λ , A → SS}
Probar la cadena w = baabbb ∈ G

SOLUCIÓN:

S → aAa b A b

S → bAb S S

S →λ a A a b A b

A → SS S S S S

λ λ λ λ

S ⇒ bAb ⇒ bSSb ⇒ baAaSb ⇒ baSSaSb ⇒ baλλaSb


⇒ baλλaSb ⇒ baabAbb ⇒ baabSSbb ⇒ baabbb
Lenguajes Libres de Contexto - 109 -

Ejemplo: Considere la gramática del contexto libre G = (V , ∑, P, S ) donde:


V = {a, b, S , A, B}, ∑ = {a, b},
P = {S → aB, S → bA, A → a, A → aS , A → BAA, B → b, B → bS , B → A

Probar la cadena w = ababba ∈ G

SOLUCIÓN:
S → aB
S → bA
A→a
A → aS , A → BAA , B → b , B → bS , B → ABB
S ⇒ aB ⇒ abS ⇒ abaB ⇒ ababS
⇒ ababbA ⇒ ababba ∈ L (G )

Ejemplo: Sea G = (V , ∑, P, S ) y las siguientes producciones:


E → E + E E * E (E) a

S = E , V = {E}, P = {E → E + E , E → E * E , E → ( E ), E → a}
∑ = {+,*, (, ), a}
Encontrar la cadena w = (a + (a ))

SOLUCIÓN:
S ⇒ ( E ) ⇒ ( E + E ) ⇒ ( E + ( E )) ⇒ ( a + ( a ))

E
( )

E + E

( E )
a

a
- 110 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: Sea la gramática G = (V , ∑, P, S ) , cuya regla de producción:


S → aSa
S → bSb
S → λ Es contexto libre. Probar w = aabbaa
SOLUCIÓN:
S ⇒ aSa ⇒ aaSaa ⇒ aabSbaa ⇒ aabbaa
A través del árbol de derivación se tiene:
S

S
a a
S
a a

b S b
λ

Ejemplo: Sea la gramática G = (V , ∑, P, S ) , cuya regla de producción:


S → abB
A → aaBb
B → bbAa
A→λ Probar para la cadena w = ?

SOLUCIÓN:
S ⇒ abB ⇒ abbbAa ⇒ abbbaaBb ⇒ abbbaabbAa ⇒ abbbaabbaaB
⇒ abbbaabbaabbAaba ⇒ abbbaabbaabbaba
El Lenguaje de la gramática es:
{
L(G ) = ab(bbaa) n bba(ba) n n ≥ 0 }
Ejemplo (Derivación por la izquierda): Sea la gramática G = (V , ∑, P, S ) , cuya
regla de producción es:
1. S → AB
Lenguajes Libres de Contexto - 111 -

2. A → aaA
3. A→λ
4. B → Bb
5. B →λ

Probar para la cadena w = aab


SOLUCIÓN:
S ⇒ AB ⇒ aaAB ⇒ aaB ⇒ aaBb ⇒ aab y
S ⇒ AB ⇒ ABb ⇒ aaABb ⇒ aaAb ⇒ aab

Ejemplo (Derivación por la derecha): Sea la gramática G = (V , ∑, P, S ) , cuya re-


gla de producción es:
1. S → aAB
2. A → bBb
3. B→A
4. B →λ
Probar para la cadena w = abbbb

SOLUCIÓN:
S ⇒ aAB ⇒ aaAλ ⇒ abBb ⇒ abAb ⇒ abbBbb ⇒ abbbb
y la derivación por la izquierda:
S ⇒ aAB ⇒ abBbB ⇒ abAbB ⇒ abbBbbB ⇒ abbλbbB ⇒ abbbb

A través del árbol de derivación se tiene:

a A B
b b A
B
λ b B b
λ
- 112 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: Sea la gramática G = (V , ∑, P, S ) , cuya regla de producción es:


E → E + E E * E ( E ) − E id

S = E , V = {E}, P = {E → E + E , E → E * E , E → ( E ), E → − E, E → id }
Encontrar la cadena w = id + id * id

SOLUCIÓN:

DERIVACIÓN POR LA IZQUIERDA DERIVACIÓN POR LA DERECHA

E E

⇓ ⇓
E+E E+E

⇓ ⇓
id + E E+E*E
⇓ ⇓
id + E*E E + E * id

⇓ ⇓
id + id*E E + id * id
⇓ ⇓
id + id*id id + id*id

Definición: Dada una GLC G = (V , ∑, P, S ) , la relación lleva en un paso

⇒⊆ (V ∪ ∑) *
× (V ∪ ∑)* se define como: ∀x, y, ∀A → z ∈ P, xAy ⇒ xzy
G G

Definición: Definimos la relación lleva en cero o más pasos, ⇒*G , como la clau-

sura reflexiva y transitiva de ⇒ G .

Definición: Dada una GLC G = (V , ∑, P, S ) , definimos el lenguaje generado por

G, l(G ) como: {
l(G ) = w ∈ ∑ * s ⇒ *G w . }
Definición: Un lenguaje L es libre del contexto (LC) si existe una GLC G L = l(G ) ,
Lenguajes Libres de Contexto - 113 -
Ejemplo: Sea las producciones:
E→E+E
E → E*E
E → (E )
E→a

SOLUCIÓN:
E⇒a
E ⇒ ( E ) ⇒ (a)
E ⇒ ( E ) ⇒ (( E )) ⇒ ((a ))
E ⇒ E+E ⇒a+a
El lenguaje es: L(G ) = {a, (a ), ((a )), a + a,L}

Lema.- Si un árbol de derivación para G genera x ∈ (V ∪ ∑)* , entonces S ⇒ *G x .

Si S ⇒ *G x , existe un árbol de derivación que genera x.

Ejemplo: Sea las producciones: S → ( S ) S , S → λ


Desarrolle a través de árbol de derivación la cadena w = (())()

S S
( )
( S ) S ( S ) S
λ λ λ λ

Definición.- Una GLC G es ambigua, si existen dos árboles de derivación distinos


para G que generan una misma cadena w ∈ l(G ) .

Ejemplo: La siguiente GLC describe un subconjunto de expresiones aritméticas


correctas.
E→E+E
E → E*E
- 114 - V. Ibañez Q. - Docente FINESI - UNA - Puno

E → (E )
E →N
N →D
N → DN
D → 01 2 3 4 5 6 7 8 9
Generar la cadena w = 2 + 3 * 5 , por dos árboles de derivación distintos.

SOLUCIÓN:

E E

E + E * E

E E E E
N * + N

D N N N N D

2 D D D D 5

3 5 2 3

w = 2+3*5 w = 2+3*5
Son ambiguas

Observación.- Cuando se tiene una gramática ambigua, podemos intentar


desambiguarla, mediante escribir otra que genere el mismo lenguaje, pero que no sea
ambigua.

Ejemplo: La siguiente GLC genera el mismo lenguaje del ejemplo anterior, pero no
es ambigua. Las reglas de producción son:
E → E +T
E →T
T →T *F
T →F
F → (E )
F →N
N →D
Lenguajes Libres de Contexto - 115 -

N → DN
D → 01 2 3 4 5 6 7 8 9

Se la cadena w = 2 + 3 * 5 , sólo permite la derivación que queremos, pues he-


mos obligado a que primero se consideren los sumandos y luego los factores. La
técnica usada ha sido distinguir lo que son sumandos (o términos T) de factores (F),
de modo que se fuerza la precedencia *, +.

SOLUCIÓN:

E + T

T F
T *

F F N

N N D

D D 5

2 3

w = 2+3*5

Teorema.- Si L ⊆ ∑ es un lenguaje regular, entonces L es LC.


*

EJERCICIO:

Con las reglas de producción dadas en el ejemplo anterior generar las siguientes
cadena:
1) w = 25 + 3 *12
2) w = 15 *12 + 24
3) w = 07 + 03 * 2011
4) w = 28 + 05 *1981
- 116 - V. Ibañez Q. - Docente FINESI - UNA - Puno
4.2. AUTÓMATAS DE PILA (AP)

En el campo del reconocimiento de lenguajes, los autómatas finitos no permiten


resolver muchos problemas importantes, por ejemplo es imposible determinar la co-
rrección de un programa de ordenador escrito en cualquiera de los lenguajes de pro-
gramación habituales. Tampoco es posible detectar mediante un autómata finito, los
errores sintácticos de un documento escrito en cualquier lengua humana. La insufi-
ciencia de los autómatas finitos para estas tareas básicas se estudiará con lenguajes
regulares.

En ésta sección se introduce un nuevo tipo de máquinas computacionales, los


autómatas a pila, cuya complejidad es intermedia entre los dos tipos de máquinas de
Turing y como opuesto los autómatas finitos, los cuales permiten reconocer una colec-
ción de lenguajes del mayor interés. Se puede decir que todo autómata a pila es un caso
particular de máquinas de Turing, mientras todo autómata finito es un autómata a pila.

Los autómatas a pila están íntimamente ligados a procedimientos diferenciados y


útiles de análisis de las palabras de un lenguaje, que son apropiados para los llamados
lenguajes independientes del contexto, que permiten expresar la síntaxis de todos los
lenguajes de programación, de las construcciones gramaticales más importantes de la
práctica totalidad de las lenguas humanas que se hablan en el mundo y de otros
muchos lenguajes de relevancia en el mundo científico y tecnológico.

La principal diferencia entre los autómatas de pila y los autómatas finitos es que los
primeros cuentan con una pila en donde pueden almacenar información para recupe-
rarla más tarde. A continuación se representa el autómata de pila.

CINTA DE ENTRADA

...

Cabeza de lectura La cabeza se mueve en esta


dirección

Indicador de Estado
q0
q7 q1

q6 q2
PILA
(Memoria
q5 q3 intermedia)
q4

MECANISMO DE CONTROL
Lenguajes Libres de Contexto - 117 -
4.2.1. Autómata de Pila Determinista (APD).

Definición.- Un autómata de pila (AP) es una 7-upla o septupla de la forma


M = ( K , ∑, Γ, ∆, q0 , F , Z ) , tal que:
K : Es un conjunto finito de estados.
∑ : Es el alfabeto de símbolos de entrada de la máquina.
Γ : Es el alfabeto de la pila finito (alfabeto de símbolos de pila).
q0 ∈ K : Es el estado inicial del autómata.
Z ∈ Γ : Símbolo inicial de la pila.
F ⊆ K : Conjunto de estados finales ó conjunto de estados de aceptación.
∆ : Es la función de transición (conjunto finito) de ternas (estado, símbolo
de entrada, símbolo de pila), tal que: ∆ : K × (∑ ∪{λ })× Γ → K × Γ* .( )
Observación: Las transiciones ((q, x, α ), (q ' , β )) ∈ ∆ son las que presen-
tan como flechas rotuladas x, α , β que va de «q» a «q’», y se puede recorrer cuando
viene «x» en la entrada y se lee α (de arriba hacia abajo) en el tope de la pila, de modo
que al pasar a «q’» ese α se reemplaza por β .
x ...

α ∆(q, x,α) = (q', β)


Tope de la
pila
M
q

Este paso computacional representa: La unidad de control pasa a «q’» y se


mueve a la derecha en la cinta de entrada, borra el símbolo α del tope, escribe la
cadena β y pasa a escanear el nuevo tope.

x


 β

q’
- 118 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Estando en el estado «q», consume «x» de la entrada, saca α de la pila,
llega a un estado «q’», y coloca β en la pila.

Ejemplo: Sea el autómata de pila, construya las transiciones:

a,Z;AZ
a,A;AA b, A; ε

a, A; ε ε , Z; Z
q0 q1 q2

SOLUCIÓN:
M = ( K , ∑ , Γ , ∆ , q0 , F , Z ) , K = {q0 , q1 , q2 }, ∑ = {a, b}, Γ = {A, Z },
F = {q2 }, Z ∈ Γ (símbolo inicial de la pila).
Las transiciones son los siguientes:

((q0 , a, Z ), (q0 , AZ ) ), ((q0 , a, A), (q0 , AA) ), ((q0 , b, A), (q1 , ε


∆=
((q1 , b, A), (q1 , ε ) ), ((q1 , ε , Z ), (q2 , Z ) )

Ejemplo: Sea el autómata de pila, construya las transiciones:


x,ε; x y, x;ε
ε , Z; Z y, x;ε ε , Z; Z
q0 q1 q2 q3

SOLUCIÓN:
M = ( K , ∑ , Γ , ∆ , q0 , F , Z ) , K = {q0 , q1 , q2 , q3 }, ∑ = {x, y}, Γ = {x, Z },
F = {q1 , q2 , q3 }
Las transiciones son los siguientes:

 (( q 0 , ε , Z ), ( q1 , Z ) ), (( q1 , x , ε ), ( q1 , x ) ), (( q1 , y , x ), ( q 2 , ε
∆=
 (( q 2 , y , x ), ( q 2 , ε ) ), (( q 2 , ε , Z ), ( q 3 , Z ) )
Lenguajes Libres de Contexto - 119 -
Casos especiales de transición.
a) ∆ ( q , x , α ) = ( q ' , α ) el contenido de la pila no se altera.
b) ∆ ( q , x , α ) = ( q ' , ε ) el símbolo α en el tope de la pila se borra y el control
finito pasa a escanear el nuevo tope de la pila, que es el símbolo colocado inmediata-
mente debajo de α .
c) ∆ ( q , ε , α ) = ( q ' , β ) ésta es una transición ε o transición espontánea. El
símbolo sobre la cinta no se procesa y la unidad de control no se mueve a la derecha,
pero el tope α de la pila es reemplazado por la cadena β .

Observación:
i) Para garantizar el autómata de pila determinista, ∆ ( q, x, α ) y ∆ (q , ε , α )
con x ∈ ∑, q ∈ K y α ∈ Γ no pueden estar simultáneamente definidos (de lo contra-
rio el autómata tendrá una opción no determinismo).
ii) Las transiciones ε en un AFPD permiten que el autómata cambie el conteni-
do de la pila, sin procesar (o consumir) símbolos sobre la cinta de entrada.
iii) En el modelo AFDP se permite que la transición ∆ ( q, x, α ) no este definida,
para algunos valores x ∈ ∑, q ∈ K y α ∈ Γ .
iv) El determinismo se da cuando no hay alternativas de movimiento para el
mismo estado, usando la misma entrada y el mismo símbolo de pila.
v) La definición de la función de transición ∆ requiere que haya por lo menos
un símbolo en la pila. No hay computos con la pila vacía.

Ejemplo: Sea el autómata de pila M = ( K , ∑ , Γ , ∆ , q 0 , F ) , K = {1,2} ,

∑ = {a, b}, Γ = {a}, q0 = {}


1 , F = {1,2}.
Las transiciones son los siguientes:
∆ = {((1, a, λ ), (1, a) ), ((1, b, a), (2, λ ) ), ((2, b, a), (2, λ ) )}
Cuyo diagrama de transición es el siguiente:
a, λ; a b, a; λ
b, a; λ
1 2

Verificar la cadena w = aaabbb

SOLUCIÓN:
- 120 - V. Ibañez Q. - Docente FINESI - UNA - Puno

ESTADO PILA CADENA ACCIÓN O TRANSICIÓN EJECUTADA


1 ë aaabbb Se inicializa la pila
1 a aabbb ((1,a,ë),(1,a))
1 aa abbb ((1,a,ë),(1,a))
1 aaa bbb ((1,a,ë),(1,a))
2 aa bbb ((1,b,a),(2,ë))
2 a bbb ((2,b,a),(2,ë))
2 ë ë ((2,b,a),(2, ë)) Acepta la cadena

{
Cuyo lenguaje está dada por: L( M ) = a nb n n ≥ 0 }
Ejemplo: Con el ejemplo anterio verificar la cadena w = aaabb

SOLUCIÓN:

ESTADO PILA CADENA ACCIÓN O TRANSICIÓN EJECUTADA


1 ë aaabb Se inicializa la pila
1 a aabb ((1,a,ë),(1,a))
1 aa abb ((1,a,ë),(1,a))
1 aaa bb ((1,b,a),(2,ë))
2 aa b ((2,b,a),(2, ë))
2 a ë Falla, leyó todo pero la pila no esta vacía

Ejemplo: Sea el autómata de pila M = ( K , ∑ , Γ , ∆ , q 0 , F ) , cuyo diagrama de


transición está dada por:

b, λ ; b a,a; λ
a, λ ; a b,b; λ
λ, λ; λ
S f

Verificar la cadena w = abba

SOLUCIÓN:
Lenguajes Libres de Contexto - 121 -

ESTADO PILA CADENA ACCIÓN O TRANSICIÓN EJECUTADA


S ë abba ----
S a bba ((S,a,ë),(S,a))
S ba ba ((S,b,ë),(S,b))
f ba ba ((S, ë,ë),(f,ë))
f a abba ((f,b,b),(f, ë))
f ë ë ((f,a,a),(f, ë)) Acepta, ya que "f" es final

Ejercicio: Probar para la cadena w = abbcbba

Ejemplo: Dado el autómata de pila M = ( K , ∑ , Γ , ∆ , q 0 , F ) representado por:

x, λ; x y,x;λ
y, x; λ
S0 S1

a) Probar la cadena w = xxxyy ∈ l(M ) ¿Acepta o no?

SOLUCIÓN:

ESTADO PILA CADENA ACCIÓN O TRANSICIÓN EJECUTADA


S0 ë XXXYY se inicializa
S0 X XXYY ((S 0 ,X,ë),(S 0 ,X))
S0 XX XYY ((S 0 ,X,ë),(S 0 ,X))
S0 XXX YY ((S 0 ,Y,X),(S 1 , ë))
S1 XX YY ((S 1 ,Y,X),(S 1 , ë))
S1 X ë Falla: pues leyó todo, pero la pila no esta vacía.

b) Encontrar el lenguaje: L(M) = ?

l( M ) = {X nY n n ≥ m, n, m ∈ Ζ + }

Ejemplo: Con el diagrama de transición dada en seguida, encontrar:


a) La función de transición.
b) Verificar la cadena w = XXXYYY
c) Encontrar el L(M) = ?
- 122 - V. Ibañez Q. - Docente FINESI - UNA - Puno

x, λ; x y,x;λ
λ, λ; # y,x; λ λ, #;λ
1 2 3 4

SOLUCIÓN:
((1, λ , λ ), (2, # ) ), ((2, x, λ ), (2, x) ), ((2, y, x), (3, λ ) ),
a) ∆ =  
((3, y, x), (3, λ ) ), ((3, λ , # ), (4, λ ) ) 
b) w = xxxyyy

ESTADO PILA CADENA TRANSICIÓN EJECUTADA


1 ë XXXYYY Se inicializa la pila
2 # XXXYYY ((1, ë,,ë),(2,#))
2 #X XXYYY ((2,X,ë),(2,X))
2 #XX XYYY ((2,X,ë),(2,X))
2 #XXX YYY ((2,X,ë),(2,X))
3 #XX YYY ((2,Y,X),(3, ë))
3 #X YYY ((3,Y,X),(3, ë))
3 # ë ((3,Y,X),(3, ë))
4 ë ë ((3,Y,#),(4, ë))

{
c) L( M ) = X nY n n ∈ Ν }
Observación: (p,x,s;q,y). Leer un símbolo de entrada, extraer un símbolo de la
pila, insertar un símbolo en la pila y pasar a un nuevo estado. Otra forma de representar
la transición es: (p,x,y;q,z) tiene la etiqueta x,y;z.

4.2.1.1. Lenguaje aceptado por un autómata de pila.

Existen dos criterios para determinar el lenguaje aceptado por una autó-
mata de pila.
1) Sea M = ( K , ∑, Γ, ∆, q0 , F , Z ) un autómata de pila, entonces l(M ) ,
el lenguaje aceptado por un M por estado final es:
{
l ( M ) = x ∈ ∑ * ( q0 , x , Z ) − * ( p , ε , β ) }
Donde: p ∈ F , β ∈ Γ*
( q0 , x, Z ) : Configuración inicial.
Lenguajes Libres de Contexto - 123 -

( p, ε , β ) : Configuración de aceptación.

2) Sea la sextupla M = ( K , ∑, Γ, ∆, q0 , F , Z ) un autómata de pila, enton-


ces N (P ) , el lenguaje aceptado por un M por pila nula ó pila vacía es:

{ }
N ( P ) = x ∈ ∑ * ( q0 , x, Z ) − * ( p , ε , ε )
Donde: p ∈ K
N (P ) : Es el conjunto de entradas «x» que M puede consumir,
vaciando al mismo tiempo su pila.

Ejemplo: Sea el autómata de pila, cuyo diagrama se presenta a continuación.

a,Z;AZ
a,A;AA b, A; ε

b, A;ε ε , Z; Z
q0 q1 q2

Probar si w = aabb se acepta.

SOLUCIÓN:

El procesamiento de la cadena a través de la configuración es el siguiente:


(q0 , aabb, Z ) −(q0 , abb, AZ ) −(q0 , bb, AAZ ) −(q1 , b, AZ ) −(q1 , ε , Z ) −(q2 , ε ,
Por consiguiente q2 ∈ F , entonces es una configuración de aceptación, por lo
tando w es aceptada por el autómata de pila.

Ejemplo: Probar para w = aabbb


(q0 , aabbb, Z ) −(q0 , abbb, AZ ) −(q0 , bbb, AAZ ) −(q1 , bb, AZ ) −(q1 , b, Z ) −
La cadena no se ha procesado completamente y ∆ ( q 2 , b, Z ) no es una configura-
ción de aceptación, por lo tanto «w» no es aceptada, la razón es la siguiente:
(q1 , b, Z ) −(q1 , εb, Z ) −(q2 , b, Z )
- 124 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Nota: Si en el autómata de pila está la transición (q1 , ε , Z ) y la transición


(q1 , b, Z ) el autómata no será determinista, además por que si estuviera se podría
tener una solución no determinista.

Ejemplo: Encontrar el lenguaje para el autómata de pila.

SOLUCIÓN:
La idea es escanear las «a»s en la pila y borrar una «a» por cada «b» que sea leída
{ }
enla cinta: L = a i b i i ≥ 1 , sobre el alfabeto ∑ = {a, b} .
∆ (q0 , a, Z ) = (q0 , AZ )
∆ (q0 , a, A) = (q0 , AA)
∆(q0 , b, A) = (q1 , ε )
∆(q1 , b, A) = (q1 , ε )
∆(q1 , ε , Z ) = (q2 , Z )

Ejemplo: Sea la cadena w = aaabb, verificar si es aceptado por el autómata de


pila:
(q0 , aaabb, Z ) −(q0 , aabb, AZ ) −(q0 , abb, AAZ ) −(q0 , bb, AAAZ ) −(q1 , b, AAZ ) −

se comprueba que q1 ∉ F , a pesar que la cadena se procesó completamente


(q1 , ε , AZ ) no es una configuración de aceptación, por consiguiente w no es acepta-
do.

Ejemplo (autómata por vaciado de pila). Se tiene el AFDP, pero por vaciado de
pila de manera fácil, en vez de la transición ∆(q1 , ε , Z ) = (q2 , Z ) , usamos
∆( q1 , ε , Z ) = ( q2 , ε ) , a continuación se presenta el diagrama de transición de estados:
Lenguajes Libres de Contexto - 125 -

a,Z;AZ
a,A;AA b, A; ε

b, A;ε ε,Z;ε
q0 q1 q2

∆ (q0 , a, Z ) = (q0 , AZ )
∆ (q0 , a, A) = (q0 , AA)
∆(q0 , b, A) = (q1 , ε )
∆(q1 , b, A) = (q1 , ε )
∆ (q1 , ε , Z ) = (q2 , ε )

Sea w = aabb, realice la configuración:


(q0 , aabb, Z ) −( q0 , abb, AZ ) −( q0 , bb, AAZ ) −(q1 , b, AZ ) −(q1 , ε , Z ) −( q2 , ε ,
Se procesa la palabra por completo y se vacía la pila.

Ejemplo: Dado el autómata de pila siguiente:


x,ε; x y, x;ε
ε , Z; Z y, x;ε ε , Z; Z
q0 q1 q2 q3

∆ ( q 0 , ε , Z ) = ( q1 , Z )
∆ ( q1 , x , ε ) = ( q1 , x )
∆(q1 , y, x) = (q2 , ε )
∆(q2 , y, x) = (q2 , ε )
∆ ( q 2 , ε , Z ) = ( q3 , Z )

a) Realizar la configuración para la cadena w = xxx.


- 126 - V. Ibañez Q. - Docente FINESI - UNA - Puno

(q0 , xxx, Z ) −(q1 , xxx, Z ) −(q1 , xx, xZ ) −(q1 , x, xxZ ) −(q1 , ε , xxxZ ) , por lo que la
pila quedó llena xxxz y el autómata en el estado q1 reconoció por completo la cadena.

b) Sea la cadena w = xxy.


(q0 , xxy, Z ) −(q1 , xxy, Z ) −(q1 , xy, xZ ) −(q1 , y, xxZ ) −(q2 , ε , xZ ) , la pila no que-
dó del todo vació (quedó xz), se reconoció toda la cadena completa y el autómata
quedó en un estado de aceptación q2 .

c) Sea la cadena w = xxyy.


(q0 , xxyy, Z ) −(q1 , xxyy, Z ) −(q1 , xyy, xZ ) −(q1 , yy, xxZ ) −(q2 , y, xZ ) −(q2 , ε , Z )
, la
cadena es procesada por completo; en la pila queda el símbolo inicial de pila, y por
tanto la cadena es aceptada.

d) Sea la cadena w = xyy.


( q 0 , xyy , Z ) − ( q1 , xyy , Z ) − ( q1 , yy , xZ ) − ( q 2 , y , Z ) , A pesar de que está en un esta-

do de aceptación la cadena no se terminó de escanear, la transición (q2 , y, Z ) no está


definida en este autómata. Por consiguiente la cadena no es reconocida por el autóma-
ta.
{
e) El lenguaje del AFDP es: L = x n y n n, m ≥ 0, n ≥ m }

4.2.2. Autómatas con Pila No Determinista (AFPN).

Definición.- Un autómata finito con pila no determinista (AFPN) consta de


los mismos parámetros de un autómata de pila determinsta:
M = (K , ∑, Γ, ∆, s, F , Z ) , donde la función de transición ∆ es de la for-
ma: ∆ : K × (∑ ∪{λ })× Γ → Pf ( K × Γ* ) , donde: Pf ( K × Γ* ) es un conjunto de
subconjuntos finitos de K × Γ* .
Para q ∈ K , a ∈ ∑ ∪{λ} y s ∈ Γ
*

∆(q, a, s ) = {(q1 , γ 1 ), (q2 , γ 2 ), (q3 , γ 3 ),L , (qn , γ n )}


Lenguajes Libres de Contexto - 127 -

Donde: γ i ∈ Γ* .

Observación: A diferencia de los AFDP, en los AFPN las transiciones ε,


∆ (q , ε , s ) no tienen restricción alguna.

Ejemplo: Dado el AFPN, encontrar el lenguaje L.

a,Z;AZ
a,A;AA b, A; ε
b, A; ε
q0 q1

ε , Z; Z ε ,Z;Z
q2

SOLUCIÓN: Las transiciones son las siguiente:


∆(q0 , a, Z ) = (q0 , AZ )
∆( q0 , ε , Z ) = ( q2 , Z ) (acepta ε )
∆(q0 , a, A) = (q0 , AA)
∆ ( q0 , b, A) = ( q1 , ε )
∆(q1 , b, A) = (q1 , ε )
∆(q1 , ε , Z ) = (q2 , Z )

Tabla de transición de Estados:


? (a, Z) (a, A) (å,Z ) (b, A)
q0 (q0,AZ) (q0,AA) (q2, Z) (q1, å)
q1 (q2, Z) (q1, å)
q2
- 128 - V. Ibañez Q. - Docente FINESI - UNA - Puno

{ }
El lenguaje es el siguiente: L = a i b i i ≥ 0 sobre ∑ = {a , b} .

Observación: En un AFPN se da la presencia simultánea de: ∆ ( q 0 , a , Z ) y

∆(q0 , ε , Z ) . Se puede construir un AFPN por el criterio de pila vacía:


a) Quitamos la transición ∆ (q0 , ε , Z ) = (q2 , Z )

b) Agregamos la transición ∆ (q0 , ε , Z ) = (q1 , Z )


c) Hacemos un cambio en la transición ∆(q1 , ε , Z ) = (q2 , Z ) por

∆(q1 , ε , Z ) = (q2 , ε ) , el nuevo AFPN, se presenta a continuación:

a,Z;AZ
a,A;AA b , A; ε
ε,Z;Z
b , A; ε ε , Z ;ε
q0 q1 q2

La cadena vacía se reconoce con las siguientes transiciones:


(q0 , ε , Z ) −(q1 , ε , Z ) −(q2 , ε , ε )

Ejemplo: Probar para la cadena w = aabb.


(q0 , aabb, Z ) −(q0 , abb, AZ ) −(q0 , bb, AAZ ) −(q1 , b, AZ ) −(q1 , ε , Z ) −(q2 , ε , ε )

Ejemplo: Se puede construir un AFPN que reconozca: {ww R w ∈ ∑*} para


∑ = {a , b} .
El no determinismo se usa para permitirle al autómata adivinar cuál es la mitad de
la cadena de entrada, y para esto se requiere los siguientes procedimientos:
1) Si acierta, procede a comparar el resto de la cadena de entrada con los símbo-
los acumulados en la pila.
2) Si no acierta el autómata seguirá acumulando símbolos en la pila y no habrá
aceptación.
Lenguajes Libres de Contexto - 129 -

a,Z;AZ
a,A;AA
b,Z;BZ
b,B;BB b, B;ε
a,B;AB a , A; ε
b,A;BA b, B;ε
q0
a , A; ε q1

ε,Z;Z ε ,Z;Z
q2

∆ (q0 , a, Z ) = (q0 , AZ )
∆(q0 , b, Z ) = (q0 , BZ )
∆( q0 , ε , Z ) = (q2 , Z ) acepta ε
∆( q0 , a, A) = {( q0 , AA), ( q1 , ε )}
∆ ( q0 , b, B ) = {( q0 , BB ), (q1 , ε )}
∆(q0 , a, B ) = (q0 , AB)
∆(q0 , b, A) = (q0 , BA)
∆ ( q1 , a , A) = ( q1 , ε )
∆ ( q1 , b, B ) = ( q1 , ε )
∆( q1 , ε , Z ) = ( q2 , Z )

Ejemplo: Sea el AFPND M = ( K , ∑, Γ, ∆, q0 , F , Z ) , ∑ = {a, b} , F = {q1} ,


Γ = {0,1, Z } , cuyas funciones de transiciones son las siguientes:
∆ ( q 0 , λ , Z ) = ( q1 , Z )
∆ ( q0 , a , Z ) = ( q0 ,0 Z )
∆(q0 , b, Z ) = ( q0 ,1Z )
∆ ( q 0 , a ,0 ) = ( q 0 ,00 )
- 130 - V. Ibañez Q. - Docente FINESI - UNA - Puno

∆ ( q 0 , b ,0 ) = ( q 0 , λ )
∆ ( q 0 , a ,1) = ( q 0 , λ )
∆(q1 , b,1) = (q0 ,11)

a) Construya el diagrama de transiciones;


b) Verificar para la cadena w = baab
c) Encuentre el lenguaje del AFPND.

SOLUCIÓN:
a)

a,Z;0Z
b,Z;1Z
a,0;00
b ,0; λ
a ,1; λ
b,1;11 λ, Z ;Z

q0 q1

b) w = baab
( q0 , baab , Z ) − ( q0 , aab ,1Z ) − ( q0 , ab , Z ) − ( q0 , b,0 Z ) − ( q0 , λ , Z ) − ( q1 , λ , Z ) la cadena
es aceptada.

{
c) El lenguaje está expresado como: L = w ∈ {a , b}* na ( w) = nb ( w) }
EJERCICIO:
1.- Qué lenguaje es aceptado por AFPND, K = {q0 , q1 , q2 } , ∑ = {a, b} ,
F = {q2 } , Γ = {a, b, Z} , cuyas funciones de transiciones son las siguientes:
∆( q0 , a, Z ) = {( q1 , a), ( q2 , λ )} ∆(q1 , b, b) = (q1 , b)
∆(q1 , b, a) = (q1 , b) ∆(q1 , a, b) = (q2 , λ )
a) Construya el diagrama de transición.
b) Encuentre el lenguaje del autómata
c) Encuentre la cadena para el autómata.
Lenguajes Libres de Contexto - 131 -
4.2.3. Autómatas con Pila y LIC.

Teorema.- Si L = L(P) para algún autómata con pila AFPN P, entonces L=N(P’)
para algún AFPN P’, entonces P’ acepta por pila vacía lo que P acepta por estado final.

Sea M = (K , ∑, Γ, ∆, s, F , Z ) , P’ se diseña modificando P de tal manera


que vacíe su pila cuando P haya aceptado una cadena de entrada.
M ' = {K ∪ { p0 , p}, p0 , ∑, Γ ∪ {Z 0 }, Z 0 , δ }
a) Se añaden p0 estado inicial y p.
b) También se añade Z 0 es el nuevo símbolo de pila.
c) Se mantienen todas las transiciones de M y se añaden las siguientes:
δ ( p0 , ε , Z 0 ) = {( q0 , ZZ 0 )}
δ ( q, ε , Y ) = {( p, Y )}, ∀q ∈ F , Y ∈ Γ ∪ {Z 0 }
δ ( p, ε , Y ) = {( p, Y )}, ∀Y ∈ Γ ∪ {Z 0 }

Ejemplo: Sea el AFPN por el criterio de estado final que reconoce todas las
cadenas sobre ∑ = {a, b} que tienen igual número de «a»es que «b»es, F = {q1} ,
cuyo diagrama de transición es el siguiente:

a,Z;AZ
b,Z;BZ
a,A;AA
b, B; BB
a , B; ε
b, A;ε ε,Z;Z

q0 q1

Las transiciones son las siguientes:


∆(q0 , a, Z ) = (q0 , AZ )
∆(q0 , b, Z ) = (q0 , BZ )
∆(q0 , a, A) = (q0 , AA)
- 132 - V. Ibañez Q. - Docente FINESI - UNA - Puno

∆( q0 , b, B ) = (q0 , BB )
∆ ( q0 , a , B ) = ( q0 , ε )
∆(q0 , b, A) = (q0 , ε )
∆(q0 , ε , Z ) = (q1 , Z )

Se podría de manera intuitiva la transformación del AFPN ({L( P )} → AFPN ({N ( P )})

a,Z;AZ
b,Z;BZ
a,A;AA
b, B; BB
a, B; ε
b, A;ε ε , Z;ε

q0 q1

La transformación AFPN ({L ( P )} → AFPN ({ N ( P )}) , se puede realizar de mane-


ra más rigurosa:
a) Agregamos p0 , p y Z 0
b) Las mismas transiciones de P.
∆ ( p0 , ε , Z 0 ) = (q0 , ZZ 0 )
∆(q0 , a, Z ) = (q0 , AZ )
∆(q0 , b, Z ) = (q0 , BZ )
∆(q0 , a, A) = (q0 , AA)
∆( q0 , b, B ) = (q0 , BB )
∆ ( q0 , a , B ) = ( q0 , ε )
∆(q0 , b, A) = (q0 , ε )
∆(q0 , ε , Z ) = (q1 , ε )
Lenguajes Libres de Contexto - 133 -

∆ (q1 , ε , a ) = ( p, a )
∆(q1 , ε , b) = ( p, b)
∆(q1 , ε , Z ) = ( p, Z )
∆(q1 , ε , Z 0 ) = ( p, Z 0 )
∆ ( p, ε , A) = ( p, ε )
∆ ( p, ε , B ) = ( p , ε )
∆ ( p, ε , Z ) = ( p, ε )
∆ ( p, ε , Z 0 ) = ( p, ε )

Ejemplo: Verificar la cadena siguiente: w = abab.

SOLUCIÓN:
( p0 , abab, Z 0 ) −(q0 , abab, ZZ 0 )
−(q0 , bab, AZZ0 )

− ( q 0 , ab , ZZ 0 )

−(q0 , b, AZZ 0 )

−(q0 , ε , ZZ 0 )
−(q1 , ε , ZZ 0 )
−( p, ε , ZZ 0 )

−( p, ε , Z 0 )
−( p , ε , ε )

( p 0 , abb , Z 0 ) − ( q 0 , abb , ZZ 0 )
− ( q 0 , bb , AZZ 0 )

− ( q 0 , b , ZZ 0 )
- 134 - V. Ibañez Q. - Docente FINESI - UNA - Puno

−(q0 , ε , BZZ 0 )

Como se leyó toda la cadena y la pila no quedó vacía, por tanto «abb» es
rechazada por el autómata de pila.

Teorema.- Si L = N(P) para algún autómata de pila AFPN P, entonces L = L(P’)


para algún AFPN P’. Esto es P’ acepta por estado final, lo que P acepta por pila vacía.

Sea P = ( K , ∑, Γ, ∆ , s , Z ) entonces el autómata:

P ' = ( K ∪ { p0 , q f }, ∑, Γ ∪ {Z 0 }, p0 , Z 0 , {q f }, δ )
Se construye a partir de P siguiendo los siguientes pasos:
1) Se añaden dos nuevos estados p0 y qf .
2) Se añaden a Γ,{Z 0 } , este será el símbolo inicial de la pila.
3) Se mantienen todas las transiciones de P, añadiendo las siguientes transicio-
nes:
δ ( p0 , ε , Z 0 ) = {( q0 , ZZ 0 )}
δ ( q, ε , Z 0 ) = {( q f , Z 0 )}, ∀q ∈ K

GIC Y AUTÓMATA DE PILA

GRAMÁTICA AP PILA VACÍA

AP ESTADO
FINAL

Observación: Los lenguajes aceptados por los AFPN son exactamente los len-
guajes independientes de contexto.

Teorema.- Dada una GIC G, existe un AFPN P tal que L(G) = L(P).
Lenguajes Libres de Contexto - 135 -
Demostración:
Para una G = (V , ∑, S , P ) se construye un AFPN que utiliza la pila para simular la
derivación de cadenas realizadas por G. P requiere de sólo tres estados, independien-
tes del número de variables y producciones de G.
P = ( K , ∑, Γ, F , q0 , Z , ∆ ), K = {q0 , q1 , q2 },
F = {q2 }, Γ = ∑ ∪V ∪ {Z }
La función de transición ∆ , se define así:
1) ∆ ( q0 , ε , Z ) = {( q1 , SZ )} , transición ε en la cual P coloca a S en el tope de
la pila para iniciar el proceso de reconocimiento de la cadena.
2) Para cada A ∈ V , ⇒ ∆(q1 , ε , A) = {( q1 , u )}, A → u es una producción de
la gramática G. Mediante estas transiciones se simulan las derivaciones, si en el tope
de la pila está A y en la derivación está A → u , el tope de la pila A se sustituye por u.
3) Para cada a ∈ ∑ , se tien ∆(q1 , a, a) = {(q1 , ε )} P borra los terminales del
tope al consumirlos sobre la cinta de entrada.
4) ∆(q1 , ε , Z ) = {(q2 , Z )} P ingresa al estado de aceptación q2 cuando detec-
ta el marcador de fondo Z.

Ejemplo: Considere la gramática G = (V , ∑, S , P ) con V = {S , a, b, c}, ∑ = {a, b, c} y


las reglas de producción P = {S → aSa , S → bSb, S → c} , el cual genera el len-
{ }
guaje L(G ) = wcw R w ∈ {a, b}* . El autómata de pila es M = ({ p, q}, ∑, V , ∆, p, {q})
con las funciones de transiciones siguientes:
∆ = {(( p, ε , ε ), (q, S )), T1
((q, ε , S), (q, aSa)), T2
((q, ε , S ), (q, bSb)), T3
(( q , ε , S ), ( q, c )), T4
((q, a, a ), (q, ε )), T5
((q, b, b), (q, ε )), T6
((q, c, c), (q, ε ))} T7
a) Construya el diagrama de transición:
- 136 - V. Ibañez Q. - Docente FINESI - UNA - Puno
b) Verifique para la cadena w = abbcbba.

SOLUCIÓN:

ε , S; aSa
ε ,ε ; S ε , S;bSb
ε , S; c

a) p q

a,a;ε
b,b; ε
c,c;ε
b) w = abbcbba.

Estado Cadena Pila Transición ejecutada


p abbcbba å ----
q abbcbba S ((p,å,å),(q,S)) T1
q abbcbba aSa ((q,å,S),(q,aSa)) T2
q bbcbba Sa ((q,a,a),(q,å)) T5
q bbcbba bSba ((q,å,S),(q,bSb)) T3
q bcbba Sba ((q,b,b),(q,å)) T6
q bcbba bSbba ((q,å,S),(q,bSb)) T3
q cbba Sbba ((q,b,b),(q,å)) T6
q cbba cbba ((q,å,S),(q,c)) T4
q bba bba ((q,c,c),(q,å)) T7
q ba ba ((q,b,b),(q,å)) T6
q a a ((q,b,b),(q,å)) T6
q å å ((q,a,a),(q,å)) T5

REGLAS:
1) (( p, ε , ε ), (q, S ))
2) (( q, ε , A), ( q, x )) para cada regla A→ x
3) (( q , a , a ), ( q , ε )) para cada a∈∑.
Lenguajes Libres de Contexto - 137 -
Ejemplo: Sea G una gramática independiente del contexto (GIC), cuyas produc-
ciones son:
S → aSa
S → bSb
S →c
SOLUCIÓN:
{
Esta gramática reconoce: L ( G ) = wcw I w ∈ {a , b}* }
Entonces el autómata de pila que reconoce esta gramática es la siguiente:
∆ (q0 , ε , Z ) = {(q1 , SZ )}
∆(q1 , ε , S ) = {(q1 , aSa), (q1 , bSb), (q1 , c)}
∆(q1, a, a) = ∆(q1, b, b) = ∆(q1, c, c) = {(q1, ε )}
∆(q1 , ε , Z ) = {(q2 , ε )} , cuyo diagrama de transición es el siguiente:

ε , S; aSa
ε , Z ; SZ ε , S;bSb
ε , S; c

q0 q1

a,a;ε
b,b;ε
c,c;ε
Probar para la cadena w = abbcbba.
(q0 , abbcbba, Z ) −(q1 , abbcbba, SZ )
−(q1 , abbcbba, aSaZ )

−(q1 , bbcbba, SaZ )


− ( q1 , bbcbba , bSbaZ ) − ( q1 , bcbba , SbaZ ) − ( q1 , bcbba , bSbbaZ )

−(q1 , cbba, SbbaZ ) −(q1 , cbba, cbbaZ ) −(q1 , bba, bbaZ )


− ( q1 , ba , baZ ) − ( q1 , a , aZ ) − ( q1 , ε , Z ) − ( q 2 , ε , ε )
- 138 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Definición.- Sea la gramática G = (V , ∑, S , P ) en la FNG se puede construir un


AFPN tal que L(G) = N(P). P = ( K , ∑, Γ, q0 , Z , ∆) Donde la función de transición
∆ se define como sigue:
1) A → aZ , a ∈ ∑, A ∈ V , Z ∈ V * ⇒ ∆(q, a, A) = {(q, Z )}
2) S → ε , entonces ∆ ( q , ε , S ) = {( q , ε )}

Ejemplo: Sea la gramática G que reconoce el lenguaje, podemos obtener un


AFPN, tal que L(G) = N(P).
L = {x n y m z k n, m ≥: k = n + m}, cuyas reglas de producción son:
S → xAz
S → yBz
S →ε
A → xAz
A→ B
A→ε
B → yBz
B →ε
Se C = z y reemplazamos, se obtiene:
S → xAC
S → yBC
S →ε
A → xAC
A→ B
A→ε
B → yBC
B →ε
C→z
Quitamos la regla de redenominación para obtener la FNG de A:
Lenguajes Libres de Contexto - 139 -

S → xAC
S → yBC
S →ε
A → xAC
A → yBC
A→ε
B → yBC
B →ε
C→z

Construimos el AFPN:
∆ ( q, x, S ) = {( q , AC )}
∆ ( q, y , S ) = {( q , BC )}
∆ ( q , ε , S ) = {( q , ε )}
∆( q, x, A) = {(q, AC )}
∆ ( q, y , A) = {( q, BC )}
∆ ( q , ε , A) = {( q, ε )}
∆(q, y, B) = {(q, BC)}
∆ ( q, ε , B ) = {( q, ε )}
∆ ( q , z , C ) = {( q , ε )}

Probar para la cadena w = xxyzzz.


(q, xxyzzz, S ) −(q, xyzzz, AC )
− ( q , yzzz , ACC )
−(q, zzz, BCCC )

−( q, zzz , CCC ) −( q, zz , CC ) −( q, z , C ) −(q, ε , ε )


acepta la cadena el autómata de pila.
- 140 - V. Ibañez Q. - Docente FINESI - UNA - Puno
Probar para la cadena w = xxyzz.
( q , xxyzz , S ) − ( q , xyzz , AC )
− ( q , yzz , ACC )
− ( q , zz , BCCC )

− ( q , zz , CCC ) − ( q , z , CC ) − ( q , ε , C )
se leyó la cadena por completo, pero la pila no quedó vacía; por
lo tanto la cadena no es reconocida.

4.2.4. Forma Normal de Chomsky.

Una de las ventajas de clasificar los lenguajes en función de su gramática es


que estas clasificaciones proporcionan detalles con respecto a las estructuras de ca-
denas que pueden aparecer en los lenguajes correspondientes. Sin embargo, la flexibi-
lidad que permiten las gramáticas independientes del contexto impone pocas restric-
ciones a las posibles estructuras de cadenas que pueden encontrarse en los lenguajes
independientes del contexto.

Comenzamos considerando la necesidad de tener regla λ en una gramática


independiente del contexto. Si el lenguaje generado por la gramática contiene la cade-
na vacía, entonces debe aparecer cuando menos una regla λ en la gramática; de lo
contrario, no habría manera de derivar la cadena vacía del símbolo inicial de la gramá-
tica.

Procedimiento:
1) Para cada estado de aceptación «f» de M, forme la regla de reescritura
s → t , λ , f , donde «t» es el estado inicial de M.
Las reglas de reestructura obtenidas en el paso 1 aseguran que cual-
quier derivación que utilice esta gramática comenzará sustituyendo el símbolo inicial
de la gramática por un objetivo principal del autómata.
2) Para cada estado «p» en M, forme la regla de reestructura p, λ, p → λ .
3) Para cada transición (p,x,y;q,z) de M (donde y no es λó y ≠ λ ), genere
una regla de reescritura p, y, r → x q, z, r para cada estado «r» de M.
Las reglas generadas por el paso 3, indican que el objetivo de pasar de
un estado «p» a un estado «r» eliminando «y» de la pila puede lograrse si se pasa
Lenguajes Libres de Contexto - 141 -
primero a un estado «q» mientras que se lee «x» de la entrada y se intercambia «z» por
«y» en la pila (usando la transición (p,x,y;q,z) y luego intentando pasar del estado «q»
al estado «r» a la vez que se elimina «z» de la pila.

4) Para cada transición de la forma ( p, x, λ ; q, z ) , genere todas las reglas de

reescritura de la forma p, w, r → x q, z, k k , w, r , donde «w» es un símbolo de


pila ó λ ; mientras que «k» y «r» (que pueden ser iguales) son estados de M.
Las reglas de reescritura construidas en el paso 4 reflejan que el objetivo
de pasar de un estado «p» a un estado «r» a la vez que se elimiina «w» de la pila puede
lograrse si primero se pasa al estado «q» mientras se lee «x» de la entrada y se inserta
«z» en la pila (por medio de la transición ( p, x, λ ; q, z ) y luego se intenta pasar del
estado «q» al estado «r» a través de un estado «k», a la vez que se elimina «z» y «w»
de la pila.

Observe que las reglas de reescritura construidas enlos pasos 1 al 4


forman una Gramática Independiente del Contexto (GIC).

Ejemplo: Dado el autómata de pila:

b, λ; λ
c, λ; c c,c; λ

f g h

a) Determinar el l(M ) .
b) Encontrar una gramática independiente del contexto G l (G ) = l ( M ) .

SOLUCIÓN:
a) El lenguaje del autómata de pila es: l( M ) = {cb n c n ≥ 0}
b) Desarrollo de la GIC.
Paso 1: s → f , λ, h

Paso 2: f , λ, f → λ

g, λ, g → λ
- 142 - V. Ibañez Q. - Docente FINESI - UNA - Puno

h, λ , h → λ

Paso 3: b, λ ; λ
c , c; λ

g h

Para ( g , c, c; h, λ )
g , c, f → c h, λ , f

g , c, g → c h, λ , g

g , c , h → c h, λ , h
Paso 4: ( p , x, λ ; q , z ) genere todas las reglas de reescritura de la forma:

p, w, r → x q, z, k k , w, r , Γ = {c, λ}, ∑ = {b, c}

Para ( f , c, λ ; g , c) ó ∆ ( f , c, λ ) = ( g , c )

f , λ , f → c g , c, f f , λ, f f , c, f → c g , c, f f , c, f
f , λ , f → c g , c, g g , λ , f f , c, f → c g , c, g g , c, f
f , λ , f → c g , c, h h, λ , f f , c, f → c g , c, h h, c, f

f , λ , g → c g , c, f f , λ, g f , c, g → c g , c, f f , c, g
f , λ , g → c g , c, g g , λ , g f , c, g → c g , c, g g , c, g
f , λ , g → c g , c , h h, λ , g f , c, g → c g , c, h h, c, g

f , λ , h → c g , c, f f , λ, h f , c, h → c g , c, f f , c, h
f , λ , h → c g , c, g g , λ , h f , c, h → c g , c, g g , c, h
f , λ , h → c g , c , h h, λ , h f , c, h → c g , c, h h, c, h
Lenguajes Libres de Contexto - 143 -

Para ( g , b , λ ; g , λ )

g, λ, f → b g, λ, f f , λ, f g , c, f → b g , λ , f f , c, f
g, λ, f → b g, λ, g g, λ, f g , c , f → b g , λ , g g , c, f
g , λ , f → b g , λ , h h, λ , f g , c, f → b g , λ , h h, c, f

g, λ, g → b g, λ, f f , λ, g g , c, g → b g , λ , f f , c, g
g, λ, g → b g, λ, g g, λ, g g , c, g → b g , λ , g g , c, g
g , λ , g → b g , λ , h h, λ , g g , c , g → b g , λ , h h, c , g

g, λ, h → b g, λ, f f , λ, h g , c, h → b g , λ , f f , c, h
g, λ, h → b g, λ, g g, λ, h g , c , h → b g , λ , g g , c, h
g , λ , h → b g , λ , h h, λ , h g , c , h → b g , λ , h h, c, h

Ejemplo: Dado el autómata de pila, construya una gramática independiente del


contexto.

g , λ; g
c, λ; c λ,c; λ

r s t

f ,g;λ
SOLUCIÓN:
Paso 1: v0 → r, λ, t

Paso 2: r, λ , r → λ

s, λ , s → λ

t, λ , t → λ
- 144 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Paso 3: Para ( s , f , g ; s , λ ), g≠λ


s, g , r → f s, λ , r

s, g , s → f s, λ , s

s, g , t → f s , λ , t
Para ( s , λ , c ; t , λ ), c≠λ
s, c, r → λ t , λ , r

s, c, s → λ t , λ , s

s, c, t → λ t , λ , t

Paso 4: Para ( r , c, λ ; s, c )
r , c, r → c s, c, r r , c, r r , c, t → c s, c, r r , c, t
r , c, r → c s, c, s s, c, r r , c, t → c s, c, s s, c, t
r , c, r → c s, c, t t , c, r r , c, t → c s, c, t t, c, t

r , c, s → c s, c, r r , c, s
r , c, s → c s, c, s s, c, s
r , c, s → c s, c, t t , c, s

r , g , r → c s, c, r r , g , r r , g , t → c s, c, r r , g , t
r , g , r → c s, c, s s, g , r r , g , t → c s, c, s s, g , t
r , g , r → c s, c, t t , g , r r , g , t → c s, c, t t , g , t
Lenguajes Libres de Contexto - 145 -

r, g , s → c s, c, r r, g , s
r , g , s → c s, c, s s, g , s
r, g , s → c s, c, t t, g , s

r , λ , r → c s, c, r r, λ , r r , λ , t → c s, c, r r , λ , t
r , λ , r → c s, c, s s, λ , r r , λ , t → c s, c, s s, λ , t
r , λ , r → c s, c, t t, λ , r r , λ , t → c s, c, t t , λ , t

r , λ , s → c s, c, r r , λ , s
r , λ , s → c s, c, s s, λ , s
r , λ , s → c s, c, t t , λ , s

Para (s, g , λ ; s, g )

s , c, r → g s , c, r r , c , r s , c, t → g s , c , r r , c , t
s , c, r → g s , c, s s , c , r s , c, t → g s , c , s s , c, t
s , c, r → g s , c, t t , c, r s , c, t → g s , c , t t , c, t

s , c, s → g s , c, r r , c, s
s , c, s → g s , c, s s , c, s
s , c, s → g s , c, t t , c, s

s, g, r → g s, g, r r, g, r s, g , t → g s, g , r r , g , t
s, g, r → g s, g, s s, g , r s, g , t → g s, g , s s , g , t
s, g , r → g s, g , t t, g , r s, g , t → g s, g , t t , g , t
- 146 - V. Ibañez Q. - Docente FINESI - UNA - Puno

s, g, s → g s, g, r r, g, s
s, g, s → g s, g, s s, g, s
s, g, s → g s, g, t t , g, s

s, λ , r → g s, g , r r , λ , r s, λ , t → g s, g , r r , λ , t
s, λ , r → g s, g , s s, λ , r s, λ , t → g s, g , s s, λ , t
s, λ , r → g s, g , t t , λ , r s, λ , t → g s, g , t t , λ , t

s, λ , s → g s, g , r r , λ , s
s, λ , s → g s, g , s s, λ , s
s, λ , s → g s, g , t t , λ , s

EJERCICIOS:
Construya una gramática independiente del contexto (GIC) de pila descrito a
continuación:

x,λ;λ x,λ;λ
z,λ;z y,z;λ
1)
p q h

x,λ;x y,x;λ
λ, λ; # y,x;λ λ,#;λ
2)
1 2 3 4
Máquinas de Turing - 147 -

5
MÁQUINAS DE TURING
Las máquinas de Turing fue propuesta por Alan M. Turing en 1936. La idea básica
de Turing fue estudiar los procesos algorítmicos utilizando un modelo computacional.
Es conveniente considerar a las máquinas de Turing como una versión generalizada de
los autómtas finitos y autómatas de pila.

Las máquinas de Turing se asemejan a los autómatas finitos en que constan de un


mecanismo de control y un flujo de entrada que concebimos como una cinta; la diferen-
cia es que las máquinas de Turing pueden mover sus cabezas de lectura hacia adelan-
te, hacia atrás y pueden leer o escribir en la cinta.

5.1. FUNCIONAMIENTO DE LA MÁQUINA DE TURING (MT).

La máquina de Turing contiene un mecanismo de control que en cualquier mo-


mento puede encontrarse en uno de entre un número finito de estados. Uno de éstos
estados se denomina estado inicial y representa el estado en el cual la máquina co-
mienza los cálculos. Otro de los estados se conoce como estado de parada o estado
halt «final de cálculo»; una vez que la máquina llega a ese estado, termina todos los
cálculos. El estado de parada de una máquina de Turing difiere de los estados de
aceptación de los autómatas finitos y de pila en que éstos pueden continuar sus
cálculos después de llegar a un estado de aceptación; mientras que una máquina de
Turing debe detenerse en el momento en que llegue a su estado parada. El estado
inicial de una máquina de Turing no puede ser a la vez el estado de parada; por lo tanto,
- 148 - V. Ibañez Q. - Docente FINESI - UNA - Puno
toda máquina de Turing debe tener cuando menos dos estados. La diferencia más
importante entre una máquina de Turing y los autómatas finitos es que la máquina de
Turing puede leer y escribir en su medio de entrada. La máquina de Turing está equipa-
da con una cabeza que puede emplearse para leer y escribir símbolos en la cinta de la
máquina, esta cinta tiene un extremo izquierdo pero se extiende indefinidamente hacia
la derecha.
La máquina de Turing puede emplear su cinta como almacenamiento auxiliar, tal
como autómatas de pila. En una máquina de Turing no se limita a las operaciones de
inserción y extracción, sino que puede rastrear los datos de la cinta y modificar las
celdas que desee sin alterar a las demás. Al utilizar la cinta para fines de almacenamien-
to auxiliar, es conveniente que una máquina de Turing emplee marcas especiales para
distinguir porciones de la cinta. Para esto, permitimos que una máquina de Turing lea
y escriba símbolos que no aparecen en los datos de entrada; es decir, hacemos una
distinción entre el conjunto (finito) de símbolos, llamado alfabeto de la máquina, en el
que deben estar codificados los datos de entrada iniciales, y un conjunto, posiblemen-
te mayor (finito) de símbolos de cinta, que la máquina puede leer y escribir. De esta
manera, los símbolos de cinta de una máquina de Turing pueden incluir marcas espe-
ciales que no sean símbolos del alfabeto de la máquina. El espacio en blanco es un
símbolo que cae en esta categoría; se trata de un símbolo que se supone está en
cualquier celda de la cinta que no esté ocupada.
La cinta es de longitud infinita hacia la derecha, hacia donde se extiende indefini-
damente, llenándose los espacios con el caracter blanco ( ∆ , B , | | ). La cinta no es
infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es el extremo
izquierdo.

CINTA DE ENTRADA

...

Cabeza de lectura
La cabeza se mueve en las
dos direcciones
Indicador de Estado
t
q6 h

q5 q1

q4 q2
q3

MECANISMO DE CONTROL

Arquitectura de una Máquina de Turing


Máquinas de Turing - 149 -
En la máquina de Turing la cabeza lectora es de lectura y escritura, por lo que la
cinta puede ser modificada en curso de ejecución. Además, en la máquina de Turing la
cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que puede pasar
repetidas veces sobre un mismo segmento de la cinta.
La operación de la máquina de Turing consta de los siguientes pasos:
a) Lee un caracter en la cinta.
b) Efectúa una transición de estado.
c) Realiza una acción en la cinta.
Las acciones que puede ejecutar en la cinta la máquina de Turing pueden ser:
- Escribe un símbolo en la cinta, o
- Mueve la cabeza a la izquierda o a la derecha.
Estas dos acciones son excluyentes, es decir, se hace una o la otra, pero no
ambos a la vez.

La palabra de entrada en la máquina de Turing está escrita inicialmente en la


cinta, como es habitual en nuestros autómatas, pero iniciando a partir de la segunda
posición de la cinta, siendo el primer cuadro un caracter blanco. Como la cinta es
infinita, inicialmente toda la parte de la cinta a la derecha de la palabra de entrada está
llena del caracter blanco ( ∆ , B , | | ).

Definición.- Una máquina de Turing es una tupla M = ( K , ∑, Γ, q0 , B, F , δ ) , tal


que:
K : Es el conjunto de estados.
∑ : Es el alfabeto de entrada de las palabras a procesar.
Γ : Es el alfabeto de la cinta, ∑ ⊂ Γ
q0 ∈ K : Es el estado inicial.

B: Representa el espacio en blanco ó símbolo blanco B ∈ Γ


F ⊆ K : Conjunto de estados finales.
δ : (K × Γ ) → (K × Γ × {R, L, =}) es una función parcial, llamada función
de transición δ (q, X ) = ( p, Y , {I , D}) .

Ejemplo: Considere la máquina de Turing:


M = ( K = {q0 , qF }, ∑ = {0,1}, Γ = {0,1, B}, q0 , B, F = {qF }, δ ) , cuyo diagrama
de transición es el siguiente:
- 150 - V. Ibañez Q. - Docente FINESI - UNA - Puno

0 0,+
1 0,+
B B, =

q0 qF

La función de transición está dado por:

ä 0 1 B
q0 (q0, 0, +) (q0, 0, +) (qF, B, =)
qF
Sea la cadena w = 10011.

… B B 1 0 0 1 1 B B …
q0
… B B 0 0 0 1 1 B B …
q0
… B B 0 0 0 1 1 B B …
q0
… B B 0 0 0 1 1 B B …
q0
… B B 0 0 0 0 1 B B …
q0
… B B 0 0 0
0 0 0 B B …
q0
… B B 0 0 0 0 0 B B …
qF

Ejemplo: Considere la máquina de Turing:


M = ( K = {q0 , q1 , q F }, ∑ = {0,1}, Γ = {0,1, B}, q0 , B, F = {q F }, δ ) , con la siguien-
te función de transición:
Máquinas de Turing - 151 -

ä 0 1 B
q0 (q0, 0, R) (q1, 1, R) (qF, 0, =)
q1 (q1, 0, R) (q0, 1, R) (qF, 1, =)
qF

Probar para la cadena w = 1011.

… B B 1 0 1 1 B B B …
q0
… B B 1 0 0 1 B B B …
q1
… B B 1 0 1 1 B B B …
q1
… B B 1 0 1 1 B B B …
q0
… B B 1 0 1 1 B B B …
q1
… B B 1 0 1 1 1 B B …
qF

Definición.- La descripción instantánea (DI) o configuración, es una expresión


de la forma: a1a2 L ai −1qai L an donde los símbolos a1 , a2 ,L, an ∈ Γ y q ∈ K , tal
como se presenta a continuación:

B a1 a2 ai-1 ai … an B

Esta descripción instantánea a1 a 2 L a i −1 q a i L indica que la unidad de


control de M está en el estado «q» escaneando el símbolo ai .
- 152 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Observación: Una transición δ ( q , B ) = ( p, S , D) en una máquina de Turing


requiere que el símbolo este escrito en la casilla escaneada, además la unidad de
control sobre-escribe el blanco ∆, B, | | sobre «S» y realiza un desplazamiento D.

B S, D

q p

Cómputos especiales.- Durante el cómputo o procesamiento de la palabra de


entrada, hay dos casos especiales que se pueden presentar:
a) El cómputo termina porque en determinado momento no hay transición defini-
da.
b) El cómputo no termina; esto se denomina un bucle infinito, y se expresa como:

w1q w 2 − * ∞ , el cómputo que se inicia en w1qw2 no se detiene nunca.

5.2. LENGUAJE ACEPTADO POR UNA MÁQUINA DE TURING (MT).

Una cadena de entrada «w» es aceptada por una máquina de Turing M si el


cómputo que se indica la configuración inicial q0 w termina en una configuración

instantánea w1pw2 , «p» es un estado de aceptación, por lo que M se detiene comple-


tamente.

El lenguaje L(M) aceptado por una máquina de Turing M se define como:

{
L( M ) = w ∈ ∑* q0 w −* w1pw2 , p ∈ F } M se para en w pw , si la
1 2

cadena de entrada en una máquina M ∈ L(M ) , la máquina M siempre se detiene.

Definición.- Las máquina de Turing originan las siguientes clases de lenguajes:


1) L es un lenguaje recursivamente enumerable (RE) si existe una máquina de
Turing M tal que L(M) = L.
2) L es un lenguaje recursivo, si existe una máquina de Turing M tal que L(M) =
L y M se detiene con todas las cadenas de entrada.

Definición.- Un diagrama de transición está formado por un conjunto de nodos


Máquinas de Turing - 153 -
que corresponden a los estados de la máquina Turing. La transición
δ ( q , a ) = ( p , b, D ) se representa así:

a b, D

q p

Definición.- El control finito estacionario es una transición que tiene la forma:


δ (q, a) = ( p, b, N ) . donde a, b ∈ Γ y N representa un no-desplazamiento (=).

Observación.- Los máquinas Turing con transiciones estacionarias


δ ( q , a ) = ( p , b, N ) , aceptan los mismos lenguajes que los máquinas de Turing
estándares. La directiva N también se puede simular con un movimiento a la izquierda,
seguido de un retorno a la derecha.

Ejemplo: Sea la máquina de Turing M = ( K , ∑, Γ, q0 , B, F , δ ) , K = {q0 , q1} ,


F = {q1} , construya una máquina de Turing que reconozca a* sobre ∑ = {a, b} , cuyas
transiciones son:
δ ( q0 , a ) = ( q0 , a , D )
δ (q0 , B) = (q1 , B, D)

Probar para la cadena w = aa.

SOLUCIÓN:

a a, D
B B, D

q0 q1

q0 w ⇒ q0 aa − aq0 a − aaq0 B − aaBq1 B Esta máquina para en el estado q1


y reconoce la cadena.
- 154 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: Se puede diseñar una máquina de Turing que acepte L = {0 n1n n ≥ 1}. La
estratégia para resolver es recorrer la cadena de derecha a izquierda, sustituyendo 0
por X, y 1 por Y por parejas hasta conseguir un blanco (B) a la derecha. El diagrama de
transición se presenta en seguida.

0 X, D 1 Y, I 0 0, I
q0 q1 q2 Y Y, I
0 0, D
Y Y, D
Y Y, D
X X,D
Y Y, D
B B, D
q3 q4

K = {q0 , q1 , q2 , q3}, ∑ = {0,1}, Γ = {0,1, X , Y , B}, F = {q4 }

ä 0 1 X Y B
q0 (q1, X, D) (q3, Y, D)
q1 (q1, 0, D) (q2, Y, I) (q1, Y, D)
q2 (q2, 0, I) (q0, X, D) (q2, Y, I)
q3 (q3, Y, D)
q4 (q4, B, D)

La función de transición, esta dada como:

δ (q0 ,0) = (q1 , X , D) δ (q2 ,0) = (q2 ,0, I )


δ (q1 ,0) = (q1 ,0, D) δ (q2 , X ) = (q0 , X , D)
δ (q0 , Y ) = (q3 , Y , D) δ (q2 , Y ) = (q2 , Y , I )
δ (q1 ,1) = (q2 , Y , I ) δ (q3 , Y ) = (q3 , Y , D)
δ (q1 , Y ) = (q1 , Y , D ) δ (q3 , B) = (q4 , B, D)
Probar para la cadena w = 0011.
Máquinas de Turing - 155 -

q0 0011 − Xq1 011


− X 0q111 − XXq 2YY
− Xq2 0Y 1 − Xq 2 XYY

− q2 X 0Y 1 − XXq 0YY
− XXYq 3Y
− Xq0 0Y 1
− XXYYq 3 B
− XXq1Y 1
− XXYYBq 4 B se acepta la cadena
− XXYq11

Probar para la cadena w = 000111.

q0 000111− Xq1 00111 − XXq1 0Y 11 − XXXYq1Y 1


− XX 0q1Y 11 − XXXYYq11
− X 0q1 0111
− XX 0Yq111 − XXXYq2YY
− X 00q1111
− XX 0q2YY1 − XXXq2YYY
− X 0q2 0Y 11 − XXq2 XYYY
− XXq2 0YY1
− Xq2 00Y 11 − Xq2 X 0YY1
− XXXq0YYY

− q2 X 00Y11 − XXXYq3YY
− XXq0 0YY1
− XXXYYq3Y
− Xq0 00Y 11 − XXXq1YY1
− XXXYYYq3 B
− XXXYYYBq4 B

Se acepta la cadena y termina en estado de aceptación.

Ejemplo: Considérese que se tiene una máquina de Turing, cuya función de


transición tiene las siguientes composiciones:

δ ( q0 , X ) = ( q0 , X , D ) δ (q2 , X ) = (q2 , X , I )
δ (q0 , Y ) = (q1 , Y , D) δ ( q 2 , Y ) = ( q2 , Y , I )
δ (q1 , B) = (q2 , B, I ) δ ( q 2 , B ) = ( q3 , B , D )
Probar para la cadena w = XXY
- 156 - V. Ibañez Q. - Docente FINESI - UNA - Puno
SOLUCIÓN:

ä X Y B
q0 (q0, X, D) (q1, Y, D)
q1 (q2, B, I)
q2 (q2,X, I) (q2, Y, I) (q3, B, D)

q0 XXY − Xq0 XY
− XXq0Y
− XXYq1 B
− XXq2YB
− Xq2 XY
− Bq2 XXY
− q2 BXXY
− Bq3 XXY

Se acepta la cadena X*Y, tales como: Y, XY, XXY, XXXY; sin embargo no se
acepta la cadena XYX. El lenguaje de la máquina de Turing está dada por:
L( M ) = {X nY n ≥ 0}.

Ejemplo: Considere una máquina de Turing con los siguientes elementos:


K = { q 0 , q1 , q 2 }, ∑ = {0 ,1}, Γ = {0 ,1, B }, F = { q 2 }
cuya tabla de transición está dada por:

ä 0 1 B
q0 (q0, 1, D) (q0, 0, D) (q1, B, I)
q1 (q1, 0, I) (q1, 1, I) (q2, B, D)
q2

Probar la cadena w = 1001011.

SOLUCIÓN:
Máquinas de Turing - 157 -

q01001011 − 0q0 001011B − 01101q1 00 B


− 01q0 01011B − 0110 q1100 B
− 011q01011B − 011q1 0100 B
− 0110q0 011B − 01q110100 B
− 011010q011B − 0q1110100 B
− 011010q01B − q1 0110100 B
− 0110100q0 B − Bq1 B 0110100 B
− 011010q1 0 B − Bq2 0110100 B

Se acepta la cadena.
Se deja para el estudiante para su verificación la cadena w = 0011.

EJERCICIO:
1. Se tiene el diagrama de transiciones de la máquina de Turing dada en seguida:

a a, I
b b, I
b b, D Z Z, I
a a, D
Y Y, D Y Y, I
Z Z, D

a X, D b Y, D c Z, I
q0 q1 q2 q3

Y Y, D B B, D X X, D
Y Y, D
Z Z, D
B B, D
q4 q5

Verificar la cadena w = aaabbbccc.

2. Sea la máquina de Turing


K = {q 0 , q1 , q 2 , q3 , q 4 }, ∑ = {0,1}, Γ = {0,1, B}, F = {q 4 } , cuyo diagrama
de transición se presenta en seguida.
- 158 - V. Ibañez Q. - Docente FINESI - UNA - Puno

11, R
1 1, R 1 1, L

0 1, R B B, L 1 0, L B B, R
q0 q1 q2 q3 q4

Prueba para la cadena w = 111011.

3. Sea la máquina de Turing, cuya diagrama de transiciones se presenta a continua-


ción:

1 X,R
1 1, L
B B, L
q0 q1

X 1, R
B B, R
B 1, L

1 1, R
q2 q3

Verificar la cadena w = 111111.

5.3. MÁQUINAS DE TURING COMO GENERADORES DE LENGUAJES.

Definición.- Una de las capacidades más importantes es generar lenguajes, para


esto los estados finales son necesarios, en la máquina Turing definido como
M = ( K , ∑, Γ, q0 , B, F , δ ) genera un lenguaje L ⊆ ∑* sí:
a) M comienza a operar con la cinta en blanco en el estado inicial q0 .
b) Cada bez que M retorna al estado inicial q0 , existe una cadena u ∈ L escrita
sobre la cinta.
c) Todas las cadenas de L son, eventualmente generadas por M.

Ejemplo: El siguiente máquina de Turing genera cadenas con un número par de


a(es) sobre ∑ = {a}; L = a 2i i ≥ 0 . { }
Máquinas de Turing - 159 -

B a, D

q0 q1

B a, D

5.3.1. Técnicas para la construcción de Máquinas de Turing.

Existenn técnicas que facilitan la construcción de máquinas de Turing, pero


que no afectan a la potencia computacional del modelo, ya que siempre se puede
simular la solución obtenida mediante el modelo estándar (formal).

5.3.2. Almacenamiento en el control finito (Unidad de control).

Consiste en asociar a determinado estados (o a todos) compos finitos de


información adicional sobre las transiciones en el control finito, además se puede
utilizar el estado de control para almacenar una cantidad finita de información definida
como:
δ ([qi , Γ ], σ ) = ([qt , Γ ], β , {I , D, N })
Cada estado se representa como un par ordenado [qi , Γ]
Donde: qi : Es el estado real.
Γ : Es la información que se pretende almacenar.
σ,β ∈Γ

Unidad de Control 

qi  Estados


Γ }Almacenami ento

…... X …...

w
- 160 - V. Ibañez Q. - Docente FINESI - UNA - Puno

Ejemplo: Construir una máquina de Turing que reconozca: L = {01* + 10*} para
la M = ( K , ∑, Γ, q0 , F , B, δ ) . La estrategia es recordar el primer símbolo en la unidad
de control y comprobar que no aparece en el resto de la cadena K = {q0 , q1} × {0,1, B} ,

Estado inicial [ q0 , B ] , estado final [q1 , B] y Γ = {0,1, B} .


La función de transición δ está dado por:

δ ([q0 , B ],0) = ([q1 ,0],0, D ) δ ([q0 , B ],1) = ([q1 ,1],1, D )


δ ([q1 ,0],1) = ([q1 ,0],1, D ) δ ([q1 ,1],0) = ([q1 ,1],0, D )
δ ([q1 ,0], B ) = ([q1 , B ], B, D ) δ ([q1 ,1], B ) = ([q1 , B ], B, D )
Cuyo diagrama de transición se presenta a continuación:

1 1, D
0 0, D
[q0,B] [q1,0]

1 1, D B B, D

B B, D
[q1,1] [q1,B]
0 0, D

Observación:

δ ([q0 , B ], a ) = ([q1 , a ], a, D )
δ ([q1 , a ], a ) = ([q1 , a ], a , D )
δ ([q1 , a ], B ) = ([q1 , B ], B, D )
a es el complemento de «a».

5.4. MÁQUINAS DE TURING MODIFICADAS.

Hay ciertos modelos de computación relacionados con las máquinas de Turing,


que poseen el mismo potencial como reconocedores de lenguajes que el modelo báscio.
Máquinas de Turing - 161 -
5.4.1. Máquinas de Turing Multicinta.

En el modelo de multicinta, hay «n» cintas diferentes y «n» cabezas de


lectura-escritura. La función de transición para máquinas de Turing con «n» cintas
queda definido como:
δ : K × Γ n → K × Γ n × {I , D, N }n

Gráficamente se observa.

…... …...

…... …...

…...

…... …...

…...

U.C.
C.F.

Ejemplo: La máquina de Turing de dos cintas que reconoce el lenguaje.

{
L = a i bi c i i ≥ 0 }
Se coloca la cadena de entrada en la primera cinta, la idea es copiar en la
segunda cinta una X por cada «a» y cuando encuentre la primera «b», se detiene en la
primera cinta, luego avanza a la derecha en la primera cinta y se avanza a la izquierda en
la segunda cinta, cuando encuentra la primera «c» las dos cintas avanzan hacia la
derecha.
La función de transición δ es la siguiente, F = {q3}
δ (q0 , ( a, B ) ) = (q0 , (a, X ), ( D, D ) )
δ (q0 , (b, B) ) = (q1 , (b, B), ( N , D) )
δ (q1, (b, X )) = (q1, (b, X ), ( D, I ))
δ (q1, (c, B)) = (q2 , (c, B), ( N , D))
- 162 - V. Ibañez Q. - Docente FINESI - UNA - Puno

δ (q2 , (c, X )) = (q2 , (c, X ), ( D, D) )


δ (q 2 , ( B , B ) ) = (q3 , ( B , B ), ( D , D ) )

5.4.2. Máquinas de Turing Multipista.

En el modelo multipista, la cinta está dividida en un número finito de «k»


pista. La función de transición tiene la siguiente notación.
δ : K × Γ k → K × Γ k × {I , D, N }
δ (q, (a1 , a2 , a3 ,L, ak )) = ( p, (b1 , b2 , b3 ,L, bk ),{I , D, N }

En forma esquemática se tiene:

B 1 0 1 B
B 1 1 1 B
B B B B B

q0

Ejemplo: Realizar la suma de los dígitos, se parte de la izquierda a la dere-


cha con la siguiente transición:

(q , σ , D) si σ ≠ (B, B, B)
δ ( q0 , σ ) =  0
 (q1 , σ , I ) si σ = (B, B, B)

Teorema.- El lenguaje L es reconocido por una máquina de Turing multicinta


si y solo sí L es reconocido por una máquina de Turing de una sola cinta.
Prueba:
1. ⇐ ) Si L es reconocido por una máquina de Turing de una sola cinta,
entonces L es reconocido por una máquina de Turing multicinta. Basta con hacer
funcionar una sola cinta de la máquina de Turing multicinta, podría ser la cinta de la
cadena de entrada.
Máquinas de Turing - 163 -

2. ⇒ ) Si L es reconocido por una máquina de Turing multicinta entonces


L es reconocido por una máquina de Turing de una sola cinta. Se supone que la
máquina de Turing M dispone de «k» cintas, acepta el lenguaje L, y simulamos M
mediante una máquina de Turing N de una sola cinta, suponiendo 2k pistas.

- Si la máquina de Turing multicinta tiene k = 2 cintas se dispone de una


máquina de Turing de una sola cinta de 2k = 4 pistas, las pistas primera y tercera tienen
la información de las dos cintas. Las pistas segunda y cuarta tienen las cabezas.
- Para simular un movimiento M, la cabeza de N usamos un marcador para
las cabezas de la cintas y si hay un desplazamiento a la derecha de M, entonces
reemplazamos el 1 en N por B y viceversa, si hay un desplazamiento en la izquierda, el
reemplazo de 1 por B y B por 1 hace la simulación de los cabezales de M.

a b B a b B B B
B B B B B
B B B B B
q0 B B B B B

X B B
q0

∆(q0 , (a, B) ) = (q0 , (a, X ), ( D, D) )


La máquina de Turing está en q0 .

a b B B B a b B B B
1 B B B B B B B B B
B B B B B X B B B B
1 B B B B B B B B B

q0 q0

∆(q0 , (a, B, B, B ) ) = (q0 , (a,1, B,1), N ) ∆ (q0 , (a,1, B,1) ) = (q0 , ( a, B, X , B ), D )


- 164 - V. Ibañez Q. - Docente FINESI - UNA - Puno
5.4.3. Máquinas de Turing con múltiples cabezales.

Tiene «k» cabezales de L/E, como la multicinta, pero con una sola cinta.
Los cabezales operan todos de forma independiente. Como en las máquinas de Turing
multicinta, se admiten movimientos L, R ó Z. En forma gráficamente podemos mostrar
en seguida.
…... …...

…...

U.C.
C.F.
Teorema.- Un lenguaje L es reconocido por una máquina de Turing de
múltiples cabezales ⇔ L es reconocido por una máquina de Turing de un cabezal
(ambos modelos tienen el mismo poder computacional).

La demostración se realiza en forma intuitiva.


1. Si L es reconocido por una máquina de Turing unicabezal, L es recono-
cido por una máquina de Turing multicabezal. Basta con trabajar con un sólo cabezal
en la de múltiples cabezales.
2. Si L es reconocido por una máquina de Turing multicabezal, L es recono-
cido por una máquina de Turing unicabezal. La simulación es similar a la realizada para
las máquinas de Turing multicinta: se utiliza una cinta con (k+1) sectores, «k» para
marcar las posiciones de los distintos cabezales y uno para la información de la cinta.

5.4.4. Máquinas de Turing Offline.

Es un caso particular de las máquinas de Turing multicinta: tienen una


cinta especial de sólo lectura en la que el cabezal, que sólo puede moverse hacia la
derecha, no puede moverse de la zona delimitada por un par de símbolos especiales. En
forma esquemática se presenta:
Máquinas de Turing - 165 -

…... ? $ …...

U.C.
C.F.
…...

…... …...

…...

…... …...

Para simular, no hace falta más que construir una máquina de Turing
multicinta con una cinta especial sobre la que se copia la información de entrada. El
cabezal de esa cinta sólo lee (sobreescribe siempre el mismo símbolo que lee) y para al
encontrar el símbolo $. Para demostrar que su poder computacional es el mismo que
una máquina de Turing estándar.

5.5. MÁQUINAS DE TURING NO DETERMINISTAS.

Definición.- Se diferencia de las máquinas de Turing deterministas por la función


δ , que para cada caso «q» y para cada símbolo de cinta x:
δ (q, X ) = {(q1 , Y1 , S1 ), (q2 , Y2 , S 2 ),L, (qk , Yk , S k )} para cualquier «k» entero
positivo finito.

Teorema.- El lenguaje L es reconocido por una máquina de Turing no determinista


⇔ L es reconocido por una máquina de Turing determinista (ambos modelos tienen el
mismo poder computacional).

La demostración se realiza en forma intuitiva.


1) ⇐ ) Si L es reconocido por una máquina de Turing determinista, entonces L es
reconocido por una máquina de Turing no determinista. Las máquinas de Turing
determinista son máquinas de Turing no determinista en las que hay una transición por
cada estado/símbolo.

2. ⇒ ) Si L es reconocido por una máquina de Turing no determinista, entonces


- 166 - V. Ibañez Q. - Docente FINESI - UNA - Puno
L es reconocido por una máquina de Turing determinista.

Podemos simular una máquina de Turing no determinista con una máquina de


Turing determinista de tres cintas:
a) Se obtiene un «n» que es el número máximo de opciones asociada a cada
transición.
b) En la primera cinta va la cadena de entrada.
c) En la segunda cinta se generan las cadenas sobre el alfabeto {1,2,3,...,n} por
orden numérico.
1) Todas las cadenas de longitud 1: 1,2,3,4,....,n.
2) Todas las cadenas de longitud 2:
11, 12, 13, ..., 1n, 21, 22, 23, ..., 2n, n1, n2, n3, ..., nn.
3) Todas las cadenas de longitud 3:
111, 112, 113, ..., 11n, 121, 122, 123, .., 12n, 1n1, 1n2, 1n3, ... , 1nn.
al final todas las cadenas de todas las longitudes deben ir en la cinta dos
en orden lexicográfico.
…... 1 2 * 1 1 * 1 2 * 2 1 * …...

d) En la tercera cinta se realiza la simulación, cada vez que se genere una secuen-
cia en la cinta dos, se copia la cadena de entrada en la cinta tres. La secuencia de la
cinta indica qué transición concreta se elige cada vez. Sí, por ejemplo, en la cinta dos
está la secuencia: 11231..., y simula computación de máquina de Turing no determinista
δ (q, (a,1, B )) = ( p, (a,1, a ), ( D, D, D )) .
e) La máquina de Turing determinista prueba todas las combinaciones de la cinta
dos, empezando cada vez que una configuración, cuando no sirva. Si la cadena es
reconocida en la máquina de Turign no determinista, tambien es reconocida en le
máquina de Turing determinista.

Ejemplo: Sea el siguiente máquina de Turing no determinista.


a a, D b b, D

a a, D B B, D
q0 q1 q2

cuyas funciones de transiciones son los siguientes:

δ (q0 , a ) = {(q0 , a, D ), (q1 , a, D )}


1424 3 123
1 2
Máquinas de Turing - 167 -

δ (q1 , b) = {(q1 , b, D)}


1424 3
1

δ (q1, B) = {(q2 , B, D)}


1424 3
1
Si se va ha reconocer la cadena la máquina de Turing no determinista hace esta
derivación: q 0 a − aq1 B − aBq 2 B y la cadena es reconocida, pero si se va por el otro
camino: q0 a −aq0 B llegará a una transición no existente.

Entonces, hay una probabilidad que una de las secuencias de la cinta dos que
reconoce la cadena «a» sea: 1,1,1. En forma esquemática se presenta.

a B B

q0 q1 q2

a B B
q0
1 * 2 * 1 1 * 1 2 * 2 1 …...

B B B …...

Las transiciones que pueden simular la máquina de Turing no determinista son:


δ (q0 , (a,1, B )) = (q1 , (a,1, a ), ( D, D, D ))
δ (q1 , ( B,*, B)) = (q5 , ( B,*, B), ( I , N , I ))
δ ( q5 , ( a,*, a )) = ( q5 , ( a,*, B ), ( I , N , I ))
δ (q5 , ( B,*, B)) = (q0 , ( B,*, B), ( D, D, D))
δ ( q0 , (a,*, B )) = (q5 , (a,*, B ), ( D , D, D ))
δ (q5 , ( B,2, B)) = (q5 , ( B,2, B), ( I , N , I ))
δ (q5 , (a,2, B)) = (q5 , (a,2, a), ( D, D, D))
En la transición: δ (q0 , (a,1, B )) = (q1 , (a,1, a ), ( D, D, D )) , el 1 de (a,1,B) signifi-
ca que se modela en la máquina de Turing no determinista, la transición δ (q0 , a ) = (q1 , B, D) ,
- 168 - V. Ibañez Q. - Docente FINESI - UNA - Puno
es decir, se realiza la transición 1.

5.5.1. Simulación de autómatas por medio de Máquina de Turing.

Los autómatas finitos deterministas, autómatas finitos no deterministas o


autómatas finitos no deterministas con transiciones vacías; y los autómatas de pila
(autómata de pila determinista o autómata de pila no determinista), se pueden simular
con máquinas de Turing.

Definición.- Dado un autómata M se puede construir una máquina de


Turing que acepte el mismo lenguaje que M.

Definición.- Dado un autómata finito determinista M = ( K , ∑, q0 , δ , F ) se


puede construir una máquina de Turing M’ tal que L(M) = L(M’).

Teorema.- Todo lenguaje regular es recursivo.

Definición.- Un autómata de pila M, se puede convertir en una máquina


de Turing M’ tal que L(M) = L(M’).

Observación:
- Las simulaciones de autómatas por medio de máquina de Turing permi-
ten concluir que los lenguajes regulares y los lenguajes independientes de contexto
son recursivos.
- La máquina de Turing M’, así construída se detiene ante cualquier entra-
da «w»
- La máquina de Turing, será determinista o no determinista, según si es
un autómata finito determinista de pila o un autómata finito no determinista de pila.
- La máquina de Turing construida siempre parará con todas las cadenas
de entrada.

Teorema.- Todo lenguaje independiente del contexto (LIC) es un lenguaje


recursivo.
Teorema.- Si L1 y L2 son lenguajes recursivos, entonces L1 ∪ L2 también
lo son.

Observación: Existen lenguajes recursivos que no son lenguajes inde-


pendientes de contexto.
Máquinas de Turing - 169 -

Ejemplo: Podemos ver que la intersección de dos LICs nos dió {a i b i c i i ≥ 0} y


no es LIC.

L.R. LIC Recursivos


Recursivamente
Enumerables ∑*

Definición.- Una gramática G = ( ∑, N , S , P ) es una gramática sensible


de contexto, si todas las producciones son de la forma: α → β , donde
+
α , β ∈ ( N ∪ ∑) y α ≤ β .

Ejemplo: Sea el lenguaje {a i b i c i i ≥ 1} la gramática sensible del contexto, cuyas


reglas de producción se presenta.
S → abc aAbc
Ab → bA
Ac → Bbcc
S → abc aAbc

Lema: Sea G = ( ∑, N , S , P ) una gramática sensible del contexto. Entonces existe


una máquina de Turing M, que PARA sobre toda entrada y acepta L(G).

Teorema.- Si L es unn lenguaje sensible del contexto, entonces L es recursivo.


Teorema.- a) El complemento de un lenguaje recursivo también es recursivo, b)
La unción de dos lenguajes RE es RE.
- 170 - V. Ibañez Q. - Docente FINESI - UNA - Puno

BIBLIOGRAFÍA CONSULTADA:

1. ALFONSECA, E., ALFONSECA, M., y MORYON, R. (2007). “Teoría de Autóma-


tas y Lenguajes Formales”, Primera Edición, Editorial Mc-Graw Hill/Interamerican
de España, S.A.U..
2. BROOKSHEAR, (1993). “Teoría de la Computación”, Primera Edición, Editorial
Prentice Hall.
3. CAIRO, O. y GUARDATI, S. (2002). “Estructuras de Datos”. Segunda Edición.
Edit. McGraw-Hill, S.A. de C.V. de México.
4. CASES, R. Y MÁRQUEZ, L. (2002). “Lenguajes, gramáticas y autómatas”. Pri-
mera Edición. Edit. Alfaomega Grupo Editor, S.A. de C.V. México.
5. GARCÍA, P. et. al. (2001). “Teoría de Autómatas y Lenguajes formales”. Primera
Edición. Editorial Alfaomega Grupo Editor, S.A. de C.V. México.
6. GARCIA, F. (2005). “Matemática Discreta”. Segunda Edición. Edit. Thomson
Spain Paraninfo, S.A.
7. GRASSMANN, W.K. y TREMBLAY, J.P. (1997). “Matemática Discreta y Lógi-
ca”. Primera Edición. Editorial Prentice-Hall. España.
8. JIMENEZ, J. (2009). “Matemáticas para la Computación”. Primera Edición. Edit.
Alfaomega Grupo Editor, S.A. de C.V., México.
9. KELLEY, D. (1995). “Teoría de Autómatas y Lenguajes Formales”, Segunda
Edición, Editorial Prentice-Hall.
10. KOLMAN, B.; BUSBY, R.C. y ROSS, S. (1997). “Estructura de Matemáticas
Discretas para la Computación”. Tercera Edición. Editorial Prentice-Hall Hispa-
noamericana, S.A. México.
11. LEWIS, H. y PAPADIMITRIOU, C. (1998). “ Elements of the theory of
computation”. Second Edition, Edit. Prentice-Hall.
12. MARTIN, J. (2004). “Lenguajes formales y teoría de la computación”. Tercera
Edición. Edit. McGraw-Hill/Interamericana Editores, S.A. de C.V. México.
13. MARTIN DEL BRIO, B., y SANZ, A. (2007). “Redes Neuronales y Sistemas
Borrosos“. Tercera Edición. Edit. Alfaomega Grupo Editor, S.A. de C.V. México.
14. ROSEN, K.H. (2004). “Matemática discreta y sus aplicaciones”. Quinta Edición.
Edit. McGraw-Hill/Interamericana Editores, S.A. de C.V. México.
15. VEERARAJAN, T. (2008). “Matemáticas discretas con teoría de gráficas y
combinatoria”. Primera Edición. Edit. McGraw-Hill/Interamericana Editores, S.A.
de C.V. México.

vvvvvvvvvviiiiiiiiiiiiiiiiiiiiiiiiiiiqqqqqqqqqqq

También podría gustarte