gramatica y automatas

110
GRAMATICA ALFABETO Conjunto no vacío y finito de elementos, distintos entre sí e identificados, por ejemplo: números, letras, combinaciones entre ellos. Simbología: Ejemplo: sea = y “2 es un símbolo del alfabeto” se denota: 2 . Otros ejemplos: = = , el alfabeto de letras mayúsculas. = , el alfabeto binario Operaciones con Alfabetos Los Alfabetos, en su condición de conjuntos, pueden ser sometidos a las operaciones clásicas de la Teoría de Conjuntos , es decir Unión, Intersección, Diferencia y Complementación de Conjuntos. Las propiedades más importantes de dichas operaciones son: Si = Si = ( ) = ( ) ( ) = ( ) ( ) = ( ) ( ) ( ) = ( ) ( ) = y = Potencia de un alfabeto Si es un alfabeto, es posible expresar el conjunto de todas las cadenas de cierta longitud de dicho alfabeto utilizando una notación exponencial. Definimos como .

Upload: edwin-raul-capaquira-chura

Post on 25-Sep-2015

25 views

Category:

Documents


8 download

DESCRIPTION

compendio para estudiantes

TRANSCRIPT

GRAMATICA

ALFABETO

Conjunto no vaco y finito de elementos, distintos entre s e identificados, por ejemplo: nmeros, letras, combinaciones entre ellos.

Simbologa:

Ejemplo: sea = y

2 es un smbolo del alfabeto se denota: 2 .

Otros ejemplos: =

=, el alfabeto de letras maysculas.

= , el alfabeto binario

Operaciones con Alfabetos

Los Alfabetos, en su condicin de conjuntos, pueden ser sometidos a las operaciones clsicas de la Teora de Conjuntos, es decir Unin, Interseccin, Diferencia y Complementacin de Conjuntos.

Las propiedades ms importantes de dichas operaciones son:

Si =

Si =

( ) = ( )

( ) = ( )

( ) = ( ) ( )

( ) = ( ) ( )

= y =

Potencia de un alfabeto

Si es un alfabeto, es posible expresar el conjunto de todas las cadenas de cierta longitud de dicho alfabeto utilizando una notacin exponencial. Definimos como .

Como el conjunto de cadenas de longitud k, tales que todos los smbolos que las forman pertenecen a .

Ejemplo: Si = , entonces = ; = ;

=

Ntese adems que independiente, de cual sea el alfabeto siempre = , siendo la nica cadena cuya longitud es 0.

Otra cuestin que se presta a confusin es la diferencia que existe entre = , y = , donde la primera es un alfabeto con smbolos cero y uno y el segundo es un conjunto de cadenas de longitud unitaria.

PALABRA

Se llama Palabra, Cadena o Tira a la concatenacin o secuencia finita de elementos de un alfabeto.

Simbologa: Las palabras se denotan con las ltimas letras del alfabeto en minscula (x = 001 , y = ai)

Ejemplo:

Longitud de una palabra.

Cada palabra tiene su longitud, es decir, el nmero o la cantidad de elementos que la componen.

Simbologa: (se utilizan dos barras a los costados de la palabra)

Ejemplo: sean las palabras: x = 001, y = ai, z = ZXABK

= 3 = 2 = 5

La longitud de una palabra o cadena puede asumir distintos valores, si la longitud es igual a 1, la palabra es igual al elemento o smbolo del alfabeto, es decir, que cada elemento o smbolo de un alfabeto puede ser una tira o cadena del mismo.

Ejemplo: 0

A

Palabra Vaca.

Si la longitud de una palabra es igual a 0, estamos frente a una palabra que existe pero que no contiene elementos, llamada palabra vaca y es una cadena sobre cualquier alfabeto.

Simbologa: = 0

Subpalabras: Prefijo y Sufijo.

Se denota Sufijo a la subcadena de una palabra dada formada por los primeros smbolos de la misma y Prefijo a la subcadena formada por los ltimos smbolos de dicha palabra, es decir, sea v una cadena sobre una alfabeto, se llama Sufijo a la subcadena x y Prefijo a la subcadena y de v, tal que v = xy

Ejemplo: v = aeiou = 3 x = aei

= 2 x = ou

Universo de discurso

Se llama Universo de Discurso o Lenguaje Universal al conjunto de todas las cadenas, tiras o palabras que se pueden formar con los elementos o smbolos de un alfabeto, incluida la palabra vaca.

Simbologa:

El es una conjunto infinito ya que son infinitas las palabras o cadenas que puedo formar con los smbolos de un alfabeto ya que stos no son vacos.

Ejemplo:

Operaciones palabras

Concatenacin

La Concatenacin de dos palabras (s, t) da origen a una nueva palabra (r) formada por los elementos o smbolos de la primera palabra seguidos los smbolos de la segunda, es decir, r = s t

Ejemplo: siendo las palabras: s = abc t = defg

r = s t = abcdefg

Simbologa: la concatenacin se indica con un punto entre las palabras a concatenar.

La concatenacin se puede realizar entre la palabra vaca y cualquier palabra, teniendo como resultado la misma palabra sin ser modificada.

Ejemplo: s = s = s

Propiedades de la operacin Concatenacin:

Propiedad Conmutativa: sta propiedad no se cumple para esta operacin: s t t s

Operacin Cerrada: la concatenacin de dos palabras que pertenecen a es tambin una palabra de .

Propiedad Asociativa: (r s) t = r (s t)

Potenciacin

Se llama Potencia de una palabra v a la nueva palabra z que se obtiene de haber concatenado v consigo misma tantas veces como indica el exponente:

= v. v. v. v. v. v. ... n

Ejemplo: sea v = 011

Z = = v = 011

Z = = v v = 011011

Z = = v v v = 011011011

Toda potencia 0 de una palabra, por definicin, es la palabra vaca:

Reflexin

La Reflexin o refleja de una palabra o cadena x, se forma invirtiendo el orden de los smbolos o elementos de la misma.

Ejemplo: x = abc

= cba

EJERCICIOS RESUELTOS ALFABETO

Resolucin:

EJERCICOS RESUELTOS LENGUAJES

Ejercicio 1: Efecte la potencia correspondiente para los siguientes casos:

Resolucin:

Ejercicio 2:

1- L1 es un lenguaje sobre el alfabeto A

2- L1 es un lenguaje sobre el alfabeto B

3- L2 es un lenguaje sobre el alfabeto A B

4- L2 es un lenguaje sobre el alfabeto A B

5- L3 es un lenguaje sobre el alfabeto A B

6- L3 es un lenguaje sobre el alfabeto A B

7- L1 L2 es un lenguaje sobre el alfabeto A

8- L1 L2 es un lenguaje sobre el alfabeto A B

9- L1 L2 es un lenguaje sobre el alfabeto A B

10- L1 L2 es un lenguaje sobre el alfabeto B

Resolucin:

EJERCICIOS RESUELTOS CADENAS

Ejercicio 1: Dadas las cadenas: x = abc, y = aba; realizar las siguientes operaciones:

Resolucin:

Ejercicio 2: Dadas las cadenas: x1 = in, x2 = forma, x3 = cin; indicar si las siguientes igualdades se cumplen:

Resolucin:

a) no hay igualdad.

b) no hay igualdad.

c) hay igualdad.

EJERCICIOS RESUELTOS GRAMATICA

Ejercicio 1: Identificar en el Ejercicio 2 de Derivaciones (punto anterior) la clasificacin de Chomsky

que le corresponde a cada uno de los conjuntos de producciones dadas.

Resolucin:

1- TIPO 3

2- TIPO 2

3- TIPO 2

4- TIPO 2

5- TIPO 2

6- TIPO 2

7- TIPO 2

Ejercicio 2: Dada la siguiente Gramtica:

Indique si las siguientes cadenas pueden ser generadas o no por esta gramtica (demostrarlo

mediante la derivacin), en caso afirmativo, determine su rbol de derivacin. Para ello, considere

las siguientes cadenas:

x = abbaaab, y = baabbaaaabb, z= baabab, p = abbaab

Resolucin:

- x no puede ser generada por la gramtica.

- y no puede ser generada por la gramtica.

- z si puede ser generada por la gramtica.

- p si puede ser generada por la gramtica.

1- equivalentes

2- ambiguas

3- recursivas

indicando lo que sucede en cada una de las siguientes producciones (demostrarlo):

Resolucin:

a) Recursiva directa por izquierda (S:= aSA)

b) Recursiva directa (B:= aBb)

c) Recursiva directa por derecha (A:= aA, B:= AB) y ambigua

d) Recursiva directa (B:= bBa)

e) Recursiva directa por derecha (A:= aA) y ambigua

NINGUNA ES EQUIVALENTE

Ejercicio 4: Determine la definicin algebraica y los rboles de derivacin correspondiente,

considerando las siguientes reglas gramaticales:

Resolucin:

P1: hay recursividad

P2: hay recursividad

P3: hay recursividad

Ejercicio 5: Considerando como cuyo axioma es S = S,

establecer si las reglas de produccin dadas a continuacin, corresponden a gramticas

equivalentes. Justifique su respuesta, (demostrarlo):

Resolucin:

Caso 1: P1 y P2 no son equivalentes.

Caso 2: P1 y P2 no son equivalentes.

EJERCICIOS RESUELTOS GARMATICA BIEN FORMADA

Para cada una de las siguientes gramticas, generar la gramtica bien formada correspondiente,

es decir, eliminando Reglas no Generativas y Reglas de Redenominacion.

Ejercicio 1:

Resolucin:

Primero debemos limpiar la gramtica

Reglas innecesarias: (P:= P)

Smbolos inaccesibles: (P:= aM / zN)

Smbolos superfluos no terminales: no hay

Smbolos superfluos terminales: no hay

Eliminacin de Reglas no Generativas:

Ejercicio 2:

Resolucin:

Primero debemos limpiar la gramtica:

Reglas innecesarias: (B:= B)

Smbolos inaccesibles: no hay

Smbolos superfluos no terminales: no hay

Smbolos superfluos terminales: (z)

Eliminacin de Reglas no Generativas:

Reglas de Redenominacin:

Ejercicio 3:

Resolucin:

Primero debemos limpiar la gramtica:

Reglas innecesarias: (B:= B)

Smbolos inaccesibles: (D:= a) / (C:= aC)

Smbolos superfluos no terminales: no hay

Smbolos superfluos terminales: (c, d)

Reglas de Redenominacin: no hay

Recuerde que para que una gramtica se encuentre bien formada, primero debe estar limpia

EJERCICIOS RESUELTOS GRAMATICA LIMPIA

Limpiar las siguientes gramticas, determinando:

a) reglas innecesarias

b) smbolos inaccesibles

c) smbolos superfluos terminales y no terminales

d) definir la gramtica limpia

Ejercicio 1:

Resolucin:

a) B:= B

b) No hay

c) No terminales: no hay, Terminales: 3

Ejercicio 2:

Resolucin:

a) A:= A

b) C:= 1C

c) No hay (ni terminales, ni no terminales)

Ejercicio 3:

Resolucin:

a) S:= S

b) No hay

c) No terminales: S:= 0C / B:= 1C / C:= 0C

Terminales: no hay

Ejercicio 4:

