Sie sind auf Seite 1von 29

LENGUAJES, GRMATICAS Y

AUTMATAS
Unidad 7
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 1

LENGUAJES, GRMATICAS, AUTMATAS


Despus de un arduo recorrido hemos llegado al ltimo tema del programa, que est muy relacionado con las
ciencias de la computacin. Vivimos en la era de las comunicaciones, y da a da nos encontramos con problemas
que podemos llamar de entrada y de salida. Nos referimos a acciones que realizamos, por ejemplo, cuando
subimos al colectivo: las monedas que introducimos en la mquina constituyen la entrada y el boleto la salida.
Otro ejemplo cotidiano lo constituye la computadora: la entrada son los datos, la informacin, y la salida es el
resultado que se obtiene despus de haberlos procesado. En todos esos casos, se utilizan tipos de lenguajes
mediante los cuales las mquinas pueden procesar la informacin de entrada y realizar las acciones para la
operacin de salida.
En esta unidad recurriremos a muchos de los conceptos ya estudiados para abordar un tema nuevo que son las
mquinas de estado finito o circuitos secuenciales ( recordemos que ya vimos circuitos no secuenciales, las redes
de compuertas, en lgebra de Boole)

Para ello abordaremos primero el concepto de lenguaje formal y de gramtica.



Segn el Websters New Coollegiate Dictionary, un lenguaje es un conjunto de palabras y mtodos para
combinar palabras, que es usado y entendido por un extenso grupo de personas
1
.




Con frecuencia a lenguajes de tal tipo se los llama lenguajes naturales para distinguirlos de los formales, que son los
que se aplican para modelar un lenguaje natural y comunicarse con la computadora. Sin embargo, ambos tipos de
lenguajes tienen algunas cuestiones en comn como por ejemplo un alfabeto y reglas gramaticales.

Concretando, los lenguajes pueden clasificarse en naturales y formales.

Los lenguajes naturales se caracterizan por:
- una semntica, es decir, un significado
- una sintaxis, es decir, un conjunto de reglas gramaticales.
Son ejemplos de este tipo de lenguaje, los lenguajes de seres humanos, tales como: chino, espaol, ingls.

Los lenguajes formales se caracterizan por tener reglas gramaticales preestablecidas. Son ejemplo de este tipo de
lenguaje los lenguajes de programacin. Nos ocuparemos en esta unidad de tratar sus particularidades.

Para entender el significado del concepto lenguaje vamos a definir primero otros tales como alfabeto, letra y palabra.



Un alfabeto es un conjunto no vaco y finito de smbolos. Los smbolos del alfabeto son las letras, strings o
caracteres. Suele indicarse con la letra V.





1
, USA, 2008, ISBN 978-0-87779-916-0
a Segn el Websters New Coollegiate Dictionary, un lenguaje es un conjunto de palabras y mtodos para
combinar palabras, que es usado y entendido por un extenso grupo de personas
1
ss .
Un alfabeto es un conjunto no vaco y finito de smbolos. Los smbolos del alfabeto son las letras, strings o o
caracteres. Suele indicarse con la letra V.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 2

Tengamos en cuenta que un alfabeto, como todo conjunto, debe estar bien definido, es decir no deben quedar
dudas acerca de cules son los elementos que lo componen, por ejemplo si el alfabeto fuera {a, b, ab} se
plantearan dudas acerca del elemento ab, es un elemento del conjunto?, se construy usando a, b?; esas
dudas no pueden existir.

Los elementos que pertenecen al conjunto Alfabeto se denominan letras, por ejemplo la letra e forma parte de los
alfabetos que se usan en los idiomas espaol, italiano, ingls, entre otros.

Para el alfabeto V= {a, b}, tanto la a, como la b son letras, simplemente por ser elementos del ese conjunto.



Toda secuencia finita de letras de un alfabeto se denomina palabra.




Por ejemplo para el alfabeto V={0,1} -que muchas veces se denomina alfabeto binario- son palabras 1101,
001110. Podemos indicarlas w=1101, z=001110.

Al conjunto de todas las palabras que se pueden construir con las letras de un alfabeto se lo indica V*; tengamos
en cuenta que si bien el alfabeto es finito, V* no lo es.

Por ejemplo: Sea V = {a, b}, el alfabeto formado por los smbolos a y b.
v = ababbaaaw = bbbbx = aaaaason palabras de V*.
Llamamos a la palabra nula., es decir aquella que no tiene letras.

Algo para tener en cuenta es que convenimos que la palabra nula siempre pertenece a V*, sin importarnos cual es
el alfabeto V.

Las siguientes son operaciones para realizar con palabras sobre un alfabeto V. Estas operaciones son:



Concatenacin: si x e y son palabras, la concatenacin, x.y es una palabra formada por los smbolos de x
seguidos por los smbolos de y.


Veamos algunos ejemplos


Sea V = {0,1} alfabeto binario, sean v, w e y palabras de V*
Sean v=0111, w=1110
La palabra y= vw que leemos v contatenado con w queda:
y = 01111110
Tengamos en cuenta, adems, que la concatenacin es una operacin binaria y cerrada en el conjunto V*.

Te anims a analizar las propiedades de la concatenacin?
Si tens alguna dificultad, pods consultar con tu tutor o recurrir al libro de la ctedra, en el captulo 19.
e
Toda secuencia finita de letras de un alfabeto se denomina palabra.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 3

Potenciacin: si concatenamos n veces una cadena x, es decir...,
n
x.x.x.x.x.....x

obtendremos x
n
.

Tengamos en cuenta que si n = 0, se tiene la palabra nula y si n = 1 la palabra que se tiene es la dada.
En realidad la potenciacin es un caso particular de la concatenacin, ya que concatena una sola palabra n
veces.

Pods consultar una definicin por recurrencia en el captulo 19 del libro de la ctedra.


Ejemplo1


Si concatenamos 2 veces la cadena x obtendremos x.
Si concatenamos 3 veces la cadena x, obtendremos x.

Ejemplo 2

Sean v=0111w=1110
la palabra que se obtiene es y = vw que leemos y. v concatenado con w, por lo que resulta
y = 01111110


- Reflexin, inversa o trasposicin: si la palabra x est formada por los smbolos a
1
, a
2
, ...., a
n
, entonces la
palabra inversa de x, que indicamos x
R
, se forma invirtiendo el orden de los smbolos en la palabra;
x
R
= a
n
, ...., a
2
, a
1
.


Podras reconocer cules de las operaciones definidas son binarias y cules son unitarias? Cuando reconozcas
las binarias establec si son cerradas en V*. Si la respuesta es afirmativa, seal qu propiedades cumplen.
Si no pods contestar, recurr a tu tutor o al captulo 19 del libro de la ctedra.


