Sei sulla pagina 1di 176

UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO

Facultad de Ingeniera Estadstica e Informtica

2 R.C.
2
1

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


Ho:

LENGUAJES FORMALES Y
AUTOMTAS

PREPARADO POR:

VLADIMIRO IBAEZ QUISPE, Dr.

Puno, Marzo del 2011


- ii - V. Ibaez Q. - Docente FINESI - UNA - Puno

VLADIMIRO IBAEZ QUISPE


Ingeniero Estadstico, UNA - Puno - Per.
M.Sc. en Informtica
Dr. en Administracin
Profesor Principal - Facultad de Ingeniera Estadstica e
Informtica.

Derechos Reservados:

Ninguna parte de este gua puede ser reproducida sin


la autorizacin del autor. viq_ibanez@hotmail.com

2011, Editorial Universitaria.

Primera Edicin: 2011


Impreso en Puno - Per.

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


Puno - Per

Diagramacin y Composicin:
Vladimiro Ibaez Quispe
Lenguajes Formales - iii -

PRESENTACIN

La presente publicacin Lenguajes formales y autmatas est dirigido


a los estudiantes que se inician a nivel de pre-grado y post-grado, en la
formacin bsica en ciencias de la computacin e informtica, el cual
incluye las definiciones bsicas de alfabeto, cadena, concatenacin,
lenguajes, gramticas, lenguajes regulares, expresin regular,
representacin de gramticas y modelos computacionales que se desarrolla
con amplia profundidad que son muy importantes para avanzar en los
siguientes ciclos, los estudiantes con estos conocimientos estarn en la
capacidad de diferenciar, generar gramticas, construir modelos
computacionales aplicados y adaptados a las diferentes disciplinas en las
ciencias de la computacin e innovarn la investigacin para generar
conocimientos a nivel regional, nacional e internacional.

Espero que la presenta publicacin tenga alcance a los estudiantes en


forma mtodica en el desarrollo de la enseanza-aprendizaje para mejodar
la calidad de la educacin 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 informtica.
(viq_ibanez@hotmail.com)

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

NDICE

Pg.
CAPTULO 1: LENGUAJES FORMALES
1.1. Conceptos bsicos..................................................................................... 01
1.2. Lenguajes .................................................................................................... 07

CAPTULO 2: GRAMTICA

2.1. Gramtica ...................................................................................................... 13


2.2. Tipos de gramticas - Jerarqua de Chomsky.......................................... 28
2.3. Lenguajes regulares y expresiones regulares......................................... 33
2.4. Representaciones de lenguajes y gramticas especiales...................... 37
2.4.1. Notacin BNF (Backus-Naur-Form)................................................ 37
2.4.2. Diagrama de sintxis ......................................................................... 41
2.5. Gramticas regulares y expresiones regulares ......................................... 44

CAPTULO 3: AUTMATAS FINITOS

3.1. Autmatas finitos deterministas (AFD) ................................................... 50


3.2. Autmatas finitos no determnistas (AFND) ............................................ 58
3.2.1. Extensin de la funcin de transicin a cadenas .......................... 61
3.2.2. Lenguaje aceptado por un autmata finito no determinista ....... 63
3.3. Equivalencia entre AFD y AFND .............................................................. 66
3.4. Conversin de expresin regular (ER) a AFND ..................................... 73
3.5. Conversin de AFD a expresiones regulares (ER) ................................. 76
3.6. Minimizacin de autmatas finitos ........................................................... 86

CAPTULO 4: LENGUAJES LIBRES DE CONTEXTO

4.1. Gramticas libres de contexto (GLC)......................................................... 101


4.2. Autmatas de Pila (AP) ............................................................................. 116
4.2.1. Autmata de pila determinista (APD)............................................ 117
4.2.1.1. Lenguaje aceptado por un autmata de pila .................. 122
4.2.2. Autmatas con pila no determinista (AFPN) ................................ 126
4.2.3. Autmatas con Pila y LIC. ............................................................... 131
4.2.4. Forma Normal de Chomsky .............................................................. 140
- vi - V. Ibaez Q. - Docente FINESI - UNA - Puno

Pg.
CAPTULO 5: MQUINAS DE TURING

5.1. Funcionamiento de la Mquina de Turing.............................................. 147


5.2. Lenguaje aceptado por una mquina de Turing..................................... 152
5.3. Mquinas de Turing como generadores de lenguajes.......................... 158
5.3.1. Tcnicas para la construccin de mquinas de Turing .............. 159
5.3.2. Almacenamiento en el control finito ............................................... 159
5.4. Mquinas de Turing Modificadas ........................................................... 160
5.4.1. Mquinas de Turing Multicinta ...................................................... 161
5.4.2. Mquinas de Turing Multipista ...................................................... 162
5.4.3. Mquinas de Turing con mltiples cabezales ............................... 164
5.4.4. Mquinas de Turing Offline ............................................................ 164
5.5. Mquinas de Turing no deterministas....................................................... 165
5.5.1. Simulacin de autmatas por medio de mquinas de Turing ....... 168

Bibliografa consultada ........................................................................................ 170

viq
Lenguajes Formales - 1 -

1
LENGUAJES FORMALES

1.1. CONCEPTOS BSICOS.

a) Alfabeto.- Un alfabeto ( ) es un conjunto finito no vaco de smbolos.


Ejemplo:
El alfabeto del idioma espaol: = {a , b , c ,L , z},
1
a 1

El alfabeto binario de ceros y unos: 2


= {0 ,1}, 0 2

El alfabeto de nmeros naturales: 3 = {0,1,2,3,4,5,6,7 ,8,9}, 4 3

= {a , b},
4
b 4

5
= {pen, gol, cam, pe, r }

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


6

Observacin:
i) Usamos meta-smbolos {} , , =, y la coma para describir sobre lo que hablamos.
ii) Usamos subndices para distinguir diferentes alfabetos.
iii) Cardinalidad del alfabeto (nmero de elementos del alfabeto): 0, .
- 2 - V. Ibaez Q. - Docente FINESI - UNA - Puno
b) Palabra - cadena o frase (chain).- Es una secuencia finita de smbolos de un
determinado alfabeto.

Ejemplos:
1 : LUIS, PEDRO, INFORMTICA, UNIVERSIDAD
2 : 0, 1, 00, 01, 11, 000, 1001101
3 : 123, 1024, 1999, 2010, 2011
4 : a, aa, abb, bba,ababa
5 : per, golper, campen
6 : if a b then b = a;
Observacin:
i) Existe una cadena vaca que no tiene smbolos y se denota con , cuya
longitud es cero = 0 .
ii) El smbolo no pertenece a ningn alfabeto, pero si al meta-alfabeto,

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


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

Observacin:
i) Dependiendo del alfabeto puede resultar dficil dividir una palabra en sus
smbolos.
ii) Si se puede dividir toda las palabras sobre un alfabeto solamente de una
manera en sus smbolos, se llama alfabeto libre.

Definicin.- El conjunto de todas las cadenas o palabras que se puede formar


sobre un alfabeto ms la palabra vaca 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 *

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

Definicin.- Un lenguaje s puede ser vaco. Ejemplo: L5 = , pero: {}

d) Operaciones con palabras - operaciones con cadenas.

Definicin.- Dadas dos palabras o cadenas x, y * , * , se llama


concatenacin de x e y ( y ) a la palabra w que se obtiene de escribir y a
continuacin de X.
- 4 - V. Ibaez 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 concatenacin:
P1: La concatenacin es una operacin 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 concatenacin 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 vaca es el elemento neutro de
la concatenacin 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 concatenacin de palabras es un monoide.
P4: La concatenacin 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 cancelacin por la izquierda.
a, b, c * , se cumple que: ab = ac, entonces b = c

P6: Propiedad de cancelacin por la derecha:


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

Definicin.- 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. Adems, 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.

Definicin.- Se llama potencia n-sima de una palabra a la operacin que con-


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

, si n = 0
wn = n1
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. Ibaez 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
Observacin: Las propiedades de la funcin longitud son semejantes a las del
logaritmo: w = n w
n

Ejemplo: w2 = 2 alaala

Definicin.- 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 funcin longitud es invariante con respecto
a la reflexin 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.

Definicin.- Se llama lenguaje sobre el alfabeto a cualquier subconjunto del


lenguaje universal de , es decir L * .
Observacin:
- El conjunto vaco es un lenguaje sobre . A este lenguaje se llama Lenguaje
vaco (se incluye , lenguaje vaco no contiene ninguna palabra). Este lenguaje vaco
no debe ser confundido con el lenguaje formado por la palabra vaca { }.
- y { } son lenguajes sobre cualquier alfabeto .
- El alfabeto es un lenguaje * .
- Un lenguaje se denomina finito, si tiene un nmero finito de palabras.
- Los lenguajes que no son finitos tienen una cardinalidad idntica al conjunto
de los nmeros naturales (infinito numerable).
- Una ordenacin en este tipo de lenguajes es la llamada Lexicogrficas, que
consiste en establecer dos niveles de ordenacin. El primero es la longitud de las
palabras, y las palabras de igual longitud se ordenan de acuerdo al orden alfabtico.
- La mayor parte de los lenguajes que tienen inters son infinitos, por lo que no
se pueden definir por extensin.

a) Operaciones con lenguajes.

Definicin.- Sean dos lenguajes definidos sobre el mismo alfabeto:


L1 , L2 * . Se llama UNIN 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 unin de lenguajes es una operacin 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 unin de lenguajes es un
semigrupo.
P-3: Existencia de elemento neutro: cualquiera que sea el lenguaje L, el lenguaje
- 8 - V. Ibaez Q. - Docente FINESI - UNA - Puno

vaco cumple que: + L = L + = L L = L = L


Por cumplir las tres propiedades 1, 2 y 3, la unin 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 unin de lenguajes es un
monoide abeliano.

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

b) Concatenacin de lenguajes - Producto de lenguajes.

Definicin.- Sean dos lenguajes definidos sobre el mismo alfabeto:


L1 , L2 * . Se llama concatenacin 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 concatenacin se tiene:
L 1 L 2 = {0 a , 0 b , 0 cd ,1 a ,1 b ,1 cd }
Ejemplo: L1 = {casa}, L2 = {pjaro, perro}
L1 L2 = {casapjaro, casaperro}

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


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

Propiedades:
P-1: La concatenacin de lenguajes es una operacin cerrada, es decir la
concatenacin 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 operacin de
concatenacin de lenguajes es un semigrupo.

P-3: Elemento neutro: Cualquiera que sea el lenguaje L, el lenguaje formado por
la palabra vaca cumple que: L = L = L .
Por cumplir los tres propiedades anteriores, la operacin de concatenacin
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 unin:
L1 ( L 2 L 3 ) = L1 L 2 L1 L 3
P-7: Distributiva respecto a la interseccin.
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 operacin


que consiste en concatenarlo consigo mismo n veces. Como la concatenacin 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. Ibaez 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 ms concatenaciones de palabras
de L.

L* = U Ln L* = U Ln L* = L0 L1 L2 L
n=0 n0

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 ms concatenaciones de palabras de L,


hacemos una o ms.

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


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

3) Relacin entre ambos:

+ L* , s L
L = *
L { }, s L
Observacin: Las operaciones unin, concatenacin y cierre estrella, en
conjunto son denominados operaciones regulares o racionales.

4) Reverso de un Lenguaje.
Definicin.- 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

Observacin: R = , ( a1a2 L an ) = an L a2 a1
R

Ejemplo: RADAR ( radar ) R = radar


- 12 - V. Ibaez 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 palndromo es


una palabra que es igual a su transpuesta. Una definicin recursiva de palndromo es
la siguiente:
i) es un palndromo.
ii) Todas las palabras formadas por un slo smbolo son palndromos.
iii) Si w es un palndromo, entonces para todo smbolo a la palabra awa
tambin es un palndromo.
iv) No existen otros palndromos que los obtenidos por las reglas anteriores.
Gramtica - 13 -

2
GRAMTICA
2.1. GRAMTICA.

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

Definicin.- Se llama gramtica formal o simplemente gramtica G a la cuadrpla 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 vaco de smbolos llamados no terminales
(alfabeto de smbolos no terminales).
T = S : Es un conjunto finito y no vaci de smbolos llamados terminales (alfabeto
de smbolos terminales) con N T = (llamaremos V = N T ).
S = v0 : Smbolo especial, llamado smbolo inicial o smbolo distinguido o axioma
( S N ).
P =a : Es un conjunto finito de reglas de produccin que especifica los reemplazos
permisibles. A los elementos del conjunto P se les denomina Reglas de
produccin.
- 14 - V. Ibaez 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.

