Está en la página 1de 42

Tecnológico Nacional de México

2021

M.A.S.C. Arturo Iván Grajales Vázquez.


3.1. Definición formal.
Un autómata de estado finito se describe, formalmente,
como:

M= <Q,Σ,δ,q0,F>

Donde:

Q es el conjunto de estados de M.
Σ es el alfabeto d entrada de M.
δ es la tabla de transición de M . δ: Q x (Σ ⋃ {ε } ) → Q
q0 es el estado inicial de M.
F es el conjunto de estados de aceptación de M.
Por ejemplo:

Autómata que reconoce pares de 0’s y pares 1’s, considerando


a la cadena vacía como par.

Notación formal.
M= <Q,Σ,δ,q0,F>

M=<{q0,q1,q2,q3},{ 0,1},{ (q0,0,q2),(q0,1,q1),(q1,0,q3),


(q1,1,q0),(q2,0,q0),(q2,1,q3),(q3,0,q1),(q3,1,q2)},{q0},{q0} >

Donde:
Q={q0,q1,q2,q3}
Σ={0,1}
F={q0}
q0=q0
δ=tabla de transición

Entradas (Σ )
Estados 0 1
q0 {q2} {q1}
q1 {q3} {q0}
q2 {q0} {q3}
q3 {q1} {q2}
Autómata finito en representación grafica
Una maquina de estado finito puede representarse gráficamente
mediante un grafo llamado diagrama de transición ( D ) con las
siguientes características:

 Cada estado en M corresponde a un nodo en D, el cual se


representa mediante un circulo y se etiqueta igual que el estado
en M.
 El estado inicial se señala mediante una flecha que apunta hacia
el nodo correspondiente.
 Cada estado final se representa mediante un doble circulo.
 Cada regla de transición (qi,v,qj) se representa mediante un lado
entre los nodos correspondientes a los estados qi y qj,
etiquetados con v.
 Si existe mas de una regla de transición entre un par de estados,
los lados correspondientes se representan mediante un solo lado
y las etiquetas se separan por “comas” o “diagonales”
Por ejemplo:

q0 q1

0 0 0
0

q2 q3

1
Análisis de la entrada a través de un autómata
finito.
1

q0 q1

0 0 0
0

q2 q3

1
Entrada: 001010

q0001010⊥0q201010 ⊥00q01010 ⊥001q1010 ⊥0010q310 ⊥


00101q20 ⊥001010q0
Ejercicio.
1

q0 q1

0 0 0
0

q2 q3

Entrada: 11100

Verificar si la cadena entrada es aceptada o rechazada


3.2. Clasificación de AF.
Existen algunas formas para clasificar autómatas, las mas
comunes son:

Autómatas finito no determinista

Permite mas de una transición bajo el mismo símbolo, lo


cual los hace muy apropiado para diseñar lenguajes sin
preocuparse por la implementación hacia un programa de
computadora.
c

q2
q1
a

c
q0 c
b

a
b
q3 q4
Autómatas finito determinista

No permite mas de una transición bajo el mismo símbolo; lo


cual, combinado con la existencia de transiciones-ε, permite
su implementación en un programa.
c

q2
q1
a

c
q0 c
b

c
a
q3 q4
Autómatas finito con transiciones-ε

Como su nombre lo indica, permite transiciones bajo el


símbolo ε; por lo cual permite, al igual que los autómatas no
determinista, diseñar lenguajes sin preocuparse por la
implementación hacia un programa.
c

q2
q1
a

c
q0 c
b

ε
ε
q3 q4
3.3. Conversión de un AFND a AFD
Teorema de conversión

Para cada autómata finito no determinista (AFND) existe un


autómata finito determinista (AFD) que acepta exactamente
el mismo lenguaje.

Supóngase que M es el autómata finito no determinista


definido por la quíntupla M= <Q,Σ,δ,q0,F> . Es posible
demostrar la existencia de un autómata finito
determinista que acepte exactamente las mismas cadenas
que M. Para esto, se define otro autómata, M’, con la
quíntupla M’= <Q’,Σ,δ’,q0’,F’>.
Convertir AFND a AFD, por ejemplo: c

q2
q1
a

c
q0 c
b

a
b
q3 q4

Paso 1.

Se define el esqueleto de la tabla, una dimensión (filas) corresponde a


los estados del autómata determinista que se irán generando, una
dimensión (columnas) corresponden a los símbolos del alfabeto. El
estado inicial del AFD se etiqueta con la letra mayúsculas para
diferenciarlo tanto de los estados del AFND como del alfabeto, en
este caso, qA corresponde al estado inicial del AFD y Agrupa a q0 que
es el estado inicial del AFND, quedando.
Entradas
Estados a b c
qA{q0}

Paso 2

Se anota las transiciones definidas en el AFND para cada uno de