Resolucin:

a) A:= A / B:= B

b) No hay

c) No terminales: A:= Cc / C:= Cc, terminales: no hay

Ejercicio 5:

Resolucin:

a) B:= B / C:= C

b) No hay

c) No hay (ni no terminales, ni terminales)

EJERCICICOS RESUELTOS DERIVACIONES

Ejercicio 1: A partir de las producciones siguientes:

Se pide que realice, para cada uno de los conjuntos, lo siguiente:

1- generar 4 cadenas, aplicando las producciones mediante el proceso de derivacin.

2- establecer la forma algebraica del lenguaje que conforman las cadenas encontradas.

3- determinar los componentes formales de la gramtica.

Resolucin:

Ejercicio 2: Por cada grupo de producciones, realizar todas las derivaciones posibles:

1) S:= aB / bA

A:= aB / a

B:=b

2) S:= aA

A:= bC

C:= ca /c

3) S:= caBA

A:= aC / b

B:= bA / a

C:= ab / c

4) S:= BAa

A:= Ca / a

B:= Ab / c

C:= ab

5) S:= bAB / c

A:= aC

C:= bD

B:= aD

D:= b

6) S:= aaA

A:= aa/ aaB /cB

B:= b / bC

C::= c

7) S:= abABC

A:= a / b

B:= b / a

C:= a / b

Resolucin:

P1 = ab, ba, bab

P2 = abca, abc

P3 = cabacb, cabaabb, cabbb, caab, cabaabac, cabacac, cabbac, caaac, caaaab, cabaaab, cabacaab, cabaabaab

P4 = ababa, abababa, ababaa, abaa, caa

P5 = c, babbab

P6 = aaaa, aaaab, aaaabc, aacb, aacbc

P7 = ababa, abbba, abaaa, abbaa, abaab, bbaab, abbab, ababb, abbbb

EJERCICIOS RESULETOS FORMA NORMAL DE GREIBUCH

A las siguientes gramticas llevarlas a la Forma Normal de Greibach, de acuerdo a los siguientes pasos:

a) limpiar la gramtica

b) eliminar recursividad por izquierda

c) llevar a la F.N.G.

Ejercicio 1:

Resolucin:

a) gramtica limpia

b) Regla1: C:= C1 X:= 1 / 1X

C:= 0 / 0X

c) grupo 3: B:= A1 B:= CB1 (grupo 2)

B:= 21 B:= 2Y para Y:= 1

Grupo 2: B:= CB1 B:= 0B1 B:= 0BY para Y:= 1

B:= 0XB1 B:= 0XBY para Y:= 1

A:= CB A:= 0B

A:= 0XB

Ejercicio 2:

Resolucin:

a) gramtica limpia

b) Regla1: B:= B0 X:= 0 / 0X

B:= 0 / 0X / 1 / 1X

c) grupo 3: no hay

Grupo 2: A:= B0 A:= 0X0 A:= 0XY para Y:= 0

A:= 00 A:= 0Y

A:= 10 A:= 1Y

A:= 1X0 A:= 1XY

S:= 0A1 S:= 0AZ para Z:= 1

A:= 0A1 A:= 0AZ

Ejercicio 3:

Resolucin:

a) gramtica limpia

b) no hay

c) grupo 3: B:= A0 B:= 0A0 B:= 0AY para Y:= 0

B:= 10 B:= 1Y para Y:= 0

grupo 2: S:= A0 S:= 0A0 S:= 0AY para Y:=0

S:= 10 S:= 1Y para Y:= 0

B:= 1B0 B:= 1BY para Y:= 0

Ejercicio 4:

Resolucin:

a) gramtica limpia

b)no hay

c) grupo 3: no hay

Grupo 2: S:= BC S:= 0BC

S:= 0C

S:= 1C

S:= CB S:= 0CB

S:= 0B

S:= 0C1 S:= 0CX para X:= 1

EJERCICOS RESUELTOS DE FORMA NORMAL DE CHOMSKY

A las cuatro gramticas obtenidas de los ejercicios de Gramtica

Limpia, llevarlas a la F.N.C. y derivar dos palabras con la gramtica

anterior y despus de haber aplicado la F.N.C.

Resolucin Ejercicio 1:

a) X:= 0

A:= 0B A:= XB

B:= 0A B:= XA

F.N.C.: G1 = ({ 0, 1, 2 }, { A, B, X }, A, P1 )

P1 = { (A:= XB / 2), (B:= XA / 1), (X:= 0) }

b) Antes: A 0B 00A 002

A 2

Despus: A XB 0B 0XA 00A 002

A 2

Resolucin Ejercicio 2:

a) X:= 0

Z:= 1

Y:= A1 Y:= AZ

S:= 0A1 S:= XY

A:= 0A1 A:= XY

A:= 0B A:= XB

B:= 0B B:= XB

a) Antes: S 0A1 00B1 0001

S 0A1 001

Despus: S XY 0Y 0AZ 0XBZ 00BZ 000Z 0001

S XY 0Y 0AZ 00Z 001

Resolucin Ejercicio 3:

a) X:= 0

Y:= 1

S:= 0A S:= XA

S:= 1B S:= YB

A:= 0A A:= XA

A:= 1S A:= YS

B:= 1BB B:= ZB

Z:= 1B Z:= YB

B:= 0S B:= XS

b) Antes: S:= aBc abc

S:= aAc aac

Despus: S:= AY aY aBZ abZ abc

S:= AW aAC aaZ aac

Resolucin Ejercicio 5:

a) X:= 0

Z:= 1

S:= 0C1 S:= XY

Y:= C1 Y:= CZ

B:= OB1 B:= XW

W:= B1 W:= BZ

C:= 0C1 C:= XY

PRACTICAS

LENGUAJES

Ejercicio 6: Determine si las cadenas x, y , z, pertenecen a algunos de los lenguajes L1, L2, L3.

Ejercicio 7: Determine la clausura o cierre, y la clausura positiva de los alfabetos y lenguajes descriptos anteriormente.

Ejercicio 8: La Municipalidad de Crdoba desea construir un sistema que sea capaz de determinar la secuencia de smbolos que forma la patente de un automvil. Se pide disear el lenguaje que servir de base para dicho sistema.

Ejercicio 9: Continuando con el ejercicio anterior, tambin se desea obtener un sistema que determine el n de documento del propietario de la patente, como as tambin, su nombre completo, teniendo en cuenta dos nombres y dos apellidos.

CADENAS

DETERMINE:

Ejercicio1: Determine la longitud de las cadenas .

Ejercicio 2: Determine todas las subcadenas prefijas de cada palabra dada y su longitud.

Ejercicio 3: Determine todas las subcadenas sufijas de cada palabra dada y su longitud.

Ejercicio 4: Realice las siguientes operaciones:

GRAMATICA BIEN FORMADA

Para cada una de las siguientes gramticas, generar la gramtica bien formada correspondiente, es decir, eliminando Reglas no Generativas y Reglas de Redenominacin.

Recuerde que para que una gramtica se encuentre Bien Formada, primero debe estar limpia

GRAMATICA LIMPIA

Limpiar las siguientes gramticas, determinando:

a) reglas innecesarias

b) smbolos inaccesibles

c) smbolos superfluos terminales y no terminales

d) definir la gramtica limpia

DERIVACIONES

Ejercicio 1: Obtener todas las derivaciones posibles de las siguientes producciones y determine el Lenguaje que genera cada uno:

Ejercicio 2: Elabore todas las frases que pueden ser generadas por la siguiente Gramtica, mediante rboles sintcticos:

Ejercicio 3: Muestre la derivacin de las cadenas: - 010, +111, -10101, + 0001

(Para resolver este ejercicio debe aplicar RECURSIVIDAD las veces que sea necesario para llegar al resultado.)

Ejercicio 4: Considerando las siguientes reglas de produccin, determine las derivaciones por izquierda y por derecha de la misma. Defina algebraicamente el lenguaje que genera:

FORMA NORMAL DE CHOMSKY

A las cuatro gramticas obtenidas de los ejercicios de Gramtica Limpia, llevarlas a la F.N.C. y derivar dos palabras con la gramtica anterior y despus de haber aplicado la F.N.C.

AUTOMATAS Y MAQUINAS

INTRODUCCION

Las Mquinas de estados o Autmatas, son tambin denominadas mquinas tericas o mquinas abstractas, stas son dispositivos tericos capaces de recibir y transmitir informacin. Para poder realizar esta tarea, manipulan cadenas de smbolos que se le presentan como entrada, produciendo como salida otra tira o cadena de smbolos. Para poder realizar esta tarea y determinar cuando corresponde producir un determinado smbolo de salida, lo realiza a travs de un conjunto de estados finitos, en los cuales se puede encontrar la mquina en un determinado intervalo de tiempo discreto, y este estado contendr la informacin de la salida a producir dependiendo del smbolo de entrada

Como se mencion en el prrafo anterior, la conducta de la mquina est gobernada por el estado en que se encuentre, y que ante una determinada entrada producida desde el exterior, la mquina podr cambiar de estado y eventualmente producir una salida determinada.

Los orgenes de estos autmatas y el desarrollo posterior de las variantes tienen motivaciones diferentes, ya que se puede concluir que la Teora de Autmatas proviene del campo de la Ingeniera Elctrica, en donde principalmente los trabajos desarrollados por Shannon, demostraban la aplicacin de la lgica matemtica a los circuitos combinatorios y secuenciales. A posteriori, estos trabajos ms los esfuerzos realizados por Church, Minsky, y otros , mas el postulado presentado por Alan Turing que dio origen a la mquina que lleva su nombre, culminaron con la formulacin terica de la Teora de Autmatas. Se debe a Moore la presentacin del primer tratado riguroso sobre autmatas, y recin en la dcada del 50 se comenz a ver la utilidad de los autmatas con los lenguajes y las gramticas

CLASIFICACION DE LAS MAQUINAS ABSTRACTAS

Es posible encontrar una gran variedad de clasificaciones de mquinas de estados, en nuestro caso y desde la perspectiva de la teora de la computacin, presentaremos un esquema evolutivo, en donde cada nueva mquina presentada de acuerdo a las limitaciones impuestas genera una familia o conjunto en donde cada nueva definicin ampliar las potencialidad de las anteriores.

Cada nueva mquina puede ser definida a partir de la definicin de la anterior en donde se le levantar alguna restriccin o se le proveer de alguna capacidad adicional.

.

Esta primer divisin entre Mquinas Secuenciales y Mquinas de Estados, se debe a que las primeras no poseen estado inicial ni estados de finalizacin previstos, mientras que las Mquinas de Estados, a diferencia de las anteriores tienen un estado inicial que es por donde comenzar a aplicarse la secuencia de transiciones en su ejecucin y un conjunto de estados de finalizacin.

OTRAS CLASIFICACIONES

Es posible encontrar otros tipos de clasificaciones para el conjunto de mquinas abstractas, una de ellas pueden clasificarse en mquinas traductoras y mquinas reconocedores. Entre las mquinas traductoras encontramos a las mquinas secuenciales ya que stas producirn una salida, que se corresponder con la entrada desde el exterior. Con respecto a las mquinas reconocedoras, estas son las que a diferencia de las anteriores, solo de dedican a aceptar o no aceptar cadenas recibidas desde el exterior.