Para continuar, veamos el siguiente caso:

Sea w = abc entonces w
R
= cba
Como ya dijimos V* denota a todas las palabras del alfabeto V, es decir que cada elemento de V* es una
secuencia finita de letras del alfabeto ya que es una palabra.

Ejemplo:

Si V = {a, b}, el alfabeto formado por los smbolos a y b se tiene que
v = ababbaaaw
w= bbbbx
z= aaaaason
son palabras de V*

e
e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 4

Imaginemos ahora que necesitamos enviar un mensaje que debe ser almacenado en un vector, para eso es til
conocer el nmero de letras que vamos a usar y por lo tanto es necesario dar una definicin de longitud de una
palabra, veamos entonces.
La longitud de una cadena w es la cantidad de smbolos que la forman.

Lo indicaremos long.w= ,w,= nmero de letras de w
Tengamos en cuenta que la longitud de cualquier palabra ser un nmero natural o cero.
Por ejemplo:
Teniendo en cuenta v=abba, w=bb, se tiene
Long v = |v| = 4
Long w = |w| = 2
Por lo tanto, si concatenamos v seguido de w, se tiene la palabra y =abbabb y entonces
Long y = long v + long w = 6
Como la palabra nula, , carece de caracteres o smbolos tiene longitud cero, | | = 0.

En sntesis, podemos esquematizar los componentes de un alfabeto de la siguiente manera:























Veamos ahora la definicin de lenguaje



Un lenguaje es un subconjunto de todas las palabras que se pueden formar con las letras de un alfabeto
V, es decir es L _ V*.




Consult la definicin formal en el captulo 19 del libro de la ctedra.
Smbolo
Letra o caracter
Cadena o palabra
Alfabeto
Un lenguaje es un subconjunto de todas las palabras que se pueden formar con las letras de un alfabeto
V, es decir es L _ V*.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 5

Las siguientes son operaciones que pueden realizarse con los lenguajes; en cada caso presentamos la definicin y
un ejemplo aclaratorio (tengamos en cuenta que un lenguaje es un conjunto y por lo tanto son vlidas las
operaciones para conjuntos):

- Concatenacin: Dados dos lenguajes L
1
y L
2
, su concatenacin, L
1
. L
2
contendr todas las palabras que
se puedan formar por la concatenacin de una palabra de L
1
y otra de L
2
.

Por ejemplo: Dados L
1
= { nana, napa, lana} y
L
2
= { , nana, napa, pana, palabra, papa, pala}
L
1
. L
2
= { nana, napa, lana, nananana, napanana, ...}

Tengamos en cuenta que concatenamos cada palabra del primer lenguaje con cada palabra del segundo.

- Potencia: La potencia i-sima de un lenguaje corresponde a la concatenacin i veces del lenguaje en l
mismo; lo indicamos

i
L =
i
L. L.L.L....L

debera quedar
i
L =
i
L. L.L.L....L


Tengamos en cuenta que si i=0, obtenemos el lenguaje nulo que indicamos {} y que si
i = 1 se obtiene el mismo lenguaje.

Por ejemplo: Dado L
1
= { 0, 1}entonces
L
i
= { 00, 01, 10, 11 }

- Reflexin, Inversin o Trasposicin: La reflexin de un lenguaje L est formada por la aplicacin de la
reflexin a cada una de las palabras del lenguaje; la indicamos
R
L = {
R
x tal que x L }

Por ejemplo: Dado L = { 0, 1 , 00, 10 }, entonces
R
L

= { 0, 1, 00, 01 }


Recordemos las siguientes operaciones entre conjuntos, que ahora aplicaremos a los lenguajes.

- Unin: Dados dos lenguajes L
1
y L
2
, su unin L
1
'
L
2
contendr todas las palabras que pertenezcan a
cualquiera de los dos lenguajes,
L
1

'
L
2
= { x tal que x L
1
vx L
2
}

Ejemplo: Dados L
1
= { nana, napa, lana} y
L
2

= { , nana, napa, pana, palabra, papa, pala}
L
1

'
L
2
= { , nana, napa, lana, pana, palabra, papa, pala }

- Interseccin: Dados dos lenguajes L
1

y L
2
, su interseccin
L
1
L
2
contendr todas las palabras que pertenezcan a los dos lenguajes;
L
1
L
2
= { x tal que x L
1

y x L
2
}
Ejemplo: Dados L
1
= { nana, napa, lana} y
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 6

L
2
= { , nana, napa, pana, palabra, papa, pala}
L
1

L
2
= { nana, napa }

- Diferencia: si
L
1
y L
2

son lenguajes la resta de L
1
y L
2
,
L
1
- L
2
, contendr todas las palabras que pertenezcan a L
1
y no pertenezcan a L
2
,
L
1

- L
2

= { x tal que x L
1
y x e L
2
}

Ejemplo: Dados L
1

= { nana, napa, lana} y
L
2
= { , nana, napa, pana, palabra, papa, pala}
L
1
- L
2
= { napa, lana }
L
2
- L
1
= { , pana, palabra, papa, pala


Recurre al libro de la ctedra en el captulo 19 y trata de descubrir el conjunto en el que la concatenacin de
lenguajes y por lo tanto la potenciacin es una operacin cerrada y binaria. Discute con el tutor las propiedades.

Veamos ahora las siguientes definiciones que las aplicaremos al desarrollo de autmatas finitos




- Clausura de Kleene: sea V un alfabeto, sea N el conjunto de los nmeros naturales,
sea n N U {0} y sea L un lenguaje de V* entonces:

L* = L
'
L
'
L
'
L
'
....
'
L es la clausura de Kleene del lenguaje L.

- Clausura Positiva: sea V un alfabeto, sea N el conjunto de los nmeros naturales, sea n N y sea
L un lenguaje de V* entonces: L
+
= L
'
L
'
L
'
....
'
L es la clausura de positiva del
lenguaje L.


n
i 1
L
L
+
=
=
*





Ahora ests en condiciones de resolver los siguientes ejercicios que te proponemos. Si te surge alguna pregunta o
duda no dejes de consultar a tu tutor.


1. Sea V = {0,1}, indic la longitud de las siguientes palabras del alfabeto V:
a = 01011; b = 01; c = 00; d =

n
i=0
L* L = *
- Clausura de Kleene: sea : V un alfabeto, sea N el conjunto de los nmeros naturales,
sea n N U {0} y sea L un lenguaje de V* entonces:
L* = L
'
L
'
L
'
L
'
....
'
L es la clausura de Kleene del lenguaje L.

- Clausura Positiva: sea : V un alfabeto, sea N el conjunto de los nmeros naturales, sea n N y sea
L un lenguaje de V* entonces: L
+
= L
'
L
'
L
'
....
'
L es la clausura de positiva del
lenguaje L.
n
i 1
L
L
+
=
*
n
i=0
L* L *
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 7


2. Sea V = {a, b}, el alfabeto formado por los smbolos a y b, indic cules de las siguientes son
palabras de V*

a). v = ababbaca
b). w = z
c). z = a