los símbolos del alfabeto de entrada, en este caso
δ(q0,a)={q1,q3}, aquí se aprecia como se absorbe el no
determinismo, dos transiciones para AFND corresponden a una
solo una en el AFD; Se continua de la misma manera para cada
símbolo del alfabeto, δ(q0,b)=∅,δ(q0,c)=∅, quedando la tabla
Entradas
Estados a b c
qA{q0} qB {q1,q3} ∅ ∅

Nótese que el conjunto {q1,q3} se etiqueta con el nombre qB


para ser agregado en la columna de estados y repetir el
proceso del paso 1

Paso 3

Se agrega qB y se anotan las transiciones de cada uno de los


estados con cada uno de los símbolos del alfabeto.
Entradas
Estados a b c
qA{q0} qB {q1,q3} ∅ ∅
qB{q1,q3} ∅ qc{q1,q4} qD{q2}
Del presente análisis se obtiene dos nuevos estados para el
AFD qC y qD , se realiza el mismo proceso hasta que no
existan estados por agregar.

La definición de un estado del AFD depende del conjunto de


estados que agrupe del AFND, en este caso, ya existen qA{q0}
y qB {q1,q3} y se obtiene las combinaciones {q1,q4} y {q2}.
Como estas combinaciones no están definidas, entonces se
agregan a los estados del AFD etiquetándose con qC y qD
respectivamente.

Paso 4

Se agrega qC y qD se anotan, nuevamente, las transiciones de


cada uno de los estados para cada uno de los símbolos del
alfabeto.
Entradas
Estados a b c
qA{q0} qB {q1,q3} ∅ ∅
qB{q1,q3} ∅ qC{q1,q4} qD{q2}
qC{q1,q4} ∅ ∅ qD{q2}
qD{q2} ∅ ∅ qE{q1}

Nótese que qC obtiene bajo c una combinación de estados,


que corresponde a qD, por lo tanto, no se genera un nuevo
estado; situación que si sucede en qD bajo c la cual obtiene
una nueva combinación y se etiqueta con qE.

Paso 5

Se agrega qE y se anota las transiciones para cada uno de


los símbolos del alfabeto.
Entradas
Estados a b c
qA{q0} qB {q1,q3} ∅ ∅
qB{q1,q3} ∅ qC{q1,q4} qD{q2}
qC{q1,q4} ∅ ∅ qD{q2}
qD{q2} ∅ ∅ qE{q1}
qE{q1} ∅ ∅ qD{q2}

No se obtienen nuevas combinaciones, el resultado


representa el AFD
Paso 6

Para concluir, se grafica la información de la tabla,


definiéndose los estados de aceptación de acuerdo a
aquellos estados que contengan por lo menos un estado de
aceptación en el AFND; en este caso, los estados de
aceptación para AFND son {q2,q3}, por lo tanto, los estados
de aceptación para el AFD son qB{q1,q3} y qD{q2}.
qC

c
a
qA qB
c

c
qD qE

c
3.4.- Representación de ER usando
AFND
La expresión regular es conceptual y los autómatas son “maquinas”
el termino maquina los acerca a una implementación real solamente
el concepto.

La construcción que se describe a continuación se conoce como la


construcción de Thompson, en honor a su inventor. Utiliza como
estrategia de construcción a las transiciones – ε y partes de las
siguientes primitivas.

Expresión regular AFND

∅ q0 f0

ε
ε q0 f0

a
a q0 f0
Las primitivas se aplican a la construcción de las operaciones para
las expresiones regulares.

Expresión regular
operación
Unión
M1|M2 AFND

q1 M1 f1
ε ε

q0 f0

ε ε
q2 M2 f2
Expresión regular
operación
Concatenación
M1M2

AFND

ε
q1 M1 f1 q2 M2 f2
Expresión regular
operación
Cerradura estrella
M1*

AFND
ε

ε ε
q0 q1 M1 f1 f0

ε
Por ejemplo:

ER: ab

q0 a q1
ε q2
b q3

ER: ab|cd
q1 a ε b
ε
q2 q3 q4 ε

q0 q9

ε q5 c q6
ε q7
d q8 ε
ER: (ab|cd)*
ε

q2 a q3
ε b
ε q4 q5
ε
ε q6 ε q11
q0 q1

ε q7 c q8 ε d q10
ε
q9

ε
3.5. Minimización de estados de
un AF
Dos estados de un autómata finito determinista son estados
equivalentes si al unirse en un sólo estado, pueden reconocer el
mismo lenguaje regular que si estuviesen separados. Esta unión de
estados implica la unión tanto de sus transiciones de entrada como
de salida. Si dos estados no son equivalentes, se dice que son
estados distinguibles. Un estado final con un estado no-final nunca
serán equivalentes.

Un AFD está minimizado, si todos sus estados son distinguibles y