Otra clasificacin posible, estar en funcin a como sern las transiciones entre estados, las cuales pueden plantearse de dos maneras posibles: Deterministas y no Deterministas. Las transiciones deterministas son aquellas que al encontrarse la mquina en un determinado estado y ante una entrada tendr la posibilidad de transitar a uno y solo uno de los estados posibles. Por otro lado las no deterministas, sern aquellas que a diferencia de las anteriores tendrn la posibilidad de transitar a mas de un estado, o ms an tambin se podr presentar cuando estando la mquina en un determinado estado tenga la posibilidad de transitar a un nuevo estado sin haber recibido una entrada (este tipo de transicin de la denominar Transiciones )

Caractersticas comunes a Todas las Mquinas Abstractas

A continuacin se presentarn un conjunto de definiciones, y partes componentes que se utilizarn para definir al conjunto de mquinas.

Definiciones de propiedades comunes

En este apartado, se intenta realizar una aproximacin al comportamiento general comn a todas las mquinas, el cul lo reflejan las definiciones siguientes:

Tiempo discreto: en esencia significa que el tiempo avanza en unidades de tiempo considerados como intervalos de tiempo discretos, y que en cada uno de estos intervalos las mquinas se encontrarn en una configuracin determinada, y realizan una accin determinada.

Conjunto finito de estados: En un determinado intervalo de tiempo la mquina slo se puede encontrar en uno y solo uno de los posibles estados.

Alfabeto de Entrada: Los estmulos que la mquina recibe desde el exterior, pertenecen a un determinado conjunto denominado Alfabeto de Entrada.

Cinta de entrada: La informacin que se recibe desde el exterior ser por medio de una cinta de entrada, los smbolos que pueden estar contenidos en esta cinta, pertenecen al Alfabeto de Entrada.

Intencionalidad de la mquina: La funcionalidad para el cul tiene propsito la mquina esta dada por su funcin de transicin, que tiene como misin fundamental, dependiendo de la mquina, cual es el prximo estado al que debe pasar la mquina, dependiendo de estado actual y el estmulo (entrada) que recibe.

Informacin hacia el exterior: En el caso que se tratase de una mquina traductora, devuelve informacin hacia el exterior, dependiendo de la mquina que se trate, tendr una cinta especial en donde grabar la informacin de salida o tendr la capacidad de regrabar la cinta nica.

Elementos constitutivos de las mquinas abstractas

A continuacin se provee de la simbologa y el significado que tendr cada uno de los componentes que sern utilizados en la descripcin de las mquinas.

Smbolo

Significado

Alfabeto de Entrada: Est presente en todas las mquinas

Q

Conjunto finito de Estados: Presente en todas las mquinas

f

Funcin de transicin: Est presente en todas las mquinas, pero dependiendo de la mquina en cuestin variar su definicin

Alfabeto de Salida: Solo estar presente en las mquinas traductoras:

Alfabeto de Cinta: Solo para el caso que la mquina sea traductora y tenga una sola cinta para entrada y salida. En este caso estar incluido en

A

Alfabeto de Pila: En el caso de que la mquina necesite una estructura de datos adicional, esta se comportar como estructura de pila y A representa el alfabeto de smbolos que se podr grabar en ella.

q0

Estado Inicial: Para el caso de las mquinas de estados, este ser un estado particular en que se encontrar la mquina en el comienzo de su ejecucin. Con q0 Perteneciente al conjunto Q.

F

Conjunto de estados finales de aceptacin: Este ser un subconjunto del conjunto de estados Q por los cuales puede transitar la mquina. Al detenerse la mquina.

a0

Smbolo inicial de Pila: En el caso de utilizacin de memoria de pila, este ser un smbolo perteneciente al alfabeto de pila con el que se marcara el tope o cima de la pila.

G

Funcin de Salida: En el caso de tratarse de una mquina secuencial, esta necesita por ser traductora un funcin especial que indique cul es la salida que debe producir en un intervalo de tiempo determinado.

Definicin y Representacin

Cada una de las mquinas en lo que se refiere a su descripcin, necesitar una enunciacin formal de todos sus componentes, y adems deber describir la funcin de transicin en todas las mquinas y adicionalmente la funcin de salida en el caso que se tratase de una mquina traductora secuencial.

Representaciones de la funcin de Transicin

Bsicamente existen tres formas de describir el funcionamiento de una mquina abstracta, y esta se puede realizar por medio de la declaracin explcita de la funcin de transicin, por medio de una tabla de doble entrada en donde bsicamente se representar el estado actual en que se encuentra la mquina, las entradas a producirse y el estado al cul transitar, y por medio de un Grafo dirigido. Cada una de las representaciones respectivas sern equivalentes en cuanto a su definicin, pero tendrn distinto grado de aceptacin en cuanto su utilizacin.

Tabla de doble entrada

Bsicamente esta forma de describir la funcin de transicin permite una representacin que facilita hacer el seguimiento de la mquina a travs de los sucesivos intervalos de tiempo por los cuales la mquina transitar e ira cambiando de estados en funcin a las sucesivas entradas que se produzcan.

La tabla, tendr como mnimo la estructura que presentamos a continuacin para todas las mquinas, pero diferir de acuerdo a la mquina que se refiera, en la informacin que contendr en la interseccin de las filas y columnas. En las columnas se representarn las posibles entradas de acuerdo al alfabeto de entrada, mientras que el las filas se describirn los posibles estados de acuerdo al alfabeto de estados.

Detalle explcito funcin de transicin

Esta forma de representar a la funcin de transicin, si bien es efectiva es la que menos inters despierta ya que no facilita el seguimiento de mquina abstracta en su ejecucin.

Como ejemplo de define:

En donde cada uno de los smbolos significa:f Funcin de Transicinpi Estado en el que se encuentra la mquina en un determinado tiempo iei Entrada a producirse en el tiempo iqi+1 Estado que se encontrar en tiempo i+1

Grafo Dirijido

Este es la forma de representacin mas expresiva, ya que al tratarse de una representacin grfica, facilita no solo evidenciar sus partes componentes y su funcin de transicin, si no que permite hacer un seguimiento de la mquina abstracta en ejecucin.Las partes constitutivas del grafo sern las siguientes:

Estados: Se representarn por medios de Nodos, los cuales se rotularn con el nombre del estado que represente

Transiciones: Se representarn mediante arcos dirigidos, en donde el nodo donde arranca el arco representa el estado actual, el nodo a donde apunta el arco es el estado al cul transitar y el rtulo del arco nos indica la entrada que producir tal transicin o cambio de estado.

Estado Inicial: Se representar mediante un nodo apuntado por una flecha

Estado Final: Es el estado que pertenece al subconjunto F, de estados finales de aceptacin y se representar mediante un nodo con doble circulo.

Mquinas Secuenciales

Estas mquinas, son en esencia mquinas traductoras, ya que dada una palabra en la entrada generan otra palabra en la salida. Por lo expuesto en el prrafo anterior, para poder producir la correspondiente transformacin estas mquinas debern estar compuestas por: Dos cintas asociadas, una que permita alojar una cadena de smbolos a la entrada, que sern ledos uno por vez, y otra cinta que permita registrar las salidas que se irn produciendo en la ejecucin de la mquina. Debern contener un conjunto finito de estados, los que son capaces de memorizar, en cada momento la parte de la palabra de entrada leda en ese instante de tiempo, cambiar de estado y producir una salida.Es importante resaltar que en un determinado intervalo de tiempo, las mquinas secuenciales realizarn tres acciones que sern indivisibles (consideradas como una unidad), las cuales son:

1. Realizan una lectura sobre la cinta de entrada.

2. Cambiar de estado.

3. Grabar un smbolo en la cinta de salida

Otro caracterstica importante a destacar sobre este tipo de mquinas, es que no disponen de un estado inicial previsto, por lo tanto en el momento de comenzar su funcionamiento podrn hacerlo desde cualquiera de sus estados, produciendo eventualmente salidas diferentes.

2.5.1. Mquina de Mealy (ME)

Esta mquina la simbolizaremos con ME, y quedar formalmente definida mediante una quntupla como sigue:

ME = { ,, Q, f, g}

Conjunto de smbolos de entrada

Conjunto de smbolos de salida

Q

Conjunto finito de estados

f

Funcin de transicin de estados definida como

g

Funcin de salida definida como

Interpretacin

La mquina de Mealy permanece en un cierto estado mientras no recibe ningn estmulo del exterior. Cuando recibe un smbolo del exterior (Perteneciente al conjunto de smbolos de entrada) realiza otras dos acciones en forma simultnea: 1- Transita a otro estado (que puede ser el mismo en el que est pero igual se produce el transito) . De acuerdo con la funcin de transicin f 2- Emite un smbolo a la salida (smbolo que pertenece al conjunto de smbolos de salida). de acuerdo con la funcin de salida Estas tres acciones: lectura de un smbolo desde exterior (cinta de Entrada), Transicin de estado, y Grabado (Cinta de Salida), sern indivisibles dentro de un intervalo de tiempo.

De esta manera al transitar desde un intervalo de tiempo discreto i hasta i+1 la mquina realizar:

Accin

Significado

q i+1 = f( qi, ei)

Estando en el intervalo de tiempo i en el estado qi y recibiendo desde la cinta de entrada ei, la mquina transita al estado qi+1

Si = f( qi, ei)

Que la salida producida en el intervalo de tiempo i estar solo en funcin del estado en que se encuentra en ese tiempo i, y la salida que producir ser la correspondiente al smbolo del estado que este despus de realizar la transicin.

Si analizamos esta mquina en relacin a la mquina de Mealy, notamos que la diferencia que existe entre ambas radica solo en como se comporta la funcin de salida q

Ejemplo:Describiremos una mquina de Moore, que resuelve el mismo ejercicio resuelto por la Mquina de Mealy anterior.La mquina nos queda:

MO = ({0,1}, {p,i}, {q0,q1}, f, g)

Descripcin explcita de la funciones f y g

Tablas de doble entrada:

Funcin Transicin f

Grafo: Resultado de ejecucin

De igual manera que en el ejemplo de Mealy probaremos el funcionamiento de la mquina de Moore sobre las mismas cadenas:a) Que salida le corresponder a una entrada1 = 0100 , comenzando la ejecucin de la mquina por el estado q0.La salida producida para la entrada1, ser : piiib) Que salida le corresponder a una entrada2 = 1011100 , comenzando la ejecucin de la mquina por el estado q0.La salida producida para la entrada2, ser : iipippp

2.5.3. Comparacin de representacin entre Mquinas Mealy y Moore

Con respecto a la ejecucin de ambas mquinas de acuerdo a los ejemplos anteriormente resueltos, notamos que para las mismas cadenas de entrada, y comenzando por el mismo estado, se obtendrn las mismas salidas.Las diferencias que se observan, con respecto a las diferentes formas de representacin entre las mquinas radican fundamentalmente en las diferencias que tienen ambas mquinas en la constitucin de la funcin de salida g.Ahora si analizamos las diferentes formas de representacin de las funciones f y g notamos lo siguiente:

Con respecto a la notacin explcita, vemos que lo que cambia es la definicin de la funcin g ya que en Moore la salida depender solamente del estado al que transitar la mquina.Con respecto a las tablas, notamos que en Moore en el caso de la representacin de la funcin g, dejar de ser una matriz como es en el caso de Mealy para convertirse en un vector.Con respecto al grafo, los cambios que se producirn son en la rotulacin de las transiciones, ya que en Moore solamente se deber indicar que entrada produce la transicin de estado, y en la rotulacin del estado ahora se deber indicar tambin cul es la salida que producir.

2.5.4. Equivalencia entre Mquinas de Mealy y Mquina de Moore

Las funciones de salidas de ambas mquinas se representan como sigue:

MEALY

g : Q x

MOORE

g : Q

Por lo tanto las salidas correspondientes en un determinado tiempo i se obtendrn de la siguiente manera:

MEALY

Si = f( qi, ei)

Que la salida producida en el intervalo de tiempo i estar en funcin del estado en que se encuentra y la entrada que recibe en el mismo tiempo i

MOORE

Si = f( qi )

Que la salida producida en el intervalo de tiempo i estar solo en funcin del estado en que se encuentra en ese tiempo i, y la salida que se producir ser la correspondiente al smbolo del estado que este despus de realizar la transicin

Bsicamente la diferencia entre ambas mquinas est dada en la respuesta que producen ambas mquinas secuenciales. En la mquina de Mealy se dice que la respuesta es inmediata ya que la salida la produce en forma directa despus de recibir la entrada. Mientras que en la mquina de Moore, la respuesta solo depende del estado en que se encontrar la mquina despus de realizar cada transicin.De acuerdo a lo expresado anteriormente, se puede demostrar que la salida en una mquina de Moore, experimenta un retardo de tiempo respecto de su entrada. Esta apreciacin es razonable, ya que la respuesta depende solo del estado al que transitar la mquina pero esta transicin se deber a la entrada anterior que dio origen al estado en el cul se encuentra la mquina.En Moore: En un determinado intervalo de tiempo i la mquina se encuentra en un determinado estado qi, y recibe un smbolo ei y se producir una transicin de estado y una salida como sigue:f ( qi , ei ) = q i+1g ( qi ) = sipero para haber estado en el estado qi que produjo la salida si debi en un intervalo de tiempo anterior haber recibido una entrada que lo llevo a este estado.f ( qi-1 , ei-1 ) = q ig ( qi ) = g (f ( qi-1 , ei-1 )) = siEn donde se evidencia que la salida si en la mquina de Moore en un intervalo i depende en forma directa de la entrada ei-1

2.5.5. Conversin de Mquinas Secuenciales

Toda mquina de Mealy se puede transformar en una mquina de Moore y viceversa. Los procedimientos sern los que siguen.

2.5.5.1. De Mealy a Moore: Dada la Mquina de Mealy:ME = {,, Q, f, g} Construiremos La Mquina de MooreM0 = {,, Q, f, g} de la siguiente manera.

En donde por cada combinacin de estado/entrada :f ( q , a ) = pg ( q , a ) = b ( con q,p Q ; a ; b )

Se crea:1) Un estado: pb Q , al que le corresponder la siguiente funcin salida:

g(pb) = b y

2) Una transicin: f( qs , a ) = pb , para cada estado qs , s

Si a un determinado estado q Q no llegase ninguna transicin, se crear un nodo etiquetado con q .

Ejemplo:

Dada la mquina de Mealy

ME1 = ({0 , 1}, {a , b}, { r, s, t }, f, g)

Funcin Transicin f

Funcin Salida g

f

0

1

g

0

1

r

r

t

r

a

b

s

r

s

s

a

b

t

r

s

t

b

a

Su grafo:y la salida que corresponde a una entrada = 00011001 comenzando en el estado r ser : aaabaaab

Ahora comenzaremos el proceso de conversin a una mquina de Moore equivalente:

MO1 = ({0 , 1}, {a , b}, Q, f, g)

donde:

f(r, 0) = r , g(r, 0) = a Entonces:

ra Q ; g( ra) = a ; f( ra , 0 ) = ra ; f( rb , 0 ) = ra

f(r, 1) = t , g(r, 1) = b Entonces:

tb Q ; g( tb) = b ; f( ra , 1 ) = tb ; f( rb , 1 ) = tb

f(s, 0) = r , g(s, 0) = a Entonces :

ra Q ; g( ra) = a ; f( sa , 0 ) = ra ; f( sb , 0 ) = ra

f(s, 1) = s , g(s, 1) = b Entonces:

sb Q ; g( sb) = b ; f( sa , 1 ) = sb ; f( sb , 1 ) = sb

f(t, 0) = r , g(t, 0) = b Entonces:

rb Q ; g( rb ) = b ; f( ta , 0 ) = rb ; f( tb , 0 ) = rb

f(t, 1) = s , g(t, 1) = a Entonces:

sa Q ; g( sa) = a ; f( ta , 1 ) = sa ; f( tb , 1 ) = sa

Nos quedar entonces: Q = { ra , tb , sb , rb , sa },vemos entonces que el estado ta ,nunca ha sido creado, por lo tanto se anularn todas las transiciones correspondientes a dicho estado.

Funcin Transicin f

Funcin Salida g

f

0

1

g

ra

ra

tb

ra

a

tb

rb

sa

tb

b

sb

ra

sb

sb

b

rb

ra

tb

rb

b

sa

ra

sb

sa

a

Y el grafo correspondiente a la mquina quedar:

Si ahora, analizamos el comportamiento de esta mquina de moore, para la misma cadena aceptada por la mquina de mealy equivalente vemos lo siguiente. Para determinar por cual estado debemos comenzar lo haremos por aquellos estados que participaron en el misto estado r de la mquina de mealy, estos estados sern (ra y rb )

Donde se evidencia que la mquina de Moore responde de igual manera que la Mquina de Mealy

2.5.5.1. De Moore a Mealy :

Dada la Mquina de Moore:

MO = {,, Q, f, g} Construiremos La Mquina de Mealy

ME = {,, Q, f, g} de la siguiente manera.En donde por cada transicin y salida en el que se cumpla :

f ( q , a ) = p

g ( q ) = b ( con q, p Q ; a ; b )Se define: g( q , a ) = b

Ejemplo:

Dada la mquina de Moore

MO2 = ({0 , 1}, {a , b}, { r, s }, f, g)

Funcin Transicin f

Funcin Salida g

f

0

1

g

r

r

s

r

a

Grafo:

y la salida que corresponde a una entrada = 00100111 comenzando en el estado r ser : aaabaaab

Ahora comenzaremos el proceso de conversin para obtener a una mquina de Mealy equivalente:

ME2 = ({0 , 1}, {a , b}, Q, f, g)

donde:

f ( r , 0 ) = r ; g ( r ) = a ; Por lo tanto g ( r , 0 ) = a ;

f ( r , 1 ) = s ; g ( s ) = b ; Por lo tanto g ( r , 1 ) = b ;

f ( s , 0 ) = s ; g ( s ) = b ; Por lo tanto g ( r , 0 ) = b ;

f ( s , 1 ) = r ; g ( r ) = a ; Por lo tanto g ( r , 1 ) = a ;

por lo tanto las funciones f y g quedarn:

Funcin Transicin f

Funcin Salida g

f

0

1

g

0

1

r

r

s

r

a

b

s

s

r

s

b

a

y la salida que corresponde a una entrada a = 00100111 comenzando en el estado r ser : aaabaaab

igual que en la mquina de Moore equivalente.

Mquinas de Estados: Autmatas Finitos Deterministas (AFD)

Comenzaremos ahora a definir este tipo de mquinas que a diferencia de las mquinas secuenciales, estas poseen estado inicial previsto que es por donde comenzarn su ejecucin.

Autmatas Finitos Deterministas (AFD)

Este tipo de autmatas admite su definicin de dos maneras bien diferentes:: Como autmatas traductores o reconocedores. La definicin como autmatas traductores continua a la definicin de las mquinas secuenciales, y se los podra definir como una subclase de estas, ya que los autmatas finitos tendran como limitante no poder iniciar desde cualquier estado como lo hacen en las mquinas secuenciales.

La forma que adoptaremos para la definicin de los autmatas finitos deterministas es como autmatas reconocedores, ya que se ajusta con los contenidos de la informtica terica y utilizacin que se les da dentro del diseo de los analizadores lxicos.

Estos autmatas solo se limitarn a aceptar o no una determinada cadena recibida en la entrada, por lo tanto podemos decir que la salida de los mismos solo tendr dos valores posibles aceptar o no aceptar a la palabra de entrada.

Al igual que en las mquinas secuenciales, estos autmatas transitarn entre un conjunto finito de estados posibles, a medida que reciban sucesivamente los caracteres de entrada, en un instante determinado de tiempo el autmata solo podr estar en uno y solo uno de los estados posibles.

Una caracterstica importante de este tipo de autmatas es el determinismo, lo cul significa que estando en un estado y recibiendo una entrada del exterior el autmata tendr la posibilidad de transitar a uno y solo un estado del conjunto de estados posibles.

Con respecto al conjunto de estados ahora se pueden clasificar en tres tipos: Estado Inicial, que es pon donde comenzar la ejecucin de la mquina; Estados finales o de aceptacin que ser un subconjunto del conjunto de estados por los que transitar la mquina, y si cuando se hayan terminado de procesar todos los smbolos de entrada y no reste ningn smbolo por leer, la mquina quede posicionada en uno de estos estados de aceptacin, se concluir que la cadena procesada ser aceptada por el autmata. y Estados Intermedios, que tienen comportamiento idntico a los definidos en las mquinas secuenciales.

Definicin:

Los autmatas finitos deterministas quedarn formalmente definida mediante una quntupla como sigue:

AFD = ( , Q, q0, F, f )

donde:

Alfabeto de smbolos de entrada.

Q

Conjunto finito de estados

q0

q0 Q estado inicial previsto

F

F Q - es el conjunto de estado finales de aceptacin.

f

Funcin de transicin de estados definida como

f: Q x Q

Interpretacin de funcionamiento:

Este autmata recibir una cadena en la cinta de entrada e ira procesando de uno a la vez los smbolos de entrada. Comenzar su funcionamiento posicionada en el estado inicial, y desde este estado comenzar su ejecucin.

En cada intervalo de tiempo discreto realizar dos acciones las cuales sern consideradas como acciones indivisibles en un determinado intervalo de tiempo.

Las acciones que realiza son:

Leer el prximo smbolo, desde la cinta de entrada.

Transitar, cambiar de estado

Extensin a palabras

El autmata finito determinista realizar transiciones de estados a travs de la funcin f solo cuando reciba un smbolo de entrada. Esto puede generalizarse a una palabra completa, o cuando reciba la palabra vacia, en este caso se denominar una funcin de transicin f como la funcin

f : Q x* Q

Donde:

f (q, ax) = f(f(q,a),x)

f (q,) = q con a ; x* ; q Q

Aceptacin de Palabras:

Una palabra ser aceptada por un AFD si estando formada pos smbolos pertenecientes al alfabeto de entrada, al finalizar de procesar la misma, el autmata queda posicionado en una de los estados perteneciente al conjunto de estados finales de aceptacin.