3. Un Lenguaje formal puede ser infinito?

4. Indic si las siguientes opciones son verdaderas o falsas: sea V = {1, 2, 3}

a). a=111 L (V)

b). b=312 L (V)

c). c=114 L (V)


5. Sean V = {1, 2, 3} , a=111 V; b=312 V
Concaten ab y ba.
Indic
R
v
y
R
w
, con v = ab y w = ba.

6. Es conmutativa la operacin concatenacin?

7. Sea V = {0, 1}, w = 0101010, hall w con potencia 0, 1, 2 y 3, establec las longitudes de
dichas palabras.

8. Prob que la concatenacin en V* es un semigrupo.

9. Prob que: long w = a long w utilizando induccin matemtica en a.

10. Sea w e V*, indic los valores de:

a).
( )
R
R
w

b).
R



11. Dados los lenguajes

L = {abc, aa, aba} y L2 = {bbb, aaaaaaaa, abc}
hall L

* y L
2
*, L

+
y L
2
+
.

12. Dados los lenguajes

L = {10, 00} y L
2
= {10, 00, 0000} indic si L

* = L
2
*? y
+ +
1 2
= L L ?
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 8


13. Sea el lenguaje L = {111, 000} mostr que la concatenacin es cerrada en L*.



Si tens dudas sobre la resolucin de estos ejercicios, planteselas a tu tutor.



Sintetizando, hasta aqu:


- Definimos los conceptos de alfabeto, letra y palabra
- Vimos que un alfabeto debe ser finito pero que el conjunto de todas las palabras que se
pueden conseguir con las letras de cada alfabeto siempre es infinito
- Dimos el concepto de longitud de una palabra y caracterizamos a la palabra nula que es
la que no tiene letras
- Aprendimos a operar con palabras con operaciones binarias (concatenacin) y unitarias
(inversin); notamos que la potenciacin de palabras es un caso particular de la
concatenacin
- Vimos el concepto informal y formal de Lenguaje
- Aprendimos a operar con lenguajes y notamos que se opera con cada palabra de cada
lenguaje.
- Vimos que las operaciones entre conjuntos son vlidas en este caso y por lo tanto
cumplen las mismas propiedades que en el caso de palabras
- Finalmente definimos las clausuras positivas y de Kleene de un lenguaje


- Definimos los conceptos de alfabeto, letra y palabra
- Vimos que un alfabeto debe ser finito pero que el conjunto de todas las palabras que se
pueden conseguir con las letras de cada alfabeto siempre es infinito
- Dimos el concepto de longitud de una palabra y caracterizamos a la palabra nula que es
la que no tiene letras
- Aprendimos a operar con palabras con operaciones binarias (concatenacin) y unitarias
(inversin); notamos que la potenciacin de palabras es un caso particular de la
concatenacin
- Vimos el concepto informal y formal de Lenguaje
- Aprendimos a operar con lenguajes y notamos que se opera con cada palabra de cada
lenguaje.
- Vimos que las operaciones entre conjuntos son vlidas en este caso y por lo tanto
cumplen las mismas propiedades que en el caso de palabras
- Finalmente definimos las clausuras positivas y de Kleene de un lenguaje
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 9

Gramticas


Las gramticas son descripciones de las sentencias de los lenguajes, establecen la estructura que deben tener las
sentencias para que estn bien formadas y para que pueda entenderse su significado.
Las gramticas formales son descripciones estructurales de las sentencias de los lenguajes, tanto formales
(lenguajes de programacin ), como naturales ( humanos). En este ltimo caso, la gramtica se ocupa de la sintaxis
( es decir la forma que deben tener las sentencias)..
Las gramticas permiten describir de forma intencional a los lenguajes; proporcionan reglas para la estructura de las
frases y su significado.

Informalmente podemos decir que una gramtica es un modelo matemtico que consta de:

- un alfabeto, llamado alfabeto de elementos terminales que representa el conjunto de letras que tendrn las
palabras del lenguaje que genera esa gramtica
- un conjunto de smbolos especiales, denominados no terminales, que son elementos auxiliares y permiten
representar estados intermedios antes de llegar al de la generacin de las palabras del lenguaje.
- un smbolo inicial del que se partir para la obtencin de cualquiera de las palabras del lenguaje, denominado
cabeza del lenguaje, que es uno de los elementos no terminales.
- un conjunto de producciones o reglas gramaticales que permitirn realizar las transformaciones desde los
smbolos no terminales a las palabras del lenguaje.

Formalizando lo dicho hasta aqu:


Se define a la Gramtica formal G, como la cudrupla:
G = (Vn; Vt ; P ; s) donde:

- V
n
es un conjunto de elementos llamados no terminales, que suele llamarse vocabulario de
elementos no terminales.
- V
t
es un conjunto de elementos llamados terminales, suele denominarse vocabulario de elementos
terminales.
- P es un conjunto de producciones (reglas de sustitucin) y S es un elemento de V
n
llamado smbolo
inicial.


Algunas observaciones que tendremos que tener en cuenta son las siguientes:

1. El lenguaje generado por una gramtica G se denomina L(G).
2. Si la gramtica G genera un lenguaje L se indica

G L(G)

3. Ninguna regla gramatical puede comenzar con la palabra nula,
4. Dos gramticas G
1
y G
2
son equivalentes si

L(G
1
) = L(G
2
); es decir, si generan el mismo lenguaje.

5. El proceso para obtener las palabras del lenguaje que genera la gramtica se llama derivacin

Se define a la Gramtica formal G, como la cudrupla:
G = (Vn; Vt ; P ; s) donde:
- V
n
es un conjunto de elementos llamados no terminales, que suele llamarse vocabulario de
elementos no terminales.
- V
t
es un conjunto de elementos llamados terminales, suele denominarse vocabulario de elementos
terminales.
- P es un conjunto de producciones (reglas de sustitucin) y S es un elemento de V
n
llamado smbolo
inicial.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 10

5.1. Se comienza con el smbolo inicial s.
5.2. Se aplican las producciones de P al smbolo inicial s hasta obtener slo elementos terminales.
5.3. Cualquier hilera que se consigue usando el 5.2. es un elemento del lenguaje L(G).


El que sigue es un ejemplo de gramtica:

Ejemplo 1
Sea G una gramtica en la cual:

