Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ALFABETO
Conjunto no vaco y finito de elementos, distintos entre s e identificados, por ejemplo: nmeros,
letras, combinaciones entre ellos.
Simbologa:
Ejemplo: sea
=
=
, el alfabeto binario
Si
) =
) =
) =
) =
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
nica cadena cuya longitud es 0.
, siendo
,y
la
=2
=5
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:
Subpalabras: Prefijo y Sufijo.
=0
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
r=s
t = defg
t = abcdefg
s=s
tt
es
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 = 011011011
x = abc
= cba
Resolucin:
Resolucin:
Ejercicio 2:
1-
2-
3-
4-
5-
6-
7-
L1
8-
L1
9-
L1
10- L1
Resolucin:
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.
TIPO 3
2-
TIPO 2
3-
TIPO 2
4-
TIPO 2
5-
TIPO 2
6-
TIPO 2
7-
TIPO 2
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:
-
1-
equivalentes
2-
ambiguas
3-
recursivas
Resolucin:
a)
b)
c)
d)
e)
NINGUNA ES EQUIVALENTE
Ejercicio 4: Determine la definicin algebraica y los rboles de derivacin correspondiente,
considerando las siguientes reglas gramaticales:
Resolucin:
P1: hay recursividad
Resolucin:
Caso 1: P1 y P2 no son equivalentes.
Caso 2: P1 y P2 no son equivalentes.
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)
Ejercicio 2:
Resolucin:
Primero debemos limpiar la gramtica:
Reglas innecesarias:
(B:= B)
Reglas de Redenominacin:
Ejercicio 3:
Resolucin:
Primero debemos limpiar la gramtica:
Reglas innecesarias:
(B:= B)
Recuerde que para que una gramtica se encuentre bien formada, primero debe estar limpia
reglas innecesarias
b)
smbolos inaccesibles
c)
d)
Ejercicio 1:
Resolucin:
a)
B:= B
b)
No hay
c)
Ejercicio 2:
Resolucin:
a)
A:= A
b)
C:= 1C
c)
Ejercicio 3:
Resolucin:
a)
S:= S
b)
No hay
c)
Ejercicio 4:
Resolucin:
a)
A:= A / B:= B
b)
No hay
c)
Ejercicio 5:
Resolucin:
a)
B:= B / C:= C
b)
No hay
c)
2-
establecer la forma algebraica del lenguaje que conforman las cadenas encontradas.
3-
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 =
P2 =
abca, abc
P3 = cabacb, cabaabb, cabbb, caab, cabaabac, cabacac, cabbac, caaac, caaaab, cabaaab,
cabacaab, cabaabaab
P4 =
P5 =
c, babbab
P6 =
P7 =
limpiar la gramtica
b)
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:= 0B1
B:= 0XB1
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:= 00
A:= 10
A:= 1Y
A:= 1X0
A:= 1XY
S:= 0A1
A:= 0A1
A:= 0AZ
Ejercicio 3:
Resolucin:
a) gramtica limpia
b)
no hay
c) grupo 3:
B:= A0
grupo 2: S:= A0
B:= 0A0
B:= 10
S:= 0A0
S:= 10
B:= 1B0
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
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
A
Despus:
0B
XB
2
Resolucin Ejercicio 2:
a) X:= 0
Z:= 1
Y:= A1
002
A
A
00A
Y:= AZ
0B
0XA
00A
002
a)
S:= 0A1
S:= XY
A:= 0A1
A:= XY
A:= 0B
A:= XB
B:= 0B
B:= XB
Antes:
Despus:
0A1
00B1
0A1
001
XY
XY
0Y
0Y
0001
0AZ
0XBZ
00BZ
0AZ
00Z
001
aBZ
abZ
abc
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
S:= aAc
Despus:
S:= AY
S:= AW
abc
aac
aY
aAC
aaZ
aac
000Z
0001
Resolucin Ejercicio 5:
a) X:= 0
Z:= 1
S:= 0C1
Y:= C1
B:= OB1
W:= B1
C:= 0C1
S:= XY
Y:= CZ
B:= XW
W:= BZ
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:
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
reglas innecesarias
b)
smbolos inaccesibles
c)
d)
DERIVACIONES
Ejercicio 2: Elabore todas las frases que pueden ser generadas por la siguiente Gramtica,
mediante rboles sintcticos:
(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:
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
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.
Smbolo Significado
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
q0
a0
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.
f
Funcin de Transicin
Estado en el que se encuentra la mquina en un determinado tiempo i
ei
Entrada a producirse en el tiempo i
qi+1 Estado que se encontrar en tiempo i+1
Grafo Dirijido
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.
2.
3.
Cambiar de estado.
, Q, f, g}
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
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
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
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)
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:Qx
MOORE
g:Q
MEALY
Si
= Que la salida producida en el intervalo de tiempo i estar en funcin del
f( qi, ei) estado en que se encuentra y la entrada que recibe en el mismo tiempo i
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}
M0 = {
, Q, f, g} de la siguiente manera.
g(q,a)=b
Se
1)
Un estado:
funcin salida:
pb
crea:
Q , al que le corresponder la siguiente
g(pb) = b
2)
Si a un determinado estado q
etiquetado con q
;b
.
Ejemplo:
Funcin Salida g
Su grafo:
g(r, 0) = a Entonces:
Q ; g( ra) = a ; f( ra , 0 ) = ra ; f( rb , 0 ) = ra
g(r, 1) = b Entonces:
Q ; g( tb) = b ; f( ra , 1 ) = tb ; f( rb , 1 ) = tb
g(s, 0) = a Entonces :
Q ; g( ra) = a ; f( sa , 0 ) = ra ; f( sb , 0 ) = ra
g(s, 1) = b Entonces:
Q ; g( sb) = b ; f( sa , 1 ) = sb ; f( sb , 1 ) = sb
g(t, 0) = b Entonces:
Q ; g( rb ) = b ; f( ta , 0 ) = rb ; f( tb , 0 ) = rb
g(t, 1) = a Entonces:
Q ; g( sa) = a ; f( ta , 1 ) = sa ; f( tb , 1 ) = sa
dicho estado.
Funcin Transicin f
Funcin Salida g
ra
ra
tb
ra
tb
rb
sa
tb
sb
ra
sb
sb
rb
ra
tb
rb
sa
ra
sb
sa
,
,
, Q, f, g}
,
Q,
f,
g}
de
la
siguiente
manera.
con
q,
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
Grafo:
aaabaaab
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:
q0
q0
F
Q - es el conjunto de estado
finales de aceptacin.
f: Q x
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:
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 *
Donde:
f (q, ax) = f(f(q,a),x)
f (q,
)= q
con a
;x
* ; 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
L AFD = { x / x
* y f ( q0, x) = qn con qn
F}
Ejemplo:
Dado el siguiente AFD definido como:
f(p, 0)= q
f(p, 1)= r
f(q, 0)= p
f(q, 1)= q
f(r, 0)= r
f(r, 1)= r
L AFD1 = {x / x
* y x = 0.1n con n
0}
f(p, 0)= q
f(p, 1)= r
f(q, 0)= p
f(q, 1)= q
f(r, 0)= r
f(r, 1)= r
f(t, 0)= s
f(t, 1)= q
f(s, 0)= s
f(s, 1)= t
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
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
y
W() , | y |
n no se puede alcanzar un estado final previsto tanto
comenzando desde el estado p como el de q
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
f( s,a) = p
d4
d4
f( p,b) = t
f( s,b) = t
d2
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
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:
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
Se pide :
a)
Grafo
b)
Autmata conexo
c)
Conjunto Cociente
d)
Autmata mnimo
e)
f)
Resolucin:
a)
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'
*r
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:
f''
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,
) =
( 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
*q
El Grafo ser:
1}
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:
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
L AFD = { x / x
* y f ( q0, x) = qn con qn
F}
Ejemplo:
Dado el siguiente AFD definido como:
f(p, 0)= q
f(p, 1)= r
f(q, 0)= p
f(q, 1)= q
f(p, 0)= q
f(p, 1)= r
f(q, 0)= p
f(q, 1)= q
f(r, 0)= r
f(r, 1)= r
f(t, 0)= s
f(t, 1)= q
f(s, 0)= s
f(s, 1)= t
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
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.
y
W() , | y |
n no se puede alcanzar un estado final previsto tanto
comenzando desde el estado p como el de q
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
f( s,a) = p
d4
d4
f( p,b) = t
f( s,b) = t
d2
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
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:
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
Se pide :
a)
Grafo
b)
Autmata conexo
c)
Conjunto Cociente
d)
Autmata mnimo
e)
f)
Resolucin:
a)
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'
*r
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:
f''
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,
) =
( 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
*q
El Grafo ser:
1}
AFND = ( , Q, q0, F, f )
donde:
q0
qo
F
Q - es el conjunto de estado finales de
aceptacin.
f: Q x ( U {
} ) P (Q)
1)
2)
3)
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 (p,1) = {t,s}
f (p, ) = t
f (q,1) = {s,r}
f (r,0) = p
f (s,0) = {p,r}
f (s,1) = t
f (t, ) = s
f (t,1) = s
{t,s}
{s,r}
{p,r}
f (q,0) =
f ( r,1) =
f ( t,0) =
f (p, ) = t
f (t, ) = s
Diagrama de transiciones:
Existir un arco con sentido, etiquetado con un smbolo a entre dos nodos p
y q si existe una transicin F(p,a) = q.
Relaciones de Transiciones-
(Conjunto T).
Extensin a palabras.
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
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.
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 de entrada, que partiendo desde el estado
inicial, el autmata quedar posicionado en un estados que pertenezca al conjunto de estados
finales de aceptacin.
Equivalencias entre AF Determinista y No determinista
La equivalencia entre autmatas AFD y AFND, siempre es posible, y esto significa que
siempre se podr dado uno de ellos obtener su equivalente. Por lo tanto, se podr asegurar
que ambos, AFD y AFND reconocern el mismo lenguaje.
Conversin de AFD a AFND :
Es fcil ver que los AFD son una particularizacin de los AFND, ya que: por un lado no
existirn transiciones- y por otro lado, las transiciones siempre producirn un estado
determinado. As tendremos que:
Q = P(Q)
f (q,a)
Lo que se har primero es calcular q0 y luego se irn calculando los dems estados
Q obtenidos a partir de P(Q) a medida que van presentando en el proceso de conversin.
Ejemplo:
Dado:
AFND1 = ( { 0 , 1 }, { p, q , r, s , t }, p, { r }, f ) , donde:
Para el estado t
c0 :
Para el estado s c0 :
) ; lo obtendremos de T*
Para el estado t c0 :
De esta manera :
f( c0 , 0 ) = { (, , ) }
Por lo tanto:
f (c0 , 0 ) = { t, s, p, r } = c1
Ahora debemos para cada uno de los estados que vaya apareciendo, como se va
comportando ante ambas entradas. Tomamos ahora el estado c1 = { t,s,p,r }
Vemos ahora que no se ha creado ningn nuevo estado, por lo tanto hemos
terminado el proceso de construccin de la funcin f y de el conjunto Q .
Nuevo estado
Q
P(Q)
c0
{ t,s,p }
c1
{ t, s, p, r}
c2
{s,t}
Ejercicio 1: Disear un autmata finito que acepte una cadena formada por 4 bits,
debiendo ser el primer elemento igual al tercero.