Dada:x W()

f ( q0, x) = qn Si qn F la cadena x es aceptada

Lenguaje reconocido por un AFD:

Es el conjunto de todas las palabras reconocidas por el Autmata Finito Determinista.

L AFD = { x / x * y f ( q0, x) = qn con qn F }

Ejemplo:

Dado el siguiente AFD definido como:

AFD1 = ( , Q, qi, F, f ), donde:= { 0,1 } (Conjunto de smbolos de entrada del AFD)

Q= { p, q, r } (Conjunto de estados del AFD)

qi = p (estado inicial del AFD (p Q))

F= {q } (Conjunto de estados de aceptacin del AFD ({q } Q))f: funcin de transicin de estados del AFD

Donde la funcin f ser:

f

0

1

Tambin puede expresarse como:

p

q

r

f(p, 0)= q f(p, 1)= r

*

q

r

q

f(q, 0)= p f(q, 1)= q

r

r

r

f(r, 0)= r f(r, 1)= r

Representando su comportamiento por medio del grafo dirigido:

En donde el lenguaje aceptado por esta AFD ser:

L AFD1 = {x / x* y x = 0.1n con n N 0}

Accesibilidad entre estados (A)

Dados dos estados dentro de un autmata, se dice que uno de los estado es accesible desde el otro, si existe una palabra x formada por smbolos del alfabeto de entrada que hace que partiendo de este estado y a travs de la aplicacin de la funcin de transicin se pueda llegar hasta el otro.

De esta manera definiremos:

Sean p y q Q dos estados dentro de un AFD y

existe x W() tal que:

f( q , x ) = p Entonces se dice que:

pAq ( Se lee p es accesible desde q )

Conjunto Conexo

Un conjunto conexo es aquel en donde todos sus estados son accesibles desde el estado inicial. Por lo tanto un AFD ser conexo si todo estado perteneciente al conjunto de estados es accesible desde el estado inicial.

Si en un AFD existieran estados que no son accesibles desde el estado inicial, los mismos pueden ser eliminados, de manera de simplificar el autmata. Esta eliminacin no afectar al comportamiento y por lo tanto continuar aceptando el mismo Lenguaje.

Ejemplo de conjunto conexo:

Dado el siguiente AFD definido como:

AFD1 = ( , Q, qi, F, f ), donde:= { 0,1 }

Q= { p, q, r , t, s }

qi = p

F= {q ,s }

Donde la funcin f ser:

F

0

1

Tambin puede expresarse como:

p

q

r

f(p, 0)= q f(p, 1)= r

*

q

r

q

f(q, 0)= p f(q, 1)= q

R

r

r

f(r, 0)= r f(r, 1)= r

T

s

q

f(t, 0)= s f(t, 1)= q

*

s

s

t

f(s, 0)= s f(s, 1)= t

El Grafo correspondiente ser:

Analizando, el grafo del AFD, vemos que alos estados t y s , es imposible acceder desde el estado inicial p, por lo tanto estos estados pueden ser eliminados del AFD y el comportamiento del autmata no se alterar.

Equivalencias en los AFD

A continuacin presentaremos definiciones de equivalencias para culminar con equivalencia entre Autmatas Finitos Deterministas.

Equivalencias entre estados:

Dos estados p y q sern equivalentes si: Para toda cadena x que desde el estado p hace transitar el autmata hasta un estado de aceptacin, tambin lo hace desde el estado q. Debiendo ocurrir simultaneamente que para toda otra cadena y que no hacen transitar desde el estado p hasta un estado de aceptacin, tampoco lo har desde el estado q.

De esta manera definiremos:

Sean p y q Q dos estados dentro de un AFD

p E q ( Se lee: p y q son equivalentes)

si cadena x W() - se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de q Y otra cadena y W() no se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de q.

Equivalencias entre estados de longitud n:

Dos estados p y q sern equivalentes de longitud n si: cumplen la equivalencia planteada en la seccin anterior pero con la restriccin de que la longitud de las cadenas x e y sean menor o igual a n.

De esta manera definiremos:

Sean p y q Q dos estados dentro de un AFD

p E q son equivalentes de longitud n si

si x W() , | x | n - se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de qY

y W() , | y | n no se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de q

Equivalencia entre AFD

Dos AFD A1 y A2 son equivalentes, y se dice: A1 E A2

Si ambos autmatas aceptan las mismas cadenas o sean que reconocen exactamente el mismo lenguaje.

Conjunto cociente Q/E

Mediante las relaciones de equivalencias entre estados se efecta la particin del conjunto de estados en Clases de equivalencias, en la cul se encontrarn los estados que son equivalentes entre s.

Para lograr el conjunto cociente, se comienza con la relacin de equivalencia entre estados de longitud 0, o sea lo que primero se intenta formar el Q/E0, y en el caso de las AFD, este conjunto se subdivide en solo dos clases, los que pertenecen al subconjunto de estados finales de aceptacin y los que no pertenecen.

Q/E0 = [ {F} , {F}]

Se continuar con iteraciones sucesivas, incrementando en 1 la longitud de las cadenas de entrada en cada iteracin y se verificar si los estados que siendo equivalentes en una iteracin anterior continan siendo equivalentes en la nueva clase de equivalencia Q/E1.

El proceso iterativo continuar, hasta conseguir la clase de equivalencia Q/E y este proceso se detendr cuando un nuevo conjunto en una iteracin i+1 se mantiene sin modificaciones con respecto al conjunto anterior.

Q/E i = Q/E i+1 Se detiene el proceso.

Ejemplo:

Dado el autmata, determinar el conjunto cociente mnimo

AFD3 = ( { a , b }, { p, q , r, s , t }, p, { r, t }, f ) , donde:

f

a

b

p

s

t

q

t

p

*

r

p

s

s

p

t

*

t

r

s

Resolucin:

Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo conjuntos de estados que resultan diferentes entre s y esto lo realizamos a travs de la determinacin de las clases de equivalencia entre estados.

Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en dos clases. Los estados que son de aceptacin por un lado y los que no por otro lado, y luego en un proceso iterativo se continuar verificando los estados que continen siendo equivalentes a medida que se incrementa en 1 la longitud de las estradas. El proceso finalizar cuando una clase de equivalencia se mantenga constante ante un incremento en la longitud de la entrada.

Q/E0 = [{ F } , {F}] = [{ r , t }{ p , q , s }]

Denominaremos con c1 = {r, t} y c2 = {p,q,s}

Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas hasta el momento ( c1 y c2) continan sindolo ante una nueva entrada, o sea debemos verificar si sus estados integrantes siguen siendo equivalentes al incrementar la longitud de la cadena de entrada.

c1 = {r, t}:

Al estar constituido por los estados r y t, con una nueva entrada para cada uno de esos estados debern coincidir en que transitarn a estados que pertenecen a una misma clase de equivalencia.

f ( r , a ) = p

f ( r , b ) = s

f ( t , a ) = r

f ( t , b ) = s

Por lo tanto f ( c1, a ) = van conjuntos cocientes diferentes de la clase anterior, y por lo tanto los estados r y t no podrn seguir siendo equivalentes. No ocurre lo mismo con una entrada b, ya que f(c1,b) van a una misma clases de equivalencia anterior.

Pero con que al menos con una entrada no vaya a una misma clase anterior, los estados r y t no sern equivalentes y por lo tanto debern ser separados del conjunto c1.

c2 = {p, q, s}:

Veremos como transitan ante una nueva entrada (long. 1)

f ( p , a ) = s

c2

f ( p , b ) = t

c1

f ( q , a ) = t

c1

f ( q , b ) = p

c2

f ( s , a ) = p

c2

f ( s , b ) = t

c1

Vemos que los estados p y s pertenecientes a c2 podrn continuar siendo equivalentes ya que sus salidas a las entradas respectivas caen dentro de una misma clase de equivalencia anterior. No ocurre lo mismo con el estado q que deber ser separado de la clase de equivalencia c2.

Por lo tanto Q/E1, nos quedar:

Q/E1 = [{ r } , { t } , { q }, {p , s }]

Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s}

Ahora debemos comprobar, si incrementando en uno la cadena de entrada los estados p y s continan siendo equivalentes.

d4 = {p, s}:

Veremos que pasa con una nueva entrada para cada uno de esos estados.

f ( p , a ) = s

d4

f ( p , b ) = t

d2

f ( s , a ) = p

d4

f ( s , b ) = t

d2

De esta manera, se verifica que ante una nueva entrada, los estados p y s que son equivalentes, continan sindolo.

Q/E2 = [{ r } , { t } , { q }, {p , s }]

Vemos ahora que: Q/E1 = Q/E2, por lo tanto el proceso se detiene, y las clases de equivalencias resultan:

Q/E = [{ r } , { t } , { q }, {p , s }]

Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s} a los estados, y el nuevo autmata nos quedar:

AFD3 = ( { a , b }, { d1, d2 , d3, d4 }, d4, {d1, d2}, f ) , donde:

f

a

b

d1

d4

d4

d2

d1

d4

d3

d2

d4

d4

d4

d2

Minimizacin de AFD

El objetivo de minimizacin de los AFD, es obtener un autmata equivalente al dado, o sea que aceptar el mismo lenguaje, pero este nuevo autmata contendr un menor nmero de estados.

Los pasos a realizar para la obtencin del autmata mnimo son los siguientes:

Se debe encontrar el autmata conexo, para estos el autmata debe cumplir que todos sus estados sean accesibles desde el estado inicial. Si existiera algn estado que no cumpliera con esta condicin se lo podr eliminar, sin que se afecte el lenguaje aceptado por el autmata.

Determinar el Conjunto cociente, en el cul nos indicar el mnimo nmero de estados con diferente significado.

Construir el nuevo autmata, para ello se utilizarn los estados determinados por las clases de equivalencia. El estado inicial del nuevo autmata, pertenecer a la clase de equivalencia en donde se encuentre el estado inicial del autmata original, y los mismo ocurrir con los estados finales de aceptacin, en donde sern los que pertenezcan a clases de equivalencias donde se encuentren estados finales de aceptacin del autmata original. Con respecto a las transiciones de los nuevos estados, estas se realizarn en funcin a las transiciones de los estados que conforman la clase de equivalencia respectiva.

Ejemplo: Dado el siguiente AFD definido como:

AFD4 = ( , Q, qi, F, f ), donde:

= { a , b }

Q= { p, q, r , t, s }

qi = p

F= {q , r }

Donde la funcin f ser:

f

a

b

p

s

r

*

q

t

p

*

r

p

s

s

p

r

t

t

q

Se pide :

a) Grafo

b) Autmata conexo

c) Conjunto Cociente

d) Autmata mnimo

e) Grafo del nuevo autmata

f) Identificar una cadena de longitud 5 y verificar que la misma es aceptada por ambos autmatas

Resolucin:

a) Grafo del Autmata

b) Autmata Conexo

Se verifica la accesibilidad de estados desde el estado inicial, y vemos que los estados t y q resultan inaccesibles, por lo tanto pueden ser descartados y nos queda un nuevo AFD4 , de la siguiente manera:

AFD4 = ( { a , b }, { p, r , s }, p, { r }, f ) , donde:

Donde la funcin f ser:

f'

a

b