V
t
= {a, b}
V
n
= {S, A, B}, donde S es el smbolo inicial.

Las reglas gramaticales o producciones son

S aB
S bA
A a
A aS
A bAA
B b
B bS
B aBB

Pueden escribirse de la forma siguiente:

S aB/ bA
A a/ aS/ bAA
B b/bS/aBB

Aplicando las reglas gramaticales y teniendo en cuenta que esta gramtica genera palabras con las letras a, b,
debemos plantearnos como objetivo eliminar las letras S, A, B. Tenemos que comenzar con S, eso no podemos
elegirlo, pero si podemos seleccionar cualquiera de las opciones que S nos ofrece, por ejemplo:

S aB

A continuacin, para eliminar B elegimos B b, reemplazamos en la expresin anterior y queda:

S aBab que es una palabra del lenguaje ya que ambas letras pertenecen al vocabulario terminal.


Veamos otra palabra (si hay que reemplazar una letra por ms de una conviene poner un parntesis),

S aB a(bS) ab(bA) abb(bAA) abbb(AA) abbb(aa)

Finalmente la palabra es w=abbbaa

Qu hicimos? pods justificarlo? Si no ests seguro, consultalo con el tutor.

e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 11

Recordemos que, cuando vimos lenguajes, sealamos que podan ser finitos o infinitos. Si en el caso anterior
miramos las producciones, es decir las reglas gramaticales, vemos que tanto con A como con B volvemos al
comienzo, es decir a S. Como eso lo podemos hacer tantas veces como queramos, resulta que el lenguaje que
genera esta gramtica es infinito.
Puede ocurrir que nos pidan que describamos ese lenguaje ya que es imposible listar todas sus palabras.
Si siguiramos con el procedimiento podramos observar que los enunciados del lenguaje son todas las cadenas de
letras a y b en las que el nmero de letras a es igual al nmero de letras b.
Hilando ms fino podemos decir que el no terminal A representa el conjunto de cadenas en las que el nmero de
letras a es uno ms que el nmero de letras b, y el no terminal B representa el conjunto de cadenas en las que el
nmero de letras b es uno ms que el nmero de letras a.

Una forma prctica de representar las derivaciones son los rboles de derivacin que se utilizan en la construccin
de compiladores para representar el anlisis sintctico de los programas fuente y sirven de base para la generacin
de un cdigo.

Sin embargo, no siempre se pueden usar. Ya veremos cuando es posible usarlos y cuando no.

En los rboles de derivacin:

- La cabeza del lenguaje se representa en la raz del rbol
- Los nodos hojas del rbol son smbolos terminales de la gramtica

Las derivaciones se representan creando tanto los sucesores del smbolo no terminal de la izquierda de las
producciones como los smbolos (terminales y no terminales) aparezcan en la parte derecha de las producciones


Veamos un ejemplo de rbol de derivacin para la gramtica

Ejemplo 2
Sea G = ({0,1,2}; {a, b}; P; 0) con las siguientes producciones:
0 a2 / b1
1 a / a0 / b11
2 b / b0 / a22

Algunas de las palabras del lenguaje L(G) son:
0 a2 ab L(G)

El rbol de derivacin es el siguiente: 0 a2 ab0 aba2 abab L(G)

Cuyo rbol de derivacin es:






e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 12



Tengamos en cuenta que para cada palabra hay un rbol de derivacin

Finalmente podemos preguntarnos cuando una palabra no pertenece al lenguaje generado por una gramtica, esto
sucede cuando al aplicar las reglas gramaticales no se puede obtener la palabra en cuestin.
Si nos remitimos al ejemplo 1, donde las palabras tenan el mismo nmero de a que de b, la palabra w= aabbb
no podramos encontrarla

La siguiente clasificacin de las gramticas dada por el lingista Noam Chomsky nos resultar de gran utilidad para
reconocer las gramticas formales y usarlas para resolver distintos tipos de problemas.


Clasificacin de gramticas:

Noam Chomsky defini cuatro tipos de gramticas formales, en funcin de las producciones, es decir de las reglas
gramaticales.
Esta clasificacin comienza con las ms generales para finalizar en las que presentan ms restricciones, siempre
teniendo en cuenta las producciones.

A continuacin daremos la clasificacin, para eso consideraremos una produccin genrica x y, donde
llamaremos parte izquierda a x y parte derecha a y


- Gramticas de Tipo 0 (sin restricciones):

En la parte izquierda tiene que haber al menos un smbolo no terminal. Respecto a las partes derechas de sus
producciones no hay ningn tipo de restriccin.

Ejemplos:

1. S aSBC | aBC
CB BC
aB ab
bB bb
bC bc
cC cc




0
2
a
b 0
a
2
b
e
0
2
a
b 0
a
2
b
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 13

2. G = ({0, 1}; {A, B, S}, S, P), donde

P: S A0
A0 1B1
1A 0B0
B
B 1
B 0

El lenguaje generado por esta gramtica es:

L(G) = {11, 101, 111}

- Gramticas de Tipo I (dependientes o sensibles del contexto):

Se denominan gramticas dependientes del contexto porque en ellas se tiene en cuenta que es lo que viene antes
y despus del smbolo que se est sustituyendo.
Este tipo de gramtica consiste en que las derivaciones producidas por aplicacin de sus reglas cumplen la
condicin de que las palabras siempre tienen longitud mayor o igual que las anteriores en la derivacin, es decir
, x , s , y ,, de donde no generan la palabra nula.
Se llaman dependientes del contexto porque si hay una produccin de la forma aXy donde debe ser reemplazado
X: debe hacerse de la forma siguiente aTy, donde T es el reemplazo de X que respeta a lo que rodea a X.

Ejemplos:

1. S abc | aAbc
Ab bA
Ac Bbcc
bB Bb
aB aa | aaA



2. G = ({0, 1}; {A, B}, A, P), donde
P: A 1B1
A 11
1B1 101
1B1 111

El lenguaje generado por esta gramtica es:

L(G) = {11, 101, 111}

- Gramticas de Tipo II (independientes del contexto)


Estas gramticas se denominan de contexto libre, porque a la hora de transformar una palabra en otra, el smbolo
no terminal que se transforma no depende de los que estn a la izquierda o derecha.

e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 14

En estas gramticas, la parte izquierda (x) de las producciones slo pueden tener un smbolo no terminal, es decir
,x,=1

Ejemplos:

1. S aSb | ab

2. L = {a
k
b
k
tal que k > 1} es un lenguaje de tipo 2, pues puede especificarse mediante la gramtica de
tipo 2:

A aAb
A ab

3. Sea G = ({0, 1}, {A, B}, A, P), donde
P = {( A 1B1), (A 11), (B 1), (B 0)}
Esta gramtica G, genera a L(G) = {11, 101, 111}