alcanzables. Un algoritmo de minimización de AFD es el siguiente:

El algoritmo de minimización recibe un Autómata Finito


Determinista (AFD) como entrada y encuentra los estados de este
que son distinguibles( e indistinguibles) entre si.
La finalidad de este algoritmo es obtener un autómata
equivalente al recibido pero con menos estados, y se logra esto
eliminado estados sumideros y estados no alcanzables.

Por ejemplo :

Dado un AFD con una tabla de transición, donde a y b son las


transiciones para este autómata.

b 5
Estados a b
a
1 - 1 2 3
a b
2 2 2 4
b
b
a 3 2 3
a
4
a 4 2 5
3
(5) 2 1
b
El autómatas finito determinista mínimo asociado, se puede
construir mediante el algoritmo de la manera siguiente:

Paso 1

Se crea dos subconjunto , uno formando por los estados no


finales y el otro formado por los estados finales.
Estados no finales
Estados a b
b 5
- 1
a
1 2
a b
2 3
b
b
a 4
a
4
a
3
Estados finales
Estados a b
b
(5)
Paso 2

Aplicar a los dos subconjuntos formados en el paso anterior,


las transiciones del AFD, en este caso aplicamos primero
para los subconjunto de transición “a”.
Estados no finales
Estados a b
b 5
- 1 2
a
1 2 2
a b
2 3 2
b
b
a 4 2
a
4
a
3
Estados finales
Estados a b
b
(5) 2
Paso 3

Si al realizar el paso dos con la primera transición no hay cambios en


los subconjunto entonces continuamos con el siguiente símbolo de
transición, si nuevamente no hay cambios en los subconjuntos,
utilizamos el siguiente símbolo de transición y realizamos esto hasta
obtener cambios de los subconjunto o agotar todos los símbolos de
transición. Como vimos en el paso anterior todos los subconjunto se
comportaron igual al aplicar la transición con “a”, por lo tanto no se
separan y continuamos con el siguiente símbolo de transición, en este
caso “b”. Estados no finales
b 5 Estados a b

a - 1 2 3
1
a b 2 2 4
2
b
b 3 2 3
a
a
4 4 2 5
a
3
Estados finales
Estados a b
b
(5) 2 1
Paso 4

Como regla se separan los estados de un subconjunto que al


aplicarle una transición se comportan de forma diferente al resto
de los demás estados de su subconjunto, formando un nuevo
subconjunto de estados.

Aplicando la regla explicada anteriormente , se observa según lo


obtenido en el paso 3 que al aplicar la transición con “ b” en el
subconjunto de los no finales el estado 4 tuvo un
comportamiento diferente a los estados de su subconjunto,
puesto que al aplicar la transición se desplaza al subconjunto de
los estados finales.
Estados no finales
Estados a b

- 1

b 5 2

a 3
1
a b
2
b Estados no finales
b
a
a Estados a b
4
a
3 4

b Estados finales
Estados a b

(5)
Paso 5

Aplicamos nuevamente los Pasos 2 y 3, y obtuvimos a partir de


ellos las siguientes tabla.
Estados no finales
Estados a b

- 1 2 3

b 5 2 2 4

a 3 2 3
1
a b
2
b Estados no finales
b
a
a Estados a b
4
a
3 4 2 5

b Estados finales
Estados a b

(5) 2 1
Y observamos nuevamente que el estado 2 se comporta
diferente al resto de los estados en su subconjunto, por lo tanto
aplicamos le regla del paso 4 y separamos el estado 2 creando
un nuevo subconjunto.

Aplicamos nuevamente los pasos 2 y 3, y observamos la


siguiente tabla: Estados no finales
Estados a b

- 1 2 3

3 2 3
b 5
a Estados no finales
1
a b Estados a b
2
b 2 2 4
b
a
a
4 Estados no finales
a
3 Estados a b

4 2 5
b

Estados finales
Estados a b

(5) 2 1
Como no se reflejan cambios a la hora de aplicar el paso 3, hemos
llegado al final de los procedimientos a seguir, por lo tanto tenemos
nuestro autómatas mínimo.
Estados no finales
Estados a b

- 1 2 3

3 2 3
b 5
a Estados no finales
1
a b Estados a b
2
b 2 2 4
b
a
a
4 Estados no finales
a
3 Estados a b

4 2 5
b

Estados finales
Estados a b

(5) 2 1
Paso 6

En este paso dibujamos el autómata obtenido después de la


minimización , basándose en la tabla de transición.
Estados no finales
Estados a b

b 5 - 1 2 3

3 2 3
1,3 a
a Estados no finales
b
2 Estados a b
b
b
2 2 4

a a
4 Estados no finales
Estados a b

4 2 5

Estados finales
Estados a b

(5) 2 1
3.6. Aplicaciones (definición de
un caso de estudio)

También podría gustarte