p

s

r

*

r

p

s

s

p

r

Y el nuevo grafo ser:

c) Conjunto cociente

Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo conjuntos de estados que resultan diferentes entre s y esto lo realizamos a travs de la determinacin de las clases de equivalencia entre estados.

Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en dos clases. los estados que son de aceptacin por un lado y los que no por otro lado.

Q/E0 = [ {p, s}, {r}]

Denominaremos con c1 = {p, s} y c2 = {r}

Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas hasta el momento continan sindolo ante una nueva entrada, o sea debemos verificar si sus estados integrantes siguen siendo equivalentes al incrementar la longitud de la cadena de entrada.

Por lo tanto, lo verificaremos para c1 = {p, s}. Al estar constituido por los estados p y s, con una nueva entrada para cada uno de esos estados debern coincidir en que transitarn a estados que pertenecen a una misma clase de equivalencia.

f ( p , a ) = s

f ( s , a ) = p

La salida con la entrada a son los estados s , p que pertenecen a una misma clase de equivalencia anterior por lo tanto, podemos decir que

f ( c1, a ) = c1

Con respecto a la entrada b:

f ( p , b ) = r

f ( s , b ) = r

La salida con la entrada b es el estado r por lo tanto, podemos decir que

f ( c1, b ) = c2

Con lo que se puede afirmar, que la clase de equivalencia c1, contina sindolo para una nueva entrada y por lo tanto:

Q/E1 = [ {p, s}, {r}]

Ahora como Q/E0 = Q/E1 el proceso se detiene y la clase equivalencia con el mnimo nmero de estados ser

Q/E = [ {p, s}, {r}] = [ {c1}, {c2}]

d) Autmata mnimo:

AFD4 = ( { a , b }, { c1, c2 }, c1, { c2 }, f ) , donde:

El estado inicial del nuevo autmata ser c1, ya que en este se encuentra contenido el estado p que era el estado inicial del autmata equivalente.

Con respecto al estado c2, que es el estado final de aceptacin, lo es ya que tiene incluido al estado r que lo era anteriormente.

Para el armado de la nueva funcin de transicin, lo haremos siguiendo las transiciones originales de cada uno de los estados que componen el estado resultante de la clase de equivalencia, por lo tanto nos queda:

f''

a

b

c1

c1

c2

*

c2

c1

c1

e) Nuevo Grafo

f) Verificacin:

Dadas dos cadenas x1 y x2 ambas de longitud 5, verificaremos si ambos autmatas son capaces de reconocerlas

x1 = aabbb

x2 = baaab

Para el caso del AFD4

f ( p, x1 ) = r

f ( p, x2 ) = r

En ambas cadenas al estado que se llega es r, el cul pertenece al conjunto F por lo tanto ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.

Para el caso del AFD4

f ( c1, x1 ) = c2

f ( c1, x2 ) = c2

En ambas cadenas al estado que se llega es c2, el cul pertenece al conjunto F por lo tanto ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.

Configuracin instantnea y movimiento

El concepto de configuracin instantnea o descripcin instantnea, permite describir la configuracin del autmata en cada momento.

Representacin: Lo representaremos mediante un par ordenado ( q, w ) en donde, q Perteneciente al conjunto de estado Q, es el estado en donde se encuentra el autmata, w formada con los smbolos del alfabeto de entrada, ser la cadena que resta por leer.

Configuracin Inicial:

Se establecer como: ( q0 , x ) ; donde q0 ser el estado inicial, y x la cadena a ser leida

Configuracin Final:

Se establecer como: ( qn, ) = ; donde qn ser el estado en donde se detiene el autmata, cuando no resta nada por leer ().

Movimiento:

Es la transicin de una configuracin a otra:

( p, a ) ( q , w ) ; dados p , q Q ; a ; w *

este movimiento ser posible, solo si existe una transicin mediante la aplicacin de:

f( p , a ) = q

Implementacin de un Algoritmo

Dentro de los usos que se le pueden dar a las mquinas de estados, y en particular a los AFD, est el reconocimiento de cadenas. Para realizar este reconocimiento en forma precisa y automatizada, el mismo puede implementarse en cualquier lenguaje de programacin.

Ser posible que habiendo diseado un autmata que sea capaz de reconocer un conjunto de cadenas de un lenguaje, construir un programa que implemente dicho autmata en algn lenguaje de programacin, a tal fin el Algoritmo de funcionamiento del programa puede ser obtenido a partir del AFD en forma directa.

Ejemplo:

AFD5 = ( {0,1}, {p,q,r,s,t}, p, {q}, f ), donde:

Donde la funcin f :

f

0

1

p

s

t

*

q

q

t

r

q

t

s

s

r

t

t

t

El Grafo ser:

El lenguaje aceptado por esta autmata es:

L AFD5 = { x / x W() / an.b.am con n,m 1 }

Diagrama de flujo de algoritmo:

El diagrama de flujo elemental, asumiendo que en la entrada solo se ingresarn smbolos a y b, y que siempre se ingresar al menos un carcter vlido es el siguiente:

Hac click sobre la imagen para verla en tamao completo

Mquinas de Estados: Autmatas Finitos Deterministas (AFD)

Comenzaremos ahora a definir este tipo de mquinas que a diferencia de las mquinas secuenciales, estas poseen estado inicial previsto que es por donde comenzarn su ejecucin.

Autmatas Finitos Deterministas (AFD)

Este tipo de autmatas admite su definicin de dos maneras bien diferentes:: Como autmatas traductores o reconocedores. La definicin como autmatas traductores continua a la definicin de las mquinas secuenciales, y se los podra definir como una subclase de estas, ya que los autmatas finitos tendran como limitante no poder iniciar desde cualquier estado como lo hacen en las mquinas secuenciales.

La forma que adoptaremos para la definicin de los autmatas finitos deterministas es como autmatas reconocedores, ya que se ajusta con los contenidos de la informtica terica y utilizacin que se les da dentro del diseo de los analizadores lxicos.

Estos autmatas solo se limitarn a aceptar o no una determinada cadena recibida en la entrada, por lo tanto podemos decir que la salida de los mismos solo tendr dos valores posibles aceptar o no aceptar a la palabra de entrada.

Al igual que en las mquinas secuenciales, estos autmatas transitarn entre un conjunto finito de estados posibles, a medida que reciban sucesivamente los caracteres de entrada, en un instante determinado de tiempo el autmata solo podr estar en uno y solo uno de los estados posibles.

Una caracterstica importante de este tipo de autmatas es el determinismo, lo cul significa que estando en un estado y recibiendo una entrada del exterior el autmata tendr la posibilidad de transitar a uno y solo un estado del conjunto de estados posibles.

Con respecto al conjunto de estados ahora se pueden clasificar en tres tipos: Estado Inicial, que es pon donde comenzar la ejecucin de la mquina; Estados finales o de aceptacin que ser un subconjunto del conjunto de estados por los que transitar la mquina, y si cuando se hayan terminado de procesar todos los smbolos de entrada y no reste ningn smbolo por leer, la mquina quede posicionada en uno de estos estados de aceptacin, se concluir que la cadena procesada ser aceptada por el autmata. y Estados Intermedios, que tienen comportamiento idntico a los definidos en las mquinas secuenciales.

Definicin:

Los autmatas finitos deterministas quedarn formalmente definida mediante una quntupla como sigue:

AFD = ( , Q, q0, F, f )

donde:

Alfabeto de smbolos de entrada.

Q

Conjunto finito de estados

q0

q0 Q estado inicial previsto

F

F Q - es el conjunto de estado finales de aceptacin.

f

Funcin de transicin de estados definida como

f: Q x Q

Interpretacin de funcionamiento:

Este autmata recibir una cadena en la cinta de entrada e ira procesando de uno a la vez los smbolos de entrada. Comenzar su funcionamiento posicionada en el estado inicial, y desde este estado comenzar su ejecucin.

En cada intervalo de tiempo discreto realizar dos acciones las cuales sern consideradas como acciones indivisibles en un determinado intervalo de tiempo.

Las acciones que realiza son:

Leer el prximo smbolo, desde la cinta de entrada.

Transitar, cambiar de estado

Extensin a palabras

El autmata finito determinista realizar transiciones de estados a travs de la funcin f solo cuando reciba un smbolo de entrada. Esto puede generalizarse a una palabra completa, o cuando reciba la palabra vacia, en este caso se denominar una funcin de transicin f como la funcin

f : Q x* Q

Donde:

f (q, ax) = f(f(q,a),x)

f (q,) = q con a ; x* ; q Q

Aceptacin de Palabras:

Una palabra ser aceptada por un AFD si estando formada pos smbolos pertenecientes al alfabeto de entrada, al finalizar de procesar la misma, el autmata queda posicionado en una de los estados perteneciente al conjunto de estados finales de aceptacin.

Dada:x W()

f ( q0, x) = qn Si qn F la cadena x es aceptada

Lenguaje reconocido por un AFD:

Es el conjunto de todas las palabras reconocidas por el Autmata Finito Determinista.

L AFD = { x / x * y f ( q0, x) = qn con qn F }

Ejemplo:

Dado el siguiente AFD definido como:

AFD1 = ( , Q, qi, F, f ), donde:= { 0,1 } (Conjunto de smbolos de entrada del AFD)

Q= { p, q, r } (Conjunto de estados del AFD)

qi = p (estado inicial del AFD (p Q))

F= {q } (Conjunto de estados de aceptacin del AFD ({q } Q))f: funcin de transicin de estados del AFD

Donde la funcin f ser:

f

0

1

Tambin puede expresarse como:

p

q

r

f(p, 0)= q f(p, 1)= r

*

q

r

q

f(q, 0)= p f(q, 1)= q

r

r

r

f(r, 0)= r f(r, 1)= r

Representando su comportamiento por medio del grafo dirigido:

En donde el lenguaje aceptado por esta AFD ser:

L AFD1 = {x / x* y x = 0.1n con n N 0}

Accesibilidad entre estados (A)

Dados dos estados dentro de un autmata, se dice que uno de los estado es accesible desde el otro, si existe una palabra x formada por smbolos del alfabeto de entrada que hace que partiendo de este estado y a travs de la aplicacin de la funcin de transicin se pueda llegar hasta el otro.

De esta manera definiremos:

Sean p y q Q dos estados dentro de un AFD y

existe x W() tal que:

f( q , x ) = p Entonces se dice que:

pAq ( Se lee p es accesible desde q )

Conjunto Conexo

Un conjunto conexo es aquel en donde todos sus estados son accesibles desde el estado inicial. Por lo tanto un AFD ser conexo si todo estado perteneciente al conjunto de estados es accesible desde el estado inicial.

Si en un AFD existieran estados que no son accesibles desde el estado inicial, los mismos pueden ser eliminados, de manera de simplificar el autmata. Esta eliminacin no afectar al comportamiento y por lo tanto continuar aceptando el mismo Lenguaje.

Ejemplo de conjunto conexo:

Dado el siguiente AFD definido como:

AFD1 = ( , Q, qi, F, f ), donde:= { 0,1 }

Q= { p, q, r , t, s }

qi = p

F= {q ,s }

Donde la funcin f ser:

F

0

1

Tambin puede expresarse como:

p

q

r