- Gramticas de Tipo III (regulares o lineales)

Una gramtica es regular o tipo 3 si las producciones son de la forma x y donde:

- x es un nico smbolo no terminal ( x e V
n
)
- y es concatenacin de dos smbolos siendo uno de ellos terminal (V
t
) o,
- y es un nico smbolo terminal o
- y es la palabra nula

Algo para tener en cuenta es que si una produccin es de la forma V
n
V
t
en la misma gramtica no puede haber
una regla V
t
V
n


Ejemplos:

1. A aB | a |l

2. Sea la gramtica G = ({ a, b, c }; {0, 1}; P; a ) con P dada por:

a b1 | c1
b b0 | l
c l | 0

3. Sea la gramtica G = ({ a, b, c }; {0, 1}; P; a ) con P dada por:

a 1b | 1c
b 0b |
c | 0


4. Sea la gramtica G = ({ a, b, c }; {0, 1}; P; a ) con P dada por:

e
e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 15

a 1b | 1c
b b0 |
c | 0

No es una gramtica tipo 3 ya que hay una produccin 1b, de la forma V
t
V
n
y otra produccin b0 que es de la
forma V
n
V
t


Podemos sintetizar la clasificacin con el siguiente cuadro:




























Sintetizando lo que hemos visto hasta ahora:
- Las gramticas nos dan las reglas para ir formando las palabras de un lenguaje
- Formalmente son cudruplas G = (Vn; Vt; P, s)
- Para obtener palabras se deben ir aplicando las producciones o reglas grama ticales.
- Aveces se pueden utilizar rboles de derivacin.
- Las gramticas se clasifican en 4 tipos de acuerdo a sus producciones: tipo 0 o
irrestrictas, tipo 1 o sensibles al contexto, tipo 2 o independientes del contexto y tipo
3 o regulares.
Gramtica Tipo 0
9Sin restricciones
9Genera lenguajes recursivamente numerables
9Dependientes del contexto (se tiene en cuenta lo que viene
antes y despus del smbolo que se sustituye).
9Genera lenguajes sensibles (o dependientes) al contexto
9Las producciones son del tipo: donde ,
{Vn
'
Vt}
9Las producciones son no-contractivas: | | | |
9Nunca genera a la palabra nula
9Libres de contexto
9Genera lenguajes libres al contexto
9El lado izquierdo debe consistir en un solo no terminal
9No hay restricciones al lado derecho
9Regulares
9Genera lenguajes regulares
9El lado izquierdo debe consistir en un solo no terminal
9El lado derecho debe ser un terminal seguido de un
no terminal, o un solo terminal o la cadena vaca
s
Gramtica Tipo I
Gramtica Tipo II
Gramtica Tipo III
Sintetizando lo que hemos visto hasta ahora:
- Las gramticas nos dan las reglas para ir formando las palabras de un lenguaje
- Formalmente son cudruplas G = (Vn; Vt; P, s) s
- Para obtener palabras se deben ir aplicando las producciones o reglas grama ticales.
- Aveces se pueden utilizar rboles de derivacin.
- Las gramticas se clasifican en 4 tipos de acuerdo a sus producciones: tipo 0 o
irrestrictas, tipo 1 o sensibles al contexto, tipo 2 o independientes del contexto y tipo y
3 o regulares.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 16

En esta asignatura nos dedicaremos principalmente a los lenguajes regulares o tipo 3, es decir los que pueden ser
generados por gramticas tipo 3, y que como veremos en la seccin siguiente van a ser reconocidos por
mquinas abstractas llamadas autmatas finitos.
Sin embargo, para que tengas una idea, la mayora de los lenguajes de programacin son tipo 2 o independientes
del contexto. Ellos son reconocidos por otro tipo de mquinas llamadas autmatas de pila.
Pero para poder comprender bien dichos lenguajes y dichas mquinas, primero es necesario conocer bien los
lenguajes regulares y los autmatas finitos, que son las mquinas ms simples.
A continuacin los ejercicios resueltos te ayudarn a afianzar el tema:

1. Obten las derivaciones de las palabras 002 y 0001 a partir de la siguiente gramtica:

G = ({0, 1, 2};{A, B}; P; A})
P:
A 0B
A 2
B 0A
B 1

Describ el rbol de derivacin y obten el lenguaje que genera.

Las palabras se pueden obtener de las siguientes derivaciones:

002: A 0B 00A 002
0001: A 0B 000B 0001

Los rboles de derivacin aparecen en la figura siguiente:


Para obtener el lenguaje, habr que analizar qu palabras pueden derivarse desde el axioma. As que se pueden
obtener las siguientes derivaciones:

A 2
A 0B 01
A 0B 00A 002
A 0B 00A 000B 0001
A 0B 00A 000B 0000A 00002
A
B
0 A
2
0
A
B
0 A
0
0 B
1
e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 17

Por lo tanto, puede aparecer un 2 precedido de un nmero par de 0s un 1 precedido por un nmero impar de 1s.

Si se define un lenguaje L como:

L = { 0
n
2 / n = 2.x }

y un lenguaje L
2
= { 0 1 / a = 2.y + 1 }