SOLUCIN:
a: S a ab
S a aSb
S aSb aaSbb aaabbb
Ejemplo: Sea la gramtica definido como: G = (V , S , v0 , a ) cuyas reglas de
produccin 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
Gramtica - 15 -
Convenio de notacin:
Para facilitar la comprensin de las formulaciones y agilizar su descripcin, se
utiliza los criterios de notacin siguientes:
i) Utilizaremos letras maysclas latinas (A,B,C,...,Z) para representar smbolos
no terminales, llamados tambin variables. La idea principal de la descripcin es eliminar
los smbolos no terminales.
ii) Se usar letras minsculas latinas iniciales (a,b,c,....) para representar a los
smbolos terminales.
iii) Se usar letras minsculas latinas finales (....,w,x,y,z) para representar las
palabras formadas por terminales, llamados tambin hojas finales de un rbol.
iv) Utilizaremos minsculas griegas ( , , , L , ) para representar las palabras
sobre ( N T )* , que llamaremos cadenas intermedias.

Ejemplo: Describir una gramtica slo 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

Definicin (derivacin).- Sean ' , ' * , se dice que ' deriva directamente

' en la gramtica G y se denota por: ' ' si ' = (secuencia en la que est
G

presente ), ' = y P.

Ejemplo: Sea las siguientes producciones:


- 16 - V. Ibaez Q. - Docente FINESI - UNA - Puno

S ab Generar la palabra: aaabbb


S aSb
SOLUCION:
S aSb
S aaSbb
S aaabbb

Aplicando la definicin al ejemplo anterior se tiene:


' ' entonces
G G

aa { G
{ S{ bb aa
{ ab
{ bb
{

Definicin (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 nmero de pasos es mayor que uno.

Definicin.- Se dice que V * es una forma sentencial de la gramtica G si


*
S .
G

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

Definicin.- Se denomina palabra, frase sentencia generada por una gramtica


G a aquella forma sentencial, cuyos smbolos pertenecen a .
Ejemplo: S aSb aaSbb aaabbb , la palabra es: aaabbb
G G G

Definicin.- Se llama lenguaje generado por una gramtica 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
Gramtica - 17 -

Ejemplo: Sea la gramtica G = {S }{( { } )


, a, b}, S aSb , S genera el lenguaje.
L = {a n b n n 0}. Observe la caracterizacin recursiva de las palabras de este
lenguaje que se deduce de su estructura gramatica.
S aSb
S
Si n = 4, entonces la derivacin de la palabra es el siguiente:
S aSb aaSbb aaaSbbb aaaabbbb aaaabbbb

w0 =
w1 = ab = aw0b

w2 = aSb = aaSbb = aabb = a 2 b 2 = aw1b L wn = a n b n = awn

Definicin.- Dos gramticas 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 tambin por la


gramtica G, cuyas reglas de produccin son:
S aA ab S aA
A Sb S ab
A Sb
Ejemplo:
Sea S = {Juan, Julia, maneja, corre, descuidadamente, rpido, frecuentemente}
N = {Oracin, sujeto, predicado, verbo, adverbio}
v0 = Oracin.
Generar: Juan corre descuidadamente.

SOLUCION:
Oracin Sujeto Predicado
Sujeto Juan
Sujeto Julia
- 18 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Predicado Verbo Adverbio
Verbo maneja
Verbo corre
Adverbio descuidadamente
Adverbio rpido
Adverbio frecuentemente

Respuesta: Juan corre descuidadamente L(G).

Forma alternativa:
Oracin
Sujeto Predicado
Juan Predicado
Juan Verbo Adverbio
Juan corre Adverbio
Juan corre descuidadamente

Ejemplo: Sea G = (V , S , v0 , a) , cuyas reglas de produccin 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
Gramtica - 19 -

S a aaaabaaaA
S a aaaabaaaaA
S a aaaabaaaaa A
S a aaaabaaaaa a
Arbol de derivacin.- Consideremos una derivacin cualquiera de la forma
A , donde A y son, respectivamente una variable (smbolo no terminal) y una
*

cadena intermedia; consideremos la secuencia de derivaciones directos que constituyen


la derivacin considerada. Es muy til representar esta derivacin por medio de un
rbol, de la siguiente manera:

i) La raza del rbol tiene como etiqueta la variable A.


ii) Cada nodo interno del rbol corresponde a alguna de las variables (no
terminal) que son sustitudas en el proceso de derivacin. As, si una derivacin directa
consiste en aplicar la produccin X , las etiquetas de los hijos del nodo que
corresponde a esta variable X, ledas 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 travs del rbol de derivacin es el siguiente:


- 20 - V. Ibaez 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 relacin en V * dada por:
v0 a aw
w a bbw
wac
Examine la gramtica de estructura de frase: G = ( V , S , v0 , )

SOLUCIN:

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 expresin regular ,b,bb,bbbb,L . La respuesta es: q
Gramtica - 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

SOLUCIN:

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
xxxxxyyyyyzLG
( ), x yzLG
( ) 5 5 z
m
L(G)= x y z n0,m1
n m
r
- 22 - V. Ibaez 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

SOLUCIN:
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 =aaaLG
3
( ) v0 v0 v0
a a a a a ..
a =aaaaaL(G)
5
v0 v0
a7 = aaaaaaa L(G) a
a a a a
a9 =aaaaaaaaaL(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 bL(G)
2
v0 v0 v0
a4bL(G) b a a a a ..
v0 v0
a6bL(G)
b a a a a
a8bL(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 gramtica, todas las oraciones


sintcticamente correctas:
Gramtica - 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

SOLUCIN:

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. Ibaez Q. - Docente FINESI - UNA - Puno

EJERCICIOS:
1. Describa exactamente el L(G) producido por la gramtica, todas las oraciones
sintcticamente 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
Gramtica - 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

Definicin.- Una gramtica es ambigua cuando es posible construir dos rboles


de derivacn diferentes que corresponden a una misma palabra; de lo contrario, decimos
que la gramtica 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. Ibaez Q. - Docente FINESI - UNA - Puno
Ejemplo: Se tiene las siguientes reglas de produccin.
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: Artculo
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 PLTANO.


SOLUCIN: A travs del rbol de derivacin 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 tc 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 tc 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
Gramtica - 27 -

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

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

Ejemplo: Construya un rbol de derivacin para la siguiente frase.


el conejo hambriento come rpidamente.

SOLUCIN: Se resuelve a travs del rbol de derivacn.

frase

Sujeto predicado

artculo nombre adjetivo verbo adverbio

el conejo hambriento come rpidamente

frase
sujeto predicado
artculo nombre adjetivo predicado
artculo 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 rpidamente
- 28 - V. Ibaez Q. - Docente FINESI - UNA - Puno
Reglas para construir una frase vlida.
1) Una FRASE se compone de un SUJETO seguido de un PREDICADO;
2) un SUJETO se compone de un ARTCULO seguido de un NOMBRE seguido
de un ADJETIVO, o
3) Un SUJETO se compone de un ARTCULO 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 artculo es UN, o
7) Un artculo es EL;
8) Un adjetivo es GRANDE, o
9) Un adjetivo es HAMBRIENTO;
10) Un nombre es CONEJO, o
11) Un nombre es MATEMTICO;
12) Un verbo es COME, o
13) Un verbo es SALTA;
14) Un adverbio es RPIDAMENTE, O
15) Un adverbio es SALVAJEMENTE.

Ejemplo:
- el conejo grande salta rpidamente
- un matemtico hambriento come salvajemente
- un enorme matemtico salta.

2.2. TIPOS DE GRAMTICAS - JERARQUA DE CHOMSKY.

De acuerdo con lo que hemos visto, toda gramtica genera un nico lenguaje, pero
distintas gramticas pueden generar el mismo lenguaje.

Lenguajes Forma de las


TIPO producciones en la Dispositivo de
(Gramticas) aceptacin
gramtica
3 Regulares AaB, Aa (A,B,a) Autmata finito

2 De contexto libre A (A,(N)* Autmata finito con Pila

1 Sensibles al contexto (, (N ) , ,
*
Autmata limitado
linealmente
contieneuna variable)
0 Enumerables recursivamente (, (N )*, Mquina de Turing
(irrestrictos de estructura
contiene una variable)
de frase)
Gramtica - 29 -
Representacin grfica de la Jerarqua de Chomsky.

Lenguajes generales (sin restriccin)

TIPO 0 Lenguajes independientes del contexto


(lenguajes sensibles al contexto)(autmatas
TIPO 1 lineales acotados)

TIPO 2
Lenguajes independientes del contexto
determinista (Autmata finito con pila)
TIPO 3

Lenguajes regulares (Autmata


finito)

A) Gramticas regulares.- Se denomina tambin racionales, de Kleene o


simplemente de Tipo 3 (lenguajes regulares). Sus reglas de produccin son
exclusivamente de uno de los dos siguientes tipos:
1) Lineales por la Derecha.- Sus reglas de produccin 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 produccin 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) Gramticas incontextuales (Context - free, lenguajes independientes del


contexto).- Se denomina tambin algebraicas de Chomsky o de Tipo 2. Sus reglas de
produccin son de la forma:
A A ::= con A , ( N )*
Se observa que las dos ltimas definiciones se comprueba que
toda gramtica de Tipo 3 es de Tipo 2, puesto que la parte derecha de las reglas de
produccin de stas ltimas no tienen las restricciones que las primeras.
- 30 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Los lenguajes que se pueden describir mediante gramticas del Tipo 2,


se llaman Lenguajes Independientes del Contexto (Context-free), pues la
transformacinn o derivacin de A en puede aplicarse siempre, cualquiera que sea
el contexto en que se encuentre A.

Por otra parte, cualquier gramtica del Tipo 2 cumple tambin los
requisitos para ser una gramtica del Tipo 1, salvo que en todas sus reglas el contexto
derecho e izquierdo se reduce a la cadena vaca. En consecuencia, todo lenguaje
iidnependiente del contexto pertenecer tambin a la clase de los lenguajes dependientes
del contexto.

(
Ejemplo: Sea la gramtica 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 gramticas
diferentes. En cambio, una gramtica determinada describe siempre un lenguaje nico.

Ejemplo: Encontrar una gramtica libre de contexto para generar los siguientes
lenguajes.
{
L = a i b j i, j , i j }
SOLUCIN:
S aSb
S
S Sb

C) Gramticas contextuales (Lenguajes dependientes del contexto - lenguajes


sensibles al contexto - context sensitive - gramtica del tipo 1 de Chomsky.- Se llama
gramtica del Tipo 1 de Chomsky a toda gramtica cuyas reglas de produccin son de
la forma: X , donde X , , V * y V + xAy xvy
x, y ( )* , v ( ) + y A .
Gramtica - 31 -

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


slo 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 . Adems, no puede ser la cadena vaca. Por esta razn, los lenguajes
representados por las gramticas del Tipo 1, se llaman lenguajes dependientes del
contexto lenguajes sensibles al contexto.

Se admite, como excepcin, que una gramtica del Tipo 1 pueda contener la
regla S , donde S es el axioma. De lo contrario, el lenguaje representado por una
gramtica del Tipo 1 no podra contener la palabra vaca. Esto se permite nicamente
cuando la gramtica no sea recursiva en S, para evitar la posibilidad de que haya
derivaciones no crecientes de palabras distintas de .

Ejemplo: Sea la siguiente gramtica: 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 gramtica del Tipo 1 para un lenguaje L que
contiene la palabra vaca, se puede aplicar el siguiente procedimiento.
i) Se obtiene en primer lugar una gramtica del Tipo 1 para el lenguaje L { }.
ii) Si la gramtica obtenida no es recursiva en el axioma S, se aade la regla
S .
iii) En caso contrario, se aade a la gramtica un nuevo smbolo no terminal, A
que ser el nuevo axioma, junto con la reglas: A S .

D) Gramticas no restringidas o con estructura de frase gramticas del TIPO


0 (Gramticas con estructura de frase).

Son las gramticas ms generales. Sus reglas de produccin tienen la forma