f(p, 0)= q f(p, 1)= r

*

q

r

q

f(q, 0)= p f(q, 1)= q

R

r

r

f(r, 0)= r f(r, 1)= r

T

s

q

f(t, 0)= s f(t, 1)= q

*

s

s

t

f(s, 0)= s f(s, 1)= t

El Grafo correspondiente ser:

Analizando, el grafo del AFD, vemos que alos estados t y s , es imposible acceder desde el estado inicial p, por lo tanto estos estados pueden ser eliminados del AFD y el comportamiento del autmata no se alterar.

Equivalencias en los AFD

A continuacin presentaremos definiciones de equivalencias para culminar con equivalencia entre Autmatas Finitos Deterministas.

Equivalencias entre estados:

Dos estados p y q sern equivalentes si: Para toda cadena x que desde el estado p hace transitar el autmata hasta un estado de aceptacin, tambin lo hace desde el estado q. Debiendo ocurrir simultaneamente que para toda otra cadena y que no hacen transitar desde el estado p hasta un estado de aceptacin, tampoco lo har desde el estado q.

De esta manera definiremos:

Sean p y q Q dos estados dentro de un AFD

p E q ( Se lee: p y q son equivalentes)

si cadena x W() - se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de q Y otra cadena y W() no se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de q.

Equivalencias entre estados de longitud n:

Dos estados p y q sern equivalentes de longitud n si: cumplen la equivalencia planteada en la seccin anterior pero con la restriccin de que la longitud de las cadenas x e y sean menor o igual a n.

De esta manera definiremos:

Sean p y q Q dos estados dentro de un AFD

p E q son equivalentes de longitud n si

si x W() , | x | n - se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de qY

y W() , | y | n no se puede alcanzar un estado final previsto tanto comenzando desde el estado p como el de q

Equivalencia entre AFD

Dos AFD A1 y A2 son equivalentes, y se dice: A1 E A2

Si ambos autmatas aceptan las mismas cadenas o sean que reconocen exactamente el mismo lenguaje.

Conjunto cociente Q/E

Mediante las relaciones de equivalencias entre estados se efecta la particin del conjunto de estados en Clases de equivalencias, en la cul se encontrarn los estados que son equivalentes entre s.

Para lograr el conjunto cociente, se comienza con la relacin de equivalencia entre estados de longitud 0, o sea lo que primero se intenta formar el Q/E0, y en el caso de las AFD, este conjunto se subdivide en solo dos clases, los que pertenecen al subconjunto de estados finales de aceptacin y los que no pertenecen.

Q/E0 = [ {F} , {F}]

Se continuar con iteraciones sucesivas, incrementando en 1 la longitud de las cadenas de entrada en cada iteracin y se verificar si los estados que siendo equivalentes en una iteracin anterior continan siendo equivalentes en la nueva clase de equivalencia Q/E1.

El proceso iterativo continuar, hasta conseguir la clase de equivalencia Q/E y este proceso se detendr cuando un nuevo conjunto en una iteracin i+1 se mantiene sin modificaciones con respecto al conjunto anterior.

Q/E i = Q/E i+1 Se detiene el proceso.

Ejemplo:

Dado el autmata, determinar el conjunto cociente mnimo

AFD3 = ( { a , b }, { p, q , r, s , t }, p, { r, t }, f ) , donde:

f

a

b

p

s

t

q

t

p

*

r

p

s

s

p

t

*

t

r

s

Resolucin:

Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo conjuntos de estados que resultan diferentes entre s y esto lo realizamos a travs de la determinacin de las clases de equivalencia entre estados.

Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en dos clases. Los estados que son de aceptacin por un lado y los que no por otro lado, y luego en un proceso iterativo se continuar verificando los estados que continen siendo equivalentes a medida que se incrementa en 1 la longitud de las estradas. El proceso finalizar cuando una clase de equivalencia se mantenga constante ante un incremento en la longitud de la entrada.

Q/E0 = [{ F } , {F}] = [{ r , t }{ p , q , s }]

Denominaremos con c1 = {r, t} y c2 = {p,q,s}

Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas hasta el momento ( c1 y c2) continan sindolo ante una nueva entrada, o sea debemos verificar si sus estados integrantes siguen siendo equivalentes al incrementar la longitud de la cadena de entrada.

c1 = {r, t}:

Al estar constituido por los estados r y t, con una nueva entrada para cada uno de esos estados debern coincidir en que transitarn a estados que pertenecen a una misma clase de equivalencia.

f ( r , a ) = p

f ( r , b ) = s

f ( t , a ) = r

f ( t , b ) = s

Por lo tanto f ( c1, a ) = van conjuntos cocientes diferentes de la clase anterior, y por lo tanto los estados r y t no podrn seguir siendo equivalentes. No ocurre lo mismo con una entrada b, ya que f(c1,b) van a una misma clases de equivalencia anterior.

Pero con que al menos con una entrada no vaya a una misma clase anterior, los estados r y t no sern equivalentes y por lo tanto debern ser separados del conjunto c1.

c2 = {p, q, s}:

Veremos como transitan ante una nueva entrada (long. 1)

f ( p , a ) = s

c2

f ( p , b ) = t

c1

f ( q , a ) = t

c1

f ( q , b ) = p

c2

f ( s , a ) = p

c2

f ( s , b ) = t

c1

Vemos que los estados p y s pertenecientes a c2 podrn continuar siendo equivalentes ya que sus salidas a las entradas respectivas caen dentro de una misma clase de equivalencia anterior. No ocurre lo mismo con el estado q que deber ser separado de la clase de equivalencia c2.

Por lo tanto Q/E1, nos quedar:

Q/E1 = [{ r } , { t } , { q }, {p , s }]

Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s}

Ahora debemos comprobar, si incrementando en uno la cadena de entrada los estados p y s continan siendo equivalentes.

d4 = {p, s}:

Veremos que pasa con una nueva entrada para cada uno de esos estados.

f ( p , a ) = s

d4

f ( p , b ) = t

d2

f ( s , a ) = p

d4

f ( s , b ) = t

d2

De esta manera, se verifica que ante una nueva entrada, los estados p y s que son equivalentes, continan sindolo.

Q/E2 = [{ r } , { t } , { q }, {p , s }]

Vemos ahora que: Q/E1 = Q/E2, por lo tanto el proceso se detiene, y las clases de equivalencias resultan:

Q/E = [{ r } , { t } , { q }, {p , s }]

Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s} a los estados, y el nuevo autmata nos quedar:

AFD3 = ( { a , b }, { d1, d2 , d3, d4 }, d4, {d1, d2}, f ) , donde:

f

a

b

d1

d4

d4

d2

d1

d4

d3

d2

d4

d4

d4

d2

Minimizacin de AFD

El objetivo de minimizacin de los AFD, es obtener un autmata equivalente al dado, o sea que aceptar el mismo lenguaje, pero este nuevo autmata contendr un menor nmero de estados.

Los pasos a realizar para la obtencin del autmata mnimo son los siguientes:

Se debe encontrar el autmata conexo, para estos el autmata debe cumplir que todos sus estados sean accesibles desde el estado inicial. Si existiera algn estado que no cumpliera con esta condicin se lo podr eliminar, sin que se afecte el lenguaje aceptado por el autmata.

Determinar el Conjunto cociente, en el cul nos indicar el mnimo nmero de estados con diferente significado.

Construir el nuevo autmata, para ello se utilizarn los estados determinados por las clases de equivalencia. El estado inicial del nuevo autmata, pertenecer a la clase de equivalencia en donde se encuentre el estado inicial del autmata original, y los mismo ocurrir con los estados finales de aceptacin, en donde sern los que pertenezcan a clases de equivalencias donde se encuentren estados finales de aceptacin del autmata original. Con respecto a las transiciones de los nuevos estados, estas se realizarn en funcin a las transiciones de los estados que conforman la clase de equivalencia respectiva.

Ejemplo: Dado el siguiente AFD definido como:

AFD4 = ( , Q, qi, F, f ), donde:

= { a , b }

Q= { p, q, r , t, s }

qi = p

F= {q , r }

Donde la funcin f ser:

f

a

b

p

s

r

*

q

t

p

*

r

p

s

s

p

r

t

t

q

Se pide :

a) Grafo

b) Autmata conexo

c) Conjunto Cociente

d) Autmata mnimo

e) Grafo del nuevo autmata

f) Identificar una cadena de longitud 5 y verificar que la misma es aceptada por ambos autmatas

Resolucin:

a) Grafo del Autmata

b) Autmata Conexo

Se verifica la accesibilidad de estados desde el estado inicial, y vemos que los estados t y q resultan inaccesibles, por lo tanto pueden ser descartados y nos queda un nuevo AFD4 , de la siguiente manera:

AFD4 = ( { a , b }, { p, r , s }, p, { r }, f ) , donde:

Donde la funcin f ser:

f'

a

b

p

s

r

*

r

p

s

s

p

r

Y el nuevo grafo ser:

c) Conjunto cociente

Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo conjuntos de estados que resultan diferentes entre s y esto lo realizamos a travs de la determinacin de las clases de equivalencia entre estados.

Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en dos clases. los estados que son de aceptacin por un lado y los que no por otro lado.

Q/E0 = [ {p, s}, {r}]

Denominaremos con c1 = {p, s} y c2 = {r}

Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas hasta el momento continan sindolo ante una nueva entrada, o sea debemos verificar si sus estados integrantes siguen siendo equivalentes al incrementar la longitud de la cadena de entrada.

Por lo tanto, lo verificaremos para c1 = {p, s}. Al estar constituido por los estados p y s, con una nueva entrada para cada uno de esos estados debern coincidir en que transitarn a estados que pertenecen a una misma clase de equivalencia.

f ( p , a ) = s

f ( s , a ) = p

La salida con la entrada a son los estados s , p que pertenecen a una misma clase de equivalencia anterior por lo tanto, podemos decir que

f ( c1, a ) = c1

Con respecto a la entrada b:

f ( p , b ) = r

f ( s , b ) = r

La salida con la entrada b es el estado r por lo tanto, podemos decir que

f ( c1, b ) = c2

Con lo que se puede afirmar, que la clase de equivalencia c1, contina sindolo para una nueva entrada y por lo tanto:

Q/E1 = [ {p, s}, {r}]

Ahora como Q/E0 = Q/E1 el proceso se detiene y la clase equivalencia con el mnimo nmero de estados ser

Q/E = [ {p, s}, {r}] = [ {c1}, {c2}]

d) Autmata mnimo:

AFD4 = ( { a , b }, { c1, c2 }, c1, { c2 }, f ) , donde:

El estado inicial del nuevo autmata ser c1, ya que en este se encuentra contenido el estado p que era el estado inicial del autmata equivalente.

Con respecto al estado c2, que es el estado final de aceptacin, lo es ya que tiene incluido al estado r que lo era anteriormente.

Para el armado de la nueva funcin de transicin, lo haremos siguiendo las transiciones originales de cada uno de los estados que componen el estado resultante de la clase de equivalencia, por lo tanto nos queda:

f''

a

b

c1

c1

c2

*

c2

c1

c1

e) Nuevo Grafo

f) Verificacin:

Dadas dos cadenas x1 y x2 ambas de longitud 5, verificaremos si ambos autmatas son capaces de reconocerlas