entonces, el lenguaje generado por la gramtica se puede definir como
L(G) = L ' L
2
, o lo que es lo mismo: L(G) = { 0
n
2 ' 0 1 / n = 2.xa = 2.y +1 }

2. Dados los siguientes alfabetos:

V = { 1, 2, 3, 4, 5, 6, 7, 8 }
V
2
= { a, b, c, d, e, f, g, h }

Y los lenguajes:

L(V ) = { x | x e V } y L
2
(V
2
) = { x | x e V
2
}

Definir los lenguajes L ' L
2
, L . L
2
y (L
1
. L
2
)

En este caso, una numeracin muy utilizada para los tableros de ajedrez es numerar las filas del 1 al 8 y las
columnas de la a a la h, con lo que el lenguaje resultante de L

. L
2
representara todas las casillas de ajedrez.


(L . L
2
) = { x = x.x | x e (L . L
2
) } =
= { 1a1a, ... , 1a8a, 1a1b, ... , 1b1a, ... , 8h8h }


El nmero de palabras del lenguaje resultante sera | (L

. L
2
) | = 8
4
.

3. Determin si la gramtica dada es sensible al contexto, libre del contexto, regular o bien ninguna de stas:

a. T = { a, b } , N = { *, A }, con composiciones:
* b *, * aA, a a *,
A bA, A a, * b,

y smbolo inicial *.

Solucin: regular, libre de contexto, sensible de contexto. Es importante siempre dar el ltimo tipo
alcanzado. Es decir en este caso no podemos dejar de decir que es regular

b. T = { a, b } , N = { *, A, B }, con composiciones:
* b *, * AAB, Aa ABa, a aA,
Bb ABb, AB ABB, B b,

y smbolo inicial *.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 18


Solucin: es tipo I o sensible al contexto

c. <S> b <S> | a<A> | a
<A> a <S> | b<B>
<B> b <A> | a<S> | b,

con smbolo inicial <S>.

Solucin: regular, libre de contexto, sensible de contexto.Lo importante es que es tipo 2 o libre de
contexto



Autmatas:
Lenguajes, Gramticas Regulares y Autmatas

A continuacin se demostrar que una gramtica regular y un autmata de estado finitos son, en esencia, lo mismo
pues cualquiera de ellos es una especificacin de un lenguaje regular.

Comencemos por el concepto de lenguaje regular.



Podemos decir, informalmente, que un lenguaje es regular si existe una gramtica regular que lo genere.

Una definicin formal puede ser dada en forma recursiva, como se da a continuacin

1. C es un lenguaje regular.
2. { } es un lenguaje regular.
3. Si V es un alfabeto y a e V entonces {a} es un lenguaje regular.
4. Si L

y L
2
son dos lenguajes regulares entonces:
L

' L
2
, L

L
2
y L

*
son lenguajes regulares.
5. Ningn otro lenguaje sobre V es regular.


Veamos los siguientes ejemplos:

1. Sea V = {a, b} los siguientes lenguajes son regulares:

L

= { ab, ba }
L
2
= { bb }
L

' L
2
= { ab, ba, bb }
L
3
= V*
e
Podemos decir, informalmente, que un lenguaje es regular si existe una gramtica regular que lo genere.
Una definicin formal puede ser dada en forma recursiva, como se da a continuacin
1. C es un lenguaje regular.
2. { } es un lenguaje regular.
3. Si V es un alfabeto y a e V entonces {a} es un lenguaje regular.
4. Si L

y L
2
son dos lenguajes regulares entonces:
L

' L
2
, L

L
2
y L

*
son lenguajes regulares.
5. Ningn otro lenguaje sobre V es regular.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 19

2. Todos los nmeros binarios que comienzan con un nmero par de 1s y terminan con un 0, es un lenguaje
regular infinito sobre el alfabeto {0, 1}

L = {
2
1
n
0 con n > 0 }
Algo para tener en cuenta:

Si un lenguaje formal es finito entonces es un Lenguaje Regular.
Un lenguaje es regular si puede ser reconocido por un Autmata Finito.

A continuacin nos referiremos a las Expresiones Regulares que nos facilitarn la manera de describir un lenguaje
regular y que se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje.

Veamos la definicin formal, que la daremos por recurrencia:



Sea A un alfabeto. Una expresin regular sobre A es un secuencia de elementos de A conectados por
los siguientes smbolos (,),v, * que verifican:
X ( palabra nula): es una expresin regular.
Si a e A entonces a es una expresin regular.
Si x e y son expresiones regulares entonces xy es una expresin regular.
Si x e y son expresiones regulares entonces x v y es una expresin regular.
Si x es una expresin regular entonces (x)* es una expresin regular.

Tengamos en cuenta lo siguiente: asociado a cada expresin regular sobre el alfabeto A hay un
subconjunto de A*, que se llama subconjunto o lenguaje regular.



Los siguientes Ejemplos: nos ayudarn a aclarar ideas

1. La Expresin Regular a*ba*ba representa al lenguaje de todas las palabras sobre el alfabeto {a, b} con 2
b y una a, comenzando o no con aes.
Son palabras de este lenguaje: bba, abba, aabaaba....

2. Sea el alfabeto A = {0, 1 }, la Expresin Regular (1 v 0) 1* representa al lenguaje de los nmeros
binarios que comienzan con un 1 un 0, el que puede o no ser seguido por 1 ms 1s.
Son palabras de este lenguaje: 1, 0, 11, 01, 111, 011, ....

Un Lenguaje Regular debe poder ser reconocido por un autmata finito.



Un autmata finito es una herramienta abstracta que se utiliza para reconocer un determinado Lenguaje
Regular.
Es un modelo matemtico de un sistema que recibe una cadena formada por caracteres de un
determinado alfabeto y determina si esa cadena pertenece o no al lenguaje que reconoce.


e
Sea A un alfabeto. Una expresin regular sobre A es un secuencia de elementos de A conectados por
los siguientes smbolos (,),v, * que verifican:
X ( palabra nula): es una expresin regular.
Si a e A entonces a es una expresin regular.
Si x e y son expresiones regulares entonces xy es una expresin regular.
Si x e y son expresiones regulares entonces x v y es una expresin regular.
Si x es una expresin regular entonces (x)* es una expresin regular.
Tengamos en cuenta lo siguiente: asociado a cada expresin regular sobre el alfabeto A hay un
subconjunto de A*, que se llama subconjunto o lenguaje regular.
Un autmata finito es una herramienta abstracta que se utiliza para reconocer un determinado Lenguaje
Regular.
Es un modelo matemtico de un sistema que recibe una cadena formada por caracteres de un
determinado alfabeto y determina si esa cadena pertenece o no al lenguaje que reconoce.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 20


Una mquina procesadora de informacin es un dispositivo que recibe un conjunto de seales de entrada que
produce en correspondencia un conjunto de seales de salida.

Veamos los siguientes casos que seguramente nos ayudarn a comprender el tema.

Por ejemplo, podemos considerar que una lmpara de mesa es una mquina procesadora de informacin: la seal
de entrada es la posicin ENCENDIDO o la posicin APAGADO del interruptor y la seal de salida es la
ILUMINACIN o la OSCURIDAD.

Otro ejemplo de mquina procesadora de informacin es un sumador, cuyas seales de entrada son dos nmeros
decimales y la seal de salida, su suma.

Generalmente, las seales de entrada para una mquina procesadora de informacin cambian con el tiempo.
Entonces en este caso, las seales de salida tambin variarn con el tiempo, en la forma correspondiente. Es decir,
que una mquina procesadora de informacin recibe una serie (temporal) de seales de entrada y produce una
correspondiente serie (temporal) de seales de salida.

Otro ejemplo es el de una mquina expendedora, que tambin es una mquina procesadora de informacin donde
las seales de entrada son las monedas depositadas y la seleccin de la mercadera, y las seales de salida son las
mercaderas y posiblemente el vuelto.

Advirtamos que existe una diferencia entre las mquinas citadas en los ejemplos anteriores. En el caso de la lmpara
de mesa, siempre que la seal de entrada es ENCENDIDO, la seal de salida es ILUMINACIN, y siempre que la
seal de entrada sea APAGADO, la seal de salida es OSCURIDAD. Esto indica que la seal de salida depende en
cualquier momento solamente de la seal activada en ese instante y no de las seales de entrada anteriores a dicho
instante.

En cambio, en el caso de la mquina expendedora, la seal de salida obtenida en cualquier instante depender no
slo de la seal de entrada dada en ese instante, sino adems, de las seales de entrada precedentes.

Por ejemplo tomemos tres seales de entrada sucesivas:

1 peso 1 peso 1 peso

las correspondientes seales de salida son:

NADA NADA 1 GASEOSA

La mquina expendedora es capaz de recordar la cantidad total que ha sido depositado.

Dividimos a los autmatas en dos clases, con memoria y sin memoria. Es muy importante tener en cuenta que:
Para una mquina sin memoria, su salida en cualquier instante, slo depende de la entrada en tal instante.
y que para una mquina con memoria, su salida en cualquier instante depende de la entrada en dicho instante como
de las entradas en instantes previos, debido a que la mquina puede recordar que sucedi en el pasado.

Un estado representa un resumen de la historia pasada de una mquina. Por lo que, el estado de la mquina junto
con las seales de entrada en un instante determinado, establecern las seales de salida correspondientes a dicho
instante.


e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 21

Recordemos el concepto de autmata finito: una mquina con un nmero finito de estados, en cambio, una
mquina con un nmero infinito de estados se llama autmata infinito.
Nosotros, como ya dijimos, nos ocuparemos de los autmatas finitos. Vamos a definirlos formalmente:



Una mquina con un nmero finito de estados se llama mquina de estado finito. Una mquina de estado finito
es la 5-upla M = (Q; V; o; q; F) donde:

- Q = 1, 2, ..., n {q q q } es el conjunto finito de estados de la mquina
- V es el alfabeto de entrada.
- o: Q x V Q es la relacin de transicin
- q Q y se dice estado inicial.
- 2 = F _ Q es el conjunto de estados finales.

De la definicin vamos a destacar que:

- La relacin de transicin o: Q x V Q es tal que o(q;x) = x( q) f
- o(q;x) = x( q) f describe, para cada elemento de V, el efecto que esa seal de entrada tiene en
los estados de la mquina.
- Indicamos F = { x f : Q Q con x V}
- El estado inicial q es nico.



Dentro de los autmatas finitos, encontraremos determinsticos y no determinsticos.
Los autmatas finitos determinsticos transitan entre estados de un conjunto de estados segn reciben los smbolos
que forman la palabra de entrada. Hay tres tipos de estados:


- Estado inicial, que permite empezar la ejecucin del autmata.
- Estados finales, que permiten realizar la salida de aceptacin de la palabra de entrada en el caso de que
no haya ms smbolos en la entrada.
- Estados intermedios.


Los autmatas finitos no determinsticos son aquellos en los que puede existir ms de un transicin por cada par
(estado, entrada) o ninguna transicin por cada par, de forma que, en cada momento, el autmata puede realizar
varias transiciones diferentes entre las que deber optar o no poder realizar ninguna. Otro rasgo que los diferencia
de los determinsticos es que pueden realizar transiciones de un estado a otro sin leer ningn smbolo de entrada,
mediante las denominadas transicionesX.
Detengmonos ahora en los Autmatas Finitos Determinsticos.




Una mquina con un nmero finito de estados se llama mquina de estado finito. Una mquina de estado finito
es la 5-upla M = (Q; V; o; q; F) donde:
- Q = {q q q } 1, 2, ..., n 2, ..., es el conjunto finito de estados de la mquina
- V es el alfabeto de entrada.
- o: Q x V Q es la relacin de transicin
- q Q y se dice estado inicial.
- 2 = F _ Q es el conjunto de estados finales.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 22

Autmatas finitos determinsticos:


Un autmata finito determinstico (AFN) es una mquina de estado finito, que se define como:
la 5-upla M = (Q; V; ; q; F) donde:

- Q = {q
1
, q
2
, ..., q
n
}
es el conjunto finito de estados de la mquina.
- V es el alfabeto de entrada.
- : Q x V Q es la relacin de transicin.
- q Q y se dice estado inicial.
- C = F _ Q es el conjunto de estados finales.


Algunas observaciones a considerar:

- Para cualquier estado, la lectura de una letra determina, sin ambigedades, el estado de llegada.
- Para todo (q; a) eQ x V o(q; a) = p si y slo si la mquina puede pasar del estado q al
estado p al leer el smbolo a.
- Para cada estado en un diagrama de transicin debe existir a lo sumo una arista etiquetada para
cada letra del alfabeto V.
- Ninguna arista est etiquetada con .
- Un A.F.D. es completo si cada estado tiene una transicin por cada letra del alfabeto.


Veamos algunos de los ejemplos de Mquinas de Estado Finito como reconocedoras de Lenguaje.

1) El autmata A = ({q
o
, q
1

}
;
{0, 1}; o; q
o
; { q
o
}), donde o se define como:
o (q
o;
0) = q
o