u v donde u = xAy , x, y, v ( )* y A , sin ninguna restriccin
- 32 - V. Ibaez Q. - Docente FINESI - UNA - Puno
adicional. Sus reglas no tienen ningn tipo de restriccin. Por lo tanto, cualquiera de
los tipos anteriores de gramticas son tambin de Tipo 0. Los lenguajes representados
por estas gramticas se llaman lenguajes recursivamente enumerables.

Definicin.- Se llama gramtica de estructura de frase a aquella gramtica, cuyas


reglas de produccin tienen la forma xAy xvy , donde x, y , v ( ) * y
A . Es decir, dichas reglas indican que un smbolo 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.

Definicin.- Un lenguaje L es de tipo i = 0,1,2,3 si es generable por una gramtica


G de tipo i y no lo es por otra de tipo ms 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 gramtica G = ({A, B, C}{


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

SOLUCIN:
Puede comprobarse que el lenguaje representado por esta gramtica es:
Gramtica - 33 -

{a b
n n
}
n 1 . Esta gramtica es compresora, pues la regla bC b . El
smbolo no terminal C puede sustituirse por la cadena vaca, cuando est precedido
por el smbolo terminal b.

2.3. LENGUAJES REGULARES Y EXPRESIONES REGULARES.

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


de vista prctico porque pueden ser usados para especificar la construccin de
analizadores lxicos - programas que analizan un texto y extraer los lexemas (o unidades
lxicas) que hay en el mismo. Un lenguaje regular es un alfabeto es uno que puede
obtenerse de esos lenguajes bsicos con las operaciones de unin, concatenacin y *
de Kleene, y es factible describir un lenguaje regular con una frmula explcita.

Definicin.- 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) Ningn 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 unin 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. Ibaez 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?

SOLUCIN:
{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.


* * *

Observacin: resulta engorroso construir y especificar lenguajes regulares,


por lo que existe una manera de representacin a travs de las expresiones regulares.

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


de manera simplificada un lenguaje regular.

Definicin.- Una expresin regular sobre un alfabeto , se define


recursivamente como sigue:
a) es una expresin regular y denota el lenguaje vaci.
b) es una expresin regular y denota el lenguaje {}.
c) a , a es una expresin regular y denota el lenguaje {a}.
d) Si y son dos expresiones regulares, que denotan los lenguajes, A y B
entonces:
i) + es una expresin regular que denota A B .
ii) es una expresin regular que denota A B .
iii) * es una expresin regular que denota A* .
e) Ninguna otra secuencia de smbolos es una expresin regular.
f) Orden de precedencia de operadores: *, ., + (se puede usar parntesis).
Gramtica - 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) Expresin 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 expresin regular: ( a + b + c + L + z ) * .
- 36 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Ejemplo: Sea = {0,1}. El lenguaje {01,000}. Representar mediante la expresin


regular: 01+000.

Ejemplo: Sea = {0,1}. El lenguaje de todas las cadenas que contiene un slo
1. Represente mediante la Expresin Regular. 0*10* .

Ejemplo: Sea L {0,1}* el lenguaje de todas las cadenas de longitud par. Es L


regular ?cul es una expresin regular que corresponde?.
SOLUCIN:
Si es una expresin regular.
Todas las cadenas de longitud par pueden obtenerse al concatenar cero o ms
cadenas de longitud 2. L = {00,01,10,11}*
Expresin Regular que corresponde a L es (00 + 01 + 10 + 11)* . Otra alternativa
de solucin es el siguiente: ((0 + 1)(0 + 1))* .

Definicin.- 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 unin es Asociativa:
( + ) + = + ( + ) ( ) = ( )
2) La unin es Conmutativa: + = + =
3) La concatenacin es asociativa: ( ) = ( )
4) La concatenacin es distributiva respecto a la unin:
( + ) = +
5) es el elementro neutro de la unin: + = + =
6) es el elemento neutro de la concatenacin: = =
7) = =
8) * =
9) * =
Gramtica - 37 -

10) =
* * *

11) * = *
12) ( * )* = *

13) * = + *
14) ( * + * )* = ( * * )* = ( + )*

15) ( )* = ( )*

2.4. REPRESENTACIONES DE LENGUAJES Y GRAMTICAS ESPECIALES

2.4.1. Notacin BNF (Backus-Naur Form)

Es uno de los mtodos empleados para la definicin de reglas sintcticas,


utilizando los siguientes smbolos: El smbolo w permanecer en la izquierda y todos
los lados derechos asociados a w se enlistarn juntos, separados por el smbolo
(separa las distintas alternativas). El smbolo de la relacin se reemplaza por el
smbolo ::= que sirve para definir o indicar equivalencia; y los smbolos no termi-
nales, se encierran entre llaves <, >, " " indica que es un carcter que forma parte
de la sintxis del lenguaje.

Observacin.- Las gramticas sern de tipo 2, adems incluye las gramticas de


tipo 3.

EJEMPLO:

Sean las producciones: a: v0 a aw . Expresar a la notacin BNF.


w a bbw
wac
SOLUCIN:

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

Sea S = {Juan, Julia, maneja, corre, cuidadosamente, rpidamente, frecuente-


mente}
N = {Oracin, sujeto, predicado, verbo, adverbio} y sea V = S N. Sea v0 =
oracin y supngase que la relacin en V * .

SOLUCIN:
Expresar en notacin BNF

Oracin a Sujeto predicado <Oracin>::= <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 rpida-

a corre
verbo mente frecuentemente
Adverbio a cuidadosamente
Adverbio a rpidamente
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 notacin 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
Gramtica - 39 -
EJEMPLO:
l q
G = (V , S , v0 , ), V = v0 , a , S = a lq
a: v0 a aav0 Expresar en notacin 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 notacin 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 notacin 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 notacin BNF:

a: v0 a aav0
v0 a bv1
v1 a cv2b
v1 a cb
v2 a bbv2
v2 a bb
- 40 - V. Ibaez 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 notacin 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 gramtica 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 Gramtica 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
Gramtica - 41 -

2.4.2. DIAGRAMA DE SINTXIS.

Un segundo mtodo para describir las producciones en alguna gramti-


ca del tipo 2 es el diagrama sintctico. Es una representacin grfica que permite ver a
las sustituciones dinmicamente, para ver movimientos a travs del diagrama. Los
smbolos utilizados son los siguientes:

Smbolos no terminales

Smbolos terminales

a Indica la direccin del movimiento para completar la sustituci

EJEMPLO:

Un enunciado BNF es:


w ::= w1 w2 w3 . Realizar su diagrama sintctico es:

w
w1 w2 w3

EJEMPLO:

Un enunciado BNF es:

w ::= w1 w2 w1 a bc w2 . Realizar su diagrama sinstctico:

w1 w2
w
w1 a

b c w2
- 42 - V. Ibaez Q. - Docente FINESI - UNA - Puno
EJEMPLO: Enunciado de BNF:
w ::= ab w . Construya su diagrama de sintxis:

b a

EJEMPLO: Enunciado de BNF:


w ::= abc abc w . Construya su diagrama de sintxis:

a b c
w w
a b c

c b a

EJEMPLO: Enunciado de BNF:


v0 ::= aa v0 aa . Construya su diagrama de sintxis:

v0
a a

a a

EJEMPLO: Enuncaido de BNF:

v0 :: = x v0 y w1
. Construya su diagrama de sintxis.
w1 :: = y v1 z
Gramtica - 43 -

v0 w1
y w1
z

x y

EJEMPLO: Enunciado de BNF:


v0 ::= aa v0 a b . Construya su diagrama de sintxis:

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 sintxis:
v 2 :: = bb v 2 bb

a v2 b
v0 v1
b v1

c b
a a

v2
b b

b b
- 44 - V. Ibaez Q. - Docente FINESI - UNA - Puno
2.5. GRAMTICAS REGULARES Y EXPRESIONES REGULARES.

Existe estrecha conexin entre el lenguaje de una gramtica regular y una expre-
sin 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 gramtica regular G = ( V , S , v0 , ) .

Definicin.- Sea G = ( V , S , v0 , ) una gramtica regular y se especifi-


ca por un conjunto de diagramas sintcticos, es posible combinar todos los diagramas
sintcticos dentro de un gran diagrama que representa a v0 , y slo tenga smbolos
terminales, se denomina diagrama maestro de G.

Reglas:
1. Los smbolos 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
sucesin, 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 travs del segmento D1 y si
D1 corresponde a la expresin regular , entonces D corresponde a * .

EJEMPLOS:

D
1. D1 D2 D3 D4 est en sucesin, entonces:
1 2 3 4

1 2 3 4
Gramtica - 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-
cin en V * dada por:

a: v0 a aw
w a bbw Expresar en BNF y diagrama sintctico.
wac
SOLUCIN:

Expresar en notacin 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 gramtica.
- 46 - V. Ibaez Q. - Docente FINESI - UNA - Puno

a c

b b v0

La expresin 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 sintctico.
v0 a a
v0 a b
SOLUCIN:
v 0 :: = aa v 0 a b

v0
a b

a a v0

La expresin 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 notacin BNF y su respectivo diagrama sintctico.


Gramtica - 47 -
SOLUCIN:

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

y z

x y

La expresin 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 notacin BNF, diagrama sintctico, diagrama maestro y la expre-
sin regular.
- 48 - V. Ibaez Q. - Docente FINESI - UNA - Puno

SOLUCIN:

v0
Expresar en notacin BNF a v1

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

El diagrama maestro es:

v0
a a Expresin Regular: (ab)*aa

EJERCICIOS:

1. Determinar la expresin regular y exprese en notacin BNF a los diagramas


sintcticos siguientes:

a b
v0 c
d

2.
v0
a b d

c d
Autmatas Finitos - 49 -

3
AUTMATAS FINITOS
Todo proceso que recibe una o varias entradas, que las transforma y que despus
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, oxgeno 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 an ms complejo es el comportamiento del ser humano, el cual recibe


infinidad de informacin de varios lados que se procesa de acuerdo con su estructura
cognitiva y que en funcin de esto toma una decisin de lo que debe hacer. Su compor-
tamiento o reaccin a la informacin proporcionada no se puede determinar con exac-
titud, ya que depende adems de la informacin de entrada, del entorno socioeconmico,
edad, valores morales entre otras muchas cosas ms. Este tipo de sistemas recibe el
nombre de sistemas infinitos.

Los autmatas finitos tambin reciben como entrada informacin que procesan y
en funcin de ello emiten una salida. Un autmata finito recibe una palabra, la cual debe
procesar por medio de un recorrido a travs de los diferentes estados que integran el
autmata, y si al final del procesamiento de sta el recorrido termina en un estado o
posicin de aceptacin, se dice que la palabra forma parte del lenguaje. A diferencia de
los sistemas infinitos, un autmata es un sistema finito y por eso se llama autmata
finito, en donde si es posible determinar con exactitud la salida que se tendr con cierta
informacin.
- 50 - V. Ibaez Q. - Docente FINESI - UNA - Puno
3.1. AUTOMTAS FINITOS DETERMINISTAS (AFD).

Un Autmata Finito Determinstica (AFD) es otro mecanismo para describir len-


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

Definicin.- Un autmata 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 autmata).
q0 K : Es el estado inicial o arranque del autmata.
F K : Es el conjunto de estados de aceptacin estados finales.
: K K : Es la funcin de transicin del autmata que determina defini-
da como:
: K K
( q, a ) = p, p, q K , a

Estructura de un autmata finito.

CINTA DE ENTRADA

a b a b a b a ...

Cabeza de lectura La cabeza se mueve en esta


direccin

Indicador de Estado
q0
q7 q1

q6 q2

q5 q3
q4

MECANISMO DE CONTROL
Autmatas Finitos - 51 -

La funcin de transicin de un autmata finito determinista es que


( p, x ) = q , s y slo s la mquina puede pasar de un estado p a un estado q
al leer el smbolo 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 transicin de estados (TTE) es:

a) Construya el diagrama de transicin de un autmata.


b) Cmo se podra escribir una Expresin Regular para las cadenas de as y bs
que contuvieran una cantidad impar de bs?.

SOLUCIN: a)

a a
b

q0 q1
b

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


- 52 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Ejemplo: M = ( K , , , q0 , F ) , cuyo diagrama de transicin de un autmata


est dado por:

F = {q2 }
q0 = {q0 }

a) Construya el diagrama de transicin de un autmata.