x1 = aabbb

x2 = baaab

Para el caso del AFD4

f ( p, x1 ) = r

f ( p, x2 ) = r

En ambas cadenas al estado que se llega es r, el cul pertenece al conjunto F por lo tanto ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.

Para el caso del AFD4

f ( c1, x1 ) = c2

f ( c1, x2 ) = c2

En ambas cadenas al estado que se llega es c2, el cul pertenece al conjunto F por lo tanto ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.

Configuracin instantnea y movimiento

El concepto de configuracin instantnea o descripcin instantnea, permite describir la configuracin del autmata en cada momento.

Representacin: Lo representaremos mediante un par ordenado ( q, w ) en donde, q Perteneciente al conjunto de estado Q, es el estado en donde se encuentra el autmata, w formada con los smbolos del alfabeto de entrada, ser la cadena que resta por leer.

Configuracin Inicial:

Se establecer como: ( q0 , x ) ; donde q0 ser el estado inicial, y x la cadena a ser leida

Configuracin Final:

Se establecer como: ( qn, ) = ; donde qn ser el estado en donde se detiene el autmata, cuando no resta nada por leer ().

Movimiento:

Es la transicin de una configuracin a otra:

( p, a ) ( q , w ) ; dados p , q Q ; a ; w *

este movimiento ser posible, solo si existe una transicin mediante la aplicacin de:

f( p , a ) = q

Implementacin de un Algoritmo

Dentro de los usos que se le pueden dar a las mquinas de estados, y en particular a los AFD, est el reconocimiento de cadenas. Para realizar este reconocimiento en forma precisa y automatizada, el mismo puede implementarse en cualquier lenguaje de programacin.

Ser posible que habiendo diseado un autmata que sea capaz de reconocer un conjunto de cadenas de un lenguaje, construir un programa que implemente dicho autmata en algn lenguaje de programacin, a tal fin el Algoritmo de funcionamiento del programa puede ser obtenido a partir del AFD en forma directa.

Ejemplo:

AFD5 = ( {0,1}, {p,q,r,s,t}, p, {q}, f ), donde:

Donde la funcin f :

f

0

1

p

s

t

*

q

q

t

r

q

t

s

s

r

t

t

t

El Grafo ser:

El lenguaje aceptado por esta autmata es:

L AFD5 = { x / x W() / an.b.am con n,m 1 }

Diagrama de flujo de algoritmo:

El diagrama de flujo elemental, asumiendo que en la entrada solo se ingresarn smbolos a y b, y que siempre se ingresar al menos un carcter vlido es el siguiente:

Hac click sobre la imagen para verla en tamao completo

Mquinas de Estados: Autmatas Finitos NO DEterministas (AFND)

Autmatas Finitos No Deterministas (AFND)

Definicin:

Un Autmata finito determinista queda definido por un quntupla, al igual que en los AFD, y que su diferencia fundamental se encuentra, en como se definir a la funcin de transicin:

AFND = ( , Q, q0, F, f )

donde:

Alfabeto de smbolos de entrada.

Q

Conjunto finito de estados

q0

qo Q estado inicial previsto

F

F Q - es el conjunto de estado finales de aceptacin.

f

Funcin de transicin de estados definida como

f: Q x ( U {} ) P (Q)

En donde P (Q), es el conjunto que se puede armar con todos los subconjuntos de Q

Este tipo de autmatas se diferencia de los AFD, bsicamente en como puede constituirse la funcin de transicin:. Esta diferencias son las siguientes:

1)

Para cada par estado entrada, el autmata puede tener la posibilidad de transitar a mas de un estado posible.

2)

Para algn par de estado entrada, el autmata puede no tener definido ninguna transicin. Lo que significa que podr realizar transicin alguna.

3)

Puede realizar transiciones de un estado a otro sin leer smbolo alguno de la entrada. A este tipo particular de transiciones se las denomina transiciones-.

Ejemplo:

Una AFND puede definirse como sigue:

AFND1 = ( { 1 , 0 }, { p, q , r, s , t }, p, { r, t }, f ) , donde:

la funcin f puede definirse:

En forma explicita:

f (p,0) = r

f (q,1) = {s,r}

f (s,1) = t

f (p,1) = {t,s}

f (r,0) = p

f (t,) = s

f (p,) = t

f (s,0) = {p,r}

f (t,1) = s

Tabla de doble entrada:

Al igual que en los AFD tendremos:

En las filas los estados

si el estado es final lo anteceder un *

si el estado es inicial lo marcaremos con una

En las columnas se pondrn los smbolos del alfabeto de entrada y se aadir una columna adicional para

En la interseccin (celdas de la matriz) se indicarn las transiciones

f

0

1

p

r

{t,s}

t

q

{s,r}

r

p

s

{p,r}

t

t

s

s

En la tabla f de la funcin de transicin, se encuentran presentes las tres situaciones que se admiten en los AFND a diferencia de los AFD.

La situacin identificada como de no determinismo propiamente dicho, en donde para un estado determinado y ante una misma entrada, el autmata tiene la posibilidad de transitar a uno o mas estado. Esta situacin se presenta en tres oportunidades:

f (p,1) = {t,s}

f (q,1) = {s,r}

f (s,0) = {p,r}

y en representacin grfica de f (p,1) = {t,s} sera:

La segunda situacin cuando que es no tiene definida transicin a estado alguno se presenta en las siguientes situaciones:

f (q,0) =

f ( r,1) =

f ( t,0) =

Y la tercer situacin es cuando tiene la posibilidad de transitar de estado, an sin leer ningn smbolo de la entrada, esta situacin se evidencia en las siguientes situaciones:

f (p,) = t

f (t,) = s

Grficamente se evidencia f (p,) = q de la siguiente manera:

Diagrama de transiciones:

Cada Nodo es un estado

El estado inicial tendr un arco entrante no identificado

Los estados finales tendrn doble crculo.

Existir un arco con sentido, etiquetado con un smbolo a entre dos nodos p y q si existe una transicin F(p,a) = q.

Conceptos asociados a los AFND

A continuacin presentaremos un conjunto de definiciones, que resultan necesarias, para el tratamiento de este tipo de Autmatas:

Relaciones de Transiciones- (Conjunto T).

Cierre transitivo de la relacin T ; (Conjunto T*).

Extensin a palabras.

Lenguaje Aceptado por un AFND

Equivalencias entre AFD y AFND

Relaciones de Transiciones- (Conjunto T).

Es la relacin que se establece entre los pares de estados en que existe una transicin-.

Esta relacin tambin es reflexiva, lo que significa tambin existir una transicin entre los estados contra ellos mismos, de esta manera se verifica que para todo estado perteneciente al conjunto de estados existe f (q, ) = q.

Con las definiciones anteriores, se proceder a la construccin de un conjunto, denominado conjunto T , que contendr a todos los pares de estados, que tengan transiciones- entre ellos.

En el ejemplo del AFND1 el conjunto T resultar:

T = {(p,t) , (t,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t) }

Cierre transitivo de la relacin T (Conjunto T*)

Este nuevo conjunto ser calculado aplicando la propiedad transitiva de las relacin T , ya que se verifica que:

si p T q y q T r entonces resulta que p T r.

En nuestro ejemplo se verifica que aparare un nuevo par de estado (p,s) ya que al aplicar la relacin transitiva p T t y t T s entonces p T s, esta es la nica regla de transitividad que se puede aplicar, de esta manera el nuevo conjunto T* nos quedar.

T * = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) }

Extensin a palabras

Ahora veremos como ser el comportamiento del AFND cuando la entrada deja de ser un smbolo individual y pasa a ser una cadena de caracteres, formados con smbolos del alfabeto.

Definiremos entonces una funcin f :

f : Q x * P (Q)

en la que su comportamiento es el siguiente:

Como los AFND pueden producir transiciones entre estados sin leer ningn smbolo desde el exterior, para cada uno de los estados en donde se encuentra el autmata hay que considerar estas transiciones-.

Por lo tanto estas transiciones se pueden presentar antes de leer el primer smbolo, entre cada uno de los smbolos procesador en la entrada y tambin se lo debe hacer sobre el final cuando se ha finalizado de procesar toda la cadena de entrada.

Estas transiciones * a las que hacemos referencias son las que aparecen en el conjunto T* del cierre transitivo de las relaciones T (transiciones-)

En nuestro ejemplo del AFND1 :

vamos a calcular las transiciones que se producirn, tras recibir en la cinta de entrada la cadena 101, entonces:

Lo primero que debemos realizar previo a la entrada del primer smbolo, es aplicar si existieren las relaciones de transiciones-, y entonces como primer paso se debe aplicar:

f ( p , ) =

Y entonces lo que hacemos es buscar si existen relacin de transiciones dentro del conjunto T* = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) }

y lo que se obtiene es lo siguiente:

f ( p , ) = {t,s,p}

Entonces significa, que el autmata podr estar en cualquiera de los estados t , s , p antes de recibir la primer entrada, por lo tanto se deber ver cual sern las transiciones (aplicacin de la funcin de transicin f) con la entrada para cada uno de los estados respectivos.

Ahora entonces aplicamos la funcin f , para el primer smbolo de la entrada.

Entonces lo hecho hasta ahora es : f ( p , .1 ) = { s , t }

Ahora nuevamente debemos aplicar el conjunto T* para determinar, si desde los estados s , t es posible que el autmata transite sin leer nada de la entrada. Al aplicar nuevamente el conjunto T* y nos quedar:

Hasta el momento tendremos : f ( p , .1. ) = { s , t }

Veremos ahora a que estados podr transitar ante la lectura de la prxima entrada:

Y hasta el momento tendremos : f ( p , .1..0 ) = { p, r, s }

Nuevamente aplicaremos el conjunto T* y tenemos:

Y hasta el momento tendremos : f ( p , .1..0. ) = { p, r, s, t }

Nuevamente tomaremos al prximo smbolo de entrada 1 que ser el ltimo que tenemos que procesar, y por lo tanto aplicamos la funcin f.

Vemos que f ( r , 1 ) = , no tiene definida transicin alguna, por lo tanto la descartaremos y nos quedar.

Y hasta el momento tendremos : f ( p , .1..0..1 ) = { s, t }

Ahora nos falta aplicar sobre el final de la cadena de entrada, si existe transicin sobre los estados ( s, t ) , para ello aplicamos por ltima vez T*

Y finalmente tendremos : f ( p , .1..0..1. ) = { s, t };

Esto significa que partiendo del estado inicial p y recibiendo la cadena de entrada 101, y al seguir todos las combinaciones posibles de transiciones de estados (todos los caminos que se pueden presentar), el autmata solo podr quedar posicionado en el conjunto de estados {s , t} que esta formado por los estados s o t ,y como el estado t pertenece al conjunto de estado finales de aceptacin, se dice que la cadena es aceptada por el AFND

Lenguaje Aceptado por un AFND

Ser el conjunto de palabras que le hacen transitar desde el estado inicial a algn estado de finalizacin utilizando la funcin f .

L AFND = { x / x * y f (q0 , x) F }

Significa que el lenguaje aceptado por un AFND estar constituido por todas las cadenas formadas con smbolos del alfabeto