o (qo;1) = q
1
o(q
1
;0) = q
1

o (q
1
;1) = q
o.

Si la palabra de entrada es 0110, el autmata pasar por los siguientes estados:

0 1 1 0
q
o
q
o
q
1
q
o
qo


Vamos a armar la tabla de transiciones:

- En las filas estarn los estados q e Q.
- El estado inicial se preceder del smbolo
- Cada estado final se preceder del smbolo *.
- En las columnas estarn los smbolos de entrada a e V.
- En la posicin (q;a) estar el estado que determine o (q;a).


Un autmata finito determinstico (AFN) es una mquina de estado finito, que se define como:
la 5-upla M = (Q; V; ; q; F) donde:
- Q = {q
1
, q
2
, ..., q
n
}
es el conjunto finito de estados de la mquina. s
- V es el alfabeto de entrada.
- : Q x V Q es la relacin de transicin.
- q Q y se dice estado inicial.
- C = F _ Q es el conjunto de estados finales.
e
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 23





Respecto del diagrama de transiciones, la siguiente es una de las convenciones:

* En los nodos estarn los estados
* El estado inicial tendr un arco entrante no etiquetado
* Los estados finales estarn rodeados del doble crculo
* Habr un arco etiquetado con a entre el nodo q
i
y el nodo q
j
si o (q
i
; a) = q
j

y entonces el autmata A nos queda de la siguiente manera:




qo
q
1
q
1
q
1
qo qo
1 0

qo
q
1
q
1
q
1
qo qo
1 0

qo
q
1
1
1
0
0
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 24

2).