b) Encuentre la funcin de transiciones y la Expresin regular.

SOLUCIN: 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 expresin regular es: (b*ab)* a(a b)*


Observacin: En el autmata la funcin de transicin 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 smbolo ak .

Definicin.- Se define un estado de absorcin o muerte como aquel estado


qi K , y qi K , que no tiene ninguna transicin hacia ningn otro estado
(opcionalmente, a s mismo puede tenerlos), nicamente hay transiciones que inciden
Autmatas Finitos - 53 -

en l. Esto es: s ( qi , a k ) = ( q i , a k ) = q j , a k .

Ejemplo: Sea el autmata, cuyo diagrama de transicin se presenta en seguida:

a a
q0 q1 q2

b b
a,b a,b

q3

Si w = aaab; el autmata acepta la cadena, puesto que para en q2 F .


Si w = bbba; el autmata rechaza la cadena, puesto que para en q3 F .

Nota: El estado q3 no tiene ninguna transicin, nicamente hay transiciones que


inciden en l. Adems, q3 F , luego q3 es un estado de muerte.

Ejemplo: Realizar el autmata que reconozca el lenguaje (a b)aba*


SOLUCIN:

a,b a a a
q0 q1 q2 q3

Ejemplo:
Sea = {0,1}, dibuje el diagrama de transicin que reconozca cadenas con dos
unos consecutivos.

SOLUCIN:
- 54 - V. Ibaez Q. - Docente FINESI - UNA - Puno

0 0,1
1
1
q0 q1 q2
0

Expresin Regular: (0*10)*1(01)*

Ejemplo: Se tiene el Autmata 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.

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


Autmatas 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. Ibaez Q. - Docente FINESI - UNA - Puno

Definicin.- Una configuracin de un AFD M = ( K , , , q0 , F ) es un ele-


mento de C M = K * . La configuracin (q,x) indica que M est en el estado q y le
falta leer o consumir la cadena x de la entrada. Esta es informacin suficiente para
predecir lo que ocurrir en el futuro.

Definicin.- La relacin 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 .


Definicin.- La relacin lleva en cero o ms pasos M es la clausura reflexiva y
*

transitiva de .

Definicin.- 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 continuacin:

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.
SOLUCIN: La tabla de transicin de estados es el siguiente:

qi a b
q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q3 q3
Autmatas Finitos - 57 -
La configuracin 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 transicin es el siguiente:

q0 q1
0
1 1 1 1
0
q2 q3
0
a) Encuentre la tabla de transicin 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. Ibaez Q. - Docente FINESI - UNA - Puno
3.2. AUTOMTAS FINITOS NO DETERMINISTA (AFND).

Una versin en principio ms potente es un Autmata Finito No Determinsta


(AFND), donde frente a un estado actual y un siguiente caracter, es posible tener cero,
uno o ms estados siguientes. Hay dos formas posibles de entender cmo 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 visin).

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
vaca. Una transicin- de un estado p a uno q permite activar siempre que se
active p sin necesidad de leer ningn carcter 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

Cmo 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 slo 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 relacin que hay entre
AFD y AFND es que los AFD son un caso particular de los AFND.
Nota: Cuando tenemos ms de una transicin con un mismo smbolo del alfabeto
desde un estado, se refiere a AFND.
Autmatas Finitos - 59 -
Ejemplo:

q0 q2 q4

a b
a b
q1 q3
b

Del estado q0 sale con el smbolo a con dos transiciones, una al estado q1 y
otra al estado q4 , es decir (q0 , a) = {1,4}.

Definicin.- En los AFND no existen los estados de muerte o absorcin.

Definicin.- Un autmata 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 aceptacin).
F : K * K es la relacin de transicin 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 transicin
es el siguiente:

a b
q0 q1 q2

b a a

q3 q4
b
- 60 - V. Ibaez 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 transicin de


estados se presenta en seguida:

b b
a
q0 q1 q2
a
b
a) Construya la tabla de transicin de estados.
b) Cul es el lenguaje aceptado por M?
c) Encuentre las funciones de transicin
d) Realice la configuracin para la cadena x = bbababab

SOLUCIN:
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
Autmatas Finitos - 61 -

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

Definicin.- La relacin 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 ms pasos *M .

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

SOLUCIN:
( 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. Extensin de la funcin de transicin a cadenas.

Al igual que en el caso del AFD, la funcin de transicin se puede exten-


der para que pueda aplicarse a cadenas.

~ : K * 2 K como sigue: q K , x * , a
Definicin.- Se define
a)
~ (q, ) = {q}

~
b) ( q, xa ) = U p~ ( q , x ) ( p , a )
- 62 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Observacin: Cuando se restringe al dominio K , coincide con el de la


funcin de transicin , ya que:
~ ( q, a ) = U ~ ( p , a ) = U
p ( q , ) p{q } ( p , a ) = ( q , a )

Ejemplo: Sea M el AFND, cuyo diagrama de transicin se presentacin en


seguida:

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

Calcule el resultado de
~ (q , abbc ) .
0
SOLUCIN:
( 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 }
Representacin del anlisis de la cadena abbc a travs del AFND en forma de
grafo multietapa.
Autmatas Finitos - 63 -

a b b c
q0

q1

q2

3.2.2. Lenguaje aceptado por un autmata finito no determinista (AFND).

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


SOLUCIN:

0 1
q0 {q0,q1} {q0,q3}
q1 {q2}
q2 {q2} {q2}
q3 {q4}
q4 {q4} {q4}
- 64 - V. Ibaez 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 transicin de estados.
Autmatas 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 frmula: 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. Ibaez Q. - Docente FINESI - UNA - Puno
3.3. EQUIVALENCIA ENTRE AFD y AFND.

Los autmatas finitos no deterministas (AFND) son ms convenientes que los


AFD, pues para algunos lenguajes es ms fcil construir un AFND que lo reconozca,
que un AFD. De hecho, sta es la principal utilidad de los autmatas no determinstas,
pues no sirven para describir tipos nuevos de lenguajes. dicho de otro modo, dado un
autmata 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
autmatas finitos (AFD y AFND) son totalmente equivalentes en cuanto a los lengua-
jes que reconocen. Por otra parte, cuando hay que construir un autmata para recono-
cer un lenguaje, en la prctica siempre se desea evitar el indeterminismo, cuyo anlisis
es poco eficiente. Por el mismo motivo, se prefiere utilizar el autmata finito determinista
mnimo o cociente.

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


definicin de un AFND para el cual la funcin de transicin asigna a cada par (estado,
smbolo) un conjunto de estados que como mucho contiene un estado. Vamos a ver
cmo se cumple la condicin 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
funcin de transicin del AFD simule el cambio de conjuntos de estados que se produ-
ce en el AFND para un mismo smbolo de entrada.

Definicin.- 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 ' , ) . }
Definicin.- 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.
Autmatas Finitos - 67 -

iii) F ' = K ' ( K F ) , son todos los conjuntos de estados de M que conten-
gan algn estado de F.
iv) Q K ' (Q K ) y c , (Q , c ) = U E (q ' )
qQ , ( 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 algn 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 smbolos de ,y se aplica sobre el smbolo inicial s = q0 .
Al hacer esto, darn como resultados un conjunto A (K ) , que aadiremos a una
lista de estados nuevos.
- Se denomina marcar un estado a aplicar la funcin sobre todo los smbolos del
alfabeto.
- A partir de ah hay que marcar todos los estados nuevos que nos salgan.

El algoritmo para una vez estn marcado todos los estados nuevos, sern estados
de aceptacin aquellos estados que contengan algn estado de aceptacin del AFND.

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


AFD que acepta L.

Definicin.- 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. Ibaez 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-
tacin 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

SOLUCIN (Mtodo 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 }
Autmatas 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 transicin 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. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN (Mtodo 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 transicin 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

SOLUCIN:
' ({q1 , q2 ,L, qk }, a ) = {p1 , p2 ,L, pm } ({q1, q2 ,L, qk }, a) = {p1, p2 ,L, p
({q0 }, a ) = {q1 , q2 }
({q0 }, b ) = { }
Autmatas 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 transicin de estados es el siguiente:

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

{q1,q2} {}
b
a,b
- 72 - V. Ibaez Q. - Docente FINESI - UNA - Puno

EJERCICIOS:

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


que se presentan a continuacin:

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
Autmatas Finitos - 73 -

3.4. CONVERSIN DE EXPRESIN REGULAR (ER) A AFND.

Las Expresiones Regulares (ERs), Autmatas Finitos Determinstas (AFDs) y


Autmatas 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 prc-
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
mtodo de Thompson es de los ms sencillos.

Definicin.- La funcin (Th) convierte ERs en AFND, segn las siguientes reglas.
Sean y expresiones regulares:

---------------------------------------------------- ----------------------------------------
Expresin Regular (ER) Autmata Finito (AF)
---------------------------------------------------- ----------------------------------------

1) Th ( )

2) Th( )

a
3) a a , Th(a)

()

4) Th( )
( )

5) Th( ) () ( )


()
6) * Th( * )

---------------------------------------------------- ---------------------------------------------
- 74 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Teorema.- Sea E una Expresin Regular (ER), entonces l(Th( E )) = l( E ) .

Ejemplo: Sea = ba *

SOLUCIN:

q0
a
Para a: q1

q2
b
Para b: q3

Para a * (en este paso el estado 1 deja de ser de aceptacin).


a
q0 q1

q4
q5

Para ba * se tiene:


a
q0 q1

q2
b
q3
q4
q5

Ejemplo: Sea = 011


*

SOLUCIN:
Autmatas 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 )
SOLUCIN: Para ab
a b
q0 q1 q2

*
Para ( ab )

q3
q0
a
q1
b
q2


- 76 - V. Ibaez Q. - Docente FINESI - UNA - Puno

3.5. CONVERSIN DE AFD A EXPRESIONES REGULARES (ER).

Un procedimiento para transformar en forma sistemtica un AFD en una expresin


regular equivalente consiste en ir eliminando gradualmente nodos de una grfica 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 aadir 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; adems se aade una
transicin vaca del nuevo estado inicial al antiguo (i, , q0 ) , y varias transiciones de
los antiguos estados finales al nuevo {(qi , , f ) qi F }. Esta transformacin tiene
por objeto que haya un estado inicial al que no llegue ninguna transicin, y un solo
estado final del que no salga ninguna transicin.

2) El segundo paso consiste en eliminar nodos intermedios en la grfica 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 eliminacin de nodos intermedios es directo. La
idea es que al suprimir el nodo en cuestin, 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.
Autmatas Finitos - 77 -

En la figura precedente i , i , i son expresiones regulares.


Para eliminar el nodo q, reemplazamos la parte de la grfica de transiciones por
el subgrupo representado a continuacin.

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

Grfica de transiciones sin el nodo eliminado.

3) Cuando despus de aplicar repetidamente el paso 2), ya no sea posible hacerlo,


tendremos una grfica de transiciones. Esta grfica de transiciones se puede transfor-
mar en otra con una sola transicin, fusionando todas las transiciones en una sola con
etiqueta R1 + R2 + L + Rn . Esta etiqueta ser la expresin regular buscada. En forma
grfica se presenta a continuacin.

R1

R2

R3

Rn

Grfica de transiciones tras la eliminacin de nodos intermedios.

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


- 78 - V. Ibaez Q. - Docente FINESI - UNA - Puno

a,b
a
q0 q1

a b

q2 b

SOLUCIN:

Paso 1: Aadir un nuevo estado inicial y uno final.

a,b
a
i q0 q1

a b

q2 f
b

Paso 2: Eliminacin de nodos intermedios. Se elimina primero el nodo q1 .

q0 a(a+b)*
i

a b


q2 f
b
Autmatas Finitos - 79 -

Paso 3: Despus 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 estn en paralelo.

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

Por lo que la expresin regular buscaa es:

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

Ejemplo: Consideremos el AFD que se presenta a continuacin y generemos


er(M).

a b a

q0 q1

b
- 80 - V. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN:
Paso 1: Aadir un nuevo estado inicial y uno como estado final.

a b a

i
q0 q1
f

Paso 2: Eliminacin 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 expresin regular buscaa es:

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

Mtodo alternativo para convertir un AFD a una Expresin Regular (ER).

A cada estado q i del autmata 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 autmata es L0 .
Si el autmata se encuentra en un estado q i , recibir de la entrada la palabra vaca
tiene el efecto de dejar al autmata en el mismo estado q i (puesto que el autmata no
Autmatas Finitos - 81 -

contiene transiciones ). Por consiguiente, si q i no es final, la palabra vaca no


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

n
Definicin.- 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 ecuacin L = A L + B , donde A . Enton-


ces se verifica que L = A* B .

Ejemplo: Dada el siguiente AFD, encuentre la expresin regular del autmata.

a b a

q0 q1

b
SOLUCIN:
Lq0 = aLq0 + bLq1 ............................................... (1)

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


En la ecuacin (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. Ibaez 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 mto-
do simplificado.

a,b
a
q1 q2

a b

q3 b

SOLUCIN:
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 ecuacin (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 ecuacin (1), se tiene:
= a(a + b)* (bb*a )* + (bb*a )* bb*
Autmatas 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

SOLUCIN: (a travs de la ecuacin caracterstica)


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

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


Lq3 = aLq3 + bLq3 + ............................................ (3)
En la ecuacin (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 ecuacin (1), se tiene:
Lq1 = a(a + b)* + ba(a + b)* b*

Finalmente encontramos la Expresin Regular buscada:


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

Ejemplo. Dado el autmata siguiente, obtener una expresin regular que denote el
lenguaje:
- 84 - V. Ibaez Q. - Docente FINESI - UNA - Puno

a,b b
q1 q2 q3
a

SOLUCIN:
X 1 = (a + b) X 2 .................................................................... (1)
X 2 = bX 3 + ...................................................................... (2)
X 3 = aX 2 ................................................................................ (3)

Paso 1: Fase de reduccin (Primera iteracin).

X 3 = aX 2

X 2 = bX 3 + X 3 = aX 2
X 1 = (a + b) X 2

Paso 2: Se realiza la segunda iteracin:

X 2 = b(aX 2 ) +
X 2 = (ba) X 2 + = (ba)
*

X 1 = ( a + b) X 2

Paso 3: La tercera iteracin y se encuentra la solucin:


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

er ( M ) = (a + b)(ba)*
Autmatas 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. Ibaez Q. - Docente FINESI - UNA - Puno

3.6. MINIMIZACIN DE AUTMAAS FINITOS.

Sea M = ( S , I , , s0 , T ) una mquina de Moore y k un entero no negati-


vo ( k Z + ). Entonces se define la relacin 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 mquina de Moore y sea R la


relacin definida arriba, entonces:
a) R es una relacin de equivalencia en S.
b) R es una congruencia de mquinas.

TEOREMA: Sea M = ( S , I , , s0 , T ) una mquina de Moore, R la relacin

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

c h b g
L M =L M .

Z + ), se define una relacin Rk en S, el conjunto de los


Observacin.- Si ( k
estados de una mquina de Moore M = ( S , I , , s0 , T ) . Si w I , se recuerda que
*

l( w ) es la longitud de la cadena w, estoes, el nmero de smbolos en w. Obsrvese


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


*

mquinas, pero son aproximaciones sucesivas a la congruencia R.

TEOREMA:
a) Rk +1 Rk , k 0
b) Toda Rk es una relacin de equivalencia.
c) R Rk , k 0
Autmatas 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 mtodo recursivo:

PROCEDIMIENTO:

Una procedimiento para reducir una mquina de Moore dada a una mquina
equivalente es el siguiente:

PASO 1: Se inicia con la particin 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 mtodo recursivo:

l q
i) Al alcanzar la particin 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 particin 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 particin resultante
P = Pk corresponde a la relacin de compatibilidad R.
PASO 4: La mquina cociente resultante es equivalente a la mquina de Moore
dada.
- 88 - V. Ibaez 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


relacin 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 relacin
de indistinguibilidad. Se define el autmata 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-
cin de transicin est dada por: ' ([ q ]~ , a ) = [ ( q , a )]~

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


relacin de indistinguibilidad. El autmata A ~ es el AFD mnimo que acepta L(M).

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


definimos la relacin 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 ))
Autmatas Finitos - 89 -
ALGORITMO DE MINIMIZACIN DE AUTMATAS:
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 particin correspondiente a la relacin R y construya la tabla de
estados de la mquina cociente que sea equivalente a la mquina de Moore, cuyo grafo
dirigido se presenta a continuacin:

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

s1 1
s3 s5

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

La tabla de transicin 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. Ibaez 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
Autmatas Finitos - 91 -
Se puede probar la congruencia de la mquina:

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 transicin 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. Ibaez Q. - Docente FINESI - UNA - Puno

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

SOLUCIN:

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

La tabla de transicin 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
Autmatas 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 mquina:

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. Ibaez Q. - Docente FINESI - UNA - Puno
La tabla de transicin de estados y el diagrama del automta 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 mquina M es ms eficiente en el sentido del


nmero 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

SOLUCIN:

La tabla de transicin 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
Autmatas 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. Ibaez 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 mnimo de estados es el siguiente, que es equivalente al


anterior.
Autmatas Finitos - 97 -

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

Encuentre la relacin R y construya el diagrama de transiciones de del autma-


ta finito cociente equivalente que corresponda al autmata 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

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

La tabla de transicin 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. Ibaez 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
Autmatas 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 mquina:

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 transicin de estados y el diagrama del automta 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 mquina M es ms eficiente en el sentido del


nmero de estados.
- 100 - V. Ibaez 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 transicin 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
Autmatas 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. Ibaez Q. - Docente FINESI - UNA - Puno

l q
4 = 3 = { s2 },{ s0 ,s4 },{ s5 },{ s1 ,s7 },{ s6 } , el algoritmo termina.
El autmata finito determinsta mnimo, 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 particin correspondiente a la relacin R y construya el grafo dirigi-


do de la mquina cociente que corresponde a la mquina de Moore, cuya tabla
de transicin de estados se muestra a continun:
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
Autmatas 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 mquina de Moore con el grafo dirigido. a) construya una gramtica


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

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

6. Minimizar los autmatas 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. Ibaez Q. - Docente FINESI - UNA - Puno
7. Minimizar los autmatas 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 autmatas 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 autmatas de las siguientes diagramas de estados.

1 0 1 0 1
0 1
S0 S1 S2 S3 S4
0 1
0
Autmatas Finitos - 105 -
10. Minimizar los autmatas 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. Ibaez Q. - Docente FINESI - UNA - Puno
Lenguajes Libres de Contexto - 107 -

4
Lenguajes Libres de Contexto
Se estudia una forma de representacin de lenguajes ms potentes que los regula-
res. Los lenguajes libres de contexto (LC), sirve como mecanismo formal para expresar
la gramtica de lenguajes de programacin o los semiestructurados. Backus-Naur-
Form es esencialmente una gramtica libre de contexto. Los DTDs usados para indicar
el formato permitido en documento XML son gramticas que describen lenguajes
libres de contexto. Los lenguajes libres de contexto, se usan en biologa computacional
para modelar las propiedades que se buscan en secuencias de ADN protenas.

El estudio de este tipo de lenguajes deriva en la construccin semiautmatica de


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

En trminos tericos, los lenguajes libres de contexto, van ms all de la memoria


finita sobre el pasado permitida a los regulares, puede almacenar una cantidad arbitra-
ria de informacin sobre el pasaod, siempre que esta informacin se acceda en forma de
pila.

4.1. GRAMTICAS LIBRES DE CONTEXTO (GLC).

Una gramtica libre de contexto (GLC) es una serie de reglas de derivacin,


produccin o reescritura que indican que un cierto smbolo puede convertirse en una
secuencia de otros smbolos, los cuales a su vez pueden convertirse en otros, hasta
- 108 - V. Ibaez 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 smbolo son independientes
de lo que tiene alrededor en la cadena que se est generando (libre de contexto).

Definicin.- Una gramtica libre de contexto (GLC) es una tupla G = (V , , P, S ) .


Donde:
V: Es un conjunto finito de smbolos no terminales V 0 (se representa
con letras maysculas).
: Es un conjunto finito de smbolos terminales V = .
S : Es el smbolo inicial o arranque S V .
P V (V )* es el conjunto de producciones de la gramtica son
las reglas de derivacin (conjunto finito).

Escribiremos las reglas de produccin 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 gramtica 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

SOLUCIN:

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 baaSb


baaSb baabAbb baabSSbb baabbb
Lenguajes Libres de Contexto - 109 -

Ejemplo: Considere la gramtica 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

SOLUCIN:
S aB
S bA
Aa
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 ))

SOLUCIN:
S ( E ) ( E + E ) ( E + ( E )) ( a + ( a ))

E
( )

E + E

( E )
a

a
- 110 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Ejemplo: Sea la gramtica G = (V , , P, S ) , cuya regla de produccin:


S aSa
S bSb
S Es contexto libre. Probar w = aabbaa
SOLUCIN:
S aSa aaSaa aabSbaa aabbaa
A travs del rbol de derivacin se tiene:
S

S
a a
S
a a

b S b

Ejemplo: Sea la gramtica G = (V , , P, S ) , cuya regla de produccin:


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

SOLUCIN:
S abB abbbAa abbbaaBb abbbaabbAa abbbaabbaaB
abbbaabbaabbAaba abbbaabbaabbaba
El Lenguaje de la gramtica es:
{
L(G ) = ab(bbaa) n bba(ba) n n 0 }
Ejemplo (Derivacin por la izquierda): Sea la gramtica G = (V , , P, S ) , cuya
regla de produccin 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


SOLUCIN:
S AB aaAB aaB aaBb aab y
S AB ABb aaABb aaAb aab

Ejemplo (Derivacin por la derecha): Sea la gramtica G = (V , , P, S ) , cuya re-


gla de produccin es:
1. S aAB
2. A bBb
3. BA
4. B
Probar para la cadena w = abbbb

SOLUCIN:
S aAB aaA abBb abAb abbBbb abbbb
y la derivacin por la izquierda:
S aAB abBbB abAbB abbBbbB abbbbB abbbb

A travs del rbol de derivacin se tiene:

a A B
b b A
B
b B b

- 112 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Ejemplo: Sea la gramtica G = (V , , P, S ) , cuya regla de produccin 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

SOLUCIN:

DERIVACIN POR LA IZQUIERDA DERIVACIN 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

Definicin: Dada una GLC G = (V , , P, S ) , la relacin lleva en un paso

(V ) *
(V )* se define como: x, y, A z P, xAy xzy
G G

Definicin: Definimos la relacin lleva en cero o ms pasos, *G , como la clau-

sura reflexiva y transitiva de G .

Definicin: Dada una GLC G = (V , , P, S ) , definimos el lenguaje generado por

G, l(G ) como: {
l(G ) = w * s *G w . }
Definicin: 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:
EE+E
E E*E
E (E )
Ea

SOLUCIN:
Ea
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 derivacin para G genera x (V )* , entonces S *G x .

Si S *G x , existe un rbol de derivacin que genera x.

Ejemplo: Sea las producciones: S ( S ) S , S


Desarrolle a travs de rbol de derivacin la cadena w = (())()

S S
( )
( S ) S ( S ) S

Definicin.- Una GLC G es ambigua, si existen dos rboles de derivacin distinos


para G que generan una misma cadena w l(G ) .

Ejemplo: La siguiente GLC describe un subconjunto de expresiones aritmticas


correctas.
EE+E
E E*E
- 114 - V. Ibaez 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 derivacin distintos.

SOLUCIN:

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

Observacin.- Cuando se tiene una gramtica 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 produccin 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 , slo permite la derivacin que queremos, pues he-


mos obligado a que primero se consideren los sumandos y luego los factores. La
tcnica usada ha sido distinguir lo que son sumandos (o trminos T) de factores (F),
de modo que se fuerza la precedencia *, +.

SOLUCIN:

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 produccin 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. Ibaez Q. - Docente FINESI - UNA - Puno
4.2. AUTMATAS DE PILA (AP)

En el campo del reconocimiento de lenguajes, los autmatas finitos no permiten


resolver muchos problemas importantes, por ejemplo es imposible determinar la co-
rreccin de un programa de ordenador escrito en cualquiera de los lenguajes de pro-
gramacin habituales. Tampoco es posible detectar mediante un autmata finito, los
errores sintcticos de un documento escrito en cualquier lengua humana. La insufi-
ciencia de los autmatas finitos para estas tareas bsicas se estudiar con lenguajes
regulares.

En sta seccin se introduce un nuevo tipo de mquinas computacionales, los


autmatas a pila, cuya complejidad es intermedia entre los dos tipos de mquinas de
Turing y como opuesto los autmatas finitos, los cuales permiten reconocer una colec-
cin de lenguajes del mayor inters. Se puede decir que todo autmata a pila es un caso
particular de mquinas de Turing, mientras todo autmata finito es un autmata a pila.

Los autmatas a pila estn ntimamente ligados a procedimientos diferenciados y


tiles de anlisis de las palabras de un lenguaje, que son apropiados para los llamados
lenguajes independientes del contexto, que permiten expresar la sntaxis de todos los
lenguajes de programacin, de las construcciones gramaticales ms importantes de la
prctica totalidad de las lenguas humanas que se hablan en el mundo y de otros
muchos lenguajes de relevancia en el mundo cientfico y tecnolgico.

La principal diferencia entre los autmatas de pila y los autmatas finitos es que los
primeros cuentan con una pila en donde pueden almacenar informacin para recupe-
rarla ms tarde. A continuacin se representa el autmata de pila.

CINTA DE ENTRADA

...

Cabeza de lectura La cabeza se mueve en esta


direccin

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. Autmata de Pila Determinista (APD).

Definicin.- Un autmata 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 smbolos de entrada de la mquina.
: Es el alfabeto de la pila finito (alfabeto de smbolos de pila).
q0 K : Es el estado inicial del autmata.
Z : Smbolo inicial de la pila.
F K : Conjunto de estados finales conjunto de estados de aceptacin.
: Es la funcin de transicin (conjunto finito) de ternas (estado, smbolo
de entrada, smbolo de pila), tal que: : K ( { }) K * .( )
Observacin: 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 smbolo del tope, escribe la
cadena y pasa a escanear el nuevo tope.

q
- 118 - V. Ibaez 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 autmata de pila, construya las transiciones:

a,Z;AZ
a,A;AA b, A;

a, A; , Z; Z
q0 q1 q2

SOLUCIN:
M = ( K , , , , q0 , F , Z ) , K = {q0 , q1 , q2 }, = {a, b}, = {A, Z },
F = {q2 }, Z (smbolo 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 autmata de pila, construya las transiciones:


x,; x y, x;
, Z; Z y, x; , Z; Z
q0 q1 q2 q3

SOLUCIN:
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 transicin.
a) ( q , x , ) = ( q ' , ) el contenido de la pila no se altera.
b) ( q , x , ) = ( q ' , ) el smbolo en el tope de la pila se borra y el control
finito pasa a escanear el nuevo tope de la pila, que es el smbolo colocado inmediata-
mente debajo de .
c) ( q , , ) = ( q ' , ) sta es una transicin o transicin espontnea. El
smbolo 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 .

Observacin:
i) Para garantizar el autmata de pila determinista, ( q, x, ) y (q , , )
con x , q K y no pueden estar simultneamente definidos (de lo contra-
rio el autmata tendr una opcin no determinismo).
ii) Las transiciones en un AFPD permiten que el autmata cambie el conteni-
do de la pila, sin procesar (o consumir) smbolos sobre la cinta de entrada.
iii) En el modelo AFDP se permite que la transicin ( 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 smbolo de pila.
v) La definicin de la funcin de transicin requiere que haya por lo menos
un smbolo en la pila. No hay computos con la pila vaca.

Ejemplo: Sea el autmata 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 transicin es el siguiente:
a, ; a b, a;
b, a;
1 2

Verificar la cadena w = aaabbb

SOLUCIN:
- 120 - V. Ibaez Q. - Docente FINESI - UNA - Puno

ESTADO PILA CADENA ACCIN O TRANSICIN 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

SOLUCIN:

ESTADO PILA CADENA ACCIN O TRANSICIN 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 vaca

Ejemplo: Sea el autmata de pila M = ( K , , , , q 0 , F ) , cuyo diagrama de


transicin est dada por:

b, ; b a,a;
a, ; a b,b;
, ;
S f

Verificar la cadena w = abba

SOLUCIN:
Lenguajes Libres de Contexto - 121 -

ESTADO PILA CADENA ACCIN O TRANSICIN 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 autmata 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?

SOLUCIN:

ESTADO PILA CADENA ACCIN O TRANSICIN 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 vaca.

b) Encontrar el lenguaje: L(M) = ?

l( M ) = {X nY n n m, n, m + }

Ejemplo: Con el diagrama de transicin dada en seguida, encontrar:


a) La funcin de transicin.
b) Verificar la cadena w = XXXYYY
c) Encontrar el L(M) = ?
- 122 - V. Ibaez Q. - Docente FINESI - UNA - Puno

x, ; x y,x;
, ; # y,x; , #;
1 2 3 4

SOLUCIN:
((1, , ), (2, # ) ), ((2, x, ), (2, x) ), ((2, y, x), (3, ) ),
a) =
((3, y, x), (3, ) ), ((3, , # ), (4, ) )
b) w = xxxyyy

ESTADO PILA CADENA TRANSICIN 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 }
Observacin: (p,x,s;q,y). Leer un smbolo de entrada, extraer un smbolo de la
pila, insertar un smbolo en la pila y pasar a un nuevo estado. Otra forma de representar
la transicin es: (p,x,y;q,z) tiene la etiqueta x,y;z.

4.2.1.1. Lenguaje aceptado por un autmata de pila.

Existen dos criterios para determinar el lenguaje aceptado por una aut-
mata de pila.
1) Sea M = ( K , , , , q0 , F , Z ) un autmata 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 ) : Configuracin inicial.
Lenguajes Libres de Contexto - 123 -

( p, , ) : Configuracin de aceptacin.

2) Sea la sextupla M = ( K , , , , q0 , F , Z ) un autmata de pila, enton-


ces N (P ) , el lenguaje aceptado por un M por pila nula pila vaca 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 autmata de pila, cuyo diagrama se presenta a continuacin.

a,Z;AZ
a,A;AA b, A;

b, A; , Z; Z
q0 q1 q2

Probar si w = aabb se acepta.

SOLUCIN:

El procesamiento de la cadena a travs de la configuracin 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 configuracin de aceptacin, por lo
tando w es aceptada por el autmata 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-
cin de aceptacin, por lo tanto w no es aceptada, la razn es la siguiente:
(q1 , b, Z ) (q1 , b, Z ) (q2 , b, Z )
- 124 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Nota: Si en el autmata de pila est la transicin (q1 , , Z ) y la transicin


(q1 , b, Z ) el autmata no ser determinista, adems por que si estuviera se podra
tener una solucin no determinista.

Ejemplo: Encontrar el lenguaje para el autmata de pila.

SOLUCIN:
La idea es escanear las as en la pila y borrar una a por cada b que sea leda
{ }
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 autmata 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 configuracin de aceptacin, por consiguiente w no es acepta-
do.

Ejemplo (autmata por vaciado de pila). Se tiene el AFDP, pero por vaciado de
pila de manera fcil, en vez de la transicin (q1 , , Z ) = (q2 , Z ) , usamos
( q1 , , Z ) = ( q2 , ) , a continuacin se presenta el diagrama de transicin 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 configuracin:


(q0 , aabb, Z ) ( q0 , abb, AZ ) ( q0 , bb, AAZ ) (q1 , b, AZ ) (q1 , , Z ) ( q2 , ,
Se procesa la palabra por completo y se vaca la pila.

Ejemplo: Dado el autmata 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 configuracin para la cadena w = xxx.


- 126 - V. Ibaez 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 autmata 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 autmata
qued en un estado de aceptacin 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 smbolo 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 aceptacin la cadena no se termin de escanear, la transicin (q2 , y, Z ) no est


definida en este autmata. Por consiguiente la cadena no es reconocida por el autma-
ta.
{
e) El lenguaje del AFDP es: L = x n y n n, m 0, n m }

4.2.2. Autmatas con Pila No Determinista (AFPN).

Definicin.- Un autmata finito con pila no determinista (AFPN) consta de


los mismos parmetros de un autmata de pila determinsta:
M = (K , , , , s, F , Z ) , donde la funcin de transicin 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 * .

Observacin: A diferencia de los AFDP, en los AFPN las transiciones ,


(q , , s ) no tienen restriccin 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

SOLUCIN: 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 transicin de Estados:


? (a, Z) (a, A) (,Z ) (b, A)
q0 (q0,AZ) (q0,AA) (q2, Z) (q1, )
q1 (q2, Z) (q1, )
q2
- 128 - V. Ibaez Q. - Docente FINESI - UNA - Puno

{ }
El lenguaje es el siguiente: L = a i b i i 0 sobre = {a , b} .

Observacin: En un AFPN se da la presencia simultnea de: ( q 0 , a , Z ) y

(q0 , , Z ) . Se puede construir un AFPN por el criterio de pila vaca:


a) Quitamos la transicin (q0 , , Z ) = (q2 , Z )

b) Agregamos la transicin (q0 , , Z ) = (q1 , Z )


c) Hacemos un cambio en la transicin (q1 , , Z ) = (q2 , Z ) por

(q1 , , Z ) = (q2 , ) , el nuevo AFPN, se presenta a continuacin:

a,Z;AZ
a,A;AA b , A;
,Z;Z
b , A; , Z ;
q0 q1 q2

La cadena vaca 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 autmata adivinar cul 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 smbo-
los acumulados en la pila.
2) Si no acierta el autmata seguir acumulando smbolos en la pila y no habr
aceptacin.
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. Ibaez 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.

SOLUCIN:
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 transicin.
b) Encuentre el lenguaje del autmata
c) Encuentre la cadena para el autmata.
Lenguajes Libres de Contexto - 131 -
4.2.3. Autmatas con Pila y LIC.

Teorema.- Si L = L(P) para algn autmata con pila AFPN P, entonces L=N(P)
para algn AFPN P, entonces P acepta por pila vaca lo que P acepta por estado final.

Sea M = (K , , , , s, F , Z ) , P se disea modificando P de tal manera


que vace su pila cuando P haya aceptado una cadena de entrada.
M ' = {K { p0 , p}, p0 , , {Z 0 }, Z 0 , }
a) Se aaden p0 estado inicial y p.
b) Tambin se aade Z 0 es el nuevo smbolo de pila.
c) Se mantienen todas las transiciones de M y se aaden 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 nmero de aes que bes, F = {q1} ,
cuyo diagrama de transicin 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. Ibaez Q. - Docente FINESI - UNA - Puno

( q0 , b, B ) = (q0 , BB )
( q0 , a , B ) = ( q0 , )
(q0 , b, A) = (q0 , )
(q0 , , Z ) = (q1 , Z )

Se podra de manera intuitiva la transformacin 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 transformacin AFPN ({L ( P )} AFPN ({ N ( P )}) , se puede realizar de mane-


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

SOLUCIN:
( 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. Ibaez Q. - Docente FINESI - UNA - Puno

(q0 , , BZZ 0 )

Como se ley toda la cadena y la pila no qued vaca, por tanto abb es
rechazada por el autmata de pila.

Teorema.- Si L = N(P) para algn autmata de pila AFPN P, entonces L = L(P)


para algn AFPN P. Esto es P acepta por estado final, lo que P acepta por pila vaca.

Sea P = ( K , , , , s , Z ) entonces el autmata:

P ' = ( K { p0 , q f }, , {Z 0 }, p0 , Z 0 , {q f }, )
Se construye a partir de P siguiendo los siguientes pasos:
1) Se aaden dos nuevos estados p0 y qf .
2) Se aaden a ,{Z 0 } , este ser el smbolo inicial de la pila.
3) Se mantienen todas las transiciones de P, aadiendo las siguientes transicio-
nes:
( p0 , , Z 0 ) = {( q0 , ZZ 0 )}
( q, , Z 0 ) = {( q f , Z 0 )}, q K

GIC Y AUTMATA DE PILA

GRAMTICA AP PILA VACA

AP ESTADO
FINAL

Observacin: 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 -
Demostracin:
Para una G = (V , , S , P ) se construye un AFPN que utiliza la pila para simular la
derivacin de cadenas realizadas por G. P requiere de slo tres estados, independien-
tes del nmero de variables y producciones de G.
P = ( K , , , F , q0 , Z , ), K = {q0 , q1 , q2 },
F = {q2 }, = V {Z }
La funcin de transicin , se define as:
1) ( q0 , , Z ) = {( q1 , SZ )} , transicin 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 produccin de
la gramtica G. Mediante estas transiciones se simulan las derivaciones, si en el tope
de la pila est A y en la derivacin 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 aceptacin q2 cuando detec-
ta el marcador de fondo Z.

Ejemplo: Considere la gramtica G = (V , , S , P ) con V = {S , a, b, c}, = {a, b, c} y


las reglas de produccin P = {S aSa , S bSb, S c} , el cual genera el len-
{ }
guaje L(G ) = wcw R w {a, b}* . El autmata 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 transicin:
- 136 - V. Ibaez Q. - Docente FINESI - UNA - Puno
b) Verifique para la cadena w = abbcbba.

SOLUCIN:

, S; aSa
, ; S , S;bSb
, S; c

a) p q

a,a;
b,b;
c,c;
b) w = abbcbba.

Estado Cadena Pila Transicin 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 gramtica independiente del contexto (GIC), cuyas produc-
ciones son:
S aSa
S bSb
S c
SOLUCIN:
{
Esta gramtica reconoce: L ( G ) = wcw I w {a , b}* }
Entonces el autmata de pila que reconoce esta gramtica 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 transicin 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. Ibaez Q. - Docente FINESI - UNA - Puno

Definicin.- Sea la gramtica G = (V , , S , P ) en la FNG se puede construir un


AFPN tal que L(G) = N(P). P = ( K , , , q0 , Z , ) Donde la funcin de transicin
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 gramtica 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 produccin 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
Cz
Quitamos la regla de redenominacin para obtener la FNG de A:
Lenguajes Libres de Contexto - 139 -

S xAC
S yBC
S
A xAC
A yBC
A
B yBC
B
Cz

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 autmata de pila.
- 140 - V. Ibaez 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 vaca; por
lo tanto la cadena no es reconocida.

4.2.4. Forma Normal de Chomsky.

Una de las ventajas de clasificar los lenguajes en funcin de su gramtica 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 gramticas 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 gramtica


independiente del contexto. Si el lenguaje generado por la gramtica contiene la cade-
na vaca, entonces debe aparecer cuando menos una regla en la gramtica; de lo
contrario, no habra manera de derivar la cadena vaca del smbolo inicial de la gram-
tica.

Procedimiento:
1) Para cada estado de aceptacin 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 derivacin que utilice esta gramtica comenzar sustituyendo el smbolo inicial
de la gramtica por un objetivo principal del autmata.
2) Para cada estado p en M, forme la regla de reestructura p, , p .
3) Para cada transicin (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 transicin (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 transicin 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 smbolo 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 transicin ( p, x, ; q, z ) y luego se intenta pasar del
estado q al estado r a travs 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 Gramtica Independiente del Contexto (GIC).

Ejemplo: Dado el autmata de pila:

b, ;
c, ; c c,c;

f g h

a) Determinar el l(M ) .
b) Encontrar una gramtica independiente del contexto G l (G ) = l ( M ) .

SOLUCIN:
a) El lenguaje del autmata 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. Ibaez 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 autmata de pila, construya una gramtica independiente del


contexto.

g , ; g
c, ; c ,c;

r s t

f ,g;
SOLUCIN:
Paso 1: v0 r, , t

Paso 2: r, , r

s, , s

t, , t
- 144 - V. Ibaez 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. Ibaez 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 gramtica independiente del contexto (GIC) de pila descrito a
continuacin:

x,; x,;
z,;z y,z;
1)
p q h

x,;x y,x;
, ; # y,x; ,#;
2)
1 2 3 4
Mquinas de Turing - 147 -

5
MQUINAS DE TURING
Las mquinas de Turing fue propuesta por Alan M. Turing en 1936. La idea bsica
de Turing fue estudiar los procesos algortmicos utilizando un modelo computacional.
Es conveniente considerar a las mquinas de Turing como una versin generalizada de
los autmtas finitos y autmatas de pila.

Las mquinas de Turing se asemejan a los autmatas 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 mquinas de Turing pueden mover sus cabezas de lectura hacia adelan-
te, hacia atrs y pueden leer o escribir en la cinta.

5.1. FUNCIONAMIENTO DE LA MQUINA DE TURING (MT).

La mquina de Turing contiene un mecanismo de control que en cualquier mo-


mento puede encontrarse en uno de entre un nmero finito de estados. Uno de stos
estados se denomina estado inicial y representa el estado en el cual la mquina co-
mienza los clculos. Otro de los estados se conoce como estado de parada o estado
halt final de clculo; una vez que la mquina llega a ese estado, termina todos los
clculos. El estado de parada de una mquina de Turing difiere de los estados de
aceptacin de los autmatas finitos y de pila en que stos pueden continuar sus
clculos despus de llegar a un estado de aceptacin; mientras que una mquina de
Turing debe detenerse en el momento en que llegue a su estado parada. El estado
inicial de una mquina de Turing no puede ser a la vez el estado de parada; por lo tanto,
- 148 - V. Ibaez Q. - Docente FINESI - UNA - Puno
toda mquina de Turing debe tener cuando menos dos estados. La diferencia ms
importante entre una mquina de Turing y los autmatas finitos es que la mquina de
Turing puede leer y escribir en su medio de entrada. La mquina de Turing est equipa-
da con una cabeza que puede emplearse para leer y escribir smbolos en la cinta de la
mquina, esta cinta tiene un extremo izquierdo pero se extiende indefinidamente hacia
la derecha.
La mquina de Turing puede emplear su cinta como almacenamiento auxiliar, tal
como autmatas de pila. En una mquina de Turing no se limita a las operaciones de
insercin y extraccin, sino que puede rastrear los datos de la cinta y modificar las
celdas que desee sin alterar a las dems. Al utilizar la cinta para fines de almacenamien-
to auxiliar, es conveniente que una mquina de Turing emplee marcas especiales para
distinguir porciones de la cinta. Para esto, permitimos que una mquina de Turing lea
y escriba smbolos que no aparecen en los datos de entrada; es decir, hacemos una
distincin entre el conjunto (finito) de smbolos, llamado alfabeto de la mquina, en el
que deben estar codificados los datos de entrada iniciales, y un conjunto, posiblemen-
te mayor (finito) de smbolos de cinta, que la mquina puede leer y escribir. De esta
manera, los smbolos de cinta de una mquina de Turing pueden incluir marcas espe-
ciales que no sean smbolos del alfabeto de la mquina. El espacio en blanco es un
smbolo que cae en esta categora; se trata de un smbolo 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, llenndose 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 Mquina de Turing


Mquinas de Turing - 149 -
En la mquina de Turing la cabeza lectora es de lectura y escritura, por lo que la
cinta puede ser modificada en curso de ejecucin. Adems, en la mquina 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 operacin de la mquina de Turing consta de los siguientes pasos:
a) Lee un caracter en la cinta.
b) Efecta una transicin de estado.
c) Realiza una accin en la cinta.
Las acciones que puede ejecutar en la cinta la mquina de Turing pueden ser:
- Escribe un smbolo 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 mquina de Turing est escrita inicialmente en la


cinta, como es habitual en nuestros autmatas, pero iniciando a partir de la segunda
posicin 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 , | | ).

Definicin.- Una mquina 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 smbolo blanco B


F K : Conjunto de estados finales.
: (K ) (K {R, L, =}) es una funcin parcial, llamada funcin
de transicin (q, X ) = ( p, Y , {I , D}) .

Ejemplo: Considere la mquina de Turing:


M = ( K = {q0 , qF }, = {0,1}, = {0,1, B}, q0 , B, F = {qF }, ) , cuyo diagrama
de transicin es el siguiente:
- 150 - V. Ibaez Q. - Docente FINESI - UNA - Puno

0 0,+
1 0,+
B B, =

q0 qF

La funcin de transicin 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 mquina de Turing:


M = ( K = {q0 , q1 , q F }, = {0,1}, = {0,1, B}, q0 , B, F = {q F }, ) , con la siguien-
te funcin de transicin:
Mquinas 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

Definicin.- La descripcin instantnea (DI) o configuracin, es una expresin


de la forma: a1a2 L ai 1qai L an donde los smbolos a1 , a2 ,L, an y q K , tal
como se presenta a continuacin:

B a1 a2 ai-1 ai an B

Esta descripcin instantnea 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 smbolo ai .
- 152 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Observacin: Una transicin ( q , B ) = ( p, S , D) en una mquina de Turing


requiere que el smbolo este escrito en la casilla escaneada, adems la unidad de
control sobre-escribe el blanco , B, | | sobre S y realiza un desplazamiento D.

B S, D

q p

Cmputos especiales.- Durante el cmputo o procesamiento de la palabra de


entrada, hay dos casos especiales que se pueden presentar:
a) El cmputo termina porque en determinado momento no hay transicin defini-
da.
b) El cmputo no termina; esto se denomina un bucle infinito, y se expresa como:

w1q w 2 * , el cmputo que se inicia en w1qw2 no se detiene nunca.

5.2. LENGUAJE ACEPTADO POR UNA MQUINA DE TURING (MT).

Una cadena de entrada w es aceptada por una mquina de Turing M si el


cmputo que se indica la configuracin inicial q0 w termina en una configuracin

instantnea w1pw2 , p es un estado de aceptacin, por lo que M se detiene comple-


tamente.

El lenguaje L(M) aceptado por una mquina 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 mquina M L(M ) , la mquina M siempre se detiene.

Definicin.- Las mquina de Turing originan las siguientes clases de lenguajes:


1) L es un lenguaje recursivamente enumerable (RE) si existe una mquina de
Turing M tal que L(M) = L.
2) L es un lenguaje recursivo, si existe una mquina de Turing M tal que L(M) =
L y M se detiene con todas las cadenas de entrada.

Definicin.- Un diagrama de transicin est formado por un conjunto de nodos


Mquinas de Turing - 153 -
que corresponden a los estados de la mquina Turing. La transicin
( q , a ) = ( p , b, D ) se representa as:

a b, D

q p

Definicin.- El control finito estacionario es una transicin que tiene la forma:


(q, a) = ( p, b, N ) . donde a, b y N representa un no-desplazamiento (=).

Observacin.- Los mquinas Turing con transiciones estacionarias


( q , a ) = ( p , b, N ) , aceptan los mismos lenguajes que los mquinas de Turing
estndares. La directiva N tambin se puede simular con un movimiento a la izquierda,
seguido de un retorno a la derecha.

Ejemplo: Sea la mquina de Turing M = ( K , , , q0 , B, F , ) , K = {q0 , q1} ,


F = {q1} , construya una mquina 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.

SOLUCIN:

a a, D
B B, D

q0 q1

q0 w q0 aa aq0 a aaq0 B aaBq1 B Esta mquina para en el estado q1


y reconoce la cadena.
- 154 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Ejemplo: Se puede disear una mquina de Turing que acepte L = {0 n1n n 1}. La
estratgia 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
transicin 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 funcin de transicin, 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.
Mquinas 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 aceptacin.

Ejemplo: Considrese que se tiene una mquina de Turing, cuya funcin de


transicin 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. Ibaez Q. - Docente FINESI - UNA - Puno
SOLUCIN:

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 mquina de Turing est dada por:
L( M ) = {X nY n 0}.

Ejemplo: Considere una mquina de Turing con los siguientes elementos:


K = { q 0 , q1 , q 2 }, = {0 ,1}, = {0 ,1, B }, F = { q 2 }
cuya tabla de transicin 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.

SOLUCIN:
Mquinas 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 verificacin la cadena w = 0011.

EJERCICIO:
1. Se tiene el diagrama de transiciones de la mquina 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 mquina de Turing


K = {q 0 , q1 , q 2 , q3 , q 4 }, = {0,1}, = {0,1, B}, F = {q 4 } , cuyo diagrama
de transicin se presenta en seguida.
- 158 - V. Ibaez 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 mquina de Turing, cuya diagrama de transiciones se presenta a continua-


cin:

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. MQUINAS DE TURING COMO GENERADORES DE LENGUAJES.

Definicin.- Una de las capacidades ms importantes es generar lenguajes, para


esto los estados finales son necesarios, en la mquina 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 mquina de Turing genera cadenas con un nmero par de


a(es) sobre = {a}; L = a 2i i 0 . { }
Mquinas de Turing - 159 -

B a, D

q0 q1

B a, D

5.3.1. Tcnicas para la construccin de Mquinas de Turing.

Existenn tcnicas que facilitan la construccin de mquinas de Turing, pero


que no afectan a la potencia computacional del modelo, ya que siempre se puede
simular la solucin obtenida mediante el modelo estndar (formal).

5.3.2. Almacenamiento en el control finito (Unidad de control).

Consiste en asociar a determinado estados (o a todos) compos finitos de


informacin adicional sobre las transiciones en el control finito, adems se puede
utilizar el estado de control para almacenar una cantidad finita de informacin definida
como:
([qi , ], ) = ([qt , ], , {I , D, N })
Cada estado se representa como un par ordenado [qi , ]
Donde: qi : Es el estado real.
: Es la informacin que se pretende almacenar.
,

Unidad de Control

qi Estados


}Almacenami ento

... X ...

w
- 160 - V. Ibaez Q. - Docente FINESI - UNA - Puno

Ejemplo: Construir una mquina de Turing que reconozca: L = {01* + 10*} para
la M = ( K , , , q0 , F , B, ) . La estrategia es recordar el primer smbolo 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 funcin de transicin 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 transicin se presenta a continuacin:

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

Observacin:

([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. MQUINAS DE TURING MODIFICADAS.

Hay ciertos modelos de computacin relacionados con las mquinas de Turing,


que poseen el mismo potencial como reconocedores de lenguajes que el modelo bscio.
Mquinas de Turing - 161 -
5.4.1. Mquinas de Turing Multicinta.

En el modelo de multicinta, hay n cintas diferentes y n cabezas de


lectura-escritura. La funcin de transicin para mquinas de Turing con n cintas
queda definido como:
: K n K n {I , D, N }n

Grficamente se observa.

... ...

... ...

...

... ...

...

U.C.
C.F.

Ejemplo: La mquina 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 funcin de transicin 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. Ibaez 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. Mquinas de Turing Multipista.

En el modelo multipista, la cinta est dividida en un nmero finito de k


pista. La funcin de transicin tiene la siguiente notacin.
: K k K k {I , D, N }
(q, (a1 , a2 , a3 ,L, ak )) = ( p, (b1 , b2 , b3 ,L, bk ),{I , D, N }

En forma esquemtica se tiene:

B 1 0 1 B
B 1 1 1 B
B B B B B

q0

Ejemplo: Realizar la suma de los dgitos, se parte de la izquierda a la dere-


cha con la siguiente transicin:

(q , , D) si (B, B, B)
( q0 , ) = 0
(q1 , , I ) si = (B, B, B)

Teorema.- El lenguaje L es reconocido por una mquina de Turing multicinta


si y solo s L es reconocido por una mquina de Turing de una sola cinta.
Prueba:
1. ) Si L es reconocido por una mquina de Turing de una sola cinta,
entonces L es reconocido por una mquina de Turing multicinta. Basta con hacer
funcionar una sola cinta de la mquina de Turing multicinta, podra ser la cinta de la
cadena de entrada.
Mquinas de Turing - 163 -

2. ) Si L es reconocido por una mquina de Turing multicinta entonces


L es reconocido por una mquina de Turing de una sola cinta. Se supone que la
mquina de Turing M dispone de k cintas, acepta el lenguaje L, y simulamos M
mediante una mquina de Turing N de una sola cinta, suponiendo 2k pistas.

- Si la mquina de Turing multicinta tiene k = 2 cintas se dispone de una


mquina de Turing de una sola cinta de 2k = 4 pistas, las pistas primera y tercera tienen
la informacin 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 simulacin 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 mquina 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. Ibaez Q. - Docente FINESI - UNA - Puno
5.4.3. Mquinas de Turing con mltiples 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 mquinas de Turing
multicinta, se admiten movimientos L, R Z. En forma grficamente podemos mostrar
en seguida.
... ...

...

U.C.
C.F.
Teorema.- Un lenguaje L es reconocido por una mquina de Turing de
mltiples cabezales L es reconocido por una mquina de Turing de un cabezal
(ambos modelos tienen el mismo poder computacional).

La demostracin se realiza en forma intuitiva.


1. Si L es reconocido por una mquina de Turing unicabezal, L es recono-
cido por una mquina de Turing multicabezal. Basta con trabajar con un slo cabezal
en la de mltiples cabezales.
2. Si L es reconocido por una mquina de Turing multicabezal, L es recono-
cido por una mquina de Turing unicabezal. La simulacin es similar a la realizada para
las mquinas de Turing multicinta: se utiliza una cinta con (k+1) sectores, k para
marcar las posiciones de los distintos cabezales y uno para la informacin de la cinta.

5.4.4. Mquinas de Turing Offline.

Es un caso particular de las mquinas de Turing multicinta: tienen una


cinta especial de slo lectura en la que el cabezal, que slo puede moverse hacia la
derecha, no puede moverse de la zona delimitada por un par de smbolos especiales. En
forma esquemtica se presenta:
Mquinas de Turing - 165 -

... ? $ ...

U.C.
C.F.
...

... ...

...

... ...

Para simular, no hace falta ms que construir una mquina de Turing


multicinta con una cinta especial sobre la que se copia la informacin de entrada. El
cabezal de esa cinta slo lee (sobreescribe siempre el mismo smbolo que lee) y para al
encontrar el smbolo $. Para demostrar que su poder computacional es el mismo que
una mquina de Turing estndar.

5.5. MQUINAS DE TURING NO DETERMINISTAS.

Definicin.- Se diferencia de las mquinas de Turing deterministas por la funcin


, que para cada caso q y para cada smbolo 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 mquina de Turing no determinista


L es reconocido por una mquina de Turing determinista (ambos modelos tienen el
mismo poder computacional).

La demostracin se realiza en forma intuitiva.


1) ) Si L es reconocido por una mquina de Turing determinista, entonces L es
reconocido por una mquina de Turing no determinista. Las mquinas de Turing
determinista son mquinas de Turing no determinista en las que hay una transicin por
cada estado/smbolo.

2. ) Si L es reconocido por una mquina de Turing no determinista, entonces


- 166 - V. Ibaez Q. - Docente FINESI - UNA - Puno
L es reconocido por una mquina de Turing determinista.

Podemos simular una mquina de Turing no determinista con una mquina de


Turing determinista de tres cintas:
a) Se obtiene un n que es el nmero mximo de opciones asociada a cada
transicin.
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 numrico.
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 lexicogrfico.
... 1 2 * 1 1 * 1 2 * 2 1 * ...

d) En la tercera cinta se realiza la simulacin, 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 transicin concreta se elige cada vez. S, por ejemplo, en la cinta dos
est la secuencia: 11231..., y simula computacin de mquina de Turing no determinista
(q, (a,1, B )) = ( p, (a,1, a ), ( D, D, D )) .
e) La mquina de Turing determinista prueba todas las combinaciones de la cinta
dos, empezando cada vez que una configuracin, cuando no sirva. Si la cadena es
reconocida en la mquina de Turign no determinista, tambien es reconocida en le
mquina de Turing determinista.

Ejemplo: Sea el siguiente mquina 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
Mquinas 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 mquina de Turing no determinista hace esta
derivacin: 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 transicin 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 esquemtica 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 mquina 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 transicin: (q0 , (a,1, B )) = (q1 , (a,1, a ), ( D, D, D )) , el 1 de (a,1,B) signifi-
ca que se modela en la mquina de Turing no determinista, la transicin (q0 , a ) = (q1 , B, D) ,
- 168 - V. Ibaez Q. - Docente FINESI - UNA - Puno
es decir, se realiza la transicin 1.

5.5.1. Simulacin de autmatas por medio de Mquina de Turing.

Los autmatas finitos deterministas, autmatas finitos no deterministas o


autmatas finitos no deterministas con transiciones vacas; y los autmatas de pila
(autmata de pila determinista o autmata de pila no determinista), se pueden simular
con mquinas de Turing.

Definicin.- Dado un autmata M se puede construir una mquina de


Turing que acepte el mismo lenguaje que M.

Definicin.- Dado un autmata finito determinista M = ( K , , q0 , , F ) se


puede construir una mquina de Turing M tal que L(M) = L(M).

Teorema.- Todo lenguaje regular es recursivo.

Definicin.- Un autmata de pila M, se puede convertir en una mquina


de Turing M tal que L(M) = L(M).

Observacin:
- Las simulaciones de autmatas por medio de mquina de Turing permi-
ten concluir que los lenguajes regulares y los lenguajes independientes de contexto
son recursivos.
- La mquina de Turing M, as construda se detiene ante cualquier entra-
da w
- La mquina de Turing, ser determinista o no determinista, segn si es
un autmata finito determinista de pila o un autmata finito no determinista de pila.
- La mquina 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 tambin
lo son.

Observacin: Existen lenguajes recursivos que no son lenguajes inde-


pendientes de contexto.
Mquinas de Turing - 169 -

Ejemplo: Podemos ver que la interseccin de dos LICs nos di {a i b i c i i 0} y


no es LIC.

L.R. LIC Recursivos


Recursivamente
Enumerables *

Definicin.- Una gramtica G = ( , N , S , P ) es una gramtica 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 gramtica sensible del contexto, cuyas


reglas de produccin se presenta.
S abc aAbc
Ab bA
Ac Bbcc
S abc aAbc

Lema: Sea G = ( , N , S , P ) una gramtica sensible del contexto. Entonces existe


una mquina 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 tambin es recursivo, b)
La uncin de dos lenguajes RE es RE.
- 170 - V. Ibaez Q. - Docente FINESI - UNA - Puno

BIBLIOGRAFA CONSULTADA:

1. ALFONSECA, E., ALFONSECA, M., y MORYON, R. (2007). Teora de Autma-


tas y Lenguajes Formales, Primera Edicin, Editorial Mc-Graw Hill/Interamerican
de Espaa, S.A.U..
2. BROOKSHEAR, (1993). Teora de la Computacin, Primera Edicin, Editorial
Prentice Hall.
3. CAIRO, O. y GUARDATI, S. (2002). Estructuras de Datos. Segunda Edicin.
Edit. McGraw-Hill, S.A. de C.V. de Mxico.
4. CASES, R. Y MRQUEZ, L. (2002). Lenguajes, gramticas y autmatas. Pri-
mera Edicin. Edit. Alfaomega Grupo Editor, S.A. de C.V. Mxico.
5. GARCA, P. et. al. (2001). Teora de Autmatas y Lenguajes formales. Primera
Edicin. Editorial Alfaomega Grupo Editor, S.A. de C.V. Mxico.
6. GARCIA, F. (2005). Matemtica Discreta. Segunda Edicin. Edit. Thomson
Spain Paraninfo, S.A.
7. GRASSMANN, W.K. y TREMBLAY, J.P. (1997). Matemtica Discreta y Lgi-
ca. Primera Edicin. Editorial Prentice-Hall. Espaa.
8. JIMENEZ, J. (2009). Matemticas para la Computacin. Primera Edicin. Edit.
Alfaomega Grupo Editor, S.A. de C.V., Mxico.
9. KELLEY, D. (1995). Teora de Autmatas y Lenguajes Formales, Segunda
Edicin, Editorial Prentice-Hall.
10. KOLMAN, B.; BUSBY, R.C. y ROSS, S. (1997). Estructura de Matemticas
Discretas para la Computacin. Tercera Edicin. Editorial Prentice-Hall Hispa-
noamericana, S.A. Mxico.
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 teora de la computacin. Tercera
Edicin. Edit. McGraw-Hill/Interamericana Editores, S.A. de C.V. Mxico.
13. MARTIN DEL BRIO, B., y SANZ, A. (2007). Redes Neuronales y Sistemas
Borrosos. Tercera Edicin. Edit. Alfaomega Grupo Editor, S.A. de C.V. Mxico.
14. ROSEN, K.H. (2004). Matemtica discreta y sus aplicaciones. Quinta Edicin.
Edit. McGraw-Hill/Interamericana Editores, S.A. de C.V. Mxico.
15. VEERARAJAN, T. (2008). Matemticas discretas con teora de grficas y
combinatoria. Primera Edicin. Edit. McGraw-Hill/Interamericana Editores, S.A.
de C.V. Mxico.

vvvvvvvvvviiiiiiiiiiiiiiiiiiiiiiiiiiiqqqqqqqqqqq

Potrebbero piacerti anche