Esta mquina de estado finito es un Autmata Finito determinstico, ya que cumple con la definicin del mismo. De
cada estado {A, B, C, D} por cada letra del alfabeto (en este caso 0 o 1) existe una nica transicin hacia otro
estado.


A continuacin planteamos algunos ejercicios para que resuelvas; ante cualquier duda, pods consultar a tu tutor.

1. Determin cules son las palabras aceptadas por los siguientes autmatas:


I.








II.












A
C
B
1
0
0
1
0
1
1
0
D
qo
q
1
1
1
q
2
*
0
1
qo
q
1
1
1
*
q
2
0
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 25

2. Indic si el siguiente autmata finito es o no determinstico. Justific tu respuesta.




3. Dibuj el diagrama de transicin.



4. D la Tabla de trancisin



qo
q
2
q
1
0
1
1
q
3
*
1

q
2
q
1
a
b
a
*
qo
a
b
b
qo q
2
q
2
q
1
qo
q
1
q
2
q
1
* qo
b a
o
qo q
2
q
2
q
1
qo
q
1
q
2
q
1
* qo
b a
o
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 26

Ahora definamos formalmente los Autmatas finitos no determinsticos:



Un autmata finito no determinstico es un autmata finito que puede realizar transiciones por la palabra

A = (Q; V; o; q; F) con o = Q x (V '{ })P(Q)


- Una transicin por la palabra , es un cambio de estado sin la intervencin de ningn carcter de la
palabra en estudio.
- La transicin que se ejecuta en una etapa dada puede ser incierta pues nada lo determina, por eso
se dicen no determinstico.
- Cada estado puede tener, en el diagrama de transicin, ms de una arista etiquetada con cada letra
del alfabeto V.
- Para cualquier estado q se pueden tener cero ms alternativas a elegir como estado siguiente,
todas para el mismo smbolo de entrada.
- Si A = (Q; V; o; q; F) es un autmata finito no determinstico, el lenguaje que acepta A se
indica L(A) y es regular.


Ejemplos:

Sea A = ( {q
o
, q
1
,
q
2
, q
3
, q
4

}
;
{ 0, 1}; o; qo; {q
2
, q
4

}), con o dada por
o (q
o
; l) = {q
1
,
q
3

}
o (q
1
; 0) = { q
2

}
o (q
3
; 1) = { q
4

}
o (q
2
; 0) = { q
2

}
o (q
4
; 1) = { q
4
}

El diagrama de transicin correspondiente es:



q
3
q
1
X
*
qo

X
q
2
q
4
0
0
1
1
e
Un autmata finito no determinstico es un autmata finito que puede realizar transiciones por la palabra
A = (Q; V; o; q; F) con o = Q x (V '{ })P(Q)
- Una transicin por la palabra , es un cambio de estado sin la intervencin de ningn carcter de la
palabra en estudio.
- La transicin que se ejecuta en una etapa dada puede ser incierta pues nada lo determina, por eso
se dicen no determinstico.
- Cada estado puede tener, en el diagrama de transicin, ms de una arista etiquetada con cada letra
del alfabeto V.
- Para cualquier estado q se pueden tener cero ms alternativas a elegir como estado siguiente,
todas para el mismo smbolo de entrada.
- Si A = (Q; V; o; q; F) es un autmata finito no determinstico, el lenguaje que acepta A se
indica L(A) y es regular.
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 27


Trat de ejercitar autmatas finitos no determinsticos; para ello te planteamos a continuacin una serie de ejercicios:

1) Grafic los diagramas de transicin de los autmatas finitos no determinsticos

a). A = ( {q
o
, q
1
,
q
2

}
;
{ 0}; o; {q
2
}), con o dada por la siguiente tabla de transicin:





b). A = ( {q
o
, q
1
,
q
2
,
q
3
}
;
{ 0, 1 }; q
o
; {q
3
}), con o dada por:
o (q
o
; 0) = {q
o
} y o (q
o
; 0) = {q
1
} o (q
o
; 0) = {q
o
, q
1

}

o (q
o
; 1) = {q
o
}
o (q
1
; 1) = {q
2

}
o (q
2
; 1) = {q
3

}


c). A = ( {q
o
, q
1
,
q
2
,
q
3
}
;
{ 0, 1 }; q
o
; {q
3
}), con o dada por:
o (q
o
; 0) = {q
o
} y o (q
o
; 0) = {q
1

} o (q
o
; 0) = {q
o
, q
1

}

o (q
o
; 1) = {q
o
}
o (q
1
; 1) = {q
2

}
o (q
2
; 1) = {q
3

}


d). A = ( {q
o
, q
1
,
q
2
,
q
3
,
q
4

}
;
{ 0, 1}; o; q
o
; {q
2
,
q
4
}), con o dada por:
o (q
o
; ) = {q
1
,
q
3

}o (q
1
; 0) = {q
2

}
o (q
3
; 1) = {q
4

}
o (q
2
; 0) = {q
2

}
o (q
4
; 1) = {q
4

}


e). A = ( {a, b, c

}
;
{ 0, 1}; o; a; {a, b}), con o dada por:
o (a; 0) = {b

}
o (a; 1) = {a

}
o (b; 0) = {a

}
o (b; 1) = {c

}
2 q
2
q
2
2
q
2
q
1
q
1
2 * qo
X
0
o
2 q
2
q
2
2
q
2
q
1
q
1
2 * qo
X
0
o
LENGUAJES, GRMATICAS Y AUTMATAS
Unidad 7 28

o (c; 0) = {a

}
o (c; 1) = {b

}






Sintetizando, la diferencia entre autmatas finitos determinsticos y no determinsticos:
Una de las diferencias principales ms importantes entre un autmata finito
determnistico (A.F.D.) y un autmata finito no determinstico (A.F.N.) es que:
q eQ, a e V => | o (q;a) | s 1 (A.F.D)
Para los A.F.N.:
- q eQ, - a e V { } y | o (q;a) | > 1




Finalizamos aqu el recorrido por los contenidos de la asignatura.
Hemos abordado el programa vigente de Matemtica Discreta de UTNFRBA abarcando temas que a veces resultan
muy complejos.
Te recomendamos que aproveches las tutoras para consultar dudas pendientes y realizar los ejercicios de aplicacin
que se propongan.
Esperamos que la cursada haya resultado provechosa.



Sintetizando, la diferencia entre autmatas finitos determinsticos y no determinsticos:
Una de las diferencias principales ms importantes entre un autmata finito
determnistico (A.F.D.) y un autmata finito no determinstico (A.F.N.) es que:
q eQ, a e V => | o (q;a) | o s 1 (A.F.D) s
Para los A.F.N.:
- q - eQ, - a - e V { } y | o (q;a) | > 1 o

Das könnte Ihnen auch